Imported Upstream version 63.1 42/191742/1 upstream/63.1
authorHyunjee Kim <hj0426.kim@samsung.com>
Tue, 23 Oct 2018 06:39:52 +0000 (15:39 +0900)
committerHyunjee Kim <hj0426.kim@samsung.com>
Tue, 23 Oct 2018 06:40:16 +0000 (15:40 +0900)
Change-Id: I5934009a22ab0e5575a2c2fac9752b7e8231e1f1
Signed-off-by: Hyunjee Kim <hj0426.kim@samsung.com>
1637 files changed:
.gitignore [deleted file]
APIChangeReport.html
as_is/bomlist.py
as_is/bomlist.txt
readme.html
source/Doxyfile.in
source/Makefile.in
source/allinone/Build.Windows.Library.ProjectConfiguration.props [new file with mode: 0644]
source/allinone/Build.Windows.ProjectConfiguration.props
source/allinone/Build.Windows.UWP.ProjectConfiguration.props
source/allinone/Windows.CopyUnicodeHeaderFiles.targets
source/allinone/icucheck.bat
source/common/Makefile.in
source/common/bmpset.cpp
source/common/bytesinkutil.cpp
source/common/bytesinkutil.h
source/common/bytestriebuilder.cpp
source/common/characterproperties.cpp [new file with mode: 0644]
source/common/charstr.cpp
source/common/charstr.h
source/common/cmemory.h
source/common/common.vcxproj
source/common/common.vcxproj.filters
source/common/common_uwp.vcxproj
source/common/dictbe.cpp
source/common/edits.cpp
source/common/listformatter.cpp [deleted file]
source/common/loadednormalizer2impl.cpp
source/common/locdspnm.cpp
source/common/locid.cpp
source/common/mutex.h
source/common/norm2_nfc_data.h
source/common/normalizer2.cpp
source/common/normalizer2impl.cpp
source/common/normalizer2impl.h
source/common/propname_data.h
source/common/putil.cpp
source/common/putilimp.h
source/common/rbbi.cpp
source/common/rbbi_cache.cpp
source/common/rbbirb.cpp
source/common/rbbiscan.cpp
source/common/rbbitblb.cpp
source/common/rbbitblb.h
source/common/serv.cpp
source/common/sharedobject.h
source/common/static_unicode_sets.cpp
source/common/stringtriebuilder.cpp
source/common/ubidi.cpp
source/common/ubiditransform.cpp
source/common/ucase.cpp
source/common/ucln_cmn.h
source/common/ucnv.cpp
source/common/ucnv2022.cpp
source/common/ucnv_ct.cpp
source/common/ucnv_u16.cpp
source/common/ucnv_u32.cpp
source/common/ucnv_u8.cpp
source/common/ucnvhz.cpp
source/common/ucnvmbcs.cpp
source/common/ucnvsel.cpp
source/common/ucol_swp.cpp
source/common/ucptrie.cpp [new file with mode: 0644]
source/common/ucptrie_impl.h [new file with mode: 0644]
source/common/ucurr.cpp
source/common/udata.cpp
source/common/udataswp.h
source/common/uhash.cpp
source/common/uinvchar.h
source/common/ulayout_props_data.h [new file with mode: 0644]
source/common/ulistformatter.cpp [deleted file]
source/common/uloc.cpp
source/common/uloc_keytype.cpp
source/common/uloc_tag.cpp
source/common/ulocimp.h
source/common/umapfile.cpp
source/common/umapfile.h
source/common/umutablecptrie.cpp [new file with mode: 0644]
source/common/umutex.h
source/common/unames.cpp
source/common/unicode/bytestream.h
source/common/unicode/casemap.h
source/common/unicode/char16ptr.h
source/common/unicode/docmain.h
source/common/unicode/edits.h
source/common/unicode/enumset.h
source/common/unicode/filteredbrk.h
source/common/unicode/icuplug.h
source/common/unicode/listformatter.h [deleted file]
source/common/unicode/locid.h
source/common/unicode/messagepattern.h
source/common/unicode/normalizer2.h
source/common/unicode/platform.h
source/common/unicode/ptypes.h
source/common/unicode/rbbi.h
source/common/unicode/stringoptions.h
source/common/unicode/stringtriebuilder.h
source/common/unicode/ubidi.h
source/common/unicode/ubiditransform.h
source/common/unicode/uchar.h
source/common/unicode/ucnv.h
source/common/unicode/uconfig.h
source/common/unicode/ucpmap.h [new file with mode: 0644]
source/common/unicode/ucptrie.h [new file with mode: 0644]
source/common/unicode/ucurr.h
source/common/unicode/uenum.h
source/common/unicode/ulistformatter.h [deleted file]
source/common/unicode/umachine.h
source/common/unicode/umutablecptrie.h [new file with mode: 0644]
source/common/unicode/uniset.h
source/common/unicode/unistr.h
source/common/unicode/uobject.h
source/common/unicode/urename.h
source/common/unicode/uset.h
source/common/unicode/ustring.h
source/common/unicode/utf16.h
source/common/unicode/utypes.h
source/common/unicode/uvernum.h
source/common/unifiedcache.cpp
source/common/uniset.cpp
source/common/uniset_props.cpp
source/common/unistr.cpp
source/common/uprops.cpp
source/common/uprops.h
source/common/uresbund.cpp
source/common/uresdata.h
source/common/ushape.cpp
source/common/usprep.cpp
source/common/ustrcase.cpp
source/common/utext.cpp
source/common/utrie.h
source/common/utrie2.cpp
source/common/utrie2.h
source/common/utrie2_builder.cpp
source/common/utrie2_impl.h
source/common/utrie_swap.cpp [new file with mode: 0644]
source/common/uts46.cpp
source/common/wintz.cpp
source/common/wintz.h
source/config/mh-mingw
source/config/mh-mingw64
source/configure
source/configure.ac
source/data/brkitr/brkfiles.mk
source/data/brkitr/fi.txt [deleted file]
source/data/brkitr/ja.txt
source/data/brkitr/root.txt
source/data/brkitr/rules/line.txt
source/data/brkitr/rules/line_fi.txt [deleted file]
source/data/brkitr/rules/line_loose.txt
source/data/brkitr/rules/line_loose_cj.txt
source/data/brkitr/rules/line_loose_fi.txt [deleted file]
source/data/brkitr/rules/line_normal.txt
source/data/brkitr/rules/line_normal_cj.txt
source/data/brkitr/rules/line_normal_fi.txt [deleted file]
source/data/build.xml
source/data/cldr-icu-readme.txt
source/data/coll/af.txt
source/data/coll/am.txt
source/data/coll/ar.txt
source/data/coll/as.txt
source/data/coll/az.txt
source/data/coll/be.txt
source/data/coll/bg.txt
source/data/coll/bn.txt
source/data/coll/bs.txt
source/data/coll/bs_Cyrl.txt
source/data/coll/ca.txt
source/data/coll/chr.txt
source/data/coll/colfiles.mk
source/data/coll/cs.txt
source/data/coll/cy.txt
source/data/coll/da.txt
source/data/coll/de.txt
source/data/coll/de_AT.txt
source/data/coll/dsb.txt
source/data/coll/ee.txt
source/data/coll/el.txt
source/data/coll/en_US_POSIX.txt
source/data/coll/eo.txt
source/data/coll/es.txt
source/data/coll/et.txt
source/data/coll/fa.txt
source/data/coll/fa_AF.txt
source/data/coll/fi.txt
source/data/coll/fil.txt
source/data/coll/fo.txt
source/data/coll/fr_CA.txt
source/data/coll/gl.txt
source/data/coll/gu.txt
source/data/coll/ha.txt
source/data/coll/haw.txt
source/data/coll/he.txt
source/data/coll/hi.txt
source/data/coll/hr.txt
source/data/coll/hsb.txt
source/data/coll/hu.txt
source/data/coll/hy.txt
source/data/coll/ig.txt
source/data/coll/is.txt
source/data/coll/ja.txt
source/data/coll/ka.txt
source/data/coll/kk.txt
source/data/coll/kl.txt
source/data/coll/km.txt
source/data/coll/kn.txt
source/data/coll/ko.txt
source/data/coll/kok.txt
source/data/coll/ku.txt [new file with mode: 0644]
source/data/coll/ky.txt
source/data/coll/lkt.txt
source/data/coll/ln.txt
source/data/coll/lo.txt
source/data/coll/lt.txt
source/data/coll/lv.txt
source/data/coll/mk.txt
source/data/coll/ml.txt
source/data/coll/mn.txt
source/data/coll/mr.txt
source/data/coll/mt.txt
source/data/coll/my.txt
source/data/coll/nb.txt
source/data/coll/ne.txt
source/data/coll/nn.txt
source/data/coll/om.txt
source/data/coll/or.txt
source/data/coll/pa.txt
source/data/coll/pl.txt
source/data/coll/ps.txt
source/data/coll/ro.txt
source/data/coll/root.txt
source/data/coll/ru.txt
source/data/coll/se.txt
source/data/coll/si.txt
source/data/coll/sk.txt
source/data/coll/sl.txt
source/data/coll/smn.txt
source/data/coll/sq.txt
source/data/coll/sr.txt
source/data/coll/sr_Latn.txt
source/data/coll/sv.txt
source/data/coll/ta.txt
source/data/coll/te.txt
source/data/coll/th.txt
source/data/coll/tk.txt [new file with mode: 0644]
source/data/coll/to.txt
source/data/coll/tr.txt
source/data/coll/ug.txt
source/data/coll/uk.txt
source/data/coll/ur.txt
source/data/coll/uz.txt
source/data/coll/vi.txt
source/data/coll/wo.txt
source/data/coll/xh.txt [new file with mode: 0644]
source/data/coll/yi.txt
source/data/coll/yo.txt
source/data/coll/zh.txt
source/data/curr/af.txt
source/data/curr/am.txt
source/data/curr/ar.txt
source/data/curr/as.txt
source/data/curr/ast.txt
source/data/curr/az.txt
source/data/curr/az_Cyrl.txt
source/data/curr/be.txt
source/data/curr/bg.txt
source/data/curr/bn.txt
source/data/curr/bo.txt
source/data/curr/br.txt
source/data/curr/brx.txt
source/data/curr/bs.txt
source/data/curr/bs_Cyrl.txt
source/data/curr/ca.txt
source/data/curr/ccp.txt
source/data/curr/ce.txt
source/data/curr/chr.txt
source/data/curr/ckb.txt
source/data/curr/cs.txt
source/data/curr/cy.txt
source/data/curr/da.txt
source/data/curr/de.txt
source/data/curr/de_CH.txt
source/data/curr/dsb.txt
source/data/curr/dz.txt
source/data/curr/ee.txt
source/data/curr/el.txt
source/data/curr/en.txt
source/data/curr/en_001.txt
source/data/curr/en_AU.txt
source/data/curr/en_BE.txt
source/data/curr/en_CA.txt
source/data/curr/en_GB.txt
source/data/curr/en_HK.txt
source/data/curr/en_IE.txt
source/data/curr/en_IN.txt
source/data/curr/en_JM.txt
source/data/curr/en_NZ.txt
source/data/curr/en_ZW.txt
source/data/curr/es.txt
source/data/curr/es_419.txt
source/data/curr/es_AR.txt
source/data/curr/es_CO.txt
source/data/curr/es_MX.txt
source/data/curr/es_PY.txt
source/data/curr/es_US.txt
source/data/curr/es_UY.txt
source/data/curr/es_VE.txt
source/data/curr/et.txt
source/data/curr/eu.txt
source/data/curr/fa.txt
source/data/curr/fa_AF.txt
source/data/curr/ff_GN.txt [deleted file]
source/data/curr/ff_MR.txt [deleted file]
source/data/curr/fi.txt
source/data/curr/fil.txt
source/data/curr/fo.txt
source/data/curr/fr.txt
source/data/curr/fr_CA.txt
source/data/curr/fur.txt
source/data/curr/fy.txt
source/data/curr/ga.txt
source/data/curr/gd.txt
source/data/curr/gl.txt
source/data/curr/gsw.txt
source/data/curr/gu.txt
source/data/curr/ha.txt
source/data/curr/haw.txt
source/data/curr/he.txt
source/data/curr/hi.txt
source/data/curr/hr.txt
source/data/curr/hsb.txt
source/data/curr/hu.txt
source/data/curr/hy.txt
source/data/curr/ia.txt [new file with mode: 0644]
source/data/curr/id.txt
source/data/curr/ig.txt
source/data/curr/ii.txt
source/data/curr/is.txt
source/data/curr/it.txt
source/data/curr/ja.txt
source/data/curr/jgo.txt
source/data/curr/jv.txt [new file with mode: 0644]
source/data/curr/ka.txt
source/data/curr/kab.txt
source/data/curr/kea.txt
source/data/curr/kk.txt
source/data/curr/kl.txt
source/data/curr/km.txt
source/data/curr/kn.txt
source/data/curr/ko.txt
source/data/curr/kok.txt
source/data/curr/ks.txt
source/data/curr/ksh.txt
source/data/curr/ku.txt [new file with mode: 0644]
source/data/curr/kw.txt
source/data/curr/ky.txt
source/data/curr/lb.txt
source/data/curr/lo.txt
source/data/curr/lrc.txt
source/data/curr/lt.txt
source/data/curr/lv.txt
source/data/curr/mg.txt
source/data/curr/mgo.txt
source/data/curr/mi.txt [new file with mode: 0644]
source/data/curr/mk.txt
source/data/curr/ml.txt
source/data/curr/mn.txt
source/data/curr/mr.txt
source/data/curr/ms.txt
source/data/curr/mt.txt
source/data/curr/my.txt
source/data/curr/mzn.txt
source/data/curr/nb.txt
source/data/curr/ne.txt
source/data/curr/nl.txt
source/data/curr/nn.txt
source/data/curr/om.txt
source/data/curr/or.txt
source/data/curr/os.txt
source/data/curr/pa.txt
source/data/curr/pl.txt
source/data/curr/pool.res
source/data/curr/ps.txt
source/data/curr/pt.txt
source/data/curr/pt_AO.txt
source/data/curr/pt_MZ.txt
source/data/curr/pt_PT.txt
source/data/curr/pt_ST.txt
source/data/curr/qu.txt
source/data/curr/resfiles.mk
source/data/curr/rm.txt
source/data/curr/ro.txt
source/data/curr/root.txt
source/data/curr/ru.txt
source/data/curr/rw.txt
source/data/curr/sah.txt
source/data/curr/sd.txt [new file with mode: 0644]
source/data/curr/se.txt
source/data/curr/si.txt
source/data/curr/sk.txt
source/data/curr/sl.txt
source/data/curr/sn.txt
source/data/curr/so.txt
source/data/curr/so_KE.txt
source/data/curr/sq.txt
source/data/curr/sr.txt
source/data/curr/sr_Latn.txt
source/data/curr/supplementalData.txt
source/data/curr/sv.txt
source/data/curr/sw.txt
source/data/curr/sw_CD.txt
source/data/curr/ta.txt
source/data/curr/te.txt
source/data/curr/tg.txt
source/data/curr/th.txt
source/data/curr/ti.txt
source/data/curr/ti_ER.txt
source/data/curr/tk.txt [new file with mode: 0644]
source/data/curr/to.txt
source/data/curr/tr.txt
source/data/curr/tt.txt
source/data/curr/ug.txt
source/data/curr/uk.txt
source/data/curr/ur.txt
source/data/curr/ur_IN.txt
source/data/curr/uz.txt
source/data/curr/uz_Cyrl.txt
source/data/curr/vi.txt
source/data/curr/wae.txt
source/data/curr/wo.txt
source/data/curr/xh.txt [new file with mode: 0644]
source/data/curr/yi.txt
source/data/curr/yo.txt
source/data/curr/yo_BJ.txt
source/data/curr/yue.txt
source/data/curr/yue_Hans.txt
source/data/curr/zgh.txt
source/data/curr/zh.txt
source/data/curr/zh_Hant.txt
source/data/curr/zh_Hant_HK.txt
source/data/curr/zh_Hant_MO.txt
source/data/curr/zu.txt
source/data/icu-config.xml
source/data/icu4j-readme.txt
source/data/in/icudt62l.dat [deleted file]
source/data/in/icudt63l.dat [new file with mode: 0644]
source/data/in/nfc.nrm
source/data/in/nfkc.nrm
source/data/in/nfkc_cf.nrm
source/data/in/pnames.icu
source/data/in/uts46.nrm
source/data/lang/af.txt
source/data/lang/am.txt
source/data/lang/ar.txt
source/data/lang/ar_SA.txt
source/data/lang/as.txt
source/data/lang/ast.txt
source/data/lang/az.txt
source/data/lang/az_Cyrl.txt
source/data/lang/be.txt
source/data/lang/bg.txt
source/data/lang/bn.txt
source/data/lang/bn_IN.txt
source/data/lang/br.txt
source/data/lang/brx.txt
source/data/lang/bs.txt
source/data/lang/bs_Cyrl.txt
source/data/lang/ca.txt
source/data/lang/ccp.txt
source/data/lang/ce.txt
source/data/lang/chr.txt
source/data/lang/ckb.txt
source/data/lang/cs.txt
source/data/lang/cy.txt
source/data/lang/da.txt
source/data/lang/de.txt
source/data/lang/de_AT.txt
source/data/lang/de_CH.txt
source/data/lang/dsb.txt
source/data/lang/dz.txt
source/data/lang/ee.txt
source/data/lang/el.txt
source/data/lang/en.txt
source/data/lang/en_001.txt
source/data/lang/en_AU.txt
source/data/lang/en_BE.txt
source/data/lang/en_CA.txt
source/data/lang/en_GB.txt
source/data/lang/en_HK.txt
source/data/lang/en_IE.txt
source/data/lang/en_IN.txt
source/data/lang/en_JM.txt
source/data/lang/en_NZ.txt
source/data/lang/en_ZW.txt
source/data/lang/es.txt
source/data/lang/es_419.txt
source/data/lang/es_AR.txt
source/data/lang/es_CO.txt
source/data/lang/es_MX.txt
source/data/lang/es_PY.txt
source/data/lang/es_US.txt
source/data/lang/es_UY.txt
source/data/lang/es_VE.txt
source/data/lang/et.txt
source/data/lang/eu.txt
source/data/lang/fa.txt
source/data/lang/fa_AF.txt
source/data/lang/fi.txt
source/data/lang/fil.txt
source/data/lang/fo.txt
source/data/lang/fr.txt
source/data/lang/fr_BE.txt
source/data/lang/fr_CA.txt
source/data/lang/fr_CH.txt
source/data/lang/fy.txt
source/data/lang/ga.txt
source/data/lang/gd.txt
source/data/lang/gl.txt
source/data/lang/gsw.txt
source/data/lang/gu.txt
source/data/lang/ha.txt
source/data/lang/haw.txt
source/data/lang/he.txt
source/data/lang/hi.txt
source/data/lang/hr.txt
source/data/lang/hsb.txt
source/data/lang/hu.txt
source/data/lang/hy.txt
source/data/lang/ia.txt [new file with mode: 0644]
source/data/lang/id.txt
source/data/lang/ig.txt
source/data/lang/is.txt
source/data/lang/it.txt
source/data/lang/ja.txt
source/data/lang/jv.txt [new file with mode: 0644]
source/data/lang/ka.txt
source/data/lang/kab.txt
source/data/lang/kea.txt
source/data/lang/kk.txt
source/data/lang/kl.txt
source/data/lang/km.txt
source/data/lang/kn.txt
source/data/lang/ko.txt
source/data/lang/kok.txt
source/data/lang/ks.txt
source/data/lang/ksh.txt
source/data/lang/ku.txt [new file with mode: 0644]
source/data/lang/kw.txt
source/data/lang/ky.txt
source/data/lang/lb.txt
source/data/lang/lo.txt
source/data/lang/lrc.txt
source/data/lang/lt.txt
source/data/lang/lv.txt
source/data/lang/mg.txt
source/data/lang/mi.txt [new file with mode: 0644]
source/data/lang/mk.txt
source/data/lang/ml.txt
source/data/lang/mn.txt
source/data/lang/mr.txt
source/data/lang/ms.txt
source/data/lang/mt.txt
source/data/lang/my.txt
source/data/lang/mzn.txt
source/data/lang/nb.txt
source/data/lang/ne.txt
source/data/lang/nl.txt
source/data/lang/nn.txt
source/data/lang/om.txt
source/data/lang/or.txt
source/data/lang/pa.txt
source/data/lang/pl.txt
source/data/lang/pool.res
source/data/lang/ps.txt
source/data/lang/pt.txt
source/data/lang/pt_PT.txt
source/data/lang/qu.txt
source/data/lang/resfiles.mk
source/data/lang/rm.txt
source/data/lang/ro.txt
source/data/lang/root.txt
source/data/lang/ru.txt
source/data/lang/rw.txt
source/data/lang/sah.txt
source/data/lang/sd.txt [new file with mode: 0644]
source/data/lang/se.txt
source/data/lang/se_FI.txt
source/data/lang/si.txt
source/data/lang/sk.txt
source/data/lang/sl.txt
source/data/lang/sn.txt
source/data/lang/so.txt
source/data/lang/sq.txt
source/data/lang/sr.txt
source/data/lang/sr_Cyrl_BA.txt
source/data/lang/sr_Cyrl_ME.txt
source/data/lang/sr_Latn.txt
source/data/lang/sr_Latn_BA.txt
source/data/lang/sr_Latn_ME.txt
source/data/lang/sv.txt
source/data/lang/sw.txt
source/data/lang/sw_CD.txt
source/data/lang/sw_KE.txt
source/data/lang/ta.txt
source/data/lang/te.txt
source/data/lang/tg.txt
source/data/lang/th.txt
source/data/lang/ti.txt
source/data/lang/tk.txt [new file with mode: 0644]
source/data/lang/to.txt
source/data/lang/tr.txt
source/data/lang/tt.txt
source/data/lang/ug.txt
source/data/lang/uk.txt
source/data/lang/ur.txt
source/data/lang/ur_IN.txt
source/data/lang/uz.txt
source/data/lang/uz_Cyrl.txt
source/data/lang/vi.txt
source/data/lang/wo.txt
source/data/lang/xh.txt [new file with mode: 0644]
source/data/lang/yo.txt
source/data/lang/yo_BJ.txt
source/data/lang/yue.txt
source/data/lang/yue_Hans.txt
source/data/lang/zgh.txt
source/data/lang/zh.txt
source/data/lang/zh_Hant.txt
source/data/lang/zh_Hant_HK.txt
source/data/lang/zh_Hant_MO.txt
source/data/lang/zu.txt
source/data/locales/af.txt
source/data/locales/am.txt
source/data/locales/ar.txt
source/data/locales/ar_SA.txt
source/data/locales/as.txt
source/data/locales/ast.txt
source/data/locales/az.txt
source/data/locales/az_Cyrl.txt
source/data/locales/be.txt
source/data/locales/bg.txt
source/data/locales/bn.txt
source/data/locales/bn_IN.txt
source/data/locales/br.txt
source/data/locales/brx.txt
source/data/locales/bs.txt
source/data/locales/bs_Cyrl.txt
source/data/locales/ca.txt
source/data/locales/ccp.txt
source/data/locales/ce.txt
source/data/locales/chr.txt
source/data/locales/ckb.txt
source/data/locales/cs.txt
source/data/locales/cy.txt
source/data/locales/da.txt
source/data/locales/de.txt
source/data/locales/de_AT.txt
source/data/locales/de_CH.txt
source/data/locales/dsb.txt
source/data/locales/dz.txt
source/data/locales/ee.txt
source/data/locales/el.txt
source/data/locales/en.txt
source/data/locales/en_001.txt
source/data/locales/en_AU.txt
source/data/locales/en_BE.txt
source/data/locales/en_CA.txt
source/data/locales/en_GB.txt
source/data/locales/en_HK.txt
source/data/locales/en_IE.txt
source/data/locales/en_IN.txt
source/data/locales/en_JM.txt
source/data/locales/en_NZ.txt
source/data/locales/en_ZW.txt
source/data/locales/es.txt
source/data/locales/es_419.txt
source/data/locales/es_AR.txt
source/data/locales/es_CO.txt
source/data/locales/es_MX.txt
source/data/locales/es_PY.txt
source/data/locales/es_US.txt
source/data/locales/es_UY.txt
source/data/locales/es_VE.txt
source/data/locales/et.txt
source/data/locales/eu.txt
source/data/locales/fa.txt
source/data/locales/fa_AF.txt
source/data/locales/ff_CM.txt [deleted file]
source/data/locales/ff_GN.txt [deleted file]
source/data/locales/ff_MR.txt [deleted file]
source/data/locales/ff_SN.txt [deleted file]
source/data/locales/fi.txt
source/data/locales/fil.txt
source/data/locales/fo.txt
source/data/locales/fr.txt
source/data/locales/fr_BE.txt
source/data/locales/fr_CA.txt
source/data/locales/fr_CH.txt
source/data/locales/fy.txt
source/data/locales/ga.txt
source/data/locales/gd.txt
source/data/locales/gl.txt
source/data/locales/gsw.txt
source/data/locales/gu.txt
source/data/locales/ha.txt
source/data/locales/ha_NE.txt
source/data/locales/haw.txt
source/data/locales/he.txt
source/data/locales/hi.txt
source/data/locales/hr.txt
source/data/locales/hsb.txt
source/data/locales/hu.txt
source/data/locales/hy.txt
source/data/locales/ia.txt [new file with mode: 0644]
source/data/locales/ia_001.txt [new file with mode: 0644]
source/data/locales/id.txt
source/data/locales/ig.txt
source/data/locales/is.txt
source/data/locales/it.txt
source/data/locales/ja.txt
source/data/locales/jv.txt [new file with mode: 0644]
source/data/locales/jv_ID.txt [new file with mode: 0644]
source/data/locales/ka.txt
source/data/locales/kab.txt
source/data/locales/kea.txt
source/data/locales/kk.txt
source/data/locales/kl.txt
source/data/locales/km.txt
source/data/locales/kn.txt
source/data/locales/ko.txt
source/data/locales/kok.txt
source/data/locales/ks.txt
source/data/locales/ksh.txt
source/data/locales/ku.txt [new file with mode: 0644]
source/data/locales/ku_TR.txt [new file with mode: 0644]
source/data/locales/kw.txt
source/data/locales/ky.txt
source/data/locales/lb.txt
source/data/locales/lo.txt
source/data/locales/lrc.txt
source/data/locales/lt.txt
source/data/locales/lv.txt
source/data/locales/mg.txt
source/data/locales/mi.txt [new file with mode: 0644]
source/data/locales/mi_NZ.txt [new file with mode: 0644]
source/data/locales/mk.txt
source/data/locales/ml.txt
source/data/locales/mn.txt
source/data/locales/mr.txt
source/data/locales/ms.txt
source/data/locales/mt.txt
source/data/locales/my.txt
source/data/locales/mzn.txt
source/data/locales/nb.txt
source/data/locales/ne.txt
source/data/locales/nl.txt
source/data/locales/nl_BE.txt
source/data/locales/nn.txt
source/data/locales/om.txt
source/data/locales/or.txt
source/data/locales/pa.txt
source/data/locales/pl.txt
source/data/locales/pool.res
source/data/locales/ps.txt
source/data/locales/pt.txt
source/data/locales/pt_PT.txt
source/data/locales/qu.txt
source/data/locales/resfiles.mk
source/data/locales/rm.txt
source/data/locales/ro.txt
source/data/locales/root.txt
source/data/locales/ru.txt
source/data/locales/ru_UA.txt
source/data/locales/rw.txt
source/data/locales/sah.txt
source/data/locales/sd.txt [new file with mode: 0644]
source/data/locales/sd_PK.txt [new file with mode: 0644]
source/data/locales/se.txt
source/data/locales/se_FI.txt
source/data/locales/si.txt
source/data/locales/sk.txt
source/data/locales/sl.txt
source/data/locales/sn.txt
source/data/locales/so.txt
source/data/locales/sq.txt
source/data/locales/sr.txt
source/data/locales/sr_Cyrl_BA.txt
source/data/locales/sr_Cyrl_ME.txt
source/data/locales/sr_Latn.txt
source/data/locales/sr_Latn_BA.txt
source/data/locales/sr_Latn_ME.txt
source/data/locales/sv.txt
source/data/locales/sw.txt
source/data/locales/sw_CD.txt
source/data/locales/sw_KE.txt
source/data/locales/ta.txt
source/data/locales/te.txt
source/data/locales/tg.txt
source/data/locales/th.txt
source/data/locales/ti.txt
source/data/locales/ti_ER.txt
source/data/locales/tk.txt [new file with mode: 0644]
source/data/locales/tk_TM.txt [new file with mode: 0644]
source/data/locales/to.txt
source/data/locales/tr.txt
source/data/locales/tt.txt
source/data/locales/ug.txt
source/data/locales/uk.txt
source/data/locales/ur.txt
source/data/locales/ur_IN.txt
source/data/locales/uz.txt
source/data/locales/uz_Cyrl.txt
source/data/locales/vi.txt
source/data/locales/wo.txt
source/data/locales/xh.txt [new file with mode: 0644]
source/data/locales/xh_ZA.txt [new file with mode: 0644]
source/data/locales/yo.txt
source/data/locales/yo_BJ.txt
source/data/locales/yue.txt
source/data/locales/yue_Hans.txt
source/data/locales/zgh.txt
source/data/locales/zh.txt
source/data/locales/zh_Hant.txt
source/data/locales/zh_Hant_HK.txt
source/data/locales/zh_Hant_MO.txt
source/data/locales/zu.txt
source/data/makedata.mak
source/data/misc/currencyNumericCodes.txt
source/data/misc/icuver.txt
source/data/misc/keyTypeData.txt
source/data/misc/likelySubtags.txt
source/data/misc/metadata.txt
source/data/misc/miscfiles.mk
source/data/misc/pluralRanges.txt [new file with mode: 0644]
source/data/misc/plurals.txt
source/data/misc/supplementalData.txt
source/data/misc/windowsZones.txt
source/data/rbnf/ar.txt
source/data/rbnf/de_CH.txt
source/data/rbnf/hu.txt
source/data/rbnf/rbnffiles.mk
source/data/rbnf/sr_Latn.txt
source/data/rbnf/yue_Hans.txt
source/data/region/af.txt
source/data/region/am.txt
source/data/region/ar.txt
source/data/region/ar_SA.txt
source/data/region/as.txt
source/data/region/ast.txt
source/data/region/az.txt
source/data/region/az_Cyrl.txt
source/data/region/be.txt
source/data/region/bg.txt
source/data/region/bn.txt
source/data/region/bn_IN.txt
source/data/region/br.txt
source/data/region/brx.txt
source/data/region/bs.txt
source/data/region/bs_Cyrl.txt
source/data/region/ca.txt
source/data/region/ccp.txt
source/data/region/ce.txt
source/data/region/chr.txt
source/data/region/ckb.txt
source/data/region/cs.txt
source/data/region/cy.txt
source/data/region/da.txt
source/data/region/de.txt
source/data/region/de_AT.txt
source/data/region/de_CH.txt
source/data/region/dsb.txt
source/data/region/dz.txt
source/data/region/ee.txt
source/data/region/el.txt
source/data/region/en.txt
source/data/region/en_AU.txt
source/data/region/en_BE.txt
source/data/region/en_CA.txt
source/data/region/en_GB.txt
source/data/region/en_HK.txt
source/data/region/en_IE.txt
source/data/region/en_IN.txt
source/data/region/en_JM.txt
source/data/region/en_NZ.txt
source/data/region/en_ZW.txt
source/data/region/es.txt
source/data/region/es_419.txt
source/data/region/es_AR.txt
source/data/region/es_CO.txt
source/data/region/es_MX.txt
source/data/region/es_PY.txt
source/data/region/es_US.txt
source/data/region/es_UY.txt
source/data/region/es_VE.txt
source/data/region/et.txt
source/data/region/eu.txt
source/data/region/fa.txt
source/data/region/fa_AF.txt
source/data/region/fi.txt
source/data/region/fil.txt
source/data/region/fo.txt
source/data/region/fr.txt
source/data/region/fr_BE.txt
source/data/region/fr_CA.txt
source/data/region/fy.txt
source/data/region/ga.txt
source/data/region/gd.txt
source/data/region/gl.txt
source/data/region/gsw.txt
source/data/region/gu.txt
source/data/region/ha.txt
source/data/region/haw.txt
source/data/region/he.txt
source/data/region/hi.txt
source/data/region/hr.txt
source/data/region/hsb.txt
source/data/region/hu.txt
source/data/region/hy.txt
source/data/region/ia.txt [new file with mode: 0644]
source/data/region/id.txt
source/data/region/ig.txt
source/data/region/is.txt
source/data/region/it.txt
source/data/region/ja.txt
source/data/region/jv.txt [new file with mode: 0644]
source/data/region/ka.txt
source/data/region/kab.txt
source/data/region/kea.txt
source/data/region/kk.txt
source/data/region/kl.txt
source/data/region/km.txt
source/data/region/kn.txt
source/data/region/ko.txt
source/data/region/kok.txt
source/data/region/ks.txt
source/data/region/ksh.txt
source/data/region/ku.txt [new file with mode: 0644]
source/data/region/kw.txt
source/data/region/ky.txt
source/data/region/lb.txt
source/data/region/lo.txt
source/data/region/lrc.txt
source/data/region/lt.txt
source/data/region/lv.txt
source/data/region/mg.txt
source/data/region/mi.txt [new file with mode: 0644]
source/data/region/mk.txt
source/data/region/ml.txt
source/data/region/mn.txt
source/data/region/mr.txt
source/data/region/ms.txt
source/data/region/mt.txt
source/data/region/my.txt
source/data/region/mzn.txt
source/data/region/nb.txt
source/data/region/ne.txt
source/data/region/nl.txt
source/data/region/nn.txt
source/data/region/om.txt
source/data/region/or.txt
source/data/region/pa.txt
source/data/region/pl.txt
source/data/region/pool.res
source/data/region/ps.txt
source/data/region/pt.txt
source/data/region/pt_PT.txt
source/data/region/qu.txt
source/data/region/resfiles.mk
source/data/region/rm.txt
source/data/region/ro.txt
source/data/region/root.txt
source/data/region/ru.txt
source/data/region/ru_UA.txt
source/data/region/rw.txt
source/data/region/sah.txt
source/data/region/sd.txt [new file with mode: 0644]
source/data/region/se.txt
source/data/region/se_FI.txt
source/data/region/si.txt
source/data/region/sk.txt
source/data/region/sl.txt
source/data/region/sn.txt
source/data/region/so.txt
source/data/region/sq.txt
source/data/region/sr.txt
source/data/region/sr_Cyrl_BA.txt
source/data/region/sr_Cyrl_ME.txt
source/data/region/sr_Latn.txt
source/data/region/sr_Latn_BA.txt
source/data/region/sr_Latn_ME.txt
source/data/region/sv.txt
source/data/region/sw.txt
source/data/region/sw_CD.txt
source/data/region/sw_KE.txt
source/data/region/ta.txt
source/data/region/te.txt
source/data/region/tg.txt
source/data/region/th.txt
source/data/region/ti.txt
source/data/region/tk.txt [new file with mode: 0644]
source/data/region/to.txt
source/data/region/tr.txt
source/data/region/tt.txt
source/data/region/ug.txt
source/data/region/uk.txt
source/data/region/ur.txt
source/data/region/ur_IN.txt
source/data/region/uz.txt
source/data/region/uz_Cyrl.txt
source/data/region/vi.txt
source/data/region/wo.txt
source/data/region/xh.txt [new file with mode: 0644]
source/data/region/yo.txt
source/data/region/yo_BJ.txt
source/data/region/yue.txt
source/data/region/yue_Hans.txt
source/data/region/zgh.txt
source/data/region/zh.txt
source/data/region/zh_Hant.txt
source/data/region/zh_Hant_HK.txt
source/data/region/zh_Hant_MO.txt
source/data/region/zu.txt
source/data/translit/Hans_Hant.txt
source/data/translit/Zawgyi_my.txt
source/data/translit/my_Zawgyi.txt [new file with mode: 0644]
source/data/translit/root.txt
source/data/translit/ug_ug_FONIPA.txt [new file with mode: 0644]
source/data/unidata/changes.txt
source/data/unidata/norm2/uts46.txt
source/data/unit/af.txt
source/data/unit/am.txt
source/data/unit/ar.txt
source/data/unit/as.txt
source/data/unit/ast.txt
source/data/unit/az.txt
source/data/unit/az_Cyrl.txt
source/data/unit/be.txt
source/data/unit/bg.txt
source/data/unit/bn.txt
source/data/unit/br.txt
source/data/unit/brx.txt
source/data/unit/bs.txt
source/data/unit/bs_Cyrl.txt
source/data/unit/ca.txt
source/data/unit/ccp.txt
source/data/unit/ce.txt
source/data/unit/chr.txt
source/data/unit/ckb.txt
source/data/unit/cs.txt
source/data/unit/cy.txt
source/data/unit/da.txt
source/data/unit/de.txt
source/data/unit/de_CH.txt
source/data/unit/dsb.txt
source/data/unit/dz.txt
source/data/unit/ee.txt
source/data/unit/el.txt
source/data/unit/en.txt
source/data/unit/en_001.txt
source/data/unit/en_AU.txt
source/data/unit/en_BE.txt
source/data/unit/en_CA.txt
source/data/unit/en_GB.txt
source/data/unit/en_HK.txt
source/data/unit/en_IE.txt
source/data/unit/en_IN.txt
source/data/unit/en_JM.txt
source/data/unit/en_NZ.txt
source/data/unit/en_ZW.txt
source/data/unit/es.txt
source/data/unit/es_419.txt
source/data/unit/es_AR.txt
source/data/unit/es_CO.txt
source/data/unit/es_MX.txt
source/data/unit/es_PY.txt
source/data/unit/es_US.txt
source/data/unit/es_UY.txt
source/data/unit/es_VE.txt
source/data/unit/et.txt
source/data/unit/eu.txt
source/data/unit/fa.txt
source/data/unit/fi.txt
source/data/unit/fil.txt
source/data/unit/fo.txt
source/data/unit/fr.txt
source/data/unit/fr_CA.txt
source/data/unit/fy.txt
source/data/unit/ga.txt
source/data/unit/gd.txt
source/data/unit/gl.txt
source/data/unit/gsw.txt
source/data/unit/gu.txt
source/data/unit/ha.txt
source/data/unit/haw.txt
source/data/unit/he.txt
source/data/unit/hi.txt
source/data/unit/hr.txt
source/data/unit/hsb.txt
source/data/unit/hu.txt
source/data/unit/hy.txt
source/data/unit/ia.txt [new file with mode: 0644]
source/data/unit/id.txt
source/data/unit/ig.txt
source/data/unit/is.txt
source/data/unit/it.txt
source/data/unit/ja.txt
source/data/unit/jv.txt [new file with mode: 0644]
source/data/unit/ka.txt
source/data/unit/kab.txt
source/data/unit/kea.txt
source/data/unit/kk.txt
source/data/unit/kl.txt
source/data/unit/km.txt
source/data/unit/kn.txt
source/data/unit/ko.txt
source/data/unit/kok.txt
source/data/unit/ks.txt
source/data/unit/ksh.txt
source/data/unit/ku.txt [new file with mode: 0644]
source/data/unit/kw.txt
source/data/unit/ky.txt
source/data/unit/lb.txt
source/data/unit/lo.txt
source/data/unit/lrc.txt
source/data/unit/lt.txt
source/data/unit/lv.txt
source/data/unit/mg.txt
source/data/unit/mi.txt [new file with mode: 0644]
source/data/unit/mk.txt
source/data/unit/ml.txt
source/data/unit/mn.txt
source/data/unit/mr.txt
source/data/unit/ms.txt
source/data/unit/mt.txt
source/data/unit/my.txt
source/data/unit/mzn.txt
source/data/unit/nb.txt
source/data/unit/ne.txt
source/data/unit/nl.txt
source/data/unit/nn.txt
source/data/unit/om.txt
source/data/unit/or.txt
source/data/unit/pa.txt
source/data/unit/pl.txt
source/data/unit/pool.res
source/data/unit/ps.txt
source/data/unit/pt.txt
source/data/unit/pt_PT.txt
source/data/unit/qu.txt
source/data/unit/resfiles.mk
source/data/unit/rm.txt
source/data/unit/ro.txt
source/data/unit/root.txt
source/data/unit/ru.txt
source/data/unit/rw.txt
source/data/unit/sah.txt
source/data/unit/sd.txt [new file with mode: 0644]
source/data/unit/se.txt
source/data/unit/si.txt
source/data/unit/sk.txt
source/data/unit/sl.txt
source/data/unit/sn.txt
source/data/unit/so.txt
source/data/unit/sq.txt
source/data/unit/sr.txt
source/data/unit/sr_Latn.txt
source/data/unit/sv.txt
source/data/unit/sw.txt
source/data/unit/ta.txt
source/data/unit/te.txt
source/data/unit/tg.txt
source/data/unit/th.txt
source/data/unit/ti.txt
source/data/unit/tk.txt [new file with mode: 0644]
source/data/unit/to.txt
source/data/unit/tr.txt
source/data/unit/tt.txt
source/data/unit/ug.txt
source/data/unit/uk.txt
source/data/unit/ur.txt
source/data/unit/ur_IN.txt
source/data/unit/uz.txt
source/data/unit/uz_Cyrl.txt
source/data/unit/vi.txt
source/data/unit/wo.txt
source/data/unit/xh.txt [new file with mode: 0644]
source/data/unit/yo.txt
source/data/unit/yue.txt
source/data/unit/yue_Hans.txt
source/data/unit/zgh.txt
source/data/unit/zh.txt
source/data/unit/zh_Hant.txt
source/data/unit/zh_Hant_HK.txt
source/data/unit/zh_Hant_MO.txt
source/data/unit/zu.txt
source/data/xml/brkitr/de.xml
source/data/xml/brkitr/el.xml
source/data/xml/brkitr/en.xml
source/data/xml/brkitr/en_US.xml
source/data/xml/brkitr/en_US_POSIX.xml
source/data/xml/brkitr/es.xml
source/data/xml/brkitr/fi.xml [deleted file]
source/data/xml/brkitr/fr.xml
source/data/xml/brkitr/it.xml
source/data/xml/brkitr/ja.xml
source/data/xml/brkitr/pt.xml
source/data/xml/brkitr/root.xml
source/data/xml/brkitr/ru.xml
source/data/xml/collation/root.xml
source/data/xml/main/root.xml
source/data/xml/rbnf/be.xml
source/data/xml/rbnf/bg.xml
source/data/xml/rbnf/ca.xml
source/data/xml/rbnf/cy.xml
source/data/xml/rbnf/da.xml
source/data/xml/rbnf/de.xml
source/data/xml/rbnf/en.xml
source/data/xml/rbnf/fo.xml
source/data/xml/rbnf/ga.xml
source/data/xml/rbnf/is.xml
source/data/xml/rbnf/mk.xml
source/data/xml/rbnf/mt.xml
source/data/xml/rbnf/nb.xml
source/data/xml/rbnf/nn.xml
source/data/xml/rbnf/root.xml
source/data/xml/rbnf/ru.xml
source/data/xml/rbnf/sr.xml
source/data/xml/rbnf/uk.xml
source/data/zone/af.txt
source/data/zone/am.txt
source/data/zone/ar.txt
source/data/zone/as.txt
source/data/zone/ast.txt
source/data/zone/az.txt
source/data/zone/az_Cyrl.txt
source/data/zone/be.txt
source/data/zone/bg.txt
source/data/zone/bn.txt
source/data/zone/br.txt
source/data/zone/brx.txt
source/data/zone/bs.txt
source/data/zone/bs_Cyrl.txt
source/data/zone/ca.txt
source/data/zone/ccp.txt
source/data/zone/ce.txt
source/data/zone/chr.txt
source/data/zone/ckb.txt
source/data/zone/cs.txt
source/data/zone/cy.txt
source/data/zone/da.txt
source/data/zone/de.txt
source/data/zone/de_CH.txt
source/data/zone/dsb.txt
source/data/zone/dz.txt
source/data/zone/ee.txt
source/data/zone/el.txt
source/data/zone/en.txt
source/data/zone/en_001.txt
source/data/zone/en_AU.txt
source/data/zone/en_BE.txt
source/data/zone/en_CA.txt
source/data/zone/en_GB.txt
source/data/zone/en_HK.txt
source/data/zone/en_IE.txt
source/data/zone/en_IN.txt
source/data/zone/en_JM.txt
source/data/zone/en_NZ.txt
source/data/zone/en_ZW.txt
source/data/zone/es.txt
source/data/zone/es_419.txt
source/data/zone/es_AR.txt
source/data/zone/es_CO.txt
source/data/zone/es_MX.txt
source/data/zone/es_PY.txt
source/data/zone/es_US.txt
source/data/zone/es_UY.txt
source/data/zone/es_VE.txt
source/data/zone/et.txt
source/data/zone/eu.txt
source/data/zone/fa.txt
source/data/zone/fi.txt
source/data/zone/fil.txt
source/data/zone/fo.txt
source/data/zone/fr.txt
source/data/zone/fr_CA.txt
source/data/zone/fy.txt
source/data/zone/ga.txt
source/data/zone/gd.txt
source/data/zone/gl.txt
source/data/zone/gsw.txt
source/data/zone/gu.txt
source/data/zone/ha.txt
source/data/zone/haw.txt
source/data/zone/he.txt
source/data/zone/hi.txt
source/data/zone/hr.txt
source/data/zone/hsb.txt
source/data/zone/hu.txt
source/data/zone/hy.txt
source/data/zone/ia.txt [new file with mode: 0644]
source/data/zone/id.txt
source/data/zone/ig.txt
source/data/zone/is.txt
source/data/zone/it.txt
source/data/zone/ja.txt
source/data/zone/jv.txt [new file with mode: 0644]
source/data/zone/ka.txt
source/data/zone/kab.txt
source/data/zone/kea.txt
source/data/zone/kk.txt
source/data/zone/kl.txt
source/data/zone/km.txt
source/data/zone/kn.txt
source/data/zone/ko.txt
source/data/zone/kok.txt
source/data/zone/ks.txt
source/data/zone/ksh.txt
source/data/zone/ku.txt [new file with mode: 0644]
source/data/zone/kw.txt
source/data/zone/ky.txt
source/data/zone/lb.txt
source/data/zone/lo.txt
source/data/zone/lrc.txt
source/data/zone/lt.txt
source/data/zone/lv.txt
source/data/zone/mg.txt
source/data/zone/mi.txt [new file with mode: 0644]
source/data/zone/mk.txt
source/data/zone/ml.txt
source/data/zone/mn.txt
source/data/zone/mr.txt
source/data/zone/ms.txt
source/data/zone/mt.txt
source/data/zone/my.txt
source/data/zone/mzn.txt
source/data/zone/nb.txt
source/data/zone/ne.txt
source/data/zone/nl.txt
source/data/zone/nn.txt
source/data/zone/om.txt
source/data/zone/or.txt
source/data/zone/pa.txt
source/data/zone/pl.txt
source/data/zone/pool.res
source/data/zone/ps.txt
source/data/zone/pt.txt
source/data/zone/pt_PT.txt
source/data/zone/qu.txt
source/data/zone/resfiles.mk
source/data/zone/rm.txt
source/data/zone/ro.txt
source/data/zone/root.txt
source/data/zone/ru.txt
source/data/zone/rw.txt
source/data/zone/sah.txt
source/data/zone/sd.txt [new file with mode: 0644]
source/data/zone/se.txt
source/data/zone/se_FI.txt
source/data/zone/si.txt
source/data/zone/sk.txt
source/data/zone/sl.txt
source/data/zone/sn.txt
source/data/zone/so.txt
source/data/zone/sq.txt
source/data/zone/sr.txt
source/data/zone/sr_Latn.txt
source/data/zone/sv.txt
source/data/zone/sw.txt
source/data/zone/ta.txt
source/data/zone/te.txt
source/data/zone/tg.txt
source/data/zone/th.txt
source/data/zone/ti.txt
source/data/zone/tk.txt [new file with mode: 0644]
source/data/zone/to.txt
source/data/zone/tr.txt
source/data/zone/tt.txt
source/data/zone/ug.txt
source/data/zone/uk.txt
source/data/zone/ur.txt
source/data/zone/ur_IN.txt
source/data/zone/uz.txt
source/data/zone/uz_Cyrl.txt
source/data/zone/vi.txt
source/data/zone/wo.txt
source/data/zone/xh.txt [new file with mode: 0644]
source/data/zone/yo.txt
source/data/zone/yue.txt
source/data/zone/yue_Hans.txt
source/data/zone/zgh.txt
source/data/zone/zh.txt
source/data/zone/zh_Hant.txt
source/data/zone/zh_Hant_HK.txt
source/data/zone/zh_Hant_MO.txt
source/data/zone/zu.txt
source/i18n/Makefile.in
source/i18n/alphaindex.cpp
source/i18n/anytrans.cpp
source/i18n/calendar.cpp
source/i18n/coll.cpp
source/i18n/collationkeys.cpp
source/i18n/csrmbcs.cpp
source/i18n/currpinf.cpp
source/i18n/currunit.cpp
source/i18n/dcfmtsym.cpp
source/i18n/decimfmt.cpp
source/i18n/dtfmtsym.cpp
source/i18n/dtitvfmt.cpp
source/i18n/dtitvinf.cpp
source/i18n/dtptngen.cpp
source/i18n/dtptngen_impl.h
source/i18n/erarules.cpp [new file with mode: 0644]
source/i18n/erarules.h [new file with mode: 0644]
source/i18n/fphdlimp.h
source/i18n/gregocal.cpp
source/i18n/gregoimp.h
source/i18n/i18n.vcxproj
source/i18n/i18n.vcxproj.filters
source/i18n/i18n_uwp.vcxproj
source/i18n/indiancal.cpp
source/i18n/indiancal.h
source/i18n/japancal.cpp
source/i18n/japancal.h
source/i18n/listformatter.cpp [new file with mode: 0644]
source/i18n/measfmt.cpp
source/i18n/measunit.cpp
source/i18n/msgfmt.cpp
source/i18n/nfrule.cpp
source/i18n/nfrule.h
source/i18n/number_compact.cpp
source/i18n/number_decimalquantity.cpp
source/i18n/number_decimfmtprops.cpp
source/i18n/number_fluent.cpp
source/i18n/number_formatimpl.cpp
source/i18n/number_formatimpl.h
source/i18n/number_grouping.cpp
source/i18n/number_longnames.cpp
source/i18n/number_longnames.h
source/i18n/number_mapper.cpp
source/i18n/number_modifiers.cpp
source/i18n/number_modifiers.h
source/i18n/number_multiplier.cpp
source/i18n/number_multiplier.h
source/i18n/number_padding.cpp
source/i18n/number_patternmodifier.cpp
source/i18n/number_patternmodifier.h
source/i18n/number_scientific.cpp
source/i18n/number_scientific.h
source/i18n/number_stringbuilder.cpp
source/i18n/number_stringbuilder.h
source/i18n/number_types.h
source/i18n/numfmt.cpp
source/i18n/numparse_currency.cpp
source/i18n/numparse_impl.cpp
source/i18n/numparse_scientific.cpp
source/i18n/numrange_fluent.cpp [new file with mode: 0644]
source/i18n/numrange_impl.cpp [new file with mode: 0644]
source/i18n/numrange_impl.h [new file with mode: 0644]
source/i18n/numsys.cpp
source/i18n/numsys_impl.h
source/i18n/olsontz.cpp
source/i18n/plurrule.cpp
source/i18n/plurrule_impl.h
source/i18n/rbnf.cpp
source/i18n/rbt.h
source/i18n/rbt_pars.cpp
source/i18n/regexcmp.cpp
source/i18n/region.cpp
source/i18n/reldatefmt.cpp
source/i18n/reldtfmt.cpp
source/i18n/reldtfmt.h
source/i18n/rematch.cpp
source/i18n/rulebasedcollator.cpp
source/i18n/scriptset.cpp
source/i18n/shareddateformatsymbols.h
source/i18n/smpdtfmt.cpp
source/i18n/timezone.cpp
source/i18n/transreg.cpp
source/i18n/tzfmt.cpp
source/i18n/tzgnames.cpp
source/i18n/tznames.cpp
source/i18n/tznames_impl.cpp
source/i18n/ucln_in.h
source/i18n/ucol_res.cpp
source/i18n/udat.cpp
source/i18n/ulistformatter.cpp [new file with mode: 0644]
source/i18n/ulocdata.cpp
source/i18n/unicode/alphaindex.h
source/i18n/unicode/calendar.h
source/i18n/unicode/coll.h
source/i18n/unicode/compactdecimalformat.h
source/i18n/unicode/currpinf.h
source/i18n/unicode/currunit.h
source/i18n/unicode/datefmt.h
source/i18n/unicode/dcfmtsym.h
source/i18n/unicode/decimfmt.h
source/i18n/unicode/dtptngen.h
source/i18n/unicode/fmtable.h
source/i18n/unicode/gender.h
source/i18n/unicode/listformatter.h [new file with mode: 0644]
source/i18n/unicode/measfmt.h
source/i18n/unicode/measunit.h
source/i18n/unicode/msgfmt.h
source/i18n/unicode/numberformatter.h
source/i18n/unicode/numberrangeformatter.h [new file with mode: 0644]
source/i18n/unicode/numfmt.h
source/i18n/unicode/plurfmt.h
source/i18n/unicode/plurrule.h
source/i18n/unicode/rbnf.h
source/i18n/unicode/region.h
source/i18n/unicode/reldatefmt.h
source/i18n/unicode/smpdtfmt.h
source/i18n/unicode/translit.h
source/i18n/unicode/tzfmt.h
source/i18n/unicode/ucal.h
source/i18n/unicode/ucol.h
source/i18n/unicode/ugender.h
source/i18n/unicode/ulistformatter.h [new file with mode: 0644]
source/i18n/unicode/unumberformatter.h
source/i18n/unicode/usearch.h
source/i18n/unicode/uspoof.h
source/i18n/uregex.cpp
source/i18n/usearch.cpp
source/i18n/uspoof_impl.h
source/i18n/vtzone.cpp
source/i18n/zonemeta.cpp
source/io/io.vcxproj
source/io/ufmt_cmn.cpp
source/io/uprintf.cpp
source/io/ustream.cpp
source/layoutex/layout/ParagraphLayout.h
source/layoutex/layoutex.vcxproj
source/runConfigureICU
source/samples/all/samplecheck.bat
source/samples/date/date.c
source/stubdata/stubdata.vcxproj
source/test/Makefile.in
source/test/cintltst/Makefile.in
source/test/cintltst/callcoll.c
source/test/cintltst/cbiapts.c
source/test/cintltst/cintltst.vcxproj
source/test/cintltst/cintltst.vcxproj.filters
source/test/cintltst/cldrtest.c
source/test/cintltst/cloctst.c
source/test/cintltst/cloctst.h
source/test/cintltst/cnmdptst.c
source/test/cintltst/cucdtst.c
source/test/cintltst/cutiltst.c
source/test/cintltst/trie2test.c
source/test/cintltst/ucptrietest.c [new file with mode: 0644]
source/test/cintltst/uregiontest.c
source/test/depstest/dependencies.py
source/test/depstest/dependencies.txt
source/test/depstest/depstest.py
source/test/hdrtst/cxxfiles.txt
source/test/intltest/Makefile.in
source/test/intltest/calregts.cpp
source/test/intltest/compactdecimalformattest.cpp
source/test/intltest/cpdtrtst.h
source/test/intltest/dtifmtts.cpp
source/test/intltest/erarulestest.cpp [new file with mode: 0644]
source/test/intltest/erarulestest.h [new file with mode: 0644]
source/test/intltest/intltest.vcxproj
source/test/intltest/intltest.vcxproj.filters
source/test/intltest/itformat.cpp
source/test/intltest/itutil.cpp
source/test/intltest/listformattertest.cpp
source/test/intltest/listformattertest.h
source/test/intltest/loctest.cpp
source/test/intltest/loctest.h
source/test/intltest/measfmttest.cpp
source/test/intltest/numbertest.h
source/test/intltest/numbertest_api.cpp
source/test/intltest/numbertest_modifiers.cpp
source/test/intltest/numbertest_patternmodifier.cpp
source/test/intltest/numbertest_range.cpp [new file with mode: 0644]
source/test/intltest/numfmtspectest.cpp
source/test/intltest/numfmtst.cpp
source/test/intltest/numfmtst.h
source/test/intltest/numrgts.cpp
source/test/intltest/rbbimonkeytest.cpp
source/test/intltest/rbbimonkeytest.h
source/test/intltest/rbbitst.cpp
source/test/intltest/regiontst.cpp
source/test/intltest/reldatefmttest.cpp
source/test/intltest/strcase.cpp
source/test/intltest/tmsgfmt.cpp
source/test/intltest/tsmthred.cpp
source/test/intltest/tsmthred.h
source/test/intltest/tstnorm.cpp
source/test/intltest/ucdtest.cpp
source/test/intltest/ucdtest.h
source/test/intltest/ustrtest.cpp
source/test/intltest/ustrtest.h
source/test/iotest/filetst.c
source/test/iotest/iotest.cpp
source/test/iotest/trnstst.c
source/test/perf/normperf/Makefile.in
source/test/perf/normperf/simplenormperf.cpp [new file with mode: 0644]
source/test/testdata/break_rules/line.txt
source/test/testdata/break_rules/line_loose.txt
source/test/testdata/break_rules/line_loose_cj.txt
source/test/testdata/break_rules/line_normal.txt
source/test/testdata/break_rules/line_normal_cj.txt
source/test/testdata/format.txt
source/test/testdata/numberformattestspecification.txt
source/test/testdata/rbbitst.txt
source/test/testdata/regextst.txt
source/test/testdata/root.txt
source/test/testdata/structLocale.txt
source/test/testdata/testnorm.txt
source/tools/ctestfw/ctestfw.vcxproj
source/tools/ctestfw/tstdtmod.cpp
source/tools/ctestfw/unicode/testlog.h
source/tools/gencfu/gencfu.cpp
source/tools/gencnval/gencnval.c
source/tools/gennorm2/gennorm2.cpp
source/tools/gennorm2/n2builder.cpp
source/tools/gennorm2/n2builder.h
source/tools/gennorm2/norms.cpp
source/tools/gennorm2/norms.h
source/tools/genrb/parse.cpp
source/tools/genrb/reslist.cpp
source/tools/genren/genren.pl
source/tools/gensprep/gensprep.c
source/tools/icu-file-utf8-check.py [new file with mode: 0755]
source/tools/icu-svnprops-check.py [deleted file]
source/tools/pkgdata/pkgdata.cpp
source/tools/toolutil/filestrm.cpp
source/tools/toolutil/filetools.cpp
source/tools/toolutil/package.cpp
source/tools/toolutil/swapimpl.cpp
source/tools/toolutil/toolutil.vcxproj
source/tools/toolutil/udbgutil.cpp
source/tools/toolutil/unewdata.cpp
source/tools/toolutil/writesrc.cpp
source/tools/toolutil/writesrc.h

diff --git a/.gitignore b/.gitignore
deleted file mode 100644 (file)
index 563eb51..0000000
+++ /dev/null
@@ -1,93 +0,0 @@
-# Copyright (C) 2016 and later: Unicode, Inc. and others.
-# License & terms of use: http://www.unicode.org/copyright.html
-Makefile
-*.o
-*.d
-bin/
-*.1
-*.8
-*.ao
-*.dylib
-lib/
-bin64/
-lib64/
-bin32uwp/
-lib32uwp/
-bin64uwp/
-lib64uwp/
-commondata/
-
-icudefs.mk
-pkgdata.inc
-common/svchook.mk
-config.log
-config.status
-config/Makefile.inc
-config/icu-config
-config/icu*.pc
-config/icucross.inc
-config/icucross.mk
-config/pkgdata.inc
-config/pkgdataMakefile
-data/build-dir
-data/build-local
-data/icupkg.inc
-data/out/
-data/data/
-data/packagedata
-data/pkgdataMakefile
-extra/uconv/pkgdata.inc
-extra/uconv/pkgdataMakefile
-extra/uconv/uconvmsg/
-samples/cal/icucal
-samples/date/icudate
-stubdata/libicudata.so*
-test/testdata/pkgdataMakefile
-tools/ctestfw/libicutest.so*
-tools/gentest/gentest
-tools/icuinfo/icuinfo
-*.lib
-*.dll
-*.exp
-/source/common/svchook.mk
-/source/config/Makefile.inc
-/source/config/icu-config
-/source/config/icu-i18n.pc
-/source/config/icu-io.pc
-/source/config/icu-uc.pc
-/source/config/icu.pc
-/source/config/icucross.inc
-/source/config/icucross.mk
-/source/config/icuinfo.xml
-/source/config/pkgdataMakefile
-/source/data/build-dir
-/source/data/build-local
-/source/data/icupkg.inc
-/source/data/out/
-/source/data/packagedata
-/source/data/pkgdataMakefile
-/source/extra/uconv/pkgdataMakefile
-/source/extra/uconv/uconvmsg/
-/source/samples/cal/icucal
-/source/samples/date/icudate
-/source/test/cintltst/cintltst
-/source/test/intltest/intltest
-/source/test/iotest/iotest
-/source/test/testdata/out/
-/source/test/testdata/pkgdataMakefile
-/source/tools/escapesrc/output-*.cpp
-/source/tools/gentest/gentest
-/source/tools/icuinfo/icuinfo
-
-*.ncb
-*.opt
-*.suo
-*.sdf
-*.opensdf
-ipch
-.vs
-Debug
-*.db
-*.opendb
-*.so
-*.so.*
index cd89b460a34a117321a7184a487b624d892a5fb9..155b6c7d0a5afb525b05abb57ff26322b56f8860 100644 (file)
        -->
 <head>
 <META http-equiv="Content-Type" content="text/html; charset=utf-8">
-<title>ICU4C API Comparison: ICU 61 with ICU 62</title>
+<title>ICU4C API Comparison: ICU 62 with ICU 63</title>
 <link type="text/css" href="icu4c.css" rel="stylesheet">
 </head>
 <body>
 <a name="#_top"></a>
-<h1>ICU4C API Comparison: ICU 61 with ICU 62</h1>
+<h1>ICU4C API Comparison: ICU 62 with ICU 63</h1>
 <div id="toc">
 <ul>
 <li>
-<a href="#notes">Notes</a><sup style="background-color: yellow; font-size: smallest;">(new)</sup>
+<a href="#removed">Removed from ICU 62</a>
 </li>
 <li>
-<a href="#removed">Removed from ICU 61</a>
+<a href="#deprecated">Deprecated or Obsoleted in ICU 63</a>
 </li>
 <li>
-<a href="#deprecated">Deprecated or Obsoleted in ICU 62</a>
+<a href="#changed">Changed in  ICU 63</a>
 </li>
 <li>
-<a href="#changed">Changed in  ICU 62</a>
+<a href="#promoted">Promoted to stable in ICU 63</a>
 </li>
 <li>
-<a href="#promoted">Promoted to stable in ICU 62</a>
+<a href="#added">Added in ICU 63</a>
 </li>
 <li>
-<a href="#added">Added in ICU 62</a>
-</li>
-<li>
-<a href="#other">Other existing drafts in ICU 62</a>
+<a href="#other">Other existing drafts in ICU 63</a>
 </li>
 <li>
 <a href="#purevirtual">Signature Simplifications</a><sup style="background-color: yellow; font-size: smallest;">(new)</sup>
 </li>
 </ul>
-</div>
-<hr>
-<a name="notes"></a>
-<h2>Notes</h2>
-<ul>
-<li>Several type names including “Rounder” were renamed to use “Precision”. The signatures below reflect the new names. The old names have been <code>typedef</code>’d to the new names, but those typedefs will be removed in ICU 64:<br>
-<code>
-typedef Precision Rounder;<br>
-typedef FractionPrecision FractionRounder;<br>
-typedef IncrementPrecision IncrementRounder;<br>
-typedef CurrencyPrecision CurrencyRounder;
-</code>
-</li>
-</ul>
-<a href="#_top">(jump back to top)</a>
 <hr>
+</div>
 <a name="removed"></a>
-<h2>Removed from ICU 61</h2>
+<h2>Removed from ICU 62</h2>
 <table BORDER="1" class="genTable">
 <THEAD>
 <tr>
-<th>File</th><th>API</th><th>ICU 61</th><th>ICU 62</th>
+<th>File</th><th>API</th><th>ICU 62</th><th>ICU 63</th>
 </tr>
 </THEAD>
+
+<!-- delete whole "Removed from ICU 62 contents.
+
+<tr class="row1">
+<td class="file">enumset.h</td><td class="proto">UBool icu::EnumSet&lt; T, minValue, limitValue &gt;::isValidEnum(T) const</td><td class=""><i>(untagged)</i></td><td>(missing)<br>
+<span class=""><span></span></span></td>
+</tr>
+<tr class="row0">
+<td class="file">enumset.h</td><td class="proto">UBool icu::EnumSet&lt; T, minValue, limitValue &gt;::isValidValue(int32_t) const</td><td class=""><i>(untagged)</i></td><td>(missing)<br>
+<span class=""><span></span></span></td>
+</tr>
 <tr class="row1">
-<td class="file">compactdecimalformat.h</td><td class="proto">UBool icu::CompactDecimalFormat::operator==(const Format&amp;)</td><td class="stabchange">Stable<br>ICU 51</td><td>(missing)<br>
+<td class="file">enumset.h</td><td class="proto">const EnumSet&lt;T, minValue, limitValue&gt;&amp; icu::EnumSet&lt; T, minValue, limitValue &gt;::operator=(const EnumSet&lt;,, limitValue &gt;&amp;)</td><td class=""><i>(untagged)</i></td><td>(missing)<br>
 <span class=""><span></span></span></td>
 </tr>
 <tr class="row0">
-<td class="file">compactdecimalformat.h</td><td class="proto">UnicodeString&amp; icu::CompactDecimalFormat::format(StringPiece, UnicodeString&amp;, FieldPositionIterator*, UErrorCode&amp;)</td><td class="">Internal</td><td>(missing)<br>
+<td class="file">enumset.h</td><td class="proto">icu::EnumSet&lt; T, minValue, limitValue &gt;::EnumSet()</td><td class=""><i>(untagged)</i></td><td>(missing)<br>
 <span class=""><span></span></span></td>
 </tr>
 <tr class="row1">
-<td class="file">compactdecimalformat.h</td><td class="proto">UnicodeString&amp; icu::CompactDecimalFormat::format(const DigitList&amp;, UnicodeString&amp;, FieldPosition&amp;, UErrorCode&amp;)</td><td class="">Internal</td><td>(missing)<br>
+<td class="file">enumset.h</td><td class="proto">icu::EnumSet&lt; T, minValue, limitValue &gt;::EnumSet(const EnumSet&lt;,, limitValue &gt;&amp;)</td><td class=""><i>(untagged)</i></td><td>(missing)<br>
 <span class=""><span></span></span></td>
 </tr>
 <tr class="row0">
-<td class="file">compactdecimalformat.h</td><td class="proto">UnicodeString&amp; icu::CompactDecimalFormat::format(const DigitList&amp;, UnicodeString&amp;, FieldPositionIterator*, UErrorCode&amp;)</td><td class="">Internal</td><td>(missing)<br>
+<td class="file">enumset.h</td><td class="proto">icu::EnumSet&lt; T, minValue, limitValue &gt;::~EnumSet()</td><td class=""><i>(untagged)</i></td><td>(missing)<br>
 <span class=""><span></span></span></td>
 </tr>
 <tr class="row1">
-<td class="file">compactdecimalformat.h</td><td class="proto">UnicodeString&amp; icu::CompactDecimalFormat::format(double, UnicodeString&amp;, FieldPosition&amp;)</td><td class="stabchange">Stable<br>ICU 51</td><td>(missing)<br>
+<td class="file">enumset.h</td><td class="proto">int32_t icu::EnumSet&lt; T, minValue, limitValue &gt;::contains(T) const</td><td class=""><i>(untagged)</i></td><td>(missing)<br>
 <span class=""><span></span></span></td>
 </tr>
 <tr class="row0">
-<td class="file">compactdecimalformat.h</td><td class="proto">UnicodeString&amp; icu::CompactDecimalFormat::format(double, UnicodeString&amp;, FieldPosition&amp;, UErrorCode&amp;)</td><td class="">Internal</td><td>(missing)<br>
+<td class="file">enumset.h</td><td class="proto">int32_t icu::EnumSet&lt; T, minValue, limitValue &gt;::get(T) const</td><td class=""><i>(untagged)</i></td><td>(missing)<br>
 <span class=""><span></span></span></td>
 </tr>
 <tr class="row1">
-<td class="file">compactdecimalformat.h</td><td class="proto">UnicodeString&amp; icu::CompactDecimalFormat::format(double, UnicodeString&amp;, FieldPositionIterator*, UErrorCode&amp;)</td><td class="">Internal</td><td>(missing)<br>
+<td class="file">enumset.h</td><td class="proto">uint32_t icu::EnumSet&lt; T, minValue, limitValue &gt;::getAll() const</td><td class=""><i>(untagged)</i></td><td>(missing)<br>
 <span class=""><span></span></span></td>
 </tr>
 <tr class="row0">
-<td class="file">compactdecimalformat.h</td><td class="proto">UnicodeString&amp; icu::CompactDecimalFormat::format(int32_t, UnicodeString&amp;, FieldPosition&amp;)</td><td class="stabchange">Stable<br>ICU 56</td><td>(missing)<br>
+<td class="file">enumset.h</td><td class="proto">void icu::EnumSet&lt; T, minValue, limitValue &gt;::add(T)</td><td class=""><i>(untagged)</i></td><td>(missing)<br>
 <span class=""><span></span></span></td>
 </tr>
 <tr class="row1">
-<td class="file">compactdecimalformat.h</td><td class="proto">UnicodeString&amp; icu::CompactDecimalFormat::format(int32_t, UnicodeString&amp;, FieldPosition&amp;, UErrorCode&amp;)</td><td class="">Internal</td><td>(missing)<br>
+<td class="file">enumset.h</td><td class="proto">void icu::EnumSet&lt; T, minValue, limitValue &gt;::clear()</td><td class=""><i>(untagged)</i></td><td>(missing)<br>
 <span class=""><span></span></span></td>
 </tr>
 <tr class="row0">
-<td class="file">compactdecimalformat.h</td><td class="proto">UnicodeString&amp; icu::CompactDecimalFormat::format(int32_t, UnicodeString&amp;, FieldPositionIterator*, UErrorCode&amp;)</td><td class="">Internal</td><td>(missing)<br>
+<td class="file">enumset.h</td><td class="proto">void icu::EnumSet&lt; T, minValue, limitValue &gt;::remove(T)</td><td class=""><i>(untagged)</i></td><td>(missing)<br>
 <span class=""><span></span></span></td>
 </tr>
 <tr class="row1">
-<td class="file">compactdecimalformat.h</td><td class="proto">UnicodeString&amp; icu::CompactDecimalFormat::format(int64_t, UnicodeString&amp;, FieldPosition&amp;)</td><td class="stabchange">Stable<br>ICU 51</td><td>(missing)<br>
+<td class="file">enumset.h</td><td class="proto">void icu::EnumSet&lt; T, minValue, limitValue &gt;::set(T, int32_t)</td><td class=""><i>(untagged)</i></td><td>(missing)<br>
 <span class=""><span></span></span></td>
 </tr>
 <tr class="row0">
-<td class="file">compactdecimalformat.h</td><td class="proto">UnicodeString&amp; icu::CompactDecimalFormat::format(int64_t, UnicodeString&amp;, FieldPosition&amp;, UErrorCode&amp;)</td><td class="">Internal</td><td>(missing)<br>
+<td class="file">numberformatter.h</td><td class="proto">Appendable&amp; icu::number::FormattedNumber::appendTo(Appendable&amp;, UErrorCode&amp;)</td><td class="">Draft<br>ICU 62</td><td>(missing)<br>
 <span class=""><span></span></span></td>
 </tr>
 <tr class="row1">
-<td class="file">compactdecimalformat.h</td><td class="proto">UnicodeString&amp; icu::CompactDecimalFormat::format(int64_t, UnicodeString&amp;, FieldPositionIterator*, UErrorCode&amp;)</td><td class="">Internal</td><td>(missing)<br>
+<td class="file">numberformatter.h</td><td class="proto">Derived icu::number::NumberFormatterSettings&lt; Derived &gt;::grouping(UGroupingStrategy) const&amp;</td><td class="">Draft<br>ICU 61</td><td>(missing)<br>
 <span class=""><span></span></span></td>
 </tr>
 <tr class="row0">
-<td class="file">decimfmt.h</td><td class="proto">FixedDecimal icu::DecimalFormat::getFixedDecimal(DigitList&amp;, UErrorCode&amp;)</td><td class="">Internal</td><td>(missing)<br>
+<td class="file">numberformatter.h</td><td class="proto">Derived icu::number::NumberFormatterSettings&lt; Derived &gt;::grouping(UGroupingStrategy)&amp;&amp;</td><td class="">Draft<br>ICU 62</td><td>(missing)<br>
 <span class=""><span></span></span></td>
 </tr>
 <tr class="row1">
-<td class="file">decimfmt.h</td><td class="proto">FixedDecimal icu::DecimalFormat::getFixedDecimal(const Formattable&amp;, UErrorCode&amp;)</td><td class="">Internal</td><td>(missing)<br>
+<td class="file">numberformatter.h</td><td class="proto">icu::number::impl::Grouper::Grouper(int16_t, int16_t, int16_t, UGroupingStrategy)</td><td class="">Internal</td><td>(missing)<br>
 <span class=""><span></span></span></td>
 </tr>
 <tr class="row0">
-<td class="file">decimfmt.h</td><td class="proto">FixedDecimal icu::DecimalFormat::getFixedDecimal(double, UErrorCode&amp;)</td><td class="">Internal</td><td>(missing)<br>
+<td class="file">numberformatter.h</td><td class="proto"><tt>static</tt> Grouper icu::number::impl::Grouper::forStrategy(UGroupingStrategy)</td><td class="">Internal</td><td>(missing)<br>
 <span class=""><span></span></span></td>
 </tr>
 <tr class="row1">
-<td class="file">decimfmt.h</td><td class="proto">UnicodeString&amp; icu::DecimalFormat::format(const DigitList&amp;, UnicodeString&amp;, FieldPosition&amp;, UErrorCode&amp;)</td><td class="">Internal</td><td>(missing)<br>
+<td class="file">plurfmt.h</td><td class="proto">UnicodeString icu::PluralFormat::PluralSelector::select(void*, double, UErrorCode&amp;) const</td><td class="">Internal</td><td>(missing)<br>
 <span class=""><span></span></span></td>
 </tr>
 <tr class="row0">
-<td class="file">decimfmt.h</td><td class="proto">UnicodeString&amp; icu::DecimalFormat::format(const DigitList&amp;, UnicodeString&amp;, FieldPositionIterator*, UErrorCode&amp;)</td><td class="">Internal</td><td>(missing)<br>
+<td class="file">plurfmt.h</td><td class="proto">UnicodeString icu::PluralFormat::PluralSelectorAdapter::select(void*, double, UErrorCode&amp;) const</td><td class="">Internal</td><td>(missing)<br>
 <span class=""><span></span></span></td>
 </tr>
 <tr class="row1">
-<td class="file">decimfmt.h</td><td class="proto">UnicodeString&amp; icu::DecimalFormat::format(const VisibleDigitsWithExponent&amp;, UnicodeString&amp;, FieldPosition&amp;, UErrorCode&amp;)</td><td class="">Internal</td><td>(missing)<br>
+<td class="file">plurfmt.h</td><td class="proto">UnicodeString&amp; icu::PluralFormat::format(const Formattable&amp;, double, UnicodeString&amp;, FieldPosition&amp;, UErrorCode&amp;) const</td><td class="">Internal</td><td>(missing)<br>
 <span class=""><span></span></span></td>
 </tr>
 <tr class="row0">
-<td class="file">decimfmt.h</td><td class="proto">UnicodeString&amp; icu::DecimalFormat::format(const VisibleDigitsWithExponent&amp;, UnicodeString&amp;, FieldPositionIterator*, UErrorCode&amp;)</td><td class="">Internal</td><td>(missing)<br>
+<td class="file">plurfmt.h</td><td class="proto">icu::PluralFormat::PluralFormat()</td><td class=""><i>(untagged)</i></td><td>(missing)<br>
 <span class=""><span></span></span></td>
 </tr>
 <tr class="row1">
-<td class="file">decimfmt.h</td><td class="proto">VisibleDigitsWithExponent&amp; icu::DecimalFormat::initVisibleDigitsWithExponent(DigitList&amp;, VisibleDigitsWithExponent&amp;, UErrorCode&amp;)</td><td class="">Internal</td><td>(missing)<br>
+<td class="file">plurfmt.h</td><td class="proto">icu::PluralFormat::PluralSelector::~PluralSelector()</td><td class=""><i>(untagged)</i></td><td>(missing)<br>
 <span class=""><span></span></span></td>
 </tr>
 <tr class="row0">
-<td class="file">decimfmt.h</td><td class="proto">VisibleDigitsWithExponent&amp; icu::DecimalFormat::initVisibleDigitsWithExponent(const Formattable&amp;, VisibleDigitsWithExponent&amp;, UErrorCode&amp;)</td><td class="">Internal</td><td>(missing)<br>
+<td class="file">plurfmt.h</td><td class="proto">icu::PluralFormat::PluralSelectorAdapter::PluralSelectorAdapter()</td><td class=""><i>(untagged)</i></td><td>(missing)<br>
 <span class=""><span></span></span></td>
 </tr>
 <tr class="row1">
-<td class="file">decimfmt.h</td><td class="proto">VisibleDigitsWithExponent&amp; icu::DecimalFormat::initVisibleDigitsWithExponent(double, VisibleDigitsWithExponent&amp;, UErrorCode&amp;)</td><td class="">Internal</td><td>(missing)<br>
+<td class="file">plurfmt.h</td><td class="proto">icu::PluralFormat::PluralSelectorAdapter::~PluralSelectorAdapter()</td><td class=""><i>(untagged)</i></td><td>(missing)<br>
 <span class=""><span></span></span></td>
 </tr>
 <tr class="row0">
-<td class="file">decimfmt.h</td><td class="proto"><tt>static</tt> const char icu::DecimalFormat::fgNumberPatterns[]</td><td class="">Deprecated<br>ICU 3.4</td><td>(missing)<br>
+<td class="file">plurfmt.h</td><td class="proto"><tt>static</tt> int32_t icu::PluralFormat::findSubMessage(const MessagePattern&amp;, int32_t, const PluralSelector&amp;, void*, double, UErrorCode&amp;)</td><td class="">Internal</td><td>(missing)<br>
 <span class=""><span></span></span></td>
 </tr>
 <tr class="row1">
-<td class="file">decimfmt.h</td><td class="proto">void icu::DecimalFormat::setContext(UDisplayContext, UErrorCode&amp;)</td><td class="stabchange">Stable<br>ICU 53</td><td>(missing)<br>
-<span class=""><span>no longer overrides<br>method in parent<br>NumberFormat</span></span></td>
+<td class="file">plurfmt.h</td><td class="proto">void icu::PluralFormat::PluralSelectorAdapter::reset()</td><td class=""><i>(untagged)</i></td><td>(missing)<br>
+<span class=""><span></span></span></td>
 </tr>
 <tr class="row0">
-<td class="file">fmtable.h</td><td class="proto"><tt>#define</tt> UNUM_INTERNAL_STACKARRAY_SIZE</td><td class="">Internal</td><td>(missing)<br>
+<td class="file">plurfmt.h</td><td class="proto">void icu::PluralFormat::copyObjects(const PluralFormat&amp;)</td><td class=""><i>(untagged)</i></td><td>(missing)<br>
 <span class=""><span></span></span></td>
 </tr>
 <tr class="row1">
-<td class="file">fmtable.h</td><td class="proto">DigitList* icu::Formattable::getDigitList()</td><td class="">Internal</td><td>(missing)<br>
+<td class="file">plurfmt.h</td><td class="proto">void icu::PluralFormat::init(const PluralRules*, UPluralType, UErrorCode&amp;)</td><td class=""><i>(untagged)</i></td><td>(missing)<br>
 <span class=""><span></span></span></td>
 </tr>
 <tr class="row0">
-<td class="file">fmtable.h</td><td class="proto">DigitList* icu::Formattable::getInternalDigitList()</td><td class="">Internal</td><td>(missing)<br>
+<td class="file">plurfmt.h</td><td class="proto">void icu::PluralFormat::parseType(const UnicodeString&amp;, const NFRule*, Formattable&amp;, FieldPosition&amp;) const</td><td class=""><i>(untagged)</i></td><td>(missing)<br>
 <span class=""><span></span></span></td>
 </tr>
 <tr class="row1">
-<td class="file">fmtable.h</td><td class="proto">void icu::Formattable::adoptDigitList(DigitList*)</td><td class="">Internal</td><td>(missing)<br>
+<td class="file">stringtriebuilder.h</td><td class="proto"><tt>static</tt> UBool icu::StringTrieBuilder::equalNodes(const void*, const void*)</td><td class="">Internal</td><td>(missing)<br>
 <span class=""><span></span></span></td>
 </tr>
 <tr class="row0">
-<td class="file">numberformatter.h</td><td class="proto">Derived icu::number::NumberFormatterSettings&lt; Derived &gt;::padding(const impl::Padder&amp;) const</td><td class="">Internal<br>ICU 60</td><td>(missing)<br>
+<td class="file">stringtriebuilder.h</td><td class="proto"><tt>static</tt> UBool icu::StringTrieBuilder::hashNode(const void*)</td><td class="">Internal</td><td>(missing)<br>
 <span class=""><span></span></span></td>
 </tr>
 <tr class="row1">
-<td class="file">numberformatter.h</td><td class="proto">Derived icu::number::NumberFormatterSettings&lt; Derived &gt;::rounding(const Precision&amp;) const</td><td class="">Draft<br>ICU 60</td><td>(missing)<br>
+<td class="file">uconfig.h</td><td class="proto"><tt>#define</tt> UCONFIG_FORMAT_FASTPATHS_49</td><td class="">Internal</td><td>(missing)<br>
 <span class=""><span></span></span></td>
 </tr>
 <tr class="row0">
-<td class="file">numberformatter.h</td><td class="proto">Derived icu::number::NumberFormatterSettings&lt; Derived &gt;::threshold(int32_t) const</td><td class="">Internal<br>ICU 60</td><td>(missing)<br>
+<td class="file">unumberformatter.h</td><td class="proto"><tt>enum</tt> UGroupingStrategy::UNUM_GROUPING_AUTO</td><td class="">Draft<br>ICU 61</td><td>(missing)<br>
 <span class=""><span></span></span></td>
 </tr>
 <tr class="row1">
-<td class="file">numberformatter.h</td><td class="proto">icu::number::impl::Grouper::Grouper(int16_t, int16_t, int16_t)</td><td class="">Internal</td><td>(missing)<br>
+<td class="file">unumberformatter.h</td><td class="proto"><tt>enum</tt> UGroupingStrategy::UNUM_GROUPING_COUNT</td><td class="">Internal<br>ICU 62</td><td>(missing)<br>
 <span class=""><span></span></span></td>
 </tr>
 <tr class="row0">
-<td class="file">numfmt.h</td><td class="proto">UnicodeString&amp; icu::NumberFormat::format(const DigitList&amp;, UnicodeString&amp;, FieldPosition&amp;, UErrorCode&amp;)</td><td class="">Internal</td><td>(missing)<br>
+<td class="file">unumberformatter.h</td><td class="proto"><tt>enum</tt> UGroupingStrategy::UNUM_GROUPING_MIN2</td><td class="">Draft<br>ICU 61</td><td>(missing)<br>
 <span class=""><span></span></span></td>
 </tr>
 <tr class="row1">
-<td class="file">numfmt.h</td><td class="proto">UnicodeString&amp; icu::NumberFormat::format(const DigitList&amp;, UnicodeString&amp;, FieldPositionIterator*, UErrorCode&amp;)</td><td class="">Internal</td><td>(missing)<br>
+<td class="file">unumberformatter.h</td><td class="proto"><tt>enum</tt> UGroupingStrategy::UNUM_GROUPING_OFF</td><td class="">Draft<br>ICU 61</td><td>(missing)<br>
 <span class=""><span></span></span></td>
 </tr>
 <tr class="row0">
-<td class="file">platform.h</td><td class="proto"><tt>#define</tt> UPRV_INCOMPLETE_CPP11_SUPPORT</td><td class="">Internal</td><td>(missing)<br>
+<td class="file">unumberformatter.h</td><td class="proto"><tt>enum</tt> UGroupingStrategy::UNUM_GROUPING_ON_ALIGNED</td><td class="">Draft<br>ICU 61</td><td>(missing)<br>
 <span class=""><span></span></span></td>
 </tr>
 <tr class="row1">
-<td class="file">plurrule.h</td><td class="proto">UnicodeString icu::PluralRules::select(const Formattable&amp;, const NumberFormat&amp;, UErrorCode&amp;)</td><td class="">Internal<br>ICU 59</td><td>(missing)<br>
+<td class="file">unumberformatter.h</td><td class="proto"><tt>enum</tt> UGroupingStrategy::UNUM_GROUPING_THOUSANDS</td><td class="">Draft<br>ICU 61</td><td>(missing)<br>
 <span class=""><span></span></span></td>
 </tr>
 <tr class="row0">
-<td class="file">plurrule.h</td><td class="proto">UnicodeString icu::PluralRules::select(const VisibleDigitsWithExponent&amp;)</td><td class="">Internal</td><td>(missing)<br>
+<td class="file">uspoof.h</td><td class="proto">U_DEFINE_LOCAL_OPEN_POINTER(LocalUSpoofCheckResultPointer,,)</td><td class=""><i>(untagged)</i></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 62</h2>
+<h2>Deprecated or Obsoleted in ICU 63</h2>
 <table BORDER="1" class="genTable">
 <THEAD>
 <tr>
-<th>File</th><th>API</th><th>ICU 61</th><th>ICU 62</th>
+<th>File</th><th>API</th><th>ICU 62</th><th>ICU 63</th>
 </tr>
 </THEAD>
-<tr class="row1">
-<td class="file">numberformatter.h</td><td class="proto">Appendable&amp; icu::number::FormattedNumber::appendTo(Appendable&amp;)</td><td class="">Draft<br>ICU 60</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 62</span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">numberformatter.h</td><td class="proto">Derived icu::number::NumberFormatterSettings&lt; Derived &gt;::rounding(const Rounder&amp;) const&amp;</td><td class="">(missing)</td><td>Deprecated<br>
-<span class=""><span>ICU 62</span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">numberformatter.h</td><td class="proto">Precision icu::number::Precision::withMode(UNumberFormatRoundingMode)</td><td class="">Draft<br>ICU 60</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 62</span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">numberformatter.h</td><td class="proto">UnicodeString icu::number::FormattedNumber::toString()</td><td class="">Draft<br>ICU 60</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 62</span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">numberformatter.h</td><td class="proto"><tt>static</tt> SignificantDigitsPrecision icu::number::Precision::fixedDigits(int32_t)</td><td class="">Draft<br>ICU 60</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 62</span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">numberformatter.h</td><td class="proto"><tt>static</tt> SignificantDigitsPrecision icu::number::Precision::maxDigits(int32_t)</td><td class="">Draft<br>ICU 60</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 62</span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">numberformatter.h</td><td class="proto"><tt>static</tt> SignificantDigitsPrecision icu::number::Precision::minDigits(int32_t)</td><td class="">Draft<br>ICU 60</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 62</span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">numberformatter.h</td><td class="proto"><tt>static</tt> SignificantDigitsPrecision icu::number::Precision::minMaxDigits(int32_t, int32_t)</td><td class="">Draft<br>ICU 60</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 62</span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">numberformatter.h</td><td class="proto">void icu::number::FormattedNumber::populateFieldPosition(FieldPosition&amp;, UErrorCode&amp;)</td><td class="">Draft<br>ICU 60</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 62</span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">numberformatter.h</td><td class="proto">void icu::number::FormattedNumber::populateFieldPositionIterator(FieldPositionIterator&amp;, UErrorCode&amp;)</td><td class="">Draft<br>ICU 60</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 62</span></span></td>
-</tr>
 </table>
 <P></P>
 <a href="#_top">(jump back to top)</a>
 <hr>
 <a name="changed"></a>
-<h2>Changed in  ICU 62 (old, new)</h2>
+<h2>Changed in  ICU 63 (old, new)</h2>
 <table BORDER="1" class="genTable">
 <THEAD>
 <tr>
-<th>File</th><th>API</th><th>ICU 61</th><th>ICU 62</th>
+<th>File</th><th>API</th><th>ICU 62</th><th>ICU 63</th>
 </tr>
 </THEAD>
 <tr class="row1">
-<td class="file">numberformatter.h</td><td class="proto">Appendable&amp; icu::number::FormattedNumber::appendTo(Appendable&amp;)</td><td class="">Draft<br>ICU 60</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 62</span></span></td>
+<td class="file">bytestream.h</td><td class="proto">icu::StringByteSink&lt; StringClass &gt;::StringByteSink(StringClass*, int32_t)</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 60</td>
 </tr>
 <tr class="row0">
-<td class="file">numberformatter.h</td><td class="proto">Precision icu::number::Precision::withMode(UNumberFormatRoundingMode)</td><td class="">Draft<br>ICU 60</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 62</span></span></td>
+<td class="file">casemap.h</td><td class="proto"><tt>static</tt> void icu::CaseMap::utf8Fold(uint32_t, StringPiece, ByteSink&amp;, Edits*, UErrorCode&amp;)</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 60</td>
 </tr>
 <tr class="row1">
-<td class="file">numberformatter.h</td><td class="proto">UnicodeString icu::number::FormattedNumber::toString()</td><td class="">Draft<br>ICU 60</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 62</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&amp;, Edits*, UErrorCode&amp;)</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 60</td>
 </tr>
 <tr class="row0">
-<td class="file">numberformatter.h</td><td class="proto"><tt>static</tt> SignificantDigitsPrecision icu::number::Precision::fixedDigits(int32_t)</td><td class="">Draft<br>ICU 60</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 62</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&amp;, Edits*, UErrorCode&amp;)</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 60</td>
 </tr>
 <tr class="row1">
-<td class="file">numberformatter.h</td><td class="proto"><tt>static</tt> SignificantDigitsPrecision icu::number::Precision::maxDigits(int32_t)</td><td class="">Draft<br>ICU 60</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 62</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&amp;, Edits*, UErrorCode&amp;)</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 60</td>
 </tr>
 <tr class="row0">
-<td class="file">numberformatter.h</td><td class="proto"><tt>static</tt> SignificantDigitsPrecision icu::number::Precision::minDigits(int32_t)</td><td class="">Draft<br>ICU 60</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 62</span></span></td>
+<td class="file">currunit.h</td><td class="proto">icu::CurrencyUnit::CurrencyUnit()</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 60</td>
 </tr>
 <tr class="row1">
-<td class="file">numberformatter.h</td><td class="proto"><tt>static</tt> SignificantDigitsPrecision icu::number::Precision::minMaxDigits(int32_t, int32_t)</td><td class="">Draft<br>ICU 60</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 62</span></span></td>
+<td class="file">currunit.h</td><td class="proto">icu::CurrencyUnit::CurrencyUnit(const MeasureUnit&amp;, UErrorCode&amp;)</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 60</td>
 </tr>
 <tr class="row0">
-<td class="file">numberformatter.h</td><td class="proto">void icu::number::FormattedNumber::populateFieldPosition(FieldPosition&amp;, UErrorCode&amp;)</td><td class="">Draft<br>ICU 60</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 62</span></span></td>
+<td class="file">dcfmtsym.h</td><td class="proto">icu::DecimalFormatSymbols::DecimalFormatSymbols(const Locale&amp;, const NumberingSystem&amp;, UErrorCode&amp;)</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 60</td>
 </tr>
 <tr class="row1">
-<td class="file">numberformatter.h</td><td class="proto">void icu::number::FormattedNumber::populateFieldPositionIterator(FieldPositionIterator&amp;, UErrorCode&amp;)</td><td class="">Draft<br>ICU 60</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 62</span></span></td>
+<td class="file">edits.h</td><td class="proto">Edits&amp; icu::Edits::mergeAndAppend(const Edits&amp;, const Edits&amp;, UErrorCode&amp;)</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 60</td>
 </tr>
-</table>
-<P></P>
-<a href="#_top">(jump back to top)</a>
-<hr>
-<a name="promoted"></a>
-<h2>Promoted to stable in ICU 62</h2>
-<table BORDER="1" class="genTable">
-<THEAD>
-<tr>
-<th>File</th><th>API</th><th>ICU 61</th><th>ICU 62</th>
+<tr class="row0">
+<td class="file">edits.h</td><td class="proto">Edits&amp; icu::Edits::operator=(Edits&amp;&amp;)</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 60</td>
+</tr>
+<tr class="row1">
+<td class="file">edits.h</td><td class="proto">Edits&amp; icu::Edits::operator=(const Edits&amp;)</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 60</td>
+</tr>
+<tr class="row0">
+<td class="file">edits.h</td><td class="proto">icu::Edits::Edits(Edits&amp;&amp;)</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 60</td>
 </tr>
-</THEAD>
 <tr class="row1">
-<td class="file">decimfmt.h</td><td class="proto">void icu::DecimalFormat::setLenient(UBool)</td><td class="">(missing)</td><td>Stable<br>
-<span class=""><span>ICU 4.8</span></span></td>
+<td class="file">edits.h</td><td class="proto">icu::Edits::Edits(const Edits&amp;)</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 60</td>
 </tr>
 <tr class="row0">
-<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UBlockCode::UBLOCK_CHESS_SYMBOLS</td><td class="">(missing)</td><td>Stable<br>
-<span class=""><span>ICU 62</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::numberOfChanges() const</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 60</td>
 </tr>
 <tr class="row1">
-<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UBlockCode::UBLOCK_DOGRA</td><td class="">(missing)</td><td>Stable<br>
-<span class=""><span>ICU 62</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">filteredbrk.h</td><td class="proto">BreakIterator* icu::FilteredBreakIteratorBuilder::wrapIteratorWithFilter(BreakIterator*, UErrorCode&amp;)</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 60</td>
 </tr>
 <tr class="row0">
-<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UBlockCode::UBLOCK_GEORGIAN_EXTENDED</td><td class="">(missing)</td><td>Stable<br>
-<span class=""><span>ICU 62</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">filteredbrk.h</td><td class="proto"><tt>static</tt> FilteredBreakIteratorBuilder* icu::FilteredBreakIteratorBuilder::createEmptyInstance(UErrorCode&amp;)</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 60</td>
 </tr>
 <tr class="row1">
-<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UBlockCode::UBLOCK_GUNJALA_GONDI</td><td class="">(missing)</td><td>Stable<br>
-<span class=""><span>ICU 62</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">normalizer2.h</td><td class="proto">UBool icu::FilteredNormalizer2::isNormalizedUTF8(StringPiece, UErrorCode&amp;) const</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 60</td>
 </tr>
 <tr class="row0">
-<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UBlockCode::UBLOCK_HANIFI_ROHINGYA</td><td class="">(missing)</td><td>Stable<br>
-<span class=""><span>ICU 62</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">normalizer2.h</td><td class="proto">UBool icu::Normalizer2::isNormalizedUTF8(StringPiece, UErrorCode&amp;) const</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 60</td>
 </tr>
 <tr class="row1">
-<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UBlockCode::UBLOCK_INDIC_SIYAQ_NUMBERS</td><td class="">(missing)</td><td>Stable<br>
-<span class=""><span>ICU 62</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">normalizer2.h</td><td class="proto">void icu::FilteredNormalizer2::normalizeUTF8(uint32_t, StringPiece, ByteSink&amp;, Edits*, UErrorCode&amp;) const</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 60</td>
 </tr>
 <tr class="row0">
-<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UBlockCode::UBLOCK_MAKASAR</td><td class="">(missing)</td><td>Stable<br>
-<span class=""><span>ICU 62</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">normalizer2.h</td><td class="proto">void icu::Normalizer2::normalizeUTF8(uint32_t, StringPiece, ByteSink&amp;, Edits*, UErrorCode&amp;) const</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 60</td>
 </tr>
+
+
+<!-- start of edited numberformatter stuff -->
+
 <tr class="row1">
-<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UBlockCode::UBLOCK_MAYAN_NUMERALS</td><td class="">(missing)</td><td>Stable<br>
-<span class=""><span>ICU 62</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">numberformatter.h</td><td class="proto">Appendable&amp; icu::number::FormattedNumber::appendTo(Appendable&amp;, UErrorCode&amp;) <b><i>const</i></b></td>
+<td colspan="2" align="center">Draft (const)<br> ICU 62 </td>
 </tr>
+
 <tr class="row0">
-<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UBlockCode::UBLOCK_MEDEFAIDRIN</td><td class="">(missing)</td><td>Stable<br>
-<span class=""><span>ICU 62</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">numberformatter.h</td><td class="proto">Derived icu::number::NumberFormatterSettings&lt; Derived &gt;::grouping(U<b><i>Number</i></b>GroupingStrategy) const&amp;</td>
+<td colspan="2" align="center">Draft (rename)<br>ICU 61 </td>
+</tr>
+
+<tr class="row1">
+<td class="file">numberformatter.h</td><td class="proto">Derived icu::number::NumberFormatterSettings&lt; Derived &gt;::grouping(U<b><i>Number</i></b>GroupingStrategy)&amp;&amp;</td>
+<td colspan="2" align="center">Draft (rename)<br>ICU 62 </td>
 </tr>
+
+<tr class="row0"> <td class="proto" colspan="4">&nbsp; </td> </tr>
+<!--  End of edited numberformatter stufff -->
+
 <tr class="row1">
-<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UBlockCode::UBLOCK_OLD_SOGDIAN</td><td class="">(missing)</td><td>Stable<br>
-<span class=""><span>ICU 62</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">numfmt.h</td><td class="proto">ERoundingMode icu::NumberFormat::getRoundingMode() const</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 60</td>
 </tr>
 <tr class="row0">
-<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UBlockCode::UBLOCK_SOGDIAN</td><td class="">(missing)</td><td>Stable<br>
-<span class=""><span>ICU 62</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">numfmt.h</td><td class="proto">void icu::NumberFormat::setRoundingMode(ERoundingMode)</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 60</td>
 </tr>
 <tr class="row1">
-<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UJoiningGroup::U_JG_HANIFI_ROHINGYA_KINNA_YA</td><td class="">(missing)</td><td>Stable<br>
-<span class=""><span>ICU 62</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">rbnf.h</td><td class="proto">ERoundingMode icu::RuleBasedNumberFormat::getRoundingMode() const</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 60</td>
 </tr>
 <tr class="row0">
-<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UJoiningGroup::U_JG_HANIFI_ROHINGYA_PA</td><td class="">(missing)</td><td>Stable<br>
-<span class=""><span>ICU 62</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">rbnf.h</td><td class="proto">void icu::RuleBasedNumberFormat::setRoundingMode(ERoundingMode)</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 60</td>
 </tr>
 <tr class="row1">
-<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UProperty::UCHAR_EXTENDED_PICTOGRAPHIC</td><td class="">(missing)</td><td>Stable<br>
-<span class=""><span>ICU 62</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">stringoptions.h</td><td class="proto"><tt>#define</tt> U_EDITS_NO_RESET</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 60</td>
 </tr>
 <tr class="row0">
-<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UWordBreakValues::U_WB_WSEGSPACE</td><td class="">(missing)</td><td>Stable<br>
-<span class=""><span>ICU 62</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">stringoptions.h</td><td class="proto"><tt>#define</tt> U_OMIT_UNCHANGED_TEXT</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 60</td>
 </tr>
 <tr class="row1">
-<td class="file">uscript.h</td><td class="proto"><tt>enum</tt> UScriptCode::USCRIPT_DOGRA</td><td class="">(missing)</td><td>Stable<br>
-<span class=""><span>ICU 62</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">stringoptions.h</td><td class="proto"><tt>#define</tt> U_TITLECASE_ADJUST_TO_CASED</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 60</td>
 </tr>
 <tr class="row0">
-<td class="file">uscript.h</td><td class="proto"><tt>enum</tt> UScriptCode::USCRIPT_GUNJALA_GONDI</td><td class="">(missing)</td><td>Stable<br>
-<span class=""><span>ICU 62</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">stringoptions.h</td><td class="proto"><tt>#define</tt> U_TITLECASE_SENTENCES</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 60</td>
 </tr>
 <tr class="row1">
-<td class="file">uscript.h</td><td class="proto"><tt>enum</tt> UScriptCode::USCRIPT_HANIFI_ROHINGYA</td><td class="">(missing)</td><td>Stable<br>
-<span class=""><span>ICU 62</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">stringoptions.h</td><td class="proto"><tt>#define</tt> U_TITLECASE_WHOLE_STRING</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 60</td>
 </tr>
+
+<!-- remove usearch.h line. Tool error.
+
 <tr class="row0">
-<td class="file">uscript.h</td><td class="proto"><tt>enum</tt> UScriptCode::USCRIPT_MAKASAR</td><td class="">(missing)</td><td>Stable<br>
-<span class=""><span>ICU 62</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">usearch.h</td><td class="proto"><tt>enum</tt> USearchAttributeValue::USEARCH_ANY_BASE_WEIGHT_IS_WILDCARD</td><td class="stabchange">Stable<br>ICU 2.4</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>
 </tr>
+-->
+<tr class="row0"> <td class="proto" colspan="4">&nbsp; </td> </tr>
+
 <tr class="row1">
-<td class="file">uscript.h</td><td class="proto"><tt>enum</tt> UScriptCode::USCRIPT_MEDEFAIDRIN</td><td class="">(missing)</td><td>Stable<br>
-<span class=""><span>ICU 62</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="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 60</td>
 </tr>
 <tr class="row0">
-<td class="file">uscript.h</td><td class="proto"><tt>enum</tt> UScriptCode::USCRIPT_OLD_SOGDIAN</td><td class="">(missing)</td><td>Stable<br>
-<span class=""><span>ICU 62</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="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 60</td>
 </tr>
 <tr class="row1">
-<td class="file">uscript.h</td><td class="proto"><tt>enum</tt> UScriptCode::USCRIPT_SOGDIAN</td><td class="">(missing)</td><td>Stable<br>
-<span class=""><span>ICU 62</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="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 60</td>
 </tr>
 </table>
 <P></P>
 <a href="#_top">(jump back to top)</a>
 <hr>
-<a name="added"></a>
-<h2>Added in ICU 62</h2>
+<a name="promoted"></a>
+<h2>Promoted to stable in ICU 63</h2>
 <table BORDER="1" class="genTable">
 <THEAD>
 <tr>
-<th>File</th><th>API</th><th>ICU 61</th><th>ICU 62</th>
+<th>File</th><th>API</th><th>ICU 62</th><th>ICU 63</th>
 </tr>
 </THEAD>
 <tr class="row1">
-<td class="file">decimfmt.h</td><td class="proto">UBool icu::DecimalFormat::isFormatFailIfMoreThanMaxDigits()</td><td class="">(missing)</td><td>Internal<br>
-<span class=""><span></span></span></td>
+<td class="file">bytestream.h</td><td class="proto">icu::StringByteSink&lt; StringClass &gt;::StringByteSink(StringClass*, int32_t)</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 60</td>
 </tr>
 <tr class="row0">
-<td class="file">decimfmt.h</td><td class="proto">UBool icu::DecimalFormat::isParseCaseSensitive()</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> void icu::CaseMap::utf8Fold(uint32_t, StringPiece, ByteSink&amp;, Edits*, UErrorCode&amp;)</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 60</td>
 </tr>
 <tr class="row1">
-<td class="file">decimfmt.h</td><td class="proto">UBool icu::DecimalFormat::isParseNoExponent()</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> void icu::CaseMap::utf8ToLower(const char*, uint32_t, StringPiece, ByteSink&amp;, Edits*, UErrorCode&amp;)</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 60</td>
 </tr>
 <tr class="row0">
-<td class="file">decimfmt.h</td><td class="proto">UBool icu::DecimalFormat::isSignAlwaysShown()</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> void icu::CaseMap::utf8ToTitle(const char*, uint32_t, BreakIterator*, StringPiece, ByteSink&amp;, Edits*, UErrorCode&amp;)</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 60</td>
 </tr>
 <tr class="row1">
-<td class="file">decimfmt.h</td><td class="proto">UnicodeString&amp; icu::DecimalFormat::format(const number::impl::DecimalQuantity&amp;, UnicodeString&amp;, FieldPosition&amp;, UErrorCode&amp;)</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> void icu::CaseMap::utf8ToUpper(const char*, uint32_t, StringPiece, ByteSink&amp;, Edits*, UErrorCode&amp;)</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 60</td>
 </tr>
 <tr class="row0">
-<td class="file">decimfmt.h</td><td class="proto">UnicodeString&amp; icu::DecimalFormat::format(const number::impl::DecimalQuantity&amp;, UnicodeString&amp;, FieldPositionIterator*, UErrorCode&amp;)</td><td class="">(missing)</td><td>Internal<br>
-<span class=""><span></span></span></td>
+<td class="file">currunit.h</td><td class="proto">icu::CurrencyUnit::CurrencyUnit()</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 60</td>
 </tr>
 <tr class="row1">
-<td class="file">decimfmt.h</td><td class="proto">const number::LocalizedNumberFormatter&amp; icu::DecimalFormat::toNumberFormatter()</td><td class="">(missing)</td><td>Draft<br>
-<span class=""><span>ICU 62</span></span></td>
+<td class="file">currunit.h</td><td class="proto">icu::CurrencyUnit::CurrencyUnit(const MeasureUnit&amp;, UErrorCode&amp;)</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 60</td>
 </tr>
 <tr class="row0">
-<td class="file">decimfmt.h</td><td class="proto">int32_t icu::DecimalFormat::getMultiplierScale()</td><td class="">(missing)</td><td>Draft<br>
-<span class=""><span>ICU 62</span></span></td>
+<td class="file">dcfmtsym.h</td><td class="proto">icu::DecimalFormatSymbols::DecimalFormatSymbols(const Locale&amp;, const NumberingSystem&amp;, UErrorCode&amp;)</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 60</td>
 </tr>
 <tr class="row1">
-<td class="file">decimfmt.h</td><td class="proto">void icu::DecimalFormat::formatToDecimalQuantity(const Formattable&amp;, number::impl::DecimalQuantity&amp;, UErrorCode&amp;)</td><td class="">(missing)</td><td>Internal<br>
-<span class=""><span></span></span></td>
+<td class="file">edits.h</td><td class="proto">Edits&amp; icu::Edits::mergeAndAppend(const Edits&amp;, const Edits&amp;, UErrorCode&amp;)</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 60</td>
 </tr>
 <tr class="row0">
-<td class="file">decimfmt.h</td><td class="proto">void icu::DecimalFormat::formatToDecimalQuantity(double, number::impl::DecimalQuantity&amp;, UErrorCode&amp;)</td><td class="">(missing)</td><td>Internal<br>
-<span class=""><span></span></span></td>
+<td class="file">edits.h</td><td class="proto">Edits&amp; icu::Edits::operator=(Edits&amp;&amp;)</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 60</td>
 </tr>
 <tr class="row1">
-<td class="file">decimfmt.h</td><td class="proto">void icu::DecimalFormat::setFormatFailIfMoreThanMaxDigits(UBool)</td><td class="">(missing)</td><td>Internal<br>
-<span class=""><span></span></span></td>
+<td class="file">edits.h</td><td class="proto">Edits&amp; icu::Edits::operator=(const Edits&amp;)</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 60</td>
 </tr>
 <tr class="row0">
-<td class="file">decimfmt.h</td><td class="proto">void icu::DecimalFormat::setLenient(UBool)</td><td class="">(missing)</td><td>Stable<br>
-<span class=""><span>ICU 4.8</span></span></td>
+<td class="file">edits.h</td><td class="proto">icu::Edits::Edits(Edits&amp;&amp;)</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 60</td>
 </tr>
 <tr class="row1">
-<td class="file">decimfmt.h</td><td class="proto">void icu::DecimalFormat::setMultiplierScale(int32_t)</td><td class="">(missing)</td><td>Draft<br>
-<span class=""><span>ICU 62</span></span></td>
+<td class="file">edits.h</td><td class="proto">icu::Edits::Edits(const Edits&amp;)</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 60</td>
 </tr>
 <tr class="row0">
-<td class="file">decimfmt.h</td><td class="proto">void icu::DecimalFormat::setParseCaseSensitive(UBool)</td><td class="">(missing)</td><td>Internal<br>
-<span class=""><span></span></span></td>
+<td class="file">edits.h</td><td class="proto">int32_t icu::Edits::numberOfChanges() const</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 60</td>
 </tr>
 <tr class="row1">
-<td class="file">decimfmt.h</td><td class="proto">void icu::DecimalFormat::setParseNoExponent(UBool)</td><td class="">(missing)</td><td>Internal<br>
-<span class=""><span></span></span></td>
+<td class="file">filteredbrk.h</td><td class="proto">BreakIterator* icu::FilteredBreakIteratorBuilder::wrapIteratorWithFilter(BreakIterator*, UErrorCode&amp;)</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 60</td>
 </tr>
 <tr class="row0">
-<td class="file">decimfmt.h</td><td class="proto">void icu::DecimalFormat::setSignAlwaysShown(UBool)</td><td class="">(missing)</td><td>Internal<br>
-<span class=""><span></span></span></td>
+<td class="file">filteredbrk.h</td><td class="proto"><tt>static</tt> FilteredBreakIteratorBuilder* icu::FilteredBreakIteratorBuilder::createEmptyInstance(UErrorCode&amp;)</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 60</td>
 </tr>
 <tr class="row1">
-<td class="file">fmtable.h</td><td class="proto">number::impl::DecimalQuantity* icu::Formattable::getDecimalQuantity()</td><td class="">(missing)</td><td>Internal<br>
-<span class=""><span></span></span></td>
+<td class="file">normalizer2.h</td><td class="proto">UBool icu::FilteredNormalizer2::isNormalizedUTF8(StringPiece, UErrorCode&amp;) const</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 60</td>
 </tr>
 <tr class="row0">
-<td class="file">fmtable.h</td><td class="proto">void icu::Formattable::adoptDecimalQuantity(number::impl::DecimalQuantity*)</td><td class="">(missing)</td><td>Internal<br>
-<span class=""><span></span></span></td>
+<td class="file">normalizer2.h</td><td class="proto">UBool icu::Normalizer2::isNormalizedUTF8(StringPiece, UErrorCode&amp;) const</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 60</td>
 </tr>
 <tr class="row1">
-<td class="file">fmtable.h</td><td class="proto">void icu::Formattable::populateDecimalQuantity(number::impl::DecimalQuantity&amp;, UErrorCode&amp;)</td><td class="">(missing)</td><td>Internal<br>
-<span class=""><span></span></span></td>
+<td class="file">normalizer2.h</td><td class="proto">void icu::FilteredNormalizer2::normalizeUTF8(uint32_t, StringPiece, ByteSink&amp;, Edits*, UErrorCode&amp;) const</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 60</td>
 </tr>
 <tr class="row0">
-<td class="file">numberformatter.h</td><td class="proto">Appendable&amp; icu::number::FormattedNumber::appendTo(Appendable&amp;, UErrorCode&amp;)</td><td class="">(missing)</td><td>Draft<br>
-<span class=""><span>ICU 62</span></span></td>
+<td class="file">normalizer2.h</td><td class="proto">void icu::Normalizer2::normalizeUTF8(uint32_t, StringPiece, ByteSink&amp;, Edits*, UErrorCode&amp;) const</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 60</td>
 </tr>
 <tr class="row1">
-<td class="file">numberformatter.h</td><td class="proto">Derived icu::number::NumberFormatterSettings&lt; Derived &gt;::adoptPerUnit(icu::MeasureUnit*)&amp;&amp;</td><td class="">(missing)</td><td>Draft<br>
-<span class=""><span>ICU 62</span></span></td>
+<td class="file">numfmt.h</td><td class="proto">ERoundingMode icu::NumberFormat::getRoundingMode() const</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 60</td>
 </tr>
 <tr class="row0">
-<td class="file">numberformatter.h</td><td class="proto">Derived icu::number::NumberFormatterSettings&lt; Derived &gt;::adoptSymbols(NumberingSystem*)&amp;&amp;</td><td class="">(missing)</td><td>Draft<br>
-<span class=""><span>ICU 62</span></span></td>
+<td class="file">numfmt.h</td><td class="proto">void icu::NumberFormat::setRoundingMode(ERoundingMode)</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 60</td>
 </tr>
 <tr class="row1">
-<td class="file">numberformatter.h</td><td class="proto">Derived icu::number::NumberFormatterSettings&lt; Derived &gt;::adoptUnit(icu::MeasureUnit*)&amp;&amp;</td><td class="">(missing)</td><td>Draft<br>
-<span class=""><span>ICU 62</span></span></td>
+<td class="file">rbnf.h</td><td class="proto">ERoundingMode icu::RuleBasedNumberFormat::getRoundingMode() const</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 60</td>
 </tr>
 <tr class="row0">
-<td class="file">numberformatter.h</td><td class="proto">Derived icu::number::NumberFormatterSettings&lt; Derived &gt;::decimal(UNumberDecimalSeparatorDisplay)&amp;&amp;</td><td class="">(missing)</td><td>Draft<br>
-<span class=""><span>ICU 62</span></span></td>
+<td class="file">rbnf.h</td><td class="proto">void icu::RuleBasedNumberFormat::setRoundingMode(ERoundingMode)</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 60</td>
 </tr>
 <tr class="row1">
-<td class="file">numberformatter.h</td><td class="proto">Derived icu::number::NumberFormatterSettings&lt; Derived &gt;::grouping(UGroupingStrategy)&amp;&amp;</td><td class="">(missing)</td><td>Draft<br>
-<span class=""><span>ICU 62</span></span></td>
+<td class="file">stringoptions.h</td><td class="proto"><tt>#define</tt> U_EDITS_NO_RESET</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 60</td>
 </tr>
 <tr class="row0">
-<td class="file">numberformatter.h</td><td class="proto">Derived icu::number::NumberFormatterSettings&lt; Derived &gt;::integerWidth(const IntegerWidth&amp;)&amp;&amp;</td><td class="">(missing)</td><td>Draft<br>
-<span class=""><span>ICU 62</span></span></td>
+<td class="file">stringoptions.h</td><td class="proto"><tt>#define</tt> U_OMIT_UNCHANGED_TEXT</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 60</td>
 </tr>
 <tr class="row1">
-<td class="file">numberformatter.h</td><td class="proto">Derived icu::number::NumberFormatterSettings&lt; Derived &gt;::macros(const impl::MacroProps&amp;) const&amp;</td><td class="">(missing)</td><td>Internal<br>
-<span class=""><span>ICU 60</span></span></td>
+<td class="file">stringoptions.h</td><td class="proto"><tt>#define</tt> U_TITLECASE_ADJUST_TO_CASED</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 60</td>
 </tr>
 <tr class="row0">
-<td class="file">numberformatter.h</td><td class="proto">Derived icu::number::NumberFormatterSettings&lt; Derived &gt;::macros(const impl::MacroProps&amp;)&amp;&amp;</td><td class="">(missing)</td><td>Internal<br>
-<span class=""><span></span></span></td>
+<td class="file">stringoptions.h</td><td class="proto"><tt>#define</tt> U_TITLECASE_SENTENCES</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 60</td>
 </tr>
 <tr class="row1">
-<td class="file">numberformatter.h</td><td class="proto">Derived icu::number::NumberFormatterSettings&lt; Derived &gt;::macros(impl::MacroProps&amp;&amp;) const&amp;</td><td class="">(missing)</td><td>Internal<br>
-<span class=""><span></span></span></td>
+<td class="file">stringoptions.h</td><td class="proto"><tt>#define</tt> U_TITLECASE_WHOLE_STRING</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 60</td>
 </tr>
 <tr class="row0">
-<td class="file">numberformatter.h</td><td class="proto">Derived icu::number::NumberFormatterSettings&lt; Derived &gt;::macros(impl::MacroProps&amp;&amp;)&amp;&amp;</td><td class="">(missing)</td><td>Internal<br>
-<span class=""><span></span></span></td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UIndicPositionalCategory::U_INPC_BOTTOM_AND_LEFT</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</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">numberformatter.h</td><td class="proto">Derived icu::number::NumberFormatterSettings&lt; Derived &gt;::notation(const Notation&amp;)&amp;&amp;</td><td class="">(missing)</td><td>Draft<br>
-<span class=""><span>ICU 62</span></span></td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UIndicPositionalCategory::U_INPC_BOTTOM_AND_RIGHT</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</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">numberformatter.h</td><td class="proto">Derived icu::number::NumberFormatterSettings&lt; Derived &gt;::padding(const impl::Padder&amp;) const&amp;</td><td class="">(missing)</td><td>Internal<br>
-<span class=""><span>ICU 60</span></span></td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UIndicPositionalCategory::U_INPC_BOTTOM</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</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">numberformatter.h</td><td class="proto">Derived icu::number::NumberFormatterSettings&lt; Derived &gt;::padding(const impl::Padder&amp;)&amp;&amp;</td><td class="">(missing)</td><td>Internal<br>
-<span class=""><span></span></span></td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UIndicPositionalCategory::U_INPC_LEFT_AND_RIGHT</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</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">numberformatter.h</td><td class="proto">Derived icu::number::NumberFormatterSettings&lt; Derived &gt;::perUnit(const icu::MeasureUnit&amp;)&amp;&amp;</td><td class="">(missing)</td><td>Draft<br>
-<span class=""><span>ICU 62</span></span></td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UIndicPositionalCategory::U_INPC_LEFT</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</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">numberformatter.h</td><td class="proto">Derived icu::number::NumberFormatterSettings&lt; Derived &gt;::precision(const Precision&amp;) const&amp;</td><td class="">(missing)</td><td>Draft<br>
-<span class=""><span>ICU 62</span></span></td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UIndicPositionalCategory::U_INPC_NA</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</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">numberformatter.h</td><td class="proto">Derived icu::number::NumberFormatterSettings&lt; Derived &gt;::precision(const Precision&amp;)&amp;&amp;</td><td class="">(missing)</td><td>Draft<br>
-<span class=""><span>ICU 62</span></span></td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UIndicPositionalCategory::U_INPC_OVERSTRUCK</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</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">numberformatter.h</td><td class="proto">Derived icu::number::NumberFormatterSettings&lt; Derived &gt;::rounding(const Rounder&amp;) const&amp;</td><td class="">(missing)</td><td>Deprecated<br>
-<span class=""><span>ICU 62</span></span></td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UIndicPositionalCategory::U_INPC_RIGHT</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</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">numberformatter.h</td><td class="proto">Derived icu::number::NumberFormatterSettings&lt; Derived &gt;::roundingMode(UNumberFormatRoundingMode) const&amp;</td><td class="">(missing)</td><td>Draft<br>
-<span class=""><span>ICU 62</span></span></td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UIndicPositionalCategory::U_INPC_TOP_AND_BOTTOM_AND_RIGHT</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</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">numberformatter.h</td><td class="proto">Derived icu::number::NumberFormatterSettings&lt; Derived &gt;::roundingMode(UNumberFormatRoundingMode)&amp;&amp;</td><td class="">(missing)</td><td>Draft<br>
-<span class=""><span>ICU 62</span></span></td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UIndicPositionalCategory::U_INPC_TOP_AND_BOTTOM</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</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">numberformatter.h</td><td class="proto">Derived icu::number::NumberFormatterSettings&lt; Derived &gt;::scale(const Scale&amp;) const&amp;</td><td class="">(missing)</td><td>Draft<br>
-<span class=""><span>ICU 62</span></span></td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UIndicPositionalCategory::U_INPC_TOP_AND_LEFT_AND_RIGHT</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</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">numberformatter.h</td><td class="proto">Derived icu::number::NumberFormatterSettings&lt; Derived &gt;::scale(const Scale&amp;)&amp;&amp;</td><td class="">(missing)</td><td>Draft<br>
-<span class=""><span>ICU 62</span></span></td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UIndicPositionalCategory::U_INPC_TOP_AND_LEFT</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</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">numberformatter.h</td><td class="proto">Derived icu::number::NumberFormatterSettings&lt; Derived &gt;::sign(UNumberSignDisplay)&amp;&amp;</td><td class="">(missing)</td><td>Draft<br>
-<span class=""><span>ICU 62</span></span></td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UIndicPositionalCategory::U_INPC_TOP_AND_RIGHT</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</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">numberformatter.h</td><td class="proto">Derived icu::number::NumberFormatterSettings&lt; Derived &gt;::symbols(const DecimalFormatSymbols&amp;)&amp;&amp;</td><td class="">(missing)</td><td>Draft<br>
-<span class=""><span>ICU 62</span></span></td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UIndicPositionalCategory::U_INPC_TOP</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</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">numberformatter.h</td><td class="proto">Derived icu::number::NumberFormatterSettings&lt; Derived &gt;::threshold(int32_t) const&amp;</td><td class="">(missing)</td><td>Internal<br>
-<span class=""><span>ICU 60</span></span></td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UIndicPositionalCategory::U_INPC_VISUAL_ORDER_LEFT</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</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">numberformatter.h</td><td class="proto">Derived icu::number::NumberFormatterSettings&lt; Derived &gt;::threshold(int32_t)&amp;&amp;</td><td class="">(missing)</td><td>Internal<br>
-<span class=""><span></span></span></td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UIndicSyllabicCategory::U_INSC_AVAGRAHA</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</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">numberformatter.h</td><td class="proto">Derived icu::number::NumberFormatterSettings&lt; Derived &gt;::unit(const icu::MeasureUnit&amp;)&amp;&amp;</td><td class="">(missing)</td><td>Draft<br>
-<span class=""><span>ICU 62</span></span></td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UIndicSyllabicCategory::U_INSC_BINDU</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</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">numberformatter.h</td><td class="proto">Derived icu::number::NumberFormatterSettings&lt; Derived &gt;::unitWidth(UNumberUnitWidth)&amp;&amp;</td><td class="">(missing)</td><td>Draft<br>
-<span class=""><span>ICU 62</span></span></td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UIndicSyllabicCategory::U_INSC_BRAHMI_JOINING_NUMBER</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</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">numberformatter.h</td><td class="proto">Format* icu::number::LocalizedNumberFormatter::toFormat(UErrorCode&amp;)</td><td class="">(missing)</td><td>Draft<br>
-<span class=""><span>ICU 62</span></span></td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UIndicSyllabicCategory::U_INSC_CANTILLATION_MARK</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</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">numberformatter.h</td><td class="proto">FormattedNumber icu::number::LocalizedNumberFormatter::formatDecimalQuantity(const impl::DecimalQuantity&amp;, UErrorCode&amp;)</td><td class="">(missing)</td><td>Internal<br>
-<span class=""><span></span></span></td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UIndicSyllabicCategory::U_INSC_CONSONANT_DEAD</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</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">numberformatter.h</td><td class="proto">FormattedNumber&amp; icu::number::FormattedNumber::operator=(FormattedNumber&amp;&amp;)</td><td class="">(missing)</td><td>Draft<br>
-<span class=""><span>ICU 62</span></span></td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UIndicSyllabicCategory::U_INSC_CONSONANT_FINAL</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</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">numberformatter.h</td><td class="proto">LocalizedNumberFormatter icu::number::UnlocalizedNumberFormatter::locale(const icu::Locale&amp;)&amp;&amp;</td><td class="">(missing)</td><td>Draft<br>
-<span class=""><span>ICU 62</span></span></td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UIndicSyllabicCategory::U_INSC_CONSONANT_HEAD_LETTER</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</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">numberformatter.h</td><td class="proto">LocalizedNumberFormatter&amp; icu::number::LocalizedNumberFormatter::operator=(LocalizedNumberFormatter&amp;&amp;)</td><td class="">(missing)</td><td>Draft<br>
-<span class=""><span>ICU 62</span></span></td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UIndicSyllabicCategory::U_INSC_CONSONANT_INITIAL_POSTFIXED</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</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">numberformatter.h</td><td class="proto">LocalizedNumberFormatter&amp; icu::number::LocalizedNumberFormatter::operator=(const LocalizedNumberFormatter&amp;)</td><td class="">(missing)</td><td>Draft<br>
-<span class=""><span>ICU 62</span></span></td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UIndicSyllabicCategory::U_INSC_CONSONANT_KILLER</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</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">numberformatter.h</td><td class="proto">Scale&amp; icu::number::Scale::operator=(Scale&amp;&amp;)</td><td class="">(missing)</td><td>Draft<br>
-<span class=""><span>ICU 62</span></span></td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UIndicSyllabicCategory::U_INSC_CONSONANT_MEDIAL</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</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">numberformatter.h</td><td class="proto">Scale&amp; icu::number::Scale::operator=(const Scale&amp;)</td><td class="">(missing)</td><td>Draft<br>
-<span class=""><span>ICU 62</span></span></td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UIndicSyllabicCategory::U_INSC_CONSONANT_PLACEHOLDER</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</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">numberformatter.h</td><td class="proto">SymbolsWrapper&amp; icu::number::impl::SymbolsWrapper::operator=(SymbolsWrapper&amp;&amp;)</td><td class="">(missing)</td><td>Internal<br>
-<span class=""><span></span></span></td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UIndicSyllabicCategory::U_INSC_CONSONANT_PRECEDING_REPHA</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</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">numberformatter.h</td><td class="proto">UBool icu::number::FormattedNumber::nextFieldPosition(FieldPosition&amp;, UErrorCode&amp;)</td><td class="">(missing)</td><td>Draft<br>
-<span class=""><span>ICU 62</span></span></td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UIndicSyllabicCategory::U_INSC_CONSONANT_PREFIXED</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</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">numberformatter.h</td><td class="proto">UnicodeString icu::number::FormattedNumber::toString(UErrorCode&amp;)</td><td class="">(missing)</td><td>Draft<br>
-<span class=""><span>ICU 62</span></span></td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UIndicSyllabicCategory::U_INSC_CONSONANT_SUBJOINED</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</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">numberformatter.h</td><td class="proto">UnicodeString icu::number::NumberFormatterSettings&lt; Derived &gt;::toSkeleton(UErrorCode&amp;)</td><td class="">(missing)</td><td>Draft<br>
-<span class=""><span>ICU 62</span></span></td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UIndicSyllabicCategory::U_INSC_CONSONANT_SUCCEEDING_REPHA</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</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">numberformatter.h</td><td class="proto">UnlocalizedNumberFormatter&amp; icu::number::UnlocalizedNumberFormatter::operator=(UnlocalizedNumberFormatter&amp;&amp;)</td><td class="">(missing)</td><td>Draft<br>
-<span class=""><span>ICU 62</span></span></td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UIndicSyllabicCategory::U_INSC_CONSONANT_WITH_STACKER</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</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">numberformatter.h</td><td class="proto">UnlocalizedNumberFormatter&amp; icu::number::UnlocalizedNumberFormatter::operator=(const UnlocalizedNumberFormatter&amp;)</td><td class="">(missing)</td><td>Draft<br>
-<span class=""><span>ICU 62</span></span></td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UIndicSyllabicCategory::U_INSC_CONSONANT</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</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">numberformatter.h</td><td class="proto">const impl::NumberFormatterImpl* icu::number::LocalizedNumberFormatter::getCompiled()</td><td class="">(missing)</td><td>Internal<br>
-<span class=""><span></span></span></td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UIndicSyllabicCategory::U_INSC_GEMINATION_MARK</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</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">numberformatter.h</td><td class="proto">icu::number::FormattedNumber::FormattedNumber(FormattedNumber&amp;&amp;)</td><td class="">(missing)</td><td>Draft<br>
-<span class=""><span>ICU 62</span></span></td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UIndicSyllabicCategory::U_INSC_INVISIBLE_STACKER</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</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">numberformatter.h</td><td class="proto">icu::number::LocalizedNumberFormatter::LocalizedNumberFormatter()=default</td><td class="">(missing)</td><td>Draft<br>
-<span class=""><span>ICU 62</span></span></td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UIndicSyllabicCategory::U_INSC_JOINER</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</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">numberformatter.h</td><td class="proto">icu::number::LocalizedNumberFormatter::LocalizedNumberFormatter(LocalizedNumberFormatter&amp;&amp;)</td><td class="">(missing)</td><td>Draft<br>
-<span class=""><span>ICU 62</span></span></td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UIndicSyllabicCategory::U_INSC_MODIFYING_LETTER</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</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">numberformatter.h</td><td class="proto">icu::number::Scale::Scale(Scale&amp;&amp;)</td><td class="">(missing)</td><td>Draft<br>
-<span class=""><span>ICU 62</span></span></td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UIndicSyllabicCategory::U_INSC_NON_JOINER</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</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">numberformatter.h</td><td class="proto">icu::number::Scale::Scale(const Scale&amp;)</td><td class="">(missing)</td><td>Draft<br>
-<span class=""><span>ICU 62</span></span></td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UIndicSyllabicCategory::U_INSC_NUKTA</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</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">numberformatter.h</td><td class="proto">icu::number::Scale::Scale(int32_t, impl::DecNum*)</td><td class="">(missing)</td><td>Internal<br>
-<span class=""><span></span></span></td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UIndicSyllabicCategory::U_INSC_NUMBER_JOINER</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</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">numberformatter.h</td><td class="proto">icu::number::Scale::~Scale()</td><td class="">(missing)</td><td>Draft<br>
-<span class=""><span>ICU 62</span></span></td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UIndicSyllabicCategory::U_INSC_NUMBER</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</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">numberformatter.h</td><td class="proto">icu::number::UnlocalizedNumberFormatter::UnlocalizedNumberFormatter()=default</td><td class="">(missing)</td><td>Draft<br>
-<span class=""><span>ICU 62</span></span></td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UIndicSyllabicCategory::U_INSC_OTHER</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</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">numberformatter.h</td><td class="proto">icu::number::UnlocalizedNumberFormatter::UnlocalizedNumberFormatter(UnlocalizedNumberFormatter&amp;&amp;)</td><td class="">(missing)</td><td>Draft<br>
-<span class=""><span>ICU 62</span></span></td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UIndicSyllabicCategory::U_INSC_PURE_KILLER</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</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">numberformatter.h</td><td class="proto">icu::number::impl::Grouper::Grouper(int16_t, int16_t, int16_t, UGroupingStrategy)</td><td class="">(missing)</td><td>Internal<br>
-<span class=""><span></span></span></td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UIndicSyllabicCategory::U_INSC_REGISTER_SHIFTER</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</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">numberformatter.h</td><td class="proto">icu::number::impl::SymbolsWrapper::SymbolsWrapper(SymbolsWrapper&amp;&amp;)</td><td class="">(missing)</td><td>Internal<br>
-<span class=""><span></span></span></td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UIndicSyllabicCategory::U_INSC_SYLLABLE_MODIFIER</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</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">numberformatter.h</td><td class="proto">int16_t icu::number::impl::Grouper::getPrimary()</td><td class="">(missing)</td><td>Internal<br>
-<span class=""><span></span></span></td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UIndicSyllabicCategory::U_INSC_TONE_LETTER</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</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">numberformatter.h</td><td class="proto">int16_t icu::number::impl::Grouper::getSecondary()</td><td class="">(missing)</td><td>Internal<br>
-<span class=""><span></span></span></td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UIndicSyllabicCategory::U_INSC_TONE_MARK</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</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">numberformatter.h</td><td class="proto">int32_t icu::number::LocalizedNumberFormatter::getCallCount()</td><td class="">(missing)</td><td>Internal<br>
-<span class=""><span></span></span></td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UIndicSyllabicCategory::U_INSC_VIRAMA</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</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">numberformatter.h</td><td class="proto"><tt>static</tt> Grouper icu::number::impl::Grouper::forProperties(const DecimalFormatProperties&amp;)</td><td class="">(missing)</td><td>Internal<br>
-<span class=""><span></span></span></td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UIndicSyllabicCategory::U_INSC_VISARGA</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</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">numberformatter.h</td><td class="proto"><tt>static</tt> Padder icu::number::impl::Padder::forProperties(const DecimalFormatProperties&amp;)</td><td class="">(missing)</td><td>Internal<br>
-<span class=""><span></span></span></td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UIndicSyllabicCategory::U_INSC_VOWEL_DEPENDENT</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</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">numberformatter.h</td><td class="proto"><tt>static</tt> Scale icu::number::Scale::byDecimal(StringPiece)</td><td class="">(missing)</td><td>Draft<br>
-<span class=""><span>ICU 62</span></span></td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UIndicSyllabicCategory::U_INSC_VOWEL_INDEPENDENT</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</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">numberformatter.h</td><td class="proto"><tt>static</tt> Scale icu::number::Scale::byDouble(double)</td><td class="">(missing)</td><td>Draft<br>
-<span class=""><span>ICU 62</span></span></td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UIndicSyllabicCategory::U_INSC_VOWEL</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</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">numberformatter.h</td><td class="proto"><tt>static</tt> Scale icu::number::Scale::byDoubleAndPowerOfTen(double, int32_t)</td><td class="">(missing)</td><td>Draft<br>
-<span class=""><span>ICU 62</span></span></td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UProperty::UCHAR_INDIC_POSITIONAL_CATEGORY</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</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">numberformatter.h</td><td class="proto"><tt>static</tt> Scale icu::number::Scale::none()</td><td class="">(missing)</td><td>Draft<br>
-<span class=""><span>ICU 62</span></span></td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UProperty::UCHAR_INDIC_SYLLABIC_CATEGORY</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</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">numberformatter.h</td><td class="proto"><tt>static</tt> Scale icu::number::Scale::powerOfTen(int32_t)</td><td class="">(missing)</td><td>Draft<br>
-<span class=""><span>ICU 62</span></span></td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UProperty::UCHAR_VERTICAL_ORIENTATION</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</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">numberformatter.h</td><td class="proto"><tt>static</tt> SignificantDigitsPrecision icu::number::Precision::fixedSignificantDigits(int32_t)</td><td class="">(missing)</td><td>Draft<br>
-<span class=""><span>ICU 62</span></span></td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UVerticalOrientation::U_VO_ROTATED</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</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">numberformatter.h</td><td class="proto"><tt>static</tt> SignificantDigitsPrecision icu::number::Precision::maxSignificantDigits(int32_t)</td><td class="">(missing)</td><td>Draft<br>
-<span class=""><span>ICU 62</span></span></td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UVerticalOrientation::U_VO_TRANSFORMED_ROTATED</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</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">numberformatter.h</td><td class="proto"><tt>static</tt> SignificantDigitsPrecision icu::number::Precision::minMaxSignificantDigits(int32_t, int32_t)</td><td class="">(missing)</td><td>Draft<br>
-<span class=""><span>ICU 62</span></span></td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UVerticalOrientation::U_VO_TRANSFORMED_UPRIGHT</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</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">numberformatter.h</td><td class="proto"><tt>static</tt> SignificantDigitsPrecision icu::number::Precision::minSignificantDigits(int32_t)</td><td class="">(missing)</td><td>Draft<br>
-<span class=""><span>ICU 62</span></span></td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UVerticalOrientation::U_VO_UPRIGHT</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</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">numberformatter.h</td><td class="proto"><tt>static</tt> UnlocalizedNumberFormatter icu::number::NumberFormatter::forSkeleton(const UnicodeString&amp;, UErrorCode&amp;)</td><td class="">(missing)</td><td>Draft<br>
-<span class=""><span>ICU 62</span></span></td>
+<td class="file">uobject.h</td><td class="proto"><tt>#define</tt> U_NO_THROW</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 4.2</span></span></td>
 </tr>
+-->
+<tr class="row0"> <td class="proto" colspan="4">&nbsp; </td> </tr>
+
+
 <tr class="row1">
-<td class="file">numberformatter.h</td><td class="proto">void icu::number::FormattedNumber::getAllFieldPositions(FieldPositionIterator&amp;, UErrorCode&amp;)</td><td class="">(missing)</td><td>Draft<br>
-<span class=""><span>ICU 62</span></span></td>
+<td class="file">utf16.h</td><td class="proto"><tt>#define</tt> U16_GET_OR_FFFD</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 60</td>
 </tr>
 <tr class="row0">
-<td class="file">numberformatter.h</td><td class="proto">void icu::number::FormattedNumber::getAllFieldPositionsImpl(FieldPositionIteratorHandler&amp;, UErrorCode&amp;)</td><td class="">(missing)</td><td>Internal<br>
-<span class=""><span></span></span></td>
+<td class="file">utf16.h</td><td class="proto"><tt>#define</tt> U16_NEXT_OR_FFFD</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 60</td>
 </tr>
 <tr class="row1">
-<td class="file">numberformatter.h</td><td class="proto">void icu::number::FormattedNumber::getDecimalQuantity(impl::DecimalQuantity&amp;, UErrorCode&amp;)</td><td class="">(missing)</td><td>Internal<br>
-<span class=""><span></span></span></td>
+<td class="file">utf16.h</td><td class="proto"><tt>#define</tt> U16_PREV_OR_FFFD</td><td class="" colspan="2" align="center">Draft&rarr;Stable<br>ICU 60</td>
 </tr>
+
+<!--
 <tr class="row0">
-<td class="file">numberformatter.h</td><td class="proto">void icu::number::LocalizedNumberFormatter::formatImpl(impl::UFormattedNumberData*, UErrorCode&amp;)</td><td class="">(missing)</td><td>Internal<br>
-<span class=""><span></span></span></td>
+<td class="file">utypes.h</td><td class="proto"><tt>#define</tt> U_COMBINED_IMPLEMENTATION</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 2.0</span></span></td>
+</tr>
+-->
+
+</table>
+<P></P>
+<a href="#_top">(jump back to top)</a>
+<hr>
+<a name="added"></a>
+<h2>Added in ICU 63</h2>
+<table BORDER="1" class="genTable">
+<THEAD>
+<tr>
+<th>File</th><th>API</th><th>ICU 62</th><th>ICU 63</th>
 </tr>
+</THEAD>
+<!--  
 <tr class="row1">
-<td class="file">numberformatter.h</td><td class="proto">void icu::number::LocalizedNumberFormatter::getAffixImpl(bool, bool, UnicodeString&amp;, UErrorCode&amp;)</td><td class="">(missing)</td><td>Internal<br>
+<td class="file">char16ptr.h</td><td class="proto"><tt>#define</tt> U_ALIASING_BARRIER</td><td class="">(missing)</td><td>Internal<br>
 <span class=""><span></span></span></td>
 </tr>
+-->
 <tr class="row0">
-<td class="file">numfmt.h</td><td class="proto">UnicodeString&amp; icu::NumberFormat::format(const number::impl::DecimalQuantity&amp;, UnicodeString&amp;, FieldPosition&amp;, UErrorCode&amp;)</td><td class="">(missing)</td><td>Internal<br>
-<span class=""><span></span></span></td>
+<td class="file">listformatter.h</td><td class="proto">UnicodeString&amp; icu::ListFormatter::format(const UnicodeString items[], int32_t, UnicodeString&amp;, FieldPositionIterator*, UErrorCode&amp;) const</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
 </tr>
 <tr class="row1">
-<td class="file">numfmt.h</td><td class="proto">UnicodeString&amp; icu::NumberFormat::format(const number::impl::DecimalQuantity&amp;, UnicodeString&amp;, FieldPositionIterator*, UErrorCode&amp;)</td><td class="">(missing)</td><td>Internal<br>
-<span class=""><span></span></span></td>
+<td class="file">locid.h</td><td class="proto">Locale&amp; icu::Locale::operator=(Locale&amp;&amp;)</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
 </tr>
 <tr class="row0">
-<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UBlockCode::UBLOCK_CHESS_SYMBOLS</td><td class="">(missing)</td><td>Stable<br>
-<span class=""><span>ICU 62</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">locid.h</td><td class="proto">StringClass icu::Locale::getKeywordValue(StringPiece, UErrorCode&amp;) const</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
 </tr>
 <tr class="row1">
-<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UBlockCode::UBLOCK_DOGRA</td><td class="">(missing)</td><td>Stable<br>
-<span class=""><span>ICU 62</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">locid.h</td><td class="proto">StringClass icu::Locale::getUnicodeKeywordValue(StringPiece, UErrorCode&amp;) const</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
 </tr>
 <tr class="row0">
-<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UBlockCode::UBLOCK_GEORGIAN_EXTENDED</td><td class="">(missing)</td><td>Stable<br>
-<span class=""><span>ICU 62</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">locid.h</td><td class="proto">StringClass icu::Locale::toLanguageTag(UErrorCode&amp;) const</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
 </tr>
 <tr class="row1">
-<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UBlockCode::UBLOCK_GUNJALA_GONDI</td><td class="">(missing)</td><td>Stable<br>
-<span class=""><span>ICU 62</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">locid.h</td><td class="proto">StringEnumeration* icu::Locale::createUnicodeKeywords(UErrorCode&amp;) const</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
 </tr>
 <tr class="row0">
-<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UBlockCode::UBLOCK_HANIFI_ROHINGYA</td><td class="">(missing)</td><td>Stable<br>
-<span class=""><span>ICU 62</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">locid.h</td><td class="proto">icu::Locale::Locale(Locale&amp;&amp;)</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
 </tr>
 <tr class="row1">
-<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UBlockCode::UBLOCK_INDIC_SIYAQ_NUMBERS</td><td class="">(missing)</td><td>Stable<br>
-<span class=""><span>ICU 62</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">locid.h</td><td class="proto"><tt>static</tt> Locale icu::Locale::forLanguageTag(StringPiece, UErrorCode&amp;)</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
 </tr>
 <tr class="row0">
-<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UBlockCode::UBLOCK_MAKASAR</td><td class="">(missing)</td><td>Stable<br>
-<span class=""><span>ICU 62</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">locid.h</td><td class="proto">void icu::Locale::addLikelySubtags(UErrorCode&amp;)</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
 </tr>
 <tr class="row1">
-<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UBlockCode::UBLOCK_MAYAN_NUMERALS</td><td class="">(missing)</td><td>Stable<br>
-<span class=""><span>ICU 62</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">locid.h</td><td class="proto">void icu::Locale::getKeywordValue(StringPiece, ByteSink&amp;, UErrorCode&amp;) const</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
 </tr>
 <tr class="row0">
-<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UBlockCode::UBLOCK_MEDEFAIDRIN</td><td class="">(missing)</td><td>Stable<br>
-<span class=""><span>ICU 62</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">locid.h</td><td class="proto">void icu::Locale::getKeywords(OutputIterator, UErrorCode&amp;) const</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
 </tr>
 <tr class="row1">
-<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UBlockCode::UBLOCK_OLD_SOGDIAN</td><td class="">(missing)</td><td>Stable<br>
-<span class=""><span>ICU 62</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">locid.h</td><td class="proto">void icu::Locale::getUnicodeKeywordValue(StringPiece, ByteSink&amp;, UErrorCode&amp;) const</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
 </tr>
 <tr class="row0">
-<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UBlockCode::UBLOCK_SOGDIAN</td><td class="">(missing)</td><td>Stable<br>
-<span class=""><span>ICU 62</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">locid.h</td><td class="proto">void icu::Locale::getUnicodeKeywords(OutputIterator, UErrorCode&amp;) const</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
 </tr>
 <tr class="row1">
-<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UJoiningGroup::U_JG_HANIFI_ROHINGYA_KINNA_YA</td><td class="">(missing)</td><td>Stable<br>
-<span class=""><span>ICU 62</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">locid.h</td><td class="proto">void icu::Locale::minimizeSubtags(UErrorCode&amp;)</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
 </tr>
 <tr class="row0">
-<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UJoiningGroup::U_JG_HANIFI_ROHINGYA_PA</td><td class="">(missing)</td><td>Stable<br>
-<span class=""><span>ICU 62</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">locid.h</td><td class="proto">void icu::Locale::setKeywordValue(StringPiece, StringPiece, UErrorCode&amp;)</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
 </tr>
 <tr class="row1">
-<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UProperty::UCHAR_EXTENDED_PICTOGRAPHIC</td><td class="">(missing)</td><td>Stable<br>
-<span class=""><span>ICU 62</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">locid.h</td><td class="proto">void icu::Locale::setUnicodeKeywordValue(StringPiece, StringPiece, UErrorCode&amp;)</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
 </tr>
 <tr class="row0">
-<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UWordBreakValues::U_WB_WSEGSPACE</td><td class="">(missing)</td><td>Stable<br>
-<span class=""><span>ICU 62</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">locid.h</td><td class="proto">void icu::Locale::toLanguageTag(ByteSink&amp;, UErrorCode&amp;) const</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
 </tr>
 <tr class="row1">
-<td class="file">unum.h</td><td class="proto"><tt>enum</tt> UNumberFormatAttribute::UNUM_PARSE_CASE_SENSITIVE</td><td class="">(missing)</td><td>Internal<br>
-<span class=""><span></span></span></td>
+<td class="file">measunit.h</td><td class="proto"><tt>static</tt> MeasureUnit* icu::MeasureUnit::createAtmosphere(UErrorCode&amp;)</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
 </tr>
 <tr class="row0">
-<td class="file">unum.h</td><td class="proto"><tt>enum</tt> UNumberFormatAttribute::UNUM_SIGN_ALWAYS_SHOWN</td><td class="">(missing)</td><td>Internal<br>
-<span class=""><span></span></span></td>
+<td class="file">measunit.h</td><td class="proto"><tt>static</tt> MeasureUnit* icu::MeasureUnit::createPercent(UErrorCode&amp;)</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
 </tr>
 <tr class="row1">
-<td class="file">unumberformatter.h</td><td class="proto">UBool unumf_resultNextFieldPosition(const UFormattedNumber*, UFieldPosition*, UErrorCode*)</td><td class="">(missing)</td><td>Draft<br>
-<span class=""><span>ICU 62</span></span></td>
+<td class="file">measunit.h</td><td class="proto"><tt>static</tt> MeasureUnit* icu::MeasureUnit::createPermille(UErrorCode&amp;)</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
 </tr>
 <tr class="row0">
-<td class="file">unumberformatter.h</td><td class="proto">UFormattedNumber* unumf_openResult(UErrorCode*)</td><td class="">(missing)</td><td>Draft<br>
-<span class=""><span>ICU 62</span></span></td>
+<td class="file">measunit.h</td><td class="proto"><tt>static</tt> MeasureUnit* icu::MeasureUnit::createPetabyte(UErrorCode&amp;)</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
 </tr>
+
+<!--   exclude numberformatter.h
+
 <tr class="row1">
-<td class="file">unumberformatter.h</td><td class="proto">UNumberFormatter* unumf_openForSkeletonAndLocale(const UChar*, int32_t, const char*, UErrorCode*)</td><td class="">(missing)</td><td>Draft<br>
-<span class=""><span>ICU 62</span></span></td>
+<td class="file">numberformatter.h</td><td class="proto">Appendable&amp; icu::number::FormattedNumber::appendTo(Appendable&amp;, UErrorCode&amp;) const</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 62</span>
+<br>
+<b class="bigwarn" title="A draft API has the wrong version.">(should be ICU 63)</b></span></td>
 </tr>
 <tr class="row0">
-<td class="file">unumberformatter.h</td><td class="proto"><tt>enum</tt> UGroupingStrategy::UNUM_GROUPING_COUNT</td><td class="">(missing)</td><td>Internal<br>
-<span class=""><span>ICU 62</span></span></td>
+<td class="file">numberformatter.h</td><td class="proto">Derived icu::number::NumberFormatterSettings&lt; Derived &gt;::grouping(UNumberGroupingStrategy) const&amp;</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 61</span>
+<br>
+<b class="bigwarn" title="A draft API has the wrong version.">(should be ICU 63)</b></span></td>
 </tr>
 <tr class="row1">
-<td class="file">unumberformatter.h</td><td class="proto">int32_t unumf_resultToString(const UFormattedNumber*, UChar*, int32_t, UErrorCode*)</td><td class="">(missing)</td><td>Draft<br>
-<span class=""><span>ICU 62</span></span></td>
+<td class="file">numberformatter.h</td><td class="proto">Derived icu::number::NumberFormatterSettings&lt; Derived &gt;::grouping(UNumberGroupingStrategy)&amp;&amp;</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 62</span>
+<br>
+<b class="bigwarn" title="A draft API has the wrong version.">(should be ICU 63)</b></span></td>
 </tr>
 <tr class="row0">
-<td class="file">unumberformatter.h</td><td class="proto">void unumf_close(UNumberFormatter*)</td><td class="">(missing)</td><td>Draft<br>
-<span class=""><span>ICU 62</span></span></td>
+<td class="file">numberformatter.h</td><td class="proto">icu::number::impl::Grouper::Grouper(int16_t, int16_t, int16_t, UNumberGroupingStrategy)</td><td class="">(missing)</td><td>Internal<br>
+<span class=""><span></span></span></td>
 </tr>
 <tr class="row1">
-<td class="file">unumberformatter.h</td><td class="proto">void unumf_closeResult(UFormattedNumber*)</td><td class="">(missing)</td><td>Draft<br>
-<span class=""><span>ICU 62</span></span></td>
+<td class="file">numberformatter.h</td><td class="proto"><tt>static</tt> Grouper icu::number::impl::Grouper::forStrategy(UNumberGroupingStrategy)</td><td class="">(missing)</td><td>Internal<br>
+<span class=""><span></span></span></td>
 </tr>
+-->
+<tr class="row1"> <td class="proto" colspan="4">&nbsp; </td> </tr>
+
 <tr class="row0">
-<td class="file">unumberformatter.h</td><td class="proto">void unumf_formatDecimal(const UNumberFormatter*, const char*, int32_t, UFormattedNumber*, UErrorCode*)</td><td class="">(missing)</td><td>Draft<br>
-<span class=""><span>ICU 62</span></span></td>
+<td class="file">numberrangeformatter.h</td><td class="proto">Appendable&amp; icu::number::FormattedNumberRange::appendTo(Appendable&amp;, UErrorCode&amp;) const</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
 </tr>
 <tr class="row1">
-<td class="file">unumberformatter.h</td><td class="proto">void unumf_formatDouble(const UNumberFormatter*, double, UFormattedNumber*, UErrorCode*)</td><td class="">(missing)</td><td>Draft<br>
-<span class=""><span>ICU 62</span></span></td>
+<td class="file">numberrangeformatter.h</td><td class="proto">Derived icu::number::NumberRangeFormatterSettings&lt; Derived &gt;::collapse(UNumberRangeCollapse) const&amp;</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
 </tr>
 <tr class="row0">
-<td class="file">unumberformatter.h</td><td class="proto">void unumf_formatInt(const UNumberFormatter*, int64_t, UFormattedNumber*, UErrorCode*)</td><td class="">(missing)</td><td>Draft<br>
-<span class=""><span>ICU 62</span></span></td>
+<td class="file">numberrangeformatter.h</td><td class="proto">Derived icu::number::NumberRangeFormatterSettings&lt; Derived &gt;::collapse(UNumberRangeCollapse)&amp;&amp;</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
 </tr>
 <tr class="row1">
-<td class="file">unumberformatter.h</td><td class="proto">void unumf_resultGetAllFieldPositions(const UFormattedNumber*, UFieldPositionIterator*, UErrorCode*)</td><td class="">(missing)</td><td>Draft<br>
-<span class=""><span>ICU 62</span></span></td>
+<td class="file">numberrangeformatter.h</td><td class="proto">Derived icu::number::NumberRangeFormatterSettings&lt; Derived &gt;::identityFallback(UNumberRangeIdentityFallback) const&amp;</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
 </tr>
 <tr class="row0">
-<td class="file">uscript.h</td><td class="proto"><tt>enum</tt> UScriptCode::USCRIPT_DOGRA</td><td class="">(missing)</td><td>Stable<br>
-<span class=""><span>ICU 62</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">numberrangeformatter.h</td><td class="proto">Derived icu::number::NumberRangeFormatterSettings&lt; Derived &gt;::identityFallback(UNumberRangeIdentityFallback)&amp;&amp;</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
 </tr>
 <tr class="row1">
-<td class="file">uscript.h</td><td class="proto"><tt>enum</tt> UScriptCode::USCRIPT_GUNJALA_GONDI</td><td class="">(missing)</td><td>Stable<br>
-<span class=""><span>ICU 62</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">numberrangeformatter.h</td><td class="proto">Derived icu::number::NumberRangeFormatterSettings&lt; Derived &gt;::numberFormatterBoth(UnlocalizedNumberFormatter&amp;&amp;) const&amp;</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
 </tr>
 <tr class="row0">
-<td class="file">uscript.h</td><td class="proto"><tt>enum</tt> UScriptCode::USCRIPT_HANIFI_ROHINGYA</td><td class="">(missing)</td><td>Stable<br>
-<span class=""><span>ICU 62</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">numberrangeformatter.h</td><td class="proto">Derived icu::number::NumberRangeFormatterSettings&lt; Derived &gt;::numberFormatterBoth(UnlocalizedNumberFormatter&amp;&amp;)&amp;&amp;</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
 </tr>
 <tr class="row1">
-<td class="file">uscript.h</td><td class="proto"><tt>enum</tt> UScriptCode::USCRIPT_MAKASAR</td><td class="">(missing)</td><td>Stable<br>
-<span class=""><span>ICU 62</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">numberrangeformatter.h</td><td class="proto">Derived icu::number::NumberRangeFormatterSettings&lt; Derived &gt;::numberFormatterBoth(const UnlocalizedNumberFormatter&amp;) const&amp;</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
 </tr>
 <tr class="row0">
-<td class="file">uscript.h</td><td class="proto"><tt>enum</tt> UScriptCode::USCRIPT_MEDEFAIDRIN</td><td class="">(missing)</td><td>Stable<br>
-<span class=""><span>ICU 62</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">numberrangeformatter.h</td><td class="proto">Derived icu::number::NumberRangeFormatterSettings&lt; Derived &gt;::numberFormatterBoth(const UnlocalizedNumberFormatter&amp;)&amp;&amp;</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
 </tr>
 <tr class="row1">
-<td class="file">uscript.h</td><td class="proto"><tt>enum</tt> UScriptCode::USCRIPT_OLD_SOGDIAN</td><td class="">(missing)</td><td>Stable<br>
-<span class=""><span>ICU 62</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">numberrangeformatter.h</td><td class="proto">Derived icu::number::NumberRangeFormatterSettings&lt; Derived &gt;::numberFormatterFirst(UnlocalizedNumberFormatter&amp;&amp;) const&amp;</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
 </tr>
 <tr class="row0">
-<td class="file">uscript.h</td><td class="proto"><tt>enum</tt> UScriptCode::USCRIPT_SOGDIAN</td><td class="">(missing)</td><td>Stable<br>
-<span class=""><span>ICU 62</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">numberrangeformatter.h</td><td class="proto">Derived icu::number::NumberRangeFormatterSettings&lt; Derived &gt;::numberFormatterFirst(UnlocalizedNumberFormatter&amp;&amp;)&amp;&amp;</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
 </tr>
 <tr class="row1">
-<td class="file">uspoof.h</td><td class="proto"><tt>enum</tt> USpoofChecks::USPOOF_HIDDEN_OVERLAY</td><td class="">(missing)</td><td>Draft<br>
-<span class=""><span>ICU 62</span></span></td>
+<td class="file">numberrangeformatter.h</td><td class="proto">Derived icu::number::NumberRangeFormatterSettings&lt; Derived &gt;::numberFormatterFirst(const UnlocalizedNumberFormatter&amp;) const&amp;</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</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 62</h2>
-<div class="other">
-<table BORDER="1" class="genTable">
-<THEAD>
-<tr>
-<th>File</th><th>API</th><th>ICU 61</th><th>ICU 62</th>
+<tr class="row0">
+<td class="file">numberrangeformatter.h</td><td class="proto">Derived icu::number::NumberRangeFormatterSettings&lt; Derived &gt;::numberFormatterFirst(const UnlocalizedNumberFormatter&amp;)&amp;&amp;</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
 </tr>
-</THEAD>
 <tr class="row1">
-<td class="file">bytestream.h</td><td class="proto">icu::StringByteSink&lt; StringClass &gt;::StringByteSink(StringClass*, int32_t)</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+<td class="file">numberrangeformatter.h</td><td class="proto">Derived icu::number::NumberRangeFormatterSettings&lt; Derived &gt;::numberFormatterSecond(UnlocalizedNumberFormatter&amp;&amp;) const&amp;</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
 </tr>
 <tr class="row0">
-<td class="file">casemap.h</td><td class="proto"><tt>static</tt> void icu::CaseMap::utf8Fold(uint32_t, StringPiece, ByteSink&amp;, Edits*, UErrorCode&amp;)</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+<td class="file">numberrangeformatter.h</td><td class="proto">Derived icu::number::NumberRangeFormatterSettings&lt; Derived &gt;::numberFormatterSecond(UnlocalizedNumberFormatter&amp;&amp;)&amp;&amp;</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
 </tr>
 <tr class="row1">
-<td class="file">casemap.h</td><td class="proto"><tt>static</tt> void icu::CaseMap::utf8ToLower(const char*, uint32_t, StringPiece, ByteSink&amp;, Edits*, UErrorCode&amp;)</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+<td class="file">numberrangeformatter.h</td><td class="proto">Derived icu::number::NumberRangeFormatterSettings&lt; Derived &gt;::numberFormatterSecond(const UnlocalizedNumberFormatter&amp;) const&amp;</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
 </tr>
 <tr class="row0">
-<td class="file">casemap.h</td><td class="proto"><tt>static</tt> void icu::CaseMap::utf8ToTitle(const char*, uint32_t, BreakIterator*, StringPiece, ByteSink&amp;, Edits*, UErrorCode&amp;)</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+<td class="file">numberrangeformatter.h</td><td class="proto">Derived icu::number::NumberRangeFormatterSettings&lt; Derived &gt;::numberFormatterSecond(const UnlocalizedNumberFormatter&amp;)&amp;&amp;</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
 </tr>
 <tr class="row1">
-<td class="file">casemap.h</td><td class="proto"><tt>static</tt> void icu::CaseMap::utf8ToUpper(const char*, uint32_t, StringPiece, ByteSink&amp;, Edits*, UErrorCode&amp;)</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+<td class="file">numberrangeformatter.h</td><td class="proto">FormattedNumberRange icu::number::LocalizedNumberRangeFormatter::formatFormattableRange(const Formattable&amp;, const Formattable&amp;, UErrorCode&amp;) const</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
 </tr>
 <tr class="row0">
-<td class="file">currunit.h</td><td class="proto">icu::CurrencyUnit::CurrencyUnit()</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+<td class="file">numberrangeformatter.h</td><td class="proto">FormattedNumberRange&amp; icu::number::FormattedNumberRange::operator=(FormattedNumberRange&amp;&amp;)</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
 </tr>
+
+<!--
 <tr class="row1">
-<td class="file">currunit.h</td><td class="proto">icu::CurrencyUnit::CurrencyUnit(const MeasureUnit&amp;, UErrorCode&amp;)</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+<td class="file">numberrangeformatter.h</td><td class="proto">FormattedNumberRange&amp; icu::number::FormattedNumberRange::operator=(const FormattedNumberRange&amp;)=delete</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="row1"> <td class="proto" colspan="4">&nbsp; </td> </tr>
+
 <tr class="row0">
-<td class="file">dcfmtsym.h</td><td class="proto">icu::DecimalFormatSymbols::DecimalFormatSymbols(const Locale&amp;, const NumberingSystem&amp;, UErrorCode&amp;)</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+<td class="file">numberrangeformatter.h</td><td class="proto">LocalizedNumberRangeFormatter icu::number::UnlocalizedNumberRangeFormatter::locale(const icu::Locale&amp;) const&amp;</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
 </tr>
 <tr class="row1">
-<td class="file">dtptngen.h</td><td class="proto">UnicodeString icu::DateTimePatternGenerator::getFieldDisplayName(UDateTimePatternField, UDateTimePGDisplayWidth)</td><td class="" colspan="2" align="center">Draft<br>ICU 61</td>
+<td class="file">numberrangeformatter.h</td><td class="proto">LocalizedNumberRangeFormatter icu::number::UnlocalizedNumberRangeFormatter::locale(const icu::Locale&amp;)&amp;&amp;</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
 </tr>
 <tr class="row0">
-<td class="file">edits.h</td><td class="proto">Edits&amp; icu::Edits::mergeAndAppend(const Edits&amp;, const Edits&amp;, UErrorCode&amp;)</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+<td class="file">numberrangeformatter.h</td><td class="proto">LocalizedNumberRangeFormatter&amp; icu::number::LocalizedNumberRangeFormatter::operator=(LocalizedNumberRangeFormatter&amp;&amp;)</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
 </tr>
 <tr class="row1">
-<td class="file">edits.h</td><td class="proto">Edits&amp; icu::Edits::operator=(Edits&amp;&amp;)</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+<td class="file">numberrangeformatter.h</td><td class="proto">LocalizedNumberRangeFormatter&amp; icu::number::LocalizedNumberRangeFormatter::operator=(const LocalizedNumberRangeFormatter&amp;)</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
 </tr>
 <tr class="row0">
-<td class="file">edits.h</td><td class="proto">Edits&amp; icu::Edits::operator=(const Edits&amp;)</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+<td class="file">numberrangeformatter.h</td><td class="proto">UBool icu::number::FormattedNumberRange::nextFieldPosition(FieldPosition&amp;, UErrorCode&amp;) const</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
 </tr>
 <tr class="row1">
-<td class="file">edits.h</td><td class="proto">icu::Edits::Edits(Edits&amp;&amp;)</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+<td class="file">numberrangeformatter.h</td><td class="proto">UBool icu::number::NumberRangeFormatterSettings&lt; Derived &gt;::copyErrorTo(UErrorCode&amp;) const</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
 </tr>
 <tr class="row0">
-<td class="file">edits.h</td><td class="proto">icu::Edits::Edits(const Edits&amp;)</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+<td class="file">numberrangeformatter.h</td><td class="proto">UNumberRangeIdentityResult icu::number::FormattedNumberRange::getIdentityResult(UErrorCode&amp;) const</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
 </tr>
 <tr class="row1">
-<td class="file">edits.h</td><td class="proto">int32_t icu::Edits::numberOfChanges()</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+<td class="file">numberrangeformatter.h</td><td class="proto">UnicodeString icu::number::FormattedNumberRange::getFirstDecimal(UErrorCode&amp;) const</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
 </tr>
 <tr class="row0">
-<td class="file">filteredbrk.h</td><td class="proto">BreakIterator* icu::FilteredBreakIteratorBuilder::wrapIteratorWithFilter(BreakIterator*, UErrorCode&amp;)</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+<td class="file">numberrangeformatter.h</td><td class="proto">UnicodeString icu::number::FormattedNumberRange::getSecondDecimal(UErrorCode&amp;) const</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
 </tr>
 <tr class="row1">
-<td class="file">filteredbrk.h</td><td class="proto"><tt>static</tt> FilteredBreakIteratorBuilder* icu::FilteredBreakIteratorBuilder::createEmptyInstance(UErrorCode&amp;)</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+<td class="file">numberrangeformatter.h</td><td class="proto">UnicodeString icu::number::FormattedNumberRange::toString(UErrorCode&amp;) const</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
 </tr>
 <tr class="row0">
-<td class="file">localpointer.h</td><td class="proto">LocalArray&lt;T&gt;&amp; icu::LocalArray&lt; T &gt;::moveFrom(LocalArray&lt; T &gt;&amp;)</td><td class="" colspan="2" align="center">Draft<br>ICU 56</td>
+<td class="file">numberrangeformatter.h</td><td class="proto">UnlocalizedNumberRangeFormatter&amp; icu::number::UnlocalizedNumberRangeFormatter::operator=(UnlocalizedNumberRangeFormatter&amp;&amp;)</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
 </tr>
 <tr class="row1">
-<td class="file">localpointer.h</td><td class="proto">LocalPointer&lt;T&gt;&amp; icu::LocalPointer&lt; T &gt;::moveFrom(LocalPointer&lt; T &gt;&amp;)</td><td class="" colspan="2" align="center">Draft<br>ICU 56</td>
+<td class="file">numberrangeformatter.h</td><td class="proto">UnlocalizedNumberRangeFormatter&amp; icu::number::UnlocalizedNumberRangeFormatter::operator=(const UnlocalizedNumberRangeFormatter&amp;)</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
 </tr>
 <tr class="row0">
-<td class="file">measfmt.h</td><td class="proto">void icu::MeasureFormat::parseObject(const UnicodeString&amp;, Formattable&amp;, ParsePosition&amp;)</td><td class="" colspan="2" align="center">Draft<br>ICU 53</td>
+<td class="file">numberrangeformatter.h</td><td class="proto"><tt>enum</tt> UNumberRangeCollapse::UNUM_RANGE_COLLAPSE_ALL</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
 </tr>
 <tr class="row1">
-<td class="file">normalizer2.h</td><td class="proto">UBool icu::FilteredNormalizer2::isNormalizedUTF8(StringPiece, UErrorCode&amp;)</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+<td class="file">numberrangeformatter.h</td><td class="proto"><tt>enum</tt> UNumberRangeCollapse::UNUM_RANGE_COLLAPSE_AUTO</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
 </tr>
 <tr class="row0">
-<td class="file">normalizer2.h</td><td class="proto">UBool icu::Normalizer2::isNormalizedUTF8(StringPiece, UErrorCode&amp;)</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+<td class="file">numberrangeformatter.h</td><td class="proto"><tt>enum</tt> UNumberRangeCollapse::UNUM_RANGE_COLLAPSE_NONE</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
 </tr>
 <tr class="row1">
-<td class="file">normalizer2.h</td><td class="proto">void icu::FilteredNormalizer2::normalizeUTF8(uint32_t, StringPiece, ByteSink&amp;, Edits*, UErrorCode&amp;)</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+<td class="file">numberrangeformatter.h</td><td class="proto"><tt>enum</tt> UNumberRangeCollapse::UNUM_RANGE_COLLAPSE_UNIT</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
 </tr>
 <tr class="row0">
-<td class="file">normalizer2.h</td><td class="proto">void icu::Normalizer2::normalizeUTF8(uint32_t, StringPiece, ByteSink&amp;, Edits*, UErrorCode&amp;)</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+<td class="file">numberrangeformatter.h</td><td class="proto"><tt>enum</tt> UNumberRangeIdentityFallback::UNUM_IDENTITY_FALLBACK_APPROXIMATELY_OR_SINGLE_VALUE</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
 </tr>
 <tr class="row1">
-<td class="file">nounit.h</td><td class="proto">UClassID icu::NoUnit::getDynamicClassID()</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+<td class="file">numberrangeformatter.h</td><td class="proto"><tt>enum</tt> UNumberRangeIdentityFallback::UNUM_IDENTITY_FALLBACK_APPROXIMATELY</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
 </tr>
 <tr class="row0">
-<td class="file">nounit.h</td><td class="proto">UObject* icu::NoUnit::clone()</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+<td class="file">numberrangeformatter.h</td><td class="proto"><tt>enum</tt> UNumberRangeIdentityFallback::UNUM_IDENTITY_FALLBACK_RANGE</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
 </tr>
 <tr class="row1">
-<td class="file">nounit.h</td><td class="proto">icu::NoUnit::NoUnit(const NoUnit&amp;)</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+<td class="file">numberrangeformatter.h</td><td class="proto"><tt>enum</tt> UNumberRangeIdentityFallback::UNUM_IDENTITY_FALLBACK_SINGLE_VALUE</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
 </tr>
+
+<!-- 
 <tr class="row0">
-<td class="file">nounit.h</td><td class="proto">icu::NoUnit::~NoUnit()</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+<td class="file">numberrangeformatter.h</td><td class="proto"><tt>enum</tt> UNumberRangeIdentityResult::UNUM_IDENTITY_RESULT_COUNT</td><td class="">(missing)</td><td>Internal<br>
+<span class=""><span></span></span></td>
 </tr>
+-->
+<tr class="row0"> <td class="proto" colspan="4">&nbsp; </td> </tr>
+
+
 <tr class="row1">
-<td class="file">nounit.h</td><td class="proto"><tt>static</tt> NoUnit icu::NoUnit::base()</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+<td class="file">numberrangeformatter.h</td><td class="proto"><tt>enum</tt> UNumberRangeIdentityResult::UNUM_IDENTITY_RESULT_EQUAL_AFTER_ROUNDING</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
 </tr>
 <tr class="row0">
-<td class="file">nounit.h</td><td class="proto"><tt>static</tt> NoUnit icu::NoUnit::percent()</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+<td class="file">numberrangeformatter.h</td><td class="proto"><tt>enum</tt> UNumberRangeIdentityResult::UNUM_IDENTITY_RESULT_EQUAL_BEFORE_ROUNDING</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
 </tr>
 <tr class="row1">
-<td class="file">nounit.h</td><td class="proto"><tt>static</tt> NoUnit icu::NoUnit::permille()</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+<td class="file">numberrangeformatter.h</td><td class="proto"><tt>enum</tt> UNumberRangeIdentityResult::UNUM_IDENTITY_RESULT_NOT_EQUAL</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
 </tr>
 <tr class="row0">
-<td class="file">nounit.h</td><td class="proto"><tt>static</tt> UClassID icu::NoUnit::getStaticClassID()</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+<td class="file">numberrangeformatter.h</td><td class="proto">icu::number::FormattedNumberRange::FormattedNumberRange(FormattedNumberRange&amp;&amp;)</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
 </tr>
+
+<!--
 <tr class="row1">
-<td class="file">numberformatter.h</td><td class="proto">Derived icu::number::NumberFormatterSettings&lt; Derived &gt;::adoptPerUnit(icu::MeasureUnit*) const&amp;</td><td class="" colspan="2" align="center">Draft<br>
-ICU 61</td>
+<td class="file">numberrangeformatter.h</td><td class="proto">icu::number::FormattedNumberRange::FormattedNumberRange(const FormattedNumberRange&amp;)=delete</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="row1"> <td class="proto" colspan="4">&nbsp; </td> </tr>
+
 <tr class="row0">
-<td class="file">numberformatter.h</td><td class="proto">Derived icu::number::NumberFormatterSettings&lt; Derived &gt;::adoptSymbols(NumberingSystem*) const&amp;</td><td class="" colspan="2" align="center">Draft<br>
-ICU 60</td>
+<td class="file">numberrangeformatter.h</td><td class="proto">icu::number::FormattedNumberRange::~FormattedNumberRange()</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
 </tr>
 <tr class="row1">
-<td class="file">numberformatter.h</td><td class="proto">Derived icu::number::NumberFormatterSettings&lt; Derived &gt;::adoptUnit(icu::MeasureUnit*) const&amp;</td><td class="" colspan="2" align="center">Draft<br>
-ICU 60</td>
+<td class="file">numberrangeformatter.h</td><td class="proto">icu::number::LocalizedNumberRangeFormatter::LocalizedNumberRangeFormatter()=default</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
 </tr>
 <tr class="row0">
-<td class="file">numberformatter.h</td><td class="proto">Derived icu::number::NumberFormatterSettings&lt; Derived &gt;::decimal(UNumberDecimalSeparatorDisplay) const&amp;</td><td class="" colspan="2" align="center">Draft<br>
-ICU 60</td>
+<td class="file">numberrangeformatter.h</td><td class="proto">icu::number::LocalizedNumberRangeFormatter::LocalizedNumberRangeFormatter(LocalizedNumberRangeFormatter&amp;&amp;)</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
 </tr>
 <tr class="row1">
-<td class="file">numberformatter.h</td><td class="proto">Derived icu::number::NumberFormatterSettings&lt; Derived &gt;::grouping(UGroupingStrategy) const&amp;</td><td class="" colspan="2" align="center">Draft<br>
-ICU 61</td>
+<td class="file">numberrangeformatter.h</td><td class="proto">icu::number::LocalizedNumberRangeFormatter::LocalizedNumberRangeFormatter(const LocalizedNumberRangeFormatter&amp;)</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
 </tr>
 <tr class="row0">
-<td class="file">numberformatter.h</td><td class="proto">Derived icu::number::NumberFormatterSettings&lt; Derived &gt;::integerWidth(const IntegerWidth&amp;) const&amp;</td><td class="" colspan="2" align="center">Draft<br>
-ICU 60</td>
+<td class="file">numberrangeformatter.h</td><td class="proto">icu::number::LocalizedNumberRangeFormatter::~LocalizedNumberRangeFormatter()</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
 </tr>
+
+<!--
 <tr class="row1">
-<td class="file">numberformatter.h</td><td class="proto">Derived icu::number::NumberFormatterSettings&lt; Derived &gt;::notation(const Notation&amp;) const&amp;</td><td class="" colspan="2" align="center">Draft<br>
-ICU 60</td>
+<td class="file">numberrangeformatter.h</td><td class="proto">icu::number::NumberRangeFormatter::NumberRangeFormatter()=delete</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="row1"> <td class="proto" colspan="4">&nbsp; </td> </tr>
+
+
 <tr class="row0">
-<td class="file">numberformatter.h</td><td class="proto">Derived icu::number::NumberFormatterSettings&lt; Derived &gt;::perUnit(const icu::MeasureUnit&amp;) const&amp;</td><td class="" colspan="2" align="center">Draft<br>
-ICU 61</td>
+<td class="file">numberrangeformatter.h</td><td class="proto">icu::number::UnlocalizedNumberRangeFormatter::UnlocalizedNumberRangeFormatter()=default</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
 </tr>
 <tr class="row1">
-<td class="file">numberformatter.h</td><td class="proto">Derived icu::number::NumberFormatterSettings&lt; Derived &gt;::sign(UNumberSignDisplay) const&amp;</td><td class="" colspan="2" align="center">Draft<br>
-ICU 60</td>
+<td class="file">numberrangeformatter.h</td><td class="proto">icu::number::UnlocalizedNumberRangeFormatter::UnlocalizedNumberRangeFormatter(UnlocalizedNumberRangeFormatter&amp;&amp;)</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
 </tr>
 <tr class="row0">
-<td class="file">numberformatter.h</td><td class="proto">Derived icu::number::NumberFormatterSettings&lt; Derived &gt;::symbols(const DecimalFormatSymbols&amp;) const&amp;</td><td class="" colspan="2" align="center">Draft<br>
-ICU 60</td>
+<td class="file">numberrangeformatter.h</td><td class="proto">icu::number::UnlocalizedNumberRangeFormatter::UnlocalizedNumberRangeFormatter(const UnlocalizedNumberRangeFormatter&amp;)</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
 </tr>
 <tr class="row1">
-<td class="file">numberformatter.h</td><td class="proto">Derived icu::number::NumberFormatterSettings&lt; Derived &gt;::unit(const icu::MeasureUnit&amp;) const&amp;</td><td class="" colspan="2" align="center">Draft<br>
-ICU 60</td>
+<td class="file">numberrangeformatter.h</td><td class="proto"><tt>static</tt> LocalizedNumberRangeFormatter icu::number::NumberRangeFormatter::withLocale(const Locale&amp;)</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
 </tr>
 <tr class="row0">
-<td class="file">numberformatter.h</td><td class="proto">Derived icu::number::NumberFormatterSettings&lt; Derived &gt;::unitWidth(UNumberUnitWidth) const&amp;</td><td class="" colspan="2" align="center">Draft<br>
-ICU 60</td>
+<td class="file">numberrangeformatter.h</td><td class="proto"><tt>static</tt> UnlocalizedNumberRangeFormatter icu::number::NumberRangeFormatter::with()</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
 </tr>
 <tr class="row1">
-<td class="file">numberformatter.h</td><td class="proto">FormattedNumber icu::number::LocalizedNumberFormatter::formatDecimal(StringPiece, UErrorCode&amp;)</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+<td class="file">numberrangeformatter.h</td><td class="proto">void icu::number::FormattedNumberRange::getAllFieldPositions(FieldPositionIterator&amp;, UErrorCode&amp;) const</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
 </tr>
+
+<!--
 <tr class="row0">
-<td class="file">numberformatter.h</td><td class="proto">FormattedNumber icu::number::LocalizedNumberFormatter::formatDouble(double, UErrorCode&amp;)</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+<td class="file">numberrangeformatter.h</td><td class="proto">void icu::number::LocalizedNumberRangeFormatter::formatImpl(impl::UFormattedNumberRangeData&amp;, bool, UErrorCode&amp;) const</td><td class="">(missing)</td><td>Internal<br>
+<span class=""><span></span></span></td>
 </tr>
+-->
+
+<!--
 <tr class="row1">
-<td class="file">numberformatter.h</td><td class="proto">FormattedNumber icu::number::LocalizedNumberFormatter::formatInt(int64_t, UErrorCode&amp;)</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+<td class="file">platform.h</td><td class="proto"><tt>#define</tt> CYGWINMSVC</td><td class="">(missing)</td><td>Internal<br>
+<span class=""><span></span></span></td>
 </tr>
 <tr class="row0">
-<td class="file">numberformatter.h</td><td class="proto">IntegerWidth icu::number::IntegerWidth::truncateAt(int32_t)</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+<td class="file">platform.h</td><td class="proto"><tt>#define</tt> U_DECLARE_UTF16</td><td class="">(missing)</td><td>Internal<br>
+<span class=""><span></span></span></td>
 </tr>
 <tr class="row1">
-<td class="file">numberformatter.h</td><td class="proto">LocalizedNumberFormatter icu::number::UnlocalizedNumberFormatter::locale(const icu::Locale&amp;) const&amp;</td><td class="" colspan="2" align="center">Draft<br>
-ICU 60</td>
+<td class="file">platform.h</td><td class="proto"><tt>#define</tt> U_NOEXCEPT</td><td class="">(missing)</td><td>Internal<br>
+<span class=""><span></span></span></td>
 </tr>
 <tr class="row0">
-<td class="file">numberformatter.h</td><td class="proto">Precision icu::number::CurrencyPrecision::withCurrency(const CurrencyUnit&amp;) const</td><td class="" colspan="2" align="center">Draft<br>
-ICU 60</td>
+<td class="file">platform.h</td><td class="proto"><tt>#define</tt> __has_declspec_attribute</td><td class="">(missing)</td><td>Internal<br>
+<span class=""><span></span></span></td>
 </tr>
+-->
+<tr class="row0"> <td class="proto" colspan="4">&nbsp; </td> </tr>
+
+
 <tr class="row1">
-<td class="file">numberformatter.h</td><td class="proto">Precision icu::number::FractionPrecision::withMaxDigits(int32_t)</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+<td class="file">reldatefmt.h</td><td class="proto"><tt>enum</tt> UDateAbsoluteUnit::UDAT_ABSOLUTE_QUARTER</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
 </tr>
 <tr class="row0">
-<td class="file">numberformatter.h</td><td class="proto">Precision icu::number::FractionPrecision::withMinDigits(int32_t)</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+<td class="file">uchar.h</td><td class="proto">const UCPMap* u_getIntPropertyMap(UProperty, UErrorCode*)</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
 </tr>
 <tr class="row1">
-<td class="file">numberformatter.h</td><td class="proto">Precision icu::number::IncrementPrecision::withMinFraction(int32_t)</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+<td class="file">uchar.h</td><td class="proto">const USet* u_getBinaryPropertySet(UProperty, UErrorCode*)</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
 </tr>
 <tr class="row0">
-<td class="file">numberformatter.h</td><td class="proto">ScientificNotation icu::number::ScientificNotation::withExponentSignDisplay(UNumberSignDisplay)</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UIndicPositionalCategory::U_INPC_BOTTOM_AND_LEFT</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</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">numberformatter.h</td><td class="proto">ScientificNotation icu::number::ScientificNotation::withMinExponentDigits(int32_t)</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UIndicPositionalCategory::U_INPC_BOTTOM_AND_RIGHT</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</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">numberformatter.h</td><td class="proto">UBool icu::number::NumberFormatterSettings&lt; Derived &gt;::copyErrorTo(UErrorCode&amp;)</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UIndicPositionalCategory::U_INPC_BOTTOM</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</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">numberformatter.h</td><td class="proto">icu::number::FormattedNumber::~FormattedNumber()</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UIndicPositionalCategory::U_INPC_LEFT_AND_RIGHT</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</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">numberformatter.h</td><td class="proto">icu::number::LocalizedNumberFormatter::LocalizedNumberFormatter(const LocalizedNumberFormatter&amp;)</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UIndicPositionalCategory::U_INPC_LEFT</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</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">numberformatter.h</td><td class="proto">icu::number::LocalizedNumberFormatter::~LocalizedNumberFormatter()</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UIndicPositionalCategory::U_INPC_NA</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</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">numberformatter.h</td><td class="proto">icu::number::UnlocalizedNumberFormatter::UnlocalizedNumberFormatter(const UnlocalizedNumberFormatter&amp;)</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UIndicPositionalCategory::U_INPC_OVERSTRUCK</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</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">numberformatter.h</td><td class="proto"><tt>static</tt> CompactNotation icu::number::Notation::compactLong()</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UIndicPositionalCategory::U_INPC_RIGHT</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</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">numberformatter.h</td><td class="proto"><tt>static</tt> CompactNotation icu::number::Notation::compactShort()</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UIndicPositionalCategory::U_INPC_TOP_AND_BOTTOM_AND_RIGHT</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</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">numberformatter.h</td><td class="proto"><tt>static</tt> CurrencyPrecision icu::number::Precision::currency(UCurrencyUsage)</td><td class="" colspan="2" align="center">Draft<br>
-ICU 60</td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UIndicPositionalCategory::U_INPC_TOP_AND_BOTTOM</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</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">numberformatter.h</td><td class="proto"><tt>static</tt> FractionPrecision icu::number::Precision::fixedFraction(int32_t)</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UIndicPositionalCategory::U_INPC_TOP_AND_LEFT_AND_RIGHT</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</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">numberformatter.h</td><td class="proto"><tt>static</tt> FractionPrecision icu::number::Precision::integer()</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UIndicPositionalCategory::U_INPC_TOP_AND_LEFT</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</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">numberformatter.h</td><td class="proto"><tt>static</tt> FractionPrecision icu::number::Precision::maxFraction(int32_t)</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UIndicPositionalCategory::U_INPC_TOP_AND_RIGHT</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</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">numberformatter.h</td><td class="proto"><tt>static</tt> FractionPrecision icu::number::Precision::minFraction(int32_t)</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UIndicPositionalCategory::U_INPC_TOP</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</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">numberformatter.h</td><td class="proto"><tt>static</tt> FractionPrecision icu::number::Precision::minMaxFraction(int32_t, int32_t)</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UIndicPositionalCategory::U_INPC_VISUAL_ORDER_LEFT</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</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">numberformatter.h</td><td class="proto"><tt>static</tt> IncrementPrecision icu::number::Precision::increment(double)</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UIndicSyllabicCategory::U_INSC_AVAGRAHA</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</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">numberformatter.h</td><td class="proto"><tt>static</tt> IntegerWidth icu::number::IntegerWidth::zeroFillTo(int32_t)</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UIndicSyllabicCategory::U_INSC_BINDU</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</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">numberformatter.h</td><td class="proto"><tt>static</tt> LocalizedNumberFormatter icu::number::NumberFormatter::withLocale(const Locale&amp;)</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UIndicSyllabicCategory::U_INSC_BRAHMI_JOINING_NUMBER</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</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">numberformatter.h</td><td class="proto"><tt>static</tt> Precision icu::number::Precision::unlimited()</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UIndicSyllabicCategory::U_INSC_CANTILLATION_MARK</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</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">numberformatter.h</td><td class="proto"><tt>static</tt> ScientificNotation icu::number::Notation::engineering()</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UIndicSyllabicCategory::U_INSC_CONSONANT_DEAD</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</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">numberformatter.h</td><td class="proto"><tt>static</tt> ScientificNotation icu::number::Notation::scientific()</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UIndicSyllabicCategory::U_INSC_CONSONANT_FINAL</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</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">numberformatter.h</td><td class="proto"><tt>static</tt> SimpleNotation icu::number::Notation::simple()</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UIndicSyllabicCategory::U_INSC_CONSONANT_HEAD_LETTER</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</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">numberformatter.h</td><td class="proto"><tt>static</tt> UnlocalizedNumberFormatter icu::number::NumberFormatter::with()</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UIndicSyllabicCategory::U_INSC_CONSONANT_INITIAL_POSTFIXED</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</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">ERoundingMode icu::NumberFormat::getRoundingMode()</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UIndicSyllabicCategory::U_INSC_CONSONANT_KILLER</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</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">numfmt.h</td><td class="proto">void icu::NumberFormat::setRoundingMode(ERoundingMode)</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UIndicSyllabicCategory::U_INSC_CONSONANT_MEDIAL</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</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">rbnf.h</td><td class="proto">ERoundingMode icu::RuleBasedNumberFormat::getRoundingMode()</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UIndicSyllabicCategory::U_INSC_CONSONANT_PLACEHOLDER</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</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">rbnf.h</td><td class="proto">void icu::RuleBasedNumberFormat::setRoundingMode(ERoundingMode)</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UIndicSyllabicCategory::U_INSC_CONSONANT_PRECEDING_REPHA</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</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">stringoptions.h</td><td class="proto"><tt>#define</tt> U_EDITS_NO_RESET</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UIndicSyllabicCategory::U_INSC_CONSONANT_PREFIXED</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</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">stringoptions.h</td><td class="proto"><tt>#define</tt> U_OMIT_UNCHANGED_TEXT</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UIndicSyllabicCategory::U_INSC_CONSONANT_SUBJOINED</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</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">stringoptions.h</td><td class="proto"><tt>#define</tt> U_TITLECASE_ADJUST_TO_CASED</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UIndicSyllabicCategory::U_INSC_CONSONANT_SUCCEEDING_REPHA</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</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">stringoptions.h</td><td class="proto"><tt>#define</tt> U_TITLECASE_SENTENCES</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UIndicSyllabicCategory::U_INSC_CONSONANT_WITH_STACKER</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</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">stringoptions.h</td><td class="proto"><tt>#define</tt> U_TITLECASE_WHOLE_STRING</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UIndicSyllabicCategory::U_INSC_CONSONANT</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</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> UCurrNameStyle::UCURR_NARROW_SYMBOL_NAME</td><td class="" colspan="2" align="center">Draft<br>ICU 61</td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UIndicSyllabicCategory::U_INSC_GEMINATION_MARK</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</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> UDateTimePGDisplayWidth::UDATPG_ABBREVIATED</td><td class="" colspan="2" align="center">Draft<br>ICU 61</td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UIndicSyllabicCategory::U_INSC_INVISIBLE_STACKER</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</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">udatpg.h</td><td class="proto"><tt>enum</tt> UDateTimePGDisplayWidth::UDATPG_NARROW</td><td class="" colspan="2" align="center">Draft<br>ICU 61</td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UIndicSyllabicCategory::U_INSC_JOINER</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</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> UDateTimePGDisplayWidth::UDATPG_WIDE</td><td class="" colspan="2" align="center">Draft<br>ICU 61</td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UIndicSyllabicCategory::U_INSC_MODIFYING_LETTER</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</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">udatpg.h</td><td class="proto">int32_t udatpg_getFieldDisplayName(const UDateTimePatternGenerator*, UDateTimePatternField, UDateTimePGDisplayWidth, UChar*, int32_t, UErrorCode*)</td><td class="" colspan="2" align="center">Draft<br>ICU 61</td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UIndicSyllabicCategory::U_INSC_NON_JOINER</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</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">unistr.h</td><td class="proto">UnicodeString&amp; icu::UnicodeString::moveFrom(UnicodeString&amp;)</td><td class="" colspan="2" align="center">Draft<br>ICU 56</td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UIndicSyllabicCategory::U_INSC_NUKTA</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</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">unumberformatter.h</td><td class="proto"><tt>enum</tt> UGroupingStrategy::UNUM_GROUPING_AUTO</td><td class="" colspan="2" align="center">Draft<br>ICU 61</td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UIndicSyllabicCategory::U_INSC_NUMBER_JOINER</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</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">unumberformatter.h</td><td class="proto"><tt>enum</tt> UGroupingStrategy::UNUM_GROUPING_MIN2</td><td class="" colspan="2" align="center">Draft<br>ICU 61</td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UIndicSyllabicCategory::U_INSC_NUMBER</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</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">unumberformatter.h</td><td class="proto"><tt>enum</tt> UGroupingStrategy::UNUM_GROUPING_OFF</td><td class="" colspan="2" align="center">Draft<br>ICU 61</td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UIndicSyllabicCategory::U_INSC_OTHER</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</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">unumberformatter.h</td><td class="proto"><tt>enum</tt> UGroupingStrategy::UNUM_GROUPING_ON_ALIGNED</td><td class="" colspan="2" align="center">Draft<br>ICU 61</td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UIndicSyllabicCategory::U_INSC_PURE_KILLER</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</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">unumberformatter.h</td><td class="proto"><tt>enum</tt> UGroupingStrategy::UNUM_GROUPING_THOUSANDS</td><td class="" colspan="2" align="center">Draft<br>ICU 61</td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UIndicSyllabicCategory::U_INSC_REGISTER_SHIFTER</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</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">unumberformatter.h</td><td class="proto"><tt>enum</tt> UNumberDecimalSeparatorDisplay::UNUM_DECIMAL_SEPARATOR_ALWAYS</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UIndicSyllabicCategory::U_INSC_SYLLABLE_MODIFIER</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</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">unumberformatter.h</td><td class="proto"><tt>enum</tt> UNumberDecimalSeparatorDisplay::UNUM_DECIMAL_SEPARATOR_AUTO</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UIndicSyllabicCategory::U_INSC_TONE_LETTER</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</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">unumberformatter.h</td><td class="proto"><tt>enum</tt> UNumberSignDisplay::UNUM_SIGN_ACCOUNTING_ALWAYS</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UIndicSyllabicCategory::U_INSC_TONE_MARK</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</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">unumberformatter.h</td><td class="proto"><tt>enum</tt> UNumberSignDisplay::UNUM_SIGN_ACCOUNTING_EXCEPT_ZERO</td><td class="" colspan="2" align="center">Draft<br>ICU 61</td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UIndicSyllabicCategory::U_INSC_VIRAMA</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</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">unumberformatter.h</td><td class="proto"><tt>enum</tt> UNumberSignDisplay::UNUM_SIGN_ACCOUNTING</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UIndicSyllabicCategory::U_INSC_VISARGA</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</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">unumberformatter.h</td><td class="proto"><tt>enum</tt> UNumberSignDisplay::UNUM_SIGN_ALWAYS</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UIndicSyllabicCategory::U_INSC_VOWEL_DEPENDENT</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</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">unumberformatter.h</td><td class="proto"><tt>enum</tt> UNumberSignDisplay::UNUM_SIGN_AUTO</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UIndicSyllabicCategory::U_INSC_VOWEL_INDEPENDENT</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</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">unumberformatter.h</td><td class="proto"><tt>enum</tt> UNumberSignDisplay::UNUM_SIGN_EXCEPT_ZERO</td><td class="" colspan="2" align="center">Draft<br>ICU 61</td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UIndicSyllabicCategory::U_INSC_VOWEL</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</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">unumberformatter.h</td><td class="proto"><tt>enum</tt> UNumberSignDisplay::UNUM_SIGN_NEVER</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UProperty::UCHAR_INDIC_POSITIONAL_CATEGORY</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</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">unumberformatter.h</td><td class="proto"><tt>enum</tt> UNumberUnitWidth::UNUM_UNIT_WIDTH_FULL_NAME</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UProperty::UCHAR_INDIC_SYLLABIC_CATEGORY</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</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">unumberformatter.h</td><td class="proto"><tt>enum</tt> UNumberUnitWidth::UNUM_UNIT_WIDTH_HIDDEN</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UProperty::UCHAR_VERTICAL_ORIENTATION</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</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">unumberformatter.h</td><td class="proto"><tt>enum</tt> UNumberUnitWidth::UNUM_UNIT_WIDTH_ISO_CODE</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UVerticalOrientation::U_VO_ROTATED</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</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">unumberformatter.h</td><td class="proto"><tt>enum</tt> UNumberUnitWidth::UNUM_UNIT_WIDTH_NARROW</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UVerticalOrientation::U_VO_TRANSFORMED_ROTATED</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</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">unumberformatter.h</td><td class="proto"><tt>enum</tt> UNumberUnitWidth::UNUM_UNIT_WIDTH_SHORT</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UVerticalOrientation::U_VO_TRANSFORMED_UPRIGHT</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</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">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>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UVerticalOrientation::U_VO_UPRIGHT</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 63</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">utf16.h</td><td class="proto"><tt>#define</tt> U16_GET_OR_FFFD</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+<td class="file">uconfig.h</td><td class="proto"><tt>#define</tt> UCONFIG_ENABLE_PLUGINS</td><td class="">(missing)</td><td>Internal<br>
+<span class=""><span></span></span></td>
 </tr>
 <tr class="row1">
-<td class="file">utf16.h</td><td class="proto"><tt>#define</tt> U16_NEXT_OR_FFFD</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+<td class="file">uconfig.h</td><td class="proto"><tt>#define</tt> U_HAVE_LIB_SUFFIX</td><td class="">(missing)</td><td>Internal<br>
+<span class=""><span></span></span></td>
 </tr>
+-->
+
 <tr class="row0">
-<td class="file">utf16.h</td><td class="proto"><tt>#define</tt> U16_PREV_OR_FFFD</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+<td class="file">ucpmap.h</td><td class="proto">UChar32 ucpmap_getRange(const UCPMap*, UChar32, UCPMapRangeOption, uint32_t, UCPMapValueFilter*, const void*, uint32_t*)</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
 </tr>
 <tr class="row1">
-<td class="file">utf8.h</td><td class="proto"><tt>#define</tt> U8_TRUNCATE_IF_INCOMPLETE</td><td class="" colspan="2" align="center">Draft<br>ICU 61</td>
+<td class="file">ucpmap.h</td><td class="proto"><tt>enum</tt> UCPMapRangeOption::UCPMAP_RANGE_FIXED_ALL_SURROGATES</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
+</tr>
+<tr class="row0">
+<td class="file">ucpmap.h</td><td class="proto"><tt>enum</tt> UCPMapRangeOption::UCPMAP_RANGE_FIXED_LEAD_SURROGATES</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
+</tr>
+<tr class="row1">
+<td class="file">ucpmap.h</td><td class="proto"><tt>enum</tt> UCPMapRangeOption::UCPMAP_RANGE_NORMAL</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
+</tr>
+<tr class="row0">
+<td class="file">ucpmap.h</td><td class="proto">uint32_t ucpmap_get(const UCPMap*, UChar32)</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
+</tr>
+<tr class="row1">
+<td class="file">ucptrie.h</td><td class="proto"><tt>#define</tt> UCPTRIE_16</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
+</tr>
+<tr class="row0">
+<td class="file">ucptrie.h</td><td class="proto"><tt>#define</tt> UCPTRIE_32</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
 </tr>
+<tr class="row1">
+<td class="file">ucptrie.h</td><td class="proto"><tt>#define</tt> UCPTRIE_8</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
+</tr>
+<tr class="row0">
+<td class="file">ucptrie.h</td><td class="proto"><tt>#define</tt> UCPTRIE_ASCII_GET</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
+</tr>
+<tr class="row1">
+<td class="file">ucptrie.h</td><td class="proto"><tt>#define</tt> UCPTRIE_FAST_BMP_GET</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
+</tr>
+<tr class="row0">
+<td class="file">ucptrie.h</td><td class="proto"><tt>#define</tt> UCPTRIE_FAST_GET</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
+</tr>
+<tr class="row1">
+<td class="file">ucptrie.h</td><td class="proto"><tt>#define</tt> UCPTRIE_FAST_SUPP_GET</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
+</tr>
+<tr class="row0">
+<td class="file">ucptrie.h</td><td class="proto"><tt>#define</tt> UCPTRIE_FAST_U16_NEXT</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
+</tr>
+<tr class="row1">
+<td class="file">ucptrie.h</td><td class="proto"><tt>#define</tt> UCPTRIE_FAST_U16_PREV</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
+</tr>
+<tr class="row0">
+<td class="file">ucptrie.h</td><td class="proto"><tt>#define</tt> UCPTRIE_FAST_U8_NEXT</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
+</tr>
+<tr class="row1">
+<td class="file">ucptrie.h</td><td class="proto"><tt>#define</tt> UCPTRIE_FAST_U8_PREV</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
+</tr>
+<tr class="row0">
+<td class="file">ucptrie.h</td><td class="proto"><tt>#define</tt> UCPTRIE_SMALL_GET</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
+</tr>
+<tr class="row1">
+<td class="file">ucptrie.h</td><td class="proto">UCPTrie* ucptrie_openFromBinary(UCPTrieType, UCPTrieValueWidth, const void*, int32_t, int32_t*, UErrorCode*)</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
+</tr>
+<tr class="row0">
+<td class="file">ucptrie.h</td><td class="proto">UCPTrieType ucptrie_getType(const UCPTrie*)</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
+</tr>
+<tr class="row1">
+<td class="file">ucptrie.h</td><td class="proto">UCPTrieValueWidth ucptrie_getValueWidth(const UCPTrie*)</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
+</tr>
+<tr class="row0">
+<td class="file">ucptrie.h</td><td class="proto">UChar32 ucptrie_getRange(const UCPTrie*, UChar32, UCPMapRangeOption, uint32_t, UCPMapValueFilter*, const void*, uint32_t*)</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
+</tr>
+<tr class="row1">
+<td class="file">ucptrie.h</td><td class="proto"><tt>enum</tt> UCPTrieType::UCPTRIE_TYPE_ANY</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
+</tr>
+<tr class="row0">
+<td class="file">ucptrie.h</td><td class="proto"><tt>enum</tt> UCPTrieType::UCPTRIE_TYPE_FAST</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
+</tr>
+<tr class="row1">
+<td class="file">ucptrie.h</td><td class="proto"><tt>enum</tt> UCPTrieType::UCPTRIE_TYPE_SMALL</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
+</tr>
+<tr class="row0">
+<td class="file">ucptrie.h</td><td class="proto"><tt>enum</tt> UCPTrieValueWidth::UCPTRIE_VALUE_BITS_16</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
+</tr>
+<tr class="row1">
+<td class="file">ucptrie.h</td><td class="proto"><tt>enum</tt> UCPTrieValueWidth::UCPTRIE_VALUE_BITS_32</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
+</tr>
+<tr class="row0">
+<td class="file">ucptrie.h</td><td class="proto"><tt>enum</tt> UCPTrieValueWidth::UCPTRIE_VALUE_BITS_8</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
+</tr>
+<tr class="row1">
+<td class="file">ucptrie.h</td><td class="proto"><tt>enum</tt> UCPTrieValueWidth::UCPTRIE_VALUE_BITS_ANY</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
+</tr>
+<tr class="row0">
+<td class="file">ucptrie.h</td><td class="proto">int32_t ucptrie_toBinary(const UCPTrie*, void*, int32_t, UErrorCode*)</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
+</tr>
+<tr class="row1">
+<td class="file">ucptrie.h</td><td class="proto">uint32_t ucptrie_get(const UCPTrie*, UChar32)</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
+</tr>
+<tr class="row0">
+<td class="file">ucptrie.h</td><td class="proto">void ucptrie_close(UCPTrie*)</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
+</tr>
+<tr class="row1">
+<td class="file">ulistformatter.h</td><td class="proto"><tt>enum</tt> UListFormatterField::ULISTFMT_ELEMENT_FIELD</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
+</tr>
+<tr class="row0">
+<td class="file">ulistformatter.h</td><td class="proto"><tt>enum</tt> UListFormatterField::ULISTFMT_LITERAL_FIELD</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
+</tr>
+
+<!--
+<tr class="row1">
+<td class="file">umachine.h</td><td class="proto"><tt>#define</tt> U_FINAL</td><td class="">(missing)</td><td>Internal<br>
+<span class=""><span></span></span></td>
+</tr>
+<tr class="row0">
+<td class="file">umachine.h</td><td class="proto"><tt>#define</tt> U_OVERRIDE</td><td class="">(missing)</td><td>Internal<br>
+<span class=""><span></span></span></td>
+</tr>
+-->
+
+<tr class="row1">
+<td class="file">umutablecptrie.h</td><td class="proto">UCPTrie* umutablecptrie_buildImmutable(UMutableCPTrie*, UCPTrieType, UCPTrieValueWidth, UErrorCode*)</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
+</tr>
+<tr class="row0">
+<td class="file">umutablecptrie.h</td><td class="proto">UMutableCPTrie* umutablecptrie_clone(const UMutableCPTrie*, UErrorCode*)</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
+</tr>
+<tr class="row1">
+<td class="file">umutablecptrie.h</td><td class="proto">UMutableCPTrie* umutablecptrie_fromUCPMap(const UCPMap*, UErrorCode*)</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
+</tr>
+<tr class="row0">
+<td class="file">umutablecptrie.h</td><td class="proto">UMutableCPTrie* umutablecptrie_fromUCPTrie(const UCPTrie*, UErrorCode*)</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
+</tr>
+<tr class="row1">
+<td class="file">umutablecptrie.h</td><td class="proto">UMutableCPTrie* umutablecptrie_open(uint32_t, uint32_t, UErrorCode*)</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
+</tr>
+<tr class="row0">
+<td class="file">umutablecptrie.h</td><td class="proto">UChar32 umutablecptrie_getRange(const UMutableCPTrie*, UChar32, UCPMapRangeOption, uint32_t, UCPMapValueFilter*, const void*, uint32_t*)</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
+</tr>
+<tr class="row1">
+<td class="file">umutablecptrie.h</td><td class="proto">uint32_t umutablecptrie_get(const UMutableCPTrie*, UChar32)</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
+</tr>
+<tr class="row0">
+<td class="file">umutablecptrie.h</td><td class="proto">void umutablecptrie_close(UMutableCPTrie*)</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
+</tr>
+<tr class="row1">
+<td class="file">umutablecptrie.h</td><td class="proto">void umutablecptrie_set(UMutableCPTrie*, UChar32, uint32_t, UErrorCode*)</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
+</tr>
+<tr class="row0">
+<td class="file">umutablecptrie.h</td><td class="proto">void umutablecptrie_setRange(UMutableCPTrie*, UChar32, UChar32, uint32_t, UErrorCode*)</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 63</span></span></td>
+</tr>
+
+<!-- 
+<tr class="row1">
+<td class="file">unumberformatter.h</td><td class="proto"><tt>enum</tt> UNumberGroupingStrategy::UNUM_GROUPING_AUTO</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 61</span>
+<br>
+<b class="bigwarn" title="A draft API has the wrong version.">(should be ICU 63)</b></span></td>
+</tr>
+<tr class="row0">
+<td class="file">unumberformatter.h</td><td class="proto"><tt>enum</tt> UNumberGroupingStrategy::UNUM_GROUPING_COUNT</td><td class="">(missing)</td><td>Internal<br>
+<span class=""><span>ICU 62</span></span></td>
+</tr>
+<tr class="row1">
+<td class="file">unumberformatter.h</td><td class="proto"><tt>enum</tt> UNumberGroupingStrategy::UNUM_GROUPING_MIN2</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 61</span>
+<br>
+<b class="bigwarn" title="A draft API has the wrong version.">(should be ICU 63)</b></span></td>
+</tr>
+<tr class="row0">
+<td class="file">unumberformatter.h</td><td class="proto"><tt>enum</tt> UNumberGroupingStrategy::UNUM_GROUPING_OFF</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 61</span>
+<br>
+<b class="bigwarn" title="A draft API has the wrong version.">(should be ICU 63)</b></span></td>
+</tr>
+<tr class="row1">
+<td class="file">unumberformatter.h</td><td class="proto"><tt>enum</tt> UNumberGroupingStrategy::UNUM_GROUPING_ON_ALIGNED</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 61</span>
+<br>
+<b class="bigwarn" title="A draft API has the wrong version.">(should be ICU 63)</b></span></td>
+</tr>
+<tr class="row0">
+<td class="file">unumberformatter.h</td><td class="proto"><tt>enum</tt> UNumberGroupingStrategy::UNUM_GROUPING_THOUSANDS</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 61</span>
+<br>
+<b class="bigwarn" title="A draft API has the wrong version.">(should be ICU 63)</b></span></td>
+</tr>
+-->
+
+<!--
+<tr class="row1">
+<td class="file">uobject.h</td><td class="proto"><tt>#define</tt> U_NO_THROW</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 4.2</span></span></td>
+</tr>
+<tr class="row0">
+<td class="file">utypes.h</td><td class="proto"><tt>#define</tt> U_COMBINED_IMPLEMENTATION</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 2.0</span></span></td>
+</tr>
+-->
+
 </table>
-</div>
 <P></P>
 <a href="#_top">(jump back to top)</a>
 <hr>
-<a name="purevirtual"></a>
-<h2>Signature Simplifications</h2>
-<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>
+<a name="other"></a>
+<h2>Other existing drafts in ICU 63</h2>
 <div class="other">
 <table BORDER="1" class="genTable">
 <THEAD>
 <tr>
-<th>File</th><th>API</th><th>Status</th><th>In ICU version</th>
+<th>File</th><th>API</th><th>ICU 62</th><th>ICU 63</th>
 </tr>
 </THEAD>
-
-<tr>
-<td class="file">numberformatter.h</td><td class="proto"><strong>Derived icu::number::NumberFormatterSettings&lt; Derived &gt;::decimal(UNumberDecimalSeparatorDisplay) const&amp;</strong></td><td class="">Draft<br>ICU 60</td><td class="">ICU 62</td>
+<tr class="row1">
+<td class="file">decimfmt.h</td><td class="proto">const number::LocalizedNumberFormatter&amp; icu::DecimalFormat::toNumberFormatter() const</td><td class="" colspan="2" align="center">Draft<br>ICU 62</td>
 </tr>
-<tr>
-<td class="file">numberformatter.h</td><td class="proto">Derived icu::number::NumberFormatterSettings&lt; Derived &gt;::decimal(const UNumberDecimalSeparatorDisplay&amp;) const</td><td class="">Draft<br>ICU 60</td><td class="">ICU 61</td>
+<tr class="row0">
+<td class="file">decimfmt.h</td><td class="proto">int32_t icu::DecimalFormat::getMultiplierScale() const</td><td class="" colspan="2" align="center">Draft<br>ICU 62</td>
 </tr>
-
-<tr>
-<td class="file">numberformatter.h</td><td class="proto"><strong>Derived icu::number::NumberFormatterSettings&lt; Derived &gt;::grouping(UGroupingStrategy) const&amp;</strong></td><td class="">Draft<br>ICU 61</td><td class="">ICU 62</td>
+<tr class="row1">
+<td class="file">decimfmt.h</td><td class="proto">void icu::DecimalFormat::setMultiplierScale(int32_t)</td><td class="" colspan="2" align="center">Draft<br>ICU 62</td>
 </tr>
-<tr>
-<td class="file">numberformatter.h</td><td class="proto">Derived icu::number::NumberFormatterSettings&lt; Derived &gt;::grouping(const UGroupingStrategy&amp;) const</td><td class="">Draft<br>ICU 61</td><td class="">ICU 61</td>
+<tr class="row0">
+<td class="file">dtptngen.h</td><td class="proto">UnicodeString icu::DateTimePatternGenerator::getFieldDisplayName(UDateTimePatternField, UDateTimePGDisplayWidth) const</td><td class="" colspan="2" align="center">Draft<br>ICU 61</td>
 </tr>
-
-<tr>
-<td class="file">numberformatter.h</td><td class="proto"><strong>Derived icu::number::NumberFormatterSettings&lt; Derived &gt;::sign(UNumberSignDisplay) const&amp;</strong></td><td class="">Draft<br>ICU 60</td><td class="">ICU 62</td>
+<tr class="row1">
+<td class="file">localpointer.h</td><td class="proto">LocalArray&lt;T&gt;&amp; icu::LocalArray&lt; T &gt;::moveFrom(LocalArray&lt; T &gt;&amp;)</td><td class="" colspan="2" align="center">Draft<br>ICU 56</td>
 </tr>
-<tr>
-<td class="file">numberformatter.h</td><td class="proto">Derived icu::number::NumberFormatterSettings&lt; Derived &gt;::sign(const UNumberSignDisplay&amp;) const</td><td class="">Draft<br>ICU 60</td><td class="">ICU 61</td>
+<tr class="row0">
+<td class="file">localpointer.h</td><td class="proto">LocalPointer&lt;T&gt;&amp; icu::LocalPointer&lt; T &gt;::moveFrom(LocalPointer&lt; T &gt;&amp;)</td><td class="" colspan="2" align="center">Draft<br>ICU 56</td>
 </tr>
-
-<tr>
-<td class="file">numberformatter.h</td><td class="proto"><strong>Derived icu::number::NumberFormatterSettings&lt; Derived &gt;::unitWidth(UNumberUnitWidth) const&amp;</strong></td><td class="">Draft<br>ICU 60</td><td class="">ICU 62</td>
+<tr class="row1">
+<td class="file">measfmt.h</td><td class="proto">void icu::MeasureFormat::parseObject(const UnicodeString&amp;, Formattable&amp;, ParsePosition&amp;) const</td><td class="" colspan="2" align="center">Draft<br>ICU 53</td>
 </tr>
-<tr>
-<td class="file">numberformatter.h</td><td class="proto">Derived icu::number::NumberFormatterSettings&lt; Derived &gt;::unitWidth(const UNumberUnitWidth&amp;) const</td><td class="">Draft<br>ICU 60</td><td class="">ICU 61</td>
+<tr class="row0">
+<td class="file">nounit.h</td><td class="proto">UClassID icu::NoUnit::getDynamicClassID() const</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+</tr>
+<tr class="row1">
+<td class="file">nounit.h</td><td class="proto">UObject* icu::NoUnit::clone() const</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+</tr>
+<tr class="row0">
+<td class="file">nounit.h</td><td class="proto">icu::NoUnit::NoUnit(const NoUnit&amp;)</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+</tr>
+<tr class="row1">
+<td class="file">nounit.h</td><td class="proto">icu::NoUnit::~NoUnit()</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+</tr>
+<tr class="row0">
+<td class="file">nounit.h</td><td class="proto"><tt>static</tt> NoUnit icu::NoUnit::base()</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+</tr>
+<tr class="row1">
+<td class="file">nounit.h</td><td class="proto"><tt>static</tt> NoUnit icu::NoUnit::percent()</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+</tr>
+<tr class="row0">
+<td class="file">nounit.h</td><td class="proto"><tt>static</tt> NoUnit icu::NoUnit::permille()</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+</tr>
+<tr class="row1">
+<td class="file">nounit.h</td><td class="proto"><tt>static</tt> UClassID icu::NoUnit::getStaticClassID()</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+</tr>
+<tr class="row0">
+<td class="file">numberformatter.h</td><td class="proto">Appendable&amp; icu::number::FormattedNumber::appendTo(Appendable&amp;, UErrorCode&amp;) <b><i>const</i></b></td><td class="">(const added)<br>
+</td><td>Draft<br>
+<span class=""><span>ICU 62</span></span></td>
+</tr>
+<tr class="row1">
+<td class="file">numberformatter.h</td><td class="proto">Derived icu::number::NumberFormatterSettings&lt; Derived &gt;::adoptPerUnit(icu::MeasureUnit*) const&amp;</td><td class="" colspan="2" align="center">Draft<br>ICU 61</td>
+</tr>
+<tr class="row0">
+<td class="file">numberformatter.h</td><td class="proto">Derived icu::number::NumberFormatterSettings&lt; Derived &gt;::adoptPerUnit(icu::MeasureUnit*)&amp;&amp;</td><td class="" colspan="2" align="center">Draft<br>ICU 62</td>
+</tr>
+<tr class="row1">
+<td class="file">numberformatter.h</td><td class="proto">Derived icu::number::NumberFormatterSettings&lt; Derived &gt;::adoptSymbols(NumberingSystem*) const&amp;</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+</tr>
+<tr class="row0">
+<td class="file">numberformatter.h</td><td class="proto">Derived icu::number::NumberFormatterSettings&lt; Derived &gt;::adoptSymbols(NumberingSystem*)&amp;&amp;</td><td class="" colspan="2" align="center">Draft<br>ICU 62</td>
+</tr>
+<tr class="row1">
+<td class="file">numberformatter.h</td><td class="proto">Derived icu::number::NumberFormatterSettings&lt; Derived &gt;::adoptUnit(icu::MeasureUnit*) const&amp;</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+</tr>
+<tr class="row0">
+<td class="file">numberformatter.h</td><td class="proto">Derived icu::number::NumberFormatterSettings&lt; Derived &gt;::adoptUnit(icu::MeasureUnit*)&amp;&amp;</td><td class="" colspan="2" align="center">Draft<br>ICU 62</td>
+</tr>
+<tr class="row1">
+<td class="file">numberformatter.h</td><td class="proto">Derived icu::number::NumberFormatterSettings&lt; Derived &gt;::decimal(UNumberDecimalSeparatorDisplay) const&amp;</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+</tr>
+<tr class="row0">
+<td class="file">numberformatter.h</td><td class="proto">Derived icu::number::NumberFormatterSettings&lt; Derived &gt;::decimal(UNumberDecimalSeparatorDisplay)&amp;&amp;</td><td class="" colspan="2" align="center">Draft<br>ICU 62</td>
+</tr>
+<tr class="row1">
+<td class="file">numberformatter.h</td><td class="proto">Derived icu::number::NumberFormatterSettings&lt; Derived &gt;::grouping(U<b><i>Number</i></b>GroupingStrategy) const&amp;</td><td class="">(renamed)<br>
+</td><td>Draft<br>
+<span class=""><span>ICU 61</span></span></td>
+</tr>
+<tr class="row0">
+<td class="file">numberformatter.h</td><td class="proto">Derived icu::number::NumberFormatterSettings&lt; Derived &gt;::grouping(U<b><i>Number</i></b>GroupingStrategy)&amp;&amp;</td><td class="">(renamed)<br>
+</td><td>Draft<br>
+<span class=""><span>ICU 62</span></span></td>
+</tr>
+<tr class="row1">
+<td class="file">numberformatter.h</td><td class="proto">Derived icu::number::NumberFormatterSettings&lt; Derived &gt;::integerWidth(const IntegerWidth&amp;) const&amp;</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+</tr>
+<tr class="row0">
+<td class="file">numberformatter.h</td><td class="proto">Derived icu::number::NumberFormatterSettings&lt; Derived &gt;::integerWidth(const IntegerWidth&amp;)&amp;&amp;</td><td class="" colspan="2" align="center">Draft<br>ICU 62</td>
+</tr>
+<tr class="row1">
+<td class="file">numberformatter.h</td><td class="proto">Derived icu::number::NumberFormatterSettings&lt; Derived &gt;::notation(const Notation&amp;) const&amp;</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+</tr>
+<tr class="row0">
+<td class="file">numberformatter.h</td><td class="proto">Derived icu::number::NumberFormatterSettings&lt; Derived &gt;::notation(const Notation&amp;)&amp;&amp;</td><td class="" colspan="2" align="center">Draft<br>ICU 62</td>
+</tr>
+<tr class="row1">
+<td class="file">numberformatter.h</td><td class="proto">Derived icu::number::NumberFormatterSettings&lt; Derived &gt;::perUnit(const icu::MeasureUnit&amp;) const&amp;</td><td class="" colspan="2" align="center">Draft<br>ICU 61</td>
+</tr>
+<tr class="row0">
+<td class="file">numberformatter.h</td><td class="proto">Derived icu::number::NumberFormatterSettings&lt; Derived &gt;::perUnit(const icu::MeasureUnit&amp;)&amp;&amp;</td><td class="" colspan="2" align="center">Draft<br>ICU 62</td>
+</tr>
+<tr class="row1">
+<td class="file">numberformatter.h</td><td class="proto">Derived icu::number::NumberFormatterSettings&lt; Derived &gt;::precision(const Precision&amp;) const&amp;</td><td class="" colspan="2" align="center">Draft<br>ICU 62</td>
+</tr>
+<tr class="row0">
+<td class="file">numberformatter.h</td><td class="proto">Derived icu::number::NumberFormatterSettings&lt; Derived &gt;::precision(const Precision&amp;)&amp;&amp;</td><td class="" colspan="2" align="center">Draft<br>ICU 62</td>
+</tr>
+<tr class="row1">
+<td class="file">numberformatter.h</td><td class="proto">Derived icu::number::NumberFormatterSettings&lt; Derived &gt;::roundingMode(UNumberFormatRoundingMode) const&amp;</td><td class="" colspan="2" align="center">Draft<br>ICU 62</td>
+</tr>
+<tr class="row0">
+<td class="file">numberformatter.h</td><td class="proto">Derived icu::number::NumberFormatterSettings&lt; Derived &gt;::roundingMode(UNumberFormatRoundingMode)&amp;&amp;</td><td class="" colspan="2" align="center">Draft<br>ICU 62</td>
+</tr>
+<tr class="row1">
+<td class="file">numberformatter.h</td><td class="proto">Derived icu::number::NumberFormatterSettings&lt; Derived &gt;::scale(const Scale&amp;) const&amp;</td><td class="" colspan="2" align="center">Draft<br>ICU 62</td>
+</tr>
+<tr class="row0">
+<td class="file">numberformatter.h</td><td class="proto">Derived icu::number::NumberFormatterSettings&lt; Derived &gt;::scale(const Scale&amp;)&amp;&amp;</td><td class="" colspan="2" align="center">Draft<br>ICU 62</td>
+</tr>
+<tr class="row1">
+<td class="file">numberformatter.h</td><td class="proto">Derived icu::number::NumberFormatterSettings&lt; Derived &gt;::sign(UNumberSignDisplay) const&amp;</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+</tr>
+<tr class="row0">
+<td class="file">numberformatter.h</td><td class="proto">Derived icu::number::NumberFormatterSettings&lt; Derived &gt;::sign(UNumberSignDisplay)&amp;&amp;</td><td class="" colspan="2" align="center">Draft<br>ICU 62</td>
+</tr>
+<tr class="row1">
+<td class="file">numberformatter.h</td><td class="proto">Derived icu::number::NumberFormatterSettings&lt; Derived &gt;::symbols(const DecimalFormatSymbols&amp;) const&amp;</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+</tr>
+<tr class="row0">
+<td class="file">numberformatter.h</td><td class="proto">Derived icu::number::NumberFormatterSettings&lt; Derived &gt;::symbols(const DecimalFormatSymbols&amp;)&amp;&amp;</td><td class="" colspan="2" align="center">Draft<br>ICU 62</td>
+</tr>
+<tr class="row1">
+<td class="file">numberformatter.h</td><td class="proto">Derived icu::number::NumberFormatterSettings&lt; Derived &gt;::unit(const icu::MeasureUnit&amp;) const&amp;</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+</tr>
+<tr class="row0">
+<td class="file">numberformatter.h</td><td class="proto">Derived icu::number::NumberFormatterSettings&lt; Derived &gt;::unit(const icu::MeasureUnit&amp;)&amp;&amp;</td><td class="" colspan="2" align="center">Draft<br>ICU 62</td>
+</tr>
+<tr class="row1">
+<td class="file">numberformatter.h</td><td class="proto">Derived icu::number::NumberFormatterSettings&lt; Derived &gt;::unitWidth(UNumberUnitWidth) const&amp;</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+</tr>
+<tr class="row0">
+<td class="file">numberformatter.h</td><td class="proto">Derived icu::number::NumberFormatterSettings&lt; Derived &gt;::unitWidth(UNumberUnitWidth)&amp;&amp;</td><td class="" colspan="2" align="center">Draft<br>ICU 62</td>
+</tr>
+<tr class="row1">
+<td class="file">numberformatter.h</td><td class="proto">Format* icu::number::LocalizedNumberFormatter::toFormat(UErrorCode&amp;) const</td><td class="" colspan="2" align="center">Draft<br>ICU 62</td>
+</tr>
+<tr class="row0">
+<td class="file">numberformatter.h</td><td class="proto">FormattedNumber icu::number::LocalizedNumberFormatter::formatDecimal(StringPiece, UErrorCode&amp;) const</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+</tr>
+<tr class="row1">
+<td class="file">numberformatter.h</td><td class="proto">FormattedNumber icu::number::LocalizedNumberFormatter::formatDouble(double, UErrorCode&amp;) const</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+</tr>
+<tr class="row0">
+<td class="file">numberformatter.h</td><td class="proto">FormattedNumber icu::number::LocalizedNumberFormatter::formatInt(int64_t, UErrorCode&amp;) const</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+</tr>
+<tr class="row1">
+<td class="file">numberformatter.h</td><td class="proto">FormattedNumber&amp; icu::number::FormattedNumber::operator=(FormattedNumber&amp;&amp;)</td><td class="" colspan="2" align="center">Draft<br>ICU 62</td>
+</tr>
+<tr class="row0">
+<td class="file">numberformatter.h</td><td class="proto">IntegerWidth icu::number::IntegerWidth::truncateAt(int32_t)</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+</tr>
+<tr class="row1">
+<td class="file">numberformatter.h</td><td class="proto">LocalizedNumberFormatter icu::number::UnlocalizedNumberFormatter::locale(const icu::Locale&amp;) const&amp;</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+</tr>
+<tr class="row0">
+<td class="file">numberformatter.h</td><td class="proto">LocalizedNumberFormatter icu::number::UnlocalizedNumberFormatter::locale(const icu::Locale&amp;)&amp;&amp;</td><td class="" colspan="2" align="center">Draft<br>ICU 62</td>
+</tr>
+<tr class="row1">
+<td class="file">numberformatter.h</td><td class="proto">LocalizedNumberFormatter&amp; icu::number::LocalizedNumberFormatter::operator=(LocalizedNumberFormatter&amp;&amp;)</td><td class="" colspan="2" align="center">Draft<br>ICU 62</td>
+</tr>
+<tr class="row0">
+<td class="file">numberformatter.h</td><td class="proto">LocalizedNumberFormatter&amp; icu::number::LocalizedNumberFormatter::operator=(const LocalizedNumberFormatter&amp;)</td><td class="" colspan="2" align="center">Draft<br>ICU 62</td>
+</tr>
+<tr class="row1">
+<td class="file">numberformatter.h</td><td class="proto">Precision icu::number::CurrencyPrecision::withCurrency(const CurrencyUnit&amp;) const</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+</tr>
+<tr class="row0">
+<td class="file">numberformatter.h</td><td class="proto">Precision icu::number::FractionPrecision::withMaxDigits(int32_t) const</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+</tr>
+<tr class="row1">
+<td class="file">numberformatter.h</td><td class="proto">Precision icu::number::FractionPrecision::withMinDigits(int32_t) const</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+</tr>
+<tr class="row0">
+<td class="file">numberformatter.h</td><td class="proto">Precision icu::number::IncrementPrecision::withMinFraction(int32_t) const</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+</tr>
+<tr class="row1">
+<td class="file">numberformatter.h</td><td class="proto">Scale&amp; icu::number::Scale::operator=(Scale&amp;&amp;)</td><td class="" colspan="2" align="center">Draft<br>ICU 62</td>
+</tr>
+<tr class="row0">
+<td class="file">numberformatter.h</td><td class="proto">Scale&amp; icu::number::Scale::operator=(const Scale&amp;)</td><td class="" colspan="2" align="center">Draft<br>ICU 62</td>
+</tr>
+<tr class="row1">
+<td class="file">numberformatter.h</td><td class="proto">ScientificNotation icu::number::ScientificNotation::withExponentSignDisplay(UNumberSignDisplay) const</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+</tr>
+<tr class="row0">
+<td class="file">numberformatter.h</td><td class="proto">ScientificNotation icu::number::ScientificNotation::withMinExponentDigits(int32_t) const</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+</tr>
+<tr class="row1">
+<td class="file">numberformatter.h</td><td class="proto">UBool icu::number::FormattedNumber::nextFieldPosition(FieldPosition&amp;, UErrorCode&amp;) const</td><td class="" colspan="2" align="center">Draft<br>ICU 62</td>
+</tr>
+<tr class="row0">
+<td class="file">numberformatter.h</td><td class="proto">UBool icu::number::NumberFormatterSettings&lt; Derived &gt;::copyErrorTo(UErrorCode&amp;) const</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+</tr>
+<tr class="row1">
+<td class="file">numberformatter.h</td><td class="proto">UnicodeString icu::number::FormattedNumber::toString(UErrorCode&amp;) const</td><td class="" colspan="2" align="center">Draft<br>ICU 62</td>
+</tr>
+<tr class="row0">
+<td class="file">numberformatter.h</td><td class="proto">UnicodeString icu::number::NumberFormatterSettings&lt; Derived &gt;::toSkeleton(UErrorCode&amp;) const</td><td class="" colspan="2" align="center">Draft<br>ICU 62</td>
+</tr>
+<tr class="row1">
+<td class="file">numberformatter.h</td><td class="proto">UnlocalizedNumberFormatter&amp; icu::number::UnlocalizedNumberFormatter::operator=(UnlocalizedNumberFormatter&amp;&amp;)</td><td class="" colspan="2" align="center">Draft<br>ICU 62</td>
+</tr>
+<tr class="row0">
+<td class="file">numberformatter.h</td><td class="proto">UnlocalizedNumberFormatter&amp; icu::number::UnlocalizedNumberFormatter::operator=(const UnlocalizedNumberFormatter&amp;)</td><td class="" colspan="2" align="center">Draft<br>ICU 62</td>
+</tr>
+<tr class="row1">
+<td class="file">numberformatter.h</td><td class="proto">icu::number::FormattedNumber::FormattedNumber(FormattedNumber&amp;&amp;)</td><td class="" colspan="2" align="center">Draft<br>ICU 62</td>
+</tr>
+<tr class="row0">
+<td class="file">numberformatter.h</td><td class="proto">icu::number::FormattedNumber::~FormattedNumber()</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+</tr>
+<tr class="row1">
+<td class="file">numberformatter.h</td><td class="proto">icu::number::LocalizedNumberFormatter::LocalizedNumberFormatter()=default</td><td class="" colspan="2" align="center">Draft<br>ICU 62</td>
+</tr>
+<tr class="row0">
+<td class="file">numberformatter.h</td><td class="proto">icu::number::LocalizedNumberFormatter::LocalizedNumberFormatter(LocalizedNumberFormatter&amp;&amp;)</td><td class="" colspan="2" align="center">Draft<br>ICU 62</td>
+</tr>
+<tr class="row1">
+<td class="file">numberformatter.h</td><td class="proto">icu::number::LocalizedNumberFormatter::LocalizedNumberFormatter(const LocalizedNumberFormatter&amp;)</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+</tr>
+<tr class="row0">
+<td class="file">numberformatter.h</td><td class="proto">icu::number::LocalizedNumberFormatter::~LocalizedNumberFormatter()</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+</tr>
+<tr class="row1">
+<td class="file">numberformatter.h</td><td class="proto">icu::number::Scale::Scale(Scale&amp;&amp;)</td><td class="" colspan="2" align="center">Draft<br>ICU 62</td>
+</tr>
+<tr class="row0">
+<td class="file">numberformatter.h</td><td class="proto">icu::number::Scale::Scale(const Scale&amp;)</td><td class="" colspan="2" align="center">Draft<br>ICU 62</td>
+</tr>
+<tr class="row1">
+<td class="file">numberformatter.h</td><td class="proto">icu::number::Scale::~Scale()</td><td class="" colspan="2" align="center">Draft<br>ICU 62</td>
+</tr>
+<tr class="row0">
+<td class="file">numberformatter.h</td><td class="proto">icu::number::UnlocalizedNumberFormatter::UnlocalizedNumberFormatter()=default</td><td class="" colspan="2" align="center">Draft<br>ICU 62</td>
+</tr>
+<tr class="row1">
+<td class="file">numberformatter.h</td><td class="proto">icu::number::UnlocalizedNumberFormatter::UnlocalizedNumberFormatter(UnlocalizedNumberFormatter&amp;&amp;)</td><td class="" colspan="2" align="center">Draft<br>ICU 62</td>
+</tr>
+<tr class="row0">
+<td class="file">numberformatter.h</td><td class="proto">icu::number::UnlocalizedNumberFormatter::UnlocalizedNumberFormatter(const UnlocalizedNumberFormatter&amp;)</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+</tr>
+<tr class="row1">
+<td class="file">numberformatter.h</td><td class="proto"><tt>static</tt> CompactNotation icu::number::Notation::compactLong()</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+</tr>
+<tr class="row0">
+<td class="file">numberformatter.h</td><td class="proto"><tt>static</tt> CompactNotation icu::number::Notation::compactShort()</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+</tr>
+<tr class="row1">
+<td class="file">numberformatter.h</td><td class="proto"><tt>static</tt> CurrencyPrecision icu::number::Precision::currency(UCurrencyUsage)</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+</tr>
+<tr class="row0">
+<td class="file">numberformatter.h</td><td class="proto"><tt>static</tt> FractionPrecision icu::number::Precision::fixedFraction(int32_t)</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+</tr>
+<tr class="row1">
+<td class="file">numberformatter.h</td><td class="proto"><tt>static</tt> FractionPrecision icu::number::Precision::integer()</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+</tr>
+<tr class="row0">
+<td class="file">numberformatter.h</td><td class="proto"><tt>static</tt> FractionPrecision icu::number::Precision::maxFraction(int32_t)</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+</tr>
+<tr class="row1">
+<td class="file">numberformatter.h</td><td class="proto"><tt>static</tt> FractionPrecision icu::number::Precision::minFraction(int32_t)</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+</tr>
+<tr class="row0">
+<td class="file">numberformatter.h</td><td class="proto"><tt>static</tt> FractionPrecision icu::number::Precision::minMaxFraction(int32_t, int32_t)</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+</tr>
+<tr class="row1">
+<td class="file">numberformatter.h</td><td class="proto"><tt>static</tt> IncrementPrecision icu::number::Precision::increment(double)</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+</tr>
+<tr class="row0">
+<td class="file">numberformatter.h</td><td class="proto"><tt>static</tt> IntegerWidth icu::number::IntegerWidth::zeroFillTo(int32_t)</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+</tr>
+<tr class="row1">
+<td class="file">numberformatter.h</td><td class="proto"><tt>static</tt> LocalizedNumberFormatter icu::number::NumberFormatter::withLocale(const Locale&amp;)</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+</tr>
+<tr class="row0">
+<td class="file">numberformatter.h</td><td class="proto"><tt>static</tt> Precision icu::number::Precision::unlimited()</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+</tr>
+<tr class="row1">
+<td class="file">numberformatter.h</td><td class="proto"><tt>static</tt> Scale icu::number::Scale::byDecimal(StringPiece)</td><td class="" colspan="2" align="center">Draft<br>ICU 62</td>
+</tr>
+<tr class="row0">
+<td class="file">numberformatter.h</td><td class="proto"><tt>static</tt> Scale icu::number::Scale::byDouble(double)</td><td class="" colspan="2" align="center">Draft<br>ICU 62</td>
+</tr>
+<tr class="row1">
+<td class="file">numberformatter.h</td><td class="proto"><tt>static</tt> Scale icu::number::Scale::byDoubleAndPowerOfTen(double, int32_t)</td><td class="" colspan="2" align="center">Draft<br>ICU 62</td>
+</tr>
+<tr class="row0">
+<td class="file">numberformatter.h</td><td class="proto"><tt>static</tt> Scale icu::number::Scale::none()</td><td class="" colspan="2" align="center">Draft<br>ICU 62</td>
+</tr>
+<tr class="row1">
+<td class="file">numberformatter.h</td><td class="proto"><tt>static</tt> Scale icu::number::Scale::powerOfTen(int32_t)</td><td class="" colspan="2" align="center">Draft<br>ICU 62</td>
+</tr>
+<tr class="row0">
+<td class="file">numberformatter.h</td><td class="proto"><tt>static</tt> ScientificNotation icu::number::Notation::engineering()</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+</tr>
+<tr class="row1">
+<td class="file">numberformatter.h</td><td class="proto"><tt>static</tt> ScientificNotation icu::number::Notation::scientific()</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+</tr>
+<tr class="row0">
+<td class="file">numberformatter.h</td><td class="proto"><tt>static</tt> SignificantDigitsPrecision icu::number::Precision::fixedSignificantDigits(int32_t)</td><td class="" colspan="2" align="center">Draft<br>ICU 62</td>
+</tr>
+<tr class="row1">
+<td class="file">numberformatter.h</td><td class="proto"><tt>static</tt> SignificantDigitsPrecision icu::number::Precision::maxSignificantDigits(int32_t)</td><td class="" colspan="2" align="center">Draft<br>ICU 62</td>
+</tr>
+<tr class="row0">
+<td class="file">numberformatter.h</td><td class="proto"><tt>static</tt> SignificantDigitsPrecision icu::number::Precision::minMaxSignificantDigits(int32_t, int32_t)</td><td class="" colspan="2" align="center">Draft<br>ICU 62</td>
+</tr>
+<tr class="row1">
+<td class="file">numberformatter.h</td><td class="proto"><tt>static</tt> SignificantDigitsPrecision icu::number::Precision::minSignificantDigits(int32_t)</td><td class="" colspan="2" align="center">Draft<br>ICU 62</td>
+</tr>
+<tr class="row0">
+<td class="file">numberformatter.h</td><td class="proto"><tt>static</tt> SimpleNotation icu::number::Notation::simple()</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+</tr>
+<tr class="row1">
+<td class="file">numberformatter.h</td><td class="proto"><tt>static</tt> UnlocalizedNumberFormatter icu::number::NumberFormatter::forSkeleton(const UnicodeString&amp;, UErrorCode&amp;)</td><td class="" colspan="2" align="center">Draft<br>ICU 62</td>
+</tr>
+<tr class="row0">
+<td class="file">numberformatter.h</td><td class="proto"><tt>static</tt> UnlocalizedNumberFormatter icu::number::NumberFormatter::with()</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+</tr>
+<tr class="row1">
+<td class="file">numberformatter.h</td><td class="proto">void icu::number::FormattedNumber::getAllFieldPositions(FieldPositionIterator&amp;, UErrorCode&amp;) const</td><td class="" colspan="2" align="center">Draft<br>ICU 62</td>
+</tr>
+<tr class="row0">
+<td class="file">ucurr.h</td><td class="proto"><tt>enum</tt> UCurrNameStyle::UCURR_NARROW_SYMBOL_NAME</td><td class="" colspan="2" align="center">Draft<br>ICU 61</td>
+</tr>
+<tr class="row1">
+<td class="file">udatpg.h</td><td class="proto"><tt>enum</tt> UDateTimePGDisplayWidth::UDATPG_ABBREVIATED</td><td class="" colspan="2" align="center">Draft<br>ICU 61</td>
+</tr>
+<tr class="row0">
+<td class="file">udatpg.h</td><td class="proto"><tt>enum</tt> UDateTimePGDisplayWidth::UDATPG_NARROW</td><td class="" colspan="2" align="center">Draft<br>ICU 61</td>
+</tr>
+<tr class="row1">
+<td class="file">udatpg.h</td><td class="proto"><tt>enum</tt> UDateTimePGDisplayWidth::UDATPG_WIDE</td><td class="" colspan="2" align="center">Draft<br>ICU 61</td>
+</tr>
+<tr class="row0">
+<td class="file">udatpg.h</td><td class="proto">int32_t udatpg_getFieldDisplayName(const UDateTimePatternGenerator*, UDateTimePatternField, UDateTimePGDisplayWidth, UChar*, int32_t, UErrorCode*)</td><td class="" colspan="2" align="center">Draft<br>ICU 61</td>
+</tr>
+<tr class="row1">
+<td class="file">unistr.h</td><td class="proto">UnicodeString&amp; icu::UnicodeString::moveFrom(UnicodeString&amp;)</td><td class="" colspan="2" align="center">Draft<br>ICU 56</td>
+</tr>
+<tr class="row0">
+<td class="file">unumberformatter.h</td><td class="proto">UBool unumf_resultNextFieldPosition(const UFormattedNumber*, UFieldPosition*, UErrorCode*)</td><td class="" colspan="2" align="center">Draft<br>ICU 62</td>
+</tr>
+<tr class="row1">
+<td class="file">unumberformatter.h</td><td class="proto">UFormattedNumber* unumf_openResult(UErrorCode*)</td><td class="" colspan="2" align="center">Draft<br>ICU 62</td>
+</tr>
+<tr class="row0">
+<td class="file">unumberformatter.h</td><td class="proto">UNumberFormatter* unumf_openForSkeletonAndLocale(const UChar*, int32_t, const char*, UErrorCode*)</td><td class="" colspan="2" align="center">Draft<br>ICU 62</td>
+</tr>
+<tr class="row1">
+<td class="file">unumberformatter.h</td><td class="proto"><tt>enum</tt> UNumberDecimalSeparatorDisplay::UNUM_DECIMAL_SEPARATOR_ALWAYS</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+</tr>
+<tr class="row0">
+<td class="file">unumberformatter.h</td><td class="proto"><tt>enum</tt> UNumberDecimalSeparatorDisplay::UNUM_DECIMAL_SEPARATOR_AUTO</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+</tr>
+<tr class="row1">
+<td class="file">unumberformatter.h</td><td class="proto"><tt>enum</tt> U<b><i>Number</i></b>GroupingStrategy::UNUM_GROUPING_AUTO</td><td class="">(renamed)<br>
+</td><td>Draft<br>
+<span class=""><span>ICU 61</span></span></td>
+</tr>
+<tr class="row0">
+<td class="file">unumberformatter.h</td><td class="proto"><tt>enum</tt> U<b><i>Number</i></b>GroupingStrategy::UNUM_GROUPING_MIN2</td><td class="">(renamed)<br>
+</td><td>Draft<br>
+<span class=""><span>ICU 61</span></span></td>
+</tr>
+<tr class="row1">
+<td class="file">unumberformatter.h</td><td class="proto"><tt>enum</tt> U<b><i>Number</i></b>GroupingStrategy::UNUM_GROUPING_OFF</td><td class="">(renamed)<br>
+</td><td>Draft<br>
+<span class=""><span>ICU 61</span></span></td>
+</tr>
+<tr class="row0">
+<td class="file">unumberformatter.h</td><td class="proto"><tt>enum</tt> U<b><i>Number</i></b>GroupingStrategy::UNUM_GROUPING_ON_ALIGNED</td><td class="">(renamed)<br>
+</td><td>Draft<br>
+<span class=""><span>ICU 61</span></span></td>
+</tr>
+<tr class="row1">
+<td class="file">unumberformatter.h</td><td class="proto"><tt>enum</tt> U<b><i>Number</i></b>GroupingStrategy::UNUM_GROUPING_THOUSANDS</td><td class="">(renamed)<br>
+</td><td>Draft<br>
+<span class=""><span>ICU 61</span></span></td>
+</tr>
+<tr class="row0">
+<td class="file">unumberformatter.h</td><td class="proto"><tt>enum</tt> UNumberSignDisplay::UNUM_SIGN_ACCOUNTING_ALWAYS</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+</tr>
+<tr class="row1">
+<td class="file">unumberformatter.h</td><td class="proto"><tt>enum</tt> UNumberSignDisplay::UNUM_SIGN_ACCOUNTING_EXCEPT_ZERO</td><td class="" colspan="2" align="center">Draft<br>ICU 61</td>
+</tr>
+<tr class="row0">
+<td class="file">unumberformatter.h</td><td class="proto"><tt>enum</tt> UNumberSignDisplay::UNUM_SIGN_ACCOUNTING</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+</tr>
+<tr class="row1">
+<td class="file">unumberformatter.h</td><td class="proto"><tt>enum</tt> UNumberSignDisplay::UNUM_SIGN_ALWAYS</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+</tr>
+<tr class="row0">
+<td class="file">unumberformatter.h</td><td class="proto"><tt>enum</tt> UNumberSignDisplay::UNUM_SIGN_AUTO</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+</tr>
+<tr class="row1">
+<td class="file">unumberformatter.h</td><td class="proto"><tt>enum</tt> UNumberSignDisplay::UNUM_SIGN_EXCEPT_ZERO</td><td class="" colspan="2" align="center">Draft<br>ICU 61</td>
+</tr>
+<tr class="row0">
+<td class="file">unumberformatter.h</td><td class="proto"><tt>enum</tt> UNumberSignDisplay::UNUM_SIGN_NEVER</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+</tr>
+<tr class="row1">
+<td class="file">unumberformatter.h</td><td class="proto"><tt>enum</tt> UNumberUnitWidth::UNUM_UNIT_WIDTH_FULL_NAME</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+</tr>
+<tr class="row0">
+<td class="file">unumberformatter.h</td><td class="proto"><tt>enum</tt> UNumberUnitWidth::UNUM_UNIT_WIDTH_HIDDEN</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+</tr>
+<tr class="row1">
+<td class="file">unumberformatter.h</td><td class="proto"><tt>enum</tt> UNumberUnitWidth::UNUM_UNIT_WIDTH_ISO_CODE</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+</tr>
+<tr class="row0">
+<td class="file">unumberformatter.h</td><td class="proto"><tt>enum</tt> UNumberUnitWidth::UNUM_UNIT_WIDTH_NARROW</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+</tr>
+<tr class="row1">
+<td class="file">unumberformatter.h</td><td class="proto"><tt>enum</tt> UNumberUnitWidth::UNUM_UNIT_WIDTH_SHORT</td><td class="" colspan="2" align="center">Draft<br>ICU 60</td>
+</tr>
+<tr class="row0">
+<td class="file">unumberformatter.h</td><td class="proto">int32_t unumf_resultToString(const UFormattedNumber*, UChar*, int32_t, UErrorCode*)</td><td class="" colspan="2" align="center">Draft<br>ICU 62</td>
+</tr>
+<tr class="row1">
+<td class="file">unumberformatter.h</td><td class="proto">void unumf_close(UNumberFormatter*)</td><td class="" colspan="2" align="center">Draft<br>ICU 62</td>
+</tr>
+<tr class="row0">
+<td class="file">unumberformatter.h</td><td class="proto">void unumf_closeResult(UFormattedNumber*)</td><td class="" colspan="2" align="center">Draft<br>ICU 62</td>
+</tr>
+<tr class="row1">
+<td class="file">unumberformatter.h</td><td class="proto">void unumf_formatDecimal(const UNumberFormatter*, const char*, int32_t, UFormattedNumber*, UErrorCode*)</td><td class="" colspan="2" align="center">Draft<br>ICU 62</td>
+</tr>
+<tr class="row0">
+<td class="file">unumberformatter.h</td><td class="proto">void unumf_formatDouble(const UNumberFormatter*, double, UFormattedNumber*, UErrorCode*)</td><td class="" colspan="2" align="center">Draft<br>ICU 62</td>
+</tr>
+<tr class="row1">
+<td class="file">unumberformatter.h</td><td class="proto">void unumf_formatInt(const UNumberFormatter*, int64_t, UFormattedNumber*, UErrorCode*)</td><td class="" colspan="2" align="center">Draft<br>ICU 62</td>
+</tr>
+<tr class="row0">
+<td class="file">unumberformatter.h</td><td class="proto">void unumf_resultGetAllFieldPositions(const UFormattedNumber*, UFieldPositionIterator*, UErrorCode*)</td><td class="" colspan="2" align="center">Draft<br>ICU 62</td>
+</tr>
+<tr class="row1">
+<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="row0">
+<td class="file">uspoof.h</td><td class="proto"><tt>enum</tt> USpoofChecks::USPOOF_HIDDEN_OVERLAY</td><td class="" colspan="2" align="center">Draft<br>ICU 62</td>
+</tr>
+<tr class="row1">
+<td class="file">utf8.h</td><td class="proto"><tt>#define</tt> U8_TRUNCATE_IF_INCOMPLETE</td><td class="" colspan="2" align="center">Draft<br>ICU 61</td>
 </tr>
-
 </table>
 </div>
 <P></P>
 <a href="#_top">(jump back to top)</a>
 <hr>
+<a name="purevirtual"></a>
+<h2>Signature Simplifications</h2>
+<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 Wed May 30 15:07:37 PDT 2018<br>Copyright (C) 2018, International Business Machines Corporation, All Rights Reserved.</font></i>
+<i><font size="-1">Contents generated by StableAPI tool on Wed Sep 26 13:17:43 PDT 2018<br>Copyright (C) 2018, International Business Machines Corporation, All Rights Reserved.</font></i>
 </p>
 </body>
 </html>
index b606dc86c5ef7ef7fcb07290672e5391d1aae840..ae28c25627d7cc91e6901741710a5d9612d173df 100755 (executable)
@@ -1,4 +1,4 @@
-#!/usr/bin/python
+#!/usr/bin/python -B
 
 # Copyright (C) 2016 and later: Unicode, Inc. and others.
 # License & terms of use: http://www.unicode.org/copyright.html
index 3f81a3b067224963246e2538e57fb7333578283f..1daeb9a209ba9d3f5893cc391ccd8bf0f6753d69 100644 (file)
+icu/source/data/makedata.vcxproj
+icu/source/data/makedata.vcxproj.filters
+icu/source/data/makedata_uwp.vcxproj
+icu/source/data/unidata/confusables.txt
+icu/source/data/unidata/confusablesWholeScript.txt
+icu/source/data/unidata/UCARules.txt
+icu/source/data/unidata/changes.txt
 icu/source/io/io.vcxproj.filters
 icu/source/io/io.vcxproj
-icu/source/test/iotest/iotest.vcxproj
+icu/source/test/thaitest/space.txt
+icu/source/test/cintltst/cintltst.vcxproj
+icu/source/test/cintltst/cintltst.vcxproj.filters
+icu/source/test/intltest/intltest.vcxproj
+icu/source/test/intltest/intltest.vcxproj.filters
 icu/source/test/iotest/iotest.vcxproj.filters
-icu/source/test/letest/cletest.sln
-icu/source/test/letest/letest.vcxproj
-icu/source/test/letest/gendata.vcxproj.filters
-icu/source/test/letest/gendata.vcxproj
-icu/source/test/letest/letest.vcxproj.filters
-icu/source/test/letest/cletest.vcxproj
-icu/source/test/letest/cletest.vcxproj.filters
-icu/source/test/perf/strsrchperf/strsrchperf.vcxproj
-icu/source/test/perf/strsrchperf/strsrchperf.vcxproj.filters
-icu/source/test/perf/utrie2perf/utrie2perf.vcxproj
+icu/source/test/iotest/iotest.vcxproj
 icu/source/test/perf/collperf2/collperf2.vcxproj
 icu/source/test/perf/collperf2/collperf2.vcxproj.filters
-icu/source/test/perf/DateFmtPerf/DateFmtPerf.vcxproj
+icu/source/test/perf/unisetperf/unisetperf.vcxproj
 icu/source/test/perf/DateFmtPerf/DateFmtPerf.vcxproj.filters
-icu/source/test/perf/ustrperf/stringperf.vcxproj.filters
+icu/source/test/perf/DateFmtPerf/DateFmtPerf.vcxproj
+icu/source/test/perf/ucnvavailperf/ucnvavailperf.vcxproj
 icu/source/test/perf/ustrperf/stringperf.vcxproj
-icu/source/test/perf/normperf/normperf.vcxproj.filters
+icu/source/test/perf/ustrperf/stringperf.vcxproj.filters
+icu/source/test/perf/utrie2perf/utrie2perf.vcxproj
+icu/source/test/perf/strsrchperf/strsrchperf.vcxproj
+icu/source/test/perf/strsrchperf/strsrchperf.vcxproj.filters
+icu/source/test/perf/charperf/charperf.vcxproj.filters
+icu/source/test/perf/charperf/charperf.vcxproj
+icu/source/test/perf/ubrkperf/ubrkperf.vcxproj.filters
+icu/source/test/perf/ubrkperf/ubrkperf.vcxproj
 icu/source/test/perf/normperf/dtfmtrtperf.vcxproj.filters
 icu/source/test/perf/normperf/normperf.vcxproj
 icu/source/test/perf/normperf/dtfmtrtperf.vcxproj
+icu/source/test/perf/normperf/normperf.vcxproj.filters
 icu/source/test/perf/convperf/convperf.vcxproj.filters
 icu/source/test/perf/convperf/convperf.vcxproj
 icu/source/test/perf/collperf/collperf.vcxproj.filters
 icu/source/test/perf/collperf/collperf.vcxproj
 icu/source/test/perf/utfperf/utfperf.vcxproj.filters
 icu/source/test/perf/utfperf/utfperf.vcxproj
-icu/source/test/perf/charperf/charperf.vcxproj
-icu/source/test/perf/charperf/charperf.vcxproj.filters
-icu/source/test/perf/unisetperf/unisetperf.vcxproj
-icu/source/test/perf/ubrkperf/ubrkperf.vcxproj.filters
-icu/source/test/perf/ubrkperf/ubrkperf.vcxproj
 icu/source/test/perf/usetperf/usetperf.vcxproj
 icu/source/test/perf/usetperf/usetperf.vcxproj.filters
-icu/source/test/perf/ucnvavailperf/ucnvavailperf.vcxproj
-icu/source/test/thaitest/space.txt
+icu/source/test/letest/cletest.vcxproj
+icu/source/test/letest/cletest.sln
+icu/source/test/letest/cletest.vcxproj.filters
+icu/source/test/letest/letest.vcxproj.filters
+icu/source/test/letest/letest.vcxproj
+icu/source/test/letest/gendata.vcxproj.filters
+icu/source/test/letest/gendata.vcxproj
+icu/source/test/testdata/ConverterSelectorTestUTF8.txt
+icu/source/test/testdata/dcfmtest.txt
+icu/source/test/testdata/regextst.txt
 icu/source/test/testdata/NumberFormatTestCases.txt
-icu/source/test/testdata/collationtest.txt
+icu/source/test/testdata/riwords.txt
 icu/source/test/testdata/te_IN.txt
 icu/source/test/testdata/idna_conf.txt
-icu/source/test/testdata/ConverterSelectorTestUTF8.txt
 icu/source/test/testdata/casing.txt
-icu/source/test/testdata/riwords.txt
 icu/source/test/testdata/rbbitst.txt
-icu/source/test/testdata/dcfmtest.txt
 icu/source/test/testdata/windowsZones.txt
-icu/source/test/testdata/metaZones.txt
-icu/source/test/testdata/regextst.txt
 icu/source/test/testdata/format.txt
+icu/source/test/testdata/metaZones.txt
 icu/source/test/testdata/timezoneTypes.txt
-icu/source/test/testdata/break_rules/line_loose.txt
-icu/source/test/testdata/break_rules/sentence.txt
+icu/source/test/testdata/collationtest.txt
+icu/source/test/testdata/break_rules/line.txt
 icu/source/test/testdata/break_rules/readme.txt
+icu/source/test/testdata/break_rules/sentence.txt
+icu/source/test/testdata/break_rules/word_POSIX.txt
 icu/source/test/testdata/break_rules/line_normal.txt
 icu/source/test/testdata/break_rules/word.txt
+icu/source/test/testdata/break_rules/line_normal_cj.txt
 icu/source/test/testdata/break_rules/line_loose_cj.txt
 icu/source/test/testdata/break_rules/grapheme.txt
-icu/source/test/testdata/break_rules/line_normal_cj.txt
-icu/source/test/testdata/break_rules/line.txt
-icu/source/test/testdata/break_rules/word_POSIX.txt
-icu/source/test/cintltst/cintltst.vcxproj
-icu/source/test/cintltst/cintltst.vcxproj.filters
-icu/source/test/intltest/intltest.vcxproj
-icu/source/test/intltest/intltest.vcxproj.filters
-icu/source/stubdata/stubdata.vcxproj
-icu/source/stubdata/stubdata.vcxproj.filters
-icu/source/tools/genbrk/genbrk.vcxproj.filters
-icu/source/tools/genbrk/genbrk.vcxproj
-icu/source/tools/icuinfo/testplug.vcxproj.filters
-icu/source/tools/icuinfo/testplug.vcxproj
-icu/source/tools/icuinfo/icuinfo.vcxproj
-icu/source/tools/gensprep/gensprep.vcxproj
-icu/source/tools/gensprep/gensprep.vcxproj.filters
-icu/source/tools/toolutil/toolutil.vcxproj
-icu/source/tools/gencnval/gencnval.vcxproj.filters
-icu/source/tools/gencnval/gencnval.vcxproj
-icu/source/tools/gentest/gentest.vcxproj.filters
+icu/source/test/testdata/break_rules/line_loose.txt
+icu/source/layoutex/layoutex.vcxproj.filters
+icu/source/layoutex/layoutex.vcxproj
+icu/source/common/common_uwp.vcxproj
+icu/source/common/common.vcxproj
+icu/source/common/common.vcxproj.filters
+icu/source/tools/icupkg/icupkg.vcxproj
 icu/source/tools/gentest/gentest.vcxproj
-icu/source/tools/tzcode/icuzdump.vcxproj
+icu/source/tools/gentest/gentest.vcxproj.filters
+icu/source/tools/gendict/gendict.vcxproj
+icu/source/tools/gendict/gendict.vcxproj.filters
+icu/source/tools/toolutil/toolutil.vcxproj
 icu/source/tools/tzcode/icuzdump.vcxproj.filters
+icu/source/tools/tzcode/icuzdump.vcxproj
+icu/source/tools/genbrk/genbrk.vcxproj.filters
+icu/source/tools/genbrk/genbrk.vcxproj
 icu/source/tools/gennorm2/gennorm2.vcxproj
-icu/source/tools/genrb/genrb.vcxproj.filters
-icu/source/tools/genrb/derb.vcxproj.filters
-icu/source/tools/genrb/derb.vcxproj
-icu/source/tools/genrb/genrb.vcxproj
+icu/source/tools/icuswap/icuswap.vcxproj
 icu/source/tools/genccode/genccode.vcxproj
 icu/source/tools/genccode/genccode.vcxproj.filters
-icu/source/tools/icuswap/icuswap.vcxproj
-icu/source/tools/gencmn/gencmn.vcxproj.filters
 icu/source/tools/gencmn/gencmn.vcxproj
-icu/source/tools/gencfu/gencfu.vcxproj
+icu/source/tools/gencmn/gencmn.vcxproj.filters
 icu/source/tools/gencfu/gencfu.vcxproj.filters
-icu/source/tools/pkgdata/pkgdata.vcxproj.filters
-icu/source/tools/pkgdata/pkgdata.vcxproj
+icu/source/tools/gencfu/gencfu.vcxproj
 icu/source/tools/ctestfw/ctestfw.vcxproj.filters
 icu/source/tools/ctestfw/ctestfw.vcxproj
-icu/source/tools/icupkg/icupkg.vcxproj
+icu/source/tools/pkgdata/pkgdata.vcxproj
+icu/source/tools/pkgdata/pkgdata.vcxproj.filters
+icu/source/tools/gencnval/gencnval.vcxproj.filters
+icu/source/tools/gencnval/gencnval.vcxproj
 icu/source/tools/makeconv/makeconv.vcxproj
 icu/source/tools/makeconv/makeconv.vcxproj.filters
-icu/source/tools/gendict/gendict.vcxproj.filters
-icu/source/tools/gendict/gendict.vcxproj
-icu/source/allinone/Windows.CopyUnicodeHeaderFiles.targets
-icu/source/common/common.vcxproj
-icu/source/common/common_uwp.vcxproj
-icu/source/common/common.vcxproj.filters
-icu/source/samples/dtitvfmtsample/dtitvfmtsample.vcxproj
+icu/source/tools/gensprep/gensprep.vcxproj.filters
+icu/source/tools/gensprep/gensprep.vcxproj
+icu/source/tools/icuinfo/testplug.vcxproj.filters
+icu/source/tools/icuinfo/testplug.vcxproj
+icu/source/tools/icuinfo/icuinfo.vcxproj
+icu/source/tools/genrb/genrb.vcxproj
+icu/source/tools/genrb/derb.vcxproj.filters
+icu/source/tools/genrb/genrb.vcxproj.filters
+icu/source/tools/genrb/derb.vcxproj
+icu/source/extra/uconv/uconv.vcxproj.filters
+icu/source/extra/uconv/uconv.vcxproj
+icu/source/extra/uconv/samples/utf8/russian.txt
+icu/source/extra/uconv/samples/utf8/hangul.txt
+icu/source/extra/uconv/samples/utf8/croat.txt
+icu/source/extra/uconv/samples/utf8/korean.txt
+icu/source/extra/uconv/samples/utf8/greek.txt
+icu/source/extra/uconv/samples/utf8/jap.txt
+icu/source/extra/uconv/samples/utf8/simplechinese.txt
+icu/source/extra/uconv/samples/utf8/many.txt
+icu/source/extra/uconv/samples/utf8/hania.txt
+icu/source/extra/uconv/samples/utf8/maopoem.txt
+icu/source/extra/uconv/samples/utf8/linji.txt
+icu/source/extra/uconv/samples/utf8/utf-8-demo.txt
+icu/source/extra/uconv/samples/utf8/turkish.txt
+icu/source/extra/uconv/samples/utf8/danish.txt
+icu/source/extra/uconv/samples/utf8/chinese-ulysses.txt
+icu/source/extra/uconv/samples/utf8/banviet.txt
+icu/source/extra/uconv/samples/utf8/armenian.txt
+icu/source/extra/uconv/resources/fr.txt
+icu/source/extra/uconv/resources/root.txt
 icu/source/samples/dtitvfmtsample/dtitvfmtsample.vcxproj.filters
-icu/source/samples/dtptngsample/dtptngsample.vcxproj
-icu/source/samples/dtptngsample/dtptngsample.vcxproj.filters
+icu/source/samples/dtitvfmtsample/dtitvfmtsample.vcxproj
+icu/source/samples/citer/citer.vcxproj.filters
+icu/source/samples/citer/citer.vcxproj
+icu/source/samples/ucnv/ucnv.vcxproj
+icu/source/samples/ucnv/ucnv.vcxproj.filters
+icu/source/samples/ucnv/data06.txt
+icu/source/samples/ucnv/data01.txt
+icu/source/samples/uciter8/uciter8.vcxproj.filters
+icu/source/samples/uciter8/uciter8.vcxproj
+icu/source/samples/numfmt/numfmt.vcxproj.filters
+icu/source/samples/numfmt/numfmt.vcxproj
+icu/source/samples/break/break.vcxproj
+icu/source/samples/break/break.vcxproj.filters
+icu/source/samples/legacy/legacy.vcxproj
+icu/source/samples/legacy/legacy.vcxproj.filters
+icu/source/samples/case/case.vcxproj
+icu/source/samples/case/case.vcxproj.filters
+icu/source/samples/layout/Sample.txt
+icu/source/samples/layout/layout.vcxproj
+icu/source/samples/layout/layout.vcxproj.filters
+icu/source/samples/plurfmtsample/plurfmtsample.vcxproj.filters
+icu/source/samples/plurfmtsample/plurfmtsample.vcxproj
 icu/source/samples/cal/cal.vcxproj
 icu/source/samples/cal/cal.vcxproj.filters
+icu/source/samples/ugrep/ugrep.vcxproj.filters
+icu/source/samples/ugrep/ugrep.vcxproj
+icu/source/samples/strsrch/strsrch.vcxproj.filters
+icu/source/samples/strsrch/strsrch.vcxproj
+icu/source/samples/msgfmt/msgfmt.vcxproj
+icu/source/samples/msgfmt/msgfmt.vcxproj.filters
 icu/source/samples/coll/coll.vcxproj
 icu/source/samples/coll/coll.vcxproj.filters
-icu/source/samples/uciter8/uciter8.vcxproj
-icu/source/samples/uciter8/uciter8.vcxproj.filters
-icu/source/samples/ugrep/ugrep.vcxproj
-icu/source/samples/ugrep/ugrep.vcxproj.filters
-icu/source/samples/break/break.vcxproj
-icu/source/samples/break/break.vcxproj.filters
-icu/source/samples/csdet/csdet.vcxproj
-icu/source/samples/csdet/csdet.vcxproj.filters
-icu/source/samples/udata/writer.vcxproj.filters
+icu/source/samples/udata/reader.vcxproj.filters
 icu/source/samples/udata/writer.vcxproj
 icu/source/samples/udata/reader.vcxproj
-icu/source/samples/udata/reader.vcxproj.filters
+icu/source/samples/udata/writer.vcxproj.filters
+icu/source/samples/translit/translit.vcxproj
+icu/source/samples/translit/translit.vcxproj.filters
+icu/source/samples/date/date.vcxproj
+icu/source/samples/date/date.vcxproj.filters
 icu/source/samples/datefmt/datefmt.vcxproj
 icu/source/samples/datefmt/datefmt.vcxproj.filters
-icu/source/samples/date/date.vcxproj.filters
-icu/source/samples/date/date.vcxproj
-icu/source/samples/layout/layout.vcxproj.filters
-icu/source/samples/layout/layout.vcxproj
-icu/source/samples/layout/Sample.txt
-icu/source/samples/msgfmt/msgfmt.vcxproj.filters
-icu/source/samples/msgfmt/msgfmt.vcxproj
-icu/source/samples/numfmt/numfmt.vcxproj
-icu/source/samples/numfmt/numfmt.vcxproj.filters
-icu/source/samples/ustring/ustring.vcxproj
-icu/source/samples/ustring/ustring.vcxproj.filters
-icu/source/samples/case/case.vcxproj
-icu/source/samples/case/case.vcxproj.filters
-icu/source/samples/plurfmtsample/plurfmtsample.vcxproj.filters
-icu/source/samples/plurfmtsample/plurfmtsample.vcxproj
-icu/source/samples/ufortune/ufortune.vcxproj
 icu/source/samples/ufortune/ufortune.vcxproj.filters
+icu/source/samples/ufortune/ufortune.vcxproj
 icu/source/samples/ufortune/resources/es.txt
+icu/source/samples/dtptngsample/dtptngsample.vcxproj
+icu/source/samples/dtptngsample/dtptngsample.vcxproj.filters
 icu/source/samples/props/props.vcxproj.filters
 icu/source/samples/props/props.vcxproj
-icu/source/samples/strsrch/strsrch.vcxproj.filters
-icu/source/samples/strsrch/strsrch.vcxproj
-icu/source/samples/translit/translit.vcxproj.filters
-icu/source/samples/translit/translit.vcxproj
-icu/source/samples/legacy/legacy.vcxproj.filters
-icu/source/samples/legacy/legacy.vcxproj
-icu/source/samples/citer/citer.vcxproj.filters
-icu/source/samples/citer/citer.vcxproj
-icu/source/samples/ucnv/ucnv.vcxproj
-icu/source/samples/ucnv/data06.txt
-icu/source/samples/ucnv/ucnv.vcxproj.filters
-icu/source/samples/ucnv/data01.txt
+icu/source/samples/csdet/csdet.vcxproj
+icu/source/samples/csdet/csdet.vcxproj.filters
+icu/source/samples/uresb/uresb.vcxproj.filters
 icu/source/samples/uresb/resources.vcxproj
 icu/source/samples/uresb/resources.vcxproj.filters
 icu/source/samples/uresb/uresb.vcxproj
-icu/source/samples/uresb/uresb.vcxproj.filters
-icu/source/extra/uconv/uconv.vcxproj.filters
-icu/source/extra/uconv/uconv.vcxproj
-icu/source/extra/uconv/samples/utf8/korean.txt
-icu/source/extra/uconv/samples/utf8/greek.txt
-icu/source/extra/uconv/samples/utf8/danish.txt
-icu/source/extra/uconv/samples/utf8/many.txt
-icu/source/extra/uconv/samples/utf8/jap.txt
-icu/source/extra/uconv/samples/utf8/simplechinese.txt
-icu/source/extra/uconv/samples/utf8/turkish.txt
-icu/source/extra/uconv/samples/utf8/hania.txt
-icu/source/extra/uconv/samples/utf8/linji.txt
-icu/source/extra/uconv/samples/utf8/utf-8-demo.txt
-icu/source/extra/uconv/samples/utf8/hangul.txt
-icu/source/extra/uconv/samples/utf8/chinese-ulysses.txt
-icu/source/extra/uconv/samples/utf8/maopoem.txt
-icu/source/extra/uconv/samples/utf8/armenian.txt
-icu/source/extra/uconv/samples/utf8/russian.txt
-icu/source/extra/uconv/samples/utf8/banviet.txt
-icu/source/extra/uconv/samples/utf8/croat.txt
-icu/source/extra/uconv/resources/root.txt
-icu/source/extra/uconv/resources/fr.txt
-icu/source/data/makedata_uwp.vcxproj
-icu/source/data/makedata.vcxproj
-icu/source/data/makedata.vcxproj.filters
-icu/source/data/unidata/changes.txt
-icu/source/data/unidata/confusablesWholeScript.txt
-icu/source/data/unidata/UCARules.txt
-icu/source/data/unidata/confusables.txt
-icu/source/layoutex/layoutex.vcxproj.filters
-icu/source/layoutex/layoutex.vcxproj
-icu/source/i18n/i18n.vcxproj
-icu/source/i18n/i18n.vcxproj.filters
+icu/source/samples/ustring/ustring.vcxproj
+icu/source/samples/ustring/ustring.vcxproj.filters
+icu/source/allinone/Windows.CopyUnicodeHeaderFiles.targets
+icu/source/stubdata/stubdata.vcxproj
+icu/source/stubdata/stubdata.vcxproj.filters
 icu/source/i18n/i18n_uwp.vcxproj
+icu/source/i18n/i18n.vcxproj.filters
+icu/source/i18n/i18n.vcxproj
index 15cade58118de3caa49138a1932a2679393a60ed..dba98b462ea0fbdb8ddd80c375dd9cee7490c0c8 100644 (file)
@@ -3,7 +3,7 @@
 
 <html lang="en-US" xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US">
   <head>
-    <title>ReadMe for ICU 62.1</title>
+    <title>ReadMe for ICU 63.1</title>
     <meta name="COPYRIGHT" content=
     "Copyright (C) 2016 and later: Unicode, Inc. and others. License &amp; 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> 62.1 ReadMe
+      <abbr title="International Components for Unicode">ICU</abbr> 63.1 ReadMe
     </h1>
 
     <!-- Shouldn't need to comment/uncomment this paragraph, just change the body class -->
@@ -44,7 +44,7 @@
     <p class="note only-rc">This is a release candidate version of ICU4C.
       It is not recommended for production use.</p>
 
-    <p>Last updated: 2018-June-12<br/>
+    <p>Last updated: 2018-Oct-05<br/>
       Copyright &copy; 2016 and later: Unicode, Inc. and others. License &amp; terms of use:
       <a href="http://www.unicode.org/copyright.html">http://www.unicode.org/copyright.html</a><br/>
       Copyright &copy; 1997-2016 International Business Machines Corporation and others.
 
     <h2><a name="News" href="#News" id="News">What Is New In This Release?</a></h2>
 
-    <p>See the <a href="http://site.icu-project.org/download/62">ICU 62 download page</a>
+    <p>See the <a href="http://site.icu-project.org/download/63">ICU 63 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>
       most other platforms.<br />
        Please unzip this file. </li>
 
-      <li><strong>Subversion Source Repository:</strong><br />
+      <li><strong>GitHub Source Repository:</strong><br />
        If you are interested in developing features, patches, or bug fixes for
       ICU, you should probably be working with the latest version of the ICU
-      source code. You will need to check the code out of our Subversion repository to
+      source code. You will need to clone and checkout the code from our GitHub repository to
       ensure that you have the most recent version of all of the files. See our
       <a href="http://site.icu-project.org/repository">source
       repository</a> for details.</li>
index 8c6c5deb220ef46304cc73e6b8d95c9e0daea6fb..25b535cc7ac762b1487b70b929d3d4fa3bb38648 100644 (file)
@@ -1,4 +1,5 @@
-# Doxyfile 1.3.7
+# Doxyfile 1.8.13
+
 # Copyright (C) 2016 and later: Unicode, Inc. and others.
 # License & terms of use: http://www.unicode.org/copyright.html
 #  ********************************************************************
 #  * and others. All Rights Reserved.
 #  ********************************************************************
 
+# This file describes the settings to be used by the documentation system
+# doxygen (www.doxygen.org) for a project.
+#
+# All text after a double hash (##) is considered a comment and is placed in
+# front of the TAG it is preceding.
+#
+# All text after a single hash (#) is considered a comment and will be ignored.
+# The format is:
+# TAG = value [value, ...]
+# For lists, items can also be appended using:
+# TAG += value [value, ...]
+# Values that contain spaces should be placed between quotes (\" \").
+
 #---------------------------------------------------------------------------
 # Project related configuration options
 #---------------------------------------------------------------------------
+
+# This tag specifies the encoding used for all characters in the config file
+# that follow. The default is UTF-8 which is also the encoding used for all text
+# before the first occurrence of this tag. Doxygen uses libiconv (or the iconv
+# built into libc) for the transcoding. See http://www.gnu.org/software/libiconv
+# for the list of possible encodings.
+# The default value is: UTF-8.
+
+DOXYFILE_ENCODING      = UTF-8
+
+# The PROJECT_NAME tag is a single word (or a sequence of words surrounded by
+# double-quotes, unless you are using Doxywizard) that should identify the
+# project for which the documentation is generated. This name is used in the
+# title of most generated pages and in a few other places.
+# The default value is: My Project.
+
 PROJECT_NAME           = "ICU @VERSION@"
+
+# The PROJECT_NUMBER tag can be used to enter a project or revision number. This
+# could be handy for archiving the generated documentation or if some version
+# control system is used.
+
 PROJECT_NUMBER         = @VERSION@
+
+# Using the PROJECT_BRIEF tag one can provide an optional one line description
+# for a project that appears at the top of each page and should give viewer a
+# quick idea about the purpose of the project. Keep the description short.
+
+PROJECT_BRIEF          =
+
+# With the PROJECT_LOGO tag one can specify a logo or an icon that is included
+# in the documentation. The maximum height of the logo should not exceed 55
+# pixels and the maximum width should not exceed 200 pixels. Doxygen will copy
+# the logo to the output directory.
+
+PROJECT_LOGO           =
+
+# The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) path
+# into which the generated documentation will be written. If a relative path is
+# entered, it will be relative to the location where doxygen was started. If
+# left blank the current directory will be used.
+
 OUTPUT_DIRECTORY       = doc
+
+# If the CREATE_SUBDIRS tag is set to YES then doxygen will create 4096 sub-
+# directories (in 2 levels) under the output directory of each output format and
+# will distribute the generated files over these directories. Enabling this
+# option can be useful when feeding doxygen a huge amount of source files, where
+# putting all generated files in the same directory would otherwise causes
+# performance problems for the file system.
+# The default value is: NO.
+
 CREATE_SUBDIRS         = NO
+
+# If the ALLOW_UNICODE_NAMES tag is set to YES, doxygen will allow non-ASCII
+# characters to appear in the names of generated files. If set to NO, non-ASCII
+# characters will be escaped, for example _xE3_x81_x84 will be used for Unicode
+# U+3044.
+# The default value is: NO.
+
+ALLOW_UNICODE_NAMES    = NO
+
+# The OUTPUT_LANGUAGE tag is used to specify the language in which all
+# documentation generated by doxygen is written. Doxygen will use this
+# information to generate all constant output in the proper language.
+# Possible values are: Afrikaans, Arabic, Armenian, Brazilian, Catalan, Chinese,
+# Chinese-Traditional, Croatian, Czech, Danish, Dutch, English (United States),
+# Esperanto, Farsi (Persian), Finnish, French, German, Greek, Hungarian,
+# Indonesian, Italian, Japanese, Japanese-en (Japanese with English messages),
+# Korean, Korean-en (Korean with English messages), Latvian, Lithuanian,
+# Macedonian, Norwegian, Persian (Farsi), Polish, Portuguese, Romanian, Russian,
+# Serbian, Serbian-Cyrillic, Slovak, Slovene, Spanish, Swedish, Turkish,
+# Ukrainian and Vietnamese.
+# The default value is: English.
+
 OUTPUT_LANGUAGE        = English
-#USE_WINDOWS_ENCODING   = YES
-DOXYFILE_ENCODING      = UTF-8
+
+# If the BRIEF_MEMBER_DESC tag is set to YES, doxygen will include brief member
+# descriptions after the members that are listed in the file and class
+# documentation (similar to Javadoc). Set to NO to disable this.
+# The default value is: YES.
+
 BRIEF_MEMBER_DESC      = YES
+
+# If the REPEAT_BRIEF tag is set to YES, doxygen will prepend the brief
+# description of a member or function before the detailed description
+#
+# Note: If both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the
+# brief descriptions will be completely suppressed.
+# The default value is: YES.
+
 REPEAT_BRIEF           = YES
-ABBREVIATE_BRIEF       = 
+
+# This tag implements a quasi-intelligent brief description abbreviator that is
+# used to form the text in various listings. Each string in this list, if found
+# as the leading text of the brief description, will be stripped from the text
+# and the result, after processing the whole list, is used as the annotated
+# text. Otherwise, the brief description is used as-is. If left blank, the
+# following values are used ($name is automatically replaced with the name of
+# the entity):The $name class, The $name widget, The $name file, is, provides,
+# specifies, contains, represents, a, an and the.
+
+ABBREVIATE_BRIEF       =
+
+# If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then
+# doxygen will generate a detailed section even if there is only a brief
+# description.
+# The default value is: NO.
+
 ALWAYS_DETAILED_SEC    = NO
+
+# If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all
+# inherited members of a class in the documentation of that class as if those
+# members were ordinary class members. Constructors, destructors and assignment
+# operators of the base classes will not be shown.
+# The default value is: NO.
+
 INLINE_INHERITED_MEMB  = NO
+
+# If the FULL_PATH_NAMES tag is set to YES, doxygen will prepend the full path
+# before files name in the file list and in the header files. If set to NO the
+# shortest path that makes the file name unique will be used
+# The default value is: YES.
+
 FULL_PATH_NAMES        = NO
-STRIP_FROM_PATH        = 
-STRIP_FROM_INC_PATH    = 
+
+# The STRIP_FROM_PATH tag can be used to strip a user-defined part of the path.
+# Stripping is only done if one of the specified strings matches the left-hand
+# part of the path. The tag can be used to show relative paths in the file list.
+# If left blank the directory from which doxygen is run is used as the path to
+# strip.
+#
+# Note that you can specify absolute paths here, but also relative paths, which
+# will be relative from the directory where doxygen is started.
+# This tag requires that the tag FULL_PATH_NAMES is set to YES.
+
+STRIP_FROM_PATH        =
+
+# The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of the
+# path mentioned in the documentation of a class, which tells the reader which
+# header file to include in order to use a class. If left blank only the name of
+# the header file containing the class definition is used. Otherwise one should
+# specify the list of include paths that are normally passed to the compiler
+# using the -I flag.
+
+STRIP_FROM_INC_PATH    =
+
+# If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter (but
+# less readable) file names. This can be useful is your file systems doesn't
+# support long names like on DOS, Mac, or CD-ROM.
+# The default value is: NO.
+
 SHORT_NAMES            = NO
+
+# If the JAVADOC_AUTOBRIEF tag is set to YES then doxygen will interpret the
+# first line (until the first dot) of a Javadoc-style comment as the brief
+# description. If set to NO, the Javadoc-style will behave just like regular Qt-
+# style comments (thus requiring an explicit @brief command for a brief
+# description.)
+# The default value is: NO.
+
 JAVADOC_AUTOBRIEF      = YES
+
+# If the QT_AUTOBRIEF tag is set to YES then doxygen will interpret the first
+# line (until the first dot) of a Qt-style comment as the brief description. If
+# set to NO, the Qt-style will behave just like regular Qt-style comments (thus
+# requiring an explicit \brief command for a brief description.)
+# The default value is: NO.
+
+QT_AUTOBRIEF           = NO
+
+# The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make doxygen treat a
+# multi-line C++ special comment block (i.e. a block of //! or /// comments) as
+# a brief description. This used to be the default behavior. The new default is
+# to treat a multi-line C++ comment block as a detailed description. Set this
+# tag to YES if you prefer the old behavior instead.
+#
+# Note that setting this tag to YES also means that rational rose comments are
+# not recognized any more.
+# The default value is: NO.
+
 MULTILINE_CPP_IS_BRIEF = NO
-#DETAILS_AT_TOP         = NO
+
+# If the INHERIT_DOCS tag is set to YES then an undocumented member inherits the
+# documentation from any documented member that it re-implements.
+# The default value is: YES.
+
 INHERIT_DOCS           = YES
-DISTRIBUTE_GROUP_DOC   = YES
+
+# If the SEPARATE_MEMBER_PAGES tag is set to YES then doxygen will produce a new
+# page for each member. If set to NO, the documentation of a member will be part
+# of the file/class/namespace that contains it.
+# The default value is: NO.
+
+SEPARATE_MEMBER_PAGES  = NO
+
+# The TAB_SIZE tag can be used to set the number of spaces in a tab. Doxygen
+# uses this value to replace tabs by spaces in code fragments.
+# Minimum value: 1, maximum value: 16, default value: 4.
+
 TAB_SIZE               = 8
+
+# This tag can be used to specify a number of aliases that act as commands in
+# the documentation. An alias has the form:
+# name=value
+# For example adding
+# "sideeffect=@par Side Effects:\n"
+# will allow you to put the command \sideeffect (or @sideeffect) in the
+# documentation, which will result in a user-defined paragraph with heading
+# "Side Effects:". You can put \n's in the value part of an alias to insert
+# newlines.
+
 ALIASES                = "memo=\par Note:\n" \
                          "draft=\xrefitem draft \"Draft\" \"Draft List\"  This API may be changed in the future versions and was introduced in" \
                          "stable=\xrefitem stable \"Stable\" \"Stable List\"" \
                          "deprecated=\xrefitem deprecated \"Deprecated\" \"Deprecated List\"" \
                          "obsolete=\xrefitem obsolete \"Obsolete\" \"Obsolete List\"" \
                          "system=\xrefitem system \"System\" \"System List\" \n Do not use unless you know what you are doing." \
-                         "internal=\xrefitem internal \"Internal\"  \"Internal List\"  Do not use. This API is for internal use only." 
+                         "internal=\xrefitem internal \"Internal\"  \"Internal List\"  Do not use. This API is for internal use only."
+
+# This tag can be used to specify a number of word-keyword mappings (TCL only).
+# A mapping has the form "name=value". For example adding "class=itcl::class"
+# will allow you to use the command class in the itcl::class meaning.
+
+TCL_SUBST              =
+
+# Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C sources
+# only. Doxygen will then generate output that is more tailored for C. For
+# instance, some of the names that are used will be different. The list of all
+# members will be omitted, etc.
+# The default value is: NO.
 
 OPTIMIZE_OUTPUT_FOR_C  = YES
+
+# Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java or
+# Python sources only. Doxygen will then generate output that is more tailored
+# for that language. For instance, namespaces will be presented as packages,
+# qualified scopes will look different, etc.
+# The default value is: NO.
+
 OPTIMIZE_OUTPUT_JAVA   = NO
+
+# Set the OPTIMIZE_FOR_FORTRAN tag to YES if your project consists of Fortran
+# sources. Doxygen will then generate output that is tailored for Fortran.
+# The default value is: NO.
+
+OPTIMIZE_FOR_FORTRAN   = NO
+
+# Set the OPTIMIZE_OUTPUT_VHDL tag to YES if your project consists of VHDL
+# sources. Doxygen will then generate output that is tailored for VHDL.
+# The default value is: NO.
+
+OPTIMIZE_OUTPUT_VHDL   = NO
+
+# Doxygen selects the parser to use depending on the extension of the files it
+# parses. With this tag you can assign which parser to use for a given
+# extension. Doxygen has a built-in mapping, but you can override or extend it
+# using this tag. The format is ext=language, where ext is a file extension, and
+# language is one of the parsers supported by doxygen: IDL, Java, Javascript,
+# C#, C, C++, D, PHP, Objective-C, Python, Fortran (fixed format Fortran:
+# FortranFixed, free formatted Fortran: FortranFree, unknown formatted Fortran:
+# Fortran. In the later case the parser tries to guess whether the code is fixed
+# or free formatted code, this is the default for Fortran type files), VHDL. For
+# instance to make doxygen treat .inc files as Fortran files (default is PHP),
+# and .f files as C (default is Fortran), use: inc=Fortran f=C.
+#
+# Note: For files without extension you can use no_extension as a placeholder.
+#
+# Note that for custom extensions you also need to set FILE_PATTERNS otherwise
+# the files are not read by doxygen.
+
+EXTENSION_MAPPING      =
+
+# If the MARKDOWN_SUPPORT tag is enabled then doxygen pre-processes all comments
+# according to the Markdown format, which allows for more readable
+# documentation. See http://daringfireball.net/projects/markdown/ for details.
+# The output of markdown processing is further processed by doxygen, so you can
+# mix doxygen, HTML, and XML commands with Markdown formatting. Disable only in
+# case of backward compatibilities issues.
+# The default value is: YES.
+
+MARKDOWN_SUPPORT       = YES
+
+# When the TOC_INCLUDE_HEADINGS tag is set to a non-zero value, all headings up
+# to that level are automatically included in the table of contents, even if
+# they do not have an id attribute.
+# Note: This feature currently applies only to Markdown headings.
+# Minimum value: 0, maximum value: 99, default value: 0.
+# This tag requires that the tag MARKDOWN_SUPPORT is set to YES.
+
+TOC_INCLUDE_HEADINGS   = 0
+
+# When enabled doxygen tries to link words that correspond to documented
+# classes, or namespaces to their corresponding documentation. Such a link can
+# be prevented in individual cases by putting a % sign in front of the word or
+# globally by setting AUTOLINK_SUPPORT to NO.
+# The default value is: YES.
+
+AUTOLINK_SUPPORT       = YES
+
+# If you use STL classes (i.e. std::string, std::vector, etc.) but do not want
+# to include (a tag file for) the STL sources as input, then you should set this
+# tag to YES in order to let doxygen match functions declarations and
+# definitions whose arguments contain STL classes (e.g. func(std::string);
+# versus func(std::string) {}). This also make the inheritance and collaboration
+# diagrams that involve STL classes more complete and accurate.
+# The default value is: NO.
+
+BUILTIN_STL_SUPPORT    = NO
+
+# If you use Microsoft's C++/CLI language, you should set this option to YES to
+# enable parsing support.
+# The default value is: NO.
+
+CPP_CLI_SUPPORT        = NO
+
+# Set the SIP_SUPPORT tag to YES if your project consists of sip (see:
+# http://www.riverbankcomputing.co.uk/software/sip/intro) sources only. Doxygen
+# will parse them like normal C++ but will assume all classes use public instead
+# of private inheritance when no explicit protection keyword is present.
+# The default value is: NO.
+
+SIP_SUPPORT            = NO
+
+# For Microsoft's IDL there are propget and propput attributes to indicate
+# getter and setter methods for a property. Setting this option to YES will make
+# doxygen to replace the get and set methods by a property in the documentation.
+# This will only work if the methods are indeed getting or setting a simple
+# type. If this is not the case, or you want to show the methods anyway, you
+# should set this option to NO.
+# The default value is: YES.
+
+IDL_PROPERTY_SUPPORT   = YES
+
+# If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC
+# tag is set to YES then doxygen will reuse the documentation of the first
+# member in the group (if any) for the other members of the group. By default
+# all members of a group must be documented explicitly.
+# The default value is: NO.
+
+DISTRIBUTE_GROUP_DOC   = YES
+
+# If one adds a struct or class to a group and this option is enabled, then also
+# any nested class or struct is added to the same group. By default this option
+# is disabled and one has to add nested compounds explicitly via \ingroup.
+# The default value is: NO.
+
+GROUP_NESTED_COMPOUNDS = NO
+
+# Set the SUBGROUPING tag to YES to allow class member groups of the same type
+# (for instance a group of public functions) to be put as a subgroup of that
+# type (e.g. under the Public Functions section). Set it to NO to prevent
+# subgrouping. Alternatively, this can be done per class using the
+# \nosubgrouping command.
+# The default value is: YES.
+
 SUBGROUPING            = YES
+
+# When the INLINE_GROUPED_CLASSES tag is set to YES, classes, structs and unions
+# are shown inside the group in which they are included (e.g. using \ingroup)
+# instead of on a separate page (for HTML and Man pages) or section (for LaTeX
+# and RTF).
+#
+# Note that this feature does not work in combination with
+# SEPARATE_MEMBER_PAGES.
+# The default value is: NO.
+
+INLINE_GROUPED_CLASSES = NO
+
+# When the INLINE_SIMPLE_STRUCTS tag is set to YES, structs, classes, and unions
+# with only public data fields or simple typedef fields will be shown inline in
+# the documentation of the scope in which they are defined (i.e. file,
+# namespace, or group documentation), provided this scope is documented. If set
+# to NO, structs, classes, and unions are shown on a separate page (for HTML and
+# Man pages) or section (for LaTeX and RTF).
+# The default value is: NO.
+
+INLINE_SIMPLE_STRUCTS  = NO
+
+# When TYPEDEF_HIDES_STRUCT tag is enabled, a typedef of a struct, union, or
+# enum is documented as struct, union, or enum with the name of the typedef. So
+# typedef struct TypeS {} TypeT, will appear in the documentation as a struct
+# with name TypeT. When disabled the typedef will appear as a member of a file,
+# namespace, or class. And the struct will be named TypeS. This can typically be
+# useful for C code in case the coding convention dictates that all compound
+# types are typedef'ed and only the typedef is referenced, never the tag name.
+# The default value is: NO.
+
+TYPEDEF_HIDES_STRUCT   = NO
+
+# The size of the symbol lookup cache can be set using LOOKUP_CACHE_SIZE. This
+# cache is used to resolve symbols given their name and scope. Since this can be
+# an expensive process and often the same symbol appears multiple times in the
+# code, doxygen keeps a cache of pre-resolved symbols. If the cache is too small
+# doxygen will become slower. If the cache is too large, memory is wasted. The
+# cache size is given by this formula: 2^(16+LOOKUP_CACHE_SIZE). The valid range
+# is 0..9, the default is 0, corresponding to a cache size of 2^16=65536
+# symbols. At the end of a run doxygen will report the cache usage and suggest
+# the optimal cache size from a speed point of view.
+# Minimum value: 0, maximum value: 9, default value: 0.
+
+LOOKUP_CACHE_SIZE      = 0
+
 #---------------------------------------------------------------------------
 # Build related configuration options
 #---------------------------------------------------------------------------
+
+# If the EXTRACT_ALL tag is set to YES, doxygen will assume all entities in
+# documentation are documented, even if no documentation was available. Private
+# class members and static file members will be hidden unless the
+# EXTRACT_PRIVATE respectively EXTRACT_STATIC tags are set to YES.
+# Note: This will also disable the warnings about undocumented members that are
+# normally produced when WARNINGS is set to YES.
+# The default value is: NO.
+
 EXTRACT_ALL            = NO
+
+# If the EXTRACT_PRIVATE tag is set to YES, all private members of a class will
+# be included in the documentation.
+# The default value is: NO.
+
 EXTRACT_PRIVATE        = NO
+
+# If the EXTRACT_PACKAGE tag is set to YES, all members with package or internal
+# scope will be included in the documentation.
+# The default value is: NO.
+
+EXTRACT_PACKAGE        = NO
+
+# If the EXTRACT_STATIC tag is set to YES, all static members of a file will be
+# included in the documentation.
+# The default value is: NO.
+
 EXTRACT_STATIC         = NO
+
+# If the EXTRACT_LOCAL_CLASSES tag is set to YES, classes (and structs) defined
+# locally in source files will be included in the documentation. If set to NO,
+# only classes defined in header files are included. Does not have any effect
+# for Java sources.
+# The default value is: YES.
+
 EXTRACT_LOCAL_CLASSES  = YES
+
+# This flag is only useful for Objective-C code. If set to YES, local methods,
+# which are defined in the implementation section but not in the interface are
+# included in the documentation. If set to NO, only methods in the interface are
+# included.
+# The default value is: NO.
+
 EXTRACT_LOCAL_METHODS  = NO
+
+# If this flag is set to YES, the members of anonymous namespaces will be
+# extracted and appear in the documentation as a namespace called
+# 'anonymous_namespace{file}', where file will be replaced with the base name of
+# the file that contains the anonymous namespace. By default anonymous namespace
+# are hidden.
+# The default value is: NO.
+
+EXTRACT_ANON_NSPACES   = NO
+
+# If the HIDE_UNDOC_MEMBERS tag is set to YES, doxygen will hide all
+# undocumented members inside documented classes or files. If set to NO these
+# members will be included in the various overviews, but no documentation
+# section is generated. This option has no effect if EXTRACT_ALL is enabled.
+# The default value is: NO.
+
 HIDE_UNDOC_MEMBERS     = NO
+
+# If the HIDE_UNDOC_CLASSES tag is set to YES, doxygen will hide all
+# undocumented classes that are normally visible in the class hierarchy. If set
+# to NO, these classes will be included in the various overviews. This option
+# has no effect if EXTRACT_ALL is enabled.
+# The default value is: NO.
+
 HIDE_UNDOC_CLASSES     = NO
+
+# If the HIDE_FRIEND_COMPOUNDS tag is set to YES, doxygen will hide all friend
+# (class|struct|union) declarations. If set to NO, these declarations will be
+# included in the documentation.
+# The default value is: NO.
+
 HIDE_FRIEND_COMPOUNDS  = NO
+
+# If the HIDE_IN_BODY_DOCS tag is set to YES, doxygen will hide any
+# documentation blocks found inside the body of a function. If set to NO, these
+# blocks will be appended to the function's detailed documentation block.
+# The default value is: NO.
+
 HIDE_IN_BODY_DOCS      = NO
+
+# The INTERNAL_DOCS tag determines if documentation that is typed after a
+# \internal command is included. If the tag is set to NO then the documentation
+# will be excluded. Set it to YES to include the internal documentation.
+# The default value is: NO.
+
 INTERNAL_DOCS          = YES
+
+# If the CASE_SENSE_NAMES tag is set to NO then doxygen will only generate file
+# names in lower-case letters. If set to YES, upper-case letters are also
+# allowed. This is useful if you have classes or files whose names only differ
+# in case and if your file system supports case sensitive file names. Windows
+# and Mac users are advised to set this option to NO.
+# The default value is: system dependent.
+
 CASE_SENSE_NAMES       = YES
+
+# If the HIDE_SCOPE_NAMES tag is set to NO then doxygen will show members with
+# their full class and namespace scopes in the documentation. If set to YES, the
+# scope will be hidden.
+# The default value is: NO.
+
 HIDE_SCOPE_NAMES       = NO
+
+# If the HIDE_COMPOUND_REFERENCE tag is set to NO (default) then doxygen will
+# append additional text to a page's title, such as Class Reference. If set to
+# YES the compound reference will be hidden.
+# The default value is: NO.
+
+HIDE_COMPOUND_REFERENCE= NO
+
+# If the SHOW_INCLUDE_FILES tag is set to YES then doxygen will put a list of
+# the files that are included by a file in the documentation of that file.
+# The default value is: YES.
+
 SHOW_INCLUDE_FILES     = YES
+
+# If the SHOW_GROUPED_MEMB_INC tag is set to YES then Doxygen will add for each
+# grouped member an include statement to the documentation, telling the reader
+# which file to include in order to use the member.
+# The default value is: NO.
+
+SHOW_GROUPED_MEMB_INC  = NO
+
+# If the FORCE_LOCAL_INCLUDES tag is set to YES then doxygen will list include
+# files with double quotes in the documentation rather than with sharp brackets.
+# The default value is: NO.
+
+FORCE_LOCAL_INCLUDES   = NO
+
+# If the INLINE_INFO tag is set to YES then a tag [inline] is inserted in the
+# documentation for inline members.
+# The default value is: YES.
+
 INLINE_INFO            = YES
+
+# If the SORT_MEMBER_DOCS tag is set to YES then doxygen will sort the
+# (detailed) documentation of file and class members alphabetically by member
+# name. If set to NO, the members will appear in declaration order.
+# The default value is: YES.
+
 SORT_MEMBER_DOCS       = YES
+
+# If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the brief
+# descriptions of file, namespace and class members alphabetically by member
+# name. If set to NO, the members will appear in declaration order. Note that
+# this will also influence the order of the classes in the class list.
+# The default value is: NO.
+
 SORT_BRIEF_DOCS        = NO
+
+# If the SORT_MEMBERS_CTORS_1ST tag is set to YES then doxygen will sort the
+# (brief and detailed) documentation of class members so that constructors and
+# destructors are listed first. If set to NO the constructors will appear in the
+# respective orders defined by SORT_BRIEF_DOCS and SORT_MEMBER_DOCS.
+# Note: If SORT_BRIEF_DOCS is set to NO this option is ignored for sorting brief
+# member documentation.
+# Note: If SORT_MEMBER_DOCS is set to NO this option is ignored for sorting
+# detailed member documentation.
+# The default value is: NO.
+
+SORT_MEMBERS_CTORS_1ST = NO
+
+# If the SORT_GROUP_NAMES tag is set to YES then doxygen will sort the hierarchy
+# of group names into alphabetical order. If set to NO the group names will
+# appear in their defined order.
+# The default value is: NO.
+
+SORT_GROUP_NAMES       = NO
+
+# If the SORT_BY_SCOPE_NAME tag is set to YES, the class list will be sorted by
+# fully-qualified names, including namespaces. If set to NO, the class list will
+# be sorted only by class name, not including the namespace part.
+# Note: This option is not very useful if HIDE_SCOPE_NAMES is set to YES.
+# Note: This option applies only to the class list, not to the alphabetical
+# list.
+# The default value is: NO.
+
 SORT_BY_SCOPE_NAME     = NO
+
+# If the STRICT_PROTO_MATCHING option is enabled and doxygen fails to do proper
+# type resolution of all parameters of a function it will reject a match between
+# the prototype and the implementation of a member function even if there is
+# only one candidate or it is obvious which candidate to choose by doing a
+# simple string match. By disabling STRICT_PROTO_MATCHING doxygen will still
+# accept a match between prototype and implementation in such cases.
+# The default value is: NO.
+
+STRICT_PROTO_MATCHING  = NO
+
+# The GENERATE_TODOLIST tag can be used to enable (YES) or disable (NO) the todo
+# list. This list is created by putting \todo commands in the documentation.
+# The default value is: YES.
+
 GENERATE_TODOLIST      = YES
+
+# The GENERATE_TESTLIST tag can be used to enable (YES) or disable (NO) the test
+# list. This list is created by putting \test commands in the documentation.
+# The default value is: YES.
+
 GENERATE_TESTLIST      = YES
+
+# The GENERATE_BUGLIST tag can be used to enable (YES) or disable (NO) the bug
+# list. This list is created by putting \bug commands in the documentation.
+# The default value is: YES.
+
 GENERATE_BUGLIST       = YES
+
+# The GENERATE_DEPRECATEDLIST tag can be used to enable (YES) or disable (NO)
+# the deprecated list. This list is created by putting \deprecated commands in
+# the documentation.
+# The default value is: YES.
+
 GENERATE_DEPRECATEDLIST= YES
-ENABLED_SECTIONS       = 
+
+# The ENABLED_SECTIONS tag can be used to enable conditional documentation
+# sections, marked by \if <section_label> ... \endif and \cond <section_label>
+# ... \endcond blocks.
+
+ENABLED_SECTIONS       =
+
+# The MAX_INITIALIZER_LINES tag determines the maximum number of lines that the
+# initial value of a variable or macro / define can have for it to appear in the
+# documentation. If the initializer consists of more lines than specified here
+# it will be hidden. Use a value of 0 to hide initializers completely. The
+# appearance of the value of individual variables and macros / defines can be
+# controlled using \showinitializer or \hideinitializer command in the
+# documentation regardless of this setting.
+# Minimum value: 0, maximum value: 10000, default value: 30.
+
 MAX_INITIALIZER_LINES  = 30
+
+# Set the SHOW_USED_FILES tag to NO to disable the list of files generated at
+# the bottom of the documentation of classes and structs. If set to YES, the
+# list will mention the files that were used to generate the documentation.
+# The default value is: YES.
+
 SHOW_USED_FILES        = YES
 
-# docset
-GENERATE_DOCSET        = NO
-DOCSET_FEEDNAME        = "ICU @VERSION@"
-DOCSET_BUNDLE_ID       = org.icu-project.icu4c
+# Set the SHOW_FILES tag to NO to disable the generation of the Files page. This
+# will remove the Files entry from the Quick Index and from the Folder Tree View
+# (if specified).
+# The default value is: YES.
+
+SHOW_FILES             = YES
+
+# Set the SHOW_NAMESPACES tag to NO to disable the generation of the Namespaces
+# page. This will remove the Namespaces entry from the Quick Index and from the
+# Folder Tree View (if specified).
+# The default value is: YES.
+
+SHOW_NAMESPACES        = YES
+
+# The FILE_VERSION_FILTER tag can be used to specify a program or script that
+# doxygen should invoke to get the current version for each file (typically from
+# the version control system). Doxygen will invoke the program by executing (via
+# popen()) the command command input-file, where command is the value of the
+# FILE_VERSION_FILTER tag, and input-file is the name of an input file provided
+# by doxygen. Whatever the program writes to standard output is used as the file
+# version. For an example see the documentation.
+
+FILE_VERSION_FILTER    =
+
+# The LAYOUT_FILE tag can be used to specify a layout file which will be parsed
+# by doxygen. The layout file controls the global structure of the generated
+# output files in an output format independent way. To create the layout file
+# that represents doxygen's defaults, run doxygen with the -l option. You can
+# optionally specify a file name after the option, if omitted DoxygenLayout.xml
+# will be used as the name of the layout file.
+#
+# Note that if you run doxygen from a directory containing a file called
+# DoxygenLayout.xml, doxygen will parse it automatically even if the LAYOUT_FILE
+# tag is left empty.
+
+LAYOUT_FILE            =
+
+# The CITE_BIB_FILES tag can be used to specify one or more bib files containing
+# the reference definitions. This must be a list of .bib files. The .bib
+# extension is automatically appended if omitted. This requires the bibtex tool
+# to be installed. See also http://en.wikipedia.org/wiki/BibTeX for more info.
+# For LaTeX the style of the bibliography can be controlled using
+# LATEX_BIB_STYLE. To use this feature you need bibtex and perl available in the
+# search path. See also \cite for info how to create references.
+
+CITE_BIB_FILES         =
 
 #---------------------------------------------------------------------------
-# configuration options related to warning and progress messages
+# Configuration options related to warning and progress messages
 #---------------------------------------------------------------------------
+
+# The QUIET tag can be used to turn on/off the messages that are generated to
+# standard output by doxygen. If QUIET is set to YES this implies that the
+# messages are off.
+# The default value is: NO.
+
 QUIET                  = NO
+
+# The WARNINGS tag can be used to turn on/off the warning messages that are
+# generated to standard error (stderr) by doxygen. If WARNINGS is set to YES
+# this implies that the warnings are on.
+#
+# Tip: Turn warnings on while writing the documentation.
+# The default value is: YES.
+
 WARNINGS               = YES
+
+# If the WARN_IF_UNDOCUMENTED tag is set to YES then doxygen will generate
+# warnings for undocumented members. If EXTRACT_ALL is set to YES then this flag
+# will automatically be disabled.
+# The default value is: YES.
+
 WARN_IF_UNDOCUMENTED   = YES
+
+# If the WARN_IF_DOC_ERROR tag is set to YES, doxygen will generate warnings for
+# potential errors in the documentation, such as not documenting some parameters
+# in a documented function, or documenting parameters that don't exist or using
+# markup commands wrongly.
+# The default value is: YES.
+
 WARN_IF_DOC_ERROR      = YES
+
+# This WARN_NO_PARAMDOC option can be enabled to get warnings for functions that
+# are documented, but have no documentation for their parameters or return
+# value. If set to NO, doxygen will only warn about wrong or incomplete
+# parameter documentation, but not about the absence of documentation.
+# The default value is: NO.
+
+WARN_NO_PARAMDOC       = NO
+
+# If the WARN_AS_ERROR tag is set to YES then doxygen will immediately stop when
+# a warning is encountered.
+# The default value is: NO.
+
+WARN_AS_ERROR          = NO
+
+# The WARN_FORMAT tag determines the format of the warning messages that doxygen
+# can produce. The string should contain the $file, $line, and $text tags, which
+# will be replaced by the file and line number from which the warning originated
+# and the warning text. Optionally the format may contain $version, which will
+# be replaced by the version of the file (if it could be obtained via
+# FILE_VERSION_FILTER)
+# The default value is: $file:$line: $text.
+
 WARN_FORMAT            = "$file:$line: $text"
-WARN_LOGFILE           = 
+
+# The WARN_LOGFILE tag can be used to specify a file to which warning and error
+# messages should be written. If left blank the output is written to standard
+# error (stderr).
+
+WARN_LOGFILE           =
+
 #---------------------------------------------------------------------------
-# configuration options related to the input files
+# Configuration options related to the input files
 #---------------------------------------------------------------------------
-INPUT                  = @srcdir@/common/unicode @srcdir@/i18n/unicode @srcdir@/io/unicode @srcdir@/layout/LEFontInstance.h @srcdir@/layout/LEGlyphStorage.h @srcdir@/layout/LELanguages.h @srcdir@/layout/LEScripts.h @srcdir@/layout/LESwaps.h @srcdir@/layout/LETypes.h @srcdir@/layout/LayoutEngine.h @srcdir@/layoutex/layout
+
+# The INPUT tag is used to specify the files and/or directories that contain
+# documented source files. You may enter file names like myfile.cpp or
+# directories like /usr/src/myproject. Separate the files or directories with
+# spaces. See also FILE_PATTERNS and EXTENSION_MAPPING
+# Note: If this tag is empty the current directory is searched.
+
+INPUT                  = @srcdir@/common/unicode \
+                         @srcdir@/i18n/unicode \
+                         @srcdir@/io/unicode \
+                         @srcdir@/layoutex/layout
+
+# This tag can be used to specify the character encoding of the source files
+# that doxygen parses. Internally doxygen uses the UTF-8 encoding. Doxygen uses
+# libiconv (or the iconv built into libc) for the transcoding. See the libiconv
+# documentation (see: http://www.gnu.org/software/libiconv) for the list of
+# possible encodings.
+# The default value is: UTF-8.
+
+INPUT_ENCODING         = UTF-8
+
+# If the value of the INPUT tag contains directories, you can use the
+# FILE_PATTERNS tag to specify one or more wildcard patterns (like *.cpp and
+# *.h) to filter out the source-files in the directories.
+#
+# Note that for custom extensions or not directly supported extensions you also
+# need to set EXTENSION_MAPPING for the extension otherwise the files are not
+# read by doxygen.
+#
+# If left blank the following patterns are tested:*.c, *.cc, *.cxx, *.cpp,
+# *.c++, *.java, *.ii, *.ixx, *.ipp, *.i++, *.inl, *.idl, *.ddl, *.odl, *.h,
+# *.hh, *.hxx, *.hpp, *.h++, *.cs, *.d, *.php, *.php4, *.php5, *.phtml, *.inc,
+# *.m, *.markdown, *.md, *.mm, *.dox, *.py, *.pyw, *.f90, *.f95, *.f03, *.f08,
+# *.f, *.for, *.tcl, *.vhd, *.vhdl, *.ucf and *.qsf.
+
 FILE_PATTERNS          = *.h
+
+# The RECURSIVE tag can be used to specify whether or not subdirectories should
+# be searched for input files as well.
+# The default value is: NO.
+
 RECURSIVE              = NO
-EXCLUDE                = @srcdir@/common/unicode/urename.h @srcdir@/common/unicode/udraft.h @srcdir@/common/unicode/udeprctd.h @srcdir@/common/unicode/uobslete.h @srcdir@/common/unicode/ppalmos.h  
+
+# The EXCLUDE tag can be used to specify files and/or directories that should be
+# excluded from the INPUT source files. This way you can easily exclude a
+# subdirectory from a directory tree whose root is specified with the INPUT tag.
+#
+# Note that relative paths are relative to the directory from which doxygen is
+# run.
+
+EXCLUDE                = @srcdir@/common/unicode/urename.h \
+                         @srcdir@/common/unicode/udraft.h \
+                         @srcdir@/common/unicode/udeprctd.h \
+                         @srcdir@/common/unicode/uobslete.h \
+                         @srcdir@/common/unicode/ppalmos.h
+
+# The EXCLUDE_SYMLINKS tag can be used to select whether or not files or
+# directories that are symbolic links (a Unix file system feature) are excluded
+# from the input.
+# The default value is: NO.
+
 EXCLUDE_SYMLINKS       = NO
+
+# If the value of the INPUT tag contains directories, you can use the
+# EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude
+# certain files from those directories.
+#
+# Note that the wildcards are matched against the file with absolute path, so to
+# exclude all test directories for example use the pattern */test/*
+
 EXCLUDE_PATTERNS       = config*.h
+
+# The EXCLUDE_SYMBOLS tag can be used to specify one or more symbol names
+# (namespaces, classes, functions, etc.) that should be excluded from the
+# output. The symbol name can be a fully qualified name, a word, or if the
+# wildcard * is used, a substring. Examples: ANamespace, AClass,
+# AClass::ANamespace, ANamespace::*Test
+#
+# Note that the wildcards are matched against the file with absolute path, so to
+# exclude all test directories use the pattern */test/*
+
+EXCLUDE_SYMBOLS        =
+
+# The EXAMPLE_PATH tag can be used to specify one or more files or directories
+# that contain example code fragments that are included (see the \include
+# command).
+
 EXAMPLE_PATH           = @srcdir@/
-EXAMPLE_PATTERNS       = 
+
+# If the value of the EXAMPLE_PATH tag contains directories, you can use the
+# EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp and
+# *.h) to filter out the source-files in the directories. If left blank all
+# files are included.
+
+EXAMPLE_PATTERNS       =
+
+# If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be
+# searched for input files to be used with the \include or \dontinclude commands
+# irrespective of the value of the RECURSIVE tag.
+# The default value is: NO.
+
 EXAMPLE_RECURSIVE      = NO
-IMAGE_PATH             = 
-INPUT_FILTER           = 
+
+# The IMAGE_PATH tag can be used to specify one or more files or directories
+# that contain images that are to be included in the documentation (see the
+# \image command).
+
+IMAGE_PATH             =
+
+# The INPUT_FILTER tag can be used to specify a program that doxygen should
+# invoke to filter for each input file. Doxygen will invoke the filter program
+# by executing (via popen()) the command:
+#
+# <filter> <input-file>
+#
+# where <filter> is the value of the INPUT_FILTER tag, and <input-file> is the
+# name of an input file. Doxygen will then use the output that the filter
+# program writes to standard output. If FILTER_PATTERNS is specified, this tag
+# will be ignored.
+#
+# Note that the filter must not add or remove lines; it is applied before the
+# code is scanned, but not when the output code is generated. If lines are added
+# or removed, the anchors will not be placed correctly.
+#
+# Note that for custom extensions or not directly supported extensions you also
+# need to set EXTENSION_MAPPING for the extension otherwise the files are not
+# properly processed by doxygen.
+
+INPUT_FILTER           =
+
+# The FILTER_PATTERNS tag can be used to specify filters on a per file pattern
+# basis. Doxygen will compare the file name with each pattern and apply the
+# filter if there is a match. The filters are a list of the form: pattern=filter
+# (like *.cpp=my_cpp_filter). See INPUT_FILTER for further information on how
+# filters are used. If the FILTER_PATTERNS tag is empty or if none of the
+# patterns match the file name, INPUT_FILTER is applied.
+#
+# Note that for custom extensions or not directly supported extensions you also
+# need to set EXTENSION_MAPPING for the extension otherwise the files are not
+# properly processed by doxygen.
+
+FILTER_PATTERNS        =
+
+# If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using
+# INPUT_FILTER) will also be used to filter the input files that are used for
+# producing the source files to browse (i.e. when SOURCE_BROWSER is set to YES).
+# The default value is: NO.
+
 FILTER_SOURCE_FILES    = NO
+
+# The FILTER_SOURCE_PATTERNS tag can be used to specify source filters per file
+# pattern. A pattern will override the setting for FILTER_PATTERN (if any) and
+# it is also possible to disable source filtering for a specific pattern using
+# *.ext= (so without naming a filter).
+# This tag requires that the tag FILTER_SOURCE_FILES is set to YES.
+
+FILTER_SOURCE_PATTERNS =
+
+# If the USE_MDFILE_AS_MAINPAGE tag refers to the name of a markdown file that
+# is part of the input, its contents will be placed on the main page
+# (index.html). This can be useful if you have a project on for instance GitHub
+# and want to reuse the introduction page also for the doxygen output.
+
+USE_MDFILE_AS_MAINPAGE =
+
 #---------------------------------------------------------------------------
-# configuration options related to source browsing
+# Configuration options related to source browsing
 #---------------------------------------------------------------------------
+
+# If the SOURCE_BROWSER tag is set to YES then a list of source files will be
+# generated. Documented entities will be cross-referenced with these sources.
+#
+# Note: To get rid of all source code in the generated output, make sure that
+# also VERBATIM_HEADERS is set to NO.
+# The default value is: NO.
+
 SOURCE_BROWSER         = YES
+
+# Setting the INLINE_SOURCES tag to YES will include the body of functions,
+# classes and enums directly into the documentation.
+# The default value is: NO.
+
 INLINE_SOURCES         = NO
+
+# Setting the STRIP_CODE_COMMENTS tag to YES will instruct doxygen to hide any
+# special comment blocks from generated source code fragments. Normal C, C++ and
+# Fortran comments will always remain visible.
+# The default value is: YES.
+
 STRIP_CODE_COMMENTS    = YES
+
+# If the REFERENCED_BY_RELATION tag is set to YES then for each documented
+# function all documented functions referencing it will be listed.
+# The default value is: NO.
+
 REFERENCED_BY_RELATION = YES
+
+# If the REFERENCES_RELATION tag is set to YES then for each documented function
+# all documented entities called/used by that function will be listed.
+# The default value is: NO.
+
 REFERENCES_RELATION    = YES
+
+# If the REFERENCES_LINK_SOURCE tag is set to YES and SOURCE_BROWSER tag is set
+# to YES then the hyperlinks from functions in REFERENCES_RELATION and
+# REFERENCED_BY_RELATION lists will link to the source code. Otherwise they will
+# link to the documentation.
+# The default value is: YES.
+
+REFERENCES_LINK_SOURCE = YES
+
+# If SOURCE_TOOLTIPS is enabled (the default) then hovering a hyperlink in the
+# source code will show a tooltip with additional information such as prototype,
+# brief description and links to the definition and documentation. Since this
+# will make the HTML file larger and loading of large files a bit slower, you
+# can opt to disable this feature.
+# The default value is: YES.
+# This tag requires that the tag SOURCE_BROWSER is set to YES.
+
+SOURCE_TOOLTIPS        = YES
+
+# If the USE_HTAGS tag is set to YES then the references to source code will
+# point to the HTML generated by the htags(1) tool instead of doxygen built-in
+# source browser. The htags tool is part of GNU's global source tagging system
+# (see http://www.gnu.org/software/global/global.html). You will need version
+# 4.8.6 or higher.
+#
+# To use it do the following:
+# - Install the latest version of global
+# - Enable SOURCE_BROWSER and USE_HTAGS in the config file
+# - Make sure the INPUT points to the root of the source tree
+# - Run doxygen as normal
+#
+# Doxygen will invoke htags (and that will in turn invoke gtags), so these
+# tools must be available from the command line (i.e. in the search path).
+#
+# The result: instead of the source browser generated by doxygen, the links to
+# source code will now point to the output of htags.
+# The default value is: NO.
+# This tag requires that the tag SOURCE_BROWSER is set to YES.
+
+USE_HTAGS              = NO
+
+# If the VERBATIM_HEADERS tag is set the YES then doxygen will generate a
+# verbatim copy of the header file for each class for which an include is
+# specified. Set to NO to disable this.
+# See also: Section \class.
+# The default value is: YES.
+
 VERBATIM_HEADERS       = YES
+
+# If the CLANG_ASSISTED_PARSING tag is set to YES then doxygen will use the
+# clang parser (see: http://clang.llvm.org/) for more accurate parsing at the
+# cost of reduced performance. This can be particularly helpful with template
+# rich C++ code for which doxygen's built-in parser lacks the necessary type
+# information.
+# Note: The availability of this option depends on whether or not doxygen was
+# generated with the -Duse-libclang=ON option for CMake.
+# The default value is: NO.
+
+CLANG_ASSISTED_PARSING = NO
+
+# If clang assisted parsing is enabled you can provide the compiler with command
+# line options that you would normally use when invoking the compiler. Note that
+# the include paths will already be set by doxygen for the files and directories
+# specified with INPUT and INCLUDE_PATH.
+# This tag requires that the tag CLANG_ASSISTED_PARSING is set to YES.
+
+CLANG_OPTIONS          =
+
 #---------------------------------------------------------------------------
-# configuration options related to the alphabetical class index
+# Configuration options related to the alphabetical class index
 #---------------------------------------------------------------------------
+
+# If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index of all
+# compounds will be generated. Enable this if the project contains a lot of
+# classes, structs, unions or interfaces.
+# The default value is: YES.
+
 ALPHABETICAL_INDEX     = YES
+
+# The COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns in
+# which the alphabetical index list will be split.
+# Minimum value: 1, maximum value: 20, default value: 5.
+# This tag requires that the tag ALPHABETICAL_INDEX is set to YES.
+
 COLS_IN_ALPHA_INDEX    = 5
-IGNORE_PREFIX          = 
+
+# In case all classes in a project start with a common prefix, all classes will
+# be put under the same header in the alphabetical index. The IGNORE_PREFIX tag
+# can be used to specify a prefix (or a list of prefixes) that should be ignored
+# while generating the index headers.
+# This tag requires that the tag ALPHABETICAL_INDEX is set to YES.
+
+IGNORE_PREFIX          =
+
 #---------------------------------------------------------------------------
-# configuration options related to the HTML output
+# Configuration options related to the HTML output
 #---------------------------------------------------------------------------
+
+# If the GENERATE_HTML tag is set to YES, doxygen will generate HTML output
+# The default value is: YES.
+
 GENERATE_HTML          = YES
+
+# The HTML_OUTPUT tag is used to specify where the HTML docs will be put. If a
+# relative path is entered the value of OUTPUT_DIRECTORY will be put in front of
+# it.
+# The default directory is: html.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
 HTML_OUTPUT            = html
+
+# The HTML_FILE_EXTENSION tag can be used to specify the file extension for each
+# generated HTML page (for example: .htm, .php, .asp).
+# The default value is: .html.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
 HTML_FILE_EXTENSION    = .html
-HTML_HEADER            = 
-HTML_FOOTER            = 
-HTML_STYLESHEET        = 
-HTML_ALIGN_MEMBERS     = YES
+
+# The HTML_HEADER tag can be used to specify a user-defined HTML header file for
+# each generated HTML page. If the tag is left blank doxygen will generate a
+# standard header.
+#
+# To get valid HTML the header file that includes any scripts and style sheets
+# that doxygen needs, which is dependent on the configuration options used (e.g.
+# the setting GENERATE_TREEVIEW). It is highly recommended to start with a
+# default header using
+# doxygen -w html new_header.html new_footer.html new_stylesheet.css
+# YourConfigFile
+# and then modify the file new_header.html. See also section "Doxygen usage"
+# for information on how to generate the default header that doxygen normally
+# uses.
+# Note: The header is subject to change so you typically have to regenerate the
+# default header when upgrading to a newer version of doxygen. For a description
+# of the possible markers and block names see the documentation.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+HTML_HEADER            =
+
+# The HTML_FOOTER tag can be used to specify a user-defined HTML footer for each
+# generated HTML page. If the tag is left blank doxygen will generate a standard
+# footer. See HTML_HEADER for more information on how to generate a default
+# footer and what special commands can be used inside the footer. See also
+# section "Doxygen usage" for information on how to generate the default footer
+# that doxygen normally uses.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+HTML_FOOTER            =
+
+# The HTML_STYLESHEET tag can be used to specify a user-defined cascading style
+# sheet that is used by each HTML page. It can be used to fine-tune the look of
+# the HTML output. If left blank doxygen will generate a default style sheet.
+# See also section "Doxygen usage" for information on how to generate the style
+# sheet that doxygen normally uses.
+# Note: It is recommended to use HTML_EXTRA_STYLESHEET instead of this tag, as
+# it is more robust and this tag (HTML_STYLESHEET) will in the future become
+# obsolete.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+HTML_STYLESHEET        =
+
+# The HTML_EXTRA_STYLESHEET tag can be used to specify additional user-defined
+# cascading style sheets that are included after the standard style sheets
+# created by doxygen. Using this option one can overrule certain style aspects.
+# This is preferred over using HTML_STYLESHEET since it does not replace the
+# standard style sheet and is therefore more robust against future updates.
+# Doxygen will copy the style sheet files to the output directory.
+# Note: The order of the extra style sheet files is of importance (e.g. the last
+# style sheet in the list overrules the setting of the previous ones in the
+# list). For an example see the documentation.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+HTML_EXTRA_STYLESHEET  =
+
+# The HTML_EXTRA_FILES tag can be used to specify one or more extra images or
+# other source files which should be copied to the HTML output directory. Note
+# that these files will be copied to the base HTML output directory. Use the
+# $relpath^ marker in the HTML_HEADER and/or HTML_FOOTER files to load these
+# files. In the HTML_STYLESHEET file, use the file name only. Also note that the
+# files will be copied as-is; there are no commands or markers available.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+HTML_EXTRA_FILES       =
+
+# The HTML_COLORSTYLE_HUE tag controls the color of the HTML output. Doxygen
+# will adjust the colors in the style sheet and background images according to
+# this color. Hue is specified as an angle on a colorwheel, see
+# http://en.wikipedia.org/wiki/Hue for more information. For instance the value
+# 0 represents red, 60 is yellow, 120 is green, 180 is cyan, 240 is blue, 300
+# purple, and 360 is red again.
+# Minimum value: 0, maximum value: 359, default value: 220.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+HTML_COLORSTYLE_HUE    = 220
+
+# The HTML_COLORSTYLE_SAT tag controls the purity (or saturation) of the colors
+# in the HTML output. For a value of 0 the output will use grayscales only. A
+# value of 255 will produce the most vivid colors.
+# Minimum value: 0, maximum value: 255, default value: 100.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+HTML_COLORSTYLE_SAT    = 100
+
+# The HTML_COLORSTYLE_GAMMA tag controls the gamma correction applied to the
+# luminance component of the colors in the HTML output. Values below 100
+# gradually make the output lighter, whereas values above 100 make the output
+# darker. The value divided by 100 is the actual gamma applied, so 80 represents
+# a gamma of 0.8, The value 220 represents a gamma of 2.2, and 100 does not
+# change the gamma.
+# Minimum value: 40, maximum value: 240, default value: 80.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+HTML_COLORSTYLE_GAMMA  = 80
+
+# If the HTML_TIMESTAMP tag is set to YES then the footer of each generated HTML
+# page will contain the date and time when the page was generated. Setting this
+# to YES can help to show when doxygen was last run and thus if the
+# documentation is up to date.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+HTML_TIMESTAMP         = NO
+
+# If the HTML_DYNAMIC_SECTIONS tag is set to YES then the generated HTML
+# documentation will contain sections that can be hidden and shown after the
+# page has loaded.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+HTML_DYNAMIC_SECTIONS  = NO
+
+# With HTML_INDEX_NUM_ENTRIES one can control the preferred number of entries
+# shown in the various tree structured indices initially; the user can expand
+# and collapse entries dynamically later on. Doxygen will expand the tree to
+# such a level that at most the specified number of entries are visible (unless
+# a fully collapsed tree already exceeds this amount). So setting the number of
+# entries 1 will produce a full collapsed tree by default. 0 is a special value
+# representing an infinite number of entries and will result in a full expanded
+# tree by default.
+# Minimum value: 0, maximum value: 9999, default value: 100.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+HTML_INDEX_NUM_ENTRIES = 100
+
+# If the GENERATE_DOCSET tag is set to YES, additional index files will be
+# generated that can be used as input for Apple's Xcode 3 integrated development
+# environment (see: http://developer.apple.com/tools/xcode/), introduced with
+# OSX 10.5 (Leopard). To create a documentation set, doxygen will generate a
+# Makefile in the HTML output directory. Running make will produce the docset in
+# that directory and running make install will install the docset in
+# ~/Library/Developer/Shared/Documentation/DocSets so that Xcode will find it at
+# startup. See http://developer.apple.com/tools/creatingdocsetswithdoxygen.html
+# for more information.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+GENERATE_DOCSET        = NO
+
+# This tag determines the name of the docset feed. A documentation feed provides
+# an umbrella under which multiple documentation sets from a single provider
+# (such as a company or product suite) can be grouped.
+# The default value is: Doxygen generated docs.
+# This tag requires that the tag GENERATE_DOCSET is set to YES.
+
+DOCSET_FEEDNAME        = "ICU @VERSION@"
+
+# This tag specifies a string that should uniquely identify the documentation
+# set bundle. This should be a reverse domain-name style string, e.g.
+# com.mycompany.MyDocSet. Doxygen will append .docset to the name.
+# The default value is: org.doxygen.Project.
+# This tag requires that the tag GENERATE_DOCSET is set to YES.
+
+DOCSET_BUNDLE_ID       = org.icu-project.icu4c
+
+# The DOCSET_PUBLISHER_ID tag specifies a string that should uniquely identify
+# the documentation publisher. This should be a reverse domain-name style
+# string, e.g. com.mycompany.MyDocSet.documentation.
+# The default value is: org.doxygen.Publisher.
+# This tag requires that the tag GENERATE_DOCSET is set to YES.
+
+DOCSET_PUBLISHER_ID    = org.doxygen.Publisher
+
+# The DOCSET_PUBLISHER_NAME tag identifies the documentation publisher.
+# The default value is: Publisher.
+# This tag requires that the tag GENERATE_DOCSET is set to YES.
+
+DOCSET_PUBLISHER_NAME  = Publisher
+
+# If the GENERATE_HTMLHELP tag is set to YES then doxygen generates three
+# additional HTML index files: index.hhp, index.hhc, and index.hhk. The
+# index.hhp is a project file that can be read by Microsoft's HTML Help Workshop
+# (see: http://www.microsoft.com/en-us/download/details.aspx?id=21138) on
+# Windows.
+#
+# The HTML Help Workshop contains a compiler that can convert all HTML output
+# generated by doxygen into a single compiled HTML file (.chm). Compiled HTML
+# files are now used as the Windows 98 help format, and will replace the old
+# Windows help format (.hlp) on all Windows platforms in the future. Compressed
+# HTML files also contain an index, a table of contents, and you can search for
+# words in the documentation. The HTML workshop also contains a viewer for
+# compressed HTML files.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
 GENERATE_HTMLHELP      = NO
-CHM_FILE               = 
-HHC_LOCATION           = 
+
+# The CHM_FILE tag can be used to specify the file name of the resulting .chm
+# file. You can add a path in front of the file if the result should not be
+# written to the html output directory.
+# This tag requires that the tag GENERATE_HTMLHELP is set to YES.
+
+CHM_FILE               =
+
+# The HHC_LOCATION tag can be used to specify the location (absolute path
+# including file name) of the HTML help compiler (hhc.exe). If non-empty,
+# doxygen will try to run the HTML help compiler on the generated index.hhp.
+# The file has to be specified with full path.
+# This tag requires that the tag GENERATE_HTMLHELP is set to YES.
+
+HHC_LOCATION           =
+
+# The GENERATE_CHI flag controls if a separate .chi index file is generated
+# (YES) or that it should be included in the master .chm file (NO).
+# The default value is: NO.
+# This tag requires that the tag GENERATE_HTMLHELP is set to YES.
+
 GENERATE_CHI           = NO
+
+# The CHM_INDEX_ENCODING is used to encode HtmlHelp index (hhk), content (hhc)
+# and project file content.
+# This tag requires that the tag GENERATE_HTMLHELP is set to YES.
+
+CHM_INDEX_ENCODING     =
+
+# The BINARY_TOC flag controls whether a binary table of contents is generated
+# (YES) or a normal table of contents (NO) in the .chm file. Furthermore it
+# enables the Previous and Next buttons.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_HTMLHELP is set to YES.
+
 BINARY_TOC             = NO
+
+# The TOC_EXPAND flag can be set to YES to add extra items for group members to
+# the table of contents of the HTML help documentation and to the tree view.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_HTMLHELP is set to YES.
+
 TOC_EXPAND             = NO
+
+# If the GENERATE_QHP tag is set to YES and both QHP_NAMESPACE and
+# QHP_VIRTUAL_FOLDER are set, an additional index file will be generated that
+# can be used as input for Qt's qhelpgenerator to generate a Qt Compressed Help
+# (.qch) of the generated HTML documentation.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+GENERATE_QHP           = NO
+
+# If the QHG_LOCATION tag is specified, the QCH_FILE tag can be used to specify
+# the file name of the resulting .qch file. The path specified is relative to
+# the HTML output folder.
+# This tag requires that the tag GENERATE_QHP is set to YES.
+
+QCH_FILE               =
+
+# The QHP_NAMESPACE tag specifies the namespace to use when generating Qt Help
+# Project output. For more information please see Qt Help Project / Namespace
+# (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#namespace).
+# The default value is: org.doxygen.Project.
+# This tag requires that the tag GENERATE_QHP is set to YES.
+
+QHP_NAMESPACE          = org.doxygen.Project
+
+# The QHP_VIRTUAL_FOLDER tag specifies the namespace to use when generating Qt
+# Help Project output. For more information please see Qt Help Project / Virtual
+# Folders (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#virtual-
+# folders).
+# The default value is: doc.
+# This tag requires that the tag GENERATE_QHP is set to YES.
+
+QHP_VIRTUAL_FOLDER     = doc
+
+# If the QHP_CUST_FILTER_NAME tag is set, it specifies the name of a custom
+# filter to add. For more information please see Qt Help Project / Custom
+# Filters (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#custom-
+# filters).
+# This tag requires that the tag GENERATE_QHP is set to YES.
+
+QHP_CUST_FILTER_NAME   =
+
+# The QHP_CUST_FILTER_ATTRS tag specifies the list of the attributes of the
+# custom filter to add. For more information please see Qt Help Project / Custom
+# Filters (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#custom-
+# filters).
+# This tag requires that the tag GENERATE_QHP is set to YES.
+
+QHP_CUST_FILTER_ATTRS  =
+
+# The QHP_SECT_FILTER_ATTRS tag specifies the list of the attributes this
+# project's filter section matches. Qt Help Project / Filter Attributes (see:
+# http://qt-project.org/doc/qt-4.8/qthelpproject.html#filter-attributes).
+# This tag requires that the tag GENERATE_QHP is set to YES.
+
+QHP_SECT_FILTER_ATTRS  =
+
+# The QHG_LOCATION tag can be used to specify the location of Qt's
+# qhelpgenerator. If non-empty doxygen will try to run qhelpgenerator on the
+# generated .qhp file.
+# This tag requires that the tag GENERATE_QHP is set to YES.
+
+QHG_LOCATION           =
+
+# If the GENERATE_ECLIPSEHELP tag is set to YES, additional index files will be
+# generated, together with the HTML files, they form an Eclipse help plugin. To
+# install this plugin and make it available under the help contents menu in
+# Eclipse, the contents of the directory containing the HTML and XML files needs
+# to be copied into the plugins directory of eclipse. The name of the directory
+# within the plugins directory should be the same as the ECLIPSE_DOC_ID value.
+# After copying Eclipse needs to be restarted before the help appears.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+GENERATE_ECLIPSEHELP   = NO
+
+# A unique identifier for the Eclipse help plugin. When installing the plugin
+# the directory name containing the HTML and XML files should also have this
+# name. Each documentation set should have its own identifier.
+# The default value is: org.doxygen.Project.
+# This tag requires that the tag GENERATE_ECLIPSEHELP is set to YES.
+
+ECLIPSE_DOC_ID         = org.doxygen.Project
+
+# If you want full control over the layout of the generated HTML pages it might
+# be necessary to disable the index and replace it with your own. The
+# DISABLE_INDEX tag can be used to turn on/off the condensed index (tabs) at top
+# of each HTML page. A value of NO enables the index and the value YES disables
+# it. Since the tabs in the index contain the same information as the navigation
+# tree, you can set this option to YES if you also set GENERATE_TREEVIEW to YES.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
 DISABLE_INDEX          = NO
-ENUM_VALUES_PER_LINE   = 4
+
+# The GENERATE_TREEVIEW tag is used to specify whether a tree-like index
+# structure should be generated to display hierarchical information. If the tag
+# value is set to YES, a side panel will be generated containing a tree-like
+# index structure (just like the one that is generated for HTML Help). For this
+# to work a browser that supports JavaScript, DHTML, CSS and frames is required
+# (i.e. any modern browser). Windows users are probably better off using the
+# HTML help feature. Via custom style sheets (see HTML_EXTRA_STYLESHEET) one can
+# further fine-tune the look of the index. As an example, the default style
+# sheet generated by doxygen has an example that shows how to put an image at
+# the root of the tree instead of the PROJECT_NAME. Since the tree basically has
+# the same information as the tab index, you could consider setting
+# DISABLE_INDEX to YES when enabling this option.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
 GENERATE_TREEVIEW      = NO
+
+# The ENUM_VALUES_PER_LINE tag can be used to set the number of enum values that
+# doxygen will group on one line in the generated HTML documentation.
+#
+# Note that a value of 0 will completely suppress the enum values from appearing
+# in the overview section.
+# Minimum value: 0, maximum value: 20, default value: 4.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+ENUM_VALUES_PER_LINE   = 4
+
+# If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be used
+# to set the initial width (in pixels) of the frame in which the tree is shown.
+# Minimum value: 0, maximum value: 1500, default value: 250.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
 TREEVIEW_WIDTH         = 250
+
+# If the EXT_LINKS_IN_WINDOW option is set to YES, doxygen will open links to
+# external symbols imported via tag files in a separate window.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+EXT_LINKS_IN_WINDOW    = NO
+
+# Use this tag to change the font size of LaTeX formulas included as images in
+# the HTML documentation. When you change the font size after a successful
+# doxygen run you need to manually remove any form_*.png images from the HTML
+# output directory to force them to be regenerated.
+# Minimum value: 8, maximum value: 50, default value: 10.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+FORMULA_FONTSIZE       = 10
+
+# Use the FORMULA_TRANPARENT tag to determine whether or not the images
+# generated for formulas are transparent PNGs. Transparent PNGs are not
+# supported properly for IE 6.0, but are supported on all modern browsers.
+#
+# Note that when changing this option you need to delete any form_*.png files in
+# the HTML output directory before the changes have effect.
+# The default value is: YES.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+FORMULA_TRANSPARENT    = YES
+
+# Enable the USE_MATHJAX option to render LaTeX formulas using MathJax (see
+# http://www.mathjax.org) which uses client side Javascript for the rendering
+# instead of using pre-rendered bitmaps. Use this if you do not have LaTeX
+# installed or if you want to formulas look prettier in the HTML output. When
+# enabled you may also need to install MathJax separately and configure the path
+# to it using the MATHJAX_RELPATH option.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+USE_MATHJAX            = NO
+
+# When MathJax is enabled you can set the default output format to be used for
+# the MathJax output. See the MathJax site (see:
+# http://docs.mathjax.org/en/latest/output.html) for more details.
+# Possible values are: HTML-CSS (which is slower, but has the best
+# compatibility), NativeMML (i.e. MathML) and SVG.
+# The default value is: HTML-CSS.
+# This tag requires that the tag USE_MATHJAX is set to YES.
+
+MATHJAX_FORMAT         = HTML-CSS
+
+# When MathJax is enabled you need to specify the location relative to the HTML
+# output directory using the MATHJAX_RELPATH option. The destination directory
+# should contain the MathJax.js script. For instance, if the mathjax directory
+# is located at the same level as the HTML output directory, then
+# MATHJAX_RELPATH should be ../mathjax. The default value points to the MathJax
+# Content Delivery Network so you can quickly see the result without installing
+# MathJax. However, it is strongly recommended to install a local copy of
+# MathJax from http://www.mathjax.org before deployment.
+# The default value is: http://cdn.mathjax.org/mathjax/latest.
+# This tag requires that the tag USE_MATHJAX is set to YES.
+
+MATHJAX_RELPATH        = http://cdn.mathjax.org/mathjax/latest
+
+# The MATHJAX_EXTENSIONS tag can be used to specify one or more MathJax
+# extension names that should be enabled during MathJax rendering. For example
+# MATHJAX_EXTENSIONS = TeX/AMSmath TeX/AMSsymbols
+# This tag requires that the tag USE_MATHJAX is set to YES.
+
+MATHJAX_EXTENSIONS     =
+
+# The MATHJAX_CODEFILE tag can be used to specify a file with javascript pieces
+# of code that will be used on startup of the MathJax code. See the MathJax site
+# (see: http://docs.mathjax.org/en/latest/output.html) for more details. For an
+# example see the documentation.
+# This tag requires that the tag USE_MATHJAX is set to YES.
+
+MATHJAX_CODEFILE       =
+
+# When the SEARCHENGINE tag is enabled doxygen will generate a search box for
+# the HTML output. The underlying search engine uses javascript and DHTML and
+# should work on any modern browser. Note that when using HTML help
+# (GENERATE_HTMLHELP), Qt help (GENERATE_QHP), or docsets (GENERATE_DOCSET)
+# there is already a search function so this one should typically be disabled.
+# For large projects the javascript based search engine can be slow, then
+# enabling SERVER_BASED_SEARCH may provide a better solution. It is possible to
+# search using the keyboard; to jump to the search box use <access key> + S
+# (what the <access key> is depends on the OS and browser, but it is typically
+# <CTRL>, <ALT>/<option>, or both). Inside the search box use the <cursor down
+# key> to jump into the search results window, the results can be navigated
+# using the <cursor keys>. Press <Enter> to select an item or <escape> to cancel
+# the search. The filter options can be selected when the cursor is inside the
+# search box by pressing <Shift>+<cursor down>. Also here use the <cursor keys>
+# to select a filter and <Enter> or <escape> to activate or cancel the filter
+# option.
+# The default value is: YES.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+SEARCHENGINE           = NO
+
+# When the SERVER_BASED_SEARCH tag is enabled the search engine will be
+# implemented using a web server instead of a web client using Javascript. There
+# are two flavors of web server based searching depending on the EXTERNAL_SEARCH
+# setting. When disabled, doxygen will generate a PHP script for searching and
+# an index file used by the script. When EXTERNAL_SEARCH is enabled the indexing
+# and searching needs to be provided by external tools. See the section
+# "External Indexing and Searching" for details.
+# The default value is: NO.
+# This tag requires that the tag SEARCHENGINE is set to YES.
+
+SERVER_BASED_SEARCH    = NO
+
+# When EXTERNAL_SEARCH tag is enabled doxygen will no longer generate the PHP
+# script for searching. Instead the search results are written to an XML file
+# which needs to be processed by an external indexer. Doxygen will invoke an
+# external search engine pointed to by the SEARCHENGINE_URL option to obtain the
+# search results.
+#
+# Doxygen ships with an example indexer (doxyindexer) and search engine
+# (doxysearch.cgi) which are based on the open source search engine library
+# Xapian (see: http://xapian.org/).
+#
+# See the section "External Indexing and Searching" for details.
+# The default value is: NO.
+# This tag requires that the tag SEARCHENGINE is set to YES.
+
+EXTERNAL_SEARCH        = NO
+
+# The SEARCHENGINE_URL should point to a search engine hosted by a web server
+# which will return the search results when EXTERNAL_SEARCH is enabled.
+#
+# Doxygen ships with an example indexer (doxyindexer) and search engine
+# (doxysearch.cgi) which are based on the open source search engine library
+# Xapian (see: http://xapian.org/). See the section "External Indexing and
+# Searching" for details.
+# This tag requires that the tag SEARCHENGINE is set to YES.
+
+SEARCHENGINE_URL       =
+
+# When SERVER_BASED_SEARCH and EXTERNAL_SEARCH are both enabled the unindexed
+# search data is written to a file for indexing by an external tool. With the
+# SEARCHDATA_FILE tag the name of this file can be specified.
+# The default file is: searchdata.xml.
+# This tag requires that the tag SEARCHENGINE is set to YES.
+
+SEARCHDATA_FILE        = searchdata.xml
+
+# When SERVER_BASED_SEARCH and EXTERNAL_SEARCH are both enabled the
+# EXTERNAL_SEARCH_ID tag can be used as an identifier for the project. This is
+# useful in combination with EXTRA_SEARCH_MAPPINGS to search through multiple
+# projects and redirect the results back to the right project.
+# This tag requires that the tag SEARCHENGINE is set to YES.
+
+EXTERNAL_SEARCH_ID     =
+
+# The EXTRA_SEARCH_MAPPINGS tag can be used to enable searching through doxygen
+# projects other than the one defined by this configuration file, but that are
+# all added to the same external search index. Each project needs to have a
+# unique id set via EXTERNAL_SEARCH_ID. The search mapping then maps the id of
+# to a relative location where the documentation can be found. The format is:
+# EXTRA_SEARCH_MAPPINGS = tagname1=loc1 tagname2=loc2 ...
+# This tag requires that the tag SEARCHENGINE is set to YES.
+
+EXTRA_SEARCH_MAPPINGS  =
+
 #---------------------------------------------------------------------------
-# configuration options related to the LaTeX output
+# Configuration options related to the LaTeX output
 #---------------------------------------------------------------------------
+
+# If the GENERATE_LATEX tag is set to YES, doxygen will generate LaTeX output.
+# The default value is: YES.
+
 GENERATE_LATEX         = NO
+
+# The LATEX_OUTPUT tag is used to specify where the LaTeX docs will be put. If a
+# relative path is entered the value of OUTPUT_DIRECTORY will be put in front of
+# it.
+# The default directory is: latex.
+# This tag requires that the tag GENERATE_LATEX is set to YES.
+
 LATEX_OUTPUT           = latex
+
+# The LATEX_CMD_NAME tag can be used to specify the LaTeX command name to be
+# invoked.
+#
+# Note that when enabling USE_PDFLATEX this option is only used for generating
+# bitmaps for formulas in the HTML output, but not in the Makefile that is
+# written to the output directory.
+# The default file is: latex.
+# This tag requires that the tag GENERATE_LATEX is set to YES.
+
 LATEX_CMD_NAME         = latex
+
+# The MAKEINDEX_CMD_NAME tag can be used to specify the command name to generate
+# index for LaTeX.
+# The default file is: makeindex.
+# This tag requires that the tag GENERATE_LATEX is set to YES.
+
 MAKEINDEX_CMD_NAME     = makeindex
+
+# If the COMPACT_LATEX tag is set to YES, doxygen generates more compact LaTeX
+# documents. This may be useful for small projects and may help to save some
+# trees in general.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_LATEX is set to YES.
+
 COMPACT_LATEX          = NO
+
+# The PAPER_TYPE tag can be used to set the paper type that is used by the
+# printer.
+# Possible values are: a4 (210 x 297 mm), letter (8.5 x 11 inches), legal (8.5 x
+# 14 inches) and executive (7.25 x 10.5 inches).
+# The default value is: a4.
+# This tag requires that the tag GENERATE_LATEX is set to YES.
+
 PAPER_TYPE             = a4wide
-EXTRA_PACKAGES         = 
-LATEX_HEADER           = 
+
+# The EXTRA_PACKAGES tag can be used to specify one or more LaTeX package names
+# that should be included in the LaTeX output. The package can be specified just
+# by its name or with the correct syntax as to be used with the LaTeX
+# \usepackage command. To get the times font for instance you can specify :
+# EXTRA_PACKAGES=times or EXTRA_PACKAGES={times}
+# To use the option intlimits with the amsmath package you can specify:
+# EXTRA_PACKAGES=[intlimits]{amsmath}
+# If left blank no extra packages will be included.
+# This tag requires that the tag GENERATE_LATEX is set to YES.
+
+EXTRA_PACKAGES         =
+
+# The LATEX_HEADER tag can be used to specify a personal LaTeX header for the
+# generated LaTeX document. The header should contain everything until the first
+# chapter. If it is left blank doxygen will generate a standard header. See
+# section "Doxygen usage" for information on how to let doxygen write the
+# default header to a separate file.
+#
+# Note: Only use a user-defined header if you know what you are doing! The
+# following commands have a special meaning inside the header: $title,
+# $datetime, $date, $doxygenversion, $projectname, $projectnumber,
+# $projectbrief, $projectlogo. Doxygen will replace $title with the empty
+# string, for the replacement values of the other commands the user is referred
+# to HTML_HEADER.
+# This tag requires that the tag GENERATE_LATEX is set to YES.
+
+LATEX_HEADER           =
+
+# The LATEX_FOOTER tag can be used to specify a personal LaTeX footer for the
+# generated LaTeX document. The footer should contain everything after the last
+# chapter. If it is left blank doxygen will generate a standard footer. See
+# LATEX_HEADER for more information on how to generate a default footer and what
+# special commands can be used inside the footer.
+#
+# Note: Only use a user-defined footer if you know what you are doing!
+# This tag requires that the tag GENERATE_LATEX is set to YES.
+
+LATEX_FOOTER           =
+
+# The LATEX_EXTRA_STYLESHEET tag can be used to specify additional user-defined
+# LaTeX style sheets that are included after the standard style sheets created
+# by doxygen. Using this option one can overrule certain style aspects. Doxygen
+# will copy the style sheet files to the output directory.
+# Note: The order of the extra style sheet files is of importance (e.g. the last
+# style sheet in the list overrules the setting of the previous ones in the
+# list).
+# This tag requires that the tag GENERATE_LATEX is set to YES.
+
+LATEX_EXTRA_STYLESHEET =
+
+# The LATEX_EXTRA_FILES tag can be used to specify one or more extra images or
+# other source files which should be copied to the LATEX_OUTPUT output
+# directory. Note that the files will be copied as-is; there are no commands or
+# markers available.
+# This tag requires that the tag GENERATE_LATEX is set to YES.
+
+LATEX_EXTRA_FILES      =
+
+# If the PDF_HYPERLINKS tag is set to YES, the LaTeX that is generated is
+# prepared for conversion to PDF (using ps2pdf or pdflatex). The PDF file will
+# contain links (just like the HTML output) instead of page references. This
+# makes the output suitable for online browsing using a PDF viewer.
+# The default value is: YES.
+# This tag requires that the tag GENERATE_LATEX is set to YES.
+
 PDF_HYPERLINKS         = NO
+
+# If the USE_PDFLATEX tag is set to YES, doxygen will use pdflatex to generate
+# the PDF file directly from the LaTeX files. Set this option to YES, to get a
+# higher quality PDF documentation.
+# The default value is: YES.
+# This tag requires that the tag GENERATE_LATEX is set to YES.
+
 USE_PDFLATEX           = NO
+
+# If the LATEX_BATCHMODE tag is set to YES, doxygen will add the \batchmode
+# command to the generated LaTeX files. This will instruct LaTeX to keep running
+# if errors occur, instead of asking the user for help. This option is also used
+# when generating formulas in HTML.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_LATEX is set to YES.
+
 LATEX_BATCHMODE        = NO
+
+# If the LATEX_HIDE_INDICES tag is set to YES then doxygen will not include the
+# index chapters (such as File Index, Compound Index, etc.) in the output.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_LATEX is set to YES.
+
 LATEX_HIDE_INDICES     = NO
+
+# If the LATEX_SOURCE_CODE tag is set to YES then doxygen will include source
+# code with syntax highlighting in the LaTeX output.
+#
+# Note that which sources are shown also depends on other settings such as
+# SOURCE_BROWSER.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_LATEX is set to YES.
+
+LATEX_SOURCE_CODE      = NO
+
+# The LATEX_BIB_STYLE tag can be used to specify the style to use for the
+# bibliography, e.g. plainnat, or ieeetr. See
+# http://en.wikipedia.org/wiki/BibTeX and \cite for more info.
+# The default value is: plain.
+# This tag requires that the tag GENERATE_LATEX is set to YES.
+
+LATEX_BIB_STYLE        = plain
+
+# If the LATEX_TIMESTAMP tag is set to YES then the footer of each generated
+# page will contain the date and time when the page was generated. Setting this
+# to NO can help when comparing the output of multiple runs.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_LATEX is set to YES.
+
+LATEX_TIMESTAMP        = NO
+
 #---------------------------------------------------------------------------
-# configuration options related to the RTF output
+# Configuration options related to the RTF output
 #---------------------------------------------------------------------------
+
+# If the GENERATE_RTF tag is set to YES, doxygen will generate RTF output. The
+# RTF output is optimized for Word 97 and may not look too pretty with other RTF
+# readers/editors.
+# The default value is: NO.
+
 GENERATE_RTF           = NO
+
+# The RTF_OUTPUT tag is used to specify where the RTF docs will be put. If a
+# relative path is entered the value of OUTPUT_DIRECTORY will be put in front of
+# it.
+# The default directory is: rtf.
+# This tag requires that the tag GENERATE_RTF is set to YES.
+
 RTF_OUTPUT             = rtf
+
+# If the COMPACT_RTF tag is set to YES, doxygen generates more compact RTF
+# documents. This may be useful for small projects and may help to save some
+# trees in general.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_RTF is set to YES.
+
 COMPACT_RTF            = NO
+
+# If the RTF_HYPERLINKS tag is set to YES, the RTF that is generated will
+# contain hyperlink fields. The RTF file will contain links (just like the HTML
+# output) instead of page references. This makes the output suitable for online
+# browsing using Word or some other Word compatible readers that support those
+# fields.
+#
+# Note: WordPad (write) and others do not support links.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_RTF is set to YES.
+
 RTF_HYPERLINKS         = NO
-RTF_STYLESHEET_FILE    = 
-RTF_EXTENSIONS_FILE    = 
+
+# Load stylesheet definitions from file. Syntax is similar to doxygen's config
+# file, i.e. a series of assignments. You only have to provide replacements,
+# missing definitions are set to their default value.
+#
+# See also section "Doxygen usage" for information on how to generate the
+# default style sheet that doxygen normally uses.
+# This tag requires that the tag GENERATE_RTF is set to YES.
+
+RTF_STYLESHEET_FILE    =
+
+# Set optional variables used in the generation of an RTF document. Syntax is
+# similar to doxygen's config file. A template extensions file can be generated
+# using doxygen -e rtf extensionFile.
+# This tag requires that the tag GENERATE_RTF is set to YES.
+
+RTF_EXTENSIONS_FILE    =
+
+# If the RTF_SOURCE_CODE tag is set to YES then doxygen will include source code
+# with syntax highlighting in the RTF output.
+#
+# Note that which sources are shown also depends on other settings such as
+# SOURCE_BROWSER.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_RTF is set to YES.
+
+RTF_SOURCE_CODE        = NO
+
 #---------------------------------------------------------------------------
-# configuration options related to the man page output
+# Configuration options related to the man page output
 #---------------------------------------------------------------------------
+
+# If the GENERATE_MAN tag is set to YES, doxygen will generate man pages for
+# classes and files.
+# The default value is: NO.
+
 GENERATE_MAN           = NO
+
+# The MAN_OUTPUT tag is used to specify where the man pages will be put. If a
+# relative path is entered the value of OUTPUT_DIRECTORY will be put in front of
+# it. A directory man3 will be created inside the directory specified by
+# MAN_OUTPUT.
+# The default directory is: man.
+# This tag requires that the tag GENERATE_MAN is set to YES.
+
 MAN_OUTPUT             = man
+
+# The MAN_EXTENSION tag determines the extension that is added to the generated
+# man pages. In case the manual section does not start with a number, the number
+# 3 is prepended. The dot (.) at the beginning of the MAN_EXTENSION tag is
+# optional.
+# The default value is: .3.
+# This tag requires that the tag GENERATE_MAN is set to YES.
+
 MAN_EXTENSION          = .3
+
+# The MAN_SUBDIR tag determines the name of the directory created within
+# MAN_OUTPUT in which the man pages are placed. If defaults to man followed by
+# MAN_EXTENSION with the initial . removed.
+# This tag requires that the tag GENERATE_MAN is set to YES.
+
+MAN_SUBDIR             =
+
+# If the MAN_LINKS tag is set to YES and doxygen generates man output, then it
+# will generate one additional man file for each entity documented in the real
+# man page(s). These additional files only source the real man page, but without
+# them the man command would be unable to find the correct page.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_MAN is set to YES.
+
 MAN_LINKS              = NO
+
 #---------------------------------------------------------------------------
-# configuration options related to the XML output
+# Configuration options related to the XML output
 #---------------------------------------------------------------------------
+
+# If the GENERATE_XML tag is set to YES, doxygen will generate an XML file that
+# captures the structure of the code including all documentation.
+# The default value is: NO.
+
 GENERATE_XML           = NO
+
+# The XML_OUTPUT tag is used to specify where the XML pages will be put. If a
+# relative path is entered the value of OUTPUT_DIRECTORY will be put in front of
+# it.
+# The default directory is: xml.
+# This tag requires that the tag GENERATE_XML is set to YES.
+
 XML_OUTPUT             = xml
-XML_SCHEMA             = 
-XML_DTD                = 
+
+# If the XML_PROGRAMLISTING tag is set to YES, doxygen will dump the program
+# listings (including syntax highlighting and cross-referencing information) to
+# the XML output. Note that enabling this will significantly increase the size
+# of the XML output.
+# The default value is: YES.
+# This tag requires that the tag GENERATE_XML is set to YES.
+
 XML_PROGRAMLISTING     = YES
+
 #---------------------------------------------------------------------------
-# configuration options for the AutoGen Definitions output
+# Configuration options related to the DOCBOOK output
 #---------------------------------------------------------------------------
+
+# If the GENERATE_DOCBOOK tag is set to YES, doxygen will generate Docbook files
+# that can be used to generate PDF.
+# The default value is: NO.
+
+GENERATE_DOCBOOK       = NO
+
+# The DOCBOOK_OUTPUT tag is used to specify where the Docbook pages will be put.
+# If a relative path is entered the value of OUTPUT_DIRECTORY will be put in
+# front of it.
+# The default directory is: docbook.
+# This tag requires that the tag GENERATE_DOCBOOK is set to YES.
+
+DOCBOOK_OUTPUT         = docbook
+
+# If the DOCBOOK_PROGRAMLISTING tag is set to YES, doxygen will include the
+# program listings (including syntax highlighting and cross-referencing
+# information) to the DOCBOOK output. Note that enabling this will significantly
+# increase the size of the DOCBOOK output.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_DOCBOOK is set to YES.
+
+DOCBOOK_PROGRAMLISTING = NO
+
+#---------------------------------------------------------------------------
+# Configuration options for the AutoGen Definitions output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_AUTOGEN_DEF tag is set to YES, doxygen will generate an
+# AutoGen Definitions (see http://autogen.sf.net) file that captures the
+# structure of the code including all documentation. Note that this feature is
+# still experimental and incomplete at the moment.
+# The default value is: NO.
+
 GENERATE_AUTOGEN_DEF   = NO
+
 #---------------------------------------------------------------------------
-# configuration options related to the Perl module output
+# Configuration options related to the Perl module output
 #---------------------------------------------------------------------------
-GENERATE_PERLMOD       = NO 
+
+# If the GENERATE_PERLMOD tag is set to YES, doxygen will generate a Perl module
+# file that captures the structure of the code including all documentation.
+#
+# Note that this feature is still experimental and incomplete at the moment.
+# The default value is: NO.
+
+GENERATE_PERLMOD       = NO
+
+# If the PERLMOD_LATEX tag is set to YES, doxygen will generate the necessary
+# Makefile rules, Perl scripts and LaTeX code to be able to generate PDF and DVI
+# output from the Perl module output.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_PERLMOD is set to YES.
+
 PERLMOD_LATEX          = YES
+
+# If the PERLMOD_PRETTY tag is set to YES, the Perl module output will be nicely
+# formatted so it can be parsed by a human reader. This is useful if you want to
+# understand what is going on. On the other hand, if this tag is set to NO, the
+# size of the Perl module output will be much smaller and Perl will parse it
+# just the same.
+# The default value is: YES.
+# This tag requires that the tag GENERATE_PERLMOD is set to YES.
+
 PERLMOD_PRETTY         = YES
-PERLMOD_MAKEVAR_PREFIX = 
+
+# The names of the make variables in the generated doxyrules.make file are
+# prefixed with the string contained in PERLMOD_MAKEVAR_PREFIX. This is useful
+# so different doxyrules.make files included by the same Makefile don't
+# overwrite each other's variables.
+# This tag requires that the tag GENERATE_PERLMOD is set to YES.
+
+PERLMOD_MAKEVAR_PREFIX =
+
 #---------------------------------------------------------------------------
-# Configuration options related to the preprocessor   
+# Configuration options related to the preprocessor
 #---------------------------------------------------------------------------
+
+# If the ENABLE_PREPROCESSING tag is set to YES, doxygen will evaluate all
+# C-preprocessor directives found in the sources and include files.
+# The default value is: YES.
+
 ENABLE_PREPROCESSING   = YES
+
+# If the MACRO_EXPANSION tag is set to YES, doxygen will expand all macro names
+# in the source code. If set to NO, only conditional compilation will be
+# performed. Macro expansion can be done in a controlled way by setting
+# EXPAND_ONLY_PREDEF to YES.
+# The default value is: NO.
+# This tag requires that the tag ENABLE_PREPROCESSING is set to YES.
+
 MACRO_EXPANSION        = YES
+
+# If the EXPAND_ONLY_PREDEF and MACRO_EXPANSION tags are both set to YES then
+# the macro expansion is limited to the macros specified with the PREDEFINED and
+# EXPAND_AS_DEFINED tags.
+# The default value is: NO.
+# This tag requires that the tag ENABLE_PREPROCESSING is set to YES.
+
 EXPAND_ONLY_PREDEF     = YES
+
+# If the SEARCH_INCLUDES tag is set to YES, the include files in the
+# INCLUDE_PATH will be searched if a #include is found.
+# The default value is: YES.
+# This tag requires that the tag ENABLE_PREPROCESSING is set to YES.
+
 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_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      = 
+
+# The INCLUDE_PATH tag can be used to specify one or more directories that
+# contain include files that are not input files but should be processed by the
+# preprocessor.
+# This tag requires that the tag SEARCH_INCLUDES is set to YES.
+
+INCLUDE_PATH           =
+
+# You can use the INCLUDE_FILE_PATTERNS tag to specify one or more wildcard
+# patterns (like *.h and *.hpp) to filter out the header-files in the
+# directories. If left blank, the patterns specified with FILE_PATTERNS will be
+# used.
+# This tag requires that the tag ENABLE_PREPROCESSING is set to YES.
+
+INCLUDE_FILE_PATTERNS  =
+
+# The PREDEFINED tag can be used to specify one or more macro names that are
+# defined before the preprocessor is started (similar to the -D option of e.g.
+# gcc). The argument of the tag is a list of macros of the form: name or
+# name=definition (no spaces). If the definition and the "=" are omitted, "=1"
+# is assumed. To prevent a macro definition from being undefined via #undef or
+# recursively expanded use the := operator instead of the = operator.
+# This tag requires that the tag ENABLE_PREPROCESSING is set to YES.
+
+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_NAMESPACE_BEGIN=namespace icu{" \
+                         "U_NAMESPACE_END=}" \
+                         U_SHOW_CPLUSPLUS_API=1 \
+                         U_DEFINE_LOCAL_OPEN_POINTER()= \
+                         U_IN_DOXYGEN=1 \
+                         U_CHAR16_IS_TYPEDEF=0 \
+                         U_CPLUSPLUS_VERSION=11 \
+                         U_WCHAR_IS_UTF16 \
+                         U_FINAL=final
+
+# If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then this
+# tag can be used to specify a list of macro names that should be expanded. The
+# macro definition that is found in the sources will be used. Use the PREDEFINED
+# tag if you want to use a different macro definition that overrules the
+# definition found in the source code.
+# This tag requires that the tag ENABLE_PREPROCESSING is set to YES.
+
+EXPAND_AS_DEFINED      =
+
+# If the SKIP_FUNCTION_MACROS tag is set to YES then doxygen's preprocessor will
+# remove all references to function-like macros that are alone on a line, have
+# an all uppercase name, and do not end with a semicolon. Such function macros
+# are typically used for boiler-plate code, and will confuse the parser if not
+# removed.
+# The default value is: YES.
+# This tag requires that the tag ENABLE_PREPROCESSING is set to YES.
+
 SKIP_FUNCTION_MACROS   = YES
+
 #---------------------------------------------------------------------------
-# Configuration::additions related to external references   
+# Configuration options related to external references
 #---------------------------------------------------------------------------
-TAGFILES               = 
-GENERATE_TAGFILE       =  "@builddir@/doc/html/icudocs.tag"
+
+# The TAGFILES tag can be used to specify one or more tag files. For each tag
+# file the location of the external documentation should be added. The format of
+# a tag file without this location is as follows:
+# TAGFILES = file1 file2 ...
+# Adding location for the tag files is done as follows:
+# TAGFILES = file1=loc1 "file2 = loc2" ...
+# where loc1 and loc2 can be relative or absolute paths or URLs. See the
+# section "Linking to external documentation" for more information about the use
+# of tag files.
+# Note: Each tag file must have a unique name (where the name does NOT include
+# the path). If a tag file is not located in the directory in which doxygen is
+# run, you must also specify the path to the tagfile here.
+
+TAGFILES               =
+
+# When a file name is specified after GENERATE_TAGFILE, doxygen will create a
+# tag file that is based on the input files it reads. See section "Linking to
+# external documentation" for more information about the usage of tag files.
+
+GENERATE_TAGFILE       = "@builddir@/doc/html/icudocs.tag"
+
+# If the ALLEXTERNALS tag is set to YES, all external class will be listed in
+# the class index. If set to NO, only the inherited external classes will be
+# listed.
+# The default value is: NO.
+
 ALLEXTERNALS           = NO
+
+# If the EXTERNAL_GROUPS tag is set to YES, all external groups will be listed
+# in the modules index. If set to NO, only the current project's groups will be
+# listed.
+# The default value is: YES.
+
 EXTERNAL_GROUPS        = YES
+
+# If the EXTERNAL_PAGES tag is set to YES, all external pages will be listed in
+# the related pages index. If set to NO, only the current project's pages will
+# be listed.
+# The default value is: YES.
+
+EXTERNAL_PAGES         = YES
+
+# The PERL_PATH should be the absolute path and name of the perl script
+# interpreter (i.e. the result of 'which perl').
+# The default file (with absolute path) is: /usr/bin/perl.
+
 PERL_PATH              = /usr/bin/perl
+
 #---------------------------------------------------------------------------
-# Configuration options related to the dot tool   
+# Configuration options related to the dot tool
 #---------------------------------------------------------------------------
+
+# If the CLASS_DIAGRAMS tag is set to YES, doxygen will generate a class diagram
+# (in HTML and LaTeX) for classes with base or super classes. Setting the tag to
+# NO turns the diagrams off. Note that this option also works with HAVE_DOT
+# disabled, but it is recommended to install and use dot, since it yields more
+# powerful graphs.
+# The default value is: YES.
+
 CLASS_DIAGRAMS         = YES
+
+# You can define message sequence charts within doxygen comments using the \msc
+# command. Doxygen will then run the mscgen tool (see:
+# http://www.mcternan.me.uk/mscgen/)) to produce the chart and insert it in the
+# documentation. The MSCGEN_PATH tag allows you to specify the directory where
+# the mscgen tool resides. If left empty the tool is assumed to be found in the
+# default search path.
+
+MSCGEN_PATH            =
+
+# You can include diagrams made with dia in doxygen documentation. Doxygen will
+# then run dia to produce the diagram and insert it in the documentation. The
+# DIA_PATH tag allows you to specify the directory where the dia binary resides.
+# If left empty dia is assumed to be found in the default search path.
+
+DIA_PATH               =
+
+# If set to YES the inheritance and collaboration graphs will hide inheritance
+# and usage relations if the target is undocumented or is not a class.
+# The default value is: YES.
+
 HIDE_UNDOC_RELATIONS   = YES
+
+# If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is
+# available from the path. This tool is part of Graphviz (see:
+# http://www.graphviz.org/), a graph visualization toolkit from AT&T and Lucent
+# Bell Labs. The other options in this section have no effect if this option is
+# set to NO
+# The default value is: YES.
+
 HAVE_DOT               = NO
+
+# The DOT_NUM_THREADS specifies the number of dot invocations doxygen is allowed
+# to run in parallel. When set to 0 doxygen will base this on the number of
+# processors available in the system. You can set it explicitly to a value
+# larger than 0 to get control over the balance between CPU load and processing
+# speed.
+# Minimum value: 0, maximum value: 32, default value: 0.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+DOT_NUM_THREADS        = 0
+
+# When you want a differently looking font in the dot files that doxygen
+# generates you can specify the font name using DOT_FONTNAME. You need to make
+# sure dot is able to find the font, which can be done by putting it in a
+# standard location or by setting the DOTFONTPATH environment variable or by
+# setting DOT_FONTPATH to the directory containing the font.
+# The default value is: Helvetica.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+DOT_FONTNAME           = Helvetica
+
+# The DOT_FONTSIZE tag can be used to set the size (in points) of the font of
+# dot graphs.
+# Minimum value: 4, maximum value: 24, default value: 10.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+DOT_FONTSIZE           = 10
+
+# By default doxygen will tell dot to use the default font as specified with
+# DOT_FONTNAME. If you specify a different font using DOT_FONTNAME you can set
+# the path where dot can find it using this tag.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+DOT_FONTPATH           =
+
+# If the CLASS_GRAPH tag is set to YES then doxygen will generate a graph for
+# each documented class showing the direct and indirect inheritance relations.
+# Setting this tag to YES will force the CLASS_DIAGRAMS tag to NO.
+# The default value is: YES.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
 CLASS_GRAPH            = YES
+
+# If the COLLABORATION_GRAPH tag is set to YES then doxygen will generate a
+# graph for each documented class showing the direct and indirect implementation
+# dependencies (inheritance, containment, and class references variables) of the
+# class with other documented classes.
+# The default value is: YES.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
 COLLABORATION_GRAPH    = YES
+
+# If the GROUP_GRAPHS tag is set to YES then doxygen will generate a graph for
+# groups, showing the direct groups dependencies.
+# The default value is: YES.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+GROUP_GRAPHS           = YES
+
+# If the UML_LOOK tag is set to YES, doxygen will generate inheritance and
+# collaboration diagrams in a style similar to the OMG's Unified Modeling
+# Language.
+# The default value is: NO.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
 UML_LOOK               = NO
+
+# If the UML_LOOK tag is enabled, the fields and methods are shown inside the
+# class node. If there are many fields or methods and many nodes the graph may
+# become too big to be useful. The UML_LIMIT_NUM_FIELDS threshold limits the
+# number of items for each type to make the size more manageable. Set this to 0
+# for no limit. Note that the threshold may be exceeded by 50% before the limit
+# is enforced. So when you set the threshold to 10, up to 15 fields may appear,
+# but if the number exceeds 15, the total amount of fields shown is limited to
+# 10.
+# Minimum value: 0, maximum value: 100, default value: 10.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+UML_LIMIT_NUM_FIELDS   = 10
+
+# If the TEMPLATE_RELATIONS tag is set to YES then the inheritance and
+# collaboration graphs will show the relations between templates and their
+# instances.
+# The default value is: NO.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
 TEMPLATE_RELATIONS     = NO
+
+# If the INCLUDE_GRAPH, ENABLE_PREPROCESSING and SEARCH_INCLUDES tags are set to
+# YES then doxygen will generate a graph for each documented file showing the
+# direct and indirect include dependencies of the file with other documented
+# files.
+# The default value is: YES.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
 INCLUDE_GRAPH          = YES
+
+# If the INCLUDED_BY_GRAPH, ENABLE_PREPROCESSING and SEARCH_INCLUDES tags are
+# set to YES then doxygen will generate a graph for each documented file showing
+# the direct and indirect include dependencies of the file with other documented
+# files.
+# The default value is: YES.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
 INCLUDED_BY_GRAPH      = YES
+
+# If the CALL_GRAPH tag is set to YES then doxygen will generate a call
+# dependency graph for every global function or class method.
+#
+# Note that enabling this option will significantly increase the time of a run.
+# So in most cases it will be better to enable call graphs for selected
+# functions only using the \callgraph command. Disabling a call graph can be
+# accomplished by means of the command \hidecallgraph.
+# The default value is: NO.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
 CALL_GRAPH             = NO
-CALLER_GRAPH           = NO
+
+# If the CALLER_GRAPH tag is set to YES then doxygen will generate a caller
+# dependency graph for every global function or class method.
+#
+# Note that enabling this option will significantly increase the time of a run.
+# So in most cases it will be better to enable caller graphs for selected
+# functions only using the \callergraph command. Disabling a caller graph can be
+# accomplished by means of the command \hidecallergraph.
+# The default value is: NO.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+CALLER_GRAPH           = NO
+
+# If the GRAPHICAL_HIERARCHY tag is set to YES then doxygen will graphical
+# hierarchy of all classes instead of a textual one.
+# The default value is: YES.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
 GRAPHICAL_HIERARCHY    = YES
+
+# If the DIRECTORY_GRAPH tag is set to YES then doxygen will show the
+# dependencies a directory has on other directories in a graphical way. The
+# dependency relations are determined by the #include relations between the
+# files in the directories.
+# The default value is: YES.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+DIRECTORY_GRAPH        = YES
+
+# The DOT_IMAGE_FORMAT tag can be used to set the image format of the images
+# generated by dot. For an explanation of the image formats see the section
+# output formats in the documentation of the dot tool (Graphviz (see:
+# http://www.graphviz.org/)).
+# Note: If you choose svg you need to set HTML_FILE_EXTENSION to xhtml in order
+# to make the SVG files visible in IE 9+ (other browsers do not have this
+# requirement).
+# Possible values are: png, png:cairo, png:cairo:cairo, png:cairo:gd, png:gd,
+# png:gd:gd, jpg, jpg:cairo, jpg:cairo:gd, jpg:gd, jpg:gd:gd, gif, gif:cairo,
+# gif:cairo:gd, gif:gd, gif:gd:gd, svg, png:gd, png:gd:gd, png:cairo,
+# png:cairo:gd, png:cairo:cairo, png:cairo:gdiplus, png:gdiplus and
+# png:gdiplus:gdiplus.
+# The default value is: png.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
 DOT_IMAGE_FORMAT       = png
-DOT_PATH               = 
-#DOT_FONTNAME         = FreeSans
-DOTFILE_DIRS           = 
-MAX_DOT_GRAPH_WIDTH    = 1024
-MAX_DOT_GRAPH_HEIGHT   = 1024
+
+# If DOT_IMAGE_FORMAT is set to svg, then this option can be set to YES to
+# enable generation of interactive SVG images that allow zooming and panning.
+#
+# Note that this requires a modern browser other than Internet Explorer. Tested
+# and working are Firefox, Chrome, Safari, and Opera.
+# Note: For IE 9+ you need to set HTML_FILE_EXTENSION to xhtml in order to make
+# the SVG files visible. Older versions of IE do not have SVG support.
+# The default value is: NO.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+INTERACTIVE_SVG        = NO
+
+# The DOT_PATH tag can be used to specify the path where the dot tool can be
+# found. If left blank, it is assumed the dot tool can be found in the path.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+DOT_PATH               =
+
+# The DOTFILE_DIRS tag can be used to specify one or more directories that
+# contain dot files that are included in the documentation (see the \dotfile
+# command).
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+DOTFILE_DIRS           =
+
+# The MSCFILE_DIRS tag can be used to specify one or more directories that
+# contain msc files that are included in the documentation (see the \mscfile
+# command).
+
+MSCFILE_DIRS           =
+
+# The DIAFILE_DIRS tag can be used to specify one or more directories that
+# contain dia files that are included in the documentation (see the \diafile
+# command).
+
+DIAFILE_DIRS           =
+
+# When using plantuml, the PLANTUML_JAR_PATH tag should be used to specify the
+# path where java can find the plantuml.jar file. If left blank, it is assumed
+# PlantUML is not used or called during a preprocessing step. Doxygen will
+# generate a warning when it encounters a \startuml command in this case and
+# will not generate output for the diagram.
+
+PLANTUML_JAR_PATH      =
+
+# When using plantuml, the PLANTUML_CFG_FILE tag can be used to specify a
+# configuration file for plantuml.
+
+PLANTUML_CFG_FILE      =
+
+# When using plantuml, the specified paths are searched for files specified by
+# the !include statement in a plantuml block.
+
+PLANTUML_INCLUDE_PATH  =
+
+# The DOT_GRAPH_MAX_NODES tag can be used to set the maximum number of nodes
+# that will be shown in the graph. If the number of nodes in a graph becomes
+# larger than this value, doxygen will truncate the graph, which is visualized
+# by representing a node as a red box. Note that doxygen if the number of direct
+# children of the root node in a graph is already larger than
+# DOT_GRAPH_MAX_NODES then the graph will not be shown at all. Also note that
+# the size of a graph can be further restricted by MAX_DOT_GRAPH_DEPTH.
+# Minimum value: 0, maximum value: 10000, default value: 50.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+DOT_GRAPH_MAX_NODES    = 50
+
+# The MAX_DOT_GRAPH_DEPTH tag can be used to set the maximum depth of the graphs
+# generated by dot. A depth value of 3 means that only nodes reachable from the
+# root by following a path via at most 3 edges will be shown. Nodes that lay
+# further from the root node will be omitted. Note that setting this option to 1
+# or 2 may greatly reduce the computation time needed for large code bases. Also
+# note that the size of a graph can be further restricted by
+# DOT_GRAPH_MAX_NODES. Using a depth of 0 means no depth restriction.
+# Minimum value: 0, maximum value: 1000, default value: 0.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
 MAX_DOT_GRAPH_DEPTH    = 0
+
+# Set the DOT_TRANSPARENT tag to YES to generate images with a transparent
+# background. This is disabled by default, because dot on Windows does not seem
+# to support this out of the box.
+#
+# Warning: Depending on the platform used, enabling this option may lead to
+# badly anti-aliased labels on the edges of a graph (i.e. they become hard to
+# read).
+# The default value is: NO.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+DOT_TRANSPARENT        = NO
+
+# Set the DOT_MULTI_TARGETS tag to YES to allow dot to generate multiple output
+# files in one run (i.e. multiple -o and -T options on the command line). This
+# makes dot run faster, but since only newer versions of dot (>1.8.10) support
+# this, this feature is disabled by default.
+# The default value is: NO.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+DOT_MULTI_TARGETS      = NO
+
+# If the GENERATE_LEGEND tag is set to YES doxygen will generate a legend page
+# explaining the meaning of the various boxes and arrows in the dot generated
+# graphs.
+# The default value is: YES.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
 GENERATE_LEGEND        = YES
+
+# If the DOT_CLEANUP tag is set to YES, doxygen will remove the intermediate dot
+# files that are used to generate the various graphs.
+# The default value is: YES.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
 DOT_CLEANUP            = YES
-#---------------------------------------------------------------------------
-# Configuration::additions related to the search engine   
-#---------------------------------------------------------------------------
-SEARCHENGINE           = NO
index c1db15bf7b177d4532b813467982d9ee7af7b038..be9435ba95ffb607f36fd286f893456468c9d9e8 100644 (file)
@@ -48,6 +48,8 @@ ALL_PKGCONFIG_SUFFIX=uc i18n
 DOXYGEN = @DOXYGEN@
 DOCZIP = icu-docs.zip
 
+INSTALL_ICU_CONFIG = @INSTALL_ICU_CONFIG@
+
 ## Files to remove for 'make clean'
 CLEANFILES = *~
 
@@ -64,7 +66,9 @@ SUBDIRS =  stubdata common i18n $(LAYOUTEX) $(ICUIO) $(TOOLS) $(DATASUBDIR) $(EX
 
 SECTION = 1
 
+ifeq ($(INSTALL_ICU_CONFIG),true)
 MANX_FILES = config/icu-config.$(SECTION)
+endif
 
 ALL_MAN_FILES = $(MANX_FILES)
 
@@ -187,13 +191,15 @@ install-icu: $(INSTALLED_BUILT_FILES)
        @$(MKINSTALLDIRS) $(DESTDIR)$(libdir)/pkgconfig
        $(INSTALL_DATA) $(ALL_PKGCONFIG_FILES) $(DESTDIR)$(libdir)/pkgconfig/
        $(INSTALL_DATA) $(top_srcdir)/../LICENSE $(DESTDIR)$(pkgdatadir)/LICENSE
+ifeq ($(INSTALL_ICU_CONFIG),true)
        $(INSTALL_SCRIPT) $(top_builddir)/config/icu-config $(DESTDIR)$(bindir)/icu-config
+endif
        $(INSTALL_DATA) $(top_builddir)/config/Makefile.inc $(DESTDIR)$(pkglibdir)/Makefile.inc
        $(INSTALL_DATA) $(top_builddir)/config/pkgdata.inc $(DESTDIR)$(pkglibdir)/pkgdata.inc
 #      @echo icuinfo.xml is built after make check.
 #      -$(INSTALL_DATA) $(top_builddir)/config/icuinfo.xml $(DESTDIR)$(pkglibdir)/icuinfo.xml
        cd $(DESTDIR)$(pkglibdir)/..; \
-           $(RM) current && ln -s $(VERSION) current; \
+           $(RMV) current && ln -s $(VERSION) current; \
            $(RM) Makefile.inc && ln -s current/Makefile.inc Makefile.inc; \
            $(RM) pkgdata.inc && ln -s current/pkgdata.inc pkgdata.inc
 
@@ -350,7 +356,9 @@ config.status: $(srcdir)/configure $(srcdir)/common/unicode/uvernum.h
 
 install-manx: $(MANX_FILES)
        $(MKINSTALLDIRS) $(DESTDIR)$(mandir)/man$(SECTION)
+ifneq ($(MANX_FILES),)
        $(INSTALL_DATA) $? $(DESTDIR)$(mandir)/man$(SECTION)
+endif
 
 config/%.$(SECTION): $(srcdir)/config/%.$(SECTION).in
        cd $(top_builddir) \
diff --git a/source/allinone/Build.Windows.Library.ProjectConfiguration.props b/source/allinone/Build.Windows.Library.ProjectConfiguration.props
new file mode 100644 (file)
index 0000000..07e3c1b
--- /dev/null
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2018 and later: Unicode, Inc. and others. License & terms of use: http://www.unicode.org/copyright.html -->
+<Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <!-- This file is used to set configurations that are common to *all* ICU library code (common, i18n, and io). -->
+  <!-- Note: These options are for *all* configurations for *all* library projects.  -->
+  <ItemDefinitionGroup>
+    <ClCompile>
+      <!-- ICU does not use exceptions in library code. -->
+      <PreprocessorDefinitions>
+        _HAS_EXCEPTIONS=0;
+        %(PreprocessorDefinitions)
+      </PreprocessorDefinitions>
+    </ClCompile>
+  </ItemDefinitionGroup>
+  <PropertyGroup>
+    <!-- Disable MSBuild warning about Linker OutputFile. -->
+    <!-- Ex: MSBuild complains that the common project creates "icuuc62.dll" rather than "common.dll". However, this is intentional. -->
+    <MSBuildWarningsAsMessages>MSB8012</MSBuildWarningsAsMessages>
+  </PropertyGroup>
+</Project>
index 0a163849d40e3c05bd85d03f0c053373ca418258..0e74cb4ff451b8dcaff57b96e75def93b4b8b358 100644 (file)
-<?xml version="1.0" encoding="utf-8"?>\r
-<!-- Copyright (C) 2016 and later: Unicode, Inc. and others. License & terms of use: http://www.unicode.org/copyright.html -->\r
-<Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">\r
-  <!-- This file is used to set default configuration options for all non-UWP Visual Studio projects. -->\r
-  <!-- These are the default project configurations for building. -->\r
-  <ItemGroup Label="ProjectConfigurations">\r
-    <ProjectConfiguration Include="Debug|Win32">\r
-      <Configuration>Debug</Configuration>\r
-      <Platform>Win32</Platform>\r
-    </ProjectConfiguration>\r
-    <ProjectConfiguration Include="Debug|x64">\r
-      <Configuration>Debug</Configuration>\r
-      <Platform>x64</Platform>\r
-    </ProjectConfiguration>\r
-    <ProjectConfiguration Include="Release|Win32">\r
-      <Configuration>Release</Configuration>\r
-      <Platform>Win32</Platform>\r
-    </ProjectConfiguration>\r
-    <ProjectConfiguration Include="Release|x64">\r
-      <Configuration>Release</Configuration>\r
-      <Platform>x64</Platform>\r
-    </ProjectConfiguration>\r
-  </ItemGroup>\r
-  <PropertyGroup>\r
-    <!-- This is the version of the MSVC tool-set to use. -->\r
-    <!-- v140 is the Visual Studio 2015 toolset. -->\r
-    <!-- v141 is the Visual Studio 2017 toolset. -->\r
-    <PlatformToolset>v141</PlatformToolset>\r
-  </PropertyGroup>\r
-  <PropertyGroup>\r
-    <!-- This is the default SDK target. -->\r
-    <!-- Note that the Windows 8.1 SDK is backwards compatible down-level to Windows 7, so\r
-         setting this to 8.1 does not actually imply targeting Windows 8.1. -->\r
-    <WindowsTargetPlatformVersion>8.1</WindowsTargetPlatformVersion>\r
-  </PropertyGroup>\r
-  <PropertyGroup>\r
-    <!-- We need to explicitly set the target version to Windows 7. -->\r
-    <Win32_WinNTVersion>0x0601</Win32_WinNTVersion>\r
-  </PropertyGroup>\r
-  <!-- Options that are common to *all* configurations for *all* projects. -->\r
-  <ItemDefinitionGroup>\r
-    <Midl>\r
-      <MkTypLibCompatible>true</MkTypLibCompatible>\r
-      <SuppressStartupBanner>true</SuppressStartupBanner>\r
-    </Midl>\r
-    <ClCompile>\r
-      <!-- Note: These preprocessor defines are for *all* configurations for *all* projects.  -->\r
-      <!-- Note: See ticket #5750 for the macro '_CRT_SECURE_NO_DEPRECATE'. -->\r
-      <PreprocessorDefinitions>\r
-        WINVER=$(Win32_WinNTVersion);\r
-        _WIN32_WINNT=$(Win32_WinNTVersion);\r
-        _CRT_SECURE_NO_DEPRECATE;\r
-        %(PreprocessorDefinitions)\r
-      </PreprocessorDefinitions>\r
-      <!-- We always want to treat wchar_t as a "real" C++ type, instead of a typedef. -->\r
-      <TreatWChar_tAsBuiltInType>true</TreatWChar_tAsBuiltInType>\r
-      <SuppressStartupBanner>true</SuppressStartupBanner>\r
-      <!-- Set the source encoding and runtime encoding to UTF-8 by default. -->\r
-      <AdditionalOptions>/utf-8 %(AdditionalOptions)</AdditionalOptions>\r
-      <!-- Enable parallel compilation for faster builds. -->\r
-      <MultiProcessorCompilation>true</MultiProcessorCompilation>\r
-    </ClCompile>\r
-    <ResourceCompile>\r
-      <Culture>0x0409</Culture>\r
-    </ResourceCompile>\r
-    <Link>\r
-      <SuppressStartupBanner>true</SuppressStartupBanner>\r
-    </Link>\r
-  </ItemDefinitionGroup>\r
-  <!-- Options that are common to all 'Release' configurations for *all* projects. -->\r
-  <ItemDefinitionGroup Condition="'$(Configuration)'=='Release'">\r
-    <Midl>\r
-      <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
-    </Midl>\r
-    <ClCompile>\r
-      <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
-      <StringPooling>true</StringPooling>\r
-    </ClCompile>\r
-    <ResourceCompile>\r
-      <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
-    </ResourceCompile>\r
-    <Link>\r
-      <EnableCOMDATFolding>true</EnableCOMDATFolding>\r
-    </Link>\r
-  </ItemDefinitionGroup>\r
-  <!-- Options that are common to all 'Debug' configurations for *all* projects. -->\r
-  <ItemDefinitionGroup Condition="'$(Configuration)'=='Debug'">\r
-    <Midl>\r
-      <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
-    </Midl>\r
-    <ClCompile>\r
-      <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
-      <Optimization>Disabled</Optimization>\r
-      <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>\r
-      <BufferSecurityCheck>true</BufferSecurityCheck>\r
-    </ClCompile>\r
-    <ResourceCompile>\r
-      <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
-    </ResourceCompile>\r
-    <Link>\r
-      <GenerateDebugInformation>true</GenerateDebugInformation>\r
-      <ImageHasSafeExceptionHandlers>false</ImageHasSafeExceptionHandlers>\r
-    </Link>\r
-  </ItemDefinitionGroup>\r
-  <!-- Options that are common to all 32-bit configurations for *all* projects. -->\r
-  <ItemDefinitionGroup Condition="'$(Platform)'=='Win32'">\r
-    <Midl>\r
-      <TargetEnvironment>Win32</TargetEnvironment>\r
-    </Midl>\r
-    <ClCompile>\r
-      <PreprocessorDefinitions>WIN32;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
-    </ClCompile>\r
-    <Link>\r
-      <TargetMachine>MachineX86</TargetMachine>\r
-    </Link>\r
-  </ItemDefinitionGroup>\r
-  <!-- Options that are common to all 64-bit configurations for *all* projects. -->\r
-  <ItemDefinitionGroup Condition="'$(Platform)'=='x64'">\r
-    <Midl>\r
-      <TargetEnvironment>X64</TargetEnvironment>\r
-    </Midl>\r
-    <ClCompile>\r
-      <PreprocessorDefinitions>WIN64;WIN32;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
-    </ClCompile>\r
-    <Link>\r
-      <TargetMachine>MachineX64</TargetMachine>\r
-    </Link>\r
-  </ItemDefinitionGroup>\r
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2016 and later: Unicode, Inc. and others. License & terms of use: http://www.unicode.org/copyright.html -->
+<Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <!-- This file is used to set default configuration options for all non-UWP Visual Studio projects. -->
+  <!-- These are the default project configurations for building. -->
+  <ItemGroup Label="ProjectConfigurations">
+    <ProjectConfiguration Include="Debug|Win32">
+      <Configuration>Debug</Configuration>
+      <Platform>Win32</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Debug|x64">
+      <Configuration>Debug</Configuration>
+      <Platform>x64</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Release|Win32">
+      <Configuration>Release</Configuration>
+      <Platform>Win32</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Release|x64">
+      <Configuration>Release</Configuration>
+      <Platform>x64</Platform>
+    </ProjectConfiguration>
+  </ItemGroup>
+  <PropertyGroup>
+    <!-- This is the version of the MSVC tool-set to use. -->
+    <!-- v140 is the Visual Studio 2015 toolset. -->
+    <!-- v141 is the Visual Studio 2017 toolset. -->
+    <PlatformToolset>v141</PlatformToolset>
+  </PropertyGroup>
+  <PropertyGroup>
+    <!-- This is the default SDK target. -->
+    <!-- Note that the Windows 8.1 SDK is backwards compatible down-level to Windows 7, so
+         setting this to 8.1 does not actually imply targeting Windows 8.1. -->
+    <WindowsTargetPlatformVersion>8.1</WindowsTargetPlatformVersion>
+  </PropertyGroup>
+  <PropertyGroup>
+    <!-- We need to explicitly set the target version to Windows 7. -->
+    <Win32_WinNTVersion>0x0601</Win32_WinNTVersion>
+  </PropertyGroup>
+  <!-- Options that are common to *all* configurations for *all* projects. -->
+  <ItemDefinitionGroup>
+    <Midl>
+      <MkTypLibCompatible>true</MkTypLibCompatible>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+    </Midl>
+    <ClCompile>
+      <!-- Note: These preprocessor defines are for *all* configurations for *all* projects.  -->
+      <!-- Note: See ticket #5750 for the macro '_CRT_SECURE_NO_DEPRECATE'. -->
+      <PreprocessorDefinitions>
+        WINVER=$(Win32_WinNTVersion);
+        _WIN32_WINNT=$(Win32_WinNTVersion);
+        _CRT_SECURE_NO_DEPRECATE;
+        %(PreprocessorDefinitions)
+      </PreprocessorDefinitions>
+      <!-- We always want to treat wchar_t as a "real" C++ type, instead of a typedef. -->
+      <TreatWChar_tAsBuiltInType>true</TreatWChar_tAsBuiltInType>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+      <!-- Set the source encoding and runtime encoding to UTF-8 by default. -->
+      <AdditionalOptions>/utf-8 %(AdditionalOptions)</AdditionalOptions>
+      <!-- Enable parallel compilation for faster builds. -->
+      <MultiProcessorCompilation>true</MultiProcessorCompilation>
+    </ClCompile>
+    <ResourceCompile>
+      <Culture>0x0409</Culture>
+    </ResourceCompile>
+    <Link>
+      <SuppressStartupBanner>true</SuppressStartupBanner>
+    </Link>
+  </ItemDefinitionGroup>
+  <!-- Options that are common to all 'Release' configurations for *all* projects. -->
+  <ItemDefinitionGroup Condition="'$(Configuration)'=='Release'">
+    <Midl>
+      <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+    </Midl>
+    <ClCompile>
+      <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <StringPooling>true</StringPooling>
+    </ClCompile>
+    <ResourceCompile>
+      <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+    </ResourceCompile>
+    <Link>
+      <EnableCOMDATFolding>true</EnableCOMDATFolding>
+    </Link>
+  </ItemDefinitionGroup>
+  <!-- Options that are common to all 'Debug' configurations for *all* projects. -->
+  <ItemDefinitionGroup Condition="'$(Configuration)'=='Debug'">
+    <Midl>
+      <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+    </Midl>
+    <ClCompile>
+      <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <Optimization>Disabled</Optimization>
+      <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+      <BufferSecurityCheck>true</BufferSecurityCheck>
+    </ClCompile>
+    <ResourceCompile>
+      <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+    </ResourceCompile>
+    <Link>
+      <GenerateDebugInformation>true</GenerateDebugInformation>
+      <ImageHasSafeExceptionHandlers>false</ImageHasSafeExceptionHandlers>
+    </Link>
+  </ItemDefinitionGroup>
+  <!-- Options that are common to all 32-bit configurations for *all* projects. -->
+  <ItemDefinitionGroup Condition="'$(Platform)'=='Win32'">
+    <Midl>
+      <TargetEnvironment>Win32</TargetEnvironment>
+    </Midl>
+    <ClCompile>
+      <PreprocessorDefinitions>WIN32;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+    </ClCompile>
+    <Link>
+      <TargetMachine>MachineX86</TargetMachine>
+    </Link>
+  </ItemDefinitionGroup>
+  <!-- Options that are common to all 64-bit configurations for *all* projects. -->
+  <ItemDefinitionGroup Condition="'$(Platform)'=='x64'">
+    <Midl>
+      <TargetEnvironment>X64</TargetEnvironment>
+    </Midl>
+    <ClCompile>
+      <PreprocessorDefinitions>WIN64;WIN32;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+    </ClCompile>
+    <Link>
+      <TargetMachine>MachineX64</TargetMachine>
+    </Link>
+  </ItemDefinitionGroup>
 </Project>
\ No newline at end of file
index 4b51960dfa78d5fe3bdb7ad48a783b24fc29af3d..5988c73be38fd91970800f60ba5a9b556c6eb7a1 100644 (file)
@@ -1,41 +1,41 @@
-<?xml version="1.0" encoding="utf-8"?>\r
-<!-- Copyright (C) 2016 and later: Unicode, Inc. and others. License & terms of use: http://www.unicode.org/copyright.html -->\r
-<Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">\r
-  <!-- This file is used to set common configuration options for all *_uwp projects. -->\r
-  <PropertyGroup>\r
-    <!-- If not already set, use this version of the Win10 SDK -->\r
-    <WindowsTargetPlatformVersion>10.0.16299.0</WindowsTargetPlatformVersion>\r
-    <!-- If not already set, set the minimum Win10 SDK version to TH1/RTM -->\r
-    <WindowsTargetPlatformMinVersion>10.0.10240.0</WindowsTargetPlatformMinVersion>\r
-    \r
-    <MinimumVisualStudioVersion>14.0</MinimumVisualStudioVersion>\r
-    <AppContainerApplication>true</AppContainerApplication>\r
-    <ApplicationType>Windows Store</ApplicationType>\r
-    <ApplicationTypeRevision>10.0</ApplicationTypeRevision>\r
-  </PropertyGroup>\r
-  <PropertyGroup>\r
-    <!-- This is the version of the MSVC tool-set to use. -->\r
-    <!-- v141 is the Visual Studio 2017 toolset. -->\r
-    <PlatformToolset>v141</PlatformToolset>\r
-  </PropertyGroup>\r
-  <ItemDefinitionGroup>\r
-    <Midl>\r
-      <PreprocessorDefinitions>\r
-        %(PreprocessorDefinitions)\r
-        U_PLATFORM_HAS_WINUWP_API=1;\r
-      </PreprocessorDefinitions>\r
-    </Midl>\r
-    <ClCompile>\r
-      <PreprocessorDefinitions>\r
-        %(PreprocessorDefinitions);\r
-        U_PLATFORM_HAS_WINUWP_API=1;\r
-      </PreprocessorDefinitions>\r
-    </ClCompile>\r
-    <ResourceCompile>\r
-      <PreprocessorDefinitions>\r
-        %(PreprocessorDefinitions)\r
-        U_PLATFORM_HAS_WINUWP_API=1;\r
-      </PreprocessorDefinitions>\r
-    </ResourceCompile>\r
-  </ItemDefinitionGroup>\r
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2016 and later: Unicode, Inc. and others. License & terms of use: http://www.unicode.org/copyright.html -->
+<Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <!-- This file is used to set common configuration options for all *_uwp projects. -->
+  <PropertyGroup>
+    <!-- If not already set, use this version of the Win10 SDK -->
+    <WindowsTargetPlatformVersion>10.0.16299.0</WindowsTargetPlatformVersion>
+    <!-- If not already set, set the minimum Win10 SDK version to TH1/RTM -->
+    <WindowsTargetPlatformMinVersion>10.0.10240.0</WindowsTargetPlatformMinVersion>
+    
+    <MinimumVisualStudioVersion>14.0</MinimumVisualStudioVersion>
+    <AppContainerApplication>true</AppContainerApplication>
+    <ApplicationType>Windows Store</ApplicationType>
+    <ApplicationTypeRevision>10.0</ApplicationTypeRevision>
+  </PropertyGroup>
+  <PropertyGroup>
+    <!-- This is the version of the MSVC tool-set to use. -->
+    <!-- v141 is the Visual Studio 2017 toolset. -->
+    <PlatformToolset>v141</PlatformToolset>
+  </PropertyGroup>
+  <ItemDefinitionGroup>
+    <Midl>
+      <PreprocessorDefinitions>
+        %(PreprocessorDefinitions)
+        U_PLATFORM_HAS_WINUWP_API=1;
+      </PreprocessorDefinitions>
+    </Midl>
+    <ClCompile>
+      <PreprocessorDefinitions>
+        %(PreprocessorDefinitions);
+        U_PLATFORM_HAS_WINUWP_API=1;
+      </PreprocessorDefinitions>
+    </ClCompile>
+    <ResourceCompile>
+      <PreprocessorDefinitions>
+        %(PreprocessorDefinitions)
+        U_PLATFORM_HAS_WINUWP_API=1;
+      </PreprocessorDefinitions>
+    </ResourceCompile>
+  </ItemDefinitionGroup>
 </Project>
\ No newline at end of file
index b6ece387e628d151a5a0fa90b9eb9d9c8b3377bd..f6374ac29cdffd924658c93ee0ee85a12788424a 100644 (file)
@@ -1,27 +1,27 @@
-<?xml version="1.0" encoding="utf-8"?>\r
-<!-- Copyright (C) 2016 and later: Unicode, Inc. and others. License & terms of use: http://www.unicode.org/copyright.html -->\r
-<!--\r
-  This file is used to copy all of the header files (*.h) from a project's "unicode" folder to a common output folder.\r
--->\r
-<Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">\r
-  <PropertyGroup>\r
-    <!-- This is the location of the common output folder. -->\r
-    <CopyDestionationPath>$(SolutionDir)\..\..\include\unicode</CopyDestionationPath>\r
-    <BuildDependsOn>\r
-      $(BuildDependsOn);\r
-      CopyUnicodeHeaderFiles;\r
-    </BuildDependsOn>\r
-  </PropertyGroup>\r
-  <Target Name="CopyUnicodeHeaderFiles">\r
-    <ItemGroup>\r
-      <!-- Generate a list of all files that end in .h from the 'unicode' folder, relative to the current project. -->\r
-      <OutputFiles Include=".\unicode\**\*.h" />\r
-    </ItemGroup>\r
-    <!-- This message will be logged in the project's build output. -->\r
-    <Message Text="Copying @(OutputFiles->Count()) header files to $(CopyDestionationPath). Files copied: @(OutputFiles)" Importance="high"/>\r
-    <!-- Perform the copy. -->\r
-    <Copy SourceFiles="@(OutputFiles)" \r
-          DestinationFolder="$(CopyDestionationPath)\%(RecursiveDir)"\r
-          SkipUnchangedFiles="false"></Copy>\r
-  </Target>\r
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2016 and later: Unicode, Inc. and others. License & terms of use: http://www.unicode.org/copyright.html -->
+<!--
+  This file is used to copy all of the header files (*.h) from a project's "unicode" folder to a common output folder.
+-->
+<Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <PropertyGroup>
+    <!-- This is the location of the common output folder. -->
+    <CopyDestionationPath>$(SolutionDir)\..\..\include\unicode</CopyDestionationPath>
+    <BuildDependsOn>
+      $(BuildDependsOn);
+      CopyUnicodeHeaderFiles;
+    </BuildDependsOn>
+  </PropertyGroup>
+  <Target Name="CopyUnicodeHeaderFiles">
+    <ItemGroup>
+      <!-- Generate a list of all files that end in .h from the 'unicode' folder, relative to the current project. -->
+      <OutputFiles Include=".\unicode\**\*.h" />
+    </ItemGroup>
+    <!-- This message will be logged in the project's build output. -->
+    <Message Text="Copying @(OutputFiles->Count()) header files to $(CopyDestionationPath). Files copied: @(OutputFiles)" Importance="high"/>
+    <!-- Perform the copy. -->
+    <Copy SourceFiles="@(OutputFiles)" 
+          DestinationFolder="$(CopyDestionationPath)\%(RecursiveDir)"
+          SkipUnchangedFiles="false"></Copy>
+  </Target>
 </Project>
\ No newline at end of file
index 119bc99b4160fa4258255ebab0f510e8f91bc536..9fc56fa03c23c34bf08ef540faad15d9a1b5f8c2 100644 (file)
@@ -52,7 +52,7 @@ set ICUFAILCNT=0
 @echo ==== %THT% =========================================================================
 %ICUINFO_CMD% %ICUINFO_OPTS%
 
-@IF NOT ERRORLEVEL 1 GOTO OK_%THT%
+@IF %ERRORLEVEL% EQU 0 GOTO OK_%THT%
 @set ICUFAILED=%ICUFAILED% %THT%
 @set ICUFAILCNT=1
 :OK_icuinfo
@@ -63,7 +63,7 @@ set ICUFAILCNT=0
 @cd %ICU_ICUDIR%\source\test\intltest
 %INTLTEST_CMD% %INTLTEST_OPTS%
 
-@IF NOT ERRORLEVEL 1 GOTO OK_%THT%
+@IF %ERRORLEVEL% EQU 0 GOTO OK_%THT%
 @set ICUFAILED=%ICUFAILED% %THT%
 @set ICUFAILCNT=1
 :OK_intltest
@@ -74,7 +74,7 @@ set ICUFAILCNT=0
 @cd %ICU_ICUDIR%\source\test\iotest
 %IOTEST_CMD% %IOTEST_OPTS%
 
-@IF NOT ERRORLEVEL 1 GOTO OK_%THT%
+@IF %ERRORLEVEL% EQU 0 GOTO OK_%THT%
 @set ICUFAILED=%ICUFAILED% %THT%
 @set ICUFAILCNT=1
 :OK_IOTEST
@@ -85,7 +85,7 @@ set ICUFAILCNT=0
 @cd %ICU_ICUDIR%\source\test\cintltst
 %CINTLTST_CMD% %CINTLTST_OPTS%
 
-@IF NOT ERRORLEVEL 1 GOTO OK_%THT%
+@IF %ERRORLEVEL% EQU 0 GOTO OK_%THT%
 @set ICUFAILED=%ICUFAILED% %THT%
 @set ICUFAILCNT=1
 :OK_cintltst
@@ -97,7 +97,7 @@ set ICUFAILCNT=0
 @REM  @cd %ICU_ICUDIR%\source\test\letest
 @REM  %LETST_CMD% %LETEST_OPTS%
 
-@REM  @IF NOT ERRORLEVEL 1 GOTO OK_%THT%
+@REM  @IF %ERRORLEVEL% EQU 0 GOTO OK_%THT%
 @REM  @set ICUFAILED=%ICUFAILED% %THT%
 @REM  @set ICUFAILCNT=1
 @REM  :OK_letest
index 391ef28a282e2b456aabc57ffabf21b638e5d971..e10d3a27d3ac800c55dc00854d6b10da8680264f 100644 (file)
@@ -81,7 +81,7 @@ LIBS = $(LIBICUDT) $(DEFAULT_LIBS)
 
 OBJECTS = errorcode.o putil.o umath.o utypes.o uinvchar.o umutex.o ucln_cmn.o \
 uinit.o uobject.o cmemory.o charstr.o cstr.o \
-udata.o ucmndata.o udatamem.o umapfile.o udataswp.o ucol_swp.o utrace.o \
+udata.o ucmndata.o udatamem.o umapfile.o udataswp.o utrie_swap.o ucol_swp.o utrace.o \
 uhash.o uhash_us.o uenum.o ustrenum.o uvector.o ustack.o uvectr32.o uvectr64.o \
 ucnv.o ucnv_bld.o ucnv_cnv.o ucnv_io.o ucnv_cb.o ucnv_err.o ucnvlat1.o \
 ucnv_u7.o ucnv_u8.o ucnv_u16.o ucnv_u32.o ucnvscsu.o ucnvbocu.o \
@@ -100,15 +100,17 @@ utf_impl.o ustring.o ustrcase.o ucasemap.o ucasemap_titlecase_brkiter.o cstring.
 unistr_case_locale.o ustrcase_locale.o unistr_titlecase_brkiter.o ustr_titlecase_brkiter.o \
 normalizer2impl.o normalizer2.o filterednormalizer2.o normlzr.o unorm.o unormcmp.o loadednormalizer2impl.o \
 chariter.o schriter.o uchriter.o uiter.o \
-patternprops.o uchar.o uprops.o ucase.o propname.o ubidi_props.o ubidi.o ubidiwrt.o ubidiln.o ushape.o \
+patternprops.o uchar.o uprops.o ucase.o propname.o ubidi_props.o characterproperties.o \
+ubidi.o ubidiwrt.o ubidiln.o ushape.o \
 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 \
+utrie.o utrie2.o utrie2_builder.o ucptrie.o umutablecptrie.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_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 \
-ulist.o uloc_tag.o icudataver.o icuplug.o listformatter.o ulistformatter.o \
+ulist.o uloc_tag.o icudataver.o icuplug.o \
 sharedobject.o simpleformatter.o unifiedcache.o uloc_keytype.o \
 ubiditransform.o \
 pluralmap.o \
index 35bc80dce359eb90ffcdd968c209b3361c5e5f7f..bc79f5e5a63be1cacf4b142acde01bd39bba633e 100644 (file)
@@ -241,13 +241,13 @@ void BMPSet::overrideIllegal() {
             bmpBlockBits[i]|=bits;
         }
 
-        mask=~(0x10001<<0xd);   // Lead byte 0xED.
+        mask= static_cast<uint32_t>(~(0x10001<<0xd));   // Lead byte 0xED.
         bits=1<<0xd;
         for(i=32; i<64; ++i) {  // Second half of 4k block.
             bmpBlockBits[i]=(bmpBlockBits[i]&mask)|bits;
         }
     } else {
-        mask=~(0x10001<<0xd);   // Lead byte 0xED.
+        mask= static_cast<uint32_t>(~(0x10001<<0xd));   // Lead byte 0xED.
         for(i=32; i<64; ++i) {  // Second half of 4k block.
             bmpBlockBits[i]&=mask;
         }
index 6af7ddfd5976382bec00ea23c64fb94107121dfa..c64a845f87538e65ab4f5c67035f1c0f559b8c00 100644 (file)
@@ -11,6 +11,7 @@
 #include "unicode/utf8.h"
 #include "unicode/utf16.h"
 #include "bytesinkutil.h"
+#include "charstr.h"
 #include "cmemory.h"
 #include "uassert.h"
 
@@ -120,4 +121,41 @@ ByteSinkUtil::appendUnchanged(const uint8_t *s, const uint8_t *limit,
     return TRUE;
 }
 
+CharStringByteSink::CharStringByteSink(CharString* dest) : dest_(*dest) {
+}
+
+CharStringByteSink::~CharStringByteSink() = default;
+
+void
+CharStringByteSink::Append(const char* bytes, int32_t n) {
+    UErrorCode status = U_ZERO_ERROR;
+    dest_.append(bytes, n, status);
+    // Any errors are silently ignored.
+}
+
+char*
+CharStringByteSink::GetAppendBuffer(int32_t min_capacity,
+                                    int32_t desired_capacity_hint,
+                                    char* scratch,
+                                    int32_t scratch_capacity,
+                                    int32_t* result_capacity) {
+    if (min_capacity < 1 || scratch_capacity < min_capacity) {
+        *result_capacity = 0;
+        return nullptr;
+    }
+
+    UErrorCode status = U_ZERO_ERROR;
+    char* result = dest_.getAppendBuffer(
+            min_capacity,
+            desired_capacity_hint,
+            *result_capacity,
+            status);
+    if (U_SUCCESS(status)) {
+        return result;
+    }
+
+    *result_capacity = scratch_capacity;
+    return scratch;
+}
+
 U_NAMESPACE_END
index 8287ffea4ca713dfdc489c63cac84bbc18332f89..69e4cbcd26393268582899ab09f292fdebc8005b 100644 (file)
@@ -13,6 +13,7 @@
 U_NAMESPACE_BEGIN
 
 class ByteSink;
+class CharString;
 class Edits;
 
 class U_COMMON_API ByteSinkUtil {
@@ -58,4 +59,25 @@ private:
                                         ByteSink &sink, uint32_t options, Edits *edits);
 };
 
+class CharStringByteSink : public ByteSink {
+public:
+    CharStringByteSink(CharString* dest);
+    ~CharStringByteSink() override;
+
+    CharStringByteSink() = delete;
+    CharStringByteSink(const CharStringByteSink&) = delete;
+    CharStringByteSink& operator=(const CharStringByteSink&) = delete;
+
+    void Append(const char* bytes, int32_t n) override;
+
+    char* GetAppendBuffer(int32_t min_capacity,
+                          int32_t desired_capacity_hint,
+                          char* scratch,
+                          int32_t scratch_capacity,
+                          int32_t* result_capacity) override;
+
+private:
+    CharString& dest_;
+};
+
 U_NAMESPACE_END
index 581505e0092b15525bc1966b9cb3a039912e4b10..ec1ab7d8f5080e5af15799fa8636d3ab98b0ec73 100644 (file)
@@ -339,7 +339,8 @@ BytesTrieBuilder::indexOfElementWithNextUnit(int32_t i, int32_t byteIndex, UChar
 
 BytesTrieBuilder::BTLinearMatchNode::BTLinearMatchNode(const char *bytes, int32_t len, Node *nextNode)
         : LinearMatchNode(len, nextNode), s(bytes) {
-    hash=hash*37+ustr_hashCharsN(bytes, len);
+    hash=static_cast<int32_t>(
+        static_cast<uint32_t>(hash)*37u + static_cast<uint32_t>(ustr_hashCharsN(bytes, len)));
 }
 
 UBool
diff --git a/source/common/characterproperties.cpp b/source/common/characterproperties.cpp
new file mode 100644 (file)
index 0000000..3aff85b
--- /dev/null
@@ -0,0 +1,336 @@
+// © 2018 and later: Unicode, Inc. and others.
+// License & terms of use: http://www.unicode.org/copyright.html
+
+// characterproperties.cpp
+// created: 2018sep03 Markus W. Scherer
+
+#include "unicode/utypes.h"
+#include "unicode/localpointer.h"
+#include "unicode/uchar.h"
+#include "unicode/ucpmap.h"
+#include "unicode/ucptrie.h"
+#include "unicode/umutablecptrie.h"
+#include "unicode/uniset.h"
+#include "unicode/uscript.h"
+#include "unicode/uset.h"
+#include "cmemory.h"
+#include "mutex.h"
+#include "normalizer2impl.h"
+#include "uassert.h"
+#include "ubidi_props.h"
+#include "ucase.h"
+#include "ucln_cmn.h"
+#include "umutex.h"
+#include "uprops.h"
+
+using icu::UInitOnce;
+using icu::UnicodeSet;
+
+namespace {
+
+UBool U_CALLCONV characterproperties_cleanup();
+
+struct Inclusion {
+    UnicodeSet  *fSet;
+    UInitOnce    fInitOnce;
+};
+Inclusion gInclusions[UPROPS_SRC_COUNT]; // cached getInclusions()
+
+UnicodeSet *sets[UCHAR_BINARY_LIMIT] = {};
+
+UCPMap *maps[UCHAR_INT_LIMIT - UCHAR_INT_START] = {};
+
+UMutex cpMutex = U_MUTEX_INITIALIZER;
+
+//----------------------------------------------------------------
+// Inclusions list
+//----------------------------------------------------------------
+
+// USetAdder implementation
+// Does not use uset.h to reduce code dependencies
+void U_CALLCONV
+_set_add(USet *set, UChar32 c) {
+    ((UnicodeSet *)set)->add(c);
+}
+
+void U_CALLCONV
+_set_addRange(USet *set, UChar32 start, UChar32 end) {
+    ((UnicodeSet *)set)->add(start, end);
+}
+
+void U_CALLCONV
+_set_addString(USet *set, const UChar *str, int32_t length) {
+    ((UnicodeSet *)set)->add(icu::UnicodeString((UBool)(length<0), str, length));
+}
+
+UBool U_CALLCONV characterproperties_cleanup() {
+    for (Inclusion &in: gInclusions) {
+        delete in.fSet;
+        in.fSet = nullptr;
+        in.fInitOnce.reset();
+    }
+    for (int32_t i = 0; i < UPRV_LENGTHOF(sets); ++i) {
+        delete sets[i];
+        sets[i] = nullptr;
+    }
+    for (int32_t i = 0; i < UPRV_LENGTHOF(maps); ++i) {
+        ucptrie_close(reinterpret_cast<UCPTrie *>(maps[i]));
+        maps[i] = nullptr;
+    }
+    return TRUE;
+}
+
+}  // namespace
+
+U_NAMESPACE_BEGIN
+
+/*
+Reduce excessive reallocation, and make it easier to detect initialization problems.
+Usually you don't see smaller sets than this for Unicode 5.0.
+*/
+constexpr int32_t DEFAULT_INCLUSION_CAPACITY = 3072;
+
+void U_CALLCONV CharacterProperties::initInclusion(UPropertySource src, UErrorCode &errorCode) {
+    // This function is invoked only via umtx_initOnce().
+    // This function is a friend of class UnicodeSet.
+
+    U_ASSERT(0 <= src && src < UPROPS_SRC_COUNT);
+    if (src == UPROPS_SRC_NONE) {
+        errorCode = U_INTERNAL_PROGRAM_ERROR;
+        return;
+    }
+    UnicodeSet * &incl = gInclusions[src].fSet;
+    U_ASSERT(incl == nullptr);
+
+    incl = new UnicodeSet();
+    if (incl == nullptr) {
+        errorCode = U_MEMORY_ALLOCATION_ERROR;
+        return;
+    }
+    USetAdder sa = {
+        (USet *)incl,
+        _set_add,
+        _set_addRange,
+        _set_addString,
+        nullptr, // don't need remove()
+        nullptr // don't need removeRange()
+    };
+
+    incl->ensureCapacity(DEFAULT_INCLUSION_CAPACITY, errorCode);
+    switch(src) {
+    case UPROPS_SRC_CHAR:
+        uchar_addPropertyStarts(&sa, &errorCode);
+        break;
+    case UPROPS_SRC_PROPSVEC:
+        upropsvec_addPropertyStarts(&sa, &errorCode);
+        break;
+    case UPROPS_SRC_CHAR_AND_PROPSVEC:
+        uchar_addPropertyStarts(&sa, &errorCode);
+        upropsvec_addPropertyStarts(&sa, &errorCode);
+        break;
+#if !UCONFIG_NO_NORMALIZATION
+    case UPROPS_SRC_CASE_AND_NORM: {
+        const Normalizer2Impl *impl=Normalizer2Factory::getNFCImpl(errorCode);
+        if(U_SUCCESS(errorCode)) {
+            impl->addPropertyStarts(&sa, errorCode);
+        }
+        ucase_addPropertyStarts(&sa, &errorCode);
+        break;
+    }
+    case UPROPS_SRC_NFC: {
+        const Normalizer2Impl *impl=Normalizer2Factory::getNFCImpl(errorCode);
+        if(U_SUCCESS(errorCode)) {
+            impl->addPropertyStarts(&sa, errorCode);
+        }
+        break;
+    }
+    case UPROPS_SRC_NFKC: {
+        const Normalizer2Impl *impl=Normalizer2Factory::getNFKCImpl(errorCode);
+        if(U_SUCCESS(errorCode)) {
+            impl->addPropertyStarts(&sa, errorCode);
+        }
+        break;
+    }
+    case UPROPS_SRC_NFKC_CF: {
+        const Normalizer2Impl *impl=Normalizer2Factory::getNFKC_CFImpl(errorCode);
+        if(U_SUCCESS(errorCode)) {
+            impl->addPropertyStarts(&sa, errorCode);
+        }
+        break;
+    }
+    case UPROPS_SRC_NFC_CANON_ITER: {
+        const Normalizer2Impl *impl=Normalizer2Factory::getNFCImpl(errorCode);
+        if(U_SUCCESS(errorCode)) {
+            impl->addCanonIterPropertyStarts(&sa, errorCode);
+        }
+        break;
+    }
+#endif
+    case UPROPS_SRC_CASE:
+        ucase_addPropertyStarts(&sa, &errorCode);
+        break;
+    case UPROPS_SRC_BIDI:
+        ubidi_addPropertyStarts(&sa, &errorCode);
+        break;
+    case UPROPS_SRC_INPC:
+    case UPROPS_SRC_INSC:
+    case UPROPS_SRC_VO:
+        uprops_addPropertyStarts((UPropertySource)src, &sa, &errorCode);
+        break;
+    default:
+        errorCode = U_INTERNAL_PROGRAM_ERROR;
+        break;
+    }
+
+    if (U_FAILURE(errorCode)) {
+        delete incl;
+        incl = nullptr;
+        return;
+    }
+    // Compact for caching
+    incl->compact();
+    ucln_common_registerCleanup(UCLN_COMMON_CHARACTERPROPERTIES, characterproperties_cleanup);
+}
+
+const UnicodeSet *getInclusionsForSource(UPropertySource src, UErrorCode &errorCode) {
+    if (U_FAILURE(errorCode)) { return nullptr; }
+    if (src < 0 || UPROPS_SRC_COUNT <= src) {
+        errorCode = U_ILLEGAL_ARGUMENT_ERROR;
+        return nullptr;
+    }
+    Inclusion &i = gInclusions[src];
+    umtx_initOnce(i.fInitOnce, &CharacterProperties::initInclusion, src, errorCode);
+    return i.fSet;
+}
+
+const UnicodeSet *CharacterProperties::getInclusionsForProperty(
+        UProperty prop, UErrorCode &errorCode) {
+    if (U_FAILURE(errorCode)) { return nullptr; }
+    UPropertySource src = uprops_getSource(prop);
+    return getInclusionsForSource(src, errorCode);
+}
+
+U_NAMESPACE_END
+
+namespace {
+
+UnicodeSet *makeSet(UProperty property, UErrorCode &errorCode) {
+    if (U_FAILURE(errorCode)) { return nullptr; }
+    icu::LocalPointer<UnicodeSet> set(new UnicodeSet());
+    if (set.isNull()) {
+        errorCode = U_MEMORY_ALLOCATION_ERROR;
+        return nullptr;
+    }
+    const UnicodeSet *inclusions =
+        icu::CharacterProperties::getInclusionsForProperty(property, errorCode);
+    if (U_FAILURE(errorCode)) { return nullptr; }
+    int32_t numRanges = inclusions->getRangeCount();
+    UChar32 startHasProperty = -1;
+
+    for (int32_t i = 0; i < numRanges; ++i) {
+        UChar32 rangeEnd = inclusions->getRangeEnd(i);
+        for (UChar32 c = inclusions->getRangeStart(i); c <= rangeEnd; ++c) {
+            // TODO: Get a UCharacterProperty.BinaryProperty to avoid the property dispatch.
+            if (u_hasBinaryProperty(c, property)) {
+                if (startHasProperty < 0) {
+                    // Transition from false to true.
+                    startHasProperty = c;
+                }
+            } else if (startHasProperty >= 0) {
+                // Transition from true to false.
+                set->add(startHasProperty, c - 1);
+                startHasProperty = -1;
+            }
+        }
+    }
+    if (startHasProperty >= 0) {
+        set->add(startHasProperty, 0x10FFFF);
+    }
+    set->freeze();
+    return set.orphan();
+}
+
+UCPMap *makeMap(UProperty property, UErrorCode &errorCode) {
+    if (U_FAILURE(errorCode)) { return nullptr; }
+    uint32_t nullValue = property == UCHAR_SCRIPT ? USCRIPT_UNKNOWN : 0;
+    icu::LocalUMutableCPTriePointer mutableTrie(
+        umutablecptrie_open(nullValue, nullValue, &errorCode));
+    const UnicodeSet *inclusions =
+        icu::CharacterProperties::getInclusionsForProperty(property, errorCode);
+    if (U_FAILURE(errorCode)) { return nullptr; }
+    int32_t numRanges = inclusions->getRangeCount();
+    UChar32 start = 0;
+    uint32_t value = nullValue;
+
+    for (int32_t i = 0; i < numRanges; ++i) {
+        UChar32 rangeEnd = inclusions->getRangeEnd(i);
+        for (UChar32 c = inclusions->getRangeStart(i); c <= rangeEnd; ++c) {
+            // TODO: Get a UCharacterProperty.IntProperty to avoid the property dispatch.
+            uint32_t nextValue = u_getIntPropertyValue(c, property);
+            if (value != nextValue) {
+                if (value != nullValue) {
+                    umutablecptrie_setRange(mutableTrie.getAlias(), start, c - 1, value, &errorCode);
+                }
+                start = c;
+                value = nextValue;
+            }
+        }
+    }
+    if (value != 0) {
+        umutablecptrie_setRange(mutableTrie.getAlias(), start, 0x10FFFF, value, &errorCode);
+    }
+
+    UCPTrieType type;
+    if (property == UCHAR_BIDI_CLASS || property == UCHAR_GENERAL_CATEGORY) {
+        type = UCPTRIE_TYPE_FAST;
+    } else {
+        type = UCPTRIE_TYPE_SMALL;
+    }
+    UCPTrieValueWidth valueWidth;
+    // TODO: UCharacterProperty.IntProperty
+    int32_t max = u_getIntPropertyMaxValue(property);
+    if (max <= 0xff) {
+        valueWidth = UCPTRIE_VALUE_BITS_8;
+    } else if (max <= 0xffff) {
+        valueWidth = UCPTRIE_VALUE_BITS_16;
+    } else {
+        valueWidth = UCPTRIE_VALUE_BITS_32;
+    }
+    return reinterpret_cast<UCPMap *>(
+        umutablecptrie_buildImmutable(mutableTrie.getAlias(), type, valueWidth, &errorCode));
+}
+
+}  // namespace
+
+U_NAMESPACE_USE
+
+U_CAPI const USet * U_EXPORT2
+u_getBinaryPropertySet(UProperty property, UErrorCode *pErrorCode) {
+    if (U_FAILURE(*pErrorCode)) { return nullptr; }
+    if (property < 0 || UCHAR_BINARY_LIMIT <= property) {
+        *pErrorCode = U_ILLEGAL_ARGUMENT_ERROR;
+        return nullptr;
+    }
+    Mutex m(&cpMutex);
+    UnicodeSet *set = sets[property];
+    if (set == nullptr) {
+        sets[property] = set = makeSet(property, *pErrorCode);
+    }
+    if (U_FAILURE(*pErrorCode)) { return nullptr; }
+    return set->toUSet();
+}
+
+U_CAPI const UCPMap * U_EXPORT2
+u_getIntPropertyMap(UProperty property, UErrorCode *pErrorCode) {
+    if (U_FAILURE(*pErrorCode)) { return nullptr; }
+    if (property < UCHAR_INT_START || UCHAR_INT_LIMIT <= property) {
+        *pErrorCode = U_ILLEGAL_ARGUMENT_ERROR;
+        return nullptr;
+    }
+    Mutex m(&cpMutex);
+    UCPMap *map = maps[property - UCHAR_INT_START];
+    if (map == nullptr) {
+        maps[property - UCHAR_INT_START] = map = makeMap(property, *pErrorCode);
+    }
+    return map;
+}
index 353f1d52542fa250a4e7012da7fadcb4144023d4..852cc539457760546b4dfaf122edff0187e1cc88 100644 (file)
@@ -79,7 +79,7 @@ CharString &CharString::append(const char *s, int32_t sLength, UErrorCode &error
         return *this;
     }
     if(sLength<0) {
-        sLength=uprv_strlen(s);
+        sLength= static_cast<int32_t>(uprv_strlen(s));
     }
     if(sLength>0) {
         if(s==(buffer.getAlias()+len)) {
@@ -126,15 +126,21 @@ char *CharString::getAppendBuffer(int32_t minCapacity,
 }
 
 CharString &CharString::appendInvariantChars(const UnicodeString &s, UErrorCode &errorCode) {
+    return appendInvariantChars(s.getBuffer(), s.length(), errorCode);
+}
+
+CharString &CharString::appendInvariantChars(const UChar* uchars, int32_t ucharsLen, UErrorCode &errorCode) {
     if(U_FAILURE(errorCode)) {
         return *this;
     }
-    if (!uprv_isInvariantUnicodeString(s)) {
+    if (!uprv_isInvariantUString(uchars, ucharsLen)) {
         errorCode = U_INVARIANT_CONVERSION_ERROR;
         return *this;
     }
-    if(ensureCapacity(len+s.length()+1, 0, errorCode)) {
-        len+=s.extract(0, 0x7fffffff, buffer.getAlias()+len, buffer.getCapacity()-len, US_INV);
+    if(ensureCapacity(len+ucharsLen+1, 0, errorCode)) {
+        u_UCharsToChars(uchars, buffer.getAlias()+len, ucharsLen);
+        len += ucharsLen;
+        buffer[len] = 0;
     }
     return *this;
 }
index 86f69c383a0b37a9933185e6c93b14d690314110..1a97e01988f991b869773488a5f9c5cd0734b880 100644 (file)
@@ -123,6 +123,7 @@ public:
                           UErrorCode &errorCode);
 
     CharString &appendInvariantChars(const UnicodeString &s, UErrorCode &errorCode);
+    CharString &appendInvariantChars(const UChar* uchars, int32_t ucharsLen, UErrorCode& errorCode);
 
     /**
      * Appends a filename/path part, e.g., a directory name.
index e3532c759e1e982425ae2bfdc7d2f9de1e8724d2..f1eef4e7611a0c4eea4d62f6effa17e9bfd91545 100644 (file)
@@ -172,7 +172,7 @@ public:
      * @return *this
      */
     LocalMemory<T> &moveFrom(LocalMemory<T> &src) U_NOEXCEPT {
-        delete[] LocalPointerBase<T>::ptr;
+        uprv_free(LocalPointerBase<T>::ptr);
         LocalPointerBase<T>::ptr=src.ptr;
         src.ptr=NULL;
         return *this;
@@ -279,6 +279,10 @@ inline T *LocalMemory<T>::allocateInsteadAndCopy(int32_t newCapacity, int32_t le
  *
  * Unlike LocalMemory and LocalArray, this class never adopts
  * (takes ownership of) another array.
+ *
+ * WARNING: MaybeStackArray only works with primitive (plain-old data) types.
+ * It does NOT know how to call a destructor! If you work with classes with
+ * destructors, consider LocalArray in localpointer.h.
  */
 template<typename T, int32_t stackCapacity>
 class MaybeStackArray {
index 0f501406fc06c4ac8782eb02b66e532f6bd48c28..7df7f15fa42831ac43164af5a006e4dc41cc14bd 100644 (file)
@@ -2,7 +2,8 @@
 <Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
   <!-- The following import will include the 'default' configuration options for VS projects. -->
   <Import Project="..\allinone\Build.Windows.ProjectConfiguration.props" />
-
+  <!-- The following import will include the library configuration options for VS projects. -->
+  <Import Project="..\allinone\Build.Windows.Library.ProjectConfiguration.props" />
   <PropertyGroup Label="Globals">
     <ProjectGuid>{73C0A65B-D1F2-4DE1-B3A6-15DAD2C23F3D}</ProjectGuid>
   </PropertyGroup>
@@ -85,7 +86,7 @@
       <ProgramDataBaseFileName>.\x86\Release/</ProgramDataBaseFileName>
     </ClCompile>
     <Link>
-      <OutputFile>..\..\bin\icuuc62.dll</OutputFile>
+      <OutputFile>..\..\bin\icuuc63.dll</OutputFile>
       <AdditionalLibraryDirectories>.\..\..\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
       <ProgramDatabaseFile>.\..\..\lib\icuuc.pdb</ProgramDatabaseFile>
       <DataExecutionPrevention>
       <DebugInformationFormat>EditAndContinue</DebugInformationFormat>
     </ClCompile>
     <Link>
-      <OutputFile>..\..\bin\icuuc62d.dll</OutputFile>
+      <OutputFile>..\..\bin\icuuc63d.dll</OutputFile>
       <AdditionalLibraryDirectories>.\..\..\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
       <ProgramDatabaseFile>.\..\..\lib\icuucd.pdb</ProgramDatabaseFile>
       <DataExecutionPrevention>
       <ProgramDataBaseFileName>.\x64\Release/</ProgramDataBaseFileName>
     </ClCompile>
     <Link>
-      <OutputFile>..\..\bin64\icuuc62.dll</OutputFile>
+      <OutputFile>..\..\bin64\icuuc63.dll</OutputFile>
       <AdditionalLibraryDirectories>.\..\..\lib64;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
       <ProgramDatabaseFile>.\..\..\lib64\icuuc.pdb</ProgramDatabaseFile>
       <ImportLibrary>..\..\lib64\icuuc.lib</ImportLibrary>
       <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
     </ClCompile>
     <Link>
-      <OutputFile>..\..\bin64\icuuc62d.dll</OutputFile>
+      <OutputFile>..\..\bin64\icuuc63d.dll</OutputFile>
       <AdditionalLibraryDirectories>.\..\..\lib64;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
       <ProgramDatabaseFile>.\..\..\lib64\icuucd.pdb</ProgramDatabaseFile>
       <ImportLibrary>..\..\lib64\icuucd.lib</ImportLibrary>
     <ClCompile Include="ustack.cpp" />
     <ClCompile Include="ustrenum.cpp" />
     <ClCompile Include="utrie.cpp" />
+    <ClCompile Include="utrie_swap.cpp" />
     <ClCompile Include="utrie2.cpp" />
     <ClCompile Include="utrie2_builder.cpp" />
     <ClCompile Include="uvector.cpp" />
     <ClCompile Include="ruleiter.cpp" />
     <ClCompile Include="ucase.cpp" />
     <ClCompile Include="uchar.cpp" />
+    <ClCompile Include="characterproperties.cpp" />
     <ClCompile Include="unames.cpp" />
     <ClCompile Include="unifiedcache.cpp" />
     <ClCompile Include="unifilt.cpp" />
     <ClCompile Include="ucharstriebuilder.cpp" />
     <ClCompile Include="ucharstrieiterator.cpp" />
     <ClCompile Include="uchriter.cpp" />
+    <ClCompile Include="ucptrie.cpp" />
     <ClCompile Include="uinvchar.cpp" />
     <ClCompile Include="uiter.cpp" />
+    <ClCompile Include="umutablecptrie.cpp" />
     <ClCompile Include="unistr.cpp" />
     <ClCompile Include="unistr_case.cpp" />
     <ClCompile Include="unistr_case_locale.cpp" />
     <ClCompile Include="ustrtrns.cpp" />
     <ClCompile Include="utext.cpp" />
     <ClCompile Include="utf_impl.cpp" />
-    <ClCompile Include="listformatter.cpp" />
-    <ClCompile Include="ulistformatter.cpp" />
     <ClCompile Include="static_unicode_sets.cpp" />
     <ClInclude Include="localsvc.h" />
     <ClInclude Include="msvcres.h" />
index 20863f138ce2c237ef6fbebd3886217d95c6d78b..99ed94fbd7056eeee5c4401a93de3865cbcaa1a9 100644 (file)
     <ClCompile Include="utrie.cpp">
       <Filter>collections</Filter>
     </ClCompile>
+    <ClCompile Include="utrie_swap.cpp">
+      <Filter>collections</Filter>
+    </ClCompile>
     <ClCompile Include="utrie2.cpp">
       <Filter>collections</Filter>
     </ClCompile>
     <ClCompile Include="bmpset.cpp">
       <Filter>properties &amp; sets</Filter>
     </ClCompile>
+    <ClCompile Include="characterproperties.cpp">
+      <Filter>properties &amp; sets</Filter>
+    </ClCompile>
     <ClCompile Include="propname.cpp">
       <Filter>properties &amp; sets</Filter>
     </ClCompile>
     <ClCompile Include="bytestriebuilder.cpp">
       <Filter>collections</Filter>
     </ClCompile>
-    <ClCompile Include="listformatter.cpp">
-      <Filter>formatting</Filter>
-    </ClCompile>
-    <ClCompile Include="ulistformatter.cpp">
-      <Filter>formatting</Filter>
-    </ClCompile>
     <ClCompile Include="messagepattern.cpp">
       <Filter>formatting</Filter>
     </ClCompile>
     <ClCompile Include="ucharstrieiterator.cpp">
       <Filter>collections</Filter>
     </ClCompile>
+    <ClCompile Include="ucptrie.cpp">
+      <Filter>collections</Filter>
+    </ClCompile>
+    <ClCompile Include="umutablecptrie.cpp">
+      <Filter>collections</Filter>
+    </ClCompile>
     <ClCompile Include="patternprops.cpp">
       <Filter>properties &amp; sets</Filter>
     </ClCompile>
     <CustomBuild Include="unicode\messagepattern.h">
       <Filter>formatting</Filter>
     </CustomBuild>
-    <CustomBuild Include="unicode\listformatter.h">
-      <Filter>formatting</Filter>
-    </CustomBuild>
-    <CustomBuild Include="unicode\ulistformatter.h">
-      <Filter>formatting</Filter>
-    </CustomBuild>
     <CustomBuild Include="unicode\appendable.h">
       <Filter>strings</Filter>
     </CustomBuild>
     <CustomBuild Include="unicode\ucharstriebuilder.h">
       <Filter>collections</Filter>
     </CustomBuild>
+    <CustomBuild Include="unicode\ucptrie.h">
+      <Filter>collections</Filter>
+    </CustomBuild>
+    <CustomBuild Include="unicode\umutablecptrie.h">
+      <Filter>collections</Filter>
+    </CustomBuild>
     <CustomBuild Include="unicode\enumset.h">
       <Filter>data &amp; memory</Filter>
     </CustomBuild>
       <Filter>strings</Filter>
     </CustomBuild>
   </ItemGroup>
-</Project>
\ No newline at end of file
+</Project>
index ee11e5d9f61d2bc229505068c19366e6748000a2..f532cff2f890bd02d2542a6c8b7f25f4a1c7bbdd 100644 (file)
@@ -1,6 +1,9 @@
 <?xml version="1.0" encoding="utf-8"?>
 <Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <!-- The following import will include the UWP configuration options for VS projects. -->
   <Import Project="..\allinone\Build.Windows.UWP.ProjectConfiguration.props" />
+  <!-- The following import will include the library configuration options for VS projects. -->
+  <Import Project="..\allinone\Build.Windows.Library.ProjectConfiguration.props" />
   <ItemGroup Label="ProjectConfigurations">
     <ProjectConfiguration Include="Debug|Win32">
       <Configuration>Debug</Configuration>
       <ProgramDataBaseFileName>.\x86\ReleaseUWP/</ProgramDataBaseFileName>
     </ClCompile>
     <Link>
-      <OutputFile>..\..\bin32uwp\icuuc62.dll</OutputFile>
+      <OutputFile>..\..\bin32uwp\icuuc63.dll</OutputFile>
       <ProgramDatabaseFile>.\..\..\lib32uwp\icuuc.pdb</ProgramDatabaseFile>
       <ImportLibrary>..\..\lib32uwp\icuuc.lib</ImportLibrary>
     </Link>
       <ProgramDataBaseFileName>.\x86\DebugUWP/</ProgramDataBaseFileName>
     </ClCompile>
     <Link>
-      <OutputFile>..\..\bin32uwp\icuuc62d.dll</OutputFile>
+      <OutputFile>..\..\bin32uwp\icuuc63d.dll</OutputFile>
       <ProgramDatabaseFile>.\..\..\lib32uwp\icuucd.pdb</ProgramDatabaseFile>
       <ImportLibrary>..\..\lib32uwp\icuucd.lib</ImportLibrary>
     </Link>
       <ProgramDataBaseFileName>.\x64\ReleaseUWP/</ProgramDataBaseFileName>
     </ClCompile>
     <Link>
-      <OutputFile>..\..\bin64uwp\icuuc62.dll</OutputFile>
+      <OutputFile>..\..\bin64uwp\icuuc63.dll</OutputFile>
       <ProgramDatabaseFile>.\..\..\lib64uwp\icuuc.pdb</ProgramDatabaseFile>
       <ImportLibrary>..\..\lib64uwp\icuuc.lib</ImportLibrary>
     </Link>
       <ProgramDataBaseFileName>.\x64\DebugUWP/</ProgramDataBaseFileName>
     </ClCompile>
     <Link>
-      <OutputFile>..\..\bin64uwp\icuuc62d.dll</OutputFile>
+      <OutputFile>..\..\bin64uwp\icuuc63d.dll</OutputFile>
       <ProgramDatabaseFile>.\..\..\lib64uwp\icuucd.pdb</ProgramDatabaseFile>
       <ImportLibrary>..\..\lib64uwp\icuucd.lib</ImportLibrary>
     </Link>
       <ProgramDataBaseFileName>.\ARM\ReleaseUWP/</ProgramDataBaseFileName>
     </ClCompile>
     <Link>
-      <OutputFile>..\..\binARMuwp\icuuc62.dll</OutputFile>
+      <OutputFile>..\..\binARMuwp\icuuc63.dll</OutputFile>
       <ProgramDatabaseFile>.\..\..\libARMuwp\icuuc.pdb</ProgramDatabaseFile>
       <ImportLibrary>..\..\libARMuwp\icuuc.lib</ImportLibrary>
     </Link>
       <ProgramDataBaseFileName>.\ARM\DebugUWP/</ProgramDataBaseFileName>
     </ClCompile>
     <Link>
-      <OutputFile>..\..\binARMuwp\icuuc62d.dll</OutputFile>
+      <OutputFile>..\..\binARMuwp\icuuc63d.dll</OutputFile>
       <ProgramDatabaseFile>.\..\..\libARMuwp\icuucd.pdb</ProgramDatabaseFile>
       <ImportLibrary>..\..\libARMuwp\icuucd.lib</ImportLibrary>
     </Link>
     <ClCompile Include="ustack.cpp" />
     <ClCompile Include="ustrenum.cpp" />
     <ClCompile Include="utrie.cpp" />
+    <ClCompile Include="utrie_swap.cpp" />
     <ClCompile Include="utrie2.cpp" />
     <ClCompile Include="utrie2_builder.cpp" />
     <ClCompile Include="uvector.cpp" />
     <ClCompile Include="umutex.cpp" />
     <ClCompile Include="utrace.cpp" />
     <ClCompile Include="utypes.cpp" />
-    <ClCompile Include="wintz.cpp">
-      <ExcludedFromBuild>true</ExcludedFromBuild>
-    </ClCompile>
+    <ClCompile Include="wintz.cpp" />
     <ClCompile Include="ucnv.cpp" />
     <ClCompile Include="ucnv2022.cpp" />
     <ClCompile Include="ucnv_bld.cpp" />
     <ClCompile Include="ruleiter.cpp" />
     <ClCompile Include="ucase.cpp" />
     <ClCompile Include="uchar.cpp" />
+    <ClCompile Include="characterproperties.cpp" />
     <ClCompile Include="unames.cpp" />
     <ClCompile Include="unifiedcache.cpp" />
     <ClCompile Include="unifilt.cpp" />
     <ClCompile Include="ucharstrie.cpp" />
     <ClCompile Include="ucharstriebuilder.cpp" />
     <ClCompile Include="ucharstrieiterator.cpp" />
+    <ClCompile Include="ucptrie.cpp" />
     <ClCompile Include="uchriter.cpp" />
     <ClCompile Include="uinvchar.cpp" />
     <ClCompile Include="uiter.cpp" />
+    <ClCompile Include="umutablecptrie.cpp" />
     <ClCompile Include="unistr.cpp" />
     <ClCompile Include="unistr_case.cpp" />
     <ClCompile Include="unistr_case_locale.cpp" />
     <ClCompile Include="ustrtrns.cpp" />
     <ClCompile Include="utext.cpp" />
     <ClCompile Include="utf_impl.cpp" />
-    <ClCompile Include="listformatter.cpp" />
-    <ClCompile Include="ulistformatter.cpp" />
     <ClCompile Include="static_unicode_sets.cpp" />
   </ItemGroup>
   <ItemGroup>
index d8ae45c68260f363874750ba412c9f7cfea2e295..cdef79386982e99b4c96775ca2109623d3b20f75 100644 (file)
@@ -325,9 +325,9 @@ foundBest:
                         // two characters after uc were not 0x0E4C THANTHAKHAT before
                         // checking the dictionary. That is just a performance filter,
                         // but it's not clear it's faster than checking the trie.
-                        int32_t candidates = words[(wordsFound + 1) % THAI_LOOKAHEAD].candidates(text, fDictionary, rangeEnd);
+                        int32_t num_candidates = words[(wordsFound + 1) % THAI_LOOKAHEAD].candidates(text, fDictionary, rangeEnd);
                         utext_setNativeIndex(text, current + cuWordLength + chars);
-                        if (candidates > 0) {
+                        if (num_candidates > 0) {
                             break;
                         }
                     }
@@ -555,9 +555,9 @@ foundBest:
                     if (fEndWordSet.contains(pc) && fBeginWordSet.contains(uc)) {
                         // Maybe. See if it's in the dictionary.
                         // TODO: this looks iffy; compare with old code.
-                        int32_t candidates = words[(wordsFound + 1) % LAO_LOOKAHEAD].candidates(text, fDictionary, rangeEnd);
+                        int32_t num_candidates = words[(wordsFound + 1) % LAO_LOOKAHEAD].candidates(text, fDictionary, rangeEnd);
                         utext_setNativeIndex(text, current + cuWordLength + chars);
-                        if (candidates > 0) {
+                        if (num_candidates > 0) {
                             break;
                         }
                     }
@@ -748,9 +748,9 @@ foundBest:
                     if (fEndWordSet.contains(pc) && fBeginWordSet.contains(uc)) {
                         // Maybe. See if it's in the dictionary.
                         // TODO: this looks iffy; compare with old code.
-                        int32_t candidates = words[(wordsFound + 1) % BURMESE_LOOKAHEAD].candidates(text, fDictionary, rangeEnd);
+                        int32_t num_candidates = words[(wordsFound + 1) % BURMESE_LOOKAHEAD].candidates(text, fDictionary, rangeEnd);
                         utext_setNativeIndex(text, current + cuWordLength + chars);
-                        if (candidates > 0) {
+                        if (num_candidates > 0) {
                             break;
                         }
                     }
@@ -953,9 +953,9 @@ foundBest:
                     uc = utext_current32(text);
                     if (fEndWordSet.contains(pc) && fBeginWordSet.contains(uc)) {
                         // Maybe. See if it's in the dictionary.
-                        int32_t candidates = words[(wordsFound + 1) % KHMER_LOOKAHEAD].candidates(text, fDictionary, rangeEnd);
+                        int32_t num_candidates = words[(wordsFound + 1) % KHMER_LOOKAHEAD].candidates(text, fDictionary, rangeEnd);
                         utext_setNativeIndex(text, current+cuWordLength+chars);
-                        if (candidates > 0) {
+                        if (num_candidates > 0) {
                             break;
                         }
                     }
index 3b3611fcf80cfec050c4342d0b7904d6d6570353..00a8d601a1cc80fbfcc46b7e1c677803e41511b8 100644 (file)
@@ -276,7 +276,7 @@ Edits &Edits::mergeAndAppend(const Edits &ab, const Edits &bc, UErrorCode &error
         // 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))) {
+            if (bcHasNext && (bcHasNext = bcIter.next(errorCode)) != 0) {
                 bc_bLength = bcIter.oldLength();
                 cLength = bcIter.newLength();
                 if (bc_bLength == 0) {
@@ -293,7 +293,7 @@ Edits &Edits::mergeAndAppend(const Edits &ab, const Edits &bc, UErrorCode &error
             // else see if the other iterator is done, too.
         }
         if (ab_bLength == 0) {
-            if (abHasNext && (abHasNext = abIter.next(errorCode))) {
+            if (abHasNext && (abHasNext = abIter.next(errorCode)) != 0) {
                 aLength = abIter.oldLength();
                 ab_bLength = abIter.newLength();
                 if (ab_bLength == 0) {
diff --git a/source/common/listformatter.cpp b/source/common/listformatter.cpp
deleted file mode 100644 (file)
index 33a8ac2..0000000
+++ /dev/null
@@ -1,429 +0,0 @@
-// © 2016 and later: Unicode, Inc. and others.
-// License & terms of use: http://www.unicode.org/copyright.html
-/*
-*******************************************************************************
-*
-*   Copyright (C) 2013-2016, International Business Machines
-*   Corporation and others.  All Rights Reserved.
-*
-*******************************************************************************
-*   file name:  listformatter.cpp
-*   encoding:   UTF-8
-*   tab size:   8 (not used)
-*   indentation:4
-*
-*   created on: 2012aug27
-*   created by: Umesh P. Nair
-*/
-
-#include "unicode/listformatter.h"
-#include "unicode/simpleformatter.h"
-#include "mutex.h"
-#include "hash.h"
-#include "cstring.h"
-#include "ulocimp.h"
-#include "charstr.h"
-#include "ucln_cmn.h"
-#include "uresimp.h"
-#include "resource.h"
-
-U_NAMESPACE_BEGIN
-
-struct ListFormatInternal : public UMemory {
-    SimpleFormatter twoPattern;
-    SimpleFormatter startPattern;
-    SimpleFormatter middlePattern;
-    SimpleFormatter endPattern;
-
-ListFormatInternal(
-        const UnicodeString& two,
-        const UnicodeString& start,
-        const UnicodeString& middle,
-        const UnicodeString& end,
-        UErrorCode &errorCode) :
-        twoPattern(two, 2, 2, errorCode),
-        startPattern(start, 2, 2, errorCode),
-        middlePattern(middle, 2, 2, errorCode),
-        endPattern(end, 2, 2, errorCode) {}
-
-ListFormatInternal(const ListFormatData &data, UErrorCode &errorCode) :
-        twoPattern(data.twoPattern, errorCode),
-        startPattern(data.startPattern, errorCode),
-        middlePattern(data.middlePattern, errorCode),
-        endPattern(data.endPattern, errorCode) { }
-
-ListFormatInternal(const ListFormatInternal &other) :
-    twoPattern(other.twoPattern),
-    startPattern(other.startPattern),
-    middlePattern(other.middlePattern),
-    endPattern(other.endPattern) { }
-};
-
-
-
-static Hashtable* listPatternHash = NULL;
-static UMutex listFormatterMutex = U_MUTEX_INITIALIZER;
-static const char STANDARD_STYLE[] = "standard";
-
-U_CDECL_BEGIN
-static UBool U_CALLCONV uprv_listformatter_cleanup() {
-    delete listPatternHash;
-    listPatternHash = NULL;
-    return TRUE;
-}
-
-static void U_CALLCONV
-uprv_deleteListFormatInternal(void *obj) {
-    delete static_cast<ListFormatInternal *>(obj);
-}
-
-U_CDECL_END
-
-ListFormatter::ListFormatter(const ListFormatter& other) :
-        owned(other.owned), data(other.data) {
-    if (other.owned != NULL) {
-        owned = new ListFormatInternal(*other.owned);
-        data = owned;
-    }
-}
-
-ListFormatter& ListFormatter::operator=(const ListFormatter& other) {
-    if (this == &other) {
-        return *this;
-    }
-    delete owned;
-    if (other.owned) {
-        owned = new ListFormatInternal(*other.owned);
-        data = owned;
-    } else {
-        owned = NULL;
-        data = other.data;
-    }
-    return *this;
-}
-
-void ListFormatter::initializeHash(UErrorCode& errorCode) {
-    if (U_FAILURE(errorCode)) {
-        return;
-    }
-
-    listPatternHash = new Hashtable();
-    if (listPatternHash == NULL) {
-        errorCode = U_MEMORY_ALLOCATION_ERROR;
-        return;
-    }
-
-    listPatternHash->setValueDeleter(uprv_deleteListFormatInternal);
-    ucln_common_registerCleanup(UCLN_COMMON_LIST_FORMATTER, uprv_listformatter_cleanup);
-
-}
-
-const ListFormatInternal* ListFormatter::getListFormatInternal(
-        const Locale& locale, const char *style, UErrorCode& errorCode) {
-    if (U_FAILURE(errorCode)) {
-        return NULL;
-    }
-    CharString keyBuffer(locale.getName(), errorCode);
-    keyBuffer.append(':', errorCode).append(style, errorCode);
-    UnicodeString key(keyBuffer.data(), -1, US_INV);
-    ListFormatInternal* result = NULL;
-    {
-        Mutex m(&listFormatterMutex);
-        if (listPatternHash == NULL) {
-            initializeHash(errorCode);
-            if (U_FAILURE(errorCode)) {
-                return NULL;
-            }
-        }
-        result = static_cast<ListFormatInternal*>(listPatternHash->get(key));
-    }
-    if (result != NULL) {
-        return result;
-    }
-    result = loadListFormatInternal(locale, style, errorCode);
-    if (U_FAILURE(errorCode)) {
-        return NULL;
-    }
-
-    {
-        Mutex m(&listFormatterMutex);
-        ListFormatInternal* temp = static_cast<ListFormatInternal*>(listPatternHash->get(key));
-        if (temp != NULL) {
-            delete result;
-            result = temp;
-        } else {
-            listPatternHash->put(key, result, errorCode);
-            if (U_FAILURE(errorCode)) {
-                return NULL;
-            }
-        }
-    }
-    return result;
-}
-
-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;
-    }
-    ListFormatter::ListPatternsSink sink;
-    char currentStyle[kStyleLenMax+1];
-    uprv_strncpy(currentStyle, style, kStyleLenMax);
-    currentStyle[kStyleLenMax] = 0;
-
-    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);
-    }
-    ures_close(rb);
-    if (U_FAILURE(errorCode)) {
-        return NULL;
-    }
-    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;
-    }
-    if (U_FAILURE(errorCode)) {
-        delete result;
-        return NULL;
-    }
-    return result;
-}
-
-ListFormatter* ListFormatter::createInstance(UErrorCode& errorCode) {
-    Locale locale;  // The default locale.
-    return createInstance(locale, errorCode);
-}
-
-ListFormatter* ListFormatter::createInstance(const Locale& locale, UErrorCode& errorCode) {
-    return createInstance(locale, STANDARD_STYLE, errorCode);
-}
-
-ListFormatter* ListFormatter::createInstance(const Locale& locale, const char *style, UErrorCode& errorCode) {
-    Locale tempLocale = locale;
-    const ListFormatInternal* listFormatInternal = getListFormatInternal(tempLocale, style, errorCode);
-    if (U_FAILURE(errorCode)) {
-        return NULL;
-    }
-    ListFormatter* p = new ListFormatter(listFormatInternal);
-    if (p == NULL) {
-        errorCode = U_MEMORY_ALLOCATION_ERROR;
-        return NULL;
-    }
-    return p;
-}
-
-ListFormatter::ListFormatter(const ListFormatData& listFormatData, UErrorCode &errorCode) {
-    owned = new ListFormatInternal(listFormatData, errorCode);
-    data = owned;
-}
-
-ListFormatter::ListFormatter(const ListFormatInternal* listFormatterInternal) : owned(NULL), data(listFormatterInternal) {
-}
-
-ListFormatter::~ListFormatter() {
-    delete owned;
-}
-
-/**
- * Joins first and second using the pattern pat.
- * On entry offset is an offset into first or -1 if offset unspecified.
- * On exit offset is offset of second in result if recordOffset was set
- * Otherwise if it was >=0 it is set to point into result where it used
- * to point into first. On exit, result is the join of first and second
- * according to pat. Any previous value of result gets replaced.
- */
-static void joinStringsAndReplace(
-        const SimpleFormatter& pat,
-        const UnicodeString& first,
-        const UnicodeString& second,
-        UnicodeString &result,
-        UBool recordOffset,
-        int32_t &offset,
-        UErrorCode& errorCode) {
-    if (U_FAILURE(errorCode)) {
-        return;
-    }
-    const UnicodeString *params[2] = {&first, &second};
-    int32_t offsets[2];
-    pat.formatAndReplace(
-            params,
-            UPRV_LENGTHOF(params),
-            result,
-            offsets,
-            UPRV_LENGTHOF(offsets),
-            errorCode);
-    if (U_FAILURE(errorCode)) {
-        return;
-    }
-    if (offsets[0] == -1 || offsets[1] == -1) {
-        errorCode = U_INVALID_FORMAT_ERROR;
-        return;
-    }
-    if (recordOffset) {
-        offset = offsets[1];
-    } else if (offset >= 0) {
-        offset += offsets[0];
-    }
-}
-
-UnicodeString& ListFormatter::format(
-        const UnicodeString items[],
-        int32_t nItems,
-        UnicodeString& appendTo,
-        UErrorCode& errorCode) const {
-    int32_t offset;
-    return format(items, nItems, appendTo, -1, offset, errorCode);
-}
-
-UnicodeString& ListFormatter::format(
-        const UnicodeString items[],
-        int32_t nItems,
-        UnicodeString& appendTo,
-        int32_t index,
-        int32_t &offset,
-        UErrorCode& errorCode) const {
-    offset = -1;
-    if (U_FAILURE(errorCode)) {
-        return appendTo;
-    }
-    if (data == NULL) {
-        errorCode = U_INVALID_STATE_ERROR;
-        return appendTo;
-    }
-
-    if (nItems <= 0) {
-        return appendTo;
-    }
-    if (nItems == 1) {
-        if (index == 0) {
-            offset = appendTo.length();
-        }
-        appendTo.append(items[0]);
-        return appendTo;
-    }
-    UnicodeString result(items[0]);
-    if (index == 0) {
-        offset = 0;
-    }
-    joinStringsAndReplace(
-            nItems == 2 ? data->twoPattern : data->startPattern,
-            result,
-            items[1],
-            result,
-            index == 1,
-            offset,
-            errorCode);
-    if (nItems > 2) {
-        for (int32_t i = 2; i < nItems - 1; ++i) {
-             joinStringsAndReplace(
-                     data->middlePattern,
-                     result,
-                     items[i],
-                     result,
-                     index == i,
-                     offset,
-                     errorCode);
-        }
-        joinStringsAndReplace(
-                data->endPattern,
-                result,
-                items[nItems - 1],
-                result,
-                index == nItems - 1,
-                offset,
-                errorCode);
-    }
-    if (U_SUCCESS(errorCode)) {
-        if (offset >= 0) {
-            offset += appendTo.length();
-        }
-        appendTo += result;
-    }
-    return appendTo;
-}
-
-U_NAMESPACE_END
index 288a7d69536a57530c05a16ce4a1ecb85e0d8014..82cb325b723311bb0515713e1b56201f3fa4e395 100644 (file)
@@ -18,6 +18,7 @@
 #include "unicode/udata.h"
 #include "unicode/localpointer.h"
 #include "unicode/normalizer2.h"
+#include "unicode/ucptrie.h"
 #include "unicode/unistr.h"
 #include "unicode/unorm.h"
 #include "cstring.h"
@@ -42,12 +43,12 @@ private:
     isAcceptable(void *context, const char *type, const char *name, const UDataInfo *pInfo);
 
     UDataMemory *memory;
-    UTrie2 *ownedTrie;
+    UCPTrie *ownedTrie;
 };
 
 LoadedNormalizer2Impl::~LoadedNormalizer2Impl() {
     udata_close(memory);
-    utrie2_close(ownedTrie);
+    ucptrie_close(ownedTrie);
 }
 
 UBool U_CALLCONV
@@ -62,7 +63,7 @@ LoadedNormalizer2Impl::isAcceptable(void * /*context*/,
         pInfo->dataFormat[1]==0x72 &&
         pInfo->dataFormat[2]==0x6d &&
         pInfo->dataFormat[3]==0x32 &&
-        pInfo->formatVersion[0]==3
+        pInfo->formatVersion[0]==4
     ) {
         // Normalizer2Impl *me=(Normalizer2Impl *)context;
         // uprv_memcpy(me->dataVersion, pInfo->dataVersion, 4);
@@ -91,9 +92,9 @@ LoadedNormalizer2Impl::load(const char *packageName, const char *name, UErrorCod
 
     int32_t offset=inIndexes[IX_NORM_TRIE_OFFSET];
     int32_t nextOffset=inIndexes[IX_EXTRA_DATA_OFFSET];
-    ownedTrie=utrie2_openFromSerialized(UTRIE2_16_VALUE_BITS,
-                                        inBytes+offset, nextOffset-offset, NULL,
-                                        &errorCode);
+    ownedTrie=ucptrie_openFromBinary(UCPTRIE_TYPE_FAST, UCPTRIE_VALUE_BITS_16,
+                                     inBytes+offset, nextOffset-offset, NULL,
+                                     &errorCode);
     if(U_FAILURE(errorCode)) {
         return;
     }
@@ -131,15 +132,26 @@ U_CDECL_BEGIN
 static UBool U_CALLCONV uprv_loaded_normalizer2_cleanup();
 U_CDECL_END
 
-static Norm2AllModes *nfkcSingleton;
-static Norm2AllModes *nfkc_cfSingleton;
-static UHashtable    *cache=NULL;
+#if !NORM2_HARDCODE_NFC_DATA
+static Norm2AllModes *nfcSingleton;
+static icu::UInitOnce nfcInitOnce = U_INITONCE_INITIALIZER;
+#endif
 
+static Norm2AllModes *nfkcSingleton;
 static icu::UInitOnce nfkcInitOnce = U_INITONCE_INITIALIZER;
+
+static Norm2AllModes *nfkc_cfSingleton;
 static icu::UInitOnce nfkc_cfInitOnce = U_INITONCE_INITIALIZER;
 
+static UHashtable    *cache=NULL;
+
 // UInitOnce singleton initialization function
 static void U_CALLCONV initSingletons(const char *what, UErrorCode &errorCode) {
+#if !NORM2_HARDCODE_NFC_DATA
+    if (uprv_strcmp(what, "nfc") == 0) {
+        nfcSingleton    = Norm2AllModes::createInstance(NULL, "nfc", errorCode);
+    } else
+#endif
     if (uprv_strcmp(what, "nfkc") == 0) {
         nfkcSingleton    = Norm2AllModes::createInstance(NULL, "nfkc", errorCode);
     } else if (uprv_strcmp(what, "nfkc_cf") == 0) {
@@ -157,19 +169,36 @@ static void U_CALLCONV deleteNorm2AllModes(void *allModes) {
 }
 
 static UBool U_CALLCONV uprv_loaded_normalizer2_cleanup() {
+#if !NORM2_HARDCODE_NFC_DATA
+    delete nfcSingleton;
+    nfcSingleton = NULL;
+    nfcInitOnce.reset();
+#endif
+
     delete nfkcSingleton;
     nfkcSingleton = NULL;
+    nfkcInitOnce.reset();
+
     delete nfkc_cfSingleton;
     nfkc_cfSingleton = NULL;
+    nfkc_cfInitOnce.reset();
+
     uhash_close(cache);
     cache=NULL;
-    nfkcInitOnce.reset(); 
-    nfkc_cfInitOnce.reset(); 
     return TRUE;
 }
 
 U_CDECL_END
 
+#if !NORM2_HARDCODE_NFC_DATA
+const Norm2AllModes *
+Norm2AllModes::getNFCInstance(UErrorCode &errorCode) {
+    if(U_FAILURE(errorCode)) { return NULL; }
+    umtx_initOnce(nfcInitOnce, &initSingletons, "nfc", errorCode);
+    return nfcSingleton;
+}
+#endif
+
 const Norm2AllModes *
 Norm2AllModes::getNFKCInstance(UErrorCode &errorCode) {
     if(U_FAILURE(errorCode)) { return NULL; }
@@ -184,6 +213,36 @@ Norm2AllModes::getNFKC_CFInstance(UErrorCode &errorCode) {
     return nfkc_cfSingleton;
 }
 
+#if !NORM2_HARDCODE_NFC_DATA
+const Normalizer2 *
+Normalizer2::getNFCInstance(UErrorCode &errorCode) {
+    const Norm2AllModes *allModes=Norm2AllModes::getNFCInstance(errorCode);
+    return allModes!=NULL ? &allModes->comp : NULL;
+}
+
+const Normalizer2 *
+Normalizer2::getNFDInstance(UErrorCode &errorCode) {
+    const Norm2AllModes *allModes=Norm2AllModes::getNFCInstance(errorCode);
+    return allModes!=NULL ? &allModes->decomp : NULL;
+}
+
+const Normalizer2 *Normalizer2Factory::getFCDInstance(UErrorCode &errorCode) {
+    const Norm2AllModes *allModes=Norm2AllModes::getNFCInstance(errorCode);
+    return allModes!=NULL ? &allModes->fcd : NULL;
+}
+
+const Normalizer2 *Normalizer2Factory::getFCCInstance(UErrorCode &errorCode) {
+    const Norm2AllModes *allModes=Norm2AllModes::getNFCInstance(errorCode);
+    return allModes!=NULL ? &allModes->fcc : NULL;
+}
+
+const Normalizer2Impl *
+Normalizer2Factory::getNFCImpl(UErrorCode &errorCode) {
+    const Norm2AllModes *allModes=Norm2AllModes::getNFCInstance(errorCode);
+    return allModes!=NULL ? allModes->impl : NULL;
+}
+#endif
+
 const Normalizer2 *
 Normalizer2::getNFKCInstance(UErrorCode &errorCode) {
     const Norm2AllModes *allModes=Norm2AllModes::getNFKCInstance(errorCode);
@@ -247,7 +306,7 @@ Normalizer2::getInstance(const char *packageName,
                 }
                 void *temp=uhash_get(cache, name);
                 if(temp==NULL) {
-                    int32_t keyLength=uprv_strlen(name)+1;
+                    int32_t keyLength= static_cast<int32_t>(uprv_strlen(name)+1);
                     char *nameCopy=(char *)uprv_malloc(keyLength);
                     if(nameCopy==NULL) {
                         errorCode=U_MEMORY_ALLOCATION_ERROR;
index 6ceb6cfc8bc6537edae4351069a88714b8c24ddd..2d9389e910a2ab93c3de2b5d2acfe99d71fedf2c 100644 (file)
@@ -45,9 +45,9 @@ static int32_t ncat(char *buffer, uint32_t buflen, ...) {
   }
 
   va_start(args, buflen);
-  while ((str = va_arg(args, char *))) {
+  while ((str = va_arg(args, char *)) != 0) {
     char c;
-    while (p != e && (c = *str++)) {
+    while (p != e && (c = *str++) != 0) {
       *p++ = c;
     }
   }
@@ -98,7 +98,7 @@ ICUDataTable::ICUDataTable(const char* path, const Locale& locale)
     : path(NULL), locale(Locale::getRoot())
 {
   if (path) {
-    int32_t len = uprv_strlen(path);
+    int32_t len = static_cast<int32_t>(uprv_strlen(path));
     this->path = (const char*) uprv_malloc(len + 1);
     if (this->path) {
       uprv_strcpy((char *)this->path, path);
@@ -560,21 +560,21 @@ LocaleDisplayNamesImpl::adjustForUsageAndContext(CapContextUsage usage,
 }
 
 UnicodeString&
-LocaleDisplayNamesImpl::localeDisplayName(const Locale& locale,
+LocaleDisplayNamesImpl::localeDisplayName(const Locale& loc,
                                           UnicodeString& result) const {
-  if (locale.isBogus()) {
+  if (loc.isBogus()) {
     result.setToBogus();
     return result;
   }
   UnicodeString resultName;
 
-  const char* lang = locale.getLanguage();
+  const char* lang = loc.getLanguage();
   if (uprv_strlen(lang) == 0) {
     lang = "root";
   }
-  const char* script = locale.getScript();
-  const char* country = locale.getCountry();
-  const char* variant = locale.getVariant();
+  const char* script = loc.getScript();
+  const char* country = loc.getCountry();
+  const char* variant = loc.getVariant();
 
   UBool hasScript = uprv_strlen(script) > 0;
   UBool hasCountry = uprv_strlen(country) > 0;
@@ -630,14 +630,14 @@ LocaleDisplayNamesImpl::localeDisplayName(const Locale& locale,
   resultRemainder.findAndReplace(formatOpenParen, formatReplaceOpenParen);
   resultRemainder.findAndReplace(formatCloseParen, formatReplaceCloseParen);
 
-  LocalPointer<StringEnumeration> e(locale.createKeywords(status));
+  LocalPointer<StringEnumeration> e(loc.createKeywords(status));
   if (e.isValid() && U_SUCCESS(status)) {
     UnicodeString temp2;
     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);
+      loc.getKeywordValue(key, value, ULOC_KEYWORD_AND_VALUES_CAPACITY, status);
       if (U_FAILURE(status) || status == U_STRING_NOT_TERMINATED_WARNING) {
         return result;
       }
index 36508acaf5ca70c2fadba2fe1b5f6f0078dc5f97..e0dcc8a88ec0ec97829a33551044ca7d04be486b 100644 (file)
 ******************************************************************************
 */
 
+#include <utility>
 
+#include "unicode/bytestream.h"
 #include "unicode/locid.h"
 #include "unicode/strenum.h"
+#include "unicode/stringpiece.h"
 #include "unicode/uloc.h"
 #include "putilimp.h"
 #include "mutex.h"
 #include "cstring.h"
 #include "uassert.h"
 #include "uhash.h"
+#include "ulocimp.h"
 #include "ucln_cmn.h"
 #include "ustr_imp.h"
 #include "charstr.h"
+#include "bytesinkutil.h"
 
 U_CDECL_BEGIN
 static UBool U_CALLCONV locale_cleanup(void);
@@ -424,49 +429,70 @@ Locale::Locale(const Locale &other)
     *this = other;
 }
 
-Locale &Locale::operator=(const Locale &other)
-{
+Locale::Locale(Locale&& other) U_NOEXCEPT
+    : UObject(other), fullName(fullNameBuffer), baseName(fullName) {
+  *this = std::move(other);
+}
+
+Locale& Locale::operator=(const Locale& other) {
     if (this == &other) {
         return *this;
     }
 
-    /* Free our current storage */
-    if (baseName != fullName) {
-        uprv_free(baseName);
+    setToBogus();
+
+    if (other.fullName == other.fullNameBuffer) {
+        uprv_strcpy(fullNameBuffer, other.fullNameBuffer);
+    } else if (other.fullName == nullptr) {
+        fullName = nullptr;
+    } else {
+        fullName = uprv_strdup(other.fullName);
+        if (fullName == nullptr) return *this;
     }
-    baseName = NULL;
-    if(fullName != fullNameBuffer) {
-        uprv_free(fullName);
-        fullName = fullNameBuffer;
+
+    if (other.baseName == other.fullName) {
+        baseName = fullName;
+    } else if (other.baseName != nullptr) {
+        baseName = uprv_strdup(other.baseName);
+        if (baseName == nullptr) return *this;
     }
 
-    /* Allocate the full name if necessary */
-    if(other.fullName != other.fullNameBuffer) {
-        fullName = (char *)uprv_malloc(sizeof(char)*(uprv_strlen(other.fullName)+1));
-        if (fullName == NULL) {
-            return *this;
-        }
+    uprv_strcpy(language, other.language);
+    uprv_strcpy(script, other.script);
+    uprv_strcpy(country, other.country);
+
+    variantBegin = other.variantBegin;
+    fIsBogus = other.fIsBogus;
+
+    return *this;
+}
+
+Locale& Locale::operator=(Locale&& other) U_NOEXCEPT {
+    if (baseName != fullName) uprv_free(baseName);
+    if (fullName != fullNameBuffer) uprv_free(fullName);
+
+    if (other.fullName == other.fullNameBuffer) {
+        uprv_strcpy(fullNameBuffer, other.fullNameBuffer);
+        fullName = fullNameBuffer;
+    } else {
+        fullName = other.fullName;
     }
-    /* Copy the full name */
-    uprv_strcpy(fullName, other.fullName);
 
-    /* Copy the baseName if it differs from fullName. */
     if (other.baseName == other.fullName) {
         baseName = fullName;
     } else {
-        if (other.baseName) {
-            baseName = uprv_strdup(other.baseName);
-        }
+        baseName = other.baseName;
     }
 
-    /* Copy the language and country fields */
     uprv_strcpy(language, other.language);
     uprv_strcpy(script, other.script);
     uprv_strcpy(country, other.country);
 
-    /* The variantBegin is an offset, just copy it */
     variantBegin = other.variantBegin;
     fIsBogus = other.fIsBogus;
+
+    other.baseName = other.fullName = other.fullNameBuffer;
+
     return *this;
 }
 
@@ -545,7 +571,7 @@ Locale& Locale::init(const char* localeID, UBool canonicalize)
         /* after uloc_getName/canonicalize() we know that only '_' are separators */
         separator = field[0] = fullName;
         fieldIdx = 1;
-        while ((separator = uprv_strchr(field[fieldIdx-1], SEP_CHAR)) && fieldIdx < UPRV_LENGTHOF(field)-1) {
+        while ((separator = uprv_strchr(field[fieldIdx-1], SEP_CHAR)) != 0 && fieldIdx < UPRV_LENGTHOF(field)-1) {
             field[fieldIdx] = separator + 1;
             fieldLen[fieldIdx-1] = (int32_t)(separator - field[fieldIdx-1]);
             fieldIdx++;
@@ -652,7 +678,7 @@ Locale::initBaseName(UErrorCode &status) {
 int32_t
 Locale::hashCode() const
 {
-    return ustr_hashCharsN(fullName, uprv_strlen(fullName));
+    return ustr_hashCharsN(fullName, static_cast<int32_t>(uprv_strlen(fullName)));
 }
 
 void
@@ -704,6 +730,276 @@ Locale::setDefault( const   Locale&     newLocale,
     locale_set_default_internal(localeID, status);
 }
 
+void
+Locale::addLikelySubtags(UErrorCode& status) {
+    if (U_FAILURE(status)) {
+        return;
+    }
+
+    // The maximized locale ID string is often longer, but there is no good
+    // heuristic to estimate just how much longer. Leave that to CharString.
+    CharString maximizedLocaleID;
+    int32_t maximizedLocaleIDCapacity = static_cast<int32_t>(uprv_strlen(fullName));
+
+    char* buffer;
+    int32_t reslen;
+
+    for (;;) {
+        buffer = maximizedLocaleID.getAppendBuffer(
+                /*minCapacity=*/maximizedLocaleIDCapacity,
+                /*desiredCapacityHint=*/maximizedLocaleIDCapacity,
+                maximizedLocaleIDCapacity,
+                status);
+
+        if (U_FAILURE(status)) {
+            return;
+        }
+
+        reslen = uloc_addLikelySubtags(
+                fullName,
+                buffer,
+                maximizedLocaleIDCapacity,
+                &status);
+
+        if (status != U_BUFFER_OVERFLOW_ERROR) {
+            break;
+        }
+
+        maximizedLocaleIDCapacity = reslen;
+        status = U_ZERO_ERROR;
+    }
+
+    if (U_FAILURE(status)) {
+        return;
+    }
+
+    maximizedLocaleID.append(buffer, reslen, status);
+    if (status == U_STRING_NOT_TERMINATED_WARNING) {
+        status = U_ZERO_ERROR;  // Terminators provided by CharString.
+    }
+
+    if (U_FAILURE(status)) {
+        return;
+    }
+
+    init(maximizedLocaleID.data(), /*canonicalize=*/FALSE);
+    if (isBogus()) {
+        status = U_ILLEGAL_ARGUMENT_ERROR;
+    }
+}
+
+void
+Locale::minimizeSubtags(UErrorCode& status) {
+    if (U_FAILURE(status)) {
+        return;
+    }
+
+    // Except for a few edge cases (like the empty string, that is minimized to
+    // "en__POSIX"), minimized locale ID strings will be either the same length
+    // or shorter than their input.
+    CharString minimizedLocaleID;
+    int32_t minimizedLocaleIDCapacity = static_cast<int32_t>(uprv_strlen(fullName));
+
+    char* buffer;
+    int32_t reslen;
+
+    for (;;) {
+        buffer = minimizedLocaleID.getAppendBuffer(
+                /*minCapacity=*/minimizedLocaleIDCapacity,
+                /*desiredCapacityHint=*/minimizedLocaleIDCapacity,
+                minimizedLocaleIDCapacity,
+                status);
+
+        if (U_FAILURE(status)) {
+            return;
+        }
+
+        reslen = uloc_minimizeSubtags(
+                fullName,
+                buffer,
+                minimizedLocaleIDCapacity,
+                &status);
+
+        if (status != U_BUFFER_OVERFLOW_ERROR) {
+            break;
+        }
+
+        // Because of the internal minimal buffer size of CharString, I can't
+        // think of any input data for which this could possibly ever happen.
+        // Maybe it would be better replaced with an assertion instead?
+        minimizedLocaleIDCapacity = reslen;
+        status = U_ZERO_ERROR;
+    }
+
+    if (U_FAILURE(status)) {
+        return;
+    }
+
+    minimizedLocaleID.append(buffer, reslen, status);
+    if (status == U_STRING_NOT_TERMINATED_WARNING) {
+        status = U_ZERO_ERROR;  // Terminators provided by CharString.
+    }
+
+    if (U_FAILURE(status)) {
+        return;
+    }
+
+    init(minimizedLocaleID.data(), /*canonicalize=*/FALSE);
+    if (isBogus()) {
+        status = U_ILLEGAL_ARGUMENT_ERROR;
+    }
+}
+
+Locale U_EXPORT2
+Locale::forLanguageTag(StringPiece tag, UErrorCode& status)
+{
+    Locale result(Locale::eBOGUS);
+
+    if (U_FAILURE(status)) {
+        return result;
+    }
+
+    // If a BCP-47 language tag is passed as the language parameter to the
+    // normal Locale constructor, it will actually fall back to invoking
+    // uloc_forLanguageTag() to parse it if it somehow is able to detect that
+    // the string actually is BCP-47. This works well for things like strings
+    // using BCP-47 extensions, but it does not at all work for things like
+    // BCP-47 grandfathered tags (eg. "en-GB-oed") which are possible to also
+    // interpret as ICU locale IDs and because of that won't trigger the BCP-47
+    // parsing. Therefore the code here explicitly calls uloc_forLanguageTag()
+    // and then Locale::init(), instead of just calling the normal constructor.
+
+    // All simple language tags will have the exact same length as ICU locale
+    // ID strings as they have as BCP-47 strings (like "en_US" for "en-US").
+    CharString localeID;
+    int32_t resultCapacity = tag.size();
+
+    char* buffer;
+    int32_t parsedLength, reslen;
+
+    for (;;) {
+        buffer = localeID.getAppendBuffer(
+                /*minCapacity=*/resultCapacity,
+                /*desiredCapacityHint=*/resultCapacity,
+                resultCapacity,
+                status);
+
+        if (U_FAILURE(status)) {
+            return result;
+        }
+
+        reslen = ulocimp_forLanguageTag(
+                tag.data(),
+                tag.length(),
+                buffer,
+                resultCapacity,
+                &parsedLength,
+                &status);
+
+        if (status != U_BUFFER_OVERFLOW_ERROR) {
+            break;
+        }
+
+        // For all BCP-47 language tags that use extensions, the corresponding
+        // ICU locale ID will be longer but uloc_forLanguageTag() does compute
+        // the exact length needed so this memory reallocation will be done at
+        // most once.
+        resultCapacity = reslen;
+        status = U_ZERO_ERROR;
+    }
+
+    if (U_FAILURE(status)) {
+        return result;
+    }
+
+    if (parsedLength != tag.size()) {
+        status = U_ILLEGAL_ARGUMENT_ERROR;
+        return result;
+    }
+
+    localeID.append(buffer, reslen, status);
+    if (status == U_STRING_NOT_TERMINATED_WARNING) {
+        status = U_ZERO_ERROR;  // Terminators provided by CharString.
+    }
+
+    if (U_FAILURE(status)) {
+        return result;
+    }
+
+    result.init(localeID.data(), /*canonicalize=*/FALSE);
+    if (result.isBogus()) {
+        status = U_ILLEGAL_ARGUMENT_ERROR;
+    }
+    return result;
+}
+
+void
+Locale::toLanguageTag(ByteSink& sink, UErrorCode& status) const
+{
+    if (U_FAILURE(status)) {
+        return;
+    }
+
+    if (fIsBogus) {
+        status = U_ILLEGAL_ARGUMENT_ERROR;
+        return;
+    }
+
+    // All simple language tags will have the exact same length as BCP-47
+    // strings as they have as ICU locale IDs (like "en-US" for "en_US").
+    LocalMemory<char> scratch;
+    int32_t scratch_capacity = static_cast<int32_t>(uprv_strlen(fullName));
+
+    if (scratch_capacity == 0) {
+        scratch_capacity = 3;  // "und"
+    }
+
+    char* buffer;
+    int32_t result_capacity, reslen;
+
+    for (;;) {
+        if (scratch.allocateInsteadAndReset(scratch_capacity) == nullptr) {
+            status = U_MEMORY_ALLOCATION_ERROR;
+            return;
+        }
+
+        buffer = sink.GetAppendBuffer(
+                /*min_capacity=*/scratch_capacity,
+                /*desired_capacity_hint=*/scratch_capacity,
+                scratch.getAlias(),
+                scratch_capacity,
+                &result_capacity);
+
+        reslen = uloc_toLanguageTag(
+                fullName,
+                buffer,
+                result_capacity,
+                /*strict=*/FALSE,
+                &status);
+
+        if (status != U_BUFFER_OVERFLOW_ERROR) {
+            break;
+        }
+
+        // For some very few edge cases a language tag will be longer as a
+        // BCP-47 string than it is as an ICU locale ID. Most notoriously "C"
+        // expands to the BCP-47 tag "en-US-u-va-posix", 16 times longer, and
+        // it'll take several calls to uloc_toLanguageTag() to figure that out.
+        // https://unicode-org.atlassian.net/browse/ICU-20132
+        scratch_capacity = reslen;
+        status = U_ZERO_ERROR;
+    }
+
+    if (U_FAILURE(status)) {
+        return;
+    }
+
+    sink.Append(buffer, reslen);
+    if (status == U_STRING_NOT_TERMINATED_WARNING) {
+        status = U_ZERO_ERROR;  // Terminators not used.
+    }
+}
+
 Locale U_EXPORT2
 Locale::createFromName (const char *name)
 {
@@ -1010,20 +1306,84 @@ KeywordEnumeration::~KeywordEnumeration() {
     uprv_free(keywords);
 }
 
+// A wrapper around KeywordEnumeration that calls uloc_toUnicodeLocaleKey() in
+// the next() method for each keyword before returning it.
+class UnicodeKeywordEnumeration : public KeywordEnumeration {
+public:
+    using KeywordEnumeration::KeywordEnumeration;
+    virtual ~UnicodeKeywordEnumeration();
+
+    virtual const char* next(int32_t* resultLength, UErrorCode& status) {
+        const char* legacy_key = KeywordEnumeration::next(nullptr, status);
+        if (U_SUCCESS(status) && legacy_key != nullptr) {
+            const char* key = uloc_toUnicodeLocaleKey(legacy_key);
+            if (key == nullptr) {
+                status = U_ILLEGAL_ARGUMENT_ERROR;
+            } else {
+                if (resultLength != nullptr) {
+                    *resultLength = static_cast<int32_t>(uprv_strlen(key));
+                }
+                return key;
+            }
+        }
+        if (resultLength != nullptr) *resultLength = 0;
+        return nullptr;
+    }
+};
+
+// Out-of-line virtual destructor to serve as the "key function".
+UnicodeKeywordEnumeration::~UnicodeKeywordEnumeration() = default;
+
 StringEnumeration *
 Locale::createKeywords(UErrorCode &status) const
 {
     char keywords[256];
-    int32_t keywordCapacity = 256;
+    int32_t keywordCapacity = sizeof keywords;
     StringEnumeration *result = NULL;
 
+    if (U_FAILURE(status)) {
+        return result;
+    }
+
     const char* variantStart = uprv_strchr(fullName, '@');
     const char* assignment = uprv_strchr(fullName, '=');
     if(variantStart) {
         if(assignment > variantStart) {
             int32_t keyLen = locale_getKeywords(variantStart+1, '@', keywords, keywordCapacity, NULL, 0, NULL, FALSE, &status);
-            if(keyLen) {
+            if(U_SUCCESS(status) && keyLen) {
                 result = new KeywordEnumeration(keywords, keyLen, 0, status);
+                if (!result) {
+                    status = U_MEMORY_ALLOCATION_ERROR;
+                }
+            }
+        } else {
+            status = U_INVALID_FORMAT_ERROR;
+        }
+    }
+    return result;
+}
+
+StringEnumeration *
+Locale::createUnicodeKeywords(UErrorCode &status) const
+{
+    char keywords[256];
+    int32_t keywordCapacity = sizeof keywords;
+    StringEnumeration *result = NULL;
+
+    if (U_FAILURE(status)) {
+        return result;
+    }
+
+    const char* variantStart = uprv_strchr(fullName, '@');
+    const char* assignment = uprv_strchr(fullName, '=');
+    if(variantStart) {
+        if(assignment > variantStart) {
+            int32_t keyLen = locale_getKeywords(variantStart+1, '@', keywords, keywordCapacity, NULL, 0, NULL, FALSE, &status);
+            if(U_SUCCESS(status) && keyLen) {
+                result = new UnicodeKeywordEnumeration(keywords, keyLen, 0, status);
+                if (!result) {
+                    status = U_MEMORY_ALLOCATION_ERROR;
+                }
             }
         } else {
             status = U_INVALID_FORMAT_ERROR;
@@ -1038,6 +1398,105 @@ Locale::getKeywordValue(const char* keywordName, char *buffer, int32_t bufLen, U
     return uloc_getKeywordValue(fullName, keywordName, buffer, bufLen, &status);
 }
 
+void
+Locale::getKeywordValue(StringPiece keywordName, ByteSink& sink, UErrorCode& status) const {
+    if (U_FAILURE(status)) {
+        return;
+    }
+
+    if (fIsBogus) {
+        status = U_ILLEGAL_ARGUMENT_ERROR;
+        return;
+    }
+
+    // TODO: Remove the need for a const char* to a NUL terminated buffer.
+    const CharString keywordName_nul(keywordName, status);
+    if (U_FAILURE(status)) {
+        return;
+    }
+
+    LocalMemory<char> scratch;
+    int32_t scratch_capacity = 16;  // Arbitrarily chosen default size.
+
+    char* buffer;
+    int32_t result_capacity, reslen;
+
+    for (;;) {
+        if (scratch.allocateInsteadAndReset(scratch_capacity) == nullptr) {
+            status = U_MEMORY_ALLOCATION_ERROR;
+            return;
+        }
+
+        buffer = sink.GetAppendBuffer(
+                /*min_capacity=*/scratch_capacity,
+                /*desired_capacity_hint=*/scratch_capacity,
+                scratch.getAlias(),
+                scratch_capacity,
+                &result_capacity);
+
+        reslen = uloc_getKeywordValue(
+                fullName,
+                keywordName_nul.data(),
+                buffer,
+                result_capacity,
+                &status);
+
+        if (status != U_BUFFER_OVERFLOW_ERROR) {
+            break;
+        }
+
+        scratch_capacity = reslen;
+        status = U_ZERO_ERROR;
+    }
+
+    if (U_FAILURE(status)) {
+        return;
+    }
+
+    sink.Append(buffer, reslen);
+    if (status == U_STRING_NOT_TERMINATED_WARNING) {
+        status = U_ZERO_ERROR;  // Terminators not used.
+    }
+}
+
+void
+Locale::getUnicodeKeywordValue(StringPiece keywordName,
+                               ByteSink& sink,
+                               UErrorCode& status) const {
+    // TODO: Remove the need for a const char* to a NUL terminated buffer.
+    const CharString keywordName_nul(keywordName, status);
+    if (U_FAILURE(status)) {
+        return;
+    }
+
+    const char* legacy_key = uloc_toLegacyKey(keywordName_nul.data());
+
+    if (legacy_key == nullptr) {
+        status = U_ILLEGAL_ARGUMENT_ERROR;
+        return;
+    }
+
+    CharString legacy_value;
+    {
+        CharStringByteSink sink(&legacy_value);
+        getKeywordValue(legacy_key, sink, status);
+    }
+
+    if (U_FAILURE(status)) {
+        return;
+    }
+
+    const char* unicode_value = uloc_toUnicodeLocaleType(
+            keywordName_nul.data(), legacy_value.data());
+
+    if (unicode_value == nullptr) {
+        status = U_ILLEGAL_ARGUMENT_ERROR;
+        return;
+    }
+
+    sink.Append(unicode_value, static_cast<int32_t>(uprv_strlen(unicode_value)));
+}
+
 void
 Locale::setKeywordValue(const char* keywordName, const char* keywordValue, UErrorCode &status)
 {
@@ -1048,6 +1507,46 @@ Locale::setKeywordValue(const char* keywordName, const char* keywordValue, UErro
     }
 }
 
+void
+Locale::setKeywordValue(StringPiece keywordName,
+                        StringPiece keywordValue,
+                        UErrorCode& status) {
+    // TODO: Remove the need for a const char* to a NUL terminated buffer.
+    const CharString keywordName_nul(keywordName, status);
+    const CharString keywordValue_nul(keywordValue, status);
+    setKeywordValue(keywordName_nul.data(), keywordValue_nul.data(), status);
+}
+
+void
+Locale::setUnicodeKeywordValue(StringPiece keywordName,
+                               StringPiece keywordValue,
+                               UErrorCode& status) {
+    // TODO: Remove the need for a const char* to a NUL terminated buffer.
+    const CharString keywordName_nul(keywordName, status);
+    const CharString keywordValue_nul(keywordValue, status);
+
+    if (U_FAILURE(status)) {
+        return;
+    }
+
+    const char* legacy_key = uloc_toLegacyKey(keywordName_nul.data());
+
+    if (legacy_key == nullptr) {
+        status = U_ILLEGAL_ARGUMENT_ERROR;
+        return;
+    }
+
+    const char* legacy_value =
+        uloc_toLegacyType(keywordName_nul.data(), keywordValue_nul.data());
+
+    if (legacy_value == nullptr) {
+        status = U_ILLEGAL_ARGUMENT_ERROR;
+        return;
+    }
+
+    setKeywordValue(legacy_key, legacy_value, status);
+}
+
 const char *
 Locale::getBaseName() const {
     return baseName;
index bb45e7df83cf93b79735212414b7274946d4b656..47f5e080f820a5534cfd6555d726674098e6094b 100644 (file)
@@ -34,9 +34,9 @@ U_NAMESPACE_BEGIN
 // private mutex where possible.
 
 // For example:
-// 
-// UMutex myMutex;
-// 
+//
+// UMutex myMutex = U_MUTEX_INITIALIZER;
+//
 // void Function(int arg1, int arg2)
 // {
 //    static Object* foo;     // Shared read-write object
index c8bf440ae1081950d3a0361e06c299315e62d63c..82a68097385285723be3f20b9d6daf95da139a94 100644 (file)
 
 #ifdef INCLUDED_FROM_NORMALIZER2_CPP
 
-static const UVersionInfo norm2_nfc_data_formatVersion={3,0,0,0};
+static const UVersionInfo norm2_nfc_data_formatVersion={4,0,0,0};
 static const UVersionInfo norm2_nfc_data_dataVersion={0xb,0,0,0};
 
 static const int32_t norm2_nfc_data_indexes[Normalizer2Impl::IX_COUNT]={
-0x50,0x4e50,0x8aa8,0x8ba8,0x8ba8,0x8ba8,0x8ba8,0x8ba8,0xc0,0x300,0xadc,0x29d0,0x3c56,0xfc00,0x1282,0x3b8c,
+0x50,0x4ab0,0x8708,0x8808,0x8808,0x8808,0x8808,0x8808,0xc0,0x300,0xadc,0x29d0,0x3c56,0xfc00,0x1282,0x3b8c,
 0x3c24,0x3c56,0x300,0
 };
 
-static const uint16_t norm2_nfc_data_trieIndex[9976]={
-0x2aa,0x2b2,0x2ba,0x2c2,0x2d0,0x2d8,0x2e0,0x2e8,0x2f0,0x2f8,0x300,0x308,0x310,0x318,0x31e,0x326,
-0x32e,0x336,0x2c9,0x2d1,0x33b,0x343,0x2c9,0x2d1,0x34b,0x353,0x35b,0x363,0x36b,0x373,0x37b,0x383,
-0x38b,0x393,0x39b,0x3a3,0x3ab,0x3b3,0x3bb,0x3c3,0x2c9,0x2d1,0x2c9,0x2d1,0x3ca,0x3d2,0x3da,0x3e2,
-0x3e6,0x3ee,0x3f4,0x3fc,0x2c9,0x2d1,0x404,0x40c,0x410,0x418,0x420,0x428,0x2c9,0x2d1,0x426,0x42e,
-0x436,0x43d,0x441,0x2c9,0x2c9,0x2c9,0x448,0x450,0x2c9,0x458,0x460,0x2c9,0x2c9,0x468,0x470,0x478,
-0x2c9,0x480,0x488,0x2c9,0x2c9,0x490,0x498,0x2c9,0x2c9,0x468,0x49f,0x2c9,0x4a7,0x4ad,0x4b5,0x2c9,
-0x2c9,0x2c9,0x4bc,0x2c9,0x2c9,0x4c2,0x4ca,0x2c9,0x2c9,0x4d0,0x4d8,0x2c9,0x2c9,0x2c9,0x4de,0x2c9,
-0x2c9,0x4e6,0x4ed,0x2c9,0x2c9,0x4f0,0x4f7,0x2c9,0x4fa,0x501,0x509,0x511,0x519,0x521,0x528,0x2c9,
-0x2c9,0x52f,0x2c9,0x2c9,0x536,0x2c9,0x2c9,0x2c9,0x96d,0x2c9,0x2c9,0x975,0x2c9,0x97b,0x983,0x2c9,
-0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x53a,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,
-0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,
-0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x542,0x542,0x2c9,0x2c9,0x2c9,0x2c9,0x548,0x2c9,
-0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x550,0x2c9,0x2c9,0x2c9,0x553,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,
-0x55a,0x2c9,0x2c9,0x562,0x2c9,0x56a,0x2c9,0x2c9,0x572,0x577,0x57f,0x585,0x2c9,0x58b,0x2c9,0x592,
-0x2c9,0x597,0x2c9,0x2c9,0x2c9,0x2c9,0x59d,0x5a5,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x5ad,0x5b2,
-0x5ba,0x5c2,0x5ca,0x5d2,0x5da,0x5e2,0x5ea,0x5f2,0x5fa,0x602,0x60a,0x612,0x61a,0x622,0x62a,0x632,
-0x63a,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x63e,0x646,0x2c9,0x64d,0x2c9,0x2c9,0x651,0x658,0x65d,0x2c9,
-0x665,0x66d,0x675,0x67d,0x685,0x68d,0x2c9,0x695,0x2c9,0x69b,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,
-0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,
-0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,
-0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,
-0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x69e,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,
-0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x6a6,0x2c9,0x2c9,0x2c9,0x6ab,0x2c9,0x2c9,0x2c9,0x6b3,
-0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,
-0x2c9,0x6bb,0x6c2,0x6ca,0x6d2,0x6da,0x6e2,0x6ea,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,
-0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,
-0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,
-0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,
-0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,
-0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,
-0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,
-0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,
-0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,
-0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,
-0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,
-0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,
-0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,
-0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,
-0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,
-0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,
-0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,
-0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,
-0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,
-0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,
-0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,
-0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,
-0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,
-0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,
-0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,
-0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,
-0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,
-0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,
-0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,
-0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,
-0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,
-0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,
-0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,
-0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,
-0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,
-0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,
-0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,
-0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,
-0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,
-0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,
-0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,
-0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,
-0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,
-0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,
-0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,
-0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,
-0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,
-0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,
-0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,
-0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,
-0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,
-0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,
-0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,
-0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,
-0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,
-0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,
-0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,
-0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,
-0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,
-0x2c9,0x2c9,0x2c9,0x6f2,0x6fa,0x2c9,0x2c9,0x702,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,
-0x709,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x710,0x718,0x2c9,0x71e,0x722,0x2c9,0x2c9,0x598,0x72a,0x2c9,
-0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x72e,0x736,0x739,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x498,
-0x98b,0x98c,0x98d,0x98e,0x98f,0x990,0x99f,0x98b,0x98c,0x98d,0x98e,0x98f,0x990,0x99f,0x98b,0x98c,
-0x98d,0x98e,0x98f,0x990,0x99f,0x98b,0x98c,0x98d,0x98e,0x98f,0x990,0x99f,0x98b,0x98c,0x98d,0x98e,
-0x98f,0x990,0x99f,0x98b,0x98c,0x98d,0x98e,0x98f,0x990,0x99f,0x98b,0x98c,0x98d,0x98e,0x98f,0x990,
-0x99f,0x98b,0x98c,0x98d,0x98e,0x98f,0x990,0x99f,0x98b,0x98c,0x98d,0x98e,0x98f,0x990,0x99f,0x98b,
-0x98c,0x98d,0x98e,0x98f,0x990,0x99f,0x98b,0x98c,0x98d,0x98e,0x98f,0x990,0x99f,0x98b,0x98c,0x98d,
-0x98e,0x98f,0x990,0x99f,0x98b,0x98c,0x98d,0x98e,0x98f,0x990,0x99f,0x98b,0x98c,0x98d,0x98e,0x98f,
-0x990,0x99f,0x98b,0x98c,0x98d,0x98e,0x98f,0x990,0x99f,0x98b,0x98c,0x98d,0x98e,0x98f,0x990,0x99f,
-0x98b,0x98c,0x98d,0x98e,0x98f,0x990,0x99f,0x98b,0x98c,0x98d,0x98e,0x98f,0x990,0x99f,0x98b,0x98c,
-0x98d,0x98e,0x98f,0x990,0x99f,0x98b,0x98c,0x98d,0x98e,0x98f,0x990,0x99f,0x98b,0x98c,0x98d,0x98e,
-0x98f,0x990,0x99f,0x98b,0x98c,0x98d,0x98e,0x98f,0x990,0x99f,0x98b,0x98c,0x98d,0x98e,0x98f,0x990,
-0x99f,0x98b,0x98c,0x98d,0x98e,0x98f,0x990,0x99f,0x98b,0x98c,0x98d,0x98e,0x98f,0x990,0x99f,0x98b,
-0x98c,0x98d,0x98e,0x98f,0x990,0x99f,0x98b,0x98c,0x98d,0x98e,0x98f,0x990,0x99f,0x98b,0x98c,0x98d,
-0x98e,0x98f,0x990,0x99f,0x98b,0x98c,0x98d,0x98e,0x98f,0x990,0x99f,0x98b,0x98c,0x98d,0x98e,0x98f,
-0x990,0x99f,0x98b,0x98c,0x98d,0x98e,0x98f,0x990,0x99f,0x98b,0x98c,0x98d,0x98e,0x98f,0x990,0x99f,
-0x98b,0x98c,0x98d,0x98e,0x98f,0x990,0x99f,0x98b,0x98c,0x98d,0x98e,0x98f,0x990,0x99f,0x98b,0x98c,
-0x98d,0x98e,0x98f,0x990,0x99f,0x98b,0x98c,0x98d,0x98e,0x98f,0x990,0x99f,0x98b,0x98c,0x98d,0x98e,
-0x98f,0x990,0x99f,0x98b,0x98c,0x98d,0x98e,0x98f,0x990,0x99f,0x98b,0x98c,0x98d,0x98e,0x98f,0x990,
-0x99f,0x98b,0x98c,0x98d,0x98e,0x98f,0x990,0x99f,0x98b,0x98c,0x98d,0x98e,0x98f,0x990,0x99f,0x98b,
-0x98c,0x98d,0x98e,0x98f,0x990,0x99f,0x98b,0x98c,0x98d,0x98e,0x98f,0x990,0x99f,0x98b,0x98c,0x98d,
-0x98e,0x98f,0x990,0x99f,0x98b,0x98c,0x98d,0x98e,0x98f,0x990,0x99f,0x98b,0x98c,0x98d,0x98e,0x98f,
-0x990,0x99f,0x98b,0x98c,0x98d,0x98e,0x98f,0x990,0x99f,0x98b,0x98c,0x98d,0x98e,0x98f,0x990,0x99f,
-0x98b,0x98c,0x98d,0x98e,0x98f,0x990,0x99f,0x98b,0x98c,0x98d,0x98e,0x98f,0x990,0x997,0x2c9,0x2c9,
-0x9a7,0x9ae,0x2aa,0x9b5,0x2aa,0x2aa,0x2aa,0x2aa,0x2aa,0x2aa,0x2aa,0x2aa,0x2aa,0x2aa,0x2aa,0x2aa,
-0x2aa,0x2aa,0x2aa,0x2aa,0x2aa,0x2aa,0x2aa,0x2aa,0x2aa,0x2aa,0x2aa,0x2aa,0x2aa,0x2aa,0x2aa,0x2aa,
-0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,
-0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,
-0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,
-0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,
-0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,
-0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,
-0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,
-0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,
-0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,
-0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,
-0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,
-0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,
-0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,
-0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,
-0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x741,0x749,0x751,0x759,0x761,0x769,0x771,0x779,
-0x781,0x789,0x791,0x799,0x7a1,0x7a9,0x7b1,0x2c9,0x7b8,0x7c0,0x7c8,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,
-0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,
-0x2c9,0x7d0,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,
-0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,
-0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,
-0xb28,0xb28,0xb40,0xb80,0xbc0,0xc00,0xc40,0xc78,0xcb8,0xb24,0xcec,0xb24,0xd2c,0xd6c,0xdac,0xdec,
-0xe2c,0xe6c,0xeac,0xeec,0xb24,0xb24,0xf28,0xf68,0xf98,0xfd0,0xb24,0x1010,0x1040,0x1080,0xb24,0x1098,
-0x880,0x8b0,0x8ee,0x92d,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x95a,0x188,0x188,
-0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x976,0x188,0x188,0x9ac,0x188,0x9ec,0xa26,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,0xa66,
-0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x7d4,
-0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x7dc,0x2c9,0x2c9,0x2c9,0x7df,0x2c9,0x2c9,0x2c9,0x2c9,
-0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,
-0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,
-0x7e6,0x7ea,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x7f2,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,
-0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x7f9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,
-0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x800,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,
-0x709,0x6ab,0x805,0x80d,0x2c9,0x2c9,0x815,0x81c,0x2c9,0x598,0x2c9,0x2c9,0x824,0x2c9,0x2c9,0x827,
-0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x82d,0x2c9,0x830,0x838,0x83f,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,
-0x847,0x2c9,0x2c9,0x84f,0x857,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x85c,0x864,0x2c9,0x2c9,0x6ab,
-0x2c9,0x2c9,0x2c9,0x867,0x2c9,0x2c9,0x2c9,0x86d,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x870,0x2c9,
-0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x542,0x86e,
-0x2c9,0x877,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x6ab,0x2c9,
-0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x87f,0x2c9,0x882,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,
-0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,
-0x2c9,0x888,0x2c9,0x88e,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,
-0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,
-0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x894,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,
-0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,
-0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x89c,0x8a4,0x8ac,0x8b2,0x8ba,0x2c9,0x2c9,0x2c9,0x8c2,0x2c9,
-0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,
-0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,
-0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x8ca,0x8d2,0x2c9,0x2c9,
-0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,
-0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,
-0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,
-0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x8d6,0x2c9,0x2c9,0x2c9,
-0x8dd,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,
-0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,
-0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,
-0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x8e5,0x8ed,0x8f5,0x8fd,0x905,0x90d,0x915,0x91d,0x925,0x92d,
-0x935,0x93d,0x945,0x94d,0x955,0x95d,0x965,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,
-0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,
-0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,
-0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2c9,0x2a9,0x2a9,1,1,1,1,1,1,1,1,
-1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
-1,1,1,1,1,1,1,1,1,1,1,1,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,
+static const uint16_t norm2_nfc_data_trieIndex[1690]={
+0,0x40,0x7b,0xbb,0xfb,0x13a,0x17a,0x1b2,0x1f2,0x226,0x254,0x226,0x294,0x2d4,0x313,0x353,
+0x393,0x3d2,0x40f,0x44e,0x226,0x226,0x488,0x4c8,0x4f8,0x530,0x226,0x570,0x59f,0x5de,0x226,0x5f3,
+0x631,0x65f,0x226,0x68c,0x6cc,0x709,0x729,0x768,0x7a7,0x7e4,0x803,0x840,0x729,0x879,0x8a7,0x8e6,
+0x226,0x920,0x937,0x977,0x98e,0x9cd,0x226,0xa03,0xa23,0xa5e,0xa6a,0xaa4,0xacc,0xb09,0xb49,0xb83,
+0xb9e,0x226,0xbd9,0x226,0xc19,0xc38,0xc6e,0xcab,0x226,0x226,0x226,0x226,0x226,0xcce,0x226,0x226,
+0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0xcfa,0x226,0x226,0xd2f,
+0x226,0x226,0xd4d,0x226,0xd77,0x226,0x226,0x226,0xdb3,0xdd3,0xe13,0x226,0xe51,0xe91,0xec5,0xef1,
+0x808,0x226,0x226,0xf25,0x226,0x226,0x226,0xf65,0xfa5,0xfe5,0x1025,0x1065,0x10a5,0x10e5,0x1125,0x1165,
+0x11a5,0x226,0x226,0x11d5,0x1206,0x226,0x1236,0x1269,0x12a6,0x12e5,0x1325,0x135b,0x1389,0x226,0x226,0x226,
+0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,
+0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x13b4,0x226,0x226,0x226,0x226,
+0x226,0x226,0x226,0xcbc,0x226,0x13d1,0x226,0x1411,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,
+0x1451,0x148b,0x14c9,0x1509,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,
+0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,
+0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,
+0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,
+0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,
+0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,
+0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,
+0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,
+0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,
+0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,
+0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,
+0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,
+0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,
+0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,
+0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,
+0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,
+0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,
+0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,
+0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,
+0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,
+0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,
+0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,
+0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,
+0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,
+0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,
+0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,
+0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,
+0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,
+0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,
+0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x1548,0x1586,0x15a6,0x226,0x226,0x226,0x226,
+0x15e0,0x226,0x226,0x161c,0x164e,0x167c,0x80c,0x168f,0x226,0x226,0x169f,0x16df,0x226,0x226,0x226,0x13e3,
+0x171f,0x1727,0x172f,0x1737,0x1723,0x172b,0x1733,0x171f,0x1727,0x172f,0x1737,0x1723,0x172b,0x1733,0x171f,0x1727,
+0x172f,0x1737,0x1723,0x172b,0x1733,0x171f,0x1727,0x172f,0x1737,0x1723,0x172b,0x1733,0x171f,0x1727,0x172f,0x1737,
+0x1723,0x172b,0x1733,0x171f,0x1727,0x172f,0x1737,0x1723,0x172b,0x1733,0x171f,0x1727,0x172f,0x1737,0x1723,0x172b,
+0x1733,0x171f,0x1727,0x172f,0x1737,0x1723,0x172b,0x1733,0x171f,0x1727,0x172f,0x1737,0x1723,0x172b,0x1733,0x171f,
+0x1727,0x172f,0x1737,0x1723,0x172b,0x1733,0x171f,0x1727,0x172f,0x1737,0x1723,0x172b,0x1733,0x171f,0x1727,0x172f,
+0x1737,0x1723,0x172b,0x1733,0x171f,0x1727,0x172f,0x1737,0x1723,0x172b,0x1733,0x171f,0x1727,0x172f,0x1737,0x1723,
+0x172b,0x1733,0x171f,0x1727,0x172f,0x1737,0x1723,0x172b,0x1733,0x171f,0x1727,0x172f,0x1737,0x1723,0x172b,0x1733,
+0x171f,0x1727,0x172f,0x1737,0x1723,0x172b,0x1733,0x171f,0x1727,0x172f,0x1737,0x1723,0x172b,0x1733,0x171f,0x1727,
+0x172f,0x1737,0x1723,0x172b,0x1733,0x171f,0x1727,0x172f,0x1737,0x1723,0x172b,0x1733,0x171f,0x1727,0x172f,0x1737,
+0x1723,0x172b,0x1733,0x171f,0x1727,0x172f,0x1737,0x1723,0x172b,0x1733,0x171f,0x1727,0x172f,0x1737,0x1723,0x172b,
+0x1733,0x171f,0x1727,0x172f,0x1737,0x1723,0x172b,0x1733,0x171f,0x1727,0x172f,0x1737,0x1723,0x172b,0x176b,0x226,
+0x17ab,0x17e6,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,
+0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,
+0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,
+0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,
+0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,
+0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,
+0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,
+0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,
+0x226,0x226,0x226,0x226,0x1826,0x1866,0x18a6,0x18e6,0x1926,0x1966,0x19a6,0x19e6,0x1a09,0x1a49,0x226,0x226,
+0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x1a69,0x226,0x226,0x226,0x226,0x226,0x226,0x226,
+0x61f,0x62e,0x644,0x663,0x678,0x678,0x678,0x67c,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,
+0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,
+0x226,0x226,0x226,0x226,0x226,0x226,0x226,0xbd9,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,
+0x226,0x226,0x226,0x226,0x226,0x226,0x54f,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x40c,
+0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x1a9c,0x226,0x226,0x1aac,0x226,0x226,0x226,0x226,
+0x226,0x226,0x226,0x226,0x226,0x226,0xdc5,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,
+0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x1abc,0x226,0x226,0x226,0x226,0x226,0x226,
+0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x1ac6,0x54f,
+0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x7eb,0x226,0x226,0x9ba,0x226,0x1ad6,
+0x1ae3,0x1aef,0x226,0x226,0x226,0x226,0x414,0x226,0x1afa,0x1b0a,0x226,0x226,0x226,0x7e0,0x226,0x226,
+0x226,0x226,0x1b1a,0x226,0x226,0x226,0x1b25,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,
+0x226,0x1b2c,0x226,0x226,0x226,0x226,0x1b37,0x1b46,0x8f6,0x1b54,0x412,0x226,0x226,0x226,0x226,0x226,
+0x226,0x226,0x226,0x1b62,0x798,0x226,0x226,0x226,0x226,0x226,0x1b72,0x1b81,0x226,0x226,0x226,0x226,
+0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x8d6,0x1b89,0x1b99,0x226,0x226,0x226,0x9ba,
+0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x1ba3,0x226,0x226,0x226,0x226,0x226,0x226,0x7e6,0x226,
+0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x1ba0,0x226,0x226,0x226,
+0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,
+0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x7ed,0x7ea,0x226,0x226,0x226,0x226,0x7e8,
+0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,
+0x226,0x226,0x226,0x226,0x226,0x226,0x9ba,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,
+0x226,0x226,0x226,0x226,0x226,0x226,0x226,0xbd3,0x226,0x226,0x226,0x226,0x7ea,0x226,0x226,0x226,
+0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x1bb3,0x226,0x226,0x226,
+0xebe,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x1bb8,0x226,0x226,
+0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,
+0x226,0x226,0x226,0x226,0x1bc7,0x1bd7,0x1be5,0x1bf2,0x226,0x1bfe,0x1c0c,0x1c1c,0x226,0x226,0x226,0x226,
+0xce9,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,
+0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x1c2c,0x1c34,0x1c42,0x226,
+0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,
+0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x1c52,0x226,0x226,0x226,
+0x226,0x226,0x226,0x1c5e,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x1c6e,
+0x1c7e,0x1c8e,0x1c9e,0x1cae,0x1cbe,0x1cce,0x1cde,0x1cee,0x1cfe,0x1d0e,0x1d1e,0x1d2e,0x1d3e,0x1d4e,0x1d5e,0x1d6e,
+0x1d7e,0x1d8e,0x1d9e,0x1dae,0x1dbe,0x1dce,0x1dde,0x1dee,0x1dfe,0x1e0e,0x1e1e,0x1e2e,0x1e3e,0x1e4e,0x1e5e,0x1e6e,
+0x1e7e,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,
+0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x408,
+0x428,0xc4,0xc4,0xc4,0x448,0x457,0x46a,0x486,0x4a3,0x4bf,0x4dc,0x4f9,0x516,0x533,0xc4,0xc4,
+0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,
+0xc4,0xc4,0xc4,0x54d,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,
+0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,
+0xc4,0xc4,0x564,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0x56f,0x58c,0xc4,0xc4,0xc4,
+0xc4,0xc4,0xc4,0x5ac,0xc4,0xc4,0xc4,0x5bf,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,
+0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,
+0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0x5df,0x5ff
+};
+
+static const uint16_t norm2_nfc_data_trieData[7822]={
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,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,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,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,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,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,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,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,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,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,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,
@@ -281,369 +220,415 @@ static const uint16_t norm2_nfc_data_trieIndex[9976]={
 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,
+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,
+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,
-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,0xffcc,0xffcc,
+0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffb8,0xffcc,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,0xffcc,0xffcc,0xffcc,0xffcc,1,0xffcc,0xffcc,0xffcc,0xffcc,
+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,0xffb8,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,1,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffb8,0xffcc,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,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,0xffb8,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,0xffb8,
+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,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,1,1,1,1,1,1,1,1,1,1,1,0xffcc,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,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,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,1,1,1,
+1,1,1,1,1,0xfe0e,1,0xfc00,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,1,1,1,1,1,
+1,1,1,1,1,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,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,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,
+1,1,1,1,1,1,1,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,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,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,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,1,1,1,
+1,1,1,1,1,0xfc00,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,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,1,1,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,1,1,1,1,1,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,1,1,1,1,1,1,
+1,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,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,1,
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,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,1,1,1,1,1,
+1,1,1,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,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,1,1,1,1,1,1,1,1,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,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,1,1,1,1,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,1,1,1,
+1,0xffb8,1,0xffb8,1,0xffb0,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,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,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,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,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,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,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,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,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,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,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,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,0xfe12,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,0xfe12,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,0xfe12,1,1,1,1,1,1,1,1,1,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,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,0xffb8,0xffb8,0xffcc,0xffcc,0xffcc,0xffb8,0xffcc,0xffb8,0xffb8,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,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,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,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,1,1,1,1,0xfe0e,0xfe0e,1,0xfc00,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,0xffcc,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,
+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,1,1,1,1,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,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,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,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,1,1,1,0xfe12,
+1,1,1,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffb8,0xffb8,0xffb8,0xffb8,0xffb8,0xffb8,0xffcc,0xffcc,
+0xffb8,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,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,
-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,0xffcc,0xffb8,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,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,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,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,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,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,1,1,1,1,1,1,1,1,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,1,1,1,1,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,
+1,1,1,1,0x2701,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,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,1,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,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,1,1,1,1,1,1,1,1,1,1,1,
+1,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,1,1,1,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,
+0x2abf,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
 1,1,1,1,1,1,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,
+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,
-1,1,1,1,1,1,1,1,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,1,
+1,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,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,
+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,0xffb4,0xffc8,0xffd0,0xffbc,0xffc0,
+0xffc0,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,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,1,1,1,1,1,1,1,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,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,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,0xffcc,0xffcc,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,1,1,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,0x3c54,
-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
+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,1,
+1,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,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,1,
+1,1,1,1,1,1,1,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,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,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,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,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,1,
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,1,0x3c56,1,0x3c56,0x3c56,0x3c56,
+0x3c56,0x3c56,0x3c56,1,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,0x3c56,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,0x3c56,1,1,1,1,0x3c56,
+1,1,1,0x3c56,1,0x3c56,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,1,1,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,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,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,1,1,1,1,1,1,1,
+1,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,0xffb8,0xffb8,0xffb8,0xffb8,0xffb8,0xffb8,0xffcc,0xffcc,1,1,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,0xffcc,0xfe02,0xffb8,1,1,1,1,0xfe12,1,1,1,1,
+0xffcc,0xffcc,0xffcc,0xffcc,1,1,1,1,1,1,1,1,0xffb8,0xffb8,0xffcc,0xffcc,
+0xffcc,0xffb8,0xffcc,0xffb8,0xffb8,0xffb8,1,1,1,1,1,1,1,1,1,0xa94,
+0x2959,0xa9a,0x2963,1,1,1,1,1,0xaa0,1,1,1,1,1,0x296d,1,
+1,1,1,1,1,1,1,1,0xfe12,0xfc0e,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,0xfe12,0xfe0e,1,1,1,1,
+1,1,1,1,1,0xfe0e,0xfe12,1,1,1,1,1,1,1,1,1,
+1,1,0xfe0e,0xfe0e,1,0xfc00,1,1,1,1,1,1,1,0xab2,1,1,
+1,0x298b,0x2995,0xfe12,1,1,1,1,1,1,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,
+0xffcc,1,1,1,0xfe12,1,1,1,0xfe0e,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,0xfe12,0xfe0e,1,1,1,1,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,0xfe12,0xfe0e,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,0xfe02,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,1,1,1,1,1,1,1,1,
+0xffb8,0xffb8,0xffb8,0xffb8,0xffb8,1,1,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffb8,0xffb8,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,0x32d6,0x32e0,0x32f4,0x330c,0x3324,0x333c,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,1,1,0xffcc,
+0xffcc,0xffcc,0xffcc,0xffcc,1,0xffcc,0xffcc,1,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,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,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
+};
+
+static const UCPTrie norm2_nfc_data_trie={
+    norm2_nfc_data_trieIndex,
+    { norm2_nfc_data_trieData },
+    1690, 7822,
+    0x2fc00, 0x30,
+    0, 0,
+    0, 0,
+    0xc4, 0x226,
+    0x1,
 };
 
 static const uint16_t norm2_nfc_data_extraData[7724]={
@@ -1151,19 +1136,4 @@ static const uint8_t norm2_nfc_data_smallFCD[256]={
 0,0,0,0,0,0,0,0,0,0,0,7,0,0,2,0
 };
 
-static const UTrie2 norm2_nfc_data_trie={
-    norm2_nfc_data_trieIndex,
-    norm2_nfc_data_trieIndex+2728,
-    NULL,
-    2728,
-    7248,
-    0x188,
-    0xb24,
-    0x1,
-    0x1,
-    0x30000,
-    0x26f4,
-    NULL, 0, FALSE, FALSE, 0, NULL
-};
-
 #endif  // INCLUDED_FROM_NORMALIZER2_CPP
index 0f12dfcff42fbdab0dcb7edc82b4d8691f3c3725..6be7e0b21a2bf9ec31cf3e2767e6d2511fc04292 100644 (file)
 
 using icu::Normalizer2Impl;
 
+#if NORM2_HARDCODE_NFC_DATA
 // NFC/NFD data machine-generated by gennorm2 --csource
 #define INCLUDED_FROM_NORMALIZER2_CPP
 #include "norm2_nfc_data.h"
+#endif
 
 U_NAMESPACE_BEGIN
 
@@ -176,6 +178,36 @@ FCDNormalizer2::~FCDNormalizer2() {}
 
 // instance cache ---------------------------------------------------------- ***
 
+U_CDECL_BEGIN
+static UBool U_CALLCONV uprv_normalizer2_cleanup();
+U_CDECL_END
+
+static Normalizer2   *noopSingleton;
+static icu::UInitOnce noopInitOnce = U_INITONCE_INITIALIZER;
+
+static void U_CALLCONV initNoopSingleton(UErrorCode &errorCode) {
+    if(U_FAILURE(errorCode)) {
+        return;
+    }
+    noopSingleton=new NoopNormalizer2;
+    if(noopSingleton==NULL) {
+        errorCode=U_MEMORY_ALLOCATION_ERROR;
+        return;
+    }
+    ucln_common_registerCleanup(UCLN_COMMON_NORMALIZER2, uprv_normalizer2_cleanup);
+}
+
+const Normalizer2 *Normalizer2Factory::getNoopInstance(UErrorCode &errorCode) {
+    if(U_FAILURE(errorCode)) { return NULL; }
+    umtx_initOnce(noopInitOnce, &initNoopSingleton, errorCode);
+    return noopSingleton;
+}
+
+const Normalizer2Impl *
+Normalizer2Factory::getImpl(const Normalizer2 *norm2) {
+    return &((Normalizer2WithImpl *)norm2)->impl;
+}
+
 Norm2AllModes::~Norm2AllModes() {
     delete impl;
 }
@@ -195,6 +227,7 @@ Norm2AllModes::createInstance(Normalizer2Impl *impl, UErrorCode &errorCode) {
     return allModes;
 }
 
+#if NORM2_HARDCODE_NFC_DATA
 Norm2AllModes *
 Norm2AllModes::createNFCInstance(UErrorCode &errorCode) {
     if(U_FAILURE(errorCode)) {
@@ -210,48 +243,15 @@ Norm2AllModes::createNFCInstance(UErrorCode &errorCode) {
     return createInstance(impl, errorCode);
 }
 
-U_CDECL_BEGIN
-static UBool U_CALLCONV uprv_normalizer2_cleanup();
-U_CDECL_END
-
 static Norm2AllModes *nfcSingleton;
-static Normalizer2   *noopSingleton;
 
 static icu::UInitOnce nfcInitOnce = U_INITONCE_INITIALIZER;
-static icu::UInitOnce noopInitOnce = U_INITONCE_INITIALIZER;
 
-// UInitOnce singleton initialization functions
 static void U_CALLCONV initNFCSingleton(UErrorCode &errorCode) {
     nfcSingleton=Norm2AllModes::createNFCInstance(errorCode);
     ucln_common_registerCleanup(UCLN_COMMON_NORMALIZER2, uprv_normalizer2_cleanup);
 }
 
-static void U_CALLCONV initNoopSingleton(UErrorCode &errorCode) {
-    if(U_FAILURE(errorCode)) {
-        return;
-    }
-    noopSingleton=new NoopNormalizer2;
-    if(noopSingleton==NULL) {
-        errorCode=U_MEMORY_ALLOCATION_ERROR;
-        return;
-    }
-    ucln_common_registerCleanup(UCLN_COMMON_NORMALIZER2, uprv_normalizer2_cleanup);
-}
-
-U_CDECL_BEGIN
-
-static UBool U_CALLCONV uprv_normalizer2_cleanup() {
-    delete nfcSingleton;
-    nfcSingleton = NULL;
-    delete noopSingleton;
-    noopSingleton = NULL;
-    nfcInitOnce.reset(); 
-    noopInitOnce.reset(); 
-    return TRUE;
-}
-
-U_CDECL_END
-
 const Norm2AllModes *
 Norm2AllModes::getNFCInstance(UErrorCode &errorCode) {
     if(U_FAILURE(errorCode)) { return NULL; }
@@ -281,23 +281,29 @@ const Normalizer2 *Normalizer2Factory::getFCCInstance(UErrorCode &errorCode) {
     return allModes!=NULL ? &allModes->fcc : NULL;
 }
 
-const Normalizer2 *Normalizer2Factory::getNoopInstance(UErrorCode &errorCode) {
-    if(U_FAILURE(errorCode)) { return NULL; }
-    umtx_initOnce(noopInitOnce, &initNoopSingleton, errorCode);
-    return noopSingleton;
-}
-
 const Normalizer2Impl *
 Normalizer2Factory::getNFCImpl(UErrorCode &errorCode) {
     const Norm2AllModes *allModes=Norm2AllModes::getNFCInstance(errorCode);
     return allModes!=NULL ? allModes->impl : NULL;
 }
+#endif  // NORM2_HARDCODE_NFC_DATA
 
-const Normalizer2Impl *
-Normalizer2Factory::getImpl(const Normalizer2 *norm2) {
-    return &((Normalizer2WithImpl *)norm2)->impl;
+U_CDECL_BEGIN
+
+static UBool U_CALLCONV uprv_normalizer2_cleanup() {
+    delete noopSingleton;
+    noopSingleton = NULL;
+    noopInitOnce.reset(); 
+#if NORM2_HARDCODE_NFC_DATA
+    delete nfcSingleton;
+    nfcSingleton = NULL;
+    nfcInitOnce.reset(); 
+#endif
+    return TRUE;
 }
 
+U_CDECL_END
+
 U_NAMESPACE_END
 
 // C API ------------------------------------------------------------------- ***
index 15b4a52893477937cabd047ccac73ebdbf963262..e7ae646c41ae6d6192bce599a9c036d71f1d7f17 100644 (file)
@@ -16,6 +16,8 @@
 *   created by: Markus W. Scherer
 */
 
+// #define UCPTRIE_DEBUG
+
 #include "unicode/utypes.h"
 
 #if !UCONFIG_NO_NORMALIZATION
@@ -24,7 +26,9 @@
 #include "unicode/edits.h"
 #include "unicode/normalizer2.h"
 #include "unicode/stringoptions.h"
+#include "unicode/ucptrie.h"
 #include "unicode/udata.h"
+#include "unicode/umutablecptrie.h"
 #include "unicode/ustring.h"
 #include "unicode/utf16.h"
 #include "unicode/utf8.h"
@@ -34,8 +38,8 @@
 #include "normalizer2impl.h"
 #include "putilimp.h"
 #include "uassert.h"
+#include "ucptrie_impl.h"
 #include "uset_imp.h"
-#include "utrie2.h"
 #include "uvector.h"
 
 U_NAMESPACE_BEGIN
@@ -62,7 +66,7 @@ inline uint8_t leadByteForCP(UChar32 c) {
  * Returns the code point from one single well-formed UTF-8 byte sequence
  * between cpStart and cpLimit.
  *
- * UTrie2 UTF-8 macros do not assemble whole code points (for efficiency).
+ * Trie UTF-8 macros do not assemble whole code points (for efficiency).
  * When we do need the code point, we call this function.
  * We should not need it for normalization-inert data (norm16==0).
  * Illegal sequences yield the error value norm16==0 just like real normalization-inert code points.
@@ -122,7 +126,7 @@ int32_t getJamoTMinusBase(const uint8_t *src, const uint8_t *limit) {
             }
         } else if (src[1] == 0x87) {
             uint8_t t = src[2];
-            if ((int8_t)t <= (int8_t)0x82) {
+            if ((int8_t)t <= (int8_t)0x82u) {
                 return t - (0xa7 - 0x40);
             }
         }
@@ -253,7 +257,7 @@ UBool ReorderingBuffer::appendSupplementary(UChar32 c, uint8_t cc, UErrorCode &e
     return TRUE;
 }
 
-UBool ReorderingBuffer::append(const UChar *s, int32_t length,
+UBool ReorderingBuffer::append(const UChar *s, int32_t length, UBool isNFD,
                                uint8_t leadCC, uint8_t trailCC,
                                UErrorCode &errorCode) {
     if(length==0) {
@@ -280,8 +284,11 @@ UBool ReorderingBuffer::append(const UChar *s, int32_t length,
         while(i<length) {
             U16_NEXT(s, i, length, c);
             if(i<length) {
-                // s must be in NFD, otherwise we need to use getCC().
-                leadCC=Normalizer2Impl::getCCFromYesOrMaybe(impl.getNorm16(c));
+                if (isNFD) {
+                    leadCC = Normalizer2Impl::getCCFromYesOrMaybe(impl.getRawNorm16(c));
+                } else {
+                    leadCC = impl.getCC(impl.getNorm16(c));
+                }
             } else {
                 leadCC=trailCC;
             }
@@ -411,7 +418,8 @@ struct CanonIterData : public UMemory {
     CanonIterData(UErrorCode &errorCode);
     ~CanonIterData();
     void addToStartSet(UChar32 origin, UChar32 decompLead, UErrorCode &errorCode);
-    UTrie2 *trie;
+    UMutableCPTrie *mutableTrie;
+    UCPTrie *trie;
     UVector canonStartSets;  // contains UnicodeSet *
 };
 
@@ -420,22 +428,22 @@ Normalizer2Impl::~Normalizer2Impl() {
 }
 
 void
-Normalizer2Impl::init(const int32_t *inIndexes, const UTrie2 *inTrie,
+Normalizer2Impl::init(const int32_t *inIndexes, const UCPTrie *inTrie,
                       const uint16_t *inExtraData, const uint8_t *inSmallFCD) {
-    minDecompNoCP=inIndexes[IX_MIN_DECOMP_NO_CP];
-    minCompNoMaybeCP=inIndexes[IX_MIN_COMP_NO_MAYBE_CP];
-    minLcccCP=inIndexes[IX_MIN_LCCC_CP];
-
-    minYesNo=inIndexes[IX_MIN_YES_NO];
-    minYesNoMappingsOnly=inIndexes[IX_MIN_YES_NO_MAPPINGS_ONLY];
-    minNoNo=inIndexes[IX_MIN_NO_NO];
-    minNoNoCompBoundaryBefore=inIndexes[IX_MIN_NO_NO_COMP_BOUNDARY_BEFORE];
-    minNoNoCompNoMaybeCC=inIndexes[IX_MIN_NO_NO_COMP_NO_MAYBE_CC];
-    minNoNoEmpty=inIndexes[IX_MIN_NO_NO_EMPTY];
-    limitNoNo=inIndexes[IX_LIMIT_NO_NO];
-    minMaybeYes=inIndexes[IX_MIN_MAYBE_YES];
-    U_ASSERT((minMaybeYes&7)==0);  // 8-aligned for noNoDelta bit fields
-    centerNoNoDelta=(minMaybeYes>>DELTA_SHIFT)-MAX_DELTA-1;
+    minDecompNoCP = static_cast<UChar>(inIndexes[IX_MIN_DECOMP_NO_CP]);
+    minCompNoMaybeCP = static_cast<UChar>(inIndexes[IX_MIN_COMP_NO_MAYBE_CP]);
+    minLcccCP = static_cast<UChar>(inIndexes[IX_MIN_LCCC_CP]);
+
+    minYesNo = static_cast<uint16_t>(inIndexes[IX_MIN_YES_NO]);
+    minYesNoMappingsOnly = static_cast<uint16_t>(inIndexes[IX_MIN_YES_NO_MAPPINGS_ONLY]);
+    minNoNo = static_cast<uint16_t>(inIndexes[IX_MIN_NO_NO]);
+    minNoNoCompBoundaryBefore = static_cast<uint16_t>(inIndexes[IX_MIN_NO_NO_COMP_BOUNDARY_BEFORE]);
+    minNoNoCompNoMaybeCC = static_cast<uint16_t>(inIndexes[IX_MIN_NO_NO_COMP_NO_MAYBE_CC]);
+    minNoNoEmpty = static_cast<uint16_t>(inIndexes[IX_MIN_NO_NO_EMPTY]);
+    limitNoNo = static_cast<uint16_t>(inIndexes[IX_LIMIT_NO_NO]);
+    minMaybeYes = static_cast<uint16_t>(inIndexes[IX_MIN_MAYBE_YES]);
+    U_ASSERT((minMaybeYes & 7) == 0);  // 8-aligned for noNoDelta bit fields
+    centerNoNoDelta = (minMaybeYes >> DELTA_SHIFT) - MAX_DELTA - 1;
 
     normTrie=inTrie;
 
@@ -445,75 +453,8 @@ Normalizer2Impl::init(const int32_t *inIndexes, const UTrie2 *inTrie,
     smallFCD=inSmallFCD;
 }
 
-class LcccContext {
-public:
-    LcccContext(const Normalizer2Impl &ni, UnicodeSet &s) : impl(ni), set(s) {}
-
-    void handleRange(UChar32 start, UChar32 end, uint16_t norm16) {
-        if (norm16 > Normalizer2Impl::MIN_NORMAL_MAYBE_YES &&
-                norm16 != Normalizer2Impl::JAMO_VT) {
-            set.add(start, end);
-        } else if (impl.minNoNoCompNoMaybeCC <= norm16 && norm16 < impl.limitNoNo) {
-            uint16_t fcd16=impl.getFCD16(start);
-            if(fcd16>0xff) { set.add(start, end); }
-        }
-    }
-
-private:
-    const Normalizer2Impl &impl;
-    UnicodeSet &set;
-};
-
-namespace {
-
-struct PropertyStartsContext {
-    PropertyStartsContext(const Normalizer2Impl &ni, const USetAdder *adder)
-            : impl(ni), sa(adder) {}
-
-    const Normalizer2Impl &impl;
-    const USetAdder *sa;
-};
-
-}  // namespace
-
 U_CDECL_BEGIN
 
-static UBool U_CALLCONV
-enumLcccRange(const void *context, UChar32 start, UChar32 end, uint32_t value) {
-    ((LcccContext *)context)->handleRange(start, end, (uint16_t)value);
-    return TRUE;
-}
-
-static UBool U_CALLCONV
-enumNorm16PropertyStartsRange(const void *context, UChar32 start, UChar32 end, uint32_t value) {
-    /* add the start code point to the USet */
-    const PropertyStartsContext *ctx=(const PropertyStartsContext *)context;
-    const USetAdder *sa=ctx->sa;
-    sa->add(sa->set, start);
-    if (start != end && ctx->impl.isAlgorithmicNoNo((uint16_t)value) &&
-            (value & Normalizer2Impl::DELTA_TCCC_MASK) > Normalizer2Impl::DELTA_TCCC_1) {
-        // Range of code points with same-norm16-value algorithmic decompositions.
-        // They might have different non-zero FCD16 values.
-        uint16_t prevFCD16=ctx->impl.getFCD16(start);
-        while(++start<=end) {
-            uint16_t fcd16=ctx->impl.getFCD16(start);
-            if(fcd16!=prevFCD16) {
-                sa->add(sa->set, start);
-                prevFCD16=fcd16;
-            }
-        }
-    }
-    return TRUE;
-}
-
-static UBool U_CALLCONV
-enumPropertyStartsRange(const void *context, UChar32 start, UChar32 /*end*/, uint32_t /*value*/) {
-    /* add the start code point to the USet */
-    const USetAdder *sa=(const USetAdder *)context;
-    sa->add(sa->set, start);
-    return TRUE;
-}
-
 static uint32_t U_CALLCONV
 segmentStarterMapper(const void * /*context*/, uint32_t value) {
     return value&CANON_NOT_SEGMENT_STARTER;
@@ -523,15 +464,44 @@ U_CDECL_END
 
 void
 Normalizer2Impl::addLcccChars(UnicodeSet &set) const {
-    LcccContext context(*this, set);
-    utrie2_enum(normTrie, NULL, enumLcccRange, &context);
+    UChar32 start = 0, end;
+    uint32_t norm16;
+    while ((end = ucptrie_getRange(normTrie, start, UCPMAP_RANGE_FIXED_LEAD_SURROGATES, INERT,
+                                   nullptr, nullptr, &norm16)) >= 0) {
+        if (norm16 > Normalizer2Impl::MIN_NORMAL_MAYBE_YES &&
+                norm16 != Normalizer2Impl::JAMO_VT) {
+            set.add(start, end);
+        } else if (minNoNoCompNoMaybeCC <= norm16 && norm16 < limitNoNo) {
+            uint16_t fcd16 = getFCD16(start);
+            if (fcd16 > 0xff) { set.add(start, end); }
+        }
+        start = end + 1;
+    }
 }
 
 void
 Normalizer2Impl::addPropertyStarts(const USetAdder *sa, UErrorCode & /*errorCode*/) const {
-    /* add the start code point of each same-value range of each trie */
-    PropertyStartsContext context(*this, sa);
-    utrie2_enum(normTrie, NULL, enumNorm16PropertyStartsRange, &context);
+    // Add the start code point of each same-value range of the trie.
+    UChar32 start = 0, end;
+    uint32_t value;
+    while ((end = ucptrie_getRange(normTrie, start, UCPMAP_RANGE_FIXED_LEAD_SURROGATES, INERT,
+                                   nullptr, nullptr, &value)) >= 0) {
+        sa->add(sa->set, start);
+        if (start != end && isAlgorithmicNoNo((uint16_t)value) &&
+                (value & Normalizer2Impl::DELTA_TCCC_MASK) > Normalizer2Impl::DELTA_TCCC_1) {
+            // Range of code points with same-norm16-value algorithmic decompositions.
+            // They might have different non-zero FCD16 values.
+            uint16_t prevFCD16 = getFCD16(start);
+            while (++start <= end) {
+                uint16_t fcd16 = getFCD16(start);
+                if (fcd16 != prevFCD16) {
+                    sa->add(sa->set, start);
+                    prevFCD16 = fcd16;
+                }
+            }
+        }
+        start = end + 1;
+    }
 
     /* add Hangul LV syllables and LV+1 because of skippables */
     for(UChar c=Hangul::HANGUL_BASE; c<Hangul::HANGUL_LIMIT; c+=Hangul::JAMO_T_COUNT) {
@@ -543,10 +513,15 @@ Normalizer2Impl::addPropertyStarts(const USetAdder *sa, UErrorCode & /*errorCode
 
 void
 Normalizer2Impl::addCanonIterPropertyStarts(const USetAdder *sa, UErrorCode &errorCode) const {
-    /* add the start code point of each same-value range of the canonical iterator data trie */
-    if(ensureCanonIterData(errorCode)) {
-        // currently only used for the SEGMENT_STARTER property
-        utrie2_enum(fCanonIterData->trie, segmentStarterMapper, enumPropertyStartsRange, sa);
+    // Add the start code point of each same-value range of the canonical iterator data trie.
+    if (!ensureCanonIterData(errorCode)) { return; }
+    // Currently only used for the SEGMENT_STARTER property.
+    UChar32 start = 0, end;
+    uint32_t value;
+    while ((end = ucptrie_getRange(fCanonIterData->trie, start, UCPMAP_RANGE_NORMAL, 0,
+                                   segmentStarterMapper, nullptr, &value)) >= 0) {
+        sa->add(sa->set, start);
+        start = end + 1;
     }
 }
 
@@ -633,27 +608,23 @@ Normalizer2Impl::decompose(const UChar *src, const UChar *limit,
         // count code units below the minimum or with irrelevant data for the quick check
         for(prevSrc=src; src!=limit;) {
             if( (c=*src)<minNoCP ||
-                isMostDecompYesAndZeroCC(norm16=UTRIE2_GET16_FROM_U16_SINGLE_LEAD(normTrie, c))
+                isMostDecompYesAndZeroCC(norm16=UCPTRIE_FAST_BMP_GET(normTrie, UCPTRIE_16, c))
             ) {
                 ++src;
-            } else if(!U16_IS_SURROGATE(c)) {
+            } else if(!U16_IS_LEAD(c)) {
                 break;
             } else {
                 UChar c2;
-                if(U16_IS_SURROGATE_LEAD(c)) {
-                    if((src+1)!=limit && U16_IS_TRAIL(c2=src[1])) {
-                        c=U16_GET_SUPPLEMENTARY(c, c2);
-                    }
-                } else /* trail surrogate */ {
-                    if(prevSrc<src && U16_IS_LEAD(c2=*(src-1))) {
-                        --src;
-                        c=U16_GET_SUPPLEMENTARY(c2, c);
+                if((src+1)!=limit && U16_IS_TRAIL(c2=src[1])) {
+                    c=U16_GET_SUPPLEMENTARY(c, c2);
+                    norm16=UCPTRIE_FAST_SUPP_GET(normTrie, UCPTRIE_16, c);
+                    if(isMostDecompYesAndZeroCC(norm16)) {
+                        src+=2;
+                    } else {
+                        break;
                     }
-                }
-                if(isMostDecompYesAndZeroCC(norm16=getNorm16(c))) {
-                    src+=U16_LENGTH(c);
                 } else {
-                    break;
+                    ++src;  // unpaired lead surrogate: inert
                 }
             }
         }
@@ -713,7 +684,7 @@ Normalizer2Impl::decomposeShort(const UChar *src, const UChar *limit,
         const UChar *prevSrc = src;
         UChar32 c;
         uint16_t norm16;
-        UTRIE2_U16_NEXT16(normTrie, src, limit, c, norm16);
+        UCPTRIE_FAST_U16_NEXT(normTrie, UCPTRIE_16, src, limit, c, norm16);
         if (stopAtCompBoundary && norm16HasCompBoundaryBefore(norm16)) {
             return prevSrc;
         }
@@ -737,7 +708,7 @@ UBool Normalizer2Impl::decompose(UChar32 c, uint16_t norm16,
         }
         // Maps to an isCompYesAndZeroCC.
         c=mapAlgorithmic(c, norm16);
-        norm16=getNorm16(c);
+        norm16=getRawNorm16(c);
     }
     if (norm16 < minYesNo) {
         // c does not decompose
@@ -758,7 +729,7 @@ UBool Normalizer2Impl::decompose(UChar32 c, uint16_t norm16,
     } else {
         leadCC=0;
     }
-    return buffer.append((const UChar *)mapping+1, length, leadCC, trailCC, errorCode);
+    return buffer.append((const UChar *)mapping+1, length, TRUE, leadCC, trailCC, errorCode);
 }
 
 const uint8_t *
@@ -771,7 +742,7 @@ Normalizer2Impl::decomposeShort(const uint8_t *src, const uint8_t *limit,
     while (src < limit) {
         const uint8_t *prevSrc = src;
         uint16_t norm16;
-        UTRIE2_U8_NEXT16(normTrie, src, limit, norm16);
+        UCPTRIE_FAST_U8_NEXT(normTrie, UCPTRIE_16, src, limit, norm16);
         // Get the decomposition and the lead and trail cc's.
         UChar32 c = U_SENTINEL;
         if (norm16 >= limitNoNo) {
@@ -789,7 +760,7 @@ Normalizer2Impl::decomposeShort(const uint8_t *src, const uint8_t *limit,
             }
             c = codePointFromValidUTF8(prevSrc, src);
             c = mapAlgorithmic(c, norm16);
-            norm16 = getNorm16(c);
+            norm16 = getRawNorm16(c);
         } else if (stopAtCompBoundary && norm16 < minNoNoCompNoMaybeCC) {
             return prevSrc;
         }
@@ -828,7 +799,7 @@ Normalizer2Impl::decomposeShort(const uint8_t *src, const uint8_t *limit,
             } else {
                 leadCC = 0;
             }
-            if (!buffer.append((const char16_t *)mapping+1, length, leadCC, trailCC, errorCode)) {
+            if (!buffer.append((const char16_t *)mapping+1, length, TRUE, leadCC, trailCC, errorCode)) {
                 return nullptr;
             }
         }
@@ -854,7 +825,7 @@ Normalizer2Impl::getDecomposition(UChar32 c, UChar buffer[4], int32_t &length) c
         length=0;
         U16_APPEND_UNSAFE(buffer, length, c);
         // The mapping might decompose further.
-        norm16 = getNorm16(c);
+        norm16 = getRawNorm16(c);
     }
     if (norm16 < minYesNo) {
         return decomp;
@@ -926,19 +897,30 @@ void Normalizer2Impl::decomposeAndAppend(const UChar *src, const UChar *limit,
         return;
     }
     // Just merge the strings at the boundary.
-    ForwardUTrie2StringIterator iter(normTrie, src, limit);
-    uint8_t firstCC, prevCC, cc;
-    firstCC=prevCC=cc=getCC(iter.next16());
-    while(cc!=0) {
-        prevCC=cc;
-        cc=getCC(iter.next16());
-    };
+    bool isFirst = true;
+    uint8_t firstCC = 0, prevCC = 0, cc;
+    const UChar *p = src;
+    while (p != limit) {
+        const UChar *codePointStart = p;
+        UChar32 c;
+        uint16_t norm16;
+        UCPTRIE_FAST_U16_NEXT(normTrie, UCPTRIE_16, p, limit, c, norm16);
+        if ((cc = getCC(norm16)) == 0) {
+            p = codePointStart;
+            break;
+        }
+        if (isFirst) {
+            firstCC = cc;
+            isFirst = false;
+        }
+        prevCC = cc;
+    }
     if(limit==NULL) {  // appendZeroCC() needs limit!=NULL
-        limit=u_strchr(iter.codePointStart, 0);
+        limit=u_strchr(p, 0);
     }
 
-    if (buffer.append(src, (int32_t)(iter.codePointStart-src), firstCC, prevCC, errorCode)) {
-        buffer.appendZeroCC(iter.codePointStart, limit, errorCode);
+    if (buffer.append(src, (int32_t)(p - src), FALSE, firstCC, prevCC, errorCode)) {
+        buffer.appendZeroCC(p, limit, errorCode);
     }
 }
 
@@ -1085,7 +1067,7 @@ void Normalizer2Impl::addComposites(const uint16_t *list, UnicodeSet &set) const
         }
         UChar32 composite=compositeAndFwd>>1;
         if((compositeAndFwd&1)!=0) {
-            addComposites(getCompositionsListForComposite(getNorm16(composite)), set);
+            addComposites(getCompositionsListForComposite(getRawNorm16(composite)), set);
         }
         set.add(composite);
     } while((firstUnit&COMP_1_LAST_TUPLE)==0);
@@ -1124,7 +1106,7 @@ void Normalizer2Impl::recompose(ReorderingBuffer &buffer, int32_t recomposeStart
     prevCC=0;
 
     for(;;) {
-        UTRIE2_U16_NEXT16(normTrie, p, limit, c, norm16);
+        UCPTRIE_FAST_U16_NEXT(normTrie, UCPTRIE_16, p, limit, c, norm16);
         cc=getCCFromYesOrMaybe(norm16);
         if( // this character combines backward and
             isMaybe(norm16) &&
@@ -1229,7 +1211,7 @@ void Normalizer2Impl::recompose(ReorderingBuffer &buffer, int32_t recomposeStart
                 // Is the composite a starter that combines forward?
                 if(compositeAndFwd&1) {
                     compositionsList=
-                        getCompositionsListForComposite(getNorm16(composite));
+                        getCompositionsListForComposite(getRawNorm16(composite));
                 } else {
                     compositionsList=NULL;
                 }
@@ -1268,7 +1250,7 @@ void Normalizer2Impl::recompose(ReorderingBuffer &buffer, int32_t recomposeStart
 
 UChar32
 Normalizer2Impl::composePair(UChar32 a, UChar32 b) const {
-    uint16_t norm16=getNorm16(a);  // maps an out-of-range 'a' to inert norm16=0
+    uint16_t norm16=getNorm16(a);  // maps an out-of-range 'a' to inert norm16
     const uint16_t *list;
     if(isInert(norm16)) {
         return U_SENTINEL;
@@ -1359,29 +1341,23 @@ Normalizer2Impl::compose(const UChar *src, const UChar *limit,
                 return TRUE;
             }
             if( (c=*src)<minNoMaybeCP ||
-                isCompYesAndZeroCC(norm16=UTRIE2_GET16_FROM_U16_SINGLE_LEAD(normTrie, c))
+                isCompYesAndZeroCC(norm16=UCPTRIE_FAST_BMP_GET(normTrie, UCPTRIE_16, c))
             ) {
                 ++src;
             } else {
                 prevSrc = src++;
-                if(!U16_IS_SURROGATE(c)) {
+                if(!U16_IS_LEAD(c)) {
                     break;
                 } else {
                     UChar c2;
-                    if(U16_IS_SURROGATE_LEAD(c)) {
-                        if(src!=limit && U16_IS_TRAIL(c2=*src)) {
-                            ++src;
-                            c=U16_GET_SUPPLEMENTARY(c, c2);
-                        }
-                    } else /* trail surrogate */ {
-                        if(prevBoundary<prevSrc && U16_IS_LEAD(c2=*(prevSrc-1))) {
-                            --prevSrc;
-                            c=U16_GET_SUPPLEMENTARY(c2, c);
+                    if(src!=limit && U16_IS_TRAIL(c2=*src)) {
+                        ++src;
+                        c=U16_GET_SUPPLEMENTARY(c, c2);
+                        norm16=UCPTRIE_FAST_SUPP_GET(normTrie, UCPTRIE_16, c);
+                        if(!isCompYesAndZeroCC(norm16)) {
+                            break;
                         }
                     }
-                    if(!isCompYesAndZeroCC(norm16=getNorm16(c))) {
-                        break;
-                    }
                 }
             }
         }
@@ -1529,7 +1505,7 @@ Normalizer2Impl::compose(const UChar *src, const UChar *limit,
                     }
                     uint8_t prevCC = cc;
                     nextSrc = src;
-                    UTRIE2_U16_NEXT16(normTrie, nextSrc, limit, c, n16);
+                    UCPTRIE_FAST_U16_NEXT(normTrie, UCPTRIE_16, nextSrc, limit, c, n16);
                     if (n16 >= MIN_YES_YES_WITH_CC) {
                         cc = getCCFromNormalYesOrMaybe(n16);
                         if (prevCC > cc) {
@@ -1559,7 +1535,7 @@ Normalizer2Impl::compose(const UChar *src, const UChar *limit,
         // decompose and recompose.
         if (prevBoundary != prevSrc && !norm16HasCompBoundaryBefore(norm16)) {
             const UChar *p = prevSrc;
-            UTRIE2_U16_PREV16(normTrie, prevBoundary, p, c, norm16);
+            UCPTRIE_FAST_U16_PREV(normTrie, UCPTRIE_16, prevBoundary, p, c, norm16);
             if (!norm16HasCompBoundaryAfter(norm16, onlyContiguous)) {
                 prevSrc = p;
             }
@@ -1626,29 +1602,23 @@ Normalizer2Impl::composeQuickCheck(const UChar *src, const UChar *limit,
                 return src;
             }
             if( (c=*src)<minNoMaybeCP ||
-                isCompYesAndZeroCC(norm16=UTRIE2_GET16_FROM_U16_SINGLE_LEAD(normTrie, c))
+                isCompYesAndZeroCC(norm16=UCPTRIE_FAST_BMP_GET(normTrie, UCPTRIE_16, c))
             ) {
                 ++src;
             } else {
                 prevSrc = src++;
-                if(!U16_IS_SURROGATE(c)) {
+                if(!U16_IS_LEAD(c)) {
                     break;
                 } else {
                     UChar c2;
-                    if(U16_IS_SURROGATE_LEAD(c)) {
-                        if(src!=limit && U16_IS_TRAIL(c2=*src)) {
-                            ++src;
-                            c=U16_GET_SUPPLEMENTARY(c, c2);
-                        }
-                    } else /* trail surrogate */ {
-                        if(prevBoundary<prevSrc && U16_IS_LEAD(c2=*(prevSrc-1))) {
-                            --prevSrc;
-                            c=U16_GET_SUPPLEMENTARY(c2, c);
+                    if(src!=limit && U16_IS_TRAIL(c2=*src)) {
+                        ++src;
+                        c=U16_GET_SUPPLEMENTARY(c, c2);
+                        norm16=UCPTRIE_FAST_SUPP_GET(normTrie, UCPTRIE_16, c);
+                        if(!isCompYesAndZeroCC(norm16)) {
+                            break;
                         }
                     }
-                    if(!isCompYesAndZeroCC(norm16=getNorm16(c))) {
-                        break;
-                    }
                 }
             }
         }
@@ -1665,7 +1635,7 @@ Normalizer2Impl::composeQuickCheck(const UChar *src, const UChar *limit,
             } else {
                 const UChar *p = prevSrc;
                 uint16_t n16;
-                UTRIE2_U16_PREV16(normTrie, prevBoundary, p, c, n16);
+                UCPTRIE_FAST_U16_PREV(normTrie, UCPTRIE_16, prevBoundary, p, c, n16);
                 if (norm16HasCompBoundaryAfter(n16, onlyContiguous)) {
                     prevBoundary = prevSrc;
                 } else {
@@ -1699,7 +1669,7 @@ Normalizer2Impl::composeQuickCheck(const UChar *src, const UChar *limit,
                     }
                     uint8_t prevCC = cc;
                     nextSrc = src;
-                    UTRIE2_U16_NEXT16(normTrie, nextSrc, limit, c, norm16);
+                    UCPTRIE_FAST_U16_NEXT(normTrie, UCPTRIE_16, nextSrc, limit, c, norm16);
                     if (isMaybeOrNonZeroCC(norm16)) {
                         cc = getCCFromYesOrMaybe(norm16);
                         if (!(prevCC <= cc || cc == 0)) {
@@ -1786,7 +1756,7 @@ Normalizer2Impl::composeUTF8(uint32_t options, UBool onlyContiguous,
                 ++src;
             } else {
                 prevSrc = src;
-                UTRIE2_U8_NEXT16(normTrie, src, limit, norm16);
+                UCPTRIE_FAST_U8_NEXT(normTrie, UCPTRIE_16, src, limit, norm16);
                 if (!isCompYesAndZeroCC(norm16)) {
                     break;
                 }
@@ -1945,7 +1915,7 @@ Normalizer2Impl::composeUTF8(uint32_t options, UBool onlyContiguous,
                     }
                     uint8_t prevCC = cc;
                     nextSrc = src;
-                    UTRIE2_U8_NEXT16(normTrie, nextSrc, limit, n16);
+                    UCPTRIE_FAST_U8_NEXT(normTrie, UCPTRIE_16, nextSrc, limit, n16);
                     if (n16 >= MIN_YES_YES_WITH_CC) {
                         cc = getCCFromNormalYesOrMaybe(n16);
                         if (prevCC > cc) {
@@ -1975,7 +1945,7 @@ Normalizer2Impl::composeUTF8(uint32_t options, UBool onlyContiguous,
         // decompose and recompose.
         if (prevBoundary != prevSrc && !norm16HasCompBoundaryBefore(norm16)) {
             const uint8_t *p = prevSrc;
-            UTRIE2_U8_PREV16(normTrie, prevBoundary, p, norm16);
+            UCPTRIE_FAST_U8_PREV(normTrie, UCPTRIE_16, prevBoundary, p, norm16);
             if (!norm16HasCompBoundaryAfter(norm16, onlyContiguous)) {
                 prevSrc = p;
             }
@@ -2023,7 +1993,7 @@ UBool Normalizer2Impl::hasCompBoundaryBefore(const UChar *src, const UChar *limi
     }
     UChar32 c;
     uint16_t norm16;
-    UTRIE2_U16_NEXT16(normTrie, src, limit, c, norm16);
+    UCPTRIE_FAST_U16_NEXT(normTrie, UCPTRIE_16, src, limit, c, norm16);
     return norm16HasCompBoundaryBefore(norm16);
 }
 
@@ -2032,7 +2002,7 @@ UBool Normalizer2Impl::hasCompBoundaryBefore(const uint8_t *src, const uint8_t *
         return TRUE;
     }
     uint16_t norm16;
-    UTRIE2_U8_NEXT16(normTrie, src, limit, norm16);
+    UCPTRIE_FAST_U8_NEXT(normTrie, UCPTRIE_16, src, limit, norm16);
     return norm16HasCompBoundaryBefore(norm16);
 }
 
@@ -2043,7 +2013,7 @@ UBool Normalizer2Impl::hasCompBoundaryAfter(const UChar *start, const UChar *p,
     }
     UChar32 c;
     uint16_t norm16;
-    UTRIE2_U16_PREV16(normTrie, start, p, c, norm16);
+    UCPTRIE_FAST_U16_PREV(normTrie, UCPTRIE_16, start, p, c, norm16);
     return norm16HasCompBoundaryAfter(norm16, onlyContiguous);
 }
 
@@ -2053,36 +2023,42 @@ UBool Normalizer2Impl::hasCompBoundaryAfter(const uint8_t *start, const uint8_t
         return TRUE;
     }
     uint16_t norm16;
-    UTRIE2_U8_PREV16(normTrie, start, p, norm16);
+    UCPTRIE_FAST_U8_PREV(normTrie, UCPTRIE_16, start, p, norm16);
     return norm16HasCompBoundaryAfter(norm16, onlyContiguous);
 }
 
 const UChar *Normalizer2Impl::findPreviousCompBoundary(const UChar *start, const UChar *p,
                                                        UBool onlyContiguous) const {
-    BackwardUTrie2StringIterator iter(normTrie, start, p);
-    for(;;) {
-        uint16_t norm16=iter.previous16();
+    while (p != start) {
+        const UChar *codePointLimit = p;
+        UChar32 c;
+        uint16_t norm16;
+        UCPTRIE_FAST_U16_PREV(normTrie, UCPTRIE_16, start, p, c, norm16);
         if (norm16HasCompBoundaryAfter(norm16, onlyContiguous)) {
-            return iter.codePointLimit;
+            return codePointLimit;
         }
-        if (hasCompBoundaryBefore(iter.codePoint, norm16)) {
-            return iter.codePointStart;
+        if (hasCompBoundaryBefore(c, norm16)) {
+            return p;
         }
     }
+    return p;
 }
 
 const UChar *Normalizer2Impl::findNextCompBoundary(const UChar *p, const UChar *limit,
                                                    UBool onlyContiguous) const {
-    ForwardUTrie2StringIterator iter(normTrie, p, limit);
-    for(;;) {
-        uint16_t norm16=iter.next16();
-        if (hasCompBoundaryBefore(iter.codePoint, norm16)) {
-            return iter.codePointStart;
+    while (p != limit) {
+        const UChar *codePointStart = p;
+        UChar32 c;
+        uint16_t norm16;
+        UCPTRIE_FAST_U16_NEXT(normTrie, UCPTRIE_16, p, limit, c, norm16);
+        if (hasCompBoundaryBefore(c, norm16)) {
+            return codePointStart;
         }
         if (norm16HasCompBoundaryAfter(norm16, onlyContiguous)) {
-            return iter.codePointLimit;
+            return p;
         }
     }
+    return p;
 }
 
 uint8_t Normalizer2Impl::getPreviousTrailCC(const UChar *start, const UChar *p) const {
@@ -2130,7 +2106,7 @@ uint16_t Normalizer2Impl::getFCD16FromNormData(UChar32 c) const {
             }
             // Maps to an isCompYesAndZeroCC.
             c=mapAlgorithmic(c, norm16);
-            norm16=getNorm16(c);
+            norm16=getRawNorm16(c);
         }
     }
     if(norm16<=minYesNo || isHangulLVT(norm16)) {
@@ -2195,17 +2171,10 @@ Normalizer2Impl::makeFCD(const UChar *src, const UChar *limit,
                 prevFCD16=0;
                 ++src;
             } else {
-                if(U16_IS_SURROGATE(c)) {
+                if(U16_IS_LEAD(c)) {
                     UChar c2;
-                    if(U16_IS_SURROGATE_LEAD(c)) {
-                        if((src+1)!=limit && U16_IS_TRAIL(c2=src[1])) {
-                            c=U16_GET_SUPPLEMENTARY(c, c2);
-                        }
-                    } else /* trail surrogate */ {
-                        if(prevSrc<src && U16_IS_LEAD(c2=*(src-1))) {
-                            --src;
-                            c=U16_GET_SUPPLEMENTARY(c2, c);
-                        }
+                    if((src+1)!=limit && U16_IS_TRAIL(c2=src[1])) {
+                        c=U16_GET_SUPPLEMENTARY(c, c2);
                     }
                 }
                 if((fcd16=getFCD16FromNormData(c))<=0xff) {
@@ -2336,7 +2305,7 @@ const UChar *Normalizer2Impl::findPreviousFCDBoundary(const UChar *start, const
         const UChar *codePointLimit = p;
         UChar32 c;
         uint16_t norm16;
-        UTRIE2_U16_PREV16(normTrie, start, p, c, norm16);
+        UCPTRIE_FAST_U16_PREV(normTrie, UCPTRIE_16, start, p, c, norm16);
         if (c < minDecompNoCP || norm16HasDecompBoundaryAfter(norm16)) {
             return codePointLimit;
         }
@@ -2352,7 +2321,7 @@ const UChar *Normalizer2Impl::findNextFCDBoundary(const UChar *p, const UChar *l
         const UChar *codePointStart=p;
         UChar32 c;
         uint16_t norm16;
-        UTRIE2_U16_NEXT16(normTrie, p, limit, c, norm16);
+        UCPTRIE_FAST_U16_NEXT(normTrie, UCPTRIE_16, p, limit, c, norm16);
         if (c < minLcccCP || norm16HasDecompBoundaryBefore(norm16)) {
             return codePointStart;
         }
@@ -2366,19 +2335,20 @@ const UChar *Normalizer2Impl::findNextFCDBoundary(const UChar *p, const UChar *l
 // CanonicalIterator data -------------------------------------------------- ***
 
 CanonIterData::CanonIterData(UErrorCode &errorCode) :
-        trie(utrie2_open(0, 0, &errorCode)),
+        mutableTrie(umutablecptrie_open(0, 0, &errorCode)), trie(nullptr),
         canonStartSets(uprv_deleteUObject, NULL, errorCode) {}
 
 CanonIterData::~CanonIterData() {
-    utrie2_close(trie);
+    umutablecptrie_close(mutableTrie);
+    ucptrie_close(trie);
 }
 
 void CanonIterData::addToStartSet(UChar32 origin, UChar32 decompLead, UErrorCode &errorCode) {
-    uint32_t canonValue=utrie2_get32(trie, decompLead);
+    uint32_t canonValue = umutablecptrie_get(mutableTrie, decompLead);
     if((canonValue&(CANON_HAS_SET|CANON_VALUE_MASK))==0 && origin!=0) {
         // origin is the first character whose decomposition starts with
         // the character for which we are setting the value.
-        utrie2_set32(trie, decompLead, canonValue|origin, &errorCode);
+        umutablecptrie_set(mutableTrie, decompLead, canonValue|origin, &errorCode);
     } else {
         // origin is not the first character, or it is U+0000.
         UnicodeSet *set;
@@ -2390,7 +2360,7 @@ void CanonIterData::addToStartSet(UChar32 origin, UChar32 decompLead, UErrorCode
             }
             UChar32 firstOrigin=(UChar32)(canonValue&CANON_VALUE_MASK);
             canonValue=(canonValue&~CANON_VALUE_MASK)|CANON_HAS_SET|(uint32_t)canonStartSets.size();
-            utrie2_set32(trie, decompLead, canonValue, &errorCode);
+            umutablecptrie_set(mutableTrie, decompLead, canonValue, &errorCode);
             canonStartSets.addElement(set, errorCode);
             if(firstOrigin!=0) {
                 set->add(firstOrigin);
@@ -2406,7 +2376,6 @@ void CanonIterData::addToStartSet(UChar32 origin, UChar32 decompLead, UErrorCode
 class InitCanonIterData {
 public:
     static void doInit(Normalizer2Impl *impl, UErrorCode &errorCode);
-    static void handleRange(Normalizer2Impl *impl, UChar32 start, UChar32 end, uint16_t value, UErrorCode &errorCode);
 };
 
 U_CDECL_BEGIN
@@ -2417,18 +2386,6 @@ initCanonIterData(Normalizer2Impl *impl, UErrorCode &errorCode) {
     InitCanonIterData::doInit(impl, errorCode);
 }
 
-// Call Normalizer2Impl::makeCanonIterDataFromNorm16() for a range of same-norm16 characters.
-//     context: the Normalizer2Impl
-static UBool U_CALLCONV
-enumCIDRangeHandler(const void *context, UChar32 start, UChar32 end, uint32_t value) {
-    UErrorCode errorCode = U_ZERO_ERROR;
-    if (value != Normalizer2Impl::INERT) {
-        Normalizer2Impl *impl = (Normalizer2Impl *)context;
-        InitCanonIterData::handleRange(impl, start, end, (uint16_t)value, errorCode);
-    }
-    return U_SUCCESS(errorCode);
-}
-
 U_CDECL_END
 
 void InitCanonIterData::doInit(Normalizer2Impl *impl, UErrorCode &errorCode) {
@@ -2438,8 +2395,24 @@ void InitCanonIterData::doInit(Normalizer2Impl *impl, UErrorCode &errorCode) {
         errorCode=U_MEMORY_ALLOCATION_ERROR;
     }
     if (U_SUCCESS(errorCode)) {
-        utrie2_enum(impl->normTrie, NULL, enumCIDRangeHandler, impl);
-        utrie2_freeze(impl->fCanonIterData->trie, UTRIE2_32_VALUE_BITS, &errorCode);
+        UChar32 start = 0, end;
+        uint32_t value;
+        while ((end = ucptrie_getRange(impl->normTrie, start,
+                                       UCPMAP_RANGE_FIXED_LEAD_SURROGATES, Normalizer2Impl::INERT,
+                                       nullptr, nullptr, &value)) >= 0) {
+            // Call Normalizer2Impl::makeCanonIterDataFromNorm16() for a range of same-norm16 characters.
+            if (value != Normalizer2Impl::INERT) {
+                impl->makeCanonIterDataFromNorm16(start, end, value, *impl->fCanonIterData, errorCode);
+            }
+            start = end + 1;
+        }
+#ifdef UCPTRIE_DEBUG
+        umutablecptrie_setName(impl->fCanonIterData->mutableTrie, "CanonIterData");
+#endif
+        impl->fCanonIterData->trie = umutablecptrie_buildImmutable(
+            impl->fCanonIterData->mutableTrie, UCPTRIE_TYPE_SMALL, UCPTRIE_VALUE_BITS_32, &errorCode);
+        umutablecptrie_close(impl->fCanonIterData->mutableTrie);
+        impl->fCanonIterData->mutableTrie = nullptr;
     }
     if (U_FAILURE(errorCode)) {
         delete impl->fCanonIterData;
@@ -2447,11 +2420,6 @@ void InitCanonIterData::doInit(Normalizer2Impl *impl, UErrorCode &errorCode) {
     }
 }
 
-void InitCanonIterData::handleRange(
-        Normalizer2Impl *impl, UChar32 start, UChar32 end, uint16_t value, UErrorCode &errorCode) {
-    impl->makeCanonIterDataFromNorm16(start, end, value, *impl->fCanonIterData, errorCode);
-}
-
 void Normalizer2Impl::makeCanonIterDataFromNorm16(UChar32 start, UChar32 end, const uint16_t norm16,
                                                   CanonIterData &newData,
                                                   UErrorCode &errorCode) const {
@@ -2465,7 +2433,7 @@ void Normalizer2Impl::makeCanonIterDataFromNorm16(UChar32 start, UChar32 end, co
         return;
     }
     for(UChar32 c=start; c<=end; ++c) {
-        uint32_t oldValue=utrie2_get32(newData.trie, c);
+        uint32_t oldValue = umutablecptrie_get(newData.mutableTrie, c);
         uint32_t newValue=oldValue;
         if(isMaybeOrNonZeroCC(norm16)) {
             // not a segment starter if it occurs in a decomposition or has cc!=0
@@ -2483,7 +2451,7 @@ void Normalizer2Impl::makeCanonIterDataFromNorm16(UChar32 start, UChar32 end, co
             if (isDecompNoAlgorithmic(norm16_2)) {
                 // Maps to an isCompYesAndZeroCC.
                 c2 = mapAlgorithmic(c2, norm16_2);
-                norm16_2 = getNorm16(c2);
+                norm16_2 = getRawNorm16(c2);
                 // No compatibility mappings for the CanonicalIterator.
                 U_ASSERT(!(isHangulLV(norm16_2) || isHangulLVT(norm16_2)));
             }
@@ -2510,10 +2478,10 @@ void Normalizer2Impl::makeCanonIterDataFromNorm16(UChar32 start, UChar32 end, co
                     if(norm16_2>=minNoNo) {
                         while(i<length) {
                             U16_NEXT_UNSAFE(mapping, i, c2);
-                            uint32_t c2Value=utrie2_get32(newData.trie, c2);
+                            uint32_t c2Value = umutablecptrie_get(newData.mutableTrie, c2);
                             if((c2Value&CANON_NOT_SEGMENT_STARTER)==0) {
-                                utrie2_set32(newData.trie, c2, c2Value|CANON_NOT_SEGMENT_STARTER,
-                                             &errorCode);
+                                umutablecptrie_set(newData.mutableTrie, c2,
+                                                   c2Value|CANON_NOT_SEGMENT_STARTER, &errorCode);
                             }
                         }
                     }
@@ -2524,7 +2492,7 @@ void Normalizer2Impl::makeCanonIterDataFromNorm16(UChar32 start, UChar32 end, co
             }
         }
         if(newValue!=oldValue) {
-            utrie2_set32(newData.trie, c, newValue, &errorCode);
+            umutablecptrie_set(newData.mutableTrie, c, newValue, &errorCode);
         }
     }
 }
@@ -2537,7 +2505,7 @@ UBool Normalizer2Impl::ensureCanonIterData(UErrorCode &errorCode) const {
 }
 
 int32_t Normalizer2Impl::getCanonValue(UChar32 c) const {
-    return (int32_t)utrie2_get32(fCanonIterData->trie, c);
+    return (int32_t)ucptrie_get(fCanonIterData->trie, c);
 }
 
 const UnicodeSet &Normalizer2Impl::getCanonStartSet(int32_t n) const {
@@ -2561,7 +2529,7 @@ UBool Normalizer2Impl::getCanonStartSet(UChar32 c, UnicodeSet &set) const {
         set.add(value);
     }
     if((canonValue&CANON_HAS_COMPOSITIONS)!=0) {
-        uint16_t norm16=getNorm16(c);
+        uint16_t norm16=getRawNorm16(c);
         if(norm16==JAMO_L) {
             UChar32 syllable=
                 (UChar32)(Hangul::HANGUL_BASE+(c-Hangul::JAMO_L_BASE)*Hangul::JAMO_VT_COUNT);
@@ -2608,7 +2576,7 @@ unorm2_swap(const UDataSwapper *ds,
         pInfo->dataFormat[1]==0x72 &&
         pInfo->dataFormat[2]==0x6d &&
         pInfo->dataFormat[3]==0x32 &&
-        (1<=formatVersion0 && formatVersion0<=3)
+        (1<=formatVersion0 && formatVersion0<=4)
     )) {
         udata_printError(ds, "unorm2_swap(): data format %02x.%02x.%02x.%02x (format version %02x) is not recognized as Normalizer2 data\n",
                          pInfo->dataFormat[0], pInfo->dataFormat[1],
@@ -2669,9 +2637,9 @@ unorm2_swap(const UDataSwapper *ds,
         ds->swapArray32(ds, inBytes, nextOffset-offset, outBytes, pErrorCode);
         offset=nextOffset;
 
-        /* swap the UTrie2 */
+        /* swap the trie */
         nextOffset=indexes[Normalizer2Impl::IX_EXTRA_DATA_OFFSET];
-        utrie2_swap(ds, inBytes+offset, nextOffset-offset, outBytes+offset, pErrorCode);
+        utrie_swapAnyVersion(ds, inBytes+offset, nextOffset-offset, outBytes+offset, pErrorCode);
         offset=nextOffset;
 
         /* swap the uint16_t extraData[] */
index 9dd4d1e5ab188b699e72ec0ba54ca1929182e09e..2e6aff308819c51bbf249f504cf467066026a8ce 100644 (file)
 #if !UCONFIG_NO_NORMALIZATION
 
 #include "unicode/normalizer2.h"
+#include "unicode/ucptrie.h"
 #include "unicode/unistr.h"
 #include "unicode/unorm.h"
+#include "unicode/utf.h"
 #include "unicode/utf16.h"
 #include "mutex.h"
+#include "udataswp.h"
 #include "uset_imp.h"
-#include "utrie2.h"
+
+// When the nfc.nrm data is *not* hardcoded into the common library
+// (with this constant set to 0),
+// then it needs to be built into the data package:
+// Add nfc.nrm to icu4c/source/data/Makefile.in DAT_FILES_SHORT
+#define NORM2_HARDCODE_NFC_DATA 1
 
 U_NAMESPACE_BEGIN
 
@@ -118,7 +126,7 @@ public:
             buffer[0]=(UChar)(JAMO_L_BASE+c/JAMO_V_COUNT);
             buffer[1]=(UChar)(JAMO_V_BASE+c%JAMO_V_COUNT);
         } else {
-            buffer[0]=orig-c2;  // LV syllable
+            buffer[0]=(UChar)(orig-c2);  // LV syllable
             buffer[1]=(UChar)(JAMO_T_BASE+c2);
         }
     }
@@ -158,8 +166,7 @@ public:
             appendBMP((UChar)c, cc, errorCode) :
             appendSupplementary(c, cc, errorCode);
     }
-    // s must be in NFD, otherwise change the implementation.
-    UBool append(const UChar *s, int32_t length,
+    UBool append(const UChar *s, int32_t length, UBool isNFD,
                  uint8_t leadCC, uint8_t trailCC,
                  UErrorCode &errorCode);
     UBool appendBMP(UChar c, uint8_t cc, UErrorCode &errorCode) {
@@ -243,7 +250,7 @@ public:
     }
     virtual ~Normalizer2Impl();
 
-    void init(const int32_t *inIndexes, const UTrie2 *inTrie,
+    void init(const int32_t *inIndexes, const UCPTrie *inTrie,
               const uint16_t *inExtraData, const uint8_t *inSmallFCD);
 
     void addLcccChars(UnicodeSet &set) const;
@@ -254,7 +261,12 @@ public:
 
     UBool ensureCanonIterData(UErrorCode &errorCode) const;
 
-    uint16_t getNorm16(UChar32 c) const { return UTRIE2_GET16(normTrie, c); }
+    // The trie stores values for lead surrogate code *units*.
+    // Surrogate code *points* are inert.
+    uint16_t getNorm16(UChar32 c) const {
+        return U_IS_LEAD(c) ? INERT : UCPTRIE_FAST_GET(normTrie, UCPTRIE_16, c);
+    }
+    uint16_t getRawNorm16(UChar32 c) const { return UCPTRIE_FAST_GET(normTrie, UCPTRIE_16, c); }
 
     UNormalizationCheckResult getCompQuickCheck(uint16_t norm16) const {
         if(norm16<minNoNo || MIN_YES_YES_WITH_CC<=norm16) {
@@ -704,7 +716,7 @@ private:
     uint16_t centerNoNoDelta;
     uint16_t minMaybeYes;
 
-    const UTrie2 *normTrie;
+    const UCPTrie *normTrie;
     const uint16_t *maybeYesCompositions;
     const uint16_t *extraData;  // mappings and/or compositions for yesYes, yesNo & noNo characters
     const uint8_t *smallFCD;  // [0x100] one bit per 32 BMP code points, set if any FCD!=0
@@ -764,7 +776,7 @@ unorm_getFCD16(UChar32 c);
 
 /**
  * Format of Normalizer2 .nrm data files.
- * Format version 3.0.
+ * Format version 4.0.
  *
  * Normalizer2 .nrm data files provide data for the Unicode Normalization algorithms.
  * ICU ships with data files for standard Unicode Normalization Forms
@@ -818,7 +830,7 @@ unorm_getFCD16(UChar32 c);
  *          minMaybeYes=indexes[IX_MIN_MAYBE_YES];
  *      See the normTrie description below and the design doc for details.
  *
- * UTrie2 normTrie; -- see utrie2_impl.h and utrie2.h
+ * UCPTrie normTrie; -- see ucptrie_impl.h and ucptrie.h, same as Java CodePointTrie
  *
  *      The trie holds the main normalization data. Each code point is mapped to a 16-bit value.
  *      Rather than using independent bits in the value (which would require more than 16 bits),
@@ -946,6 +958,20 @@ unorm_getFCD16(UChar32 c);
  *   which is artificially assigned "worst case" values lccc=1 and tccc=255.
  *
  * - A mapping to an empty string has explicit lccc=1 and tccc=255 values.
+ *
+ * Changes from format version 3 to format version 4 (ICU 63) ------------------
+ *
+ * Switched from UTrie2 to UCPTrie/CodePointTrie.
+ *
+ * The new trie no longer stores different values for surrogate code *units* vs.
+ * surrogate code *points*.
+ * Lead surrogates still have values for optimized UTF-16 string processing.
+ * When looking up code point properties, the code now checks for lead surrogates and
+ * treats them as inert.
+ *
+ * gennorm2 now has to reject mappings for surrogate code points.
+ * UTS #46 maps unpaired surrogates to U+FFFD in code rather than via its
+ * custom normalization data file.
  */
 
 #endif  /* !UCONFIG_NO_NORMALIZATION */
index afa876c0fa827507360257bade6c3573a0ea2b27..15a3301e47df6f180ca086536c2b94d233ad9b7f 100644 (file)
 
 U_NAMESPACE_BEGIN
 
-const int32_t PropNameData::indexes[8]={0x20,0x1424,0x49e9,0x966c,0x966c,0x966c,0x2f,0};
+const int32_t PropNameData::indexes[8]={0x20,0x1548,0x4e03,0xa114,0xa114,0xa114,0x2f,0};
 
-const int32_t PropNameData::valueMaps[1281]={
-6,0,0x41,0,0xdd,0x356,0xdd,0x36c,0xdd,0x381,0xdd,0x397,0xdd,0x3a2,0xdd,0x3c3,
-0xdd,0x3d3,0xdd,0x3e2,0xdd,0x3f0,0xdd,0x414,0xdd,0x42b,0xdd,0x443,0xdd,0x45a,0xdd,0x469,
-0xdd,0x478,0xdd,0x489,0xdd,0x497,0xdd,0x4a9,0xdd,0x4c3,0xdd,0x4de,0xdd,0x4f3,0xdd,0x510,
-0xdd,0x521,0xdd,0x52c,0xdd,0x54b,0xdd,0x561,0xdd,0x572,0xdd,0x582,0xdd,0x59d,0xdd,0x5b6,
-0xdd,0x5c7,0xdd,0x5e1,0xdd,0x5f4,0xdd,0x604,0xdd,0x61e,0xdd,0x637,0xdd,0x64e,0xdd,0x662,
-0xdd,0x678,0xdd,0x68c,0xdd,0x6a2,0xdd,0x6bc,0xdd,0x6d4,0xdd,0x6f0,0xdd,0x6f8,0xdd,0x700,
-0xdd,0x708,0xdd,0x710,0xdd,0x719,0xdd,0x726,0xdd,0x739,0xdd,0x756,0xdd,0x773,0xdd,0x790,
-0xdd,0x7ae,0xdd,0x7cc,0xdd,0x7f0,0xdd,0x7fd,0xdd,0x817,0xdd,0x82c,0xdd,0x847,0xdd,0x85e,
-0xdd,0x875,0xdd,0x897,0xdd,0x1000,0x1016,0x8b6,0x157,0xad6,0x172,0x2c95,0xe3,0x2cb4,0x29a,0x2df2,
-0x2b0,0x2e4c,0x2ba,0x30a9,0x2dc,0x39a4,0x346,0x3a14,0x350,0x3cae,0x37f,0x3cec,0x387,0x474b,0x444,0x47c9,
-0x44e,0x47ee,0x454,0x4808,0x45a,0x4829,0x461,0x4843,0xe3,0x4868,0xe3,0x488e,0x468,0x4938,0x47e,0x49b1,
-0x491,0x4a63,0x4ac,0x2000,0x2001,0x4a9a,0x4b3,0x3000,0x3001,0x4b26,0,0x4000,0x400e,0x4b38,0,0x4b41,
-0,0x4b5b,0,0x4b6c,0,0x4b7d,0,0x4b93,0,0x4b9c,0,0x4bb9,0,0x4bd7,0,0x4bf5,
-0,0x4c13,0,0x4c29,0,0x4c3d,0,0x4c53,0,0x7000,0x7001,0x4c6c,0,0x77c,0x12,0,
-1,0x12,0x20,0x79a,0x49,0,1,7,8,9,0xa,0xb,0xc,0xd,0xe,0xf,
-0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1a,0x1b,0x1c,0x1d,0x1e,0x1f,
-0x20,0x21,0x22,0x23,0x24,0x54,0x5b,0x67,0x6b,0x76,0x7a,0x81,0x82,0x84,0x85,0xc8,
-0xca,0xd6,0xd8,0xda,0xdc,0xde,0xe0,0xe2,0xe4,0xe6,0xe8,0xe9,0xea,0xf0,0x2e,0x40,
-0x4c,0x56,0x67,0x72,0x7f,0x8c,0x99,0xa6,0xb3,0xc0,0xcd,0xda,0xe7,0xf4,0x101,0x10e,
-0x11b,0x128,0x135,0x142,0x14f,0x15c,0x169,0x176,0x183,0x190,0x19d,0x1aa,0x1b7,0x1c4,0x1d1,0x1de,
-0x1eb,0x1fa,0x209,0x218,0x227,0x236,0x245,0x254,0x263,0x27d,0x291,0x2a5,0x2c0,0x2cf,0x2d8,0x2e8,
-0x2f0,0x2f9,0x308,0x311,0x321,0x332,0x343,0x92c,1,0,0x17,0x8c5,0x8d6,0x8e7,0x8fb,0x912,
-0x92a,0x93c,0x951,0x968,0x97d,0x98d,0x99f,0x9bc,0x9d8,0x9ea,0xa07,0xa23,0xa3f,0xa54,0xa69,0xa83,
-0xa9e,0xab9,0xace,1,0,0x124,0xae1,0xaee,0xb01,0xb29,0xb47,0xb65,0xb7d,0xba8,0xbd2,0xbea,
-0xbfd,0xc10,0xc1f,0xc2e,0xc3d,0xc4c,0xc63,0xc74,0xc87,0xc9a,0xca7,0xcb4,0xcc3,0xcd4,0xce9,0xcfa,
-0xd05,0xd0e,0xd1f,0xd30,0xd43,0xd55,0xd68,0xd7b,0xdba,0xdc7,0xdd4,0xde1,0xdf6,0xe26,0xe40,0xe61,
-0xe8c,0xeaf,0xf0d,0xf34,0xf4f,0xf5e,0xf85,0xfad,0xfd0,0xff3,0x101d,0x1036,0x1055,0x1078,0x109c,0x10af,
-0x10c9,0x10f3,0x110b,0x1133,0x115c,0x116f,0x1182,0x1195,0x11bc,0x11cb,0x11eb,0x1219,0x1237,0x1265,0x1281,0x129c,
-0x12b5,0x12ce,0x12ef,0x131f,0x133e,0x1360,0x1394,0x13c1,0x1406,0x1427,0x1451,0x1472,0x149b,0x14ae,0x14e1,0x14f8,
-0x1507,0x1518,0x1543,0x155a,0x158b,0x15b9,0x15fc,0x1607,0x1640,0x1651,0x1662,0x166f,0x1682,0x16bc,0x16e0,0x1704,
-0x173e,0x1776,0x17a1,0x17b9,0x17e5,0x1811,0x181e,0x182d,0x184a,0x186c,0x189a,0x18ba,0x18e1,0x1908,0x1927,0x193a,
-0x194b,0x195c,0x1981,0x19a6,0x19cd,0x1a01,0x1a2e,0x1a4c,0x1a5f,0x1a78,0x1ab1,0x1ac0,0x1ae0,0x1b02,0x1b24,0x1b3b,
-0x1b52,0x1b7f,0x1b98,0x1bb1,0x1be2,0x1c0c,0x1c27,0x1c3a,0x1c59,0x1c62,0x1c75,0x1c93,0x1cb1,0x1cc4,0x1cdb,0x1cf0,
-0x1d25,0x1d49,0x1d5e,0x1d6d,0x1d80,0x1da4,0x1dad,0x1dd1,0x1de8,0x1dfb,0x1e0a,0x1e15,0x1e36,0x1e4e,0x1e5d,0x1e6c,
-0x1e7b,0x1e92,0x1ea7,0x1ebc,0x1ef5,0x1f08,0x1f24,0x1f2f,0x1f3c,0x1f6a,0x1f8e,0x1fb1,0x1fc4,0x1fe6,0x1ff9,0x2014,
-0x2037,0x205a,0x207f,0x2090,0x20bf,0x20ec,0x2103,0x211e,0x212d,0x2158,0x2190,0x21ca,0x21f8,0x2209,0x2216,0x223a,
-0x2249,0x2265,0x227f,0x229c,0x22d4,0x22e9,0x2316,0x2335,0x2363,0x2383,0x23b7,0x23c6,0x23f0,0x2413,0x243e,0x2449,
-0x245a,0x2475,0x2499,0x24a6,0x24bb,0x24e2,0x250d,0x2544,0x2557,0x2568,0x2598,0x25a9,0x25b8,0x25cd,0x25eb,0x25fe,
-0x2611,0x2628,0x2645,0x2650,0x2659,0x267b,0x2690,0x26b5,0x26cc,0x26f5,0x2710,0x2725,0x273e,0x275f,0x2794,0x27a5,
-0x27d6,0x27fa,0x280b,0x2824,0x282f,0x285c,0x287e,0x28ac,0x28df,0x28ee,0x28ff,0x291c,0x295e,0x2985,0x2992,0x29a7,
-0x29cb,0x29f1,0x2a2a,0x2a3b,0x2a5f,0x2a6a,0x2a77,0x2a86,0x2aab,0x2ad9,0x2af5,0x2b12,0x2b1f,0x2b30,0x2b4e,0x2b71,
-0x2b8e,0x2b9b,0x2bbb,0x2bd8,0x2bf9,0x2c22,0x2c33,0x2c52,0x2c6b,0x2c84,0x1cf4,1,0,0x12,0x2ccb,0x2cdb,
-0x2cee,0x2cfe,0x2d0e,0x2d1d,0x2d2d,0x2d3f,0x2d52,0x2d64,0x2d74,0x2d84,0x2d93,0x2da2,0x2db2,0x2dbf,0x2dce,0x2de2,
-0x1db2,1,0,6,0x2e07,0x2e12,0x2e1f,0x2e2c,0x2e39,0x2e44,0x1df6,1,0,0x1e,0x2e61,0x2e70,
-0x2e85,0x2e9a,0x2eaf,0x2ec3,0x2ed4,0x2ee8,0x2efb,0x2f0c,0x2f25,0x2f37,0x2f48,0x2f5c,0x2f6f,0x2f87,0x2f99,0x2fa4,
-0x2fb4,0x2fc2,0x2fd7,0x2fec,0x3002,0x301c,0x3032,0x3042,0x3056,0x306a,0x307b,0x3093,0x2021,1,0,0x66,
-0x30bb,0x30de,0x30e7,0x30f4,0x30ff,0x3108,0x3113,0x311c,0x3135,0x313a,0x3143,0x3160,0x3169,0x3176,0x317f,0x31a3,
-0x31aa,0x31b3,0x31c6,0x31d1,0x31da,0x31e5,0x31fe,0x3207,0x3216,0x3221,0x322a,0x3235,0x323e,0x3245,0x324e,0x3259,
-0x3262,0x327b,0x3284,0x3291,0x329c,0x32ad,0x32b8,0x32cd,0x32e4,0x32ed,0x32f6,0x330f,0x331a,0x3323,0x332c,0x3343,
-0x3360,0x336b,0x337c,0x3387,0x338e,0x339b,0x33a8,0x33d5,0x33ea,0x33f3,0x340e,0x3431,0x3452,0x3473,0x3498,0x34bf,
-0x34e0,0x3503,0x3524,0x354b,0x356c,0x3591,0x35b0,0x35cf,0x35ee,0x360b,0x362c,0x364d,0x3670,0x3695,0x36b4,0x36d3,
-0x36f4,0x371b,0x3740,0x375f,0x3780,0x37a3,0x37be,0x37d7,0x37f2,0x380b,0x3828,0x3843,0x3860,0x387f,0x389c,0x38b9,
-0x38d8,0x38f5,0x3910,0x392d,0x394a,0x397d,0x2366,1,0,6,0x39b5,0x39c4,0x39d4,0x39e4,0x39f4,0x3a05,
-0x23c4,1,0,0x2b,0x3a23,0x3a2f,0x3a3d,0x3a4c,0x3a5b,0x3a6b,0x3a7c,0x3a90,0x3aa5,0x3abb,0x3ace,0x3ae2,
-0x3af2,0x3afb,0x3b06,0x3b16,0x3b32,0x3b44,0x3b52,0x3b61,0x3b6d,0x3b82,0x3b96,0x3ba9,0x3bb7,0x3bcb,0x3bd9,0x3be3,
-0x3bf5,0x3c01,0x3c0f,0x3c1f,0x3c26,0x3c2d,0x3c34,0x3c3b,0x3c42,0x3c58,0x3c79,0x85e,0x3c8b,0x3c96,0x3ca5,0x261d,
-1,0,4,0x3cbf,0x3cca,0x3cd6,0x3ce0,0x2643,1,0,0xb9,0x3cf7,0x3d04,0x3d19,0x3d26,0x3d35,
-0x3d43,0x3d52,0x3d61,0x3d73,0x3d82,0x3d90,0x3da1,0x3db0,0x3dbf,0x3dcc,0x3dd8,0x3de7,0x3df6,0x3e00,0x3e0d,0x3e1a,
-0x3e29,0x3e37,0x3e46,0x3e52,0x3e5c,0x3e68,0x3e78,0x3e88,0x3e96,0x3ea2,0x3eb3,0x3ebf,0x3ecb,0x3ed9,0x3ee6,0x3ef2,
-0x3eff,0xcfa,0x3f0c,0x3f1a,0x3f34,0x3f3d,0x3f4b,0x3f59,0x3f65,0x3f74,0x3f82,0x3f90,0x3f9c,0x3fab,0x3fb9,0x3fc7,
-0x3fd4,0x3fe3,0x3ffe,0x400d,0x401e,0x402f,0x4042,0x4054,0x4063,0x4075,0x4084,0x4090,0x409b,0x1e0a,0x40a8,0x40b3,
-0x40be,0x40c9,0x40d4,0x40ef,0x40fa,0x4105,0x4110,0x4123,0x4137,0x4142,0x4151,0x4160,0x416b,0x4176,0x4183,0x4192,
-0x41a0,0x41ab,0x41c6,0x41d0,0x41e1,0x41f2,0x4201,0x4212,0x421d,0x4228,0x4233,0x423e,0x4249,0x4254,0x425f,0x4269,
-0x4274,0x4284,0x428f,0x429d,0x42aa,0x42b5,0x42c4,0x42d1,0x42de,0x42ed,0x42fa,0x430b,0x431d,0x432d,0x4338,0x434b,
-0x4362,0x4370,0x437d,0x4388,0x4395,0x43a6,0x43c2,0x43d8,0x43e3,0x4400,0x4410,0x441f,0x442a,0x4435,0x1f24,0x4441,
-0x444c,0x4464,0x4474,0x4483,0x4491,0x449f,0x44aa,0x44b5,0x44c9,0x44e0,0x44f8,0x4508,0x4518,0x4528,0x453a,0x4545,
-0x4550,0x455a,0x4566,0x4574,0x4587,0x4593,0x45a0,0x45ab,0x45c7,0x45d4,0x45e2,0x45fb,0x2824,0x460a,0x2645,0x4617,
-0x4625,0x4637,0x4645,0x4651,0x4661,0x2a5f,0x466f,0x467b,0x4686,0x4691,0x469c,0x46b0,0x46be,0x46d5,0x46e1,0x46f5,
-0x4703,0x4715,0x472b,0x4739,0x2fa6,1,0,6,0x4765,0x4778,0x4788,0x4796,0x47a7,0x47b7,0x3002,0x12,
-0,1,0x47e1,0x47e7,0x300f,0x12,0,1,0x47e1,0x47e7,0x301c,1,0,3,0x47e1,0x47e7,
-0x4820,0x3032,1,0,3,0x47e1,0x47e7,0x4820,0x3048,1,0,0x12,0x48aa,0x48b4,0x48c0,0x48c7,
-0x48d2,0x48d7,0x48de,0x48e5,0x48ee,0x48f3,0x48f8,0x4908,0x85e,0x3c8b,0x4914,0x3c96,0x4924,0x3ca5,0x30f1,1,
-0,0xf,0x48aa,0x494b,0x4955,0x495f,0x496a,0x3b61,0x4974,0x4980,0x4988,0x498f,0x4999,0x48c0,0x48c7,0x48d7,
-0x49a3,0x3178,1,0,0x17,0x48aa,0x49c0,0x495f,0x49cc,0x49d9,0x49e7,0x3b61,0x49f2,0x48c0,0x4a03,0x48d7,
-0x4a12,0x4a20,0x85e,0x3c79,0x4a2c,0x4a3d,0x3c8b,0x4914,0x3c96,0x4924,0x3ca5,0x4a4e,0x3295,1,0,3,
-0x4a81,0x4a89,0x4a91,0x32ae,0x36,1,2,4,8,0xe,0x10,0x20,0x3e,0x40,0x80,0x100,
-0x1c0,0x200,0x400,0x800,0xe00,0x1000,0x2000,0x4000,0x7000,0x8000,0x10000,0x20000,0x40000,0x78001,0x80000,0x100000,
-0x200000,0x400000,0x800000,0x1000000,0x2000000,0x4000000,0x8000000,0xf000000,0x10000000,0x20000000,0x30f80000,0x2e61,0x2e70,0x2e85,0x2e9a,0x4ac8,
-0x2eaf,0x2ec3,0x4abe,0x2ed4,0x2ee8,0x2efb,0x4ad9,0x2f0c,0x2f25,0x2f37,0x4af0,0x2f48,0x2f5c,0x2f6f,0x4b19,0x2f87,
-0x2f99,0x2fa4,0x2fb4,0x4ab5,0x2fc2,0x2fd7,0x2fec,0x3002,0x301c,0x3032,0x3042,0x3056,0x306a,0x4b0f,0x307b,0x3093,
-0x4afa
+const int32_t PropNameData::valueMaps[1354]={
+6,0,0x41,0,0xe3,0x356,0xe3,0x36c,0xe3,0x381,0xe3,0x397,0xe3,0x3a2,0xe3,0x3c3,
+0xe3,0x3d3,0xe3,0x3e2,0xe3,0x3f0,0xe3,0x414,0xe3,0x42b,0xe3,0x443,0xe3,0x45a,0xe3,0x469,
+0xe3,0x478,0xe3,0x489,0xe3,0x497,0xe3,0x4a9,0xe3,0x4c3,0xe3,0x4de,0xe3,0x4f3,0xe3,0x510,
+0xe3,0x521,0xe3,0x52c,0xe3,0x54b,0xe3,0x561,0xe3,0x572,0xe3,0x582,0xe3,0x59d,0xe3,0x5b6,
+0xe3,0x5c7,0xe3,0x5e1,0xe3,0x5f4,0xe3,0x604,0xe3,0x61e,0xe3,0x637,0xe3,0x64e,0xe3,0x662,
+0xe3,0x678,0xe3,0x68c,0xe3,0x6a2,0xe3,0x6bc,0xe3,0x6d4,0xe3,0x6f0,0xe3,0x6f8,0xe3,0x700,
+0xe3,0x708,0xe3,0x710,0xe3,0x719,0xe3,0x726,0xe3,0x739,0xe3,0x756,0xe3,0x773,0xe3,0x790,
+0xe3,0x7ae,0xe3,0x7cc,0xe3,0x7f0,0xe3,0x7fd,0xe3,0x817,0xe3,0x82c,0xe3,0x847,0xe3,0x85e,
+0xe3,0x875,0xe3,0x897,0xe3,0x1000,0x1019,0x8b6,0x15d,0xad6,0x178,0x2c95,0xe9,0x2cb4,0x2a0,0x2df2,
+0x2b6,0x2e4c,0x2c0,0x30a9,0x2e2,0x39a4,0x34c,0x3a14,0x356,0x3cae,0x385,0x3cec,0x38d,0x474b,0x44a,0x47c9,
+0x454,0x47ee,0x45a,0x4808,0x460,0x4829,0x467,0x4843,0xe9,0x4868,0xe9,0x488e,0x46e,0x4938,0x484,0x49b1,
+0x497,0x4a63,0x4b2,0x4a9a,0x4b9,0x4c49,0x4cc,0x50c9,0x4f4,0x2000,0x2001,0x5128,0x4fc,0x3000,0x3001,0x51b4,
+0,0x4000,0x400e,0x51c6,0,0x51cf,0,0x51e9,0,0x51fa,0,0x520b,0,0x5221,0,0x522a,
+0,0x5247,0,0x5265,0,0x5283,0,0x52a1,0,0x52b7,0,0x52cb,0,0x52e1,0,0x7000,
+0x7001,0x52fa,0,0x7d6,0x12,0,1,0x12,0x20,0x7f4,0x49,0,1,7,8,9,
+0xa,0xb,0xc,0xd,0xe,0xf,0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,
+0x1a,0x1b,0x1c,0x1d,0x1e,0x1f,0x20,0x21,0x22,0x23,0x24,0x54,0x5b,0x67,0x6b,0x76,
+0x7a,0x81,0x82,0x84,0x85,0xc8,0xca,0xd6,0xd8,0xda,0xdc,0xde,0xe0,0xe2,0xe4,0xe6,
+0xe8,0xe9,0xea,0xf0,0x2e,0x40,0x4c,0x56,0x67,0x72,0x7f,0x8c,0x99,0xa6,0xb3,0xc0,
+0xcd,0xda,0xe7,0xf4,0x101,0x10e,0x11b,0x128,0x135,0x142,0x14f,0x15c,0x169,0x176,0x183,0x190,
+0x19d,0x1aa,0x1b7,0x1c4,0x1d1,0x1de,0x1eb,0x1fa,0x209,0x218,0x227,0x236,0x245,0x254,0x263,0x27d,
+0x291,0x2a5,0x2c0,0x2cf,0x2d8,0x2e8,0x2f0,0x2f9,0x308,0x311,0x321,0x332,0x343,0x986,1,0,
+0x17,0x8c5,0x8d6,0x8e7,0x8fb,0x912,0x92a,0x93c,0x951,0x968,0x97d,0x98d,0x99f,0x9bc,0x9d8,0x9ea,
+0xa07,0xa23,0xa3f,0xa54,0xa69,0xa83,0xa9e,0xab9,0xb28,1,0,0x124,0xae1,0xaee,0xb01,0xb29,
+0xb47,0xb65,0xb7d,0xba8,0xbd2,0xbea,0xbfd,0xc10,0xc1f,0xc2e,0xc3d,0xc4c,0xc63,0xc74,0xc87,0xc9a,
+0xca7,0xcb4,0xcc3,0xcd4,0xce9,0xcfa,0xd05,0xd0e,0xd1f,0xd30,0xd43,0xd55,0xd68,0xd7b,0xdba,0xdc7,
+0xdd4,0xde1,0xdf6,0xe26,0xe40,0xe61,0xe8c,0xeaf,0xf0d,0xf34,0xf4f,0xf5e,0xf85,0xfad,0xfd0,0xff3,
+0x101d,0x1036,0x1055,0x1078,0x109c,0x10af,0x10c9,0x10f3,0x110b,0x1133,0x115c,0x116f,0x1182,0x1195,0x11bc,0x11cb,
+0x11eb,0x1219,0x1237,0x1265,0x1281,0x129c,0x12b5,0x12ce,0x12ef,0x131f,0x133e,0x1360,0x1394,0x13c1,0x1406,0x1427,
+0x1451,0x1472,0x149b,0x14ae,0x14e1,0x14f8,0x1507,0x1518,0x1543,0x155a,0x158b,0x15b9,0x15fc,0x1607,0x1640,0x1651,
+0x1662,0x166f,0x1682,0x16bc,0x16e0,0x1704,0x173e,0x1776,0x17a1,0x17b9,0x17e5,0x1811,0x181e,0x182d,0x184a,0x186c,
+0x189a,0x18ba,0x18e1,0x1908,0x1927,0x193a,0x194b,0x195c,0x1981,0x19a6,0x19cd,0x1a01,0x1a2e,0x1a4c,0x1a5f,0x1a78,
+0x1ab1,0x1ac0,0x1ae0,0x1b02,0x1b24,0x1b3b,0x1b52,0x1b7f,0x1b98,0x1bb1,0x1be2,0x1c0c,0x1c27,0x1c3a,0x1c59,0x1c62,
+0x1c75,0x1c93,0x1cb1,0x1cc4,0x1cdb,0x1cf0,0x1d25,0x1d49,0x1d5e,0x1d6d,0x1d80,0x1da4,0x1dad,0x1dd1,0x1de8,0x1dfb,
+0x1e0a,0x1e15,0x1e36,0x1e4e,0x1e5d,0x1e6c,0x1e7b,0x1e92,0x1ea7,0x1ebc,0x1ef5,0x1f08,0x1f24,0x1f2f,0x1f3c,0x1f6a,
+0x1f8e,0x1fb1,0x1fc4,0x1fe6,0x1ff9,0x2014,0x2037,0x205a,0x207f,0x2090,0x20bf,0x20ec,0x2103,0x211e,0x212d,0x2158,
+0x2190,0x21ca,0x21f8,0x2209,0x2216,0x223a,0x2249,0x2265,0x227f,0x229c,0x22d4,0x22e9,0x2316,0x2335,0x2363,0x2383,
+0x23b7,0x23c6,0x23f0,0x2413,0x243e,0x2449,0x245a,0x2475,0x2499,0x24a6,0x24bb,0x24e2,0x250d,0x2544,0x2557,0x2568,
+0x2598,0x25a9,0x25b8,0x25cd,0x25eb,0x25fe,0x2611,0x2628,0x2645,0x2650,0x2659,0x267b,0x2690,0x26b5,0x26cc,0x26f5,
+0x2710,0x2725,0x273e,0x275f,0x2794,0x27a5,0x27d6,0x27fa,0x280b,0x2824,0x282f,0x285c,0x287e,0x28ac,0x28df,0x28ee,
+0x28ff,0x291c,0x295e,0x2985,0x2992,0x29a7,0x29cb,0x29f1,0x2a2a,0x2a3b,0x2a5f,0x2a6a,0x2a77,0x2a86,0x2aab,0x2ad9,
+0x2af5,0x2b12,0x2b1f,0x2b30,0x2b4e,0x2b71,0x2b8e,0x2b9b,0x2bbb,0x2bd8,0x2bf9,0x2c22,0x2c33,0x2c52,0x2c6b,0x2c84,
+0x1d4e,1,0,0x12,0x2ccb,0x2cdb,0x2cee,0x2cfe,0x2d0e,0x2d1d,0x2d2d,0x2d3f,0x2d52,0x2d64,0x2d74,0x2d84,
+0x2d93,0x2da2,0x2db2,0x2dbf,0x2dce,0x2de2,0x1e0c,1,0,6,0x2e07,0x2e12,0x2e1f,0x2e2c,0x2e39,0x2e44,
+0x1e50,1,0,0x1e,0x2e61,0x2e70,0x2e85,0x2e9a,0x2eaf,0x2ec3,0x2ed4,0x2ee8,0x2efb,0x2f0c,0x2f25,0x2f37,
+0x2f48,0x2f5c,0x2f6f,0x2f87,0x2f99,0x2fa4,0x2fb4,0x2fc2,0x2fd7,0x2fec,0x3002,0x301c,0x3032,0x3042,0x3056,0x306a,
+0x307b,0x3093,0x207b,1,0,0x66,0x30bb,0x30de,0x30e7,0x30f4,0x30ff,0x3108,0x3113,0x311c,0x3135,0x313a,
+0x3143,0x3160,0x3169,0x3176,0x317f,0x31a3,0x31aa,0x31b3,0x31c6,0x31d1,0x31da,0x31e5,0x31fe,0x3207,0x3216,0x3221,
+0x322a,0x3235,0x323e,0x3245,0x324e,0x3259,0x3262,0x327b,0x3284,0x3291,0x329c,0x32ad,0x32b8,0x32cd,0x32e4,0x32ed,
+0x32f6,0x330f,0x331a,0x3323,0x332c,0x3343,0x3360,0x336b,0x337c,0x3387,0x338e,0x339b,0x33a8,0x33d5,0x33ea,0x33f3,
+0x340e,0x3431,0x3452,0x3473,0x3498,0x34bf,0x34e0,0x3503,0x3524,0x354b,0x356c,0x3591,0x35b0,0x35cf,0x35ee,0x360b,
+0x362c,0x364d,0x3670,0x3695,0x36b4,0x36d3,0x36f4,0x371b,0x3740,0x375f,0x3780,0x37a3,0x37be,0x37d7,0x37f2,0x380b,
+0x3828,0x3843,0x3860,0x387f,0x389c,0x38b9,0x38d8,0x38f5,0x3910,0x392d,0x394a,0x397d,0x23c0,1,0,6,
+0x39b5,0x39c4,0x39d4,0x39e4,0x39f4,0x3a05,0x241e,1,0,0x2b,0x3a23,0x3a2f,0x3a3d,0x3a4c,0x3a5b,0x3a6b,
+0x3a7c,0x3a90,0x3aa5,0x3abb,0x3ace,0x3ae2,0x3af2,0x3afb,0x3b06,0x3b16,0x3b32,0x3b44,0x3b52,0x3b61,0x3b6d,0x3b82,
+0x3b96,0x3ba9,0x3bb7,0x3bcb,0x3bd9,0x3be3,0x3bf5,0x3c01,0x3c0f,0x3c1f,0x3c26,0x3c2d,0x3c34,0x3c3b,0x3c42,0x3c58,
+0x3c79,0x85e,0x3c8b,0x3c96,0x3ca5,0x2677,1,0,4,0x3cbf,0x3cca,0x3cd6,0x3ce0,0x269d,1,0,
+0xb9,0x3cf7,0x3d04,0x3d19,0x3d26,0x3d35,0x3d43,0x3d52,0x3d61,0x3d73,0x3d82,0x3d90,0x3da1,0x3db0,0x3dbf,0x3dcc,
+0x3dd8,0x3de7,0x3df6,0x3e00,0x3e0d,0x3e1a,0x3e29,0x3e37,0x3e46,0x3e52,0x3e5c,0x3e68,0x3e78,0x3e88,0x3e96,0x3ea2,
+0x3eb3,0x3ebf,0x3ecb,0x3ed9,0x3ee6,0x3ef2,0x3eff,0xcfa,0x3f0c,0x3f1a,0x3f34,0x3f3d,0x3f4b,0x3f59,0x3f65,0x3f74,
+0x3f82,0x3f90,0x3f9c,0x3fab,0x3fb9,0x3fc7,0x3fd4,0x3fe3,0x3ffe,0x400d,0x401e,0x402f,0x4042,0x4054,0x4063,0x4075,
+0x4084,0x4090,0x409b,0x1e0a,0x40a8,0x40b3,0x40be,0x40c9,0x40d4,0x40ef,0x40fa,0x4105,0x4110,0x4123,0x4137,0x4142,
+0x4151,0x4160,0x416b,0x4176,0x4183,0x4192,0x41a0,0x41ab,0x41c6,0x41d0,0x41e1,0x41f2,0x4201,0x4212,0x421d,0x4228,
+0x4233,0x423e,0x4249,0x4254,0x425f,0x4269,0x4274,0x4284,0x428f,0x429d,0x42aa,0x42b5,0x42c4,0x42d1,0x42de,0x42ed,
+0x42fa,0x430b,0x431d,0x432d,0x4338,0x434b,0x4362,0x4370,0x437d,0x4388,0x4395,0x43a6,0x43c2,0x43d8,0x43e3,0x4400,
+0x4410,0x441f,0x442a,0x4435,0x1f24,0x4441,0x444c,0x4464,0x4474,0x4483,0x4491,0x449f,0x44aa,0x44b5,0x44c9,0x44e0,
+0x44f8,0x4508,0x4518,0x4528,0x453a,0x4545,0x4550,0x455a,0x4566,0x4574,0x4587,0x4593,0x45a0,0x45ab,0x45c7,0x45d4,
+0x45e2,0x45fb,0x2824,0x460a,0x2645,0x4617,0x4625,0x4637,0x4645,0x4651,0x4661,0x2a5f,0x466f,0x467b,0x4686,0x4691,
+0x469c,0x46b0,0x46be,0x46d5,0x46e1,0x46f5,0x4703,0x4715,0x472b,0x4739,0x3000,1,0,6,0x4765,0x4778,
+0x4788,0x4796,0x47a7,0x47b7,0x305c,0x12,0,1,0x47e1,0x47e7,0x3069,0x12,0,1,0x47e1,0x47e7,
+0x3076,1,0,3,0x47e1,0x47e7,0x4820,0x308c,1,0,3,0x47e1,0x47e7,0x4820,0x30a2,1,
+0,0x12,0x48aa,0x48b4,0x48c0,0x48c7,0x48d2,0x48d7,0x48de,0x48e5,0x48ee,0x48f3,0x48f8,0x4908,0x85e,0x3c8b,
+0x4914,0x3c96,0x4924,0x3ca5,0x314b,1,0,0xf,0x48aa,0x494b,0x4955,0x495f,0x496a,0x3b61,0x4974,0x4980,
+0x4988,0x498f,0x4999,0x48c0,0x48c7,0x48d7,0x49a3,0x31d2,1,0,0x17,0x48aa,0x49c0,0x495f,0x49cc,0x49d9,
+0x49e7,0x3b61,0x49f2,0x48c0,0x4a03,0x48d7,0x4a12,0x4a20,0x85e,0x3c79,0x4a2c,0x4a3d,0x3c8b,0x4914,0x3c96,0x4924,
+0x3ca5,0x4a4e,0x32ef,1,0,3,0x4a81,0x4a89,0x4a91,0x3308,1,0,0xf,0x4aba,0x4ac1,0x4ad0,
+0x4af1,0x4b14,0x4b1f,0x4b3e,0x4b55,0x4b62,0x4b6b,0x4b8a,0x4bbd,0x4bd8,0x4c07,0x4c24,0x3398,1,0,0x24,
+0x4c67,0x4c74,0x4c87,0x4c94,0x4cc1,0x4ce6,0x4cfb,0x4d1a,0x4d3b,0x4d68,0x4da1,0x4dc4,0x4de7,0x4e14,0x4e49,0x4e70,
+0x4e99,0x4ed0,0x4eff,0x4f20,0x4f45,0x4f54,0x4f77,0x4f8e,0x4f9b,0x4faa,0x4fc7,0x4fe0,0x5003,0x5028,0x5041,0x5056,
+0x5065,0x5076,0x5083,0x50a4,0x3568,1,0,4,0x50e2,0x50ed,0x5105,0x511d,0x35a4,0x36,1,2,
+4,8,0xe,0x10,0x20,0x3e,0x40,0x80,0x100,0x1c0,0x200,0x400,0x800,0xe00,0x1000,0x2000,
+0x4000,0x7000,0x8000,0x10000,0x20000,0x40000,0x78001,0x80000,0x100000,0x200000,0x400000,0x800000,0x1000000,0x2000000,0x4000000,0x8000000,
+0xf000000,0x10000000,0x20000000,0x30f80000,0x2e61,0x2e70,0x2e85,0x2e9a,0x5156,0x2eaf,0x2ec3,0x514c,0x2ed4,0x2ee8,0x2efb,0x5167,
+0x2f0c,0x2f25,0x2f37,0x517e,0x2f48,0x2f5c,0x2f6f,0x51a7,0x2f87,0x2f99,0x2fa4,0x2fb4,0x5143,0x2fc2,0x2fd7,0x2fec,
+0x3002,0x301c,0x3032,0x3042,0x3056,0x306a,0x519d,0x307b,0x3093,0x5188
 };
 
-const uint8_t PropNameData::bytesTries[13765]={
-0,0x15,0x6d,0xc3,0x5d,0x73,0xc1,0xf7,0x76,0x5f,0x76,0x68,0x77,0x90,0x78,1,
-0x64,0x50,0x69,0x10,0x64,1,0x63,0x30,0x73,0x62,0x13,0x74,0x61,0x72,0x74,0x63,
-0x60,0x16,0x6f,0x6e,0x74,0x69,0x6e,0x75,0x65,0x61,0x13,0x69,0x67,0x69,0x74,0x81,
-1,0x61,0x24,0x73,0x69,0x1e,0x72,0x69,0x61,0x74,0x69,0x6f,0x6e,0x73,0x65,0x6c,
-0x65,0x63,0x74,0x6f,0x72,0x69,3,0x62,0xc3,0x14,0x68,0x32,0x6f,0x42,0x73,0x13,
-0x70,0x61,0x63,0x65,0x5f,0x17,0x69,0x74,0x65,0x73,0x70,0x61,0x63,0x65,0x5f,0x16,
-0x72,0x64,0x62,0x72,0x65,0x61,0x6b,0xc3,0x14,0x73,0xa2,0x49,0x74,0xa4,0x3b,0x75,
-3,0x63,0xd9,0x40,0xc,0x69,0x52,0x6e,0x58,0x70,0x12,0x70,0x65,0x72,0x5c,0x13,
-0x63,0x61,0x73,0x65,0x5c,0x16,0x6d,0x61,0x70,0x70,0x69,0x6e,0x67,0xd9,0x40,0xc,
-0x12,0x64,0x65,0x6f,0x5b,0x10,0x69,1,0x63,0x3e,0x66,0x1b,0x69,0x65,0x64,0x69,
-0x64,0x65,0x6f,0x67,0x72,0x61,0x70,0x68,0x5b,0x17,0x6f,0x64,0x65,0x31,0x6e,0x61,
-0x6d,0x65,0xd9,0x40,0xb,0xa,0x69,0x84,0x70,0x19,0x70,0x30,0x74,0x36,0x75,0x10,
-0x63,0xd9,0x40,9,0x12,0x61,0x63,0x65,0x5f,1,0x63,0xd9,0x40,8,0x65,0x11,
-0x72,0x6d,0x67,0x69,0x3c,0x6c,0xa2,0x5f,0x6f,0x17,0x66,0x74,0x64,0x6f,0x74,0x74,
-0x65,0x64,0x57,0x13,0x6d,0x70,0x6c,0x65,3,0x63,0x50,0x6c,0x68,0x74,0x8a,0x75,
-0x1e,0x70,0x70,0x65,0x72,0x63,0x61,0x73,0x65,0x6d,0x61,0x70,0x70,0x69,0x6e,0x67,
-0xd9,0x40,9,0x19,0x61,0x73,0x65,0x66,0x6f,0x6c,0x64,0x69,0x6e,0x67,0xd9,0x40,
-6,0x1e,0x6f,0x77,0x65,0x72,0x63,0x61,0x73,0x65,0x6d,0x61,0x70,0x70,0x69,0x6e,
-0x67,0xd9,0x40,7,0x1e,0x69,0x74,0x6c,0x65,0x63,0x61,0x73,0x65,0x6d,0x61,0x70,
-0x70,0x69,0x6e,0x67,0xd9,0x40,8,0x10,0x63,0xd9,0x40,7,0x62,0xc3,0x13,0x63,
-0x34,0x64,0x57,0x65,0x6e,0x66,0x10,0x63,0xd9,0x40,6,0xc2,0xa,2,0x66,0xd9,
-0x40,6,0x72,0x28,0x78,0xd9,0x70,0,0x12,0x69,0x70,0x74,0xc2,0xa,0x19,0x65,
-0x78,0x74,0x65,0x6e,0x73,0x69,0x6f,0x6e,0x73,0xd9,0x70,0,1,0x67,0x6a,0x6e,
-1,0x73,0x54,0x74,0x13,0x65,0x6e,0x63,0x65,1,0x62,0x34,0x74,0x16,0x65,0x72,
-0x6d,0x69,0x6e,0x61,0x6c,0x67,0x13,0x72,0x65,0x61,0x6b,0xc3,0x13,0x14,0x69,0x74,
-0x69,0x76,0x65,0x65,1,0x6d,0x2e,0x73,0x13,0x74,0x61,0x72,0x74,0x73,0x19,0x65,
-0x6e,0x74,0x73,0x74,0x61,0x72,0x74,0x65,0x72,0x73,3,0x63,0x66,0x65,0x72,0x69,
-0x98,0x72,0x19,0x61,0x69,0x6c,0x63,0x61,0x6e,0x6f,0x6e,0x69,0x63,0x1f,0x61,0x6c,
-0x63,0x6f,0x6d,0x62,0x69,0x6e,0x69,0x6e,0x67,0x63,0x6c,0x61,0x73,0x73,0xc3,0x11,
-0xd8,0x40,0xa,0x11,0x63,0x63,0xc3,0x11,0x11,0x72,0x6d,0x58,0x1e,0x69,0x6e,0x61,
-0x6c,0x70,0x75,0x6e,0x63,0x74,0x75,0x61,0x74,0x69,0x6f,0x6e,0x59,0x1d,0x74,0x6c,
-0x65,0x63,0x61,0x73,0x65,0x6d,0x61,0x70,0x70,0x69,0x6e,0x67,0xd9,0x40,0xa,0x6d,
-0x70,0x6e,0x76,0x70,0xa2,0xf1,0x71,0xa4,0x43,0x72,2,0x61,0x28,0x65,0x32,0x69,
-0x9d,0x14,0x64,0x69,0x63,0x61,0x6c,0x55,0x1e,0x67,0x69,0x6f,0x6e,0x61,0x6c,0x69,
-0x6e,0x64,0x69,0x63,0x61,0x74,0x6f,0x72,0x9d,0x12,0x61,0x74,0x68,0x4f,6,0x6f,
-0x39,0x6f,0x32,0x74,0xc3,9,0x75,0x54,0x76,0xd9,0x30,0,0x12,0x6e,0x63,0x68,
-0x1f,0x61,0x72,0x61,0x63,0x74,0x65,0x72,0x63,0x6f,0x64,0x65,0x70,0x6f,0x69,0x6e,
-0x74,0x51,0x14,0x6d,0x65,0x72,0x69,0x63,1,0x74,0x32,0x76,0x13,0x61,0x6c,0x75,
-0x65,0xd9,0x30,0,0x12,0x79,0x70,0x65,0xc3,9,0x61,0xa2,0x77,0x63,0xa2,0x82,
-0x66,2,0x63,0x98,0x64,0xa2,0x53,0x6b,1,0x63,0x56,0x64,1,0x69,0x42,0x71,
-1,0x63,0xc3,0xd,0x75,0x17,0x69,0x63,0x6b,0x63,0x68,0x65,0x63,0x6b,0xc3,0xd,
-0x13,0x6e,0x65,0x72,0x74,0x6d,1,0x69,0x42,0x71,1,0x63,0xc3,0xf,0x75,0x17,
-0x69,0x63,0x6b,0x63,0x68,0x65,0x63,0x6b,0xc3,0xf,0x13,0x6e,0x65,0x72,0x74,0x71,
-1,0x69,0x42,0x71,1,0x63,0xc3,0xe,0x75,0x17,0x69,0x63,0x6b,0x63,0x68,0x65,
-0x63,0x6b,0xc3,0xe,0x13,0x6e,0x65,0x72,0x74,0x6f,1,0x69,0x42,0x71,1,0x63,
-0xc3,0xc,0x75,0x17,0x69,0x63,0x6b,0x63,0x68,0x65,0x63,0x6b,0xc3,0xc,0x13,0x6e,
-0x65,0x72,0x74,0x6b,0xd8,0x40,5,1,0x31,0xd9,0x40,0xb,0x6d,0x10,0x65,0xd9,
-0x40,5,0x12,0x68,0x61,0x72,0x51,2,0x61,0x6c,0x63,0xa2,0x4c,0x72,1,0x65,
-0x2a,0x69,0x11,0x6e,0x74,0x7f,0x16,0x70,0x65,0x6e,0x64,0x65,0x64,0x63,0x1f,0x6f,
-0x6e,0x63,0x61,0x74,0x65,0x6e,0x61,0x74,0x69,0x6f,0x6e,0x6d,0x61,0x72,0x6b,0x9f,
-0x10,0x74,2,0x73,0x2c,0x74,0x30,0x77,0x10,0x73,0x77,0x11,0x79,0x6e,0x75,0x12,
-0x65,0x72,0x6e,1,0x73,0x38,0x77,0x18,0x68,0x69,0x74,0x65,0x73,0x70,0x61,0x63,
-0x65,0x77,0x14,0x79,0x6e,0x74,0x61,0x78,0x75,0x10,0x6d,0x9f,1,0x6d,0x3c,0x75,
-0x1a,0x6f,0x74,0x61,0x74,0x69,0x6f,0x6e,0x6d,0x61,0x72,0x6b,0x53,0x12,0x61,0x72,
-0x6b,0x53,0x66,0xc1,0xb9,0x69,0xc0,0xfd,0x69,0xa2,0x6f,0x6a,0xa2,0xca,0x6c,4,
-0x62,0xc3,8,0x63,0x8c,0x65,0x98,0x69,0xa2,0x56,0x6f,2,0x65,0x4b,0x67,0x4c,
-0x77,0x11,0x65,0x72,0x4c,0x13,0x63,0x61,0x73,0x65,0x4c,0x16,0x6d,0x61,0x70,0x70,
-0x69,0x6e,0x67,0xd9,0x40,4,0x11,0x69,0x63,0x1f,0x61,0x6c,0x6f,0x72,0x64,0x65,
-0x72,0x65,0x78,0x63,0x65,0x70,0x74,0x69,0x6f,0x6e,0x4b,0xd8,0x40,4,0x11,0x63,
-0x63,0xc3,0x10,0x18,0x61,0x64,0x63,0x61,0x6e,0x6f,0x6e,0x69,0x63,0x1f,0x61,0x6c,
-0x63,0x6f,0x6d,0x62,0x69,0x6e,0x69,0x6e,0x67,0x63,0x6c,0x61,0x73,0x73,0xc3,0x10,
-0x16,0x6e,0x65,0x62,0x72,0x65,0x61,0x6b,0xc3,8,1,0x64,0x44,0x73,1,0x63,
-0xd9,0x40,3,0x6f,0x16,0x63,0x6f,0x6d,0x6d,0x65,0x6e,0x74,0xd9,0x40,3,2,
-0x63,0x80,0x65,0x90,0x73,0x40,1,0x62,0x52,0x74,0x46,1,0x61,0x40,0x72,0x1c,
-0x69,0x6e,0x61,0x72,0x79,0x6f,0x70,0x65,0x72,0x61,0x74,0x6f,0x72,0x47,0x11,0x72,
-0x74,0x41,0x44,0x1c,0x69,0x6e,0x61,0x72,0x79,0x6f,0x70,0x65,0x72,0x61,0x74,0x6f,
-0x72,0x45,0x3e,0x16,0x6f,0x6e,0x74,0x69,0x6e,0x75,0x65,0x3f,0x10,0x6f,0x42,0x16,
-0x67,0x72,0x61,0x70,0x68,0x69,0x63,0x43,2,0x67,0xc3,6,0x6f,0x26,0x74,0xc3,
-7,0x11,0x69,0x6e,1,0x63,0x4a,0x69,0x11,0x6e,0x67,1,0x67,0x2e,0x74,0x12,
-0x79,0x70,0x65,0xc3,7,0x13,0x72,0x6f,0x75,0x70,0xc3,6,0x48,0x15,0x6f,0x6e,
-0x74,0x72,0x6f,0x6c,0x49,0x66,0x86,0x67,0xa2,0x4a,0x68,3,0x61,0x36,0x65,0x58,
-0x73,0x68,0x79,0x13,0x70,0x68,0x65,0x6e,0x3d,0x1f,0x6e,0x67,0x75,0x6c,0x73,0x79,
-0x6c,0x6c,0x61,0x62,0x6c,0x65,0x74,0x79,0x70,0x65,0xc3,0xb,0x10,0x78,0x3a,0x14,
-0x64,0x69,0x67,0x69,0x74,0x3b,0x10,0x74,0xc3,0xb,0x16,0x75,0x6c,0x6c,0x63,0x6f,
-0x6d,0x70,0x1f,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x65,0x78,0x63,0x6c,0x75,0x73,
-0x69,0x6f,0x6e,0x33,2,0x63,0xa2,0x44,0x65,0xa2,0x4b,0x72,3,0x61,0x34,0x62,
-0x84,0x65,0x8a,0x6c,0x12,0x69,0x6e,0x6b,0x39,0x11,0x70,0x68,0x7c,0x12,0x65,0x6d,
-0x65,3,0x62,0x5e,0x63,0x30,0x65,0x48,0x6c,0x12,0x69,0x6e,0x6b,0x39,0x1a,0x6c,
-0x75,0x73,0x74,0x65,0x72,0x62,0x72,0x65,0x61,0x6b,0xc3,0x12,0x14,0x78,0x74,0x65,
-0x6e,0x64,0x37,0x12,0x61,0x73,0x65,0x35,0x11,0x78,0x74,0x37,0xc2,5,1,0x62,
-0xc3,0x12,0x6d,0xd9,0x20,0,0x1c,0x6e,0x65,0x72,0x61,0x6c,0x63,0x61,0x74,0x65,
-0x67,0x6f,0x72,0x79,0xc2,5,0x13,0x6d,0x61,0x73,0x6b,0xd9,0x20,0,0x61,0xa2,
-0x90,0x62,0xa2,0xbe,0x63,0xa4,0x30,0x64,0xa4,0xfd,0x65,5,0x6d,0x63,0x6d,0x6e,
-0x70,0xa2,0x59,0x78,0x10,0x74,0x30,1,0x65,0x2c,0x70,0x12,0x69,0x63,0x74,0xa1,
-0x12,0x6e,0x64,0x65,1,0x64,0x24,0x72,0x31,0x1b,0x70,0x69,0x63,0x74,0x6f,0x67,
-0x72,0x61,0x70,0x68,0x69,0x63,0xa1,0x10,0x6f,1,0x64,0x97,0x6a,0x10,0x69,0x92,
-2,0x63,0x40,0x6d,0x50,0x70,0x1a,0x72,0x65,0x73,0x65,0x6e,0x74,0x61,0x74,0x69,
-0x6f,0x6e,0x95,0x17,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x9b,0x16,0x6f,0x64,
-0x69,0x66,0x69,0x65,0x72,0x96,0x13,0x62,0x61,0x73,0x65,0x99,0x12,0x72,0x65,0x73,
-0x95,0x61,0x30,0x62,0x4e,0x63,0x12,0x6f,0x6d,0x70,0x9b,0xc2,4,0x1b,0x73,0x74,
-0x61,0x73,0x69,0x61,0x6e,0x77,0x69,0x64,0x74,0x68,0xc3,4,0x12,0x61,0x73,0x65,
-0x99,3,0x67,0x44,0x68,0x4a,0x6c,0x4e,0x73,0x1a,0x63,0x69,0x69,0x68,0x65,0x78,
-0x64,0x69,0x67,0x69,0x74,0x23,0x10,0x65,0xd9,0x40,0,0x11,0x65,0x78,0x23,1,
-0x6e,0x38,0x70,0x11,0x68,0x61,0x20,0x14,0x62,0x65,0x74,0x69,0x63,0x21,0x11,0x75,
-0x6d,0x79,4,0x63,0xc3,0,0x69,0x3e,0x6c,0xa2,0x57,0x6d,0xa2,0x64,0x70,1,
-0x62,0xd9,0x40,0xd,0x74,0xc3,0x15,0x11,0x64,0x69,2,0x63,0x54,0x6d,0x74,0x70,
-0x1b,0x61,0x69,0x72,0x65,0x64,0x62,0x72,0x61,0x63,0x6b,0x65,0x74,0xd8,0x40,0xd,
-0x13,0x74,0x79,0x70,0x65,0xc3,0x15,0x24,1,0x6c,0x30,0x6f,0x14,0x6e,0x74,0x72,
-0x6f,0x6c,0x25,0x12,0x61,0x73,0x73,0xc3,0,0x26,0x14,0x69,0x72,0x72,0x6f,0x72,
-1,0x65,0x38,0x69,0x16,0x6e,0x67,0x67,0x6c,0x79,0x70,0x68,0xd9,0x40,1,0x10,
-0x64,0x27,2,0x61,0x32,0x6b,0xc3,1,0x6f,0x11,0x63,0x6b,0xc3,1,0x11,0x6e,
-0x6b,0x7b,0x10,0x67,0xd9,0x40,1,6,0x68,0x7c,0x68,0x54,0x69,0x85,0x6f,0xa2,
-0x6f,0x77,4,0x63,0x30,0x6b,0x36,0x6c,0x87,0x74,0x8b,0x75,0x89,1,0x66,0x8d,
-0x6d,0x8f,0x11,0x63,0x66,0x91,0x18,0x61,0x6e,0x67,0x65,0x73,0x77,0x68,0x65,0x6e,
-4,0x63,0x44,0x6c,0x6c,0x6e,0x7e,0x74,0x98,0x75,0x18,0x70,0x70,0x65,0x72,0x63,
-0x61,0x73,0x65,0x64,0x89,0x12,0x61,0x73,0x65,1,0x66,0x30,0x6d,0x14,0x61,0x70,
-0x70,0x65,0x64,0x8f,0x14,0x6f,0x6c,0x64,0x65,0x64,0x8d,0x18,0x6f,0x77,0x65,0x72,
-0x63,0x61,0x73,0x65,0x64,0x87,0x1c,0x66,0x6b,0x63,0x63,0x61,0x73,0x65,0x66,0x6f,
-0x6c,0x64,0x65,0x64,0x91,0x18,0x69,0x74,0x6c,0x65,0x63,0x61,0x73,0x65,0x64,0x8b,
-0x13,0x6d,0x70,0x65,0x78,0x33,0x61,0x2e,0x63,0xa2,0x48,0x66,0xd9,0x40,2,1,
-0x6e,0x72,0x73,0x10,0x65,3,0x64,0x83,0x66,0x3a,0x69,0x4a,0x73,0x17,0x65,0x6e,
-0x73,0x69,0x74,0x69,0x76,0x65,0x65,0x15,0x6f,0x6c,0x64,0x69,0x6e,0x67,0xd9,0x40,
-2,0x17,0x67,0x6e,0x6f,0x72,0x61,0x62,0x6c,0x65,0x85,0x13,0x6f,0x6e,0x69,0x63,
-0x1f,0x61,0x6c,0x63,0x6f,0x6d,0x62,0x69,0x6e,0x69,0x6e,0x67,0x63,0x6c,0x61,0x73,
-0x73,0xc3,2,0x10,0x63,0xc3,2,3,0x61,0x30,0x65,0x34,0x69,0xa2,0x41,0x74,
-0xc3,3,0x11,0x73,0x68,0x29,2,0x63,0x3a,0x66,0x58,0x70,0x2c,0x16,0x72,0x65,
-0x63,0x61,0x74,0x65,0x64,0x2d,0x1d,0x6f,0x6d,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,
-0x6e,0x74,0x79,0x70,0x65,0xc3,3,0x15,0x61,0x75,0x6c,0x74,0x69,0x67,0x1f,0x6e,
-0x6f,0x72,0x61,0x62,0x6c,0x65,0x63,0x6f,0x64,0x65,0x70,0x6f,0x69,0x6e,0x74,0x2b,
-0x2a,0x10,0x61,0x2e,0x15,0x63,0x72,0x69,0x74,0x69,0x63,0x2f,3,0x66,0x34,0x6e,
-0x3e,0x74,0x42,0x79,0x22,0x11,0x65,0x73,0x23,0x20,0x13,0x61,0x6c,0x73,0x65,0x21,
-0x20,0x10,0x6f,0x21,0x22,0x12,0x72,0x75,0x65,0x23,0xa,0x6b,0x5b,0x6f,0x23,0x6f,
-0x3c,0x72,0x4c,0x76,1,0x69,0x24,0x72,0x33,0x13,0x72,0x61,0x6d,0x61,0x33,0x10,
-0x76,0x22,0x14,0x65,0x72,0x6c,0x61,0x79,0x23,0xa2,0xe2,0x13,0x69,0x67,0x68,0x74,
-0xa3,0xe2,0x6b,0x58,0x6c,0x74,0x6e,3,0x6b,0x2f,0x6f,0x30,0x72,0x21,0x75,0x12,
-0x6b,0x74,0x61,0x2f,0x19,0x74,0x72,0x65,0x6f,0x72,0x64,0x65,0x72,0x65,0x64,0x21,
-1,0x61,0x24,0x76,0x31,0x18,0x6e,0x61,0x76,0x6f,0x69,0x63,0x69,0x6e,0x67,0x31,
-0xa2,0xe0,0x12,0x65,0x66,0x74,0xa3,0xe0,0x61,0x5c,0x62,0xa2,0x77,0x63,0xa2,0x96,
-0x64,0xa4,0xa,0x69,1,0x6f,0x26,0x73,0xa3,0xf0,0x1a,0x74,0x61,0x73,0x75,0x62,
-0x73,0x63,0x72,0x69,0x70,0x74,0xa3,0xf0,0xa2,0xe6,3,0x62,0xa0,0x6c,0xa3,0xe4,
-0x72,0xa3,0xe8,0x74,2,0x61,0x74,0x62,0x7c,0x74,0x14,0x61,0x63,0x68,0x65,0x64,
-1,0x61,0x3e,0x62,0x13,0x65,0x6c,0x6f,0x77,0xa2,0xca,0x13,0x6c,0x65,0x66,0x74,
-0xa3,0xc8,0x13,0x62,0x6f,0x76,0x65,0xa2,0xd6,0x14,0x72,0x69,0x67,0x68,0x74,0xa3,
-0xd8,0xa2,0xd6,0x10,0x72,0xa3,0xd8,0xa2,0xca,0x10,0x6c,0xa3,0xc8,0x12,0x6f,0x76,
-0x65,0xa2,0xe6,1,0x6c,0x30,0x72,0x13,0x69,0x67,0x68,0x74,0xa3,0xe8,0x12,0x65,
-0x66,0x74,0xa3,0xe4,0xa2,0xdc,2,0x65,0x2c,0x6c,0xa3,0xda,0x72,0xa3,0xde,0x12,
-0x6c,0x6f,0x77,0xa2,0xdc,1,0x6c,0x30,0x72,0x13,0x69,0x67,0x68,0x74,0xa3,0xde,
-0x12,0x65,0x66,0x74,0xa3,0xda,0x11,0x63,0x63,4,0x31,0x3c,0x32,0xa2,0x42,0x33,
-0xa2,0x56,0x38,0xa2,0x64,0x39,0x10,0x31,0xa3,0x5b,9,0x35,0xa,0x35,0x3f,0x36,
-0x41,0x37,0x43,0x38,0x45,0x39,0x47,0x30,0x30,0x31,0x3c,0x32,0x42,0x33,0x4e,0x34,
-0x3d,0x34,1,0x33,0xa3,0x67,0x37,0xa3,0x6b,0x36,0x10,0x38,0xa3,0x76,0x38,1,
-0x32,0xa3,0x7a,0x39,0xa3,0x81,0x3a,2,0x30,0xa3,0x82,0x32,0xa3,0x84,0x33,0xa3,
-0x85,9,0x35,0xa,0x35,0x53,0x36,0x55,0x37,0x57,0x38,0x59,0x39,0x5b,0x30,0x49,
-0x31,0x4b,0x32,0x4d,0x33,0x4f,0x34,0x51,6,0x33,8,0x33,0x63,0x34,0x65,0x35,
-0x67,0x36,0x69,0x30,0x5d,0x31,0x5f,0x32,0x61,0x10,0x34,0xa3,0x54,2,0x61,0xa3,
-0xea,0x62,0xa3,0xe9,0x6f,0x13,0x75,0x62,0x6c,0x65,1,0x61,0x30,0x62,0x13,0x65,
-0x6c,0x6f,0x77,0xa3,0xe9,0x13,0x62,0x6f,0x76,0x65,0xa3,0xea,0xb,0x6e,0xc0,0xca,
-0x72,0x5f,0x72,0x46,0x73,0xa2,0x48,0x77,1,0x68,0x24,0x73,0x33,0x17,0x69,0x74,
-0x65,0x73,0x70,0x61,0x63,0x65,0x33,0x22,1,0x69,0x30,0x6c,2,0x65,0x3d,0x69,
-0x4b,0x6f,0x3f,0x18,0x67,0x68,0x74,0x74,0x6f,0x6c,0x65,0x66,0x74,0x22,2,0x65,
-0x38,0x69,0x48,0x6f,0x16,0x76,0x65,0x72,0x72,0x69,0x64,0x65,0x3f,0x17,0x6d,0x62,
-0x65,0x64,0x64,0x69,0x6e,0x67,0x3d,0x15,0x73,0x6f,0x6c,0x61,0x74,0x65,0x4b,0x30,
-0x1e,0x65,0x67,0x6d,0x65,0x6e,0x74,0x73,0x65,0x70,0x61,0x72,0x61,0x74,0x6f,0x72,
-0x31,0x6e,0xa2,0x41,0x6f,0xa2,0x53,0x70,2,0x61,0x66,0x64,0x86,0x6f,0x1b,0x70,
-0x64,0x69,0x72,0x65,0x63,0x74,0x69,0x6f,0x6e,0x61,0x6c,1,0x66,0x32,0x69,0x15,
-0x73,0x6f,0x6c,0x61,0x74,0x65,0x4d,0x14,0x6f,0x72,0x6d,0x61,0x74,0x41,0x1f,0x72,
-0x61,0x67,0x72,0x61,0x70,0x68,0x73,0x65,0x70,0x61,0x72,0x61,0x74,0x6f,0x72,0x2f,
-1,0x66,0x41,0x69,0x4d,1,0x6f,0x28,0x73,0x10,0x6d,0x43,0x1b,0x6e,0x73,0x70,
-0x61,0x63,0x69,0x6e,0x67,0x6d,0x61,0x72,0x6b,0x43,1,0x6e,0x35,0x74,0x19,0x68,
-0x65,0x72,0x6e,0x65,0x75,0x74,0x72,0x61,0x6c,0x35,0x65,0x88,0x65,0x98,0x66,0xa2,
-0x6a,0x6c,0x20,1,0x65,0x30,0x72,2,0x65,0x37,0x69,0x49,0x6f,0x39,0x18,0x66,
-0x74,0x74,0x6f,0x72,0x69,0x67,0x68,0x74,0x20,2,0x65,0x38,0x69,0x48,0x6f,0x16,
-0x76,0x65,0x72,0x72,0x69,0x64,0x65,0x39,0x17,0x6d,0x62,0x65,0x64,0x64,0x69,0x6e,
-0x67,0x37,0x15,0x73,0x6f,0x6c,0x61,0x74,0x65,0x49,3,0x6e,0x25,0x73,0x27,0x74,
-0x29,0x75,0x15,0x72,0x6f,0x70,0x65,0x61,0x6e,2,0x6e,0x3c,0x73,0x46,0x74,0x18,
-0x65,0x72,0x6d,0x69,0x6e,0x61,0x74,0x6f,0x72,0x29,0x14,0x75,0x6d,0x62,0x65,0x72,
-0x25,0x17,0x65,0x70,0x61,0x72,0x61,0x74,0x6f,0x72,0x27,1,0x69,0x28,0x73,0x10,
-0x69,0x47,0x1f,0x72,0x73,0x74,0x73,0x74,0x72,0x6f,0x6e,0x67,0x69,0x73,0x6f,0x6c,
-0x61,0x74,0x65,0x47,0x61,0x4e,0x62,0x84,0x63,1,0x6f,0x24,0x73,0x2d,0x1c,0x6d,
-0x6d,0x6f,0x6e,0x73,0x65,0x70,0x61,0x72,0x61,0x74,0x6f,0x72,0x2d,2,0x6c,0x3b,
-0x6e,0x2b,0x72,0x13,0x61,0x62,0x69,0x63,1,0x6c,0x30,0x6e,0x14,0x75,0x6d,0x62,
-0x65,0x72,0x2b,0x14,0x65,0x74,0x74,0x65,0x72,0x3b,0x2e,1,0x6e,0x45,0x6f,0x1c,
-0x75,0x6e,0x64,0x61,0x72,0x79,0x6e,0x65,0x75,0x74,0x72,0x61,0x6c,0x45,0,0x16,
-0x6d,0xc7,0xfe,0x74,0xc1,0xb8,0x77,0x57,0x77,0x48,0x79,0x5c,0x7a,0x1d,0x61,0x6e,
-0x61,0x62,0x61,0x7a,0x61,0x72,0x73,0x71,0x75,0x61,0x72,0x65,0xa5,0x18,0x18,0x61,
-0x72,0x61,0x6e,0x67,0x63,0x69,0x74,0x69,0xa3,0xfc,0x10,0x69,2,0x6a,0x3c,0x72,
-0x68,0x73,0x17,0x79,0x6c,0x6c,0x61,0x62,0x6c,0x65,0x73,0xa3,0x48,0x12,0x69,0x6e,
-0x67,0xa2,0x74,0x1e,0x68,0x65,0x78,0x61,0x67,0x72,0x61,0x6d,0x73,0x79,0x6d,0x62,
-0x6f,0x6c,0x73,0xa3,0x74,0x16,0x61,0x64,0x69,0x63,0x61,0x6c,0x73,0xa3,0x49,0x74,
-0xa2,0x59,0x75,0xa4,0x12,0x76,2,0x61,0x36,0x65,0x7a,0x73,0xa2,0x6c,0x12,0x73,
-0x75,0x70,0xa3,0x7d,1,0x69,0xa3,0x9f,0x72,0x1e,0x69,0x61,0x74,0x69,0x6f,0x6e,
-0x73,0x65,0x6c,0x65,0x63,0x74,0x6f,0x72,0x73,0xa2,0x6c,0x19,0x73,0x75,0x70,0x70,
-0x6c,0x65,0x6d,0x65,0x6e,0x74,0xa3,0x7d,1,0x64,0x3c,0x72,0x19,0x74,0x69,0x63,
-0x61,0x6c,0x66,0x6f,0x72,0x6d,0x73,0xa3,0x91,0x14,0x69,0x63,0x65,0x78,0x74,0xa2,
-0xaf,0x16,0x65,0x6e,0x73,0x69,0x6f,0x6e,0x73,0xa3,0xaf,4,0x61,0x68,0x65,0xa2,
-0x8a,0x68,0xa2,0x8d,0x69,0xa2,0x95,0x72,0x1c,0x61,0x6e,0x73,0x70,0x6f,0x72,0x74,
-0x61,0x6e,0x64,0x6d,0x61,0x70,0xa2,0xcf,0x16,0x73,0x79,0x6d,0x62,0x6f,0x6c,0x73,
-0xa3,0xcf,4,0x67,0x58,0x69,0x7e,0x6b,0xa2,0x58,0x6d,0xa2,0x5a,0x6e,0x12,0x67,
-0x75,0x74,0xa4,0x10,0x19,0x63,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x73,0xa5,
-0x11,2,0x61,0x2a,0x62,0x32,0x73,0xa3,0x60,0x12,0x6c,0x6f,0x67,0xa3,0x62,0x13,
-0x61,0x6e,0x77,0x61,0xa3,0x65,3,0x6c,0x52,0x74,0x56,0x76,0x5e,0x78,0x16,0x75,
-0x61,0x6e,0x6a,0x69,0x6e,0x67,0xa2,0x7c,0x16,0x73,0x79,0x6d,0x62,0x6f,0x6c,0x73,
-0xa3,0x7c,0x10,0x65,0xa3,0x70,0x12,0x68,0x61,0x6d,0xa3,0xae,0x12,0x69,0x65,0x74,
-0xa3,0xb7,0x11,0x72,0x69,0xa3,0xdc,0x11,0x69,0x6c,0x49,0x13,0x6c,0x75,0x67,0x75,
-0x4b,0x10,0x61,1,0x61,0x24,0x69,0x53,0x11,0x6e,0x61,0x3d,2,0x62,0x34,0x66,
-0x3c,0x72,0x13,0x68,0x75,0x74,0x61,0xa3,0xfb,0x13,0x65,0x74,0x61,0x6e,0x57,0x14,
-0x69,0x6e,0x61,0x67,0x68,0xa3,0x90,2,0x63,0x82,0x67,0x92,0x6e,0x1f,0x69,0x66,
-0x69,0x65,0x64,0x63,0x61,0x6e,0x61,0x64,0x69,0x61,0x6e,0x61,0x62,0x6f,0x1f,0x72,
-0x69,0x67,0x69,0x6e,0x61,0x6c,0x73,0x79,0x6c,0x6c,0x61,0x62,0x69,0x63,0x73,0x62,
-0x17,0x65,0x78,0x74,0x65,0x6e,0x64,0x65,0x64,0xa3,0xad,0x11,0x61,0x73,0x62,0x12,
-0x65,0x78,0x74,0xa3,0xad,0x15,0x61,0x72,0x69,0x74,0x69,0x63,0xa3,0x78,0x70,0xc2,
-0xf5,0x70,0xa6,0xb,0x72,0xa6,0xc7,0x73,7,0x6f,0xc1,0x7f,0x6f,0x76,0x70,0xa2,
-0x47,0x75,0xa2,0x66,0x79,1,0x6c,0x4c,0x72,0x12,0x69,0x61,0x63,0x3a,0x12,0x73,
-0x75,0x70,0xa4,0x17,0x16,0x70,0x6c,0x65,0x6d,0x65,0x6e,0x74,0xa5,0x17,0x17,0x6f,
-0x74,0x69,0x6e,0x61,0x67,0x72,0x69,0xa3,0x8f,2,0x67,0x34,0x72,0x3e,0x79,0x13,
-0x6f,0x6d,0x62,0x6f,0xa5,0x16,0x13,0x64,0x69,0x61,0x6e,0xa5,0x23,0x17,0x61,0x73,
-0x6f,0x6d,0x70,0x65,0x6e,0x67,0xa3,0xda,1,0x61,0x32,0x65,0x14,0x63,0x69,0x61,
-0x6c,0x73,0xa3,0x56,0x12,0x63,0x69,0x6e,0x1f,0x67,0x6d,0x6f,0x64,0x69,0x66,0x69,
-0x65,0x72,0x6c,0x65,0x74,0x74,0x65,0x72,0x73,0x2d,2,0x6e,0x48,0x70,0x76,0x74,
-0x1d,0x74,0x6f,0x6e,0x73,0x69,0x67,0x6e,0x77,0x72,0x69,0x74,0x69,0x6e,0x67,0xa5,
-6,0x15,0x64,0x61,0x6e,0x65,0x73,0x65,0xa2,0x9b,0x12,0x73,0x75,0x70,0xa2,0xdb,
-0x16,0x70,0x6c,0x65,0x6d,0x65,0x6e,0x74,0xa3,0xdb,4,0x61,0xa2,0xa8,0x65,0x5c,
-0x6d,0x9e,0x70,0xa2,0x4b,0x73,0x13,0x79,0x6d,0x62,0x6f,0x1f,0x6c,0x73,0x61,0x6e,
-0x64,0x70,0x69,0x63,0x74,0x6f,0x67,0x72,0x61,0x70,0x68,0x73,0xa5,5,0x10,0x72,
-1,0x61,0x4e,0x73,0x12,0x63,0x72,0x69,0x1f,0x70,0x74,0x73,0x61,0x6e,0x64,0x73,
-0x75,0x62,0x73,0x63,0x72,0x69,0x70,0x74,0x73,0x73,0x14,0x6e,0x64,0x73,0x75,0x62,
-0x73,0x1b,0x61,0x74,0x68,0x6f,0x70,0x65,0x72,0x61,0x74,0x6f,0x72,0x73,0xa3,0x6a,
-1,0x6c,0x40,0x75,1,0x61,0x6e,0x6e,0x17,0x63,0x74,0x75,0x61,0x74,0x69,0x6f,
-0x6e,0xa3,0x8e,0x15,0x65,0x6d,0x65,0x6e,0x74,0x61,1,0x6c,0x50,0x72,0x1e,0x79,
-0x70,0x72,0x69,0x76,0x61,0x74,0x65,0x75,0x73,0x65,0x61,0x72,0x65,0x61,1,0x61,
-0xa3,0x6d,0x62,0xa3,0x6e,3,0x61,0x5c,0x6d,0x78,0x70,0xa2,0x41,0x73,0x13,0x79,
-0x6d,0x62,0x6f,0x1f,0x6c,0x73,0x61,0x6e,0x64,0x70,0x69,0x63,0x74,0x6f,0x67,0x72,
-0x61,0x70,0x68,0x73,0xa5,5,0x14,0x72,0x72,0x6f,0x77,0x73,2,0x61,0xa3,0x67,
-0x62,0xa3,0x68,0x63,0xa3,0xfa,0x13,0x61,0x74,0x68,0x65,0x1f,0x6d,0x61,0x74,0x69,
-0x63,0x61,0x6c,0x6f,0x70,0x65,0x72,0x61,0x74,0x6f,0x72,0x73,0xa3,0x6a,0x19,0x75,
-0x6e,0x63,0x74,0x75,0x61,0x74,0x69,0x6f,0x6e,0xa3,0x8e,0x61,0x5a,0x68,0x84,0x69,
-0xa2,0x5b,0x6d,0x16,0x61,0x6c,0x6c,0x66,0x6f,0x72,0x6d,1,0x73,0xa3,0x54,0x76,
-0x16,0x61,0x72,0x69,0x61,0x6e,0x74,0x73,0xa3,0x54,1,0x6d,0x36,0x75,0x16,0x72,
-0x61,0x73,0x68,0x74,0x72,0x61,0xa3,0xa1,0x15,0x61,0x72,0x69,0x74,0x61,0x6e,0xa3,
-0xac,1,0x61,0x52,0x6f,0x13,0x72,0x74,0x68,0x61,0x1f,0x6e,0x64,0x66,0x6f,0x72,
-0x6d,0x61,0x74,0x63,0x6f,0x6e,0x74,0x72,0x6f,0x6c,0x73,0xa3,0xf7,1,0x72,0x2e,
-0x76,0x12,0x69,0x61,0x6e,0xa3,0x79,0x12,0x61,0x64,0x61,0xa3,0xd9,1,0x64,0x50,
-0x6e,0x13,0x68,0x61,0x6c,0x61,0x50,0x1d,0x61,0x72,0x63,0x68,0x61,0x69,0x63,0x6e,
-0x75,0x6d,0x62,0x65,0x72,0x73,0xa3,0xf9,0x13,0x64,0x68,0x61,0x6d,0xa3,0xf8,5,
-0x72,0x35,0x72,0x44,0x73,0x64,0x75,1,0x61,0xa3,0x4e,0x6e,0x17,0x63,0x74,0x75,
-0x61,0x74,0x69,0x6f,0x6e,0x71,0x17,0x69,0x76,0x61,0x74,0x65,0x75,0x73,0x65,0xa2,
-0x4e,0x13,0x61,0x72,0x65,0x61,0xa3,0x4e,0x1b,0x61,0x6c,0x74,0x65,0x72,0x70,0x61,
-0x68,0x6c,0x61,0x76,0x69,0xa3,0xf6,0x61,0x40,0x68,0x82,0x6c,0x19,0x61,0x79,0x69,
-0x6e,0x67,0x63,0x61,0x72,0x64,0x73,0xa3,0xcc,2,0x68,0x38,0x6c,0x4a,0x75,0x15,
-0x63,0x69,0x6e,0x68,0x61,0x75,0xa3,0xf5,0x17,0x61,0x77,0x68,0x68,0x6d,0x6f,0x6e,
-0x67,0xa3,0xf3,0x15,0x6d,0x79,0x72,0x65,0x6e,0x65,0xa3,0xf4,1,0x61,0x8e,0x6f,
-1,0x65,0x74,0x6e,0x16,0x65,0x74,0x69,0x63,0x65,0x78,0x74,0xa2,0x72,1,0x65,
-0x2c,0x73,0x11,0x75,0x70,0xa3,0x8d,0x15,0x6e,0x73,0x69,0x6f,0x6e,0x73,0xa2,0x72,
-0x19,0x73,0x75,0x70,0x70,0x6c,0x65,0x6d,0x65,0x6e,0x74,0xa3,0x8d,0x15,0x6e,0x69,
-0x63,0x69,0x61,0x6e,0xa3,0x97,1,0x67,0x3e,0x69,0x13,0x73,0x74,0x6f,0x73,0xa2,
-0xa6,0x13,0x64,0x69,0x73,0x63,0xa3,0xa6,0x12,0x73,0x70,0x61,0xa3,0x96,1,0x65,
-0x5c,0x75,1,0x6d,0x2a,0x6e,0x11,0x69,0x63,0x67,0x10,0x69,0xa2,0xc0,0x1d,0x6e,
-0x75,0x6d,0x65,0x72,0x61,0x6c,0x73,0x79,0x6d,0x62,0x6f,0x6c,0x73,0xa3,0xc0,0x13,
-0x6a,0x61,0x6e,0x67,0xa3,0xa3,0x6d,0xa2,0xce,0x6e,0xa8,1,0x6f,5,0x70,0x4b,
-0x70,0x46,0x72,0x7a,0x73,1,0x61,0x30,0x6d,0x13,0x61,0x6e,0x79,0x61,0xa3,0x7a,
-0x11,0x67,0x65,0xa5,0xf,0x18,0x74,0x69,0x63,0x61,0x6c,0x63,0x68,0x61,0x72,0x1f,
-0x61,0x63,0x74,0x65,0x72,0x72,0x65,0x63,0x6f,0x67,0x6e,0x69,0x74,0x69,0x6f,0x6e,
-0x85,1,0x69,0x46,0x6e,0x1e,0x61,0x6d,0x65,0x6e,0x74,0x61,0x6c,0x64,0x69,0x6e,
-0x67,0x62,0x61,0x74,0x73,0xa3,0xf2,0x11,0x79,0x61,0x47,0x63,0xa2,0x71,0x67,0xa2,
-0x71,0x6c,1,0x63,0xa2,0x62,0x64,5,0x70,0x38,0x70,0x36,0x73,0x56,0x74,0x14,
-0x75,0x72,0x6b,0x69,0x63,0xa3,0xbf,0x11,0x65,0x72,1,0x6d,0x2e,0x73,0x12,0x69,
-0x61,0x6e,0xa3,0x8c,0x11,0x69,0x63,0xa3,0xf1,0x10,0x6f,1,0x67,0x3a,0x75,0x18,
-0x74,0x68,0x61,0x72,0x61,0x62,0x69,0x61,0x6e,0xa3,0xbb,0x13,0x64,0x69,0x61,0x6e,
-0xa5,0x22,0x68,0x42,0x69,0x54,0x6e,0x1a,0x6f,0x72,0x74,0x68,0x61,0x72,0x61,0x62,
-0x69,0x61,0x6e,0xa3,0xf0,0x17,0x75,0x6e,0x67,0x61,0x72,0x69,0x61,0x6e,0xa5,4,
-0x14,0x74,0x61,0x6c,0x69,0x63,0xa3,0x58,0x13,0x68,0x69,0x6b,0x69,0xa3,0x9d,0x10,
-0x72,0x85,0x12,0x68,0x61,0x6d,0x65,6,0x6f,0x86,0x6f,0x6c,0x72,0xa2,0x61,0x75,
-0xa2,0x62,0x79,0x14,0x61,0x6e,0x6d,0x61,0x72,0x58,0x12,0x65,0x78,0x74,2,0x61,
-0xa3,0xb6,0x62,0xa3,0xee,0x65,0x13,0x6e,0x64,0x65,0x64,1,0x61,0xa3,0xb6,0x62,
-0xa3,0xee,1,0x64,0x52,0x6e,0x15,0x67,0x6f,0x6c,0x69,0x61,0x6e,0x6a,0x12,0x73,
-0x75,0x70,0xa4,0xd,0x16,0x70,0x6c,0x65,0x6d,0x65,0x6e,0x74,0xa5,0xd,0x10,0x69,
-0xa2,0xec,0x13,0x66,0x69,0x65,0x72,1,0x6c,0x3c,0x74,0x19,0x6f,0x6e,0x65,0x6c,
-0x65,0x74,0x74,0x65,0x72,0x73,0xa3,0x8a,0x15,0x65,0x74,0x74,0x65,0x72,0x73,0x2d,
-0x10,0x6f,0xa3,0xed,1,0x6c,0x44,0x73,0x11,0x69,0x63,0xa2,0x5c,0x18,0x61,0x6c,
-0x73,0x79,0x6d,0x62,0x6f,0x6c,0x73,0xa3,0x5c,0x13,0x74,0x61,0x6e,0x69,0xa5,3,
-0x61,0xa2,0x9b,0x65,0xa4,0x4c,0x69,1,0x61,0xa2,0x8f,0x73,0x10,0x63,5,0x70,
-0x18,0x70,0xa2,0x71,0x73,0x36,0x74,0x17,0x65,0x63,0x68,0x6e,0x69,0x63,0x61,0x6c,
-0x81,0x15,0x79,0x6d,0x62,0x6f,0x6c,0x73,0x8f,0x61,0xa2,0x66,0x65,0x46,0x6d,0x19,
-0x61,0x74,0x68,0x73,0x79,0x6d,0x62,0x6f,0x6c,0x73,1,0x61,0xa3,0x66,0x62,0xa3,
-0x69,0x17,0x6c,0x6c,0x61,0x6e,0x65,0x6f,0x75,0x73,2,0x6d,0x3a,0x73,0x6c,0x74,
-0x17,0x65,0x63,0x68,0x6e,0x69,0x63,0x61,0x6c,0x81,0x11,0x61,0x74,0x1f,0x68,0x65,
-0x6d,0x61,0x74,0x69,0x63,0x61,0x6c,0x73,0x79,0x6d,0x62,0x6f,0x6c,0x73,1,0x61,
-0xa3,0x66,0x62,0xa3,0x69,0x15,0x79,0x6d,0x62,0x6f,0x6c,0x73,0x8e,0x12,0x61,0x6e,
-0x64,1,0x61,0x3c,0x70,0x19,0x69,0x63,0x74,0x6f,0x67,0x72,0x61,0x70,0x68,0x73,
-0xa3,0xcd,0x14,0x72,0x72,0x6f,0x77,0x73,0xa3,0x73,0x10,0x6f,0xa3,0xd8,7,0x72,
-0x6f,0x72,0x44,0x73,0x4e,0x74,0x62,0x79,0x19,0x61,0x6e,0x6e,0x75,0x6d,0x65,0x72,
-0x61,0x6c,0x73,0xa5,0x20,0x13,0x63,0x68,0x65,0x6e,0xa5,0xc,0x18,0x61,0x72,0x61,
-0x6d,0x67,0x6f,0x6e,0x64,0x69,0xa5,0x14,0x10,0x68,2,0x61,0x3a,0x65,0x4a,0x6f,
-0x17,0x70,0x65,0x72,0x61,0x74,0x6f,0x72,0x73,0x7f,0x16,0x6c,0x70,0x68,0x61,0x6e,
-0x75,0x6d,0xa3,0x5d,0x16,0x6d,0x61,0x74,0x69,0x63,0x61,0x6c,1,0x61,0x36,0x6f,
-0x17,0x70,0x65,0x72,0x61,0x74,0x6f,0x72,0x73,0x7f,0x11,0x6c,0x70,0x1f,0x68,0x61,
-0x6e,0x75,0x6d,0x65,0x72,0x69,0x63,0x73,0x79,0x6d,0x62,0x6f,0x6c,0x73,0xa3,0x5d,
-0x68,0x50,0x6b,0x7e,0x6c,0x88,0x6e,1,0x64,0x34,0x69,0x15,0x63,0x68,0x61,0x65,
-0x61,0x6e,0xa3,0xea,0x12,0x61,0x69,0x63,0xa3,0xc6,1,0x61,0x3e,0x6a,0x12,0x6f,
-0x6e,0x67,0xa2,0xaa,0x14,0x74,0x69,0x6c,0x65,0x73,0xa3,0xaa,0x13,0x6a,0x61,0x6e,
-0x69,0xa3,0xe9,0x13,0x61,0x73,0x61,0x72,0xa5,0x1f,0x15,0x61,0x79,0x61,0x6c,0x61,
-0x6d,0x4f,3,0x64,0x6c,0x65,0x7e,0x6e,0xa2,0x47,0x72,0x14,0x6f,0x69,0x74,0x69,
-0x63,1,0x63,0x3c,0x68,0x19,0x69,0x65,0x72,0x6f,0x67,0x6c,0x79,0x70,0x68,0x73,
-0xa3,0xd7,0x15,0x75,0x72,0x73,0x69,0x76,0x65,0xa3,0xd6,0x17,0x65,0x66,0x61,0x69,
-0x64,0x72,0x69,0x6e,0xa5,0x21,0x17,0x74,0x65,0x69,0x6d,0x61,0x79,0x65,0x6b,0xa2,
-0xb8,0x12,0x65,0x78,0x74,0xa2,0xd5,0x16,0x65,0x6e,0x73,0x69,0x6f,0x6e,0x73,0xa3,
-0xd5,0x18,0x64,0x65,0x6b,0x69,0x6b,0x61,0x6b,0x75,0x69,0xa3,0xeb,5,0x6b,0x23,
-0x6b,0x4c,0x6f,0x50,0x75,1,0x6d,0x2c,0x73,0x11,0x68,0x75,0xa5,0x15,0x17,0x62,
-0x65,0x72,0x66,0x6f,0x72,0x6d,0x73,0x7b,0x10,0x6f,0xa3,0x92,0x14,0x62,0x6c,0x6f,
-0x63,0x6b,0x21,0x61,0x44,0x62,0x21,0x65,0x10,0x77,1,0x61,0xa5,0xe,0x74,0x14,
-0x61,0x69,0x6c,0x75,0x65,0xa3,0x8b,0x16,0x62,0x61,0x74,0x61,0x65,0x61,0x6e,0xa3,
-0xef,0x67,0xc4,0xe,0x6a,0xc1,0x95,0x6a,0xa2,0xc5,0x6b,0xa2,0xde,0x6c,4,0x61,
-0x54,0x65,0xa2,0x61,0x69,0xa2,0x78,0x6f,0xa2,0xa7,0x79,1,0x63,0x2e,0x64,0x12,
-0x69,0x61,0x6e,0xa3,0xa9,0x12,0x69,0x61,0x6e,0xa3,0xa7,1,0x6f,0x55,0x74,0x11,
-0x69,0x6e,1,0x31,0x82,0x65,0x11,0x78,0x74,4,0x61,0x5c,0x62,0x29,0x63,0xa3,
-0x94,0x64,0xa3,0x95,0x65,0xa2,0xe7,0x13,0x6e,0x64,0x65,0x64,4,0x61,0x36,0x62,
-0x29,0x63,0xa3,0x94,0x64,0xa3,0x95,0x65,0xa3,0xe7,0x26,0x18,0x64,0x64,0x69,0x74,
-0x69,0x6f,0x6e,0x61,0x6c,0x6d,0x24,0x12,0x73,0x75,0x70,0x24,0x16,0x70,0x6c,0x65,
-0x6d,0x65,0x6e,0x74,0x25,1,0x70,0x42,0x74,0x1d,0x74,0x65,0x72,0x6c,0x69,0x6b,
-0x65,0x73,0x79,0x6d,0x62,0x6f,0x6c,0x73,0x79,0x12,0x63,0x68,0x61,0xa3,0x9c,2,
-0x6d,0x2e,0x6e,0x34,0x73,0x10,0x75,0xa3,0xb0,0x11,0x62,0x75,0xa3,0x6f,0x12,0x65,
-0x61,0x72,1,0x61,0xa3,0xe8,0x62,1,0x69,0x38,0x73,0x17,0x79,0x6c,0x6c,0x61,
-0x62,0x61,0x72,0x79,0xa3,0x75,0x17,0x64,0x65,0x6f,0x67,0x72,0x61,0x6d,0x73,0xa3,
-0x76,0x1a,0x77,0x73,0x75,0x72,0x72,0x6f,0x67,0x61,0x74,0x65,0x73,0xa3,0x4d,0x10,
-0x61,1,0x6d,0x32,0x76,0x14,0x61,0x6e,0x65,0x73,0x65,0xa3,0xb5,0x10,0x6f,0x5c,
-0x12,0x65,0x78,0x74,1,0x61,0xa3,0xb4,0x62,0xa3,0xb9,1,0x61,0x80,0x68,3,
-0x61,0x3c,0x6d,0x4c,0x6f,0x64,0x75,0x15,0x64,0x61,0x77,0x61,0x64,0x69,0xa3,0xe6,
-0x16,0x72,0x6f,0x73,0x68,0x74,0x68,0x69,0xa3,0x89,0x11,0x65,0x72,0x68,0x16,0x73,
-0x79,0x6d,0x62,0x6f,0x6c,0x73,0xa3,0x71,0x12,0x6a,0x6b,0x69,0xa3,0xe5,3,0x69,
-0x3a,0x6e,0x42,0x74,0xa2,0x51,0x79,0x13,0x61,0x68,0x6c,0x69,0xa3,0xa2,0x12,0x74,
-0x68,0x69,0xa3,0xc1,3,0x61,0x34,0x62,0x76,0x67,0x7c,0x6e,0x12,0x61,0x64,0x61,
-0x4d,1,0x65,0x40,0x73,0x11,0x75,0x70,0xa2,0xcb,0x16,0x70,0x6c,0x65,0x6d,0x65,
-0x6e,0x74,0xa3,0xcb,0x11,0x78,0x74,1,0x61,0xa5,0x13,0x65,0x14,0x6e,0x64,0x65,
-0x64,0x61,0xa5,0x13,0x11,0x75,0x6e,0xa3,0x42,0x11,0x78,0x69,0x96,0x17,0x72,0x61,
-0x64,0x69,0x63,0x61,0x6c,0x73,0x97,0x14,0x61,0x6b,0x61,0x6e,0x61,0x9e,1,0x65,
-0x4c,0x70,0x10,0x68,0x1f,0x6f,0x6e,0x65,0x74,0x69,0x63,0x65,0x78,0x74,0x65,0x6e,
-0x73,0x69,0x6f,0x6e,0x73,0xa3,0x6b,0x11,0x78,0x74,0xa3,0x6b,0x67,0xa2,0xb5,0x68,
-0xa4,0x84,0x69,3,0x64,0x4c,0x6d,0xa2,0x55,0x6e,0xa2,0x62,0x70,0x13,0x61,0x65,
-0x78,0x74,0x2a,0x16,0x65,0x6e,0x73,0x69,0x6f,0x6e,0x73,0x2b,1,0x63,0x99,0x65,
-0x17,0x6f,0x67,0x72,0x61,0x70,0x68,0x69,0x63,1,0x64,0x56,0x73,0x15,0x79,0x6d,
-0x62,0x6f,0x6c,0x73,0xa4,0xb,0x1d,0x61,0x6e,0x64,0x70,0x75,0x6e,0x63,0x74,0x75,
-0x61,0x74,0x69,0x6f,0x6e,0xa5,0xb,0x13,0x65,0x73,0x63,0x72,0x1f,0x69,0x70,0x74,
-0x69,0x6f,0x6e,0x63,0x68,0x61,0x72,0x61,0x63,0x74,0x65,0x72,0x73,0x99,0x1c,0x70,
-0x65,0x72,0x69,0x61,0x6c,0x61,0x72,0x61,0x6d,0x61,0x69,0x63,0xa3,0xba,1,0x64,
-0x62,0x73,0x1b,0x63,0x72,0x69,0x70,0x74,0x69,0x6f,0x6e,0x61,0x6c,0x70,0x61,1,
-0x68,0x32,0x72,0x14,0x74,0x68,0x69,0x61,0x6e,0xa3,0xbd,0x13,0x6c,0x61,0x76,0x69,
-0xa3,0xbe,0x11,0x69,0x63,1,0x6e,0x3e,0x73,0x1a,0x69,0x79,0x61,0x71,0x6e,0x75,
-0x6d,0x62,0x65,0x72,0x73,0xa5,0x1e,0x19,0x75,0x6d,0x62,0x65,0x72,0x66,0x6f,0x72,
-0x6d,0x73,0xa3,0xb2,4,0x65,0x74,0x6c,0xa2,0x82,0x6f,0xa2,0x9a,0x72,0xa2,0x9e,
-0x75,2,0x6a,0x34,0x6e,0x3e,0x72,0x14,0x6d,0x75,0x6b,0x68,0x69,0x43,0x14,0x61,
-0x72,0x61,0x74,0x69,0x45,0x18,0x6a,0x61,0x6c,0x61,0x67,0x6f,0x6e,0x64,0x69,0xa5,
-0x1c,1,0x6e,0xa2,0x46,0x6f,1,0x6d,0x6e,0x72,0x13,0x67,0x69,0x61,0x6e,0x5a,
-1,0x65,0x40,0x73,0x11,0x75,0x70,0xa2,0x87,0x16,0x70,0x6c,0x65,0x6d,0x65,0x6e,
-0x74,0xa3,0x87,0x11,0x78,0x74,0xa4,0x1b,0x14,0x65,0x6e,0x64,0x65,0x64,0xa5,0x1b,
-0x1a,0x65,0x74,0x72,0x69,0x63,0x73,0x68,0x61,0x70,0x65,0x73,0x8c,0x12,0x65,0x78,
-0x74,0xa2,0xe3,0x14,0x65,0x6e,0x64,0x65,0x64,0xa3,0xe3,0x1e,0x65,0x72,0x61,0x6c,
-0x70,0x75,0x6e,0x63,0x74,0x75,0x61,0x74,0x69,0x6f,0x6e,0x71,0x17,0x61,0x67,0x6f,
-0x6c,0x69,0x74,0x69,0x63,0xa2,0x88,0x12,0x73,0x75,0x70,0xa4,0xa,0x16,0x70,0x6c,
-0x65,0x6d,0x65,0x6e,0x74,0xa5,0xa,0x13,0x74,0x68,0x69,0x63,0xa3,0x59,1,0x61,
-0x5c,0x65,0x11,0x65,0x6b,0x30,1,0x61,0x38,0x65,0x11,0x78,0x74,0x6e,0x14,0x65,
-0x6e,0x64,0x65,0x64,0x6f,0x17,0x6e,0x64,0x63,0x6f,0x70,0x74,0x69,0x63,0x31,0x13,
-0x6e,0x74,0x68,0x61,0xa3,0xe4,2,0x61,0xa2,0x48,0x65,0xa2,0xdf,0x69,1,0x67,
-0x30,0x72,0x14,0x61,0x67,0x61,0x6e,0x61,0x9d,0x10,0x68,1,0x70,0x3a,0x73,0x18,
-0x75,0x72,0x72,0x6f,0x67,0x61,0x74,0x65,0x73,0xa3,0x4b,1,0x72,0x3c,0x75,0x19,
-0x73,0x75,0x72,0x72,0x6f,0x67,0x61,0x74,0x65,0x73,0xa3,0x4c,0x11,0x69,0x76,0x1f,
-0x61,0x74,0x65,0x75,0x73,0x65,0x73,0x75,0x72,0x72,0x6f,0x67,0x61,0x74,0x65,0x73,
-0xa3,0x4c,2,0x6c,0x32,0x6e,0x9a,0x74,0x12,0x72,0x61,0x6e,0xa5,2,0x10,0x66,
-2,0x61,0x58,0x6d,0x70,0x77,0x14,0x69,0x64,0x74,0x68,0x61,0x1f,0x6e,0x64,0x66,
-0x75,0x6c,0x6c,0x77,0x69,0x64,0x74,0x68,0x66,0x6f,0x72,0x6d,0x73,0xa3,0x57,0x1a,
-0x6e,0x64,0x66,0x75,0x6c,0x6c,0x66,0x6f,0x72,0x6d,0x73,0xa3,0x57,0x13,0x61,0x72,
-0x6b,0x73,0xa3,0x52,2,0x67,0x34,0x69,0xa2,0x45,0x75,0x12,0x6e,0x6f,0x6f,0xa3,
-0x63,0x11,0x75,0x6c,0xa2,0x4a,2,0x63,0x3c,0x6a,0x5e,0x73,0x17,0x79,0x6c,0x6c,
-0x61,0x62,0x6c,0x65,0x73,0xa3,0x4a,0x1f,0x6f,0x6d,0x70,0x61,0x74,0x69,0x62,0x69,
-0x6c,0x69,0x74,0x79,0x6a,0x61,0x6d,0x6f,0xa3,0x41,0x12,0x61,0x6d,0x6f,0x5c,0x17,
-0x65,0x78,0x74,0x65,0x6e,0x64,0x65,0x64,1,0x61,0xa3,0xb4,0x62,0xa3,0xb9,0x19,
-0x66,0x69,0x72,0x6f,0x68,0x69,0x6e,0x67,0x79,0x61,0xa5,0x1d,0x13,0x62,0x72,0x65,
-0x77,0x37,0x61,0xa2,0xe9,0x62,0xa6,0x29,0x63,0xa6,0xfe,0x64,0xac,0x8a,0x65,5,
-0x6d,0xa2,0x6d,0x86,0x6e,0x96,0x74,0x15,0x68,0x69,0x6f,0x70,0x69,0x63,0x5e,1,
-0x65,0x40,0x73,0x11,0x75,0x70,0xa2,0x86,0x16,0x70,0x6c,0x65,0x6d,0x65,0x6e,0x74,
-0xa3,0x86,0x11,0x78,0x74,0xa2,0x85,1,0x61,0xa3,0xc8,0x65,0x13,0x6e,0x64,0x65,
-0x64,0xa2,0x85,0x10,0x61,0xa3,0xc8,0x16,0x6f,0x74,0x69,0x63,0x6f,0x6e,0x73,0xa3,
-0xce,0x15,0x63,0x6c,0x6f,0x73,0x65,0x64,2,0x61,0x5a,0x63,0x9e,0x69,0x1c,0x64,
-0x65,0x6f,0x67,0x72,0x61,0x70,0x68,0x69,0x63,0x73,0x75,0x70,0xa2,0xc4,0x16,0x70,
-0x6c,0x65,0x6d,0x65,0x6e,0x74,0xa3,0xc4,0x16,0x6c,0x70,0x68,0x61,0x6e,0x75,0x6d,
-0x86,1,0x65,0x2c,0x73,0x11,0x75,0x70,0xa3,0xc3,0x13,0x72,0x69,0x63,0x73,0x86,
-0x18,0x75,0x70,0x70,0x6c,0x65,0x6d,0x65,0x6e,0x74,0xa3,0xc3,0x11,0x6a,0x6b,0xa2,
-0x44,0x1f,0x6c,0x65,0x74,0x74,0x65,0x72,0x73,0x61,0x6e,0x64,0x6d,0x6f,0x6e,0x74,
-0x68,0x73,0xa3,0x44,0x61,0x36,0x67,0x62,0x6c,0x14,0x62,0x61,0x73,0x61,0x6e,0xa3,
-0xe2,0x13,0x72,0x6c,0x79,0x64,0x1f,0x79,0x6e,0x61,0x73,0x74,0x69,0x63,0x63,0x75,
-0x6e,0x65,0x69,0x66,0x6f,0x72,0x6d,0xa5,1,0x10,0x79,0x1f,0x70,0x74,0x69,0x61,
-0x6e,0x68,0x69,0x65,0x72,0x6f,0x67,0x6c,0x79,0x70,0x68,0x73,0xa3,0xc2,7,0x6e,
-0xc0,0xe5,0x6e,0x3e,0x72,0xa2,0x5d,0x73,0xa2,0xd8,0x76,0x14,0x65,0x73,0x74,0x61,
-0x6e,0xa3,0xbc,1,0x61,0x92,0x63,0x13,0x69,0x65,0x6e,0x74,1,0x67,0x34,0x73,
-0x15,0x79,0x6d,0x62,0x6f,0x6c,0x73,0xa3,0xa5,0x13,0x72,0x65,0x65,0x6b,1,0x6d,
-0x34,0x6e,0x15,0x75,0x6d,0x62,0x65,0x72,0x73,0xa3,0x7f,0x13,0x75,0x73,0x69,0x63,
-0xa2,0x7e,0x19,0x61,0x6c,0x6e,0x6f,0x74,0x61,0x74,0x69,0x6f,0x6e,0xa3,0x7e,0x10,
-0x74,0x1f,0x6f,0x6c,0x69,0x61,0x6e,0x68,0x69,0x65,0x72,0x6f,0x67,0x6c,0x79,0x70,
-0x68,0x73,0xa3,0xfe,2,0x61,0x32,0x6d,0xa2,0x71,0x72,0x12,0x6f,0x77,0x73,0x7d,
-0x12,0x62,0x69,0x63,0x38,3,0x65,0x4a,0x6d,0x66,0x70,0xa2,0x43,0x73,0x11,0x75,
-0x70,0xa2,0x80,0x16,0x70,0x6c,0x65,0x6d,0x65,0x6e,0x74,0xa3,0x80,0x11,0x78,0x74,
-1,0x61,0xa3,0xd2,0x65,0x14,0x6e,0x64,0x65,0x64,0x61,0xa3,0xd2,0x12,0x61,0x74,
-0x68,0xa2,0xd3,0x18,0x65,0x6d,0x61,0x74,0x69,0x63,0x61,0x6c,0x61,0x1f,0x6c,0x70,
-0x68,0x61,0x62,0x65,0x74,0x69,0x63,0x73,0x79,0x6d,0x62,0x6f,0x6c,0x73,0xa3,0xd3,
-1,0x66,0x42,0x72,0x1e,0x65,0x73,0x65,0x6e,0x74,0x61,0x74,0x69,0x6f,0x6e,0x66,
-0x6f,0x72,0x6d,0x73,1,0x61,0xa3,0x51,0x62,0xa3,0x55,0x14,0x65,0x6e,0x69,0x61,
-0x6e,0x35,0x12,0x63,0x69,0x69,0x23,0x64,0x9e,0x65,0xa2,0x42,0x68,0xa2,0x4d,0x6c,
-1,0x63,0x62,0x70,0x17,0x68,0x61,0x62,0x65,0x74,0x69,0x63,0x70,1,0x66,0xa3,
-0x50,0x72,0x1e,0x65,0x73,0x65,0x6e,0x74,0x61,0x74,0x69,0x6f,0x6e,0x66,0x6f,0x72,
-0x6d,0x73,0xa3,0x50,0x16,0x68,0x65,0x6d,0x69,0x63,0x61,0x6c,0xa2,0xd0,0x16,0x73,
-0x79,0x6d,0x62,0x6f,0x6c,0x73,0xa3,0xd0,0x12,0x6c,0x61,0x6d,0xa5,7,0x1a,0x67,
-0x65,0x61,0x6e,0x6e,0x75,0x6d,0x62,0x65,0x72,0x73,0xa3,0x77,0x11,0x6f,0x6d,0xa3,
-0xfd,7,0x6f,0x71,0x6f,0x64,0x72,0xa2,0x41,0x75,0xa2,0x58,0x79,0x1b,0x7a,0x61,
-0x6e,0x74,0x69,0x6e,0x65,0x6d,0x75,0x73,0x69,0x63,0xa2,0x5b,0x18,0x61,0x6c,0x73,
-0x79,0x6d,0x62,0x6f,0x6c,0x73,0xa3,0x5b,1,0x70,0x34,0x78,0x16,0x64,0x72,0x61,
-0x77,0x69,0x6e,0x67,0x89,0x14,0x6f,0x6d,0x6f,0x66,0x6f,0xa0,0x12,0x65,0x78,0x74,
-0xa2,0x43,0x14,0x65,0x6e,0x64,0x65,0x64,0xa3,0x43,0x10,0x61,1,0x68,0x40,0x69,
-0x12,0x6c,0x6c,0x65,0x92,0x17,0x70,0x61,0x74,0x74,0x65,0x72,0x6e,0x73,0x93,0x11,
-0x6d,0x69,0xa3,0xc9,1,0x67,0x2c,0x68,0x11,0x69,0x64,0xa3,0x64,0x14,0x69,0x6e,
-0x65,0x73,0x65,0xa3,0x81,0x61,0x48,0x65,0xa2,0x4e,0x68,0xa2,0x52,0x6c,0x1a,0x6f,
-0x63,0x6b,0x65,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x73,0x8b,3,0x6c,0x34,0x6d,0x40,
-0x73,0x66,0x74,0x11,0x61,0x6b,0xa3,0xc7,0x14,0x69,0x6e,0x65,0x73,0x65,0xa3,0x93,
-0x11,0x75,0x6d,0xa2,0xb1,0x12,0x73,0x75,0x70,0xa2,0xca,0x16,0x70,0x6c,0x65,0x6d,
-0x65,0x6e,0x74,0xa3,0xca,1,0x69,0x30,0x73,0x13,0x61,0x76,0x61,0x68,0xa3,0xdd,
-0x15,0x63,0x6c,0x61,0x74,0x69,0x6e,0x23,0x14,0x6e,0x67,0x61,0x6c,0x69,0x41,0x16,
-0x61,0x69,0x6b,0x73,0x75,0x6b,0x69,0xa5,8,5,0x6f,0xc1,0x4c,0x6f,0xa2,0x55,
-0x75,0xa4,0x10,0x79,1,0x70,0x9c,0x72,0x14,0x69,0x6c,0x6c,0x69,0x63,0x32,1,
-0x65,0x4c,0x73,0x11,0x75,0x70,0xa2,0x61,0x16,0x70,0x6c,0x65,0x6d,0x65,0x6e,0x74,
-0xa2,0x61,0x12,0x61,0x72,0x79,0xa3,0x61,0x11,0x78,0x74,3,0x61,0xa3,0x9e,0x62,
-0xa3,0xa0,0x63,0xa5,9,0x65,0x13,0x6e,0x64,0x65,0x64,2,0x61,0xa3,0x9e,0x62,
-0xa3,0xa0,0x63,0xa5,9,0x1c,0x72,0x69,0x6f,0x74,0x73,0x79,0x6c,0x6c,0x61,0x62,
-0x61,0x72,0x79,0xa3,0x7b,3,0x6d,0x5a,0x6e,0xa2,0x95,0x70,0xa2,0xa0,0x75,0x17,
-0x6e,0x74,0x69,0x6e,0x67,0x72,0x6f,0x64,0xa2,0x9a,0x17,0x6e,0x75,0x6d,0x65,0x72,
-0x61,0x6c,0x73,0xa3,0x9a,2,0x62,0x3a,0x6d,0xa2,0x5f,0x70,0x15,0x61,0x74,0x6a,
-0x61,0x6d,0x6f,0xa3,0x41,0x14,0x69,0x6e,0x69,0x6e,0x67,2,0x64,0x46,0x68,0x9e,
-0x6d,0x1d,0x61,0x72,0x6b,0x73,0x66,0x6f,0x72,0x73,0x79,0x6d,0x62,0x6f,0x6c,0x73,
-0x77,0x1e,0x69,0x61,0x63,0x72,0x69,0x74,0x69,0x63,0x61,0x6c,0x6d,0x61,0x72,0x6b,
-0x73,0x2e,2,0x65,0x40,0x66,0xa6,0x2a,0x73,0x18,0x75,0x70,0x70,0x6c,0x65,0x6d,
-0x65,0x6e,0x74,0xa3,0x83,0x16,0x78,0x74,0x65,0x6e,0x64,0x65,0x64,0xa3,0xe0,0x17,
-0x61,0x6c,0x66,0x6d,0x61,0x72,0x6b,0x73,0xa3,0x52,0x11,0x6f,0x6e,0x1f,0x69,0x6e,
-0x64,0x69,0x63,0x6e,0x75,0x6d,0x62,0x65,0x72,0x66,0x6f,0x72,0x6d,0x73,0xa3,0xb2,
-0x1b,0x74,0x72,0x6f,0x6c,0x70,0x69,0x63,0x74,0x75,0x72,0x65,0x73,0x83,0x12,0x74,
-0x69,0x63,0xa2,0x84,0x1b,0x65,0x70,0x61,0x63,0x74,0x6e,0x75,0x6d,0x62,0x65,0x72,
-0x73,0xa3,0xdf,1,0x6e,0x3e,0x72,0x1b,0x72,0x65,0x6e,0x63,0x79,0x73,0x79,0x6d,
-0x62,0x6f,0x6c,0x73,0x75,0x15,0x65,0x69,0x66,0x6f,0x72,0x6d,0xa2,0x98,0x16,0x6e,
-0x75,0x6d,0x62,0x65,0x72,0x73,0xa2,0x99,0x1d,0x61,0x6e,0x64,0x70,0x75,0x6e,0x63,
-0x74,0x75,0x61,0x74,0x69,0x6f,0x6e,0xa3,0x99,0x61,0xa2,0xdb,0x68,0xa4,5,0x6a,
-0x10,0x6b,0xa2,0x47,4,0x63,0x86,0x65,0xa2,0x7d,0x72,0xa2,0x92,0x73,0xa2,0xa4,
-0x75,0x1f,0x6e,0x69,0x66,0x69,0x65,0x64,0x69,0x64,0x65,0x6f,0x67,0x72,0x61,0x70,
-0x68,0x73,0xa2,0x47,0x18,0x65,0x78,0x74,0x65,0x6e,0x73,0x69,0x6f,0x6e,5,0x64,
-0x65,0x64,0xa3,0xd1,0x65,0xa5,0,0x66,0xa5,0x12,0x14,0x6f,0x6d,0x70,0x61,0x74,
-0xa2,0x45,1,0x66,0x96,0x69,1,0x62,0x44,0x64,0x17,0x65,0x6f,0x67,0x72,0x61,
-0x70,0x68,0x73,0xa2,0x4f,0x12,0x73,0x75,0x70,0xa3,0x5f,0x14,0x69,0x6c,0x69,0x74,
-0x79,0xa2,0x45,1,0x66,0x54,0x69,0x18,0x64,0x65,0x6f,0x67,0x72,0x61,0x70,0x68,
-0x73,0xa2,0x4f,0x19,0x73,0x75,0x70,0x70,0x6c,0x65,0x6d,0x65,0x6e,0x74,0xa3,0x5f,
-0x13,0x6f,0x72,0x6d,0x73,0xa3,0x53,0x11,0x78,0x74,5,0x64,9,0x64,0xa3,0xd1,
-0x65,0xa5,0,0x66,0xa5,0x12,0x61,0xa3,0x46,0x62,0xa3,0x5e,0x63,0xa3,0xc5,0x19,
-0x61,0x64,0x69,0x63,0x61,0x6c,0x73,0x73,0x75,0x70,0x94,0x16,0x70,0x6c,0x65,0x6d,
-0x65,0x6e,0x74,0x95,1,0x74,0x50,0x79,0x14,0x6d,0x62,0x6f,0x6c,0x73,0x9a,0x1d,
-0x61,0x6e,0x64,0x70,0x75,0x6e,0x63,0x74,0x75,0x61,0x74,0x69,0x6f,0x6e,0x9b,0x14,
-0x72,0x6f,0x6b,0x65,0x73,0xa3,0x82,2,0x6e,0x48,0x72,0x64,0x75,0x1d,0x63,0x61,
-0x73,0x69,0x61,0x6e,0x61,0x6c,0x62,0x61,0x6e,0x69,0x61,0x6e,0xa3,0xde,0x1d,0x61,
-0x64,0x69,0x61,0x6e,0x73,0x79,0x6c,0x6c,0x61,0x62,0x69,0x63,0x73,0x63,0x12,0x69,
-0x61,0x6e,0xa3,0xa8,1,0x61,0x6c,0x65,1,0x72,0x38,0x73,0x17,0x73,0x73,0x79,
-0x6d,0x62,0x6f,0x6c,0x73,0xa5,0x19,0x13,0x6f,0x6b,0x65,0x65,0x60,0x12,0x73,0x75,
-0x70,0xa2,0xff,0x16,0x70,0x6c,0x65,0x6d,0x65,0x6e,0x74,0xa3,0xff,1,0x6b,0x26,
-0x6d,0xa3,0xa4,0x11,0x6d,0x61,0xa3,0xd4,3,0x65,0x3e,0x69,0x7e,0x6f,0xa2,0x5d,
-0x75,0x15,0x70,0x6c,0x6f,0x79,0x61,0x6e,0xa3,0xe1,1,0x73,0x50,0x76,0x16,0x61,
-0x6e,0x61,0x67,0x61,0x72,0x69,0x3e,0x12,0x65,0x78,0x74,0xa2,0xb3,0x14,0x65,0x6e,
-0x64,0x65,0x64,0xa3,0xb3,0x13,0x65,0x72,0x65,0x74,0xa3,0x5a,1,0x61,0x30,0x6e,
-0x14,0x67,0x62,0x61,0x74,0x73,0x91,0x18,0x63,0x72,0x69,0x74,0x69,0x63,0x61,0x6c,
-0x73,0x2e,2,0x65,0x30,0x66,0x36,0x73,0x11,0x75,0x70,0xa3,0x83,0x11,0x78,0x74,
-0xa3,0xe0,0x18,0x6f,0x72,0x73,0x79,0x6d,0x62,0x6f,0x6c,0x73,0x77,1,0x67,0x3e,
-0x6d,0x12,0x69,0x6e,0x6f,0xa2,0xab,0x14,0x74,0x69,0x6c,0x65,0x73,0xa3,0xab,0x11,
-0x72,0x61,0xa5,0x1a,8,0x6d,0x5f,0x6d,0x3a,0x6e,0x48,0x73,0x7a,0x76,0xa2,0x4b,
-0x77,0x12,0x69,0x64,0x65,0x43,0x11,0x65,0x64,0x32,0x12,0x69,0x61,0x6c,0x33,2,
-0x61,0x40,0x62,0x37,0x6f,1,0x62,0x28,0x6e,0x10,0x65,0x21,0x13,0x72,0x65,0x61,
-0x6b,0x37,0x10,0x72,0x34,0x12,0x72,0x6f,0x77,0x35,2,0x6d,0x38,0x71,0x46,0x75,
-1,0x62,0x3d,0x70,0x3e,0x11,0x65,0x72,0x3f,1,0x61,0x24,0x6c,0x39,0x11,0x6c,
-0x6c,0x39,1,0x72,0x3b,0x75,0x12,0x61,0x72,0x65,0x3b,0x12,0x65,0x72,0x74,0x40,
-0x13,0x69,0x63,0x61,0x6c,0x41,0x63,0x58,0x65,0x92,0x66,0x96,0x69,1,0x6e,0x36,
-0x73,0x10,0x6f,0x30,0x14,0x6c,0x61,0x74,0x65,0x64,0x31,0x11,0x69,0x74,0x2e,0x12,
-0x69,0x61,0x6c,0x2f,2,0x61,0x36,0x69,0x48,0x6f,0x10,0x6d,0x24,0x12,0x70,0x61,
-0x74,0x25,0x10,0x6e,0x22,0x15,0x6f,0x6e,0x69,0x63,0x61,0x6c,0x23,0x13,0x72,0x63,
-0x6c,0x65,0x27,0x11,0x6e,0x63,0x27,2,0x69,0x3a,0x6f,0x44,0x72,0x10,0x61,0x2c,
-0x14,0x63,0x74,0x69,0x6f,0x6e,0x2d,0x10,0x6e,0x28,0x11,0x61,0x6c,0x29,0x11,0x6e,
-0x74,0x2b,4,0x61,0x3a,0x66,0x4c,0x68,0x5e,0x6e,0x70,0x77,0x2a,0x12,0x69,0x64,
-0x65,0x2b,0x22,0x17,0x6d,0x62,0x69,0x67,0x75,0x6f,0x75,0x73,0x23,0x26,0x17,0x75,
-0x6c,0x6c,0x77,0x69,0x64,0x74,0x68,0x27,0x24,0x17,0x61,0x6c,0x66,0x77,0x69,0x64,
-0x74,0x68,0x25,0x20,1,0x61,0x30,0x65,0x14,0x75,0x74,0x72,0x61,0x6c,0x21,0x28,
-0x13,0x72,0x72,0x6f,0x77,0x29,0xd,0x6e,0xc0,0xfb,0x73,0x6d,0x73,0x3a,0x74,0x98,
-0x75,0xa2,0x49,0x7a,2,0x6c,0x3b,0x70,0x3d,0x73,0x39,5,0x6f,0x28,0x6f,0x57,
-0x70,0x34,0x75,0x16,0x72,0x72,0x6f,0x67,0x61,0x74,0x65,0x45,0x11,0x61,0x63,1,
-0x65,0x32,0x69,0x15,0x6e,0x67,0x6d,0x61,0x72,0x6b,0x31,0x18,0x73,0x65,0x70,0x61,
-0x72,0x61,0x74,0x6f,0x72,0x39,0x63,0x53,0x6b,0x55,0x6d,0x51,0x1d,0x69,0x74,0x6c,
-0x65,0x63,0x61,0x73,0x65,0x6c,0x65,0x74,0x74,0x65,0x72,0x27,1,0x6e,0x40,0x70,
-0x1c,0x70,0x65,0x72,0x63,0x61,0x73,0x65,0x6c,0x65,0x74,0x74,0x65,0x72,0x23,0x17,
-0x61,0x73,0x73,0x69,0x67,0x6e,0x65,0x64,0x21,0x6e,0x8a,0x6f,0xa2,0x47,0x70,8,
-0x66,0x14,0x66,0x5b,0x69,0x59,0x6f,0x4f,0x72,0x24,0x73,0x49,0x17,0x69,0x76,0x61,
-0x74,0x65,0x75,0x73,0x65,0x43,0x61,0x2c,0x63,0x4d,0x64,0x47,0x65,0x4b,0x1f,0x72,
-0x61,0x67,0x72,0x61,0x70,0x68,0x73,0x65,0x70,0x61,0x72,0x61,0x74,0x6f,0x72,0x3d,
-2,0x64,0x33,0x6c,0x35,0x6f,0x36,0x1b,0x6e,0x73,0x70,0x61,0x63,0x69,0x6e,0x67,
-0x6d,0x61,0x72,0x6b,0x2d,1,0x70,0x7c,0x74,0x12,0x68,0x65,0x72,3,0x6c,0x38,
-0x6e,0x42,0x70,0x4c,0x73,0x14,0x79,0x6d,0x62,0x6f,0x6c,0x57,0x14,0x65,0x74,0x74,
-0x65,0x72,0x2b,0x14,0x75,0x6d,0x62,0x65,0x72,0x37,0x19,0x75,0x6e,0x63,0x74,0x75,
-0x61,0x74,0x69,0x6f,0x6e,0x4f,0x1c,0x65,0x6e,0x70,0x75,0x6e,0x63,0x74,0x75,0x61,
-0x74,0x69,0x6f,0x6e,0x49,0x66,0x9e,0x66,0x88,0x69,0xa2,0x4b,0x6c,0xa2,0x5c,0x6d,
-4,0x61,0x60,0x63,0x31,0x65,0x2f,0x6e,0x2d,0x6f,0x15,0x64,0x69,0x66,0x69,0x65,
-0x72,1,0x6c,0x30,0x73,0x14,0x79,0x6d,0x62,0x6f,0x6c,0x55,0x14,0x65,0x74,0x74,
-0x65,0x72,0x29,0x17,0x74,0x68,0x73,0x79,0x6d,0x62,0x6f,0x6c,0x51,1,0x69,0x2e,
-0x6f,0x13,0x72,0x6d,0x61,0x74,0x41,0x1d,0x6e,0x61,0x6c,0x70,0x75,0x6e,0x63,0x74,
-0x75,0x61,0x74,0x69,0x6f,0x6e,0x5b,0x10,0x6e,0x1f,0x69,0x74,0x69,0x61,0x6c,0x70,
-0x75,0x6e,0x63,0x74,0x75,0x61,0x74,0x69,0x6f,0x6e,0x59,6,0x6d,0x18,0x6d,0x29,
-0x6f,0x28,0x74,0x27,0x75,0x23,0x2a,0x1c,0x77,0x65,0x72,0x63,0x61,0x73,0x65,0x6c,
-0x65,0x74,0x74,0x65,0x72,0x25,0x65,0x28,0x69,0x3c,0x6c,0x25,0x19,0x74,0x74,0x65,
-0x72,0x6e,0x75,0x6d,0x62,0x65,0x72,0x35,0x1a,0x6e,0x65,0x73,0x65,0x70,0x61,0x72,
-0x61,0x74,0x6f,0x72,0x3b,0x63,0x44,0x64,0xa2,0x60,0x65,0x1b,0x6e,0x63,0x6c,0x6f,
-0x73,0x69,0x6e,0x67,0x6d,0x61,0x72,0x6b,0x2f,6,0x6e,0x39,0x6e,0x46,0x6f,0x4e,
-0x73,0x45,0x75,0x1b,0x72,0x72,0x65,0x6e,0x63,0x79,0x73,0x79,0x6d,0x62,0x6f,0x6c,
-0x53,0x20,0x12,0x74,0x72,0x6c,0x3f,0x42,0x10,0x6e,1,0x6e,0x2c,0x74,0x12,0x72,
-0x6f,0x6c,0x3f,0x1f,0x65,0x63,0x74,0x6f,0x72,0x70,0x75,0x6e,0x63,0x74,0x75,0x61,
-0x74,0x69,0x6f,0x6e,0x4d,0x63,0x3f,0x66,0x41,0x6c,0x1d,0x6f,0x73,0x65,0x70,0x75,
-0x6e,0x63,0x74,0x75,0x61,0x74,0x69,0x6f,0x6e,0x4b,2,0x61,0x30,0x65,0x4a,0x69,
-0x12,0x67,0x69,0x74,0x33,0x1c,0x73,0x68,0x70,0x75,0x6e,0x63,0x74,0x75,0x61,0x74,
-0x69,0x6f,0x6e,0x47,0x1a,0x63,0x69,0x6d,0x61,0x6c,0x6e,0x75,0x6d,0x62,0x65,0x72,
-0x33,0,0x12,0x6d,0xc2,0x3f,0x73,0xa1,0x73,0x4e,0x74,0xa2,0x56,0x77,0xa2,0x72,
-0x79,0xa2,0x73,0x7a,1,0x61,0x2c,0x68,0x12,0x61,0x69,0x6e,0x8b,0x11,0x69,0x6e,
-0x85,5,0x74,0x22,0x74,0x38,0x77,0x4c,0x79,0x16,0x72,0x69,0x61,0x63,0x77,0x61,
-0x77,0x6f,0x18,0x72,0x61,0x69,0x67,0x68,0x74,0x77,0x61,0x77,0xa3,0x55,0x15,0x61,
-0x73,0x68,0x6b,0x61,0x66,0x6d,0x61,0x2e,0x65,0x38,0x68,0x11,0x69,0x6e,0x6b,0x10,
-0x64,0x62,0x11,0x68,0x65,0x65,1,0x65,0x2e,0x6d,0x13,0x6b,0x61,0x74,0x68,0x69,
-0x10,0x6e,0x67,1,0x61,0x4e,0x65,1,0x68,0x28,0x74,0x10,0x68,0x77,0x16,0x6d,
-0x61,0x72,0x62,0x75,0x74,0x61,0x74,0x13,0x67,0x6f,0x61,0x6c,0x3d,1,0x68,0x71,
-0x77,0x73,0x11,0x61,0x77,0x79,1,0x65,0x32,0x75,0x11,0x64,0x68,0x80,0x11,0x68,
-0x65,0x83,0x10,0x68,0x7a,1,0x62,0x34,0x77,0x16,0x69,0x74,0x68,0x74,0x61,0x69,
-0x6c,0x7f,0x14,0x61,0x72,0x72,0x65,0x65,0x7d,0x6d,0x6c,0x6e,0xa4,0x6b,0x70,0xa4,
-0x88,0x71,0xa4,0x88,0x72,1,0x65,0x38,0x6f,0x18,0x68,0x69,0x6e,0x67,0x79,0x61,
-0x79,0x65,0x68,0x93,1,0x68,0x5f,0x76,0x16,0x65,0x72,0x73,0x65,0x64,0x70,0x65,
-0x61,2,0x61,0x2e,0x65,0xa4,0x3e,0x69,0x10,0x6d,0x53,1,0x6c,0xa2,0xe7,0x6e,
-0x16,0x69,0x63,0x68,0x61,0x65,0x61,0x6e,0,0x12,0x6e,0x76,0x73,0x51,0x73,0x3e,
-0x74,0x5c,0x77,0xa0,0x79,0xa2,0x42,0x7a,0x13,0x61,0x79,0x69,0x6e,0xa3,0x54,0x10,
-0x61,1,0x64,0x2e,0x6d,0x12,0x65,0x6b,0x68,0xa3,0x4c,0x11,0x68,0x65,0xa3,0x4b,
-3,0x61,0x38,0x65,0x3c,0x68,0x4a,0x77,0x13,0x65,0x6e,0x74,0x79,0xa3,0x51,0x10,
-0x77,0xa3,0x4d,1,0x6e,0xa3,0x4e,0x74,0x10,0x68,0xa3,0x4f,0x14,0x61,0x6d,0x65,
-0x64,0x68,0xa3,0x50,0x11,0x61,0x77,0xa3,0x52,0x12,0x6f,0x64,0x68,0xa3,0x53,0x6e,
-0x3a,0x6f,0x40,0x70,0x46,0x71,0x4a,0x72,0x12,0x65,0x73,0x68,0xa3,0x4a,0x11,0x75,
-0x6e,0xa3,0x46,0x11,0x6e,0x65,0xa3,0x47,0x10,0x65,0xa3,0x48,0x12,0x6f,0x70,0x68,
-0xa3,0x49,0x67,0x33,0x67,0x38,0x68,0x40,0x6b,0x5e,0x6c,0x66,0x6d,0x11,0x65,0x6d,
-0xa3,0x45,0x13,0x69,0x6d,0x65,0x6c,0xa1,1,0x65,0x32,0x75,0x14,0x6e,0x64,0x72,
-0x65,0x64,0xa3,0x42,0x11,0x74,0x68,0xa3,0x41,0x12,0x61,0x70,0x68,0xa3,0x43,0x14,
-0x61,0x6d,0x65,0x64,0x68,0xa3,0x44,0x61,0x34,0x62,0x4a,0x64,0x50,0x66,0x12,0x69,
-0x76,0x65,0x9f,1,0x6c,0x2a,0x79,0x11,0x69,0x6e,0x97,0x12,0x65,0x70,0x68,0x95,
-0x12,0x65,0x74,0x68,0x99,1,0x61,0x30,0x68,0x14,0x61,0x6d,0x65,0x64,0x68,0x9d,
-0x13,0x6c,0x65,0x74,0x68,0x9b,0x15,0x61,0x79,0x61,0x6c,0x61,0x6d,6,0x6e,0x2c,
-0x6e,0x34,0x72,0x5e,0x73,0x62,0x74,0x11,0x74,0x61,0xa3,0x63,2,0x67,0x2e,0x6e,
-0x32,0x79,0x10,0x61,0xa3,0x60,0x10,0x61,0xa3,0x5d,1,0x61,0xa3,0x5e,0x6e,0x10,
-0x61,0xa3,0x5f,0x10,0x61,0xa3,0x61,0x11,0x73,0x61,0xa3,0x62,0x62,0x3c,0x6a,0x42,
-0x6c,0x10,0x6c,1,0x61,0xa3,0x5b,0x6c,0x10,0x61,0xa3,0x5c,0x11,0x68,0x61,0xa3,
-0x59,0x10,0x61,0xa3,0x5a,0x11,0x65,0x6d,0x51,2,0x6f,0x2c,0x75,0x50,0x79,0x10,
-0x61,0x91,1,0x6a,0x28,0x6f,0x10,0x6e,0x55,0x1a,0x6f,0x69,0x6e,0x69,0x6e,0x67,
-0x67,0x72,0x6f,0x75,0x70,0x21,0x10,0x6e,0x57,0x10,0x65,0x59,0x10,0x61,1,0x66,
-0x5b,0x70,0x10,0x68,0x5d,0x66,0x9a,0x66,0x42,0x67,0x7a,0x68,0x8a,0x6b,0xa2,0x75,
-0x6c,0x11,0x61,0x6d,0x4c,0x12,0x61,0x64,0x68,0x4f,2,0x61,0x3e,0x65,0x4a,0x69,
-0x19,0x6e,0x61,0x6c,0x73,0x65,0x6d,0x6b,0x61,0x74,0x68,0x35,0x15,0x72,0x73,0x69,
-0x79,0x65,0x68,0x8f,0x86,0x10,0x68,0x33,0x10,0x61,1,0x66,0x37,0x6d,0x11,0x61,
-0x6c,0x39,1,0x61,0x40,0x65,0x3e,1,0x68,0x28,0x74,0x10,0x68,0x45,0x40,0x13,
-0x67,0x6f,0x61,0x6c,0x43,2,0x68,0x3b,0x6d,0x5c,0x6e,0x1a,0x69,0x66,0x69,0x72,
-0x6f,0x68,0x69,0x6e,0x67,0x79,0x61,1,0x6b,0x2a,0x70,0x10,0x61,0xa3,0x65,0x15,
-0x69,0x6e,0x6e,0x61,0x79,0x61,0xa3,0x64,0x1a,0x7a,0x61,0x6f,0x6e,0x68,0x65,0x68,
-0x67,0x6f,0x61,0x6c,0x3d,2,0x61,0x3a,0x68,0x44,0x6e,0x17,0x6f,0x74,0x74,0x65,
-0x64,0x68,0x65,0x68,0x4b,1,0x66,0x47,0x70,0x10,0x68,0x49,0x12,0x61,0x70,0x68,
-0x89,0x61,0x2e,0x62,0x8a,0x64,0xa2,0x51,0x65,0x31,2,0x66,0x3c,0x69,0x70,0x6c,
-1,0x61,0x28,0x65,0x10,0x66,0x27,0x11,0x70,0x68,0x25,0x14,0x72,0x69,0x63,0x61,
-0x6e,2,0x66,0x30,0x6e,0x36,0x71,0x11,0x61,0x66,0xa3,0x58,0x11,0x65,0x68,0xa3,
-0x56,0x12,0x6f,0x6f,0x6e,0xa3,0x57,0x10,0x6e,0x23,1,0x65,0x4a,0x75,0x10,0x72,
-0x1f,0x75,0x73,0x68,0x61,0x73,0x6b,0x69,0x79,0x65,0x68,0x62,0x61,0x72,0x72,0x65,
-0x65,0x8d,1,0x68,0x29,0x74,0x10,0x68,0x2b,0x11,0x61,0x6c,0x2c,0x16,0x61,0x74,
-0x68,0x72,0x69,0x73,0x68,0x2f,7,0x6e,0x2e,0x6e,0x2c,0x72,0x3e,0x74,0x56,0x75,
-0x21,0x18,0x6f,0x6e,0x6a,0x6f,0x69,0x6e,0x69,0x6e,0x67,0x21,0x28,0x1a,0x69,0x67,
-0x68,0x74,0x6a,0x6f,0x69,0x6e,0x69,0x6e,0x67,0x29,0x2a,0x19,0x72,0x61,0x6e,0x73,
-0x70,0x61,0x72,0x65,0x6e,0x74,0x2b,0x63,0x23,0x64,0x40,0x6a,0x56,0x6c,0x26,0x19,
-0x65,0x66,0x74,0x6a,0x6f,0x69,0x6e,0x69,0x6e,0x67,0x27,0x24,0x19,0x75,0x61,0x6c,
-0x6a,0x6f,0x69,0x6e,0x69,0x6e,0x67,0x25,0x19,0x6f,0x69,0x6e,0x63,0x61,0x75,0x73,
-0x69,0x6e,0x67,0x23,0,0x13,0x6e,0xc0,0xd0,0x73,0x49,0x73,0x48,0x75,0x78,0x77,
-0x84,0x78,0x9c,0x7a,0x10,0x77,0x58,1,0x6a,0x75,0x73,0x13,0x70,0x61,0x63,0x65,
-0x59,4,0x61,0x51,0x67,0x53,0x70,0x28,0x75,0x30,0x79,0x57,0x54,0x12,0x61,0x63,
-0x65,0x55,0x16,0x72,0x72,0x6f,0x67,0x61,0x74,0x65,0x53,0x15,0x6e,0x6b,0x6e,0x6f,
-0x77,0x6e,0x21,1,0x6a,0x5d,0x6f,0x17,0x72,0x64,0x6a,0x6f,0x69,0x6e,0x65,0x72,
-0x5d,0x10,0x78,0x21,0x6e,0x60,0x6f,0xa2,0x41,0x70,0xa2,0x50,0x71,0xa2,0x6e,0x72,
-1,0x65,0x24,0x69,0x6f,0x1e,0x67,0x69,0x6f,0x6e,0x61,0x6c,0x69,0x6e,0x64,0x69,
-0x63,0x61,0x74,0x6f,0x72,0x6f,4,0x65,0x3e,0x6c,0x5b,0x6f,0x46,0x73,0x45,0x75,
-0x46,0x14,0x6d,0x65,0x72,0x69,0x63,0x47,0x15,0x78,0x74,0x6c,0x69,0x6e,0x65,0x5b,
-0x17,0x6e,0x73,0x74,0x61,0x72,0x74,0x65,0x72,0x45,0x10,0x70,0x48,0x1c,0x65,0x6e,
-0x70,0x75,0x6e,0x63,0x74,0x75,0x61,0x74,0x69,0x6f,0x6e,0x49,1,0x6f,0x3e,0x72,
-0x4c,0x1a,0x65,0x66,0x69,0x78,0x6e,0x75,0x6d,0x65,0x72,0x69,0x63,0x4d,0x4a,0x1b,
-0x73,0x74,0x66,0x69,0x78,0x6e,0x75,0x6d,0x65,0x72,0x69,0x63,0x4b,0x10,0x75,0x4e,
-0x16,0x6f,0x74,0x61,0x74,0x69,0x6f,0x6e,0x4f,0x68,0x7b,0x68,0x50,0x69,0x86,0x6a,
-0xa2,0x61,0x6c,0xa2,0x65,0x6d,0x1c,0x61,0x6e,0x64,0x61,0x74,0x6f,0x72,0x79,0x62,
-0x72,0x65,0x61,0x6b,0x2d,4,0x32,0x5f,0x33,0x61,0x65,0x34,0x6c,0x6d,0x79,0x3a,
-0x13,0x70,0x68,0x65,0x6e,0x3b,0x19,0x62,0x72,0x65,0x77,0x6c,0x65,0x74,0x74,0x65,
-0x72,0x6d,2,0x64,0x28,0x6e,0x3c,0x73,0x41,0x3c,0x18,0x65,0x6f,0x67,0x72,0x61,
-0x70,0x68,0x69,0x63,0x3d,0x3e,1,0x66,0x3e,0x73,0x11,0x65,0x70,1,0x61,0x22,
-0x65,0x14,0x72,0x61,0x62,0x6c,0x65,0x3f,0x18,0x69,0x78,0x6e,0x75,0x6d,0x65,0x72,
-0x69,0x63,0x41,2,0x6c,0x63,0x74,0x65,0x76,0x67,1,0x66,0x43,0x69,0x15,0x6e,
-0x65,0x66,0x65,0x65,0x64,0x43,0x61,0x40,0x62,0x70,0x63,0xa2,0x55,0x65,0xa2,0xdb,
-0x67,0x10,0x6c,0x38,0x11,0x75,0x65,0x39,2,0x69,0x23,0x6c,0x34,0x6d,0x16,0x62,
-0x69,0x67,0x75,0x6f,0x75,0x73,0x23,0x24,0x17,0x70,0x68,0x61,0x62,0x65,0x74,0x69,
-0x63,0x25,4,0x32,0x27,0x61,0x29,0x62,0x2b,0x6b,0x2d,0x72,0x12,0x65,0x61,0x6b,
-2,0x61,0x36,0x62,0x3e,0x73,0x15,0x79,0x6d,0x62,0x6f,0x6c,0x73,0x57,0x13,0x66,
-0x74,0x65,0x72,0x29,1,0x65,0x2a,0x6f,0x11,0x74,0x68,0x27,0x13,0x66,0x6f,0x72,
-0x65,0x2b,7,0x6d,0x51,0x6d,0x33,0x6f,0x28,0x70,0x69,0x72,0x35,1,0x6d,0x76,
-0x6e,1,0x64,0x3c,0x74,0x1a,0x69,0x6e,0x67,0x65,0x6e,0x74,0x62,0x72,0x65,0x61,
-0x6b,0x2f,0x15,0x69,0x74,0x69,0x6f,0x6e,0x61,0x1f,0x6c,0x6a,0x61,0x70,0x61,0x6e,
-0x65,0x73,0x65,0x73,0x74,0x61,0x72,0x74,0x65,0x72,0x6b,1,0x62,0x3a,0x70,0x19,
-0x6c,0x65,0x78,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x51,0x18,0x69,0x6e,0x69,0x6e,
-0x67,0x6d,0x61,0x72,0x6b,0x33,0x61,0x6a,0x62,0x2f,0x6a,0x6b,0x6c,0x30,0x13,0x6f,
-0x73,0x65,0x70,1,0x61,0x38,0x75,0x18,0x6e,0x63,0x74,0x75,0x61,0x74,0x69,0x6f,
-0x6e,0x31,0x18,0x72,0x65,0x6e,0x74,0x68,0x65,0x73,0x69,0x73,0x69,0x1b,0x72,0x72,
-0x69,0x61,0x67,0x65,0x72,0x65,0x74,0x75,0x72,0x6e,0x35,2,0x62,0x3e,0x6d,0x46,
-0x78,0x36,0x18,0x63,0x6c,0x61,0x6d,0x61,0x74,0x69,0x6f,0x6e,0x37,0x70,0x12,0x61,
-0x73,0x65,0x71,0x72,0x16,0x6f,0x64,0x69,0x66,0x69,0x65,0x72,0x73,1,0x64,0x42,
-0x6e,1,0x6f,0x32,0x75,0x26,0x14,0x6d,0x65,0x72,0x69,0x63,0x27,0x11,0x6e,0x65,
-0x21,1,0x65,0x2e,0x69,0x24,0x12,0x67,0x69,0x74,0x25,0x22,0x14,0x63,0x69,0x6d,
-0x61,0x6c,0x23,0,0x18,0x6e,0xc3,0xe6,0x74,0xc1,0x51,0x77,0x7a,0x77,0xa2,0x4c,
-0x78,0xa2,0x60,0x79,0xa2,0x6a,0x7a,6,0x73,0x1e,0x73,0x34,0x78,0x42,0x79,0x48,
-0x7a,0x11,0x7a,0x7a,0xa3,0x67,0x10,0x79,1,0x65,0xa3,0xae,0x6d,0xa3,0x81,0x11,
-0x78,0x78,0xa3,0x66,0x11,0x79,0x79,0x21,0x61,0x30,0x69,0x58,0x6d,0x11,0x74,0x68,
-0xa3,0x80,0x10,0x6e,1,0x61,0x26,0x62,0xa3,0xb1,0x1a,0x62,0x61,0x7a,0x61,0x72,
-0x73,0x71,0x75,0x61,0x72,0x65,0xa3,0xb1,0x11,0x6e,0x68,0x23,1,0x61,0x2c,0x6f,
-0x11,0x6c,0x65,0xa3,0x9b,0x11,0x72,0x61,0xa2,0x92,0x15,0x6e,0x67,0x63,0x69,0x74,
-0x69,0xa3,0x92,1,0x70,0x2c,0x73,0x11,0x75,0x78,0xa3,0x65,0x11,0x65,0x6f,0x9b,
-0x10,0x69,0x72,0x11,0x69,0x69,0x73,0x74,0x4a,0x75,0xa2,0xba,0x76,1,0x61,0x2c,
-0x69,0x11,0x73,0x70,0xa3,0x64,0x10,0x69,0xa2,0x63,0x10,0x69,0xa3,0x63,5,0x67,
-0x36,0x67,0x68,0x68,0x6c,0x69,2,0x62,0x3a,0x66,0x4a,0x72,0x10,0x68,0xa2,0x9e,
-0x12,0x75,0x74,0x61,0xa3,0x9e,1,0x65,0x24,0x74,0x6f,0x12,0x74,0x61,0x6e,0x6f,
-0x14,0x69,0x6e,0x61,0x67,0x68,0x99,0x11,0x6c,0x67,0x75,0x10,0x61,1,0x61,0x24,
-0x69,0x6d,0x6a,0x11,0x6e,0x61,0x6b,0x61,0x30,0x65,0xa2,0x5b,0x66,0x11,0x6e,0x67,
-0x99,6,0x6c,0x21,0x6c,0x32,0x6d,0x38,0x6e,0x44,0x76,0x10,0x74,0xa3,0x7f,1,
-0x65,0x89,0x75,0x97,1,0x69,0x24,0x6c,0x67,0x10,0x6c,0x67,0x10,0x67,0xa2,0x9a,
-0x11,0x75,0x74,0xa3,0x9a,0x67,0x36,0x69,0x52,0x6b,0x10,0x72,0xa2,0x99,0x10,0x69,
-0xa3,0x99,1,0x61,0x30,0x62,0x7a,0x13,0x61,0x6e,0x77,0x61,0x7b,0x12,0x6c,0x6f,
-0x67,0x75,2,0x6c,0x32,0x74,0x34,0x76,0x12,0x69,0x65,0x74,0xa3,0x7f,0x10,0x65,
-0x89,0x12,0x68,0x61,0x6d,0xa3,0x6a,1,0x6c,0x2a,0x6e,0x10,0x67,0xa3,0x62,0x10,
-0x75,0x68,0x11,0x67,0x75,0x69,1,0x67,0x32,0x6e,0x14,0x6b,0x6e,0x6f,0x77,0x6e,
-0xa3,0x67,0x11,0x61,0x72,0x8a,0x13,0x69,0x74,0x69,0x63,0x8b,0x71,0xc1,0x13,0x71,
-0xa2,0xde,0x72,0xa2,0xe3,0x73,6,0x69,0x8a,0x69,0x72,0x6f,0xa2,0x4c,0x75,0xa2,
-0x75,0x79,1,0x6c,0x46,0x72,4,0x63,0x65,0x65,0xa3,0x5f,0x69,0x2c,0x6a,0xa3,
-0x60,0x6e,0xa3,0x61,0x11,0x61,0x63,0x65,0x10,0x6f,0x94,0x16,0x74,0x69,0x6e,0x61,
-0x67,0x72,0x69,0x95,2,0x64,0x3c,0x67,0x4c,0x6e,1,0x64,0xa3,0x91,0x68,0x62,
-0x12,0x61,0x6c,0x61,0x63,0x10,0x64,0xa2,0xa6,0x12,0x68,0x61,0x6d,0xa3,0xa6,0x17,
-0x6e,0x77,0x72,0x69,0x74,0x69,0x6e,0x67,0xa3,0x70,2,0x67,0x3a,0x72,0x52,0x79,
-0x10,0x6f,0xa2,0xb0,0x12,0x6d,0x62,0x6f,0xa3,0xb0,1,0x64,0x26,0x6f,0xa3,0xb8,
-0xa2,0xb7,0x12,0x69,0x61,0x6e,0xa3,0xb7,0x10,0x61,0xa2,0x98,0x16,0x73,0x6f,0x6d,
-0x70,0x65,0x6e,0x67,0xa3,0x98,0x11,0x6e,0x64,0xa2,0x71,0x14,0x61,0x6e,0x65,0x73,
-0x65,0xa3,0x71,0x61,0x5c,0x67,0xa2,0x43,0x68,1,0x61,0x2a,0x72,0x10,0x64,0xa3,
-0x97,2,0x72,0x28,0x76,0x30,0x77,0x87,0x12,0x61,0x64,0x61,0xa3,0x97,0x12,0x69,
-0x61,0x6e,0x87,2,0x6d,0x40,0x72,0x58,0x75,0x10,0x72,0xa2,0x6f,0x15,0x61,0x73,
-0x68,0x74,0x72,0x61,0xa3,0x6f,1,0x61,0x26,0x72,0xa3,0x7e,0x14,0x72,0x69,0x74,
-0x61,0x6e,0xa3,0x7e,1,0x61,0xa3,0x5e,0x62,0xa3,0x85,0x11,0x6e,0x77,0xa3,0x70,
-0x11,0x61,0x61,1,0x63,0x2f,0x69,0x23,3,0x65,0x3e,0x6a,0x48,0x6f,0x4e,0x75,
-0x10,0x6e,1,0x69,0x24,0x72,0x61,0x10,0x63,0x61,0x13,0x6a,0x61,0x6e,0x67,0xa3,
-0x6e,0x11,0x6e,0x67,0xa3,0x6e,1,0x68,0x2a,0x72,0x10,0x6f,0xa3,0x5d,0x10,0x67,
-0xa3,0xb6,0x6e,0xa2,0x83,0x6f,0xa2,0xca,0x70,5,0x6c,0x1e,0x6c,0x44,0x72,0x4a,
-0x73,0x1b,0x61,0x6c,0x74,0x65,0x72,0x70,0x61,0x68,0x6c,0x61,0x76,0x69,0xa3,0x7b,
-0x11,0x72,0x64,0xa3,0x5c,0x11,0x74,0x69,0xa3,0x7d,0x61,0x7c,0x65,0xa2,0x54,0x68,
-3,0x61,0x3e,0x6c,0x4e,0x6e,0x5e,0x6f,0x16,0x65,0x6e,0x69,0x63,0x69,0x61,0x6e,
-0xa3,0x5b,0x10,0x67,0xa2,0x5a,0x12,0x73,0x70,0x61,0xa3,0x5a,2,0x69,0xa3,0x7a,
-0x70,0xa3,0x7b,0x76,0xa3,0x7c,0x10,0x78,0xa3,0x5b,2,0x68,0x3e,0x6c,0x50,0x75,
-0x10,0x63,0xa2,0xa5,0x14,0x69,0x6e,0x68,0x61,0x75,0xa3,0xa5,0x17,0x61,0x77,0x68,
-0x68,0x6d,0x6f,0x6e,0x67,0xa3,0x4b,0x10,0x6d,0xa2,0x90,0x14,0x79,0x72,0x65,0x6e,
-0x65,0xa3,0x90,0x11,0x72,0x6d,0xa3,0x59,5,0x6b,0x1e,0x6b,0x32,0x73,0x4a,0x75,
-0x12,0x73,0x68,0x75,0xa3,0x96,1,0x67,0x2e,0x6f,0xa2,0x57,0x10,0x6f,0xa3,0x57,
-0x10,0x62,0xa3,0x84,0x11,0x68,0x75,0xa3,0x96,0x61,0x42,0x62,0x60,0x65,0x10,0x77,
-1,0x61,0xa3,0xaa,0x74,0x14,0x61,0x69,0x6c,0x75,0x65,0x97,1,0x62,0x2a,0x72,
-0x10,0x62,0xa3,0x8e,0x15,0x61,0x74,0x61,0x65,0x61,0x6e,0xa3,0x8f,0x11,0x61,0x74,
-0xa3,0x8f,3,0x67,0x5a,0x6c,0x6c,0x72,0xa2,0x93,0x73,2,0x61,0x36,0x67,0x3c,
-0x6d,0x10,0x61,0x84,0x12,0x6e,0x79,0x61,0x85,0x11,0x67,0x65,0xa3,0xab,0x10,0x65,
-0xa3,0xab,1,0x61,0x2a,0x68,0x11,0x61,0x6d,0x5b,0x10,0x6d,0x5b,1,0x63,0xa2,
-0x60,0x64,5,0x70,0x37,0x70,0x36,0x73,0x54,0x74,0x14,0x75,0x72,0x6b,0x69,0x63,
-0xa3,0x58,0x11,0x65,0x72,1,0x6d,0x2c,0x73,0x12,0x69,0x61,0x6e,0x9b,0x11,0x69,
-0x63,0xa3,0x59,0x10,0x6f,1,0x67,0x3a,0x75,0x18,0x74,0x68,0x61,0x72,0x61,0x62,
-0x69,0x61,0x6e,0xa3,0x85,0x13,0x64,0x69,0x61,0x6e,0xa3,0xb8,0x68,0x42,0x69,0x54,
-0x6e,0x1a,0x6f,0x72,0x74,0x68,0x61,0x72,0x61,0x62,0x69,0x61,0x6e,0xa3,0x8e,0x17,
-0x75,0x6e,0x67,0x61,0x72,0x69,0x61,0x6e,0xa3,0x4c,0x14,0x74,0x61,0x6c,0x69,0x63,
-0x5d,1,0x68,0x26,0x6b,0xa3,0x6d,0x12,0x69,0x6b,0x69,0xa3,0x6d,2,0x69,0x2c,
-0x6b,0x30,0x79,0x10,0x61,0x5f,0x11,0x79,0x61,0x5f,0x10,0x68,0xa3,0x58,0x68,0xc2,
-0xef,0x6b,0xc2,0xa,0x6b,0xa4,0x17,0x6c,0xa4,0x98,0x6d,8,0x6f,0x46,0x6f,0x48,
-0x72,0x74,0x74,0x80,0x75,0x86,0x79,1,0x61,0x28,0x6d,0x10,0x72,0x59,0x13,0x6e,
-0x6d,0x61,0x72,0x59,2,0x64,0x2e,0x6e,0x32,0x6f,0x10,0x6e,0xa3,0x72,0x10,0x69,
-0xa3,0xa3,0x10,0x67,0x56,0x14,0x6f,0x6c,0x69,0x61,0x6e,0x57,0x10,0x6f,0xa2,0x95,
-0x10,0x6f,0xa3,0x95,0x11,0x65,0x69,0xa3,0x73,0x11,0x6c,0x74,0xa2,0xa4,0x12,0x61,
-0x6e,0x69,0xa3,0xa4,0x61,0x36,0x65,0xa2,0x67,0x69,0xa2,0xbd,0x6c,0x11,0x79,0x6d,
-0x55,6,0x6e,0x38,0x6e,0x32,0x72,0x5c,0x73,0x6c,0x79,0x10,0x61,0xa3,0x55,1,
-0x64,0x38,0x69,0xa2,0x79,0x15,0x63,0x68,0x61,0x65,0x61,0x6e,0xa3,0x79,0xa2,0x54,
-0x12,0x61,0x69,0x63,0xa3,0x54,0x10,0x63,0xa2,0xa9,0x12,0x68,0x65,0x6e,0xa3,0xa9,
-0x18,0x61,0x72,0x61,0x6d,0x67,0x6f,0x6e,0x64,0x69,0xa3,0xaf,0x68,0x36,0x6b,0x4c,
-0x6c,0x15,0x61,0x79,0x61,0x6c,0x61,0x6d,0x55,1,0x61,0x26,0x6a,0xa3,0xa0,0x13,
-0x6a,0x61,0x6e,0x69,0xa3,0xa0,0x10,0x61,0xa2,0xb4,0x12,0x73,0x61,0x72,0xa3,0xb4,
-3,0x64,0x78,0x65,0x94,0x6e,0xa2,0x42,0x72,1,0x63,0xa3,0x8d,0x6f,0xa2,0x56,
-0x13,0x69,0x74,0x69,0x63,1,0x63,0x3c,0x68,0x19,0x69,0x65,0x72,0x6f,0x67,0x6c,
-0x79,0x70,0x68,0x73,0xa3,0x56,0x15,0x75,0x72,0x73,0x69,0x76,0x65,0xa3,0x8d,1,
-0x65,0x26,0x66,0xa3,0xb5,0x16,0x66,0x61,0x69,0x64,0x72,0x69,0x6e,0xa3,0xb5,0x17,
-0x74,0x65,0x69,0x6d,0x61,0x79,0x65,0x6b,0xa3,0x73,0x10,0x64,0xa2,0x8c,0x17,0x65,
-0x6b,0x69,0x6b,0x61,0x6b,0x75,0x69,0xa3,0x8c,0x11,0x61,0x6f,0xa3,0x5c,5,0x6f,
-0x14,0x6f,0x30,0x70,0x36,0x74,0x11,0x68,0x69,0xa3,0x78,0x11,0x72,0x65,0xa3,0x77,
-0x11,0x65,0x6c,0xa3,0x8a,0x61,0x2e,0x68,0x98,0x6e,0x11,0x64,0x61,0x4b,4,0x69,
-0x3c,0x6c,0x44,0x6e,0x48,0x74,0x56,0x79,0x13,0x61,0x68,0x6c,0x69,0xa3,0x4f,0x12,
-0x74,0x68,0x69,0xa3,0x78,0x10,0x69,0xa3,0x4f,1,0x61,0x4d,0x6e,0x12,0x61,0x64,
-0x61,0x4b,0x14,0x61,0x6b,0x61,0x6e,0x61,0x4c,0x19,0x6f,0x72,0x68,0x69,0x72,0x61,
-0x67,0x61,0x6e,0x61,0x8d,3,0x61,0x3c,0x6d,0x4e,0x6f,0x5a,0x75,0x15,0x64,0x61,
-0x77,0x61,0x64,0x69,0xa3,0x91,0x10,0x72,0x92,0x15,0x6f,0x73,0x68,0x74,0x68,0x69,
-0x93,1,0x65,0x24,0x72,0x4f,0x10,0x72,0x4f,0x10,0x6a,0xa2,0x9d,0x11,0x6b,0x69,
-0xa3,0x9d,4,0x61,0x5c,0x65,0x90,0x69,0xa0,0x6f,0xa2,0x5d,0x79,1,0x63,0x34,
-0x64,0x10,0x69,0xa2,0x6c,0x11,0x61,0x6e,0xa3,0x6c,0x10,0x69,0xa2,0x6b,0x11,0x61,
-0x6e,0xa3,0x6b,2,0x6e,0x42,0x6f,0x46,0x74,3,0x66,0xa3,0x50,0x67,0xa3,0x51,
-0x69,0x24,0x6e,0x53,0x10,0x6e,0x53,0x10,0x61,0xa3,0x6a,0x50,0x10,0x6f,0x51,0x11,
-0x70,0x63,0xa2,0x52,0x11,0x68,0x61,0xa3,0x52,2,0x6d,0x2e,0x6e,0x36,0x73,0x10,
-0x75,0xa3,0x83,0x10,0x62,0x80,0x10,0x75,0x81,2,0x61,0xa3,0x53,0x62,0x83,0x65,
-0x11,0x61,0x72,1,0x61,0xa3,0x53,0x62,0x83,0x11,0x6d,0x61,0xa3,0x8b,0x68,0x6e,
-0x69,0xa2,0x91,0x6a,2,0x61,0x30,0x70,0x52,0x75,0x11,0x72,0x63,0xa3,0x94,1,
-0x6d,0x38,0x76,0x10,0x61,0xa2,0x4e,0x13,0x6e,0x65,0x73,0x65,0xa3,0x4e,0x10,0x6f,
-0xa3,0xad,0x11,0x61,0x6e,0xa3,0x69,6,0x6c,0x1a,0x6c,0x34,0x6d,0x3a,0x72,0x40,
-0x75,0x11,0x6e,0x67,0xa3,0x4c,0x11,0x75,0x77,0xa3,0x9c,0x11,0x6e,0x67,0xa3,0x4b,
-0x11,0x6b,0x74,0x8d,0x61,0x3c,0x65,0xa2,0x43,0x69,0x11,0x72,0x61,0x48,0x13,0x67,
-0x61,0x6e,0x61,0x49,1,0x6e,0x34,0x74,0x10,0x72,0xa2,0xa2,0x11,0x61,0x6e,0xa3,
-0xa2,0x42,6,0x6f,0xe,0x6f,0x77,0x73,0xa3,0x49,0x74,0xa3,0x4a,0x75,0x12,0x6e,
-0x6f,0x6f,0x77,0x62,0xa3,0xac,0x67,0x3e,0x69,0x42,0x19,0x66,0x69,0x72,0x6f,0x68,
-0x69,0x6e,0x67,0x79,0x61,0xa3,0xb6,0x44,0x11,0x75,0x6c,0x45,0x11,0x62,0x72,0x46,
-0x11,0x65,0x77,0x47,2,0x6d,0x2e,0x6e,0x4a,0x74,0x11,0x61,0x6c,0x5d,0x1c,0x70,
-0x65,0x72,0x69,0x61,0x6c,0x61,0x72,0x61,0x6d,0x61,0x69,0x63,0xa3,0x74,2,0x64,
-0x66,0x68,0x6a,0x73,0x1b,0x63,0x72,0x69,0x70,0x74,0x69,0x6f,0x6e,0x61,0x6c,0x70,
-0x61,1,0x68,0x32,0x72,0x14,0x74,0x68,0x69,0x61,0x6e,0xa3,0x7d,0x13,0x6c,0x61,
-0x76,0x69,0xa3,0x7a,0x10,0x73,0xa3,0x4d,0x15,0x65,0x72,0x69,0x74,0x65,0x64,0x23,
-0x64,0xc0,0xec,0x64,0xa2,0x7a,0x65,0xa2,0xad,0x67,4,0x65,0x82,0x6c,0x9a,0x6f,
-0xa2,0x46,0x72,0xa2,0x55,0x75,2,0x6a,0x3c,0x6e,0x4e,0x72,1,0x6d,0x24,0x75,
-0x41,0x13,0x75,0x6b,0x68,0x69,0x41,1,0x61,0x24,0x72,0x3f,0x13,0x72,0x61,0x74,
-0x69,0x3f,0x18,0x6a,0x61,0x6c,0x61,0x67,0x6f,0x6e,0x64,0x69,0xa3,0xb3,0x10,0x6f,
-1,0x6b,0xa3,0x48,0x72,0x38,0x13,0x67,0x69,0x61,0x6e,0x39,0x11,0x61,0x67,0x90,
-0x15,0x6f,0x6c,0x69,0x74,0x69,0x63,0x91,1,0x6e,0x30,0x74,0x10,0x68,0x3a,0x11,
-0x69,0x63,0x3b,1,0x67,0xa3,0xb3,0x6d,0xa3,0xaf,1,0x61,0x32,0x65,1,0x65,
-0x24,0x6b,0x3d,0x10,0x6b,0x3d,0x10,0x6e,0xa2,0x89,0x12,0x74,0x68,0x61,0xa3,0x89,
-3,0x65,0x42,0x6f,0x68,0x73,0x76,0x75,0x11,0x70,0x6c,0xa2,0x87,0x13,0x6f,0x79,
-0x61,0x6e,0xa3,0x87,1,0x73,0x38,0x76,0x10,0x61,0x34,0x15,0x6e,0x61,0x67,0x61,
-0x72,0x69,0x35,0x13,0x65,0x72,0x65,0x74,0x33,0x11,0x67,0x72,0xa2,0xb2,0x10,0x61,
-0xa3,0xb2,0x11,0x72,0x74,0x33,2,0x67,0x3a,0x6c,0x72,0x74,0x11,0x68,0x69,0x36,
-0x13,0x6f,0x70,0x69,0x63,0x37,0x10,0x79,2,0x64,0xa3,0x45,0x68,0xa3,0x46,0x70,
-0xa2,0x47,0x1e,0x74,0x69,0x61,0x6e,0x68,0x69,0x65,0x72,0x6f,0x67,0x6c,0x79,0x70,
-0x68,0x73,0xa3,0x47,0x11,0x62,0x61,0xa2,0x88,0x12,0x73,0x61,0x6e,0xa3,0x88,0x61,
-0xa2,0xa2,0x62,0xa4,7,0x63,6,0x6f,0x3d,0x6f,0x5a,0x70,0x76,0x75,0x7a,0x79,
-1,0x70,0x3e,0x72,2,0x69,0x2a,0x6c,0x31,0x73,0xa3,0x44,0x13,0x6c,0x6c,0x69,
-0x63,0x31,0x13,0x72,0x69,0x6f,0x74,0x7f,1,0x6d,0x30,0x70,0x10,0x74,0x2e,0x11,
-0x69,0x63,0x2f,0x12,0x6d,0x6f,0x6e,0x21,0x11,0x72,0x74,0x7f,0x16,0x6e,0x65,0x69,
-0x66,0x6f,0x72,0x6d,0xa3,0x65,0x61,0x32,0x68,0xa2,0x41,0x69,0x11,0x72,0x74,0xa3,
-0x43,3,0x6b,0x4c,0x6e,0x50,0x72,0x76,0x75,0x1d,0x63,0x61,0x73,0x69,0x61,0x6e,
-0x61,0x6c,0x62,0x61,0x6e,0x69,0x61,0x6e,0xa3,0x9f,0x10,0x6d,0xa3,0x76,1,0x61,
-0x24,0x73,0x71,0x1d,0x64,0x69,0x61,0x6e,0x61,0x62,0x6f,0x72,0x69,0x67,0x69,0x6e,
-0x61,0x6c,0x71,0x10,0x69,0xa2,0x68,0x11,0x61,0x6e,0xa3,0x68,1,0x61,0x34,0x65,
-0x10,0x72,0x2c,0x13,0x6f,0x6b,0x65,0x65,0x2d,1,0x6b,0x26,0x6d,0xa3,0x42,0x11,
-0x6d,0x61,0xa3,0x76,6,0x68,0x4a,0x68,0x48,0x6e,0x4e,0x72,0x76,0x76,1,0x65,
-0x2a,0x73,0x10,0x74,0xa3,0x75,0x13,0x73,0x74,0x61,0x6e,0xa3,0x75,0x11,0x6f,0x6d,
-0xa3,0xa1,0x11,0x61,0x74,0x1f,0x6f,0x6c,0x69,0x61,0x6e,0x68,0x69,0x65,0x72,0x6f,
-0x67,0x6c,0x79,0x70,0x68,0x73,0xa3,0x9c,1,0x61,0x3e,0x6d,2,0x65,0x2a,0x69,
-0xa3,0x74,0x6e,0x27,0x13,0x6e,0x69,0x61,0x6e,0x27,0x10,0x62,0x24,0x11,0x69,0x63,
-0x25,0x64,0x30,0x66,0x44,0x67,0x11,0x68,0x62,0xa3,0x9f,0x10,0x6c,1,0x61,0x26,
-0x6d,0xa3,0xa7,0x10,0x6d,0xa3,0xa7,0x11,0x61,0x6b,0xa3,0x93,6,0x6c,0x3c,0x6c,
-0x52,0x6f,0x56,0x72,0x66,0x75,1,0x67,0x30,0x68,1,0x64,0x79,0x69,0x10,0x64,
-0x79,0x10,0x69,0x8e,0x13,0x6e,0x65,0x73,0x65,0x8f,0x11,0x69,0x73,0xa1,0x11,0x70,
-0x6f,0x2a,0x13,0x6d,0x6f,0x66,0x6f,0x2b,0x10,0x61,1,0x68,0x2e,0x69,0x7c,0x12,
-0x6c,0x6c,0x65,0x7d,0xa2,0x41,0x11,0x6d,0x69,0xa3,0x41,0x61,0x48,0x65,0x9c,0x68,
-1,0x61,0x2a,0x6b,0x10,0x73,0xa3,0xa8,0x15,0x69,0x6b,0x73,0x75,0x6b,0x69,0xa3,
-0xa8,3,0x6c,0x3a,0x6d,0x48,0x73,0x54,0x74,1,0x61,0x24,0x6b,0x9f,0x10,0x6b,
-0x9f,0x10,0x69,0x9c,0x13,0x6e,0x65,0x73,0x65,0x9d,0x10,0x75,0xa2,0x82,0x10,0x6d,
-0xa3,0x82,0x10,0x73,0xa2,0x86,0x13,0x61,0x76,0x61,0x68,0xa3,0x86,0x11,0x6e,0x67,
-0x28,0x12,0x61,0x6c,0x69,0x29,3,0x6c,0x42,0x6e,0x90,0x74,0xa2,0x46,0x76,0x24,
-0x17,0x6f,0x77,0x65,0x6c,0x6a,0x61,0x6d,0x6f,0x25,0x22,1,0x65,0x54,0x76,0x28,
-1,0x73,0x38,0x74,0x2a,0x17,0x73,0x79,0x6c,0x6c,0x61,0x62,0x6c,0x65,0x2b,0x16,
-0x79,0x6c,0x6c,0x61,0x62,0x6c,0x65,0x29,0x18,0x61,0x64,0x69,0x6e,0x67,0x6a,0x61,
-0x6d,0x6f,0x23,1,0x61,0x21,0x6f,0x1a,0x74,0x61,0x70,0x70,0x6c,0x69,0x63,0x61,
-0x62,0x6c,0x65,0x21,0x26,0x1a,0x72,0x61,0x69,0x6c,0x69,0x6e,0x67,0x6a,0x61,0x6d,
-0x6f,0x27,1,0x6e,0x2c,0x79,0x22,0x11,0x65,0x73,0x23,0x20,0x10,0x6f,0x21,1,
-0x6e,0x2c,0x79,0x22,0x11,0x65,0x73,0x23,0x20,0x10,0x6f,0x21,2,0x6d,0x30,0x6e,
+const uint8_t PropNameData::bytesTries[14523]={
+0,0x15,0x6d,0xc3,0x78,0x73,0xc2,0x12,0x76,0x7a,0x76,0x6a,0x77,0xa2,0x52,0x78,
+1,0x64,0x50,0x69,0x10,0x64,1,0x63,0x30,0x73,0x62,0x13,0x74,0x61,0x72,0x74,
+0x63,0x60,0x16,0x6f,0x6e,0x74,0x69,0x6e,0x75,0x65,0x61,0x13,0x69,0x67,0x69,0x74,
+0x81,3,0x61,0x2e,0x65,0x4c,0x6f,0xc3,0x18,0x73,0x69,0x1e,0x72,0x69,0x61,0x74,
+0x69,0x6f,0x6e,0x73,0x65,0x6c,0x65,0x63,0x74,0x6f,0x72,0x69,0x10,0x72,0x1f,0x74,
+0x69,0x63,0x61,0x6c,0x6f,0x72,0x69,0x65,0x6e,0x74,0x61,0x74,0x69,0x6f,0x6e,0xc3,
+0x18,3,0x62,0xc3,0x14,0x68,0x32,0x6f,0x42,0x73,0x13,0x70,0x61,0x63,0x65,0x5f,
+0x17,0x69,0x74,0x65,0x73,0x70,0x61,0x63,0x65,0x5f,0x16,0x72,0x64,0x62,0x72,0x65,
+0x61,0x6b,0xc3,0x14,0x73,0xa2,0x49,0x74,0xa4,0x3b,0x75,3,0x63,0xd9,0x40,0xc,
+0x69,0x52,0x6e,0x58,0x70,0x12,0x70,0x65,0x72,0x5c,0x13,0x63,0x61,0x73,0x65,0x5c,
+0x16,0x6d,0x61,0x70,0x70,0x69,0x6e,0x67,0xd9,0x40,0xc,0x12,0x64,0x65,0x6f,0x5b,
+0x10,0x69,1,0x63,0x3e,0x66,0x1b,0x69,0x65,0x64,0x69,0x64,0x65,0x6f,0x67,0x72,
+0x61,0x70,0x68,0x5b,0x17,0x6f,0x64,0x65,0x31,0x6e,0x61,0x6d,0x65,0xd9,0x40,0xb,
+0xa,0x69,0x84,0x70,0x19,0x70,0x30,0x74,0x36,0x75,0x10,0x63,0xd9,0x40,9,0x12,
+0x61,0x63,0x65,0x5f,1,0x63,0xd9,0x40,8,0x65,0x11,0x72,0x6d,0x67,0x69,0x3c,
+0x6c,0xa2,0x5f,0x6f,0x17,0x66,0x74,0x64,0x6f,0x74,0x74,0x65,0x64,0x57,0x13,0x6d,
+0x70,0x6c,0x65,3,0x63,0x50,0x6c,0x68,0x74,0x8a,0x75,0x1e,0x70,0x70,0x65,0x72,
+0x63,0x61,0x73,0x65,0x6d,0x61,0x70,0x70,0x69,0x6e,0x67,0xd9,0x40,9,0x19,0x61,
+0x73,0x65,0x66,0x6f,0x6c,0x64,0x69,0x6e,0x67,0xd9,0x40,6,0x1e,0x6f,0x77,0x65,
+0x72,0x63,0x61,0x73,0x65,0x6d,0x61,0x70,0x70,0x69,0x6e,0x67,0xd9,0x40,7,0x1e,
+0x69,0x74,0x6c,0x65,0x63,0x61,0x73,0x65,0x6d,0x61,0x70,0x70,0x69,0x6e,0x67,0xd9,
+0x40,8,0x10,0x63,0xd9,0x40,7,0x62,0xc3,0x13,0x63,0x34,0x64,0x57,0x65,0x6e,
+0x66,0x10,0x63,0xd9,0x40,6,0xc2,0xa,2,0x66,0xd9,0x40,6,0x72,0x28,0x78,
+0xd9,0x70,0,0x12,0x69,0x70,0x74,0xc2,0xa,0x19,0x65,0x78,0x74,0x65,0x6e,0x73,
+0x69,0x6f,0x6e,0x73,0xd9,0x70,0,1,0x67,0x6a,0x6e,1,0x73,0x54,0x74,0x13,
+0x65,0x6e,0x63,0x65,1,0x62,0x34,0x74,0x16,0x65,0x72,0x6d,0x69,0x6e,0x61,0x6c,
+0x67,0x13,0x72,0x65,0x61,0x6b,0xc3,0x13,0x14,0x69,0x74,0x69,0x76,0x65,0x65,1,
+0x6d,0x2e,0x73,0x13,0x74,0x61,0x72,0x74,0x73,0x19,0x65,0x6e,0x74,0x73,0x74,0x61,
+0x72,0x74,0x65,0x72,0x73,3,0x63,0x66,0x65,0x72,0x69,0x98,0x72,0x19,0x61,0x69,
+0x6c,0x63,0x61,0x6e,0x6f,0x6e,0x69,0x63,0x1f,0x61,0x6c,0x63,0x6f,0x6d,0x62,0x69,
+0x6e,0x69,0x6e,0x67,0x63,0x6c,0x61,0x73,0x73,0xc3,0x11,0xd8,0x40,0xa,0x11,0x63,
+0x63,0xc3,0x11,0x11,0x72,0x6d,0x58,0x1e,0x69,0x6e,0x61,0x6c,0x70,0x75,0x6e,0x63,
+0x74,0x75,0x61,0x74,0x69,0x6f,0x6e,0x59,0x1d,0x74,0x6c,0x65,0x63,0x61,0x73,0x65,
+0x6d,0x61,0x70,0x70,0x69,0x6e,0x67,0xd9,0x40,0xa,0x6d,0x70,0x6e,0x76,0x70,0xa2,
+0xf1,0x71,0xa4,0x43,0x72,2,0x61,0x28,0x65,0x32,0x69,0x9d,0x14,0x64,0x69,0x63,
+0x61,0x6c,0x55,0x1e,0x67,0x69,0x6f,0x6e,0x61,0x6c,0x69,0x6e,0x64,0x69,0x63,0x61,
+0x74,0x6f,0x72,0x9d,0x12,0x61,0x74,0x68,0x4f,6,0x6f,0x39,0x6f,0x32,0x74,0xc3,
+9,0x75,0x54,0x76,0xd9,0x30,0,0x12,0x6e,0x63,0x68,0x1f,0x61,0x72,0x61,0x63,
+0x74,0x65,0x72,0x63,0x6f,0x64,0x65,0x70,0x6f,0x69,0x6e,0x74,0x51,0x14,0x6d,0x65,
+0x72,0x69,0x63,1,0x74,0x32,0x76,0x13,0x61,0x6c,0x75,0x65,0xd9,0x30,0,0x12,
+0x79,0x70,0x65,0xc3,9,0x61,0xa2,0x77,0x63,0xa2,0x82,0x66,2,0x63,0x98,0x64,
+0xa2,0x53,0x6b,1,0x63,0x56,0x64,1,0x69,0x42,0x71,1,0x63,0xc3,0xd,0x75,
+0x17,0x69,0x63,0x6b,0x63,0x68,0x65,0x63,0x6b,0xc3,0xd,0x13,0x6e,0x65,0x72,0x74,
+0x6d,1,0x69,0x42,0x71,1,0x63,0xc3,0xf,0x75,0x17,0x69,0x63,0x6b,0x63,0x68,
+0x65,0x63,0x6b,0xc3,0xf,0x13,0x6e,0x65,0x72,0x74,0x71,1,0x69,0x42,0x71,1,
+0x63,0xc3,0xe,0x75,0x17,0x69,0x63,0x6b,0x63,0x68,0x65,0x63,0x6b,0xc3,0xe,0x13,
+0x6e,0x65,0x72,0x74,0x6f,1,0x69,0x42,0x71,1,0x63,0xc3,0xc,0x75,0x17,0x69,
+0x63,0x6b,0x63,0x68,0x65,0x63,0x6b,0xc3,0xc,0x13,0x6e,0x65,0x72,0x74,0x6b,0xd8,
+0x40,5,1,0x31,0xd9,0x40,0xb,0x6d,0x10,0x65,0xd9,0x40,5,0x12,0x68,0x61,
+0x72,0x51,2,0x61,0x6c,0x63,0xa2,0x4c,0x72,1,0x65,0x2a,0x69,0x11,0x6e,0x74,
+0x7f,0x16,0x70,0x65,0x6e,0x64,0x65,0x64,0x63,0x1f,0x6f,0x6e,0x63,0x61,0x74,0x65,
+0x6e,0x61,0x74,0x69,0x6f,0x6e,0x6d,0x61,0x72,0x6b,0x9f,0x10,0x74,2,0x73,0x2c,
+0x74,0x30,0x77,0x10,0x73,0x77,0x11,0x79,0x6e,0x75,0x12,0x65,0x72,0x6e,1,0x73,
+0x38,0x77,0x18,0x68,0x69,0x74,0x65,0x73,0x70,0x61,0x63,0x65,0x77,0x14,0x79,0x6e,
+0x74,0x61,0x78,0x75,0x10,0x6d,0x9f,1,0x6d,0x3c,0x75,0x1a,0x6f,0x74,0x61,0x74,
+0x69,0x6f,0x6e,0x6d,0x61,0x72,0x6b,0x53,0x12,0x61,0x72,0x6b,0x53,0x66,0xc1,0xf8,
+0x69,0xc1,0x3c,0x69,0xa2,0x6f,0x6a,0xa4,9,0x6c,4,0x62,0xc3,8,0x63,0x8c,
+0x65,0x98,0x69,0xa2,0x56,0x6f,2,0x65,0x4b,0x67,0x4c,0x77,0x11,0x65,0x72,0x4c,
+0x13,0x63,0x61,0x73,0x65,0x4c,0x16,0x6d,0x61,0x70,0x70,0x69,0x6e,0x67,0xd9,0x40,
+4,0x11,0x69,0x63,0x1f,0x61,0x6c,0x6f,0x72,0x64,0x65,0x72,0x65,0x78,0x63,0x65,
+0x70,0x74,0x69,0x6f,0x6e,0x4b,0xd8,0x40,4,0x11,0x63,0x63,0xc3,0x10,0x18,0x61,
+0x64,0x63,0x61,0x6e,0x6f,0x6e,0x69,0x63,0x1f,0x61,0x6c,0x63,0x6f,0x6d,0x62,0x69,
+0x6e,0x69,0x6e,0x67,0x63,0x6c,0x61,0x73,0x73,0xc3,0x10,0x16,0x6e,0x65,0x62,0x72,
+0x65,0x61,0x6b,0xc3,8,2,0x64,0x4a,0x6e,0xa2,0x5b,0x73,1,0x63,0xd9,0x40,
+3,0x6f,0x16,0x63,0x6f,0x6d,0x6d,0x65,0x6e,0x74,0xd9,0x40,3,2,0x63,0x80,
+0x65,0x90,0x73,0x40,1,0x62,0x52,0x74,0x46,1,0x61,0x40,0x72,0x1c,0x69,0x6e,
+0x61,0x72,0x79,0x6f,0x70,0x65,0x72,0x61,0x74,0x6f,0x72,0x47,0x11,0x72,0x74,0x41,
+0x44,0x1c,0x69,0x6e,0x61,0x72,0x79,0x6f,0x70,0x65,0x72,0x61,0x74,0x6f,0x72,0x45,
+0x3e,0x16,0x6f,0x6e,0x74,0x69,0x6e,0x75,0x65,0x3f,0x10,0x6f,0x42,0x16,0x67,0x72,
+0x61,0x70,0x68,0x69,0x63,0x43,2,0x64,0x2e,0x70,0x86,0x73,0x10,0x63,0xc3,0x17,
+0x11,0x69,0x63,1,0x70,0x46,0x73,0x1e,0x79,0x6c,0x6c,0x61,0x62,0x69,0x63,0x63,
+0x61,0x74,0x65,0x67,0x6f,0x72,0x79,0xc3,0x17,0x10,0x6f,0x1f,0x73,0x69,0x74,0x69,
+0x6f,0x6e,0x61,0x6c,0x63,0x61,0x74,0x65,0x67,0x6f,0x72,0x79,0xc3,0x16,0x10,0x63,
+0xc3,0x16,2,0x67,0xc3,6,0x6f,0x26,0x74,0xc3,7,0x11,0x69,0x6e,1,0x63,
+0x4a,0x69,0x11,0x6e,0x67,1,0x67,0x2e,0x74,0x12,0x79,0x70,0x65,0xc3,7,0x13,
+0x72,0x6f,0x75,0x70,0xc3,6,0x48,0x15,0x6f,0x6e,0x74,0x72,0x6f,0x6c,0x49,0x66,
+0x86,0x67,0xa2,0x4a,0x68,3,0x61,0x36,0x65,0x58,0x73,0x68,0x79,0x13,0x70,0x68,
+0x65,0x6e,0x3d,0x1f,0x6e,0x67,0x75,0x6c,0x73,0x79,0x6c,0x6c,0x61,0x62,0x6c,0x65,
+0x74,0x79,0x70,0x65,0xc3,0xb,0x10,0x78,0x3a,0x14,0x64,0x69,0x67,0x69,0x74,0x3b,
+0x10,0x74,0xc3,0xb,0x16,0x75,0x6c,0x6c,0x63,0x6f,0x6d,0x70,0x1f,0x6f,0x73,0x69,
+0x74,0x69,0x6f,0x6e,0x65,0x78,0x63,0x6c,0x75,0x73,0x69,0x6f,0x6e,0x33,2,0x63,
+0xa2,0x44,0x65,0xa2,0x4b,0x72,3,0x61,0x34,0x62,0x84,0x65,0x8a,0x6c,0x12,0x69,
+0x6e,0x6b,0x39,0x11,0x70,0x68,0x7c,0x12,0x65,0x6d,0x65,3,0x62,0x5e,0x63,0x30,
+0x65,0x48,0x6c,0x12,0x69,0x6e,0x6b,0x39,0x1a,0x6c,0x75,0x73,0x74,0x65,0x72,0x62,
+0x72,0x65,0x61,0x6b,0xc3,0x12,0x14,0x78,0x74,0x65,0x6e,0x64,0x37,0x12,0x61,0x73,
+0x65,0x35,0x11,0x78,0x74,0x37,0xc2,5,1,0x62,0xc3,0x12,0x6d,0xd9,0x20,0,
+0x1c,0x6e,0x65,0x72,0x61,0x6c,0x63,0x61,0x74,0x65,0x67,0x6f,0x72,0x79,0xc2,5,
+0x13,0x6d,0x61,0x73,0x6b,0xd9,0x20,0,0x61,0xa2,0x90,0x62,0xa2,0xbe,0x63,0xa4,
+0x30,0x64,0xa4,0xfd,0x65,5,0x6d,0x63,0x6d,0x6e,0x70,0xa2,0x59,0x78,0x10,0x74,
+0x30,1,0x65,0x2c,0x70,0x12,0x69,0x63,0x74,0xa1,0x12,0x6e,0x64,0x65,1,0x64,
+0x24,0x72,0x31,0x1b,0x70,0x69,0x63,0x74,0x6f,0x67,0x72,0x61,0x70,0x68,0x69,0x63,
+0xa1,0x10,0x6f,1,0x64,0x97,0x6a,0x10,0x69,0x92,2,0x63,0x40,0x6d,0x50,0x70,
+0x1a,0x72,0x65,0x73,0x65,0x6e,0x74,0x61,0x74,0x69,0x6f,0x6e,0x95,0x17,0x6f,0x6d,
+0x70,0x6f,0x6e,0x65,0x6e,0x74,0x9b,0x16,0x6f,0x64,0x69,0x66,0x69,0x65,0x72,0x96,
+0x13,0x62,0x61,0x73,0x65,0x99,0x12,0x72,0x65,0x73,0x95,0x61,0x30,0x62,0x4e,0x63,
+0x12,0x6f,0x6d,0x70,0x9b,0xc2,4,0x1b,0x73,0x74,0x61,0x73,0x69,0x61,0x6e,0x77,
+0x69,0x64,0x74,0x68,0xc3,4,0x12,0x61,0x73,0x65,0x99,3,0x67,0x44,0x68,0x4a,
+0x6c,0x4e,0x73,0x1a,0x63,0x69,0x69,0x68,0x65,0x78,0x64,0x69,0x67,0x69,0x74,0x23,
+0x10,0x65,0xd9,0x40,0,0x11,0x65,0x78,0x23,1,0x6e,0x38,0x70,0x11,0x68,0x61,
+0x20,0x14,0x62,0x65,0x74,0x69,0x63,0x21,0x11,0x75,0x6d,0x79,4,0x63,0xc3,0,
+0x69,0x3e,0x6c,0xa2,0x57,0x6d,0xa2,0x64,0x70,1,0x62,0xd9,0x40,0xd,0x74,0xc3,
+0x15,0x11,0x64,0x69,2,0x63,0x54,0x6d,0x74,0x70,0x1b,0x61,0x69,0x72,0x65,0x64,
+0x62,0x72,0x61,0x63,0x6b,0x65,0x74,0xd8,0x40,0xd,0x13,0x74,0x79,0x70,0x65,0xc3,
+0x15,0x24,1,0x6c,0x30,0x6f,0x14,0x6e,0x74,0x72,0x6f,0x6c,0x25,0x12,0x61,0x73,
+0x73,0xc3,0,0x26,0x14,0x69,0x72,0x72,0x6f,0x72,1,0x65,0x38,0x69,0x16,0x6e,
+0x67,0x67,0x6c,0x79,0x70,0x68,0xd9,0x40,1,0x10,0x64,0x27,2,0x61,0x32,0x6b,
+0xc3,1,0x6f,0x11,0x63,0x6b,0xc3,1,0x11,0x6e,0x6b,0x7b,0x10,0x67,0xd9,0x40,
+1,6,0x68,0x7c,0x68,0x54,0x69,0x85,0x6f,0xa2,0x6f,0x77,4,0x63,0x30,0x6b,
+0x36,0x6c,0x87,0x74,0x8b,0x75,0x89,1,0x66,0x8d,0x6d,0x8f,0x11,0x63,0x66,0x91,
+0x18,0x61,0x6e,0x67,0x65,0x73,0x77,0x68,0x65,0x6e,4,0x63,0x44,0x6c,0x6c,0x6e,
+0x7e,0x74,0x98,0x75,0x18,0x70,0x70,0x65,0x72,0x63,0x61,0x73,0x65,0x64,0x89,0x12,
+0x61,0x73,0x65,1,0x66,0x30,0x6d,0x14,0x61,0x70,0x70,0x65,0x64,0x8f,0x14,0x6f,
+0x6c,0x64,0x65,0x64,0x8d,0x18,0x6f,0x77,0x65,0x72,0x63,0x61,0x73,0x65,0x64,0x87,
+0x1c,0x66,0x6b,0x63,0x63,0x61,0x73,0x65,0x66,0x6f,0x6c,0x64,0x65,0x64,0x91,0x18,
+0x69,0x74,0x6c,0x65,0x63,0x61,0x73,0x65,0x64,0x8b,0x13,0x6d,0x70,0x65,0x78,0x33,
+0x61,0x2e,0x63,0xa2,0x48,0x66,0xd9,0x40,2,1,0x6e,0x72,0x73,0x10,0x65,3,
+0x64,0x83,0x66,0x3a,0x69,0x4a,0x73,0x17,0x65,0x6e,0x73,0x69,0x74,0x69,0x76,0x65,
+0x65,0x15,0x6f,0x6c,0x64,0x69,0x6e,0x67,0xd9,0x40,2,0x17,0x67,0x6e,0x6f,0x72,
+0x61,0x62,0x6c,0x65,0x85,0x13,0x6f,0x6e,0x69,0x63,0x1f,0x61,0x6c,0x63,0x6f,0x6d,
+0x62,0x69,0x6e,0x69,0x6e,0x67,0x63,0x6c,0x61,0x73,0x73,0xc3,2,0x10,0x63,0xc3,
+2,3,0x61,0x30,0x65,0x34,0x69,0xa2,0x41,0x74,0xc3,3,0x11,0x73,0x68,0x29,
+2,0x63,0x3a,0x66,0x58,0x70,0x2c,0x16,0x72,0x65,0x63,0x61,0x74,0x65,0x64,0x2d,
+0x1d,0x6f,0x6d,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x74,0x79,0x70,0x65,0xc3,
+3,0x15,0x61,0x75,0x6c,0x74,0x69,0x67,0x1f,0x6e,0x6f,0x72,0x61,0x62,0x6c,0x65,
+0x63,0x6f,0x64,0x65,0x70,0x6f,0x69,0x6e,0x74,0x2b,0x2a,0x10,0x61,0x2e,0x15,0x63,
+0x72,0x69,0x74,0x69,0x63,0x2f,3,0x66,0x34,0x6e,0x3e,0x74,0x42,0x79,0x22,0x11,
+0x65,0x73,0x23,0x20,0x13,0x61,0x6c,0x73,0x65,0x21,0x20,0x10,0x6f,0x21,0x22,0x12,
+0x72,0x75,0x65,0x23,0xa,0x6b,0x5b,0x6f,0x23,0x6f,0x3c,0x72,0x4c,0x76,1,0x69,
+0x24,0x72,0x33,0x13,0x72,0x61,0x6d,0x61,0x33,0x10,0x76,0x22,0x14,0x65,0x72,0x6c,
+0x61,0x79,0x23,0xa2,0xe2,0x13,0x69,0x67,0x68,0x74,0xa3,0xe2,0x6b,0x58,0x6c,0x74,
+0x6e,3,0x6b,0x2f,0x6f,0x30,0x72,0x21,0x75,0x12,0x6b,0x74,0x61,0x2f,0x19,0x74,
+0x72,0x65,0x6f,0x72,0x64,0x65,0x72,0x65,0x64,0x21,1,0x61,0x24,0x76,0x31,0x18,
+0x6e,0x61,0x76,0x6f,0x69,0x63,0x69,0x6e,0x67,0x31,0xa2,0xe0,0x12,0x65,0x66,0x74,
+0xa3,0xe0,0x61,0x5c,0x62,0xa2,0x77,0x63,0xa2,0x96,0x64,0xa4,0xa,0x69,1,0x6f,
+0x26,0x73,0xa3,0xf0,0x1a,0x74,0x61,0x73,0x75,0x62,0x73,0x63,0x72,0x69,0x70,0x74,
+0xa3,0xf0,0xa2,0xe6,3,0x62,0xa0,0x6c,0xa3,0xe4,0x72,0xa3,0xe8,0x74,2,0x61,
+0x74,0x62,0x7c,0x74,0x14,0x61,0x63,0x68,0x65,0x64,1,0x61,0x3e,0x62,0x13,0x65,
+0x6c,0x6f,0x77,0xa2,0xca,0x13,0x6c,0x65,0x66,0x74,0xa3,0xc8,0x13,0x62,0x6f,0x76,
+0x65,0xa2,0xd6,0x14,0x72,0x69,0x67,0x68,0x74,0xa3,0xd8,0xa2,0xd6,0x10,0x72,0xa3,
+0xd8,0xa2,0xca,0x10,0x6c,0xa3,0xc8,0x12,0x6f,0x76,0x65,0xa2,0xe6,1,0x6c,0x30,
+0x72,0x13,0x69,0x67,0x68,0x74,0xa3,0xe8,0x12,0x65,0x66,0x74,0xa3,0xe4,0xa2,0xdc,
+2,0x65,0x2c,0x6c,0xa3,0xda,0x72,0xa3,0xde,0x12,0x6c,0x6f,0x77,0xa2,0xdc,1,
+0x6c,0x30,0x72,0x13,0x69,0x67,0x68,0x74,0xa3,0xde,0x12,0x65,0x66,0x74,0xa3,0xda,
+0x11,0x63,0x63,4,0x31,0x3c,0x32,0xa2,0x42,0x33,0xa2,0x56,0x38,0xa2,0x64,0x39,
+0x10,0x31,0xa3,0x5b,9,0x35,0xa,0x35,0x3f,0x36,0x41,0x37,0x43,0x38,0x45,0x39,
+0x47,0x30,0x30,0x31,0x3c,0x32,0x42,0x33,0x4e,0x34,0x3d,0x34,1,0x33,0xa3,0x67,
+0x37,0xa3,0x6b,0x36,0x10,0x38,0xa3,0x76,0x38,1,0x32,0xa3,0x7a,0x39,0xa3,0x81,
+0x3a,2,0x30,0xa3,0x82,0x32,0xa3,0x84,0x33,0xa3,0x85,9,0x35,0xa,0x35,0x53,
+0x36,0x55,0x37,0x57,0x38,0x59,0x39,0x5b,0x30,0x49,0x31,0x4b,0x32,0x4d,0x33,0x4f,
+0x34,0x51,6,0x33,8,0x33,0x63,0x34,0x65,0x35,0x67,0x36,0x69,0x30,0x5d,0x31,
+0x5f,0x32,0x61,0x10,0x34,0xa3,0x54,2,0x61,0xa3,0xea,0x62,0xa3,0xe9,0x6f,0x13,
+0x75,0x62,0x6c,0x65,1,0x61,0x30,0x62,0x13,0x65,0x6c,0x6f,0x77,0xa3,0xe9,0x13,
+0x62,0x6f,0x76,0x65,0xa3,0xea,0xb,0x6e,0xc0,0xca,0x72,0x5f,0x72,0x46,0x73,0xa2,
+0x48,0x77,1,0x68,0x24,0x73,0x33,0x17,0x69,0x74,0x65,0x73,0x70,0x61,0x63,0x65,
+0x33,0x22,1,0x69,0x30,0x6c,2,0x65,0x3d,0x69,0x4b,0x6f,0x3f,0x18,0x67,0x68,
+0x74,0x74,0x6f,0x6c,0x65,0x66,0x74,0x22,2,0x65,0x38,0x69,0x48,0x6f,0x16,0x76,
+0x65,0x72,0x72,0x69,0x64,0x65,0x3f,0x17,0x6d,0x62,0x65,0x64,0x64,0x69,0x6e,0x67,
+0x3d,0x15,0x73,0x6f,0x6c,0x61,0x74,0x65,0x4b,0x30,0x1e,0x65,0x67,0x6d,0x65,0x6e,
+0x74,0x73,0x65,0x70,0x61,0x72,0x61,0x74,0x6f,0x72,0x31,0x6e,0xa2,0x41,0x6f,0xa2,
+0x53,0x70,2,0x61,0x66,0x64,0x86,0x6f,0x1b,0x70,0x64,0x69,0x72,0x65,0x63,0x74,
+0x69,0x6f,0x6e,0x61,0x6c,1,0x66,0x32,0x69,0x15,0x73,0x6f,0x6c,0x61,0x74,0x65,
+0x4d,0x14,0x6f,0x72,0x6d,0x61,0x74,0x41,0x1f,0x72,0x61,0x67,0x72,0x61,0x70,0x68,
+0x73,0x65,0x70,0x61,0x72,0x61,0x74,0x6f,0x72,0x2f,1,0x66,0x41,0x69,0x4d,1,
+0x6f,0x28,0x73,0x10,0x6d,0x43,0x1b,0x6e,0x73,0x70,0x61,0x63,0x69,0x6e,0x67,0x6d,
+0x61,0x72,0x6b,0x43,1,0x6e,0x35,0x74,0x19,0x68,0x65,0x72,0x6e,0x65,0x75,0x74,
+0x72,0x61,0x6c,0x35,0x65,0x88,0x65,0x98,0x66,0xa2,0x6a,0x6c,0x20,1,0x65,0x30,
+0x72,2,0x65,0x37,0x69,0x49,0x6f,0x39,0x18,0x66,0x74,0x74,0x6f,0x72,0x69,0x67,
+0x68,0x74,0x20,2,0x65,0x38,0x69,0x48,0x6f,0x16,0x76,0x65,0x72,0x72,0x69,0x64,
+0x65,0x39,0x17,0x6d,0x62,0x65,0x64,0x64,0x69,0x6e,0x67,0x37,0x15,0x73,0x6f,0x6c,
+0x61,0x74,0x65,0x49,3,0x6e,0x25,0x73,0x27,0x74,0x29,0x75,0x15,0x72,0x6f,0x70,
+0x65,0x61,0x6e,2,0x6e,0x3c,0x73,0x46,0x74,0x18,0x65,0x72,0x6d,0x69,0x6e,0x61,
+0x74,0x6f,0x72,0x29,0x14,0x75,0x6d,0x62,0x65,0x72,0x25,0x17,0x65,0x70,0x61,0x72,
+0x61,0x74,0x6f,0x72,0x27,1,0x69,0x28,0x73,0x10,0x69,0x47,0x1f,0x72,0x73,0x74,
+0x73,0x74,0x72,0x6f,0x6e,0x67,0x69,0x73,0x6f,0x6c,0x61,0x74,0x65,0x47,0x61,0x4e,
+0x62,0x84,0x63,1,0x6f,0x24,0x73,0x2d,0x1c,0x6d,0x6d,0x6f,0x6e,0x73,0x65,0x70,
+0x61,0x72,0x61,0x74,0x6f,0x72,0x2d,2,0x6c,0x3b,0x6e,0x2b,0x72,0x13,0x61,0x62,
+0x69,0x63,1,0x6c,0x30,0x6e,0x14,0x75,0x6d,0x62,0x65,0x72,0x2b,0x14,0x65,0x74,
+0x74,0x65,0x72,0x3b,0x2e,1,0x6e,0x45,0x6f,0x1c,0x75,0x6e,0x64,0x61,0x72,0x79,
+0x6e,0x65,0x75,0x74,0x72,0x61,0x6c,0x45,0,0x16,0x6d,0xc7,0xfe,0x74,0xc1,0xb8,
+0x77,0x57,0x77,0x48,0x79,0x5c,0x7a,0x1d,0x61,0x6e,0x61,0x62,0x61,0x7a,0x61,0x72,
+0x73,0x71,0x75,0x61,0x72,0x65,0xa5,0x18,0x18,0x61,0x72,0x61,0x6e,0x67,0x63,0x69,
+0x74,0x69,0xa3,0xfc,0x10,0x69,2,0x6a,0x3c,0x72,0x68,0x73,0x17,0x79,0x6c,0x6c,
+0x61,0x62,0x6c,0x65,0x73,0xa3,0x48,0x12,0x69,0x6e,0x67,0xa2,0x74,0x1e,0x68,0x65,
+0x78,0x61,0x67,0x72,0x61,0x6d,0x73,0x79,0x6d,0x62,0x6f,0x6c,0x73,0xa3,0x74,0x16,
+0x61,0x64,0x69,0x63,0x61,0x6c,0x73,0xa3,0x49,0x74,0xa2,0x59,0x75,0xa4,0x12,0x76,
+2,0x61,0x36,0x65,0x7a,0x73,0xa2,0x6c,0x12,0x73,0x75,0x70,0xa3,0x7d,1,0x69,
+0xa3,0x9f,0x72,0x1e,0x69,0x61,0x74,0x69,0x6f,0x6e,0x73,0x65,0x6c,0x65,0x63,0x74,
+0x6f,0x72,0x73,0xa2,0x6c,0x19,0x73,0x75,0x70,0x70,0x6c,0x65,0x6d,0x65,0x6e,0x74,
+0xa3,0x7d,1,0x64,0x3c,0x72,0x19,0x74,0x69,0x63,0x61,0x6c,0x66,0x6f,0x72,0x6d,
+0x73,0xa3,0x91,0x14,0x69,0x63,0x65,0x78,0x74,0xa2,0xaf,0x16,0x65,0x6e,0x73,0x69,
+0x6f,0x6e,0x73,0xa3,0xaf,4,0x61,0x68,0x65,0xa2,0x8a,0x68,0xa2,0x8d,0x69,0xa2,
+0x95,0x72,0x1c,0x61,0x6e,0x73,0x70,0x6f,0x72,0x74,0x61,0x6e,0x64,0x6d,0x61,0x70,
+0xa2,0xcf,0x16,0x73,0x79,0x6d,0x62,0x6f,0x6c,0x73,0xa3,0xcf,4,0x67,0x58,0x69,
+0x7e,0x6b,0xa2,0x58,0x6d,0xa2,0x5a,0x6e,0x12,0x67,0x75,0x74,0xa4,0x10,0x19,0x63,
+0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x73,0xa5,0x11,2,0x61,0x2a,0x62,0x32,
+0x73,0xa3,0x60,0x12,0x6c,0x6f,0x67,0xa3,0x62,0x13,0x61,0x6e,0x77,0x61,0xa3,0x65,
+3,0x6c,0x52,0x74,0x56,0x76,0x5e,0x78,0x16,0x75,0x61,0x6e,0x6a,0x69,0x6e,0x67,
+0xa2,0x7c,0x16,0x73,0x79,0x6d,0x62,0x6f,0x6c,0x73,0xa3,0x7c,0x10,0x65,0xa3,0x70,
+0x12,0x68,0x61,0x6d,0xa3,0xae,0x12,0x69,0x65,0x74,0xa3,0xb7,0x11,0x72,0x69,0xa3,
+0xdc,0x11,0x69,0x6c,0x49,0x13,0x6c,0x75,0x67,0x75,0x4b,0x10,0x61,1,0x61,0x24,
+0x69,0x53,0x11,0x6e,0x61,0x3d,2,0x62,0x34,0x66,0x3c,0x72,0x13,0x68,0x75,0x74,
+0x61,0xa3,0xfb,0x13,0x65,0x74,0x61,0x6e,0x57,0x14,0x69,0x6e,0x61,0x67,0x68,0xa3,
+0x90,2,0x63,0x82,0x67,0x92,0x6e,0x1f,0x69,0x66,0x69,0x65,0x64,0x63,0x61,0x6e,
+0x61,0x64,0x69,0x61,0x6e,0x61,0x62,0x6f,0x1f,0x72,0x69,0x67,0x69,0x6e,0x61,0x6c,
+0x73,0x79,0x6c,0x6c,0x61,0x62,0x69,0x63,0x73,0x62,0x17,0x65,0x78,0x74,0x65,0x6e,
+0x64,0x65,0x64,0xa3,0xad,0x11,0x61,0x73,0x62,0x12,0x65,0x78,0x74,0xa3,0xad,0x15,
+0x61,0x72,0x69,0x74,0x69,0x63,0xa3,0x78,0x70,0xc2,0xf5,0x70,0xa6,0xb,0x72,0xa6,
+0xc7,0x73,7,0x6f,0xc1,0x7f,0x6f,0x76,0x70,0xa2,0x47,0x75,0xa2,0x66,0x79,1,
+0x6c,0x4c,0x72,0x12,0x69,0x61,0x63,0x3a,0x12,0x73,0x75,0x70,0xa4,0x17,0x16,0x70,
+0x6c,0x65,0x6d,0x65,0x6e,0x74,0xa5,0x17,0x17,0x6f,0x74,0x69,0x6e,0x61,0x67,0x72,
+0x69,0xa3,0x8f,2,0x67,0x34,0x72,0x3e,0x79,0x13,0x6f,0x6d,0x62,0x6f,0xa5,0x16,
+0x13,0x64,0x69,0x61,0x6e,0xa5,0x23,0x17,0x61,0x73,0x6f,0x6d,0x70,0x65,0x6e,0x67,
+0xa3,0xda,1,0x61,0x32,0x65,0x14,0x63,0x69,0x61,0x6c,0x73,0xa3,0x56,0x12,0x63,
+0x69,0x6e,0x1f,0x67,0x6d,0x6f,0x64,0x69,0x66,0x69,0x65,0x72,0x6c,0x65,0x74,0x74,
+0x65,0x72,0x73,0x2d,2,0x6e,0x48,0x70,0x76,0x74,0x1d,0x74,0x6f,0x6e,0x73,0x69,
+0x67,0x6e,0x77,0x72,0x69,0x74,0x69,0x6e,0x67,0xa5,6,0x15,0x64,0x61,0x6e,0x65,
+0x73,0x65,0xa2,0x9b,0x12,0x73,0x75,0x70,0xa2,0xdb,0x16,0x70,0x6c,0x65,0x6d,0x65,
+0x6e,0x74,0xa3,0xdb,4,0x61,0xa2,0xa8,0x65,0x5c,0x6d,0x9e,0x70,0xa2,0x4b,0x73,
+0x13,0x79,0x6d,0x62,0x6f,0x1f,0x6c,0x73,0x61,0x6e,0x64,0x70,0x69,0x63,0x74,0x6f,
+0x67,0x72,0x61,0x70,0x68,0x73,0xa5,5,0x10,0x72,1,0x61,0x4e,0x73,0x12,0x63,
+0x72,0x69,0x1f,0x70,0x74,0x73,0x61,0x6e,0x64,0x73,0x75,0x62,0x73,0x63,0x72,0x69,
+0x70,0x74,0x73,0x73,0x14,0x6e,0x64,0x73,0x75,0x62,0x73,0x1b,0x61,0x74,0x68,0x6f,
+0x70,0x65,0x72,0x61,0x74,0x6f,0x72,0x73,0xa3,0x6a,1,0x6c,0x40,0x75,1,0x61,
+0x6e,0x6e,0x17,0x63,0x74,0x75,0x61,0x74,0x69,0x6f,0x6e,0xa3,0x8e,0x15,0x65,0x6d,
+0x65,0x6e,0x74,0x61,1,0x6c,0x50,0x72,0x1e,0x79,0x70,0x72,0x69,0x76,0x61,0x74,
+0x65,0x75,0x73,0x65,0x61,0x72,0x65,0x61,1,0x61,0xa3,0x6d,0x62,0xa3,0x6e,3,
+0x61,0x5c,0x6d,0x78,0x70,0xa2,0x41,0x73,0x13,0x79,0x6d,0x62,0x6f,0x1f,0x6c,0x73,
+0x61,0x6e,0x64,0x70,0x69,0x63,0x74,0x6f,0x67,0x72,0x61,0x70,0x68,0x73,0xa5,5,
+0x14,0x72,0x72,0x6f,0x77,0x73,2,0x61,0xa3,0x67,0x62,0xa3,0x68,0x63,0xa3,0xfa,
+0x13,0x61,0x74,0x68,0x65,0x1f,0x6d,0x61,0x74,0x69,0x63,0x61,0x6c,0x6f,0x70,0x65,
+0x72,0x61,0x74,0x6f,0x72,0x73,0xa3,0x6a,0x19,0x75,0x6e,0x63,0x74,0x75,0x61,0x74,
+0x69,0x6f,0x6e,0xa3,0x8e,0x61,0x5a,0x68,0x84,0x69,0xa2,0x5b,0x6d,0x16,0x61,0x6c,
+0x6c,0x66,0x6f,0x72,0x6d,1,0x73,0xa3,0x54,0x76,0x16,0x61,0x72,0x69,0x61,0x6e,
+0x74,0x73,0xa3,0x54,1,0x6d,0x36,0x75,0x16,0x72,0x61,0x73,0x68,0x74,0x72,0x61,
+0xa3,0xa1,0x15,0x61,0x72,0x69,0x74,0x61,0x6e,0xa3,0xac,1,0x61,0x52,0x6f,0x13,
+0x72,0x74,0x68,0x61,0x1f,0x6e,0x64,0x66,0x6f,0x72,0x6d,0x61,0x74,0x63,0x6f,0x6e,
+0x74,0x72,0x6f,0x6c,0x73,0xa3,0xf7,1,0x72,0x2e,0x76,0x12,0x69,0x61,0x6e,0xa3,
+0x79,0x12,0x61,0x64,0x61,0xa3,0xd9,1,0x64,0x50,0x6e,0x13,0x68,0x61,0x6c,0x61,
+0x50,0x1d,0x61,0x72,0x63,0x68,0x61,0x69,0x63,0x6e,0x75,0x6d,0x62,0x65,0x72,0x73,
+0xa3,0xf9,0x13,0x64,0x68,0x61,0x6d,0xa3,0xf8,5,0x72,0x35,0x72,0x44,0x73,0x64,
+0x75,1,0x61,0xa3,0x4e,0x6e,0x17,0x63,0x74,0x75,0x61,0x74,0x69,0x6f,0x6e,0x71,
+0x17,0x69,0x76,0x61,0x74,0x65,0x75,0x73,0x65,0xa2,0x4e,0x13,0x61,0x72,0x65,0x61,
+0xa3,0x4e,0x1b,0x61,0x6c,0x74,0x65,0x72,0x70,0x61,0x68,0x6c,0x61,0x76,0x69,0xa3,
+0xf6,0x61,0x40,0x68,0x82,0x6c,0x19,0x61,0x79,0x69,0x6e,0x67,0x63,0x61,0x72,0x64,
+0x73,0xa3,0xcc,2,0x68,0x38,0x6c,0x4a,0x75,0x15,0x63,0x69,0x6e,0x68,0x61,0x75,
+0xa3,0xf5,0x17,0x61,0x77,0x68,0x68,0x6d,0x6f,0x6e,0x67,0xa3,0xf3,0x15,0x6d,0x79,
+0x72,0x65,0x6e,0x65,0xa3,0xf4,1,0x61,0x8e,0x6f,1,0x65,0x74,0x6e,0x16,0x65,
+0x74,0x69,0x63,0x65,0x78,0x74,0xa2,0x72,1,0x65,0x2c,0x73,0x11,0x75,0x70,0xa3,
+0x8d,0x15,0x6e,0x73,0x69,0x6f,0x6e,0x73,0xa2,0x72,0x19,0x73,0x75,0x70,0x70,0x6c,
+0x65,0x6d,0x65,0x6e,0x74,0xa3,0x8d,0x15,0x6e,0x69,0x63,0x69,0x61,0x6e,0xa3,0x97,
+1,0x67,0x3e,0x69,0x13,0x73,0x74,0x6f,0x73,0xa2,0xa6,0x13,0x64,0x69,0x73,0x63,
+0xa3,0xa6,0x12,0x73,0x70,0x61,0xa3,0x96,1,0x65,0x5c,0x75,1,0x6d,0x2a,0x6e,
+0x11,0x69,0x63,0x67,0x10,0x69,0xa2,0xc0,0x1d,0x6e,0x75,0x6d,0x65,0x72,0x61,0x6c,
+0x73,0x79,0x6d,0x62,0x6f,0x6c,0x73,0xa3,0xc0,0x13,0x6a,0x61,0x6e,0x67,0xa3,0xa3,
+0x6d,0xa2,0xce,0x6e,0xa8,1,0x6f,5,0x70,0x4b,0x70,0x46,0x72,0x7a,0x73,1,
+0x61,0x30,0x6d,0x13,0x61,0x6e,0x79,0x61,0xa3,0x7a,0x11,0x67,0x65,0xa5,0xf,0x18,
+0x74,0x69,0x63,0x61,0x6c,0x63,0x68,0x61,0x72,0x1f,0x61,0x63,0x74,0x65,0x72,0x72,
+0x65,0x63,0x6f,0x67,0x6e,0x69,0x74,0x69,0x6f,0x6e,0x85,1,0x69,0x46,0x6e,0x1e,
+0x61,0x6d,0x65,0x6e,0x74,0x61,0x6c,0x64,0x69,0x6e,0x67,0x62,0x61,0x74,0x73,0xa3,
+0xf2,0x11,0x79,0x61,0x47,0x63,0xa2,0x71,0x67,0xa2,0x71,0x6c,1,0x63,0xa2,0x62,
+0x64,5,0x70,0x38,0x70,0x36,0x73,0x56,0x74,0x14,0x75,0x72,0x6b,0x69,0x63,0xa3,
+0xbf,0x11,0x65,0x72,1,0x6d,0x2e,0x73,0x12,0x69,0x61,0x6e,0xa3,0x8c,0x11,0x69,
+0x63,0xa3,0xf1,0x10,0x6f,1,0x67,0x3a,0x75,0x18,0x74,0x68,0x61,0x72,0x61,0x62,
+0x69,0x61,0x6e,0xa3,0xbb,0x13,0x64,0x69,0x61,0x6e,0xa5,0x22,0x68,0x42,0x69,0x54,
+0x6e,0x1a,0x6f,0x72,0x74,0x68,0x61,0x72,0x61,0x62,0x69,0x61,0x6e,0xa3,0xf0,0x17,
+0x75,0x6e,0x67,0x61,0x72,0x69,0x61,0x6e,0xa5,4,0x14,0x74,0x61,0x6c,0x69,0x63,
+0xa3,0x58,0x13,0x68,0x69,0x6b,0x69,0xa3,0x9d,0x10,0x72,0x85,0x12,0x68,0x61,0x6d,
+0x65,6,0x6f,0x86,0x6f,0x6c,0x72,0xa2,0x61,0x75,0xa2,0x62,0x79,0x14,0x61,0x6e,
+0x6d,0x61,0x72,0x58,0x12,0x65,0x78,0x74,2,0x61,0xa3,0xb6,0x62,0xa3,0xee,0x65,
+0x13,0x6e,0x64,0x65,0x64,1,0x61,0xa3,0xb6,0x62,0xa3,0xee,1,0x64,0x52,0x6e,
+0x15,0x67,0x6f,0x6c,0x69,0x61,0x6e,0x6a,0x12,0x73,0x75,0x70,0xa4,0xd,0x16,0x70,
+0x6c,0x65,0x6d,0x65,0x6e,0x74,0xa5,0xd,0x10,0x69,0xa2,0xec,0x13,0x66,0x69,0x65,
+0x72,1,0x6c,0x3c,0x74,0x19,0x6f,0x6e,0x65,0x6c,0x65,0x74,0x74,0x65,0x72,0x73,
+0xa3,0x8a,0x15,0x65,0x74,0x74,0x65,0x72,0x73,0x2d,0x10,0x6f,0xa3,0xed,1,0x6c,
+0x44,0x73,0x11,0x69,0x63,0xa2,0x5c,0x18,0x61,0x6c,0x73,0x79,0x6d,0x62,0x6f,0x6c,
+0x73,0xa3,0x5c,0x13,0x74,0x61,0x6e,0x69,0xa5,3,0x61,0xa2,0x9b,0x65,0xa4,0x4c,
+0x69,1,0x61,0xa2,0x8f,0x73,0x10,0x63,5,0x70,0x18,0x70,0xa2,0x71,0x73,0x36,
+0x74,0x17,0x65,0x63,0x68,0x6e,0x69,0x63,0x61,0x6c,0x81,0x15,0x79,0x6d,0x62,0x6f,
+0x6c,0x73,0x8f,0x61,0xa2,0x66,0x65,0x46,0x6d,0x19,0x61,0x74,0x68,0x73,0x79,0x6d,
+0x62,0x6f,0x6c,0x73,1,0x61,0xa3,0x66,0x62,0xa3,0x69,0x17,0x6c,0x6c,0x61,0x6e,
+0x65,0x6f,0x75,0x73,2,0x6d,0x3a,0x73,0x6c,0x74,0x17,0x65,0x63,0x68,0x6e,0x69,
+0x63,0x61,0x6c,0x81,0x11,0x61,0x74,0x1f,0x68,0x65,0x6d,0x61,0x74,0x69,0x63,0x61,
+0x6c,0x73,0x79,0x6d,0x62,0x6f,0x6c,0x73,1,0x61,0xa3,0x66,0x62,0xa3,0x69,0x15,
+0x79,0x6d,0x62,0x6f,0x6c,0x73,0x8e,0x12,0x61,0x6e,0x64,1,0x61,0x3c,0x70,0x19,
+0x69,0x63,0x74,0x6f,0x67,0x72,0x61,0x70,0x68,0x73,0xa3,0xcd,0x14,0x72,0x72,0x6f,
+0x77,0x73,0xa3,0x73,0x10,0x6f,0xa3,0xd8,7,0x72,0x6f,0x72,0x44,0x73,0x4e,0x74,
+0x62,0x79,0x19,0x61,0x6e,0x6e,0x75,0x6d,0x65,0x72,0x61,0x6c,0x73,0xa5,0x20,0x13,
+0x63,0x68,0x65,0x6e,0xa5,0xc,0x18,0x61,0x72,0x61,0x6d,0x67,0x6f,0x6e,0x64,0x69,
+0xa5,0x14,0x10,0x68,2,0x61,0x3a,0x65,0x4a,0x6f,0x17,0x70,0x65,0x72,0x61,0x74,
+0x6f,0x72,0x73,0x7f,0x16,0x6c,0x70,0x68,0x61,0x6e,0x75,0x6d,0xa3,0x5d,0x16,0x6d,
+0x61,0x74,0x69,0x63,0x61,0x6c,1,0x61,0x36,0x6f,0x17,0x70,0x65,0x72,0x61,0x74,
+0x6f,0x72,0x73,0x7f,0x11,0x6c,0x70,0x1f,0x68,0x61,0x6e,0x75,0x6d,0x65,0x72,0x69,
+0x63,0x73,0x79,0x6d,0x62,0x6f,0x6c,0x73,0xa3,0x5d,0x68,0x50,0x6b,0x7e,0x6c,0x88,
+0x6e,1,0x64,0x34,0x69,0x15,0x63,0x68,0x61,0x65,0x61,0x6e,0xa3,0xea,0x12,0x61,
+0x69,0x63,0xa3,0xc6,1,0x61,0x3e,0x6a,0x12,0x6f,0x6e,0x67,0xa2,0xaa,0x14,0x74,
+0x69,0x6c,0x65,0x73,0xa3,0xaa,0x13,0x6a,0x61,0x6e,0x69,0xa3,0xe9,0x13,0x61,0x73,
+0x61,0x72,0xa5,0x1f,0x15,0x61,0x79,0x61,0x6c,0x61,0x6d,0x4f,3,0x64,0x6c,0x65,
+0x7e,0x6e,0xa2,0x47,0x72,0x14,0x6f,0x69,0x74,0x69,0x63,1,0x63,0x3c,0x68,0x19,
+0x69,0x65,0x72,0x6f,0x67,0x6c,0x79,0x70,0x68,0x73,0xa3,0xd7,0x15,0x75,0x72,0x73,
+0x69,0x76,0x65,0xa3,0xd6,0x17,0x65,0x66,0x61,0x69,0x64,0x72,0x69,0x6e,0xa5,0x21,
+0x17,0x74,0x65,0x69,0x6d,0x61,0x79,0x65,0x6b,0xa2,0xb8,0x12,0x65,0x78,0x74,0xa2,
+0xd5,0x16,0x65,0x6e,0x73,0x69,0x6f,0x6e,0x73,0xa3,0xd5,0x18,0x64,0x65,0x6b,0x69,
+0x6b,0x61,0x6b,0x75,0x69,0xa3,0xeb,5,0x6b,0x23,0x6b,0x4c,0x6f,0x50,0x75,1,
+0x6d,0x2c,0x73,0x11,0x68,0x75,0xa5,0x15,0x17,0x62,0x65,0x72,0x66,0x6f,0x72,0x6d,
+0x73,0x7b,0x10,0x6f,0xa3,0x92,0x14,0x62,0x6c,0x6f,0x63,0x6b,0x21,0x61,0x44,0x62,
+0x21,0x65,0x10,0x77,1,0x61,0xa5,0xe,0x74,0x14,0x61,0x69,0x6c,0x75,0x65,0xa3,
+0x8b,0x16,0x62,0x61,0x74,0x61,0x65,0x61,0x6e,0xa3,0xef,0x67,0xc4,0xe,0x6a,0xc1,
+0x95,0x6a,0xa2,0xc5,0x6b,0xa2,0xde,0x6c,4,0x61,0x54,0x65,0xa2,0x61,0x69,0xa2,
+0x78,0x6f,0xa2,0xa7,0x79,1,0x63,0x2e,0x64,0x12,0x69,0x61,0x6e,0xa3,0xa9,0x12,
+0x69,0x61,0x6e,0xa3,0xa7,1,0x6f,0x55,0x74,0x11,0x69,0x6e,1,0x31,0x82,0x65,
+0x11,0x78,0x74,4,0x61,0x5c,0x62,0x29,0x63,0xa3,0x94,0x64,0xa3,0x95,0x65,0xa2,
+0xe7,0x13,0x6e,0x64,0x65,0x64,4,0x61,0x36,0x62,0x29,0x63,0xa3,0x94,0x64,0xa3,
+0x95,0x65,0xa3,0xe7,0x26,0x18,0x64,0x64,0x69,0x74,0x69,0x6f,0x6e,0x61,0x6c,0x6d,
+0x24,0x12,0x73,0x75,0x70,0x24,0x16,0x70,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x25,1,
+0x70,0x42,0x74,0x1d,0x74,0x65,0x72,0x6c,0x69,0x6b,0x65,0x73,0x79,0x6d,0x62,0x6f,
+0x6c,0x73,0x79,0x12,0x63,0x68,0x61,0xa3,0x9c,2,0x6d,0x2e,0x6e,0x34,0x73,0x10,
+0x75,0xa3,0xb0,0x11,0x62,0x75,0xa3,0x6f,0x12,0x65,0x61,0x72,1,0x61,0xa3,0xe8,
+0x62,1,0x69,0x38,0x73,0x17,0x79,0x6c,0x6c,0x61,0x62,0x61,0x72,0x79,0xa3,0x75,
+0x17,0x64,0x65,0x6f,0x67,0x72,0x61,0x6d,0x73,0xa3,0x76,0x1a,0x77,0x73,0x75,0x72,
+0x72,0x6f,0x67,0x61,0x74,0x65,0x73,0xa3,0x4d,0x10,0x61,1,0x6d,0x32,0x76,0x14,
+0x61,0x6e,0x65,0x73,0x65,0xa3,0xb5,0x10,0x6f,0x5c,0x12,0x65,0x78,0x74,1,0x61,
+0xa3,0xb4,0x62,0xa3,0xb9,1,0x61,0x80,0x68,3,0x61,0x3c,0x6d,0x4c,0x6f,0x64,
+0x75,0x15,0x64,0x61,0x77,0x61,0x64,0x69,0xa3,0xe6,0x16,0x72,0x6f,0x73,0x68,0x74,
+0x68,0x69,0xa3,0x89,0x11,0x65,0x72,0x68,0x16,0x73,0x79,0x6d,0x62,0x6f,0x6c,0x73,
+0xa3,0x71,0x12,0x6a,0x6b,0x69,0xa3,0xe5,3,0x69,0x3a,0x6e,0x42,0x74,0xa2,0x51,
+0x79,0x13,0x61,0x68,0x6c,0x69,0xa3,0xa2,0x12,0x74,0x68,0x69,0xa3,0xc1,3,0x61,
+0x34,0x62,0x76,0x67,0x7c,0x6e,0x12,0x61,0x64,0x61,0x4d,1,0x65,0x40,0x73,0x11,
+0x75,0x70,0xa2,0xcb,0x16,0x70,0x6c,0x65,0x6d,0x65,0x6e,0x74,0xa3,0xcb,0x11,0x78,
+0x74,1,0x61,0xa5,0x13,0x65,0x14,0x6e,0x64,0x65,0x64,0x61,0xa5,0x13,0x11,0x75,
+0x6e,0xa3,0x42,0x11,0x78,0x69,0x96,0x17,0x72,0x61,0x64,0x69,0x63,0x61,0x6c,0x73,
+0x97,0x14,0x61,0x6b,0x61,0x6e,0x61,0x9e,1,0x65,0x4c,0x70,0x10,0x68,0x1f,0x6f,
+0x6e,0x65,0x74,0x69,0x63,0x65,0x78,0x74,0x65,0x6e,0x73,0x69,0x6f,0x6e,0x73,0xa3,
+0x6b,0x11,0x78,0x74,0xa3,0x6b,0x67,0xa2,0xb5,0x68,0xa4,0x84,0x69,3,0x64,0x4c,
+0x6d,0xa2,0x55,0x6e,0xa2,0x62,0x70,0x13,0x61,0x65,0x78,0x74,0x2a,0x16,0x65,0x6e,
+0x73,0x69,0x6f,0x6e,0x73,0x2b,1,0x63,0x99,0x65,0x17,0x6f,0x67,0x72,0x61,0x70,
+0x68,0x69,0x63,1,0x64,0x56,0x73,0x15,0x79,0x6d,0x62,0x6f,0x6c,0x73,0xa4,0xb,
+0x1d,0x61,0x6e,0x64,0x70,0x75,0x6e,0x63,0x74,0x75,0x61,0x74,0x69,0x6f,0x6e,0xa5,
+0xb,0x13,0x65,0x73,0x63,0x72,0x1f,0x69,0x70,0x74,0x69,0x6f,0x6e,0x63,0x68,0x61,
+0x72,0x61,0x63,0x74,0x65,0x72,0x73,0x99,0x1c,0x70,0x65,0x72,0x69,0x61,0x6c,0x61,
+0x72,0x61,0x6d,0x61,0x69,0x63,0xa3,0xba,1,0x64,0x62,0x73,0x1b,0x63,0x72,0x69,
+0x70,0x74,0x69,0x6f,0x6e,0x61,0x6c,0x70,0x61,1,0x68,0x32,0x72,0x14,0x74,0x68,
+0x69,0x61,0x6e,0xa3,0xbd,0x13,0x6c,0x61,0x76,0x69,0xa3,0xbe,0x11,0x69,0x63,1,
+0x6e,0x3e,0x73,0x1a,0x69,0x79,0x61,0x71,0x6e,0x75,0x6d,0x62,0x65,0x72,0x73,0xa5,
+0x1e,0x19,0x75,0x6d,0x62,0x65,0x72,0x66,0x6f,0x72,0x6d,0x73,0xa3,0xb2,4,0x65,
+0x74,0x6c,0xa2,0x82,0x6f,0xa2,0x9a,0x72,0xa2,0x9e,0x75,2,0x6a,0x34,0x6e,0x3e,
+0x72,0x14,0x6d,0x75,0x6b,0x68,0x69,0x43,0x14,0x61,0x72,0x61,0x74,0x69,0x45,0x18,
+0x6a,0x61,0x6c,0x61,0x67,0x6f,0x6e,0x64,0x69,0xa5,0x1c,1,0x6e,0xa2,0x46,0x6f,
+1,0x6d,0x6e,0x72,0x13,0x67,0x69,0x61,0x6e,0x5a,1,0x65,0x40,0x73,0x11,0x75,
+0x70,0xa2,0x87,0x16,0x70,0x6c,0x65,0x6d,0x65,0x6e,0x74,0xa3,0x87,0x11,0x78,0x74,
+0xa4,0x1b,0x14,0x65,0x6e,0x64,0x65,0x64,0xa5,0x1b,0x1a,0x65,0x74,0x72,0x69,0x63,
+0x73,0x68,0x61,0x70,0x65,0x73,0x8c,0x12,0x65,0x78,0x74,0xa2,0xe3,0x14,0x65,0x6e,
+0x64,0x65,0x64,0xa3,0xe3,0x1e,0x65,0x72,0x61,0x6c,0x70,0x75,0x6e,0x63,0x74,0x75,
+0x61,0x74,0x69,0x6f,0x6e,0x71,0x17,0x61,0x67,0x6f,0x6c,0x69,0x74,0x69,0x63,0xa2,
+0x88,0x12,0x73,0x75,0x70,0xa4,0xa,0x16,0x70,0x6c,0x65,0x6d,0x65,0x6e,0x74,0xa5,
+0xa,0x13,0x74,0x68,0x69,0x63,0xa3,0x59,1,0x61,0x5c,0x65,0x11,0x65,0x6b,0x30,
+1,0x61,0x38,0x65,0x11,0x78,0x74,0x6e,0x14,0x65,0x6e,0x64,0x65,0x64,0x6f,0x17,
+0x6e,0x64,0x63,0x6f,0x70,0x74,0x69,0x63,0x31,0x13,0x6e,0x74,0x68,0x61,0xa3,0xe4,
+2,0x61,0xa2,0x48,0x65,0xa2,0xdf,0x69,1,0x67,0x30,0x72,0x14,0x61,0x67,0x61,
+0x6e,0x61,0x9d,0x10,0x68,1,0x70,0x3a,0x73,0x18,0x75,0x72,0x72,0x6f,0x67,0x61,
+0x74,0x65,0x73,0xa3,0x4b,1,0x72,0x3c,0x75,0x19,0x73,0x75,0x72,0x72,0x6f,0x67,
+0x61,0x74,0x65,0x73,0xa3,0x4c,0x11,0x69,0x76,0x1f,0x61,0x74,0x65,0x75,0x73,0x65,
+0x73,0x75,0x72,0x72,0x6f,0x67,0x61,0x74,0x65,0x73,0xa3,0x4c,2,0x6c,0x32,0x6e,
+0x9a,0x74,0x12,0x72,0x61,0x6e,0xa5,2,0x10,0x66,2,0x61,0x58,0x6d,0x70,0x77,
+0x14,0x69,0x64,0x74,0x68,0x61,0x1f,0x6e,0x64,0x66,0x75,0x6c,0x6c,0x77,0x69,0x64,
+0x74,0x68,0x66,0x6f,0x72,0x6d,0x73,0xa3,0x57,0x1a,0x6e,0x64,0x66,0x75,0x6c,0x6c,
+0x66,0x6f,0x72,0x6d,0x73,0xa3,0x57,0x13,0x61,0x72,0x6b,0x73,0xa3,0x52,2,0x67,
+0x34,0x69,0xa2,0x45,0x75,0x12,0x6e,0x6f,0x6f,0xa3,0x63,0x11,0x75,0x6c,0xa2,0x4a,
+2,0x63,0x3c,0x6a,0x5e,0x73,0x17,0x79,0x6c,0x6c,0x61,0x62,0x6c,0x65,0x73,0xa3,
+0x4a,0x1f,0x6f,0x6d,0x70,0x61,0x74,0x69,0x62,0x69,0x6c,0x69,0x74,0x79,0x6a,0x61,
+0x6d,0x6f,0xa3,0x41,0x12,0x61,0x6d,0x6f,0x5c,0x17,0x65,0x78,0x74,0x65,0x6e,0x64,
+0x65,0x64,1,0x61,0xa3,0xb4,0x62,0xa3,0xb9,0x19,0x66,0x69,0x72,0x6f,0x68,0x69,
+0x6e,0x67,0x79,0x61,0xa5,0x1d,0x13,0x62,0x72,0x65,0x77,0x37,0x61,0xa2,0xe9,0x62,
+0xa6,0x29,0x63,0xa6,0xfe,0x64,0xac,0x8a,0x65,5,0x6d,0xa2,0x6d,0x86,0x6e,0x96,
+0x74,0x15,0x68,0x69,0x6f,0x70,0x69,0x63,0x5e,1,0x65,0x40,0x73,0x11,0x75,0x70,
+0xa2,0x86,0x16,0x70,0x6c,0x65,0x6d,0x65,0x6e,0x74,0xa3,0x86,0x11,0x78,0x74,0xa2,
+0x85,1,0x61,0xa3,0xc8,0x65,0x13,0x6e,0x64,0x65,0x64,0xa2,0x85,0x10,0x61,0xa3,
+0xc8,0x16,0x6f,0x74,0x69,0x63,0x6f,0x6e,0x73,0xa3,0xce,0x15,0x63,0x6c,0x6f,0x73,
+0x65,0x64,2,0x61,0x5a,0x63,0x9e,0x69,0x1c,0x64,0x65,0x6f,0x67,0x72,0x61,0x70,
+0x68,0x69,0x63,0x73,0x75,0x70,0xa2,0xc4,0x16,0x70,0x6c,0x65,0x6d,0x65,0x6e,0x74,
+0xa3,0xc4,0x16,0x6c,0x70,0x68,0x61,0x6e,0x75,0x6d,0x86,1,0x65,0x2c,0x73,0x11,
+0x75,0x70,0xa3,0xc3,0x13,0x72,0x69,0x63,0x73,0x86,0x18,0x75,0x70,0x70,0x6c,0x65,
+0x6d,0x65,0x6e,0x74,0xa3,0xc3,0x11,0x6a,0x6b,0xa2,0x44,0x1f,0x6c,0x65,0x74,0x74,
+0x65,0x72,0x73,0x61,0x6e,0x64,0x6d,0x6f,0x6e,0x74,0x68,0x73,0xa3,0x44,0x61,0x36,
+0x67,0x62,0x6c,0x14,0x62,0x61,0x73,0x61,0x6e,0xa3,0xe2,0x13,0x72,0x6c,0x79,0x64,
+0x1f,0x79,0x6e,0x61,0x73,0x74,0x69,0x63,0x63,0x75,0x6e,0x65,0x69,0x66,0x6f,0x72,
+0x6d,0xa5,1,0x10,0x79,0x1f,0x70,0x74,0x69,0x61,0x6e,0x68,0x69,0x65,0x72,0x6f,
+0x67,0x6c,0x79,0x70,0x68,0x73,0xa3,0xc2,7,0x6e,0xc0,0xe5,0x6e,0x3e,0x72,0xa2,
+0x5d,0x73,0xa2,0xd8,0x76,0x14,0x65,0x73,0x74,0x61,0x6e,0xa3,0xbc,1,0x61,0x92,
+0x63,0x13,0x69,0x65,0x6e,0x74,1,0x67,0x34,0x73,0x15,0x79,0x6d,0x62,0x6f,0x6c,
+0x73,0xa3,0xa5,0x13,0x72,0x65,0x65,0x6b,1,0x6d,0x34,0x6e,0x15,0x75,0x6d,0x62,
+0x65,0x72,0x73,0xa3,0x7f,0x13,0x75,0x73,0x69,0x63,0xa2,0x7e,0x19,0x61,0x6c,0x6e,
+0x6f,0x74,0x61,0x74,0x69,0x6f,0x6e,0xa3,0x7e,0x10,0x74,0x1f,0x6f,0x6c,0x69,0x61,
+0x6e,0x68,0x69,0x65,0x72,0x6f,0x67,0x6c,0x79,0x70,0x68,0x73,0xa3,0xfe,2,0x61,
+0x32,0x6d,0xa2,0x71,0x72,0x12,0x6f,0x77,0x73,0x7d,0x12,0x62,0x69,0x63,0x38,3,
+0x65,0x4a,0x6d,0x66,0x70,0xa2,0x43,0x73,0x11,0x75,0x70,0xa2,0x80,0x16,0x70,0x6c,
+0x65,0x6d,0x65,0x6e,0x74,0xa3,0x80,0x11,0x78,0x74,1,0x61,0xa3,0xd2,0x65,0x14,
+0x6e,0x64,0x65,0x64,0x61,0xa3,0xd2,0x12,0x61,0x74,0x68,0xa2,0xd3,0x18,0x65,0x6d,
+0x61,0x74,0x69,0x63,0x61,0x6c,0x61,0x1f,0x6c,0x70,0x68,0x61,0x62,0x65,0x74,0x69,
+0x63,0x73,0x79,0x6d,0x62,0x6f,0x6c,0x73,0xa3,0xd3,1,0x66,0x42,0x72,0x1e,0x65,
+0x73,0x65,0x6e,0x74,0x61,0x74,0x69,0x6f,0x6e,0x66,0x6f,0x72,0x6d,0x73,1,0x61,
+0xa3,0x51,0x62,0xa3,0x55,0x14,0x65,0x6e,0x69,0x61,0x6e,0x35,0x12,0x63,0x69,0x69,
+0x23,0x64,0x9e,0x65,0xa2,0x42,0x68,0xa2,0x4d,0x6c,1,0x63,0x62,0x70,0x17,0x68,
+0x61,0x62,0x65,0x74,0x69,0x63,0x70,1,0x66,0xa3,0x50,0x72,0x1e,0x65,0x73,0x65,
+0x6e,0x74,0x61,0x74,0x69,0x6f,0x6e,0x66,0x6f,0x72,0x6d,0x73,0xa3,0x50,0x16,0x68,
+0x65,0x6d,0x69,0x63,0x61,0x6c,0xa2,0xd0,0x16,0x73,0x79,0x6d,0x62,0x6f,0x6c,0x73,
+0xa3,0xd0,0x12,0x6c,0x61,0x6d,0xa5,7,0x1a,0x67,0x65,0x61,0x6e,0x6e,0x75,0x6d,
+0x62,0x65,0x72,0x73,0xa3,0x77,0x11,0x6f,0x6d,0xa3,0xfd,7,0x6f,0x71,0x6f,0x64,
+0x72,0xa2,0x41,0x75,0xa2,0x58,0x79,0x1b,0x7a,0x61,0x6e,0x74,0x69,0x6e,0x65,0x6d,
+0x75,0x73,0x69,0x63,0xa2,0x5b,0x18,0x61,0x6c,0x73,0x79,0x6d,0x62,0x6f,0x6c,0x73,
+0xa3,0x5b,1,0x70,0x34,0x78,0x16,0x64,0x72,0x61,0x77,0x69,0x6e,0x67,0x89,0x14,
+0x6f,0x6d,0x6f,0x66,0x6f,0xa0,0x12,0x65,0x78,0x74,0xa2,0x43,0x14,0x65,0x6e,0x64,
+0x65,0x64,0xa3,0x43,0x10,0x61,1,0x68,0x40,0x69,0x12,0x6c,0x6c,0x65,0x92,0x17,
+0x70,0x61,0x74,0x74,0x65,0x72,0x6e,0x73,0x93,0x11,0x6d,0x69,0xa3,0xc9,1,0x67,
+0x2c,0x68,0x11,0x69,0x64,0xa3,0x64,0x14,0x69,0x6e,0x65,0x73,0x65,0xa3,0x81,0x61,
+0x48,0x65,0xa2,0x4e,0x68,0xa2,0x52,0x6c,0x1a,0x6f,0x63,0x6b,0x65,0x6c,0x65,0x6d,
+0x65,0x6e,0x74,0x73,0x8b,3,0x6c,0x34,0x6d,0x40,0x73,0x66,0x74,0x11,0x61,0x6b,
+0xa3,0xc7,0x14,0x69,0x6e,0x65,0x73,0x65,0xa3,0x93,0x11,0x75,0x6d,0xa2,0xb1,0x12,
+0x73,0x75,0x70,0xa2,0xca,0x16,0x70,0x6c,0x65,0x6d,0x65,0x6e,0x74,0xa3,0xca,1,
+0x69,0x30,0x73,0x13,0x61,0x76,0x61,0x68,0xa3,0xdd,0x15,0x63,0x6c,0x61,0x74,0x69,
+0x6e,0x23,0x14,0x6e,0x67,0x61,0x6c,0x69,0x41,0x16,0x61,0x69,0x6b,0x73,0x75,0x6b,
+0x69,0xa5,8,5,0x6f,0xc1,0x4c,0x6f,0xa2,0x55,0x75,0xa4,0x10,0x79,1,0x70,
+0x9c,0x72,0x14,0x69,0x6c,0x6c,0x69,0x63,0x32,1,0x65,0x4c,0x73,0x11,0x75,0x70,
+0xa2,0x61,0x16,0x70,0x6c,0x65,0x6d,0x65,0x6e,0x74,0xa2,0x61,0x12,0x61,0x72,0x79,
+0xa3,0x61,0x11,0x78,0x74,3,0x61,0xa3,0x9e,0x62,0xa3,0xa0,0x63,0xa5,9,0x65,
+0x13,0x6e,0x64,0x65,0x64,2,0x61,0xa3,0x9e,0x62,0xa3,0xa0,0x63,0xa5,9,0x1c,
+0x72,0x69,0x6f,0x74,0x73,0x79,0x6c,0x6c,0x61,0x62,0x61,0x72,0x79,0xa3,0x7b,3,
+0x6d,0x5a,0x6e,0xa2,0x95,0x70,0xa2,0xa0,0x75,0x17,0x6e,0x74,0x69,0x6e,0x67,0x72,
+0x6f,0x64,0xa2,0x9a,0x17,0x6e,0x75,0x6d,0x65,0x72,0x61,0x6c,0x73,0xa3,0x9a,2,
+0x62,0x3a,0x6d,0xa2,0x5f,0x70,0x15,0x61,0x74,0x6a,0x61,0x6d,0x6f,0xa3,0x41,0x14,
+0x69,0x6e,0x69,0x6e,0x67,2,0x64,0x46,0x68,0x9e,0x6d,0x1d,0x61,0x72,0x6b,0x73,
+0x66,0x6f,0x72,0x73,0x79,0x6d,0x62,0x6f,0x6c,0x73,0x77,0x1e,0x69,0x61,0x63,0x72,
+0x69,0x74,0x69,0x63,0x61,0x6c,0x6d,0x61,0x72,0x6b,0x73,0x2e,2,0x65,0x40,0x66,
+0xa6,0x2a,0x73,0x18,0x75,0x70,0x70,0x6c,0x65,0x6d,0x65,0x6e,0x74,0xa3,0x83,0x16,
+0x78,0x74,0x65,0x6e,0x64,0x65,0x64,0xa3,0xe0,0x17,0x61,0x6c,0x66,0x6d,0x61,0x72,
+0x6b,0x73,0xa3,0x52,0x11,0x6f,0x6e,0x1f,0x69,0x6e,0x64,0x69,0x63,0x6e,0x75,0x6d,
+0x62,0x65,0x72,0x66,0x6f,0x72,0x6d,0x73,0xa3,0xb2,0x1b,0x74,0x72,0x6f,0x6c,0x70,
+0x69,0x63,0x74,0x75,0x72,0x65,0x73,0x83,0x12,0x74,0x69,0x63,0xa2,0x84,0x1b,0x65,
+0x70,0x61,0x63,0x74,0x6e,0x75,0x6d,0x62,0x65,0x72,0x73,0xa3,0xdf,1,0x6e,0x3e,
+0x72,0x1b,0x72,0x65,0x6e,0x63,0x79,0x73,0x79,0x6d,0x62,0x6f,0x6c,0x73,0x75,0x15,
+0x65,0x69,0x66,0x6f,0x72,0x6d,0xa2,0x98,0x16,0x6e,0x75,0x6d,0x62,0x65,0x72,0x73,
+0xa2,0x99,0x1d,0x61,0x6e,0x64,0x70,0x75,0x6e,0x63,0x74,0x75,0x61,0x74,0x69,0x6f,
+0x6e,0xa3,0x99,0x61,0xa2,0xdb,0x68,0xa4,5,0x6a,0x10,0x6b,0xa2,0x47,4,0x63,
+0x86,0x65,0xa2,0x7d,0x72,0xa2,0x92,0x73,0xa2,0xa4,0x75,0x1f,0x6e,0x69,0x66,0x69,
+0x65,0x64,0x69,0x64,0x65,0x6f,0x67,0x72,0x61,0x70,0x68,0x73,0xa2,0x47,0x18,0x65,
+0x78,0x74,0x65,0x6e,0x73,0x69,0x6f,0x6e,5,0x64,0x65,0x64,0xa3,0xd1,0x65,0xa5,
+0,0x66,0xa5,0x12,0x14,0x6f,0x6d,0x70,0x61,0x74,0xa2,0x45,1,0x66,0x96,0x69,
+1,0x62,0x44,0x64,0x17,0x65,0x6f,0x67,0x72,0x61,0x70,0x68,0x73,0xa2,0x4f,0x12,
+0x73,0x75,0x70,0xa3,0x5f,0x14,0x69,0x6c,0x69,0x74,0x79,0xa2,0x45,1,0x66,0x54,
+0x69,0x18,0x64,0x65,0x6f,0x67,0x72,0x61,0x70,0x68,0x73,0xa2,0x4f,0x19,0x73,0x75,
+0x70,0x70,0x6c,0x65,0x6d,0x65,0x6e,0x74,0xa3,0x5f,0x13,0x6f,0x72,0x6d,0x73,0xa3,
+0x53,0x11,0x78,0x74,5,0x64,9,0x64,0xa3,0xd1,0x65,0xa5,0,0x66,0xa5,0x12,
+0x61,0xa3,0x46,0x62,0xa3,0x5e,0x63,0xa3,0xc5,0x19,0x61,0x64,0x69,0x63,0x61,0x6c,
+0x73,0x73,0x75,0x70,0x94,0x16,0x70,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x95,1,0x74,
+0x50,0x79,0x14,0x6d,0x62,0x6f,0x6c,0x73,0x9a,0x1d,0x61,0x6e,0x64,0x70,0x75,0x6e,
+0x63,0x74,0x75,0x61,0x74,0x69,0x6f,0x6e,0x9b,0x14,0x72,0x6f,0x6b,0x65,0x73,0xa3,
+0x82,2,0x6e,0x48,0x72,0x64,0x75,0x1d,0x63,0x61,0x73,0x69,0x61,0x6e,0x61,0x6c,
+0x62,0x61,0x6e,0x69,0x61,0x6e,0xa3,0xde,0x1d,0x61,0x64,0x69,0x61,0x6e,0x73,0x79,
+0x6c,0x6c,0x61,0x62,0x69,0x63,0x73,0x63,0x12,0x69,0x61,0x6e,0xa3,0xa8,1,0x61,
+0x6c,0x65,1,0x72,0x38,0x73,0x17,0x73,0x73,0x79,0x6d,0x62,0x6f,0x6c,0x73,0xa5,
+0x19,0x13,0x6f,0x6b,0x65,0x65,0x60,0x12,0x73,0x75,0x70,0xa2,0xff,0x16,0x70,0x6c,
+0x65,0x6d,0x65,0x6e,0x74,0xa3,0xff,1,0x6b,0x26,0x6d,0xa3,0xa4,0x11,0x6d,0x61,
+0xa3,0xd4,3,0x65,0x3e,0x69,0x7e,0x6f,0xa2,0x5d,0x75,0x15,0x70,0x6c,0x6f,0x79,
+0x61,0x6e,0xa3,0xe1,1,0x73,0x50,0x76,0x16,0x61,0x6e,0x61,0x67,0x61,0x72,0x69,
+0x3e,0x12,0x65,0x78,0x74,0xa2,0xb3,0x14,0x65,0x6e,0x64,0x65,0x64,0xa3,0xb3,0x13,
+0x65,0x72,0x65,0x74,0xa3,0x5a,1,0x61,0x30,0x6e,0x14,0x67,0x62,0x61,0x74,0x73,
+0x91,0x18,0x63,0x72,0x69,0x74,0x69,0x63,0x61,0x6c,0x73,0x2e,2,0x65,0x30,0x66,
+0x36,0x73,0x11,0x75,0x70,0xa3,0x83,0x11,0x78,0x74,0xa3,0xe0,0x18,0x6f,0x72,0x73,
+0x79,0x6d,0x62,0x6f,0x6c,0x73,0x77,1,0x67,0x3e,0x6d,0x12,0x69,0x6e,0x6f,0xa2,
+0xab,0x14,0x74,0x69,0x6c,0x65,0x73,0xa3,0xab,0x11,0x72,0x61,0xa5,0x1a,8,0x6d,
+0x5f,0x6d,0x3a,0x6e,0x48,0x73,0x7a,0x76,0xa2,0x4b,0x77,0x12,0x69,0x64,0x65,0x43,
+0x11,0x65,0x64,0x32,0x12,0x69,0x61,0x6c,0x33,2,0x61,0x40,0x62,0x37,0x6f,1,
+0x62,0x28,0x6e,0x10,0x65,0x21,0x13,0x72,0x65,0x61,0x6b,0x37,0x10,0x72,0x34,0x12,
+0x72,0x6f,0x77,0x35,2,0x6d,0x38,0x71,0x46,0x75,1,0x62,0x3d,0x70,0x3e,0x11,
+0x65,0x72,0x3f,1,0x61,0x24,0x6c,0x39,0x11,0x6c,0x6c,0x39,1,0x72,0x3b,0x75,
+0x12,0x61,0x72,0x65,0x3b,0x12,0x65,0x72,0x74,0x40,0x13,0x69,0x63,0x61,0x6c,0x41,
+0x63,0x58,0x65,0x92,0x66,0x96,0x69,1,0x6e,0x36,0x73,0x10,0x6f,0x30,0x14,0x6c,
+0x61,0x74,0x65,0x64,0x31,0x11,0x69,0x74,0x2e,0x12,0x69,0x61,0x6c,0x2f,2,0x61,
+0x36,0x69,0x48,0x6f,0x10,0x6d,0x24,0x12,0x70,0x61,0x74,0x25,0x10,0x6e,0x22,0x15,
+0x6f,0x6e,0x69,0x63,0x61,0x6c,0x23,0x13,0x72,0x63,0x6c,0x65,0x27,0x11,0x6e,0x63,
+0x27,2,0x69,0x3a,0x6f,0x44,0x72,0x10,0x61,0x2c,0x14,0x63,0x74,0x69,0x6f,0x6e,
+0x2d,0x10,0x6e,0x28,0x11,0x61,0x6c,0x29,0x11,0x6e,0x74,0x2b,4,0x61,0x3a,0x66,
+0x4c,0x68,0x5e,0x6e,0x70,0x77,0x2a,0x12,0x69,0x64,0x65,0x2b,0x22,0x17,0x6d,0x62,
+0x69,0x67,0x75,0x6f,0x75,0x73,0x23,0x26,0x17,0x75,0x6c,0x6c,0x77,0x69,0x64,0x74,
+0x68,0x27,0x24,0x17,0x61,0x6c,0x66,0x77,0x69,0x64,0x74,0x68,0x25,0x20,1,0x61,
+0x30,0x65,0x14,0x75,0x74,0x72,0x61,0x6c,0x21,0x28,0x13,0x72,0x72,0x6f,0x77,0x29,
+0xd,0x6e,0xc0,0xfb,0x73,0x6d,0x73,0x3a,0x74,0x98,0x75,0xa2,0x49,0x7a,2,0x6c,
+0x3b,0x70,0x3d,0x73,0x39,5,0x6f,0x28,0x6f,0x57,0x70,0x34,0x75,0x16,0x72,0x72,
+0x6f,0x67,0x61,0x74,0x65,0x45,0x11,0x61,0x63,1,0x65,0x32,0x69,0x15,0x6e,0x67,
+0x6d,0x61,0x72,0x6b,0x31,0x18,0x73,0x65,0x70,0x61,0x72,0x61,0x74,0x6f,0x72,0x39,
+0x63,0x53,0x6b,0x55,0x6d,0x51,0x1d,0x69,0x74,0x6c,0x65,0x63,0x61,0x73,0x65,0x6c,
+0x65,0x74,0x74,0x65,0x72,0x27,1,0x6e,0x40,0x70,0x1c,0x70,0x65,0x72,0x63,0x61,
+0x73,0x65,0x6c,0x65,0x74,0x74,0x65,0x72,0x23,0x17,0x61,0x73,0x73,0x69,0x67,0x6e,
+0x65,0x64,0x21,0x6e,0x8a,0x6f,0xa2,0x47,0x70,8,0x66,0x14,0x66,0x5b,0x69,0x59,
+0x6f,0x4f,0x72,0x24,0x73,0x49,0x17,0x69,0x76,0x61,0x74,0x65,0x75,0x73,0x65,0x43,
+0x61,0x2c,0x63,0x4d,0x64,0x47,0x65,0x4b,0x1f,0x72,0x61,0x67,0x72,0x61,0x70,0x68,
+0x73,0x65,0x70,0x61,0x72,0x61,0x74,0x6f,0x72,0x3d,2,0x64,0x33,0x6c,0x35,0x6f,
+0x36,0x1b,0x6e,0x73,0x70,0x61,0x63,0x69,0x6e,0x67,0x6d,0x61,0x72,0x6b,0x2d,1,
+0x70,0x7c,0x74,0x12,0x68,0x65,0x72,3,0x6c,0x38,0x6e,0x42,0x70,0x4c,0x73,0x14,
+0x79,0x6d,0x62,0x6f,0x6c,0x57,0x14,0x65,0x74,0x74,0x65,0x72,0x2b,0x14,0x75,0x6d,
+0x62,0x65,0x72,0x37,0x19,0x75,0x6e,0x63,0x74,0x75,0x61,0x74,0x69,0x6f,0x6e,0x4f,
+0x1c,0x65,0x6e,0x70,0x75,0x6e,0x63,0x74,0x75,0x61,0x74,0x69,0x6f,0x6e,0x49,0x66,
+0x9e,0x66,0x88,0x69,0xa2,0x4b,0x6c,0xa2,0x5c,0x6d,4,0x61,0x60,0x63,0x31,0x65,
+0x2f,0x6e,0x2d,0x6f,0x15,0x64,0x69,0x66,0x69,0x65,0x72,1,0x6c,0x30,0x73,0x14,
+0x79,0x6d,0x62,0x6f,0x6c,0x55,0x14,0x65,0x74,0x74,0x65,0x72,0x29,0x17,0x74,0x68,
+0x73,0x79,0x6d,0x62,0x6f,0x6c,0x51,1,0x69,0x2e,0x6f,0x13,0x72,0x6d,0x61,0x74,
+0x41,0x1d,0x6e,0x61,0x6c,0x70,0x75,0x6e,0x63,0x74,0x75,0x61,0x74,0x69,0x6f,0x6e,
+0x5b,0x10,0x6e,0x1f,0x69,0x74,0x69,0x61,0x6c,0x70,0x75,0x6e,0x63,0x74,0x75,0x61,
+0x74,0x69,0x6f,0x6e,0x59,6,0x6d,0x18,0x6d,0x29,0x6f,0x28,0x74,0x27,0x75,0x23,
+0x2a,0x1c,0x77,0x65,0x72,0x63,0x61,0x73,0x65,0x6c,0x65,0x74,0x74,0x65,0x72,0x25,
+0x65,0x28,0x69,0x3c,0x6c,0x25,0x19,0x74,0x74,0x65,0x72,0x6e,0x75,0x6d,0x62,0x65,
+0x72,0x35,0x1a,0x6e,0x65,0x73,0x65,0x70,0x61,0x72,0x61,0x74,0x6f,0x72,0x3b,0x63,
+0x44,0x64,0xa2,0x60,0x65,0x1b,0x6e,0x63,0x6c,0x6f,0x73,0x69,0x6e,0x67,0x6d,0x61,
+0x72,0x6b,0x2f,6,0x6e,0x39,0x6e,0x46,0x6f,0x4e,0x73,0x45,0x75,0x1b,0x72,0x72,
+0x65,0x6e,0x63,0x79,0x73,0x79,0x6d,0x62,0x6f,0x6c,0x53,0x20,0x12,0x74,0x72,0x6c,
+0x3f,0x42,0x10,0x6e,1,0x6e,0x2c,0x74,0x12,0x72,0x6f,0x6c,0x3f,0x1f,0x65,0x63,
+0x74,0x6f,0x72,0x70,0x75,0x6e,0x63,0x74,0x75,0x61,0x74,0x69,0x6f,0x6e,0x4d,0x63,
+0x3f,0x66,0x41,0x6c,0x1d,0x6f,0x73,0x65,0x70,0x75,0x6e,0x63,0x74,0x75,0x61,0x74,
+0x69,0x6f,0x6e,0x4b,2,0x61,0x30,0x65,0x4a,0x69,0x12,0x67,0x69,0x74,0x33,0x1c,
+0x73,0x68,0x70,0x75,0x6e,0x63,0x74,0x75,0x61,0x74,0x69,0x6f,0x6e,0x47,0x1a,0x63,
+0x69,0x6d,0x61,0x6c,0x6e,0x75,0x6d,0x62,0x65,0x72,0x33,0,0x12,0x6d,0xc2,0x3f,
+0x73,0xa1,0x73,0x4e,0x74,0xa2,0x56,0x77,0xa2,0x72,0x79,0xa2,0x73,0x7a,1,0x61,
+0x2c,0x68,0x12,0x61,0x69,0x6e,0x8b,0x11,0x69,0x6e,0x85,5,0x74,0x22,0x74,0x38,
+0x77,0x4c,0x79,0x16,0x72,0x69,0x61,0x63,0x77,0x61,0x77,0x6f,0x18,0x72,0x61,0x69,
+0x67,0x68,0x74,0x77,0x61,0x77,0xa3,0x55,0x15,0x61,0x73,0x68,0x6b,0x61,0x66,0x6d,
+0x61,0x2e,0x65,0x38,0x68,0x11,0x69,0x6e,0x6b,0x10,0x64,0x62,0x11,0x68,0x65,0x65,
+1,0x65,0x2e,0x6d,0x13,0x6b,0x61,0x74,0x68,0x69,0x10,0x6e,0x67,1,0x61,0x4e,
+0x65,1,0x68,0x28,0x74,0x10,0x68,0x77,0x16,0x6d,0x61,0x72,0x62,0x75,0x74,0x61,
+0x74,0x13,0x67,0x6f,0x61,0x6c,0x3d,1,0x68,0x71,0x77,0x73,0x11,0x61,0x77,0x79,
+1,0x65,0x32,0x75,0x11,0x64,0x68,0x80,0x11,0x68,0x65,0x83,0x10,0x68,0x7a,1,
+0x62,0x34,0x77,0x16,0x69,0x74,0x68,0x74,0x61,0x69,0x6c,0x7f,0x14,0x61,0x72,0x72,
+0x65,0x65,0x7d,0x6d,0x6c,0x6e,0xa4,0x6b,0x70,0xa4,0x88,0x71,0xa4,0x88,0x72,1,
+0x65,0x38,0x6f,0x18,0x68,0x69,0x6e,0x67,0x79,0x61,0x79,0x65,0x68,0x93,1,0x68,
+0x5f,0x76,0x16,0x65,0x72,0x73,0x65,0x64,0x70,0x65,0x61,2,0x61,0x2e,0x65,0xa4,
+0x3e,0x69,0x10,0x6d,0x53,1,0x6c,0xa2,0xe7,0x6e,0x16,0x69,0x63,0x68,0x61,0x65,
+0x61,0x6e,0,0x12,0x6e,0x76,0x73,0x51,0x73,0x3e,0x74,0x5c,0x77,0xa0,0x79,0xa2,
+0x42,0x7a,0x13,0x61,0x79,0x69,0x6e,0xa3,0x54,0x10,0x61,1,0x64,0x2e,0x6d,0x12,
+0x65,0x6b,0x68,0xa3,0x4c,0x11,0x68,0x65,0xa3,0x4b,3,0x61,0x38,0x65,0x3c,0x68,
+0x4a,0x77,0x13,0x65,0x6e,0x74,0x79,0xa3,0x51,0x10,0x77,0xa3,0x4d,1,0x6e,0xa3,
+0x4e,0x74,0x10,0x68,0xa3,0x4f,0x14,0x61,0x6d,0x65,0x64,0x68,0xa3,0x50,0x11,0x61,
+0x77,0xa3,0x52,0x12,0x6f,0x64,0x68,0xa3,0x53,0x6e,0x3a,0x6f,0x40,0x70,0x46,0x71,
+0x4a,0x72,0x12,0x65,0x73,0x68,0xa3,0x4a,0x11,0x75,0x6e,0xa3,0x46,0x11,0x6e,0x65,
+0xa3,0x47,0x10,0x65,0xa3,0x48,0x12,0x6f,0x70,0x68,0xa3,0x49,0x67,0x33,0x67,0x38,
+0x68,0x40,0x6b,0x5e,0x6c,0x66,0x6d,0x11,0x65,0x6d,0xa3,0x45,0x13,0x69,0x6d,0x65,
+0x6c,0xa1,1,0x65,0x32,0x75,0x14,0x6e,0x64,0x72,0x65,0x64,0xa3,0x42,0x11,0x74,
+0x68,0xa3,0x41,0x12,0x61,0x70,0x68,0xa3,0x43,0x14,0x61,0x6d,0x65,0x64,0x68,0xa3,
+0x44,0x61,0x34,0x62,0x4a,0x64,0x50,0x66,0x12,0x69,0x76,0x65,0x9f,1,0x6c,0x2a,
+0x79,0x11,0x69,0x6e,0x97,0x12,0x65,0x70,0x68,0x95,0x12,0x65,0x74,0x68,0x99,1,
+0x61,0x30,0x68,0x14,0x61,0x6d,0x65,0x64,0x68,0x9d,0x13,0x6c,0x65,0x74,0x68,0x9b,
+0x15,0x61,0x79,0x61,0x6c,0x61,0x6d,6,0x6e,0x2c,0x6e,0x34,0x72,0x5e,0x73,0x62,
+0x74,0x11,0x74,0x61,0xa3,0x63,2,0x67,0x2e,0x6e,0x32,0x79,0x10,0x61,0xa3,0x60,
+0x10,0x61,0xa3,0x5d,1,0x61,0xa3,0x5e,0x6e,0x10,0x61,0xa3,0x5f,0x10,0x61,0xa3,
+0x61,0x11,0x73,0x61,0xa3,0x62,0x62,0x3c,0x6a,0x42,0x6c,0x10,0x6c,1,0x61,0xa3,
+0x5b,0x6c,0x10,0x61,0xa3,0x5c,0x11,0x68,0x61,0xa3,0x59,0x10,0x61,0xa3,0x5a,0x11,
+0x65,0x6d,0x51,2,0x6f,0x2c,0x75,0x50,0x79,0x10,0x61,0x91,1,0x6a,0x28,0x6f,
+0x10,0x6e,0x55,0x1a,0x6f,0x69,0x6e,0x69,0x6e,0x67,0x67,0x72,0x6f,0x75,0x70,0x21,
+0x10,0x6e,0x57,0x10,0x65,0x59,0x10,0x61,1,0x66,0x5b,0x70,0x10,0x68,0x5d,0x66,
+0x9a,0x66,0x42,0x67,0x7a,0x68,0x8a,0x6b,0xa2,0x75,0x6c,0x11,0x61,0x6d,0x4c,0x12,
+0x61,0x64,0x68,0x4f,2,0x61,0x3e,0x65,0x4a,0x69,0x19,0x6e,0x61,0x6c,0x73,0x65,
+0x6d,0x6b,0x61,0x74,0x68,0x35,0x15,0x72,0x73,0x69,0x79,0x65,0x68,0x8f,0x86,0x10,
+0x68,0x33,0x10,0x61,1,0x66,0x37,0x6d,0x11,0x61,0x6c,0x39,1,0x61,0x40,0x65,
+0x3e,1,0x68,0x28,0x74,0x10,0x68,0x45,0x40,0x13,0x67,0x6f,0x61,0x6c,0x43,2,
+0x68,0x3b,0x6d,0x5c,0x6e,0x1a,0x69,0x66,0x69,0x72,0x6f,0x68,0x69,0x6e,0x67,0x79,
+0x61,1,0x6b,0x2a,0x70,0x10,0x61,0xa3,0x65,0x15,0x69,0x6e,0x6e,0x61,0x79,0x61,
+0xa3,0x64,0x1a,0x7a,0x61,0x6f,0x6e,0x68,0x65,0x68,0x67,0x6f,0x61,0x6c,0x3d,2,
+0x61,0x3a,0x68,0x44,0x6e,0x17,0x6f,0x74,0x74,0x65,0x64,0x68,0x65,0x68,0x4b,1,
+0x66,0x47,0x70,0x10,0x68,0x49,0x12,0x61,0x70,0x68,0x89,0x61,0x2e,0x62,0x8a,0x64,
+0xa2,0x51,0x65,0x31,2,0x66,0x3c,0x69,0x70,0x6c,1,0x61,0x28,0x65,0x10,0x66,
+0x27,0x11,0x70,0x68,0x25,0x14,0x72,0x69,0x63,0x61,0x6e,2,0x66,0x30,0x6e,0x36,
+0x71,0x11,0x61,0x66,0xa3,0x58,0x11,0x65,0x68,0xa3,0x56,0x12,0x6f,0x6f,0x6e,0xa3,
+0x57,0x10,0x6e,0x23,1,0x65,0x4a,0x75,0x10,0x72,0x1f,0x75,0x73,0x68,0x61,0x73,
+0x6b,0x69,0x79,0x65,0x68,0x62,0x61,0x72,0x72,0x65,0x65,0x8d,1,0x68,0x29,0x74,
+0x10,0x68,0x2b,0x11,0x61,0x6c,0x2c,0x16,0x61,0x74,0x68,0x72,0x69,0x73,0x68,0x2f,
+7,0x6e,0x2e,0x6e,0x2c,0x72,0x3e,0x74,0x56,0x75,0x21,0x18,0x6f,0x6e,0x6a,0x6f,
+0x69,0x6e,0x69,0x6e,0x67,0x21,0x28,0x1a,0x69,0x67,0x68,0x74,0x6a,0x6f,0x69,0x6e,
+0x69,0x6e,0x67,0x29,0x2a,0x19,0x72,0x61,0x6e,0x73,0x70,0x61,0x72,0x65,0x6e,0x74,
+0x2b,0x63,0x23,0x64,0x40,0x6a,0x56,0x6c,0x26,0x19,0x65,0x66,0x74,0x6a,0x6f,0x69,
+0x6e,0x69,0x6e,0x67,0x27,0x24,0x19,0x75,0x61,0x6c,0x6a,0x6f,0x69,0x6e,0x69,0x6e,
+0x67,0x25,0x19,0x6f,0x69,0x6e,0x63,0x61,0x75,0x73,0x69,0x6e,0x67,0x23,0,0x13,
+0x6e,0xc0,0xd0,0x73,0x49,0x73,0x48,0x75,0x78,0x77,0x84,0x78,0x9c,0x7a,0x10,0x77,
+0x58,1,0x6a,0x75,0x73,0x13,0x70,0x61,0x63,0x65,0x59,4,0x61,0x51,0x67,0x53,
+0x70,0x28,0x75,0x30,0x79,0x57,0x54,0x12,0x61,0x63,0x65,0x55,0x16,0x72,0x72,0x6f,
+0x67,0x61,0x74,0x65,0x53,0x15,0x6e,0x6b,0x6e,0x6f,0x77,0x6e,0x21,1,0x6a,0x5d,
+0x6f,0x17,0x72,0x64,0x6a,0x6f,0x69,0x6e,0x65,0x72,0x5d,0x10,0x78,0x21,0x6e,0x60,
+0x6f,0xa2,0x41,0x70,0xa2,0x50,0x71,0xa2,0x6e,0x72,1,0x65,0x24,0x69,0x6f,0x1e,
+0x67,0x69,0x6f,0x6e,0x61,0x6c,0x69,0x6e,0x64,0x69,0x63,0x61,0x74,0x6f,0x72,0x6f,
+4,0x65,0x3e,0x6c,0x5b,0x6f,0x46,0x73,0x45,0x75,0x46,0x14,0x6d,0x65,0x72,0x69,
+0x63,0x47,0x15,0x78,0x74,0x6c,0x69,0x6e,0x65,0x5b,0x17,0x6e,0x73,0x74,0x61,0x72,
+0x74,0x65,0x72,0x45,0x10,0x70,0x48,0x1c,0x65,0x6e,0x70,0x75,0x6e,0x63,0x74,0x75,
+0x61,0x74,0x69,0x6f,0x6e,0x49,1,0x6f,0x3e,0x72,0x4c,0x1a,0x65,0x66,0x69,0x78,
+0x6e,0x75,0x6d,0x65,0x72,0x69,0x63,0x4d,0x4a,0x1b,0x73,0x74,0x66,0x69,0x78,0x6e,
+0x75,0x6d,0x65,0x72,0x69,0x63,0x4b,0x10,0x75,0x4e,0x16,0x6f,0x74,0x61,0x74,0x69,
+0x6f,0x6e,0x4f,0x68,0x7b,0x68,0x50,0x69,0x86,0x6a,0xa2,0x61,0x6c,0xa2,0x65,0x6d,
+0x1c,0x61,0x6e,0x64,0x61,0x74,0x6f,0x72,0x79,0x62,0x72,0x65,0x61,0x6b,0x2d,4,
+0x32,0x5f,0x33,0x61,0x65,0x34,0x6c,0x6d,0x79,0x3a,0x13,0x70,0x68,0x65,0x6e,0x3b,
+0x19,0x62,0x72,0x65,0x77,0x6c,0x65,0x74,0x74,0x65,0x72,0x6d,2,0x64,0x28,0x6e,
+0x3c,0x73,0x41,0x3c,0x18,0x65,0x6f,0x67,0x72,0x61,0x70,0x68,0x69,0x63,0x3d,0x3e,
+1,0x66,0x3e,0x73,0x11,0x65,0x70,1,0x61,0x22,0x65,0x14,0x72,0x61,0x62,0x6c,
+0x65,0x3f,0x18,0x69,0x78,0x6e,0x75,0x6d,0x65,0x72,0x69,0x63,0x41,2,0x6c,0x63,
+0x74,0x65,0x76,0x67,1,0x66,0x43,0x69,0x15,0x6e,0x65,0x66,0x65,0x65,0x64,0x43,
+0x61,0x40,0x62,0x70,0x63,0xa2,0x55,0x65,0xa2,0xdb,0x67,0x10,0x6c,0x38,0x11,0x75,
+0x65,0x39,2,0x69,0x23,0x6c,0x34,0x6d,0x16,0x62,0x69,0x67,0x75,0x6f,0x75,0x73,
+0x23,0x24,0x17,0x70,0x68,0x61,0x62,0x65,0x74,0x69,0x63,0x25,4,0x32,0x27,0x61,
+0x29,0x62,0x2b,0x6b,0x2d,0x72,0x12,0x65,0x61,0x6b,2,0x61,0x36,0x62,0x3e,0x73,
+0x15,0x79,0x6d,0x62,0x6f,0x6c,0x73,0x57,0x13,0x66,0x74,0x65,0x72,0x29,1,0x65,
+0x2a,0x6f,0x11,0x74,0x68,0x27,0x13,0x66,0x6f,0x72,0x65,0x2b,7,0x6d,0x51,0x6d,
+0x33,0x6f,0x28,0x70,0x69,0x72,0x35,1,0x6d,0x76,0x6e,1,0x64,0x3c,0x74,0x1a,
+0x69,0x6e,0x67,0x65,0x6e,0x74,0x62,0x72,0x65,0x61,0x6b,0x2f,0x15,0x69,0x74,0x69,
+0x6f,0x6e,0x61,0x1f,0x6c,0x6a,0x61,0x70,0x61,0x6e,0x65,0x73,0x65,0x73,0x74,0x61,
+0x72,0x74,0x65,0x72,0x6b,1,0x62,0x3a,0x70,0x19,0x6c,0x65,0x78,0x63,0x6f,0x6e,
+0x74,0x65,0x78,0x74,0x51,0x18,0x69,0x6e,0x69,0x6e,0x67,0x6d,0x61,0x72,0x6b,0x33,
+0x61,0x6a,0x62,0x2f,0x6a,0x6b,0x6c,0x30,0x13,0x6f,0x73,0x65,0x70,1,0x61,0x38,
+0x75,0x18,0x6e,0x63,0x74,0x75,0x61,0x74,0x69,0x6f,0x6e,0x31,0x18,0x72,0x65,0x6e,
+0x74,0x68,0x65,0x73,0x69,0x73,0x69,0x1b,0x72,0x72,0x69,0x61,0x67,0x65,0x72,0x65,
+0x74,0x75,0x72,0x6e,0x35,2,0x62,0x3e,0x6d,0x46,0x78,0x36,0x18,0x63,0x6c,0x61,
+0x6d,0x61,0x74,0x69,0x6f,0x6e,0x37,0x70,0x12,0x61,0x73,0x65,0x71,0x72,0x16,0x6f,
+0x64,0x69,0x66,0x69,0x65,0x72,0x73,1,0x64,0x42,0x6e,1,0x6f,0x32,0x75,0x26,
+0x14,0x6d,0x65,0x72,0x69,0x63,0x27,0x11,0x6e,0x65,0x21,1,0x65,0x2e,0x69,0x24,
+0x12,0x67,0x69,0x74,0x25,0x22,0x14,0x63,0x69,0x6d,0x61,0x6c,0x23,0,0x18,0x6e,
+0xc3,0xe6,0x74,0xc1,0x51,0x77,0x7a,0x77,0xa2,0x4c,0x78,0xa2,0x60,0x79,0xa2,0x6a,
+0x7a,6,0x73,0x1e,0x73,0x34,0x78,0x42,0x79,0x48,0x7a,0x11,0x7a,0x7a,0xa3,0x67,
+0x10,0x79,1,0x65,0xa3,0xae,0x6d,0xa3,0x81,0x11,0x78,0x78,0xa3,0x66,0x11,0x79,
+0x79,0x21,0x61,0x30,0x69,0x58,0x6d,0x11,0x74,0x68,0xa3,0x80,0x10,0x6e,1,0x61,
+0x26,0x62,0xa3,0xb1,0x1a,0x62,0x61,0x7a,0x61,0x72,0x73,0x71,0x75,0x61,0x72,0x65,
+0xa3,0xb1,0x11,0x6e,0x68,0x23,1,0x61,0x2c,0x6f,0x11,0x6c,0x65,0xa3,0x9b,0x11,
+0x72,0x61,0xa2,0x92,0x15,0x6e,0x67,0x63,0x69,0x74,0x69,0xa3,0x92,1,0x70,0x2c,
+0x73,0x11,0x75,0x78,0xa3,0x65,0x11,0x65,0x6f,0x9b,0x10,0x69,0x72,0x11,0x69,0x69,
+0x73,0x74,0x4a,0x75,0xa2,0xba,0x76,1,0x61,0x2c,0x69,0x11,0x73,0x70,0xa3,0x64,
+0x10,0x69,0xa2,0x63,0x10,0x69,0xa3,0x63,5,0x67,0x36,0x67,0x68,0x68,0x6c,0x69,
+2,0x62,0x3a,0x66,0x4a,0x72,0x10,0x68,0xa2,0x9e,0x12,0x75,0x74,0x61,0xa3,0x9e,
+1,0x65,0x24,0x74,0x6f,0x12,0x74,0x61,0x6e,0x6f,0x14,0x69,0x6e,0x61,0x67,0x68,
+0x99,0x11,0x6c,0x67,0x75,0x10,0x61,1,0x61,0x24,0x69,0x6d,0x6a,0x11,0x6e,0x61,
+0x6b,0x61,0x30,0x65,0xa2,0x5b,0x66,0x11,0x6e,0x67,0x99,6,0x6c,0x21,0x6c,0x32,
+0x6d,0x38,0x6e,0x44,0x76,0x10,0x74,0xa3,0x7f,1,0x65,0x89,0x75,0x97,1,0x69,
+0x24,0x6c,0x67,0x10,0x6c,0x67,0x10,0x67,0xa2,0x9a,0x11,0x75,0x74,0xa3,0x9a,0x67,
+0x36,0x69,0x52,0x6b,0x10,0x72,0xa2,0x99,0x10,0x69,0xa3,0x99,1,0x61,0x30,0x62,
+0x7a,0x13,0x61,0x6e,0x77,0x61,0x7b,0x12,0x6c,0x6f,0x67,0x75,2,0x6c,0x32,0x74,
+0x34,0x76,0x12,0x69,0x65,0x74,0xa3,0x7f,0x10,0x65,0x89,0x12,0x68,0x61,0x6d,0xa3,
+0x6a,1,0x6c,0x2a,0x6e,0x10,0x67,0xa3,0x62,0x10,0x75,0x68,0x11,0x67,0x75,0x69,
+1,0x67,0x32,0x6e,0x14,0x6b,0x6e,0x6f,0x77,0x6e,0xa3,0x67,0x11,0x61,0x72,0x8a,
+0x13,0x69,0x74,0x69,0x63,0x8b,0x71,0xc1,0x13,0x71,0xa2,0xde,0x72,0xa2,0xe3,0x73,
+6,0x69,0x8a,0x69,0x72,0x6f,0xa2,0x4c,0x75,0xa2,0x75,0x79,1,0x6c,0x46,0x72,
+4,0x63,0x65,0x65,0xa3,0x5f,0x69,0x2c,0x6a,0xa3,0x60,0x6e,0xa3,0x61,0x11,0x61,
+0x63,0x65,0x10,0x6f,0x94,0x16,0x74,0x69,0x6e,0x61,0x67,0x72,0x69,0x95,2,0x64,
+0x3c,0x67,0x4c,0x6e,1,0x64,0xa3,0x91,0x68,0x62,0x12,0x61,0x6c,0x61,0x63,0x10,
+0x64,0xa2,0xa6,0x12,0x68,0x61,0x6d,0xa3,0xa6,0x17,0x6e,0x77,0x72,0x69,0x74,0x69,
+0x6e,0x67,0xa3,0x70,2,0x67,0x3a,0x72,0x52,0x79,0x10,0x6f,0xa2,0xb0,0x12,0x6d,
+0x62,0x6f,0xa3,0xb0,1,0x64,0x26,0x6f,0xa3,0xb8,0xa2,0xb7,0x12,0x69,0x61,0x6e,
+0xa3,0xb7,0x10,0x61,0xa2,0x98,0x16,0x73,0x6f,0x6d,0x70,0x65,0x6e,0x67,0xa3,0x98,
+0x11,0x6e,0x64,0xa2,0x71,0x14,0x61,0x6e,0x65,0x73,0x65,0xa3,0x71,0x61,0x5c,0x67,
+0xa2,0x43,0x68,1,0x61,0x2a,0x72,0x10,0x64,0xa3,0x97,2,0x72,0x28,0x76,0x30,
+0x77,0x87,0x12,0x61,0x64,0x61,0xa3,0x97,0x12,0x69,0x61,0x6e,0x87,2,0x6d,0x40,
+0x72,0x58,0x75,0x10,0x72,0xa2,0x6f,0x15,0x61,0x73,0x68,0x74,0x72,0x61,0xa3,0x6f,
+1,0x61,0x26,0x72,0xa3,0x7e,0x14,0x72,0x69,0x74,0x61,0x6e,0xa3,0x7e,1,0x61,
+0xa3,0x5e,0x62,0xa3,0x85,0x11,0x6e,0x77,0xa3,0x70,0x11,0x61,0x61,1,0x63,0x2f,
+0x69,0x23,3,0x65,0x3e,0x6a,0x48,0x6f,0x4e,0x75,0x10,0x6e,1,0x69,0x24,0x72,
+0x61,0x10,0x63,0x61,0x13,0x6a,0x61,0x6e,0x67,0xa3,0x6e,0x11,0x6e,0x67,0xa3,0x6e,
+1,0x68,0x2a,0x72,0x10,0x6f,0xa3,0x5d,0x10,0x67,0xa3,0xb6,0x6e,0xa2,0x83,0x6f,
+0xa2,0xca,0x70,5,0x6c,0x1e,0x6c,0x44,0x72,0x4a,0x73,0x1b,0x61,0x6c,0x74,0x65,
+0x72,0x70,0x61,0x68,0x6c,0x61,0x76,0x69,0xa3,0x7b,0x11,0x72,0x64,0xa3,0x5c,0x11,
+0x74,0x69,0xa3,0x7d,0x61,0x7c,0x65,0xa2,0x54,0x68,3,0x61,0x3e,0x6c,0x4e,0x6e,
+0x5e,0x6f,0x16,0x65,0x6e,0x69,0x63,0x69,0x61,0x6e,0xa3,0x5b,0x10,0x67,0xa2,0x5a,
+0x12,0x73,0x70,0x61,0xa3,0x5a,2,0x69,0xa3,0x7a,0x70,0xa3,0x7b,0x76,0xa3,0x7c,
+0x10,0x78,0xa3,0x5b,2,0x68,0x3e,0x6c,0x50,0x75,0x10,0x63,0xa2,0xa5,0x14,0x69,
+0x6e,0x68,0x61,0x75,0xa3,0xa5,0x17,0x61,0x77,0x68,0x68,0x6d,0x6f,0x6e,0x67,0xa3,
+0x4b,0x10,0x6d,0xa2,0x90,0x14,0x79,0x72,0x65,0x6e,0x65,0xa3,0x90,0x11,0x72,0x6d,
+0xa3,0x59,5,0x6b,0x1e,0x6b,0x32,0x73,0x4a,0x75,0x12,0x73,0x68,0x75,0xa3,0x96,
+1,0x67,0x2e,0x6f,0xa2,0x57,0x10,0x6f,0xa3,0x57,0x10,0x62,0xa3,0x84,0x11,0x68,
+0x75,0xa3,0x96,0x61,0x42,0x62,0x60,0x65,0x10,0x77,1,0x61,0xa3,0xaa,0x74,0x14,
+0x61,0x69,0x6c,0x75,0x65,0x97,1,0x62,0x2a,0x72,0x10,0x62,0xa3,0x8e,0x15,0x61,
+0x74,0x61,0x65,0x61,0x6e,0xa3,0x8f,0x11,0x61,0x74,0xa3,0x8f,3,0x67,0x5a,0x6c,
+0x6c,0x72,0xa2,0x93,0x73,2,0x61,0x36,0x67,0x3c,0x6d,0x10,0x61,0x84,0x12,0x6e,
+0x79,0x61,0x85,0x11,0x67,0x65,0xa3,0xab,0x10,0x65,0xa3,0xab,1,0x61,0x2a,0x68,
+0x11,0x61,0x6d,0x5b,0x10,0x6d,0x5b,1,0x63,0xa2,0x60,0x64,5,0x70,0x37,0x70,
+0x36,0x73,0x54,0x74,0x14,0x75,0x72,0x6b,0x69,0x63,0xa3,0x58,0x11,0x65,0x72,1,
+0x6d,0x2c,0x73,0x12,0x69,0x61,0x6e,0x9b,0x11,0x69,0x63,0xa3,0x59,0x10,0x6f,1,
+0x67,0x3a,0x75,0x18,0x74,0x68,0x61,0x72,0x61,0x62,0x69,0x61,0x6e,0xa3,0x85,0x13,
+0x64,0x69,0x61,0x6e,0xa3,0xb8,0x68,0x42,0x69,0x54,0x6e,0x1a,0x6f,0x72,0x74,0x68,
+0x61,0x72,0x61,0x62,0x69,0x61,0x6e,0xa3,0x8e,0x17,0x75,0x6e,0x67,0x61,0x72,0x69,
+0x61,0x6e,0xa3,0x4c,0x14,0x74,0x61,0x6c,0x69,0x63,0x5d,1,0x68,0x26,0x6b,0xa3,
+0x6d,0x12,0x69,0x6b,0x69,0xa3,0x6d,2,0x69,0x2c,0x6b,0x30,0x79,0x10,0x61,0x5f,
+0x11,0x79,0x61,0x5f,0x10,0x68,0xa3,0x58,0x68,0xc2,0xef,0x6b,0xc2,0xa,0x6b,0xa4,
+0x17,0x6c,0xa4,0x98,0x6d,8,0x6f,0x46,0x6f,0x48,0x72,0x74,0x74,0x80,0x75,0x86,
+0x79,1,0x61,0x28,0x6d,0x10,0x72,0x59,0x13,0x6e,0x6d,0x61,0x72,0x59,2,0x64,
+0x2e,0x6e,0x32,0x6f,0x10,0x6e,0xa3,0x72,0x10,0x69,0xa3,0xa3,0x10,0x67,0x56,0x14,
+0x6f,0x6c,0x69,0x61,0x6e,0x57,0x10,0x6f,0xa2,0x95,0x10,0x6f,0xa3,0x95,0x11,0x65,
+0x69,0xa3,0x73,0x11,0x6c,0x74,0xa2,0xa4,0x12,0x61,0x6e,0x69,0xa3,0xa4,0x61,0x36,
+0x65,0xa2,0x67,0x69,0xa2,0xbd,0x6c,0x11,0x79,0x6d,0x55,6,0x6e,0x38,0x6e,0x32,
+0x72,0x5c,0x73,0x6c,0x79,0x10,0x61,0xa3,0x55,1,0x64,0x38,0x69,0xa2,0x79,0x15,
+0x63,0x68,0x61,0x65,0x61,0x6e,0xa3,0x79,0xa2,0x54,0x12,0x61,0x69,0x63,0xa3,0x54,
+0x10,0x63,0xa2,0xa9,0x12,0x68,0x65,0x6e,0xa3,0xa9,0x18,0x61,0x72,0x61,0x6d,0x67,
+0x6f,0x6e,0x64,0x69,0xa3,0xaf,0x68,0x36,0x6b,0x4c,0x6c,0x15,0x61,0x79,0x61,0x6c,
+0x61,0x6d,0x55,1,0x61,0x26,0x6a,0xa3,0xa0,0x13,0x6a,0x61,0x6e,0x69,0xa3,0xa0,
+0x10,0x61,0xa2,0xb4,0x12,0x73,0x61,0x72,0xa3,0xb4,3,0x64,0x78,0x65,0x94,0x6e,
+0xa2,0x42,0x72,1,0x63,0xa3,0x8d,0x6f,0xa2,0x56,0x13,0x69,0x74,0x69,0x63,1,
+0x63,0x3c,0x68,0x19,0x69,0x65,0x72,0x6f,0x67,0x6c,0x79,0x70,0x68,0x73,0xa3,0x56,
+0x15,0x75,0x72,0x73,0x69,0x76,0x65,0xa3,0x8d,1,0x65,0x26,0x66,0xa3,0xb5,0x16,
+0x66,0x61,0x69,0x64,0x72,0x69,0x6e,0xa3,0xb5,0x17,0x74,0x65,0x69,0x6d,0x61,0x79,
+0x65,0x6b,0xa3,0x73,0x10,0x64,0xa2,0x8c,0x17,0x65,0x6b,0x69,0x6b,0x61,0x6b,0x75,
+0x69,0xa3,0x8c,0x11,0x61,0x6f,0xa3,0x5c,5,0x6f,0x14,0x6f,0x30,0x70,0x36,0x74,
+0x11,0x68,0x69,0xa3,0x78,0x11,0x72,0x65,0xa3,0x77,0x11,0x65,0x6c,0xa3,0x8a,0x61,
+0x2e,0x68,0x98,0x6e,0x11,0x64,0x61,0x4b,4,0x69,0x3c,0x6c,0x44,0x6e,0x48,0x74,
+0x56,0x79,0x13,0x61,0x68,0x6c,0x69,0xa3,0x4f,0x12,0x74,0x68,0x69,0xa3,0x78,0x10,
+0x69,0xa3,0x4f,1,0x61,0x4d,0x6e,0x12,0x61,0x64,0x61,0x4b,0x14,0x61,0x6b,0x61,
+0x6e,0x61,0x4c,0x19,0x6f,0x72,0x68,0x69,0x72,0x61,0x67,0x61,0x6e,0x61,0x8d,3,
+0x61,0x3c,0x6d,0x4e,0x6f,0x5a,0x75,0x15,0x64,0x61,0x77,0x61,0x64,0x69,0xa3,0x91,
+0x10,0x72,0x92,0x15,0x6f,0x73,0x68,0x74,0x68,0x69,0x93,1,0x65,0x24,0x72,0x4f,
+0x10,0x72,0x4f,0x10,0x6a,0xa2,0x9d,0x11,0x6b,0x69,0xa3,0x9d,4,0x61,0x5c,0x65,
+0x90,0x69,0xa0,0x6f,0xa2,0x5d,0x79,1,0x63,0x34,0x64,0x10,0x69,0xa2,0x6c,0x11,
+0x61,0x6e,0xa3,0x6c,0x10,0x69,0xa2,0x6b,0x11,0x61,0x6e,0xa3,0x6b,2,0x6e,0x42,
+0x6f,0x46,0x74,3,0x66,0xa3,0x50,0x67,0xa3,0x51,0x69,0x24,0x6e,0x53,0x10,0x6e,
+0x53,0x10,0x61,0xa3,0x6a,0x50,0x10,0x6f,0x51,0x11,0x70,0x63,0xa2,0x52,0x11,0x68,
+0x61,0xa3,0x52,2,0x6d,0x2e,0x6e,0x36,0x73,0x10,0x75,0xa3,0x83,0x10,0x62,0x80,
+0x10,0x75,0x81,2,0x61,0xa3,0x53,0x62,0x83,0x65,0x11,0x61,0x72,1,0x61,0xa3,
+0x53,0x62,0x83,0x11,0x6d,0x61,0xa3,0x8b,0x68,0x6e,0x69,0xa2,0x91,0x6a,2,0x61,
+0x30,0x70,0x52,0x75,0x11,0x72,0x63,0xa3,0x94,1,0x6d,0x38,0x76,0x10,0x61,0xa2,
+0x4e,0x13,0x6e,0x65,0x73,0x65,0xa3,0x4e,0x10,0x6f,0xa3,0xad,0x11,0x61,0x6e,0xa3,
+0x69,6,0x6c,0x1a,0x6c,0x34,0x6d,0x3a,0x72,0x40,0x75,0x11,0x6e,0x67,0xa3,0x4c,
+0x11,0x75,0x77,0xa3,0x9c,0x11,0x6e,0x67,0xa3,0x4b,0x11,0x6b,0x74,0x8d,0x61,0x3c,
+0x65,0xa2,0x43,0x69,0x11,0x72,0x61,0x48,0x13,0x67,0x61,0x6e,0x61,0x49,1,0x6e,
+0x34,0x74,0x10,0x72,0xa2,0xa2,0x11,0x61,0x6e,0xa3,0xa2,0x42,6,0x6f,0xe,0x6f,
+0x77,0x73,0xa3,0x49,0x74,0xa3,0x4a,0x75,0x12,0x6e,0x6f,0x6f,0x77,0x62,0xa3,0xac,
+0x67,0x3e,0x69,0x42,0x19,0x66,0x69,0x72,0x6f,0x68,0x69,0x6e,0x67,0x79,0x61,0xa3,
+0xb6,0x44,0x11,0x75,0x6c,0x45,0x11,0x62,0x72,0x46,0x11,0x65,0x77,0x47,2,0x6d,
+0x2e,0x6e,0x4a,0x74,0x11,0x61,0x6c,0x5d,0x1c,0x70,0x65,0x72,0x69,0x61,0x6c,0x61,
+0x72,0x61,0x6d,0x61,0x69,0x63,0xa3,0x74,2,0x64,0x66,0x68,0x6a,0x73,0x1b,0x63,
+0x72,0x69,0x70,0x74,0x69,0x6f,0x6e,0x61,0x6c,0x70,0x61,1,0x68,0x32,0x72,0x14,
+0x74,0x68,0x69,0x61,0x6e,0xa3,0x7d,0x13,0x6c,0x61,0x76,0x69,0xa3,0x7a,0x10,0x73,
+0xa3,0x4d,0x15,0x65,0x72,0x69,0x74,0x65,0x64,0x23,0x64,0xc0,0xec,0x64,0xa2,0x7a,
+0x65,0xa2,0xad,0x67,4,0x65,0x82,0x6c,0x9a,0x6f,0xa2,0x46,0x72,0xa2,0x55,0x75,
+2,0x6a,0x3c,0x6e,0x4e,0x72,1,0x6d,0x24,0x75,0x41,0x13,0x75,0x6b,0x68,0x69,
+0x41,1,0x61,0x24,0x72,0x3f,0x13,0x72,0x61,0x74,0x69,0x3f,0x18,0x6a,0x61,0x6c,
+0x61,0x67,0x6f,0x6e,0x64,0x69,0xa3,0xb3,0x10,0x6f,1,0x6b,0xa3,0x48,0x72,0x38,
+0x13,0x67,0x69,0x61,0x6e,0x39,0x11,0x61,0x67,0x90,0x15,0x6f,0x6c,0x69,0x74,0x69,
+0x63,0x91,1,0x6e,0x30,0x74,0x10,0x68,0x3a,0x11,0x69,0x63,0x3b,1,0x67,0xa3,
+0xb3,0x6d,0xa3,0xaf,1,0x61,0x32,0x65,1,0x65,0x24,0x6b,0x3d,0x10,0x6b,0x3d,
+0x10,0x6e,0xa2,0x89,0x12,0x74,0x68,0x61,0xa3,0x89,3,0x65,0x42,0x6f,0x68,0x73,
+0x76,0x75,0x11,0x70,0x6c,0xa2,0x87,0x13,0x6f,0x79,0x61,0x6e,0xa3,0x87,1,0x73,
+0x38,0x76,0x10,0x61,0x34,0x15,0x6e,0x61,0x67,0x61,0x72,0x69,0x35,0x13,0x65,0x72,
+0x65,0x74,0x33,0x11,0x67,0x72,0xa2,0xb2,0x10,0x61,0xa3,0xb2,0x11,0x72,0x74,0x33,
+2,0x67,0x3a,0x6c,0x72,0x74,0x11,0x68,0x69,0x36,0x13,0x6f,0x70,0x69,0x63,0x37,
+0x10,0x79,2,0x64,0xa3,0x45,0x68,0xa3,0x46,0x70,0xa2,0x47,0x1e,0x74,0x69,0x61,
+0x6e,0x68,0x69,0x65,0x72,0x6f,0x67,0x6c,0x79,0x70,0x68,0x73,0xa3,0x47,0x11,0x62,
+0x61,0xa2,0x88,0x12,0x73,0x61,0x6e,0xa3,0x88,0x61,0xa2,0xa2,0x62,0xa4,7,0x63,
+6,0x6f,0x3d,0x6f,0x5a,0x70,0x76,0x75,0x7a,0x79,1,0x70,0x3e,0x72,2,0x69,
+0x2a,0x6c,0x31,0x73,0xa3,0x44,0x13,0x6c,0x6c,0x69,0x63,0x31,0x13,0x72,0x69,0x6f,
+0x74,0x7f,1,0x6d,0x30,0x70,0x10,0x74,0x2e,0x11,0x69,0x63,0x2f,0x12,0x6d,0x6f,
+0x6e,0x21,0x11,0x72,0x74,0x7f,0x16,0x6e,0x65,0x69,0x66,0x6f,0x72,0x6d,0xa3,0x65,
+0x61,0x32,0x68,0xa2,0x41,0x69,0x11,0x72,0x74,0xa3,0x43,3,0x6b,0x4c,0x6e,0x50,
+0x72,0x76,0x75,0x1d,0x63,0x61,0x73,0x69,0x61,0x6e,0x61,0x6c,0x62,0x61,0x6e,0x69,
+0x61,0x6e,0xa3,0x9f,0x10,0x6d,0xa3,0x76,1,0x61,0x24,0x73,0x71,0x1d,0x64,0x69,
+0x61,0x6e,0x61,0x62,0x6f,0x72,0x69,0x67,0x69,0x6e,0x61,0x6c,0x71,0x10,0x69,0xa2,
+0x68,0x11,0x61,0x6e,0xa3,0x68,1,0x61,0x34,0x65,0x10,0x72,0x2c,0x13,0x6f,0x6b,
+0x65,0x65,0x2d,1,0x6b,0x26,0x6d,0xa3,0x42,0x11,0x6d,0x61,0xa3,0x76,6,0x68,
+0x4a,0x68,0x48,0x6e,0x4e,0x72,0x76,0x76,1,0x65,0x2a,0x73,0x10,0x74,0xa3,0x75,
+0x13,0x73,0x74,0x61,0x6e,0xa3,0x75,0x11,0x6f,0x6d,0xa3,0xa1,0x11,0x61,0x74,0x1f,
+0x6f,0x6c,0x69,0x61,0x6e,0x68,0x69,0x65,0x72,0x6f,0x67,0x6c,0x79,0x70,0x68,0x73,
+0xa3,0x9c,1,0x61,0x3e,0x6d,2,0x65,0x2a,0x69,0xa3,0x74,0x6e,0x27,0x13,0x6e,
+0x69,0x61,0x6e,0x27,0x10,0x62,0x24,0x11,0x69,0x63,0x25,0x64,0x30,0x66,0x44,0x67,
+0x11,0x68,0x62,0xa3,0x9f,0x10,0x6c,1,0x61,0x26,0x6d,0xa3,0xa7,0x10,0x6d,0xa3,
+0xa7,0x11,0x61,0x6b,0xa3,0x93,6,0x6c,0x3c,0x6c,0x52,0x6f,0x56,0x72,0x66,0x75,
+1,0x67,0x30,0x68,1,0x64,0x79,0x69,0x10,0x64,0x79,0x10,0x69,0x8e,0x13,0x6e,
+0x65,0x73,0x65,0x8f,0x11,0x69,0x73,0xa1,0x11,0x70,0x6f,0x2a,0x13,0x6d,0x6f,0x66,
+0x6f,0x2b,0x10,0x61,1,0x68,0x2e,0x69,0x7c,0x12,0x6c,0x6c,0x65,0x7d,0xa2,0x41,
+0x11,0x6d,0x69,0xa3,0x41,0x61,0x48,0x65,0x9c,0x68,1,0x61,0x2a,0x6b,0x10,0x73,
+0xa3,0xa8,0x15,0x69,0x6b,0x73,0x75,0x6b,0x69,0xa3,0xa8,3,0x6c,0x3a,0x6d,0x48,
+0x73,0x54,0x74,1,0x61,0x24,0x6b,0x9f,0x10,0x6b,0x9f,0x10,0x69,0x9c,0x13,0x6e,
+0x65,0x73,0x65,0x9d,0x10,0x75,0xa2,0x82,0x10,0x6d,0xa3,0x82,0x10,0x73,0xa2,0x86,
+0x13,0x61,0x76,0x61,0x68,0xa3,0x86,0x11,0x6e,0x67,0x28,0x12,0x61,0x6c,0x69,0x29,
+3,0x6c,0x42,0x6e,0x90,0x74,0xa2,0x46,0x76,0x24,0x17,0x6f,0x77,0x65,0x6c,0x6a,
+0x61,0x6d,0x6f,0x25,0x22,1,0x65,0x54,0x76,0x28,1,0x73,0x38,0x74,0x2a,0x17,
+0x73,0x79,0x6c,0x6c,0x61,0x62,0x6c,0x65,0x2b,0x16,0x79,0x6c,0x6c,0x61,0x62,0x6c,
+0x65,0x29,0x18,0x61,0x64,0x69,0x6e,0x67,0x6a,0x61,0x6d,0x6f,0x23,1,0x61,0x21,
+0x6f,0x1a,0x74,0x61,0x70,0x70,0x6c,0x69,0x63,0x61,0x62,0x6c,0x65,0x21,0x26,0x1a,
+0x72,0x61,0x69,0x6c,0x69,0x6e,0x67,0x6a,0x61,0x6d,0x6f,0x27,1,0x6e,0x2c,0x79,
+0x22,0x11,0x65,0x73,0x23,0x20,0x10,0x6f,0x21,1,0x6e,0x2c,0x79,0x22,0x11,0x65,
+0x73,0x23,0x20,0x10,0x6f,0x21,2,0x6d,0x30,0x6e,0x3a,0x79,0x22,0x11,0x65,0x73,
+0x23,0x24,0x13,0x61,0x79,0x62,0x65,0x25,0x20,0x10,0x6f,0x21,2,0x6d,0x30,0x6e,
 0x3a,0x79,0x22,0x11,0x65,0x73,0x23,0x24,0x13,0x61,0x79,0x62,0x65,0x25,0x20,0x10,
-0x6f,0x21,2,0x6d,0x30,0x6e,0x3a,0x79,0x22,0x11,0x65,0x73,0x23,0x24,0x13,0x61,
-0x79,0x62,0x65,0x25,0x20,0x10,0x6f,0x21,0xb,0x72,0x39,0x76,0xc,0x76,0x33,0x78,
-0x2a,0x7a,0x11,0x77,0x6a,0x43,0x10,0x78,0x21,0x72,0x28,0x73,0x50,0x74,0x31,1,
-0x65,0x24,0x69,0x39,0x1e,0x67,0x69,0x6f,0x6e,0x61,0x6c,0x69,0x6e,0x64,0x69,0x63,
-0x61,0x74,0x6f,0x72,0x39,1,0x6d,0x35,0x70,0x18,0x61,0x63,0x69,0x6e,0x67,0x6d,
-0x61,0x72,0x6b,0x35,0x6c,0x1f,0x6c,0x3c,0x6f,0x4a,0x70,1,0x70,0x37,0x72,0x14,
-0x65,0x70,0x65,0x6e,0x64,0x37,0x28,1,0x66,0x2b,0x76,0x2c,0x10,0x74,0x2f,0x13,
-0x74,0x68,0x65,0x72,0x21,0x63,0x4c,0x65,0x64,0x67,1,0x61,0x3a,0x6c,0x19,0x75,
-0x65,0x61,0x66,0x74,0x65,0x72,0x7a,0x77,0x6a,0x41,0x10,0x7a,0x41,2,0x6e,0x23,
-0x6f,0x24,0x72,0x25,0x14,0x6e,0x74,0x72,0x6f,0x6c,0x23,2,0x62,0x34,0x6d,0x4e,
-0x78,0x26,0x13,0x74,0x65,0x6e,0x64,0x27,0x3a,1,0x61,0x24,0x67,0x3d,0x11,0x73,
-0x65,0x3a,0x12,0x67,0x61,0x7a,0x3d,0x3e,0x16,0x6f,0x64,0x69,0x66,0x69,0x65,0x72,
-0x3f,9,0x6e,0x4a,0x6e,0x34,0x6f,0x44,0x73,0x60,0x75,0x94,0x78,0x10,0x78,0x21,
-0x10,0x75,0x2a,0x14,0x6d,0x65,0x72,0x69,0x63,0x2b,1,0x6c,0x2c,0x74,0x12,0x68,
-0x65,0x72,0x21,0x14,0x65,0x74,0x74,0x65,0x72,0x2d,3,0x63,0x36,0x65,0x46,0x70,
-0x31,0x74,0x32,0x12,0x65,0x72,0x6d,0x33,0x3c,0x16,0x6f,0x6e,0x74,0x69,0x6e,0x75,
-0x65,0x3d,0x2e,0x10,0x70,0x2f,0x10,0x70,0x34,0x12,0x70,0x65,0x72,0x35,0x61,0x46,
-0x63,0x52,0x65,0x64,0x66,0x72,0x6c,2,0x65,0x2d,0x66,0x3b,0x6f,0x28,0x12,0x77,
-0x65,0x72,0x29,0x10,0x74,0x22,0x12,0x65,0x72,0x6d,0x23,1,0x6c,0x24,0x72,0x37,
-0x24,0x12,0x6f,0x73,0x65,0x25,0x10,0x78,0x38,0x13,0x74,0x65,0x6e,0x64,0x39,0x10,
-0x6f,0x26,0x13,0x72,0x6d,0x61,0x74,0x27,0,0x10,0x6c,0x88,0x72,0x40,0x72,0x36,
-0x73,0x5e,0x77,0x7a,0x78,0x8a,0x7a,0x11,0x77,0x6a,0x4b,1,0x65,0x24,0x69,0x3b,
-0x1e,0x67,0x69,0x6f,0x6e,0x61,0x6c,0x69,0x6e,0x64,0x69,0x63,0x61,0x74,0x6f,0x72,
-0x3b,1,0x69,0x24,0x71,0x3f,0x18,0x6e,0x67,0x6c,0x65,0x71,0x75,0x6f,0x74,0x65,
-0x3f,0x17,0x73,0x65,0x67,0x73,0x70,0x61,0x63,0x65,0x4d,0x10,0x78,0x21,0x6c,0x36,
-0x6d,0x3c,0x6e,0x76,0x6f,0x13,0x74,0x68,0x65,0x72,0x21,1,0x65,0x23,0x66,0x35,
-3,0x62,0x37,0x69,0x28,0x6c,0x29,0x6e,0x2b,0x10,0x64,1,0x6c,0x34,0x6e,0x11,
-0x75,0x6d,0x2a,0x12,0x6c,0x65,0x74,0x37,0x14,0x65,0x74,0x74,0x65,0x72,0x29,2,
-0x65,0x36,0x6c,0x39,0x75,0x2c,0x14,0x6d,0x65,0x72,0x69,0x63,0x2d,0x14,0x77,0x6c,
-0x69,0x6e,0x65,0x39,0x66,0x3f,0x66,0x40,0x67,0x4e,0x68,0x70,0x6b,0x10,0x61,0x26,
-0x15,0x74,0x61,0x6b,0x61,0x6e,0x61,0x27,0x10,0x6f,0x24,0x13,0x72,0x6d,0x61,0x74,
-0x25,1,0x61,0x3a,0x6c,0x19,0x75,0x65,0x61,0x66,0x74,0x65,0x72,0x7a,0x77,0x6a,
-0x49,0x10,0x7a,0x49,1,0x65,0x24,0x6c,0x3d,0x19,0x62,0x72,0x65,0x77,0x6c,0x65,
-0x74,0x74,0x65,0x72,0x3d,0x61,0x86,0x63,0x92,0x64,0x94,0x65,2,0x62,0x44,0x6d,
-0x5e,0x78,0x2e,0x13,0x74,0x65,0x6e,0x64,0x32,0x15,0x6e,0x75,0x6d,0x6c,0x65,0x74,
-0x2f,0x42,1,0x61,0x24,0x67,0x45,0x11,0x73,0x65,0x42,0x12,0x67,0x61,0x7a,0x45,
-0x46,0x16,0x6f,0x64,0x69,0x66,0x69,0x65,0x72,0x47,0x15,0x6c,0x65,0x74,0x74,0x65,
-0x72,0x23,0x10,0x72,0x31,1,0x6f,0x24,0x71,0x41,0x18,0x75,0x62,0x6c,0x65,0x71,
-0x75,0x6f,0x74,0x65,0x41,2,0x63,0x32,0x6e,0x3c,0x6f,0x22,0x12,0x70,0x65,0x6e,
-0x23,0x24,0x13,0x6c,0x6f,0x73,0x65,0x25,0x20,0x12,0x6f,0x6e,0x65,0x21,0xd,0x6e,
-0xc1,0x86,0x73,0xa8,0x73,0x4c,0x74,0xa2,0x76,0x75,0xa2,0x83,0x7a,0xd8,0x70,0,
-2,0x6c,0xd9,0x20,0,0x70,0xd9,0x40,0,0x73,0xc3,0,0xfe,0xf,0,0,
-0,7,0x6f,0x3c,0x6f,0xff,8,0,0,0,0x70,0x3a,0x75,0x6e,0x79,0x13,
-0x6d,0x62,0x6f,0x6c,0xff,0xf,0,0,0,0x11,0x61,0x63,1,0x65,0x34,0x69,
-0x15,0x6e,0x67,0x6d,0x61,0x72,0x6b,0xa5,0,0x18,0x73,0x65,0x70,0x61,0x72,0x61,
-0x74,0x6f,0x72,0xc3,0,0x16,0x72,0x72,0x6f,0x67,0x61,0x74,0x65,0xe1,0,0,
-0x63,0xff,2,0,0,0,0x65,0x38,0x6b,0xff,4,0,0,0,0x6d,0xff,
-1,0,0,0,0x16,0x70,0x61,0x72,0x61,0x74,0x6f,0x72,0xd9,0x70,0,0x1d,
-0x69,0x74,0x6c,0x65,0x63,0x61,0x73,0x65,0x6c,0x65,0x74,0x74,0x65,0x72,0x31,1,
-0x6e,0x40,0x70,0x1c,0x70,0x65,0x72,0x63,0x61,0x73,0x65,0x6c,0x65,0x74,0x74,0x65,
-0x72,0x25,0x17,0x61,0x73,0x73,0x69,0x67,0x6e,0x65,0x64,0x23,0x6e,0xa2,0x69,0x6f,
-0xa2,0x89,0x70,0xfe,0x30,0xf8,0,0,9,0x69,0x33,0x69,0xff,0x10,0,0,
-0,0x6f,0xfd,0x80,0,0,0x72,0x54,0x73,0xf9,0,0,0x75,0x12,0x6e,0x63,
-0x74,0xfe,0x30,0xf8,0,0,0x15,0x75,0x61,0x74,0x69,0x6f,0x6e,0xff,0x30,0xf8,
-0,0,0x17,0x69,0x76,0x61,0x74,0x65,0x75,0x73,0x65,0xdd,0,0,0x61,0x48,
-0x63,0xfd,0x40,0,0,0x64,0xe9,0,0,0x65,0xfd,0x20,0,0,0x66,0xff,
-0x20,0,0,0,0x1f,0x72,0x61,0x67,0x72,0x61,0x70,0x68,0x73,0x65,0x70,0x61,
-0x72,0x61,0x74,0x6f,0x72,0xd9,0x40,0,0xbe,0,3,0x64,0xa7,0,0x6c,0xab,
-0,0x6f,0x30,0x75,0x13,0x6d,0x62,0x65,0x72,0xbf,0,0xb2,0,0x1b,0x6e,0x73,
-0x70,0x61,0x63,0x69,0x6e,0x67,0x6d,0x61,0x72,0x6b,0xa1,1,0x70,0x92,0x74,0x12,
-0x68,0x65,0x72,0xe6,0x80,1,3,0x6c,0x40,0x6e,0x4a,0x70,0x56,0x73,0x14,0x79,
-0x6d,0x62,0x6f,0x6c,0xff,8,0,0,0,0x14,0x65,0x74,0x74,0x65,0x72,0x61,
-0x14,0x75,0x6d,0x62,0x65,0x72,0xb3,0,0x19,0x75,0x6e,0x63,0x74,0x75,0x61,0x74,
-0x69,0x6f,0x6e,0xfd,0x80,0,0,0x1c,0x65,0x6e,0x70,0x75,0x6e,0x63,0x74,0x75,
-0x61,0x74,0x69,0x6f,0x6e,0xf9,0,0,0x66,0xc0,0xc4,0x66,0xa2,0x47,0x69,0xa2,
-0x64,0x6c,0xa2,0x79,0x6d,0xa4,0xc0,4,0x61,0x6c,0x63,0xa5,0,0x65,0xa3,0x80,
-0x6e,0xa1,0x6f,0x15,0x64,0x69,0x66,0x69,0x65,0x72,1,0x6c,0x38,0x73,0x14,0x79,
-0x6d,0x62,0x6f,0x6c,0xff,4,0,0,0,0x14,0x65,0x74,0x74,0x65,0x72,0x41,
-1,0x72,0x3c,0x74,0x16,0x68,0x73,0x79,0x6d,0x62,0x6f,0x6c,0xff,1,0,0,
-0,0x10,0x6b,0xa5,0xc0,1,0x69,0x32,0x6f,0x13,0x72,0x6d,0x61,0x74,0xdb,0,
-0,0x1d,0x6e,0x61,0x6c,0x70,0x75,0x6e,0x63,0x74,0x75,0x61,0x74,0x69,0x6f,0x6e,
-0xff,0x20,0,0,0,0x10,0x6e,0x1f,0x69,0x74,0x69,0x61,0x6c,0x70,0x75,0x6e,
-0x63,0x74,0x75,0x61,0x74,0x69,0x6f,0x6e,0xff,0x10,0,0,0,0x9c,7,0x6d,
-0x18,0x6d,0x41,0x6f,0x28,0x74,0x31,0x75,0x25,0x60,0x1c,0x77,0x65,0x72,0x63,0x61,
-0x73,0x65,0x6c,0x65,0x74,0x74,0x65,0x72,0x29,0x63,0x3d,0x65,0x28,0x69,0x42,0x6c,
-0x29,0x13,0x74,0x74,0x65,0x72,0x9c,0x15,0x6e,0x75,0x6d,0x62,0x65,0x72,0xab,0,
-0x1a,0x6e,0x65,0x73,0x65,0x70,0x61,0x72,0x61,0x74,0x6f,0x72,0xd9,0x20,0,0x63,
-0x46,0x64,0xa2,0x96,0x65,0x1b,0x6e,0x63,0x6c,0x6f,0x73,0x69,0x6e,0x67,0x6d,0x61,
-0x72,0x6b,0xa3,0x80,0xe6,0x80,1,7,0x6e,0x57,0x6e,0x52,0x6f,0x5e,0x73,0xe1,
-0,0,0x75,0x1b,0x72,0x72,0x65,0x6e,0x63,0x79,0x73,0x79,0x6d,0x62,0x6f,0x6c,
-0xff,2,0,0,0,0x22,0x12,0x74,0x72,0x6c,0xd9,0x80,0,0xdc,0,0,
-1,0x6d,0x62,0x6e,1,0x6e,0x30,0x74,0x12,0x72,0x6f,0x6c,0xd9,0x80,0,0x1f,
-0x65,0x63,0x74,0x6f,0x72,0x70,0x75,0x6e,0x63,0x74,0x75,0x61,0x74,0x69,0x6f,0x6e,
-0xfd,0x40,0,0,0x19,0x62,0x69,0x6e,0x69,0x6e,0x67,0x6d,0x61,0x72,0x6b,0xa5,
-0xc0,0x61,0x58,0x63,0xd9,0x80,0,0x66,0xdb,0,0,0x6c,0x1d,0x6f,0x73,0x65,
-0x70,0x75,0x6e,0x63,0x74,0x75,0x61,0x74,0x69,0x6f,0x6e,0xfd,0x20,0,0,0x18,
-0x73,0x65,0x64,0x6c,0x65,0x74,0x74,0x65,0x72,0x3d,2,0x61,0x32,0x65,0x50,0x69,
-0x12,0x67,0x69,0x74,0xa7,0,0x1c,0x73,0x68,0x70,0x75,0x6e,0x63,0x74,0x75,0x61,
-0x74,0x69,0x6f,0x6e,0xe9,0,0,0x1a,0x63,0x69,0x6d,0x61,0x6c,0x6e,0x75,0x6d,
-0x62,0x65,0x72,0xa7,0
+0x6f,0x21,0xb,0x72,0x39,0x76,0xc,0x76,0x33,0x78,0x2a,0x7a,0x11,0x77,0x6a,0x43,
+0x10,0x78,0x21,0x72,0x28,0x73,0x50,0x74,0x31,1,0x65,0x24,0x69,0x39,0x1e,0x67,
+0x69,0x6f,0x6e,0x61,0x6c,0x69,0x6e,0x64,0x69,0x63,0x61,0x74,0x6f,0x72,0x39,1,
+0x6d,0x35,0x70,0x18,0x61,0x63,0x69,0x6e,0x67,0x6d,0x61,0x72,0x6b,0x35,0x6c,0x1f,
+0x6c,0x3c,0x6f,0x4a,0x70,1,0x70,0x37,0x72,0x14,0x65,0x70,0x65,0x6e,0x64,0x37,
+0x28,1,0x66,0x2b,0x76,0x2c,0x10,0x74,0x2f,0x13,0x74,0x68,0x65,0x72,0x21,0x63,
+0x4c,0x65,0x64,0x67,1,0x61,0x3a,0x6c,0x19,0x75,0x65,0x61,0x66,0x74,0x65,0x72,
+0x7a,0x77,0x6a,0x41,0x10,0x7a,0x41,2,0x6e,0x23,0x6f,0x24,0x72,0x25,0x14,0x6e,
+0x74,0x72,0x6f,0x6c,0x23,2,0x62,0x34,0x6d,0x4e,0x78,0x26,0x13,0x74,0x65,0x6e,
+0x64,0x27,0x3a,1,0x61,0x24,0x67,0x3d,0x11,0x73,0x65,0x3a,0x12,0x67,0x61,0x7a,
+0x3d,0x3e,0x16,0x6f,0x64,0x69,0x66,0x69,0x65,0x72,0x3f,9,0x6e,0x4a,0x6e,0x34,
+0x6f,0x44,0x73,0x60,0x75,0x94,0x78,0x10,0x78,0x21,0x10,0x75,0x2a,0x14,0x6d,0x65,
+0x72,0x69,0x63,0x2b,1,0x6c,0x2c,0x74,0x12,0x68,0x65,0x72,0x21,0x14,0x65,0x74,
+0x74,0x65,0x72,0x2d,3,0x63,0x36,0x65,0x46,0x70,0x31,0x74,0x32,0x12,0x65,0x72,
+0x6d,0x33,0x3c,0x16,0x6f,0x6e,0x74,0x69,0x6e,0x75,0x65,0x3d,0x2e,0x10,0x70,0x2f,
+0x10,0x70,0x34,0x12,0x70,0x65,0x72,0x35,0x61,0x46,0x63,0x52,0x65,0x64,0x66,0x72,
+0x6c,2,0x65,0x2d,0x66,0x3b,0x6f,0x28,0x12,0x77,0x65,0x72,0x29,0x10,0x74,0x22,
+0x12,0x65,0x72,0x6d,0x23,1,0x6c,0x24,0x72,0x37,0x24,0x12,0x6f,0x73,0x65,0x25,
+0x10,0x78,0x38,0x13,0x74,0x65,0x6e,0x64,0x39,0x10,0x6f,0x26,0x13,0x72,0x6d,0x61,
+0x74,0x27,0,0x10,0x6c,0x88,0x72,0x40,0x72,0x36,0x73,0x5e,0x77,0x7a,0x78,0x8a,
+0x7a,0x11,0x77,0x6a,0x4b,1,0x65,0x24,0x69,0x3b,0x1e,0x67,0x69,0x6f,0x6e,0x61,
+0x6c,0x69,0x6e,0x64,0x69,0x63,0x61,0x74,0x6f,0x72,0x3b,1,0x69,0x24,0x71,0x3f,
+0x18,0x6e,0x67,0x6c,0x65,0x71,0x75,0x6f,0x74,0x65,0x3f,0x17,0x73,0x65,0x67,0x73,
+0x70,0x61,0x63,0x65,0x4d,0x10,0x78,0x21,0x6c,0x36,0x6d,0x3c,0x6e,0x76,0x6f,0x13,
+0x74,0x68,0x65,0x72,0x21,1,0x65,0x23,0x66,0x35,3,0x62,0x37,0x69,0x28,0x6c,
+0x29,0x6e,0x2b,0x10,0x64,1,0x6c,0x34,0x6e,0x11,0x75,0x6d,0x2a,0x12,0x6c,0x65,
+0x74,0x37,0x14,0x65,0x74,0x74,0x65,0x72,0x29,2,0x65,0x36,0x6c,0x39,0x75,0x2c,
+0x14,0x6d,0x65,0x72,0x69,0x63,0x2d,0x14,0x77,0x6c,0x69,0x6e,0x65,0x39,0x66,0x3f,
+0x66,0x40,0x67,0x4e,0x68,0x70,0x6b,0x10,0x61,0x26,0x15,0x74,0x61,0x6b,0x61,0x6e,
+0x61,0x27,0x10,0x6f,0x24,0x13,0x72,0x6d,0x61,0x74,0x25,1,0x61,0x3a,0x6c,0x19,
+0x75,0x65,0x61,0x66,0x74,0x65,0x72,0x7a,0x77,0x6a,0x49,0x10,0x7a,0x49,1,0x65,
+0x24,0x6c,0x3d,0x19,0x62,0x72,0x65,0x77,0x6c,0x65,0x74,0x74,0x65,0x72,0x3d,0x61,
+0x86,0x63,0x92,0x64,0x94,0x65,2,0x62,0x44,0x6d,0x5e,0x78,0x2e,0x13,0x74,0x65,
+0x6e,0x64,0x32,0x15,0x6e,0x75,0x6d,0x6c,0x65,0x74,0x2f,0x42,1,0x61,0x24,0x67,
+0x45,0x11,0x73,0x65,0x42,0x12,0x67,0x61,0x7a,0x45,0x46,0x16,0x6f,0x64,0x69,0x66,
+0x69,0x65,0x72,0x47,0x15,0x6c,0x65,0x74,0x74,0x65,0x72,0x23,0x10,0x72,0x31,1,
+0x6f,0x24,0x71,0x41,0x18,0x75,0x62,0x6c,0x65,0x71,0x75,0x6f,0x74,0x65,0x41,2,
+0x63,0x32,0x6e,0x3c,0x6f,0x22,0x12,0x70,0x65,0x6e,0x23,0x24,0x13,0x6c,0x6f,0x73,
+0x65,0x25,0x20,0x12,0x6f,0x6e,0x65,0x21,6,0x6f,0x5c,0x6f,0x4a,0x72,0x5c,0x74,
+0x64,0x76,0x1d,0x69,0x73,0x75,0x61,0x6c,0x6f,0x72,0x64,0x65,0x72,0x6c,0x65,0x66,
+0x74,0x3d,0x18,0x76,0x65,0x72,0x73,0x74,0x72,0x75,0x63,0x6b,0x2d,0x13,0x69,0x67,
+0x68,0x74,0x2f,0x11,0x6f,0x70,0x30,0x12,0x61,0x6e,0x64,2,0x62,0x32,0x6c,0x50,
+0x72,0x13,0x69,0x67,0x68,0x74,0x3b,0x14,0x6f,0x74,0x74,0x6f,0x6d,0x32,0x17,0x61,
+0x6e,0x64,0x72,0x69,0x67,0x68,0x74,0x35,0x12,0x65,0x66,0x74,0x36,0x17,0x61,0x6e,
+0x64,0x72,0x69,0x67,0x68,0x74,0x39,0x62,0x2c,0x6c,0x5c,0x6e,0x10,0x61,0x21,0x14,
+0x6f,0x74,0x74,0x6f,0x6d,0x22,0x12,0x61,0x6e,0x64,1,0x6c,0x2e,0x72,0x13,0x69,
+0x67,0x68,0x74,0x27,0x12,0x65,0x66,0x74,0x25,0x12,0x65,0x66,0x74,0x28,0x17,0x61,
+0x6e,0x64,0x72,0x69,0x67,0x68,0x74,0x2b,0xd,0x6e,0xaa,0x72,0x70,0x72,0x92,0x73,
+0xa2,0x46,0x74,0xa2,0x54,0x76,1,0x69,0x60,0x6f,0x12,0x77,0x65,0x6c,0x62,1,
+0x64,0x3a,0x69,0x19,0x6e,0x64,0x65,0x70,0x65,0x6e,0x64,0x65,0x6e,0x74,0x67,0x17,
+0x65,0x70,0x65,0x6e,0x64,0x65,0x6e,0x74,0x65,1,0x72,0x2e,0x73,0x13,0x61,0x72,
+0x67,0x61,0x61,0x12,0x61,0x6d,0x61,0x5f,0x1d,0x65,0x67,0x69,0x73,0x74,0x65,0x72,
+0x73,0x68,0x69,0x66,0x74,0x65,0x72,0x57,0x1e,0x79,0x6c,0x6c,0x61,0x62,0x6c,0x65,
+0x6d,0x6f,0x64,0x69,0x66,0x69,0x65,0x72,0x59,0x12,0x6f,0x6e,0x65,1,0x6c,0x2c,
+0x6d,0x12,0x61,0x72,0x6b,0x5d,0x14,0x65,0x74,0x74,0x65,0x72,0x5b,0x6e,0x3c,0x6f,
+0x7c,0x70,0x18,0x75,0x72,0x65,0x6b,0x69,0x6c,0x6c,0x65,0x72,0x55,1,0x6f,0x4c,
+0x75,1,0x6b,0x3c,0x6d,0x12,0x62,0x65,0x72,0x50,0x15,0x6a,0x6f,0x69,0x6e,0x65,
+0x72,0x53,0x11,0x74,0x61,0x4f,0x16,0x6e,0x6a,0x6f,0x69,0x6e,0x65,0x72,0x4d,0x13,
+0x74,0x68,0x65,0x72,0x21,0x67,0x3e,0x67,0x4a,0x69,0x64,0x6a,0x82,0x6d,0x1d,0x6f,
+0x64,0x69,0x66,0x79,0x69,0x6e,0x67,0x6c,0x65,0x74,0x74,0x65,0x72,0x4b,0x1c,0x65,
+0x6d,0x69,0x6e,0x61,0x74,0x69,0x6f,0x6e,0x6d,0x61,0x72,0x6b,0x45,0x1e,0x6e,0x76,
+0x69,0x73,0x69,0x62,0x6c,0x65,0x73,0x74,0x61,0x63,0x6b,0x65,0x72,0x47,0x14,0x6f,
+0x69,0x6e,0x65,0x72,0x49,0x61,0xa2,0xba,0x62,0xa2,0xc0,0x63,1,0x61,0xa2,0xa2,
+0x6f,0x16,0x6e,0x73,0x6f,0x6e,0x61,0x6e,0x74,0x2a,8,0x6b,0x67,0x6b,0x48,0x6d,
+0x52,0x70,0x5c,0x73,0xa2,0x42,0x77,0x19,0x69,0x74,0x68,0x73,0x74,0x61,0x63,0x6b,
+0x65,0x72,0x43,0x14,0x69,0x6c,0x6c,0x65,0x72,0x35,0x14,0x65,0x64,0x69,0x61,0x6c,
+0x37,1,0x6c,0x52,0x72,0x10,0x65,1,0x63,0x2e,0x66,0x13,0x69,0x78,0x65,0x64,
+0x3d,0x19,0x65,0x64,0x69,0x6e,0x67,0x72,0x65,0x70,0x68,0x61,0x3b,0x18,0x61,0x63,
+0x65,0x68,0x6f,0x6c,0x64,0x65,0x72,0x39,0x10,0x75,1,0x62,0x3e,0x63,0x1b,0x63,
+0x65,0x65,0x64,0x69,0x6e,0x67,0x72,0x65,0x70,0x68,0x61,0x41,0x15,0x6a,0x6f,0x69,
+0x6e,0x65,0x64,0x3f,0x64,0x4c,0x66,0x52,0x68,0x5a,0x69,0x1e,0x6e,0x69,0x74,0x69,
+0x61,0x6c,0x70,0x6f,0x73,0x74,0x66,0x69,0x78,0x65,0x64,0x33,0x12,0x65,0x61,0x64,
+0x2d,0x13,0x69,0x6e,0x61,0x6c,0x2f,0x18,0x65,0x61,0x64,0x6c,0x65,0x74,0x74,0x65,
+0x72,0x31,0x1d,0x6e,0x74,0x69,0x6c,0x6c,0x61,0x74,0x69,0x6f,0x6e,0x6d,0x61,0x72,
+0x6b,0x29,0x16,0x76,0x61,0x67,0x72,0x61,0x68,0x61,0x23,1,0x69,0x4a,0x72,0x10,
+0x61,0x1f,0x68,0x6d,0x69,0x6a,0x6f,0x69,0x6e,0x69,0x6e,0x67,0x6e,0x75,0x6d,0x62,
+0x65,0x72,0x27,0x12,0x6e,0x64,0x75,0x25,2,0x72,0x38,0x74,0x46,0x75,0x26,0x15,
+0x70,0x72,0x69,0x67,0x68,0x74,0x27,0x20,0x15,0x6f,0x74,0x61,0x74,0x65,0x64,0x21,
+1,0x72,0x24,0x75,0x25,0x22,0x18,0x61,0x6e,0x73,0x66,0x6f,0x72,0x6d,0x65,0x64,
+1,0x72,0x32,0x75,0x15,0x70,0x72,0x69,0x67,0x68,0x74,0x25,0x15,0x6f,0x74,0x61,
+0x74,0x65,0x64,0x23,0xd,0x6e,0xc1,0x86,0x73,0xa8,0x73,0x4c,0x74,0xa2,0x76,0x75,
+0xa2,0x83,0x7a,0xd8,0x70,0,2,0x6c,0xd9,0x20,0,0x70,0xd9,0x40,0,0x73,
+0xc3,0,0xfe,0xf,0,0,0,7,0x6f,0x3c,0x6f,0xff,8,0,0,0,
+0x70,0x3a,0x75,0x6e,0x79,0x13,0x6d,0x62,0x6f,0x6c,0xff,0xf,0,0,0,0x11,
+0x61,0x63,1,0x65,0x34,0x69,0x15,0x6e,0x67,0x6d,0x61,0x72,0x6b,0xa5,0,0x18,
+0x73,0x65,0x70,0x61,0x72,0x61,0x74,0x6f,0x72,0xc3,0,0x16,0x72,0x72,0x6f,0x67,
+0x61,0x74,0x65,0xe1,0,0,0x63,0xff,2,0,0,0,0x65,0x38,0x6b,0xff,
+4,0,0,0,0x6d,0xff,1,0,0,0,0x16,0x70,0x61,0x72,0x61,0x74,
+0x6f,0x72,0xd9,0x70,0,0x1d,0x69,0x74,0x6c,0x65,0x63,0x61,0x73,0x65,0x6c,0x65,
+0x74,0x74,0x65,0x72,0x31,1,0x6e,0x40,0x70,0x1c,0x70,0x65,0x72,0x63,0x61,0x73,
+0x65,0x6c,0x65,0x74,0x74,0x65,0x72,0x25,0x17,0x61,0x73,0x73,0x69,0x67,0x6e,0x65,
+0x64,0x23,0x6e,0xa2,0x69,0x6f,0xa2,0x89,0x70,0xfe,0x30,0xf8,0,0,9,0x69,
+0x33,0x69,0xff,0x10,0,0,0,0x6f,0xfd,0x80,0,0,0x72,0x54,0x73,0xf9,
+0,0,0x75,0x12,0x6e,0x63,0x74,0xfe,0x30,0xf8,0,0,0x15,0x75,0x61,0x74,
+0x69,0x6f,0x6e,0xff,0x30,0xf8,0,0,0x17,0x69,0x76,0x61,0x74,0x65,0x75,0x73,
+0x65,0xdd,0,0,0x61,0x48,0x63,0xfd,0x40,0,0,0x64,0xe9,0,0,0x65,
+0xfd,0x20,0,0,0x66,0xff,0x20,0,0,0,0x1f,0x72,0x61,0x67,0x72,0x61,
+0x70,0x68,0x73,0x65,0x70,0x61,0x72,0x61,0x74,0x6f,0x72,0xd9,0x40,0,0xbe,0,
+3,0x64,0xa7,0,0x6c,0xab,0,0x6f,0x30,0x75,0x13,0x6d,0x62,0x65,0x72,0xbf,
+0,0xb2,0,0x1b,0x6e,0x73,0x70,0x61,0x63,0x69,0x6e,0x67,0x6d,0x61,0x72,0x6b,
+0xa1,1,0x70,0x92,0x74,0x12,0x68,0x65,0x72,0xe6,0x80,1,3,0x6c,0x40,0x6e,
+0x4a,0x70,0x56,0x73,0x14,0x79,0x6d,0x62,0x6f,0x6c,0xff,8,0,0,0,0x14,
+0x65,0x74,0x74,0x65,0x72,0x61,0x14,0x75,0x6d,0x62,0x65,0x72,0xb3,0,0x19,0x75,
+0x6e,0x63,0x74,0x75,0x61,0x74,0x69,0x6f,0x6e,0xfd,0x80,0,0,0x1c,0x65,0x6e,
+0x70,0x75,0x6e,0x63,0x74,0x75,0x61,0x74,0x69,0x6f,0x6e,0xf9,0,0,0x66,0xc0,
+0xc4,0x66,0xa2,0x47,0x69,0xa2,0x64,0x6c,0xa2,0x79,0x6d,0xa4,0xc0,4,0x61,0x6c,
+0x63,0xa5,0,0x65,0xa3,0x80,0x6e,0xa1,0x6f,0x15,0x64,0x69,0x66,0x69,0x65,0x72,
+1,0x6c,0x38,0x73,0x14,0x79,0x6d,0x62,0x6f,0x6c,0xff,4,0,0,0,0x14,
+0x65,0x74,0x74,0x65,0x72,0x41,1,0x72,0x3c,0x74,0x16,0x68,0x73,0x79,0x6d,0x62,
+0x6f,0x6c,0xff,1,0,0,0,0x10,0x6b,0xa5,0xc0,1,0x69,0x32,0x6f,0x13,
+0x72,0x6d,0x61,0x74,0xdb,0,0,0x1d,0x6e,0x61,0x6c,0x70,0x75,0x6e,0x63,0x74,
+0x75,0x61,0x74,0x69,0x6f,0x6e,0xff,0x20,0,0,0,0x10,0x6e,0x1f,0x69,0x74,
+0x69,0x61,0x6c,0x70,0x75,0x6e,0x63,0x74,0x75,0x61,0x74,0x69,0x6f,0x6e,0xff,0x10,
+0,0,0,0x9c,7,0x6d,0x18,0x6d,0x41,0x6f,0x28,0x74,0x31,0x75,0x25,0x60,
+0x1c,0x77,0x65,0x72,0x63,0x61,0x73,0x65,0x6c,0x65,0x74,0x74,0x65,0x72,0x29,0x63,
+0x3d,0x65,0x28,0x69,0x42,0x6c,0x29,0x13,0x74,0x74,0x65,0x72,0x9c,0x15,0x6e,0x75,
+0x6d,0x62,0x65,0x72,0xab,0,0x1a,0x6e,0x65,0x73,0x65,0x70,0x61,0x72,0x61,0x74,
+0x6f,0x72,0xd9,0x20,0,0x63,0x46,0x64,0xa2,0x96,0x65,0x1b,0x6e,0x63,0x6c,0x6f,
+0x73,0x69,0x6e,0x67,0x6d,0x61,0x72,0x6b,0xa3,0x80,0xe6,0x80,1,7,0x6e,0x57,
+0x6e,0x52,0x6f,0x5e,0x73,0xe1,0,0,0x75,0x1b,0x72,0x72,0x65,0x6e,0x63,0x79,
+0x73,0x79,0x6d,0x62,0x6f,0x6c,0xff,2,0,0,0,0x22,0x12,0x74,0x72,0x6c,
+0xd9,0x80,0,0xdc,0,0,1,0x6d,0x62,0x6e,1,0x6e,0x30,0x74,0x12,0x72,
+0x6f,0x6c,0xd9,0x80,0,0x1f,0x65,0x63,0x74,0x6f,0x72,0x70,0x75,0x6e,0x63,0x74,
+0x75,0x61,0x74,0x69,0x6f,0x6e,0xfd,0x40,0,0,0x19,0x62,0x69,0x6e,0x69,0x6e,
+0x67,0x6d,0x61,0x72,0x6b,0xa5,0xc0,0x61,0x58,0x63,0xd9,0x80,0,0x66,0xdb,0,
+0,0x6c,0x1d,0x6f,0x73,0x65,0x70,0x75,0x6e,0x63,0x74,0x75,0x61,0x74,0x69,0x6f,
+0x6e,0xfd,0x20,0,0,0x18,0x73,0x65,0x64,0x6c,0x65,0x74,0x74,0x65,0x72,0x3d,
+2,0x61,0x32,0x65,0x50,0x69,0x12,0x67,0x69,0x74,0xa7,0,0x1c,0x73,0x68,0x70,
+0x75,0x6e,0x63,0x74,0x75,0x61,0x74,0x69,0x6f,0x6e,0xe9,0,0,0x1a,0x63,0x69,
+0x6d,0x61,0x6c,0x6e,0x75,0x6d,0x62,0x65,0x72,0xa7,0
 };
 
-const char PropNameData::nameGroups[19587]={
+const char PropNameData::nameGroups[21265]={
 2,'A','l','p','h','a',0,'A','l','p','h','a','b','e','t','i','c',0,
 4,'N',0,'N','o',0,'F',0,'F','a','l','s','e',0,4,'Y',0,'Y','e','s',0,'T',0,'T','r','u','e',0,
 2,'N','R',0,'N','o','t','_','R','e','o','r','d','e','r','e','d',0,
@@ -1722,8 +1773,69 @@ const char PropNameData::nameGroups[19587]={
 2,'W','S','e','g','S','p','a','c','e',0,'W','S','e','g','S','p','a','c','e',0,
 2,'b','p','t',0,'B','i','d','i','_','P','a','i','r','e','d','_','B','r','a','c','k','e','t','_','T','y','p','e',0,
 2,'n',0,'N','o','n','e',0,2,'o',0,'O','p','e','n',0,
-2,'c',0,'C','l','o','s','e',0,2,'g','c','m',0,'G','e','n','e','r','a','l','_','C','a','t','e','g','o','r','y','_','M',
-'a','s','k',0,2,'C',0,'O','t','h','e','r',0,2,'L',0,'L','e','t','t','e','r',0,
+2,'c',0,'C','l','o','s','e',0,2,'I','n','P','C',0,'I','n','d','i','c','_','P','o','s','i','t','i','o','n','a','l','_',
+'C','a','t','e','g','o','r','y',0,2,'N','A',0,'N','A',0,
+2,'B','o','t','t','o','m',0,'B','o','t','t','o','m',0,2,'B','o','t','t','o','m','_','A','n','d','_','L','e','f','t',0,
+'B','o','t','t','o','m','_','A','n','d','_','L','e','f','t',0,
+2,'B','o','t','t','o','m','_','A','n','d','_','R','i','g','h','t',0,'B','o','t','t','o','m','_','A','n','d','_','R','i','g',
+'h','t',0,2,'L','e','f','t',0,'L','e','f','t',0,2,'L','e','f','t','_','A','n','d','_','R','i','g','h','t',0,
+'L','e','f','t','_','A','n','d','_','R','i','g','h','t',0,2,'O','v','e','r','s','t','r','u','c','k',0,
+'O','v','e','r','s','t','r','u','c','k',0,2,'R','i','g','h','t',0,'R','i','g','h','t',0,
+2,'T','o','p',0,'T','o','p',0,2,'T','o','p','_','A','n','d','_','B','o','t','t','o','m',0,
+'T','o','p','_','A','n','d','_','B','o','t','t','o','m',0,2,'T','o','p','_','A','n','d','_','B','o','t','t','o','m','_','A',
+'n','d','_','R','i','g','h','t',0,'T','o','p','_','A','n','d','_','B','o','t','t','o','m','_','A','n','d','_','R','i','g','h',
+'t',0,2,'T','o','p','_','A','n','d','_','L','e','f','t',0,'T','o','p','_','A','n','d','_','L','e','f','t',0,
+2,'T','o','p','_','A','n','d','_','L','e','f','t','_','A','n','d','_','R','i','g','h','t',0,
+'T','o','p','_','A','n','d','_','L','e','f','t','_','A','n','d','_','R','i','g','h','t',0,
+2,'T','o','p','_','A','n','d','_','R','i','g','h','t',0,'T','o','p','_','A','n','d','_','R','i','g','h','t',0,
+2,'V','i','s','u','a','l','_','O','r','d','e','r','_','L','e','f','t',0,'V','i','s','u','a','l','_','O','r','d','e','r','_',
+'L','e','f','t',0,2,'I','n','S','C',0,'I','n','d','i','c','_','S','y','l','l','a','b','i','c','_','C','a','t','e','g','o',
+'r','y',0,2,'O','t','h','e','r',0,'O','t','h','e','r',0,
+2,'A','v','a','g','r','a','h','a',0,'A','v','a','g','r','a','h','a',0,
+2,'B','i','n','d','u',0,'B','i','n','d','u',0,2,'B','r','a','h','m','i','_','J','o','i','n','i','n','g','_','N','u','m',
+'b','e','r',0,'B','r','a','h','m','i','_','J','o','i','n','i','n','g','_','N','u','m','b','e','r',0,
+2,'C','a','n','t','i','l','l','a','t','i','o','n','_','M','a','r','k',0,'C','a','n','t','i','l','l','a','t','i','o','n','_',
+'M','a','r','k',0,2,'C','o','n','s','o','n','a','n','t',0,'C','o','n','s','o','n','a','n','t',0,
+2,'C','o','n','s','o','n','a','n','t','_','D','e','a','d',0,'C','o','n','s','o','n','a','n','t','_','D','e','a','d',0,
+2,'C','o','n','s','o','n','a','n','t','_','F','i','n','a','l',0,'C','o','n','s','o','n','a','n','t','_','F','i','n','a','l',
+0,2,'C','o','n','s','o','n','a','n','t','_','H','e','a','d','_','L','e','t','t','e','r',0,
+'C','o','n','s','o','n','a','n','t','_','H','e','a','d','_','L','e','t','t','e','r',0,
+2,'C','o','n','s','o','n','a','n','t','_','I','n','i','t','i','a','l','_','P','o','s','t','f','i','x','e','d',0,
+'C','o','n','s','o','n','a','n','t','_','I','n','i','t','i','a','l','_','P','o','s','t','f','i','x','e','d',0,
+2,'C','o','n','s','o','n','a','n','t','_','K','i','l','l','e','r',0,'C','o','n','s','o','n','a','n','t','_','K','i','l','l',
+'e','r',0,2,'C','o','n','s','o','n','a','n','t','_','M','e','d','i','a','l',0,'C','o','n','s','o','n','a','n','t','_','M',
+'e','d','i','a','l',0,2,'C','o','n','s','o','n','a','n','t','_','P','l','a','c','e','h','o','l','d','e','r',0,
+'C','o','n','s','o','n','a','n','t','_','P','l','a','c','e','h','o','l','d','e','r',0,
+2,'C','o','n','s','o','n','a','n','t','_','P','r','e','c','e','d','i','n','g','_','R','e','p','h','a',0,
+'C','o','n','s','o','n','a','n','t','_','P','r','e','c','e','d','i','n','g','_','R','e','p','h','a',0,
+2,'C','o','n','s','o','n','a','n','t','_','P','r','e','f','i','x','e','d',0,'C','o','n','s','o','n','a','n','t','_','P','r',
+'e','f','i','x','e','d',0,2,'C','o','n','s','o','n','a','n','t','_','S','u','b','j','o','i','n','e','d',0,
+'C','o','n','s','o','n','a','n','t','_','S','u','b','j','o','i','n','e','d',0,
+2,'C','o','n','s','o','n','a','n','t','_','S','u','c','c','e','e','d','i','n','g','_','R','e','p','h','a',0,
+'C','o','n','s','o','n','a','n','t','_','S','u','c','c','e','e','d','i','n','g','_','R','e','p','h','a',0,
+2,'C','o','n','s','o','n','a','n','t','_','W','i','t','h','_','S','t','a','c','k','e','r',0,
+'C','o','n','s','o','n','a','n','t','_','W','i','t','h','_','S','t','a','c','k','e','r',0,
+2,'G','e','m','i','n','a','t','i','o','n','_','M','a','r','k',0,'G','e','m','i','n','a','t','i','o','n','_','M','a','r','k',
+0,2,'I','n','v','i','s','i','b','l','e','_','S','t','a','c','k','e','r',0,'I','n','v','i','s','i','b','l','e','_','S','t',
+'a','c','k','e','r',0,2,'J','o','i','n','e','r',0,'J','o','i','n','e','r',0,
+2,'M','o','d','i','f','y','i','n','g','_','L','e','t','t','e','r',0,'M','o','d','i','f','y','i','n','g','_','L','e','t','t',
+'e','r',0,2,'N','o','n','_','J','o','i','n','e','r',0,'N','o','n','_','J','o','i','n','e','r',0,
+2,'N','u','k','t','a',0,'N','u','k','t','a',0,2,'N','u','m','b','e','r',0,'N','u','m','b','e','r',0,
+2,'N','u','m','b','e','r','_','J','o','i','n','e','r',0,'N','u','m','b','e','r','_','J','o','i','n','e','r',0,
+2,'P','u','r','e','_','K','i','l','l','e','r',0,'P','u','r','e','_','K','i','l','l','e','r',0,
+2,'R','e','g','i','s','t','e','r','_','S','h','i','f','t','e','r',0,'R','e','g','i','s','t','e','r','_','S','h','i','f','t',
+'e','r',0,2,'S','y','l','l','a','b','l','e','_','M','o','d','i','f','i','e','r',0,'S','y','l','l','a','b','l','e','_','M',
+'o','d','i','f','i','e','r',0,2,'T','o','n','e','_','L','e','t','t','e','r',0,'T','o','n','e','_','L','e','t','t','e','r',
+0,2,'T','o','n','e','_','M','a','r','k',0,'T','o','n','e','_','M','a','r','k',0,
+2,'V','i','r','a','m','a',0,'V','i','r','a','m','a',0,2,'V','i','s','a','r','g','a',0,
+'V','i','s','a','r','g','a',0,2,'V','o','w','e','l',0,'V','o','w','e','l',0,
+2,'V','o','w','e','l','_','D','e','p','e','n','d','e','n','t',0,'V','o','w','e','l','_','D','e','p','e','n','d','e','n','t',
+0,2,'V','o','w','e','l','_','I','n','d','e','p','e','n','d','e','n','t',0,'V','o','w','e','l','_','I','n','d','e','p','e',
+'n','d','e','n','t',0,2,'v','o',0,'V','e','r','t','i','c','a','l','_','O','r','i','e','n','t','a','t','i','o','n',0,
+2,'R',0,'R','o','t','a','t','e','d',0,2,'T','r',0,'T','r','a','n','s','f','o','r','m','e','d','_','R','o','t','a','t',
+'e','d',0,2,'T','u',0,'T','r','a','n','s','f','o','r','m','e','d','_','U','p','r','i','g','h','t',0,
+2,'U',0,'U','p','r','i','g','h','t',0,2,'g','c','m',0,'G','e','n','e','r','a','l','_','C','a','t','e','g','o','r','y',
+'_','M','a','s','k',0,2,'C',0,'O','t','h','e','r',0,2,'L',0,'L','e','t','t','e','r',0,
 2,'L','C',0,'C','a','s','e','d','_','L','e','t','t','e','r',0,
 3,'M',0,'M','a','r','k',0,'C','o','m','b','i','n','i','n','g','_','M','a','r','k',0,
 2,'N',0,'N','u','m','b','e','r',0,3,'P',0,'P','u','n','c','t','u','a','t','i','o','n',0,
index 2d2de524dbbbf84527570fd302f40d0defb9a4d5..769309b422c54de7fd848a1cf942db33ee8f5e82 100644 (file)
 #   define NOMCX
 #   include <windows.h>
 #   include "unicode/uloc.h"
-#if U_PLATFORM_HAS_WINUWP_API == 0
 #   include "wintz.h"
-#else // U_PLATFORM_HAS_WINUWP_API
+#if U_PLATFORM_HAS_WINUWP_API
 typedef PVOID LPMSG; // TODO: figure out how to get rid of this typedef
 #include <Windows.Globalization.h>
 #include <windows.system.userprofile.h>
@@ -1062,53 +1061,13 @@ uprv_tzname_clear_cache()
 #endif
 }
 
-// With the Universal Windows Platform we can just ask Windows for the name
-#if U_PLATFORM_HAS_WINUWP_API
-U_CAPI const char* U_EXPORT2
-uprv_getWindowsTimeZone()
-{
-    // Get default Windows timezone.   
-    ComPtr<IInspectable> calendar;
-    HRESULT hr = RoActivateInstance(
-        HStringReference(RuntimeClass_Windows_Globalization_Calendar).Get(),
-        &calendar);
-    if (SUCCEEDED(hr))
-    {
-        ComPtr<ABI::Windows::Globalization::ITimeZoneOnCalendar> timezone;
-        hr = calendar.As(&timezone);
-        if (SUCCEEDED(hr))
-        {
-            HString timezoneString;
-            hr = timezone->GetTimeZone(timezoneString.GetAddressOf());
-            if (SUCCEEDED(hr))
-            {
-                int32_t length = static_cast<int32_t>(wcslen(timezoneString.GetRawBuffer(NULL)));
-                char* asciiId = (char*)uprv_calloc(length + 1, sizeof(char));
-                if (asciiId != nullptr)
-                {
-                    u_UCharsToChars((UChar*)timezoneString.GetRawBuffer(NULL), asciiId, length);
-                    return asciiId;
-                }
-            }
-        }
-    }
-
-    // Failed
-    return nullptr;
-}
-#endif
-
 U_CAPI const char* U_EXPORT2
 uprv_tzname(int n)
 {
     (void)n; // Avoid unreferenced parameter warning.
     const char *tzid = NULL;
 #if U_PLATFORM_USES_ONLY_WIN32_API
-#if U_PLATFORM_HAS_WINUWP_API > 0
-    tzid = uprv_getWindowsTimeZone();
-#else
     tzid = uprv_detectWindowsTimeZone();
-#endif
 
     if (tzid != NULL) {
         return tzid;
@@ -1366,6 +1325,43 @@ uprv_pathIsAbsolute(const char *path)
 # endif
 #endif
 
+#if U_PLATFORM_HAS_WINUWP_API != 0
+// Helper function to get the ICU Data Directory under the Windows directory location.
+static BOOL U_CALLCONV getIcuDataDirectoryUnderWindowsDirectory(char* directoryBuffer, UINT bufferLength)
+{
+#if defined(ICU_DATA_DIR_WINDOWS)
+    wchar_t windowsPath[MAX_PATH];
+    char windowsPathUtf8[MAX_PATH];
+
+    UINT length = GetSystemWindowsDirectoryW(windowsPath, UPRV_LENGTHOF(windowsPath));
+    if ((length > 0) && (length < (UPRV_LENGTHOF(windowsPath) - 1))) {
+        // Convert UTF-16 to a UTF-8 string.
+        UErrorCode status = U_ZERO_ERROR;
+        int32_t windowsPathUtf8Len = 0;
+        u_strToUTF8(windowsPathUtf8, static_cast<int32_t>(UPRV_LENGTHOF(windowsPathUtf8)),
+            &windowsPathUtf8Len, reinterpret_cast<const UChar*>(windowsPath), -1, &status);
+
+        if (U_SUCCESS(status) && (status != U_STRING_NOT_TERMINATED_WARNING) &&
+            (windowsPathUtf8Len < (UPRV_LENGTHOF(windowsPathUtf8) - 1))) {
+            // Ensure it always has a separator, so we can append the ICU data path.
+            if (windowsPathUtf8[windowsPathUtf8Len - 1] != U_FILE_SEP_CHAR) {
+                windowsPathUtf8[windowsPathUtf8Len++] = U_FILE_SEP_CHAR;
+                windowsPathUtf8[windowsPathUtf8Len] = '\0';
+            }
+            // Check if the concatenated string will fit.
+            if ((windowsPathUtf8Len + UPRV_LENGTHOF(ICU_DATA_DIR_WINDOWS)) < bufferLength) {
+                uprv_strcpy(directoryBuffer, windowsPathUtf8);
+                uprv_strcat(directoryBuffer, ICU_DATA_DIR_WINDOWS);
+                return TRUE;
+            }
+        }
+    }
+#endif
+
+    return FALSE;
+}
+#endif
+
 static void U_CALLCONV dataDirectoryInitFn() {
     /* If we already have the directory, then return immediately. Will happen if user called
      * u_setDataDirectory().
@@ -1425,24 +1421,10 @@ static void U_CALLCONV dataDirectoryInitFn() {
     }
 #endif
 
-#if defined(ICU_DATA_DIR_WINDOWS) && U_PLATFORM_HAS_WINUWP_API != 0
-    // Use data from the %windir%\globalization\icu directory
-    // This is only available if ICU is built as a system component
+#if U_PLATFORM_HAS_WINUWP_API != 0  && defined(ICU_DATA_DIR_WINDOWS)
     char datadir_path_buffer[MAX_PATH];
-    UINT length = GetWindowsDirectoryA(datadir_path_buffer, UPRV_LENGTHOF(datadir_path_buffer));
-    if (length > 0 && length < (UPRV_LENGTHOF(datadir_path_buffer) - sizeof(ICU_DATA_DIR_WINDOWS) - 1))
-    {
-        if (datadir_path_buffer[length - 1] != '\\')
-        {
-            datadir_path_buffer[length++] = '\\';
-            datadir_path_buffer[length] = '\0';
-        }
-
-        if ((length + 1 + sizeof(ICU_DATA_DIR_WINDOWS)) < UPRV_LENGTHOF(datadir_path_buffer))
-        {
-            uprv_strcat(datadir_path_buffer, ICU_DATA_DIR_WINDOWS);
-            path = datadir_path_buffer;
-        }
+    if (getIcuDataDirectoryUnderWindowsDirectory(datadir_path_buffer, UPRV_LENGTHOF(datadir_path_buffer))) {
+        path = datadir_path_buffer;
     }
 #endif
 
@@ -1491,20 +1473,30 @@ static void U_CALLCONV TimeZoneDataDirInitFn(UErrorCode &status) {
         status = U_MEMORY_ALLOCATION_ERROR;
         return;
     }
-#if U_PLATFORM_HAS_WINUWP_API == 0
-    const char *dir = getenv("ICU_TIMEZONE_FILES_DIR");
-#else
-    // TODO: UWP does not support alternate timezone data directories at this time
+
     const char *dir = "";
+
+#if U_PLATFORM_HAS_WINUWP_API != 0
+    // The UWP version does not support the environment variable setting, but can possibly pick them up from the Windows directory.
+    char datadir_path_buffer[MAX_PATH];
+    if (getIcuDataDirectoryUnderWindowsDirectory(datadir_path_buffer, UPRV_LENGTHOF(datadir_path_buffer))) {
+        dir = datadir_path_buffer;
+    }
+#else
+    dir = getenv("ICU_TIMEZONE_FILES_DIR");
 #endif // U_PLATFORM_HAS_WINUWP_API
+
 #if defined(U_TIMEZONE_FILES_DIR)
     if (dir == NULL) {
+        // Build time configuration setting.
         dir = TO_STRING(U_TIMEZONE_FILES_DIR);
     }
 #endif
+
     if (dir == NULL) {
         dir = "";
     }
+
     setTimeZoneFilesDir(dir, status);
 }
 
@@ -1676,7 +1668,8 @@ The leftmost codepage (.xxx) wins.
     /* Note that we scan the *uncorrected* ID. */
     if ((p = uprv_strrchr(posixID, '@')) != NULL) {
         if (correctedPOSIXLocale == NULL) {
-            correctedPOSIXLocale = static_cast<char *>(uprv_malloc(uprv_strlen(posixID)+1));
+            /* new locale can be 1 char longer than old one if @ -> __ */
+            correctedPOSIXLocale = static_cast<char *>(uprv_malloc(uprv_strlen(posixID)+2));
             /* Exit on memory allocation error. */
             if (correctedPOSIXLocale == NULL) {
                 return NULL;
@@ -1693,7 +1686,7 @@ The leftmost codepage (.xxx) wins.
         }
 
         if (uprv_strchr(correctedPOSIXLocale,'_') == NULL) {
-            uprv_strcat(correctedPOSIXLocale, "__"); /* aa@b -> aa__b */
+            uprv_strcat(correctedPOSIXLocale, "__"); /* aa@b -> aa__b (note this can make the new locale 1 char longer) */
         }
         else {
             uprv_strcat(correctedPOSIXLocale, "_"); /* aa_CC@b -> aa_CC_b */
@@ -1747,70 +1740,22 @@ The leftmost codepage (.xxx) wins.
 #elif U_PLATFORM_USES_ONLY_WIN32_API
 #define POSIX_LOCALE_CAPACITY 64
     UErrorCode status = U_ZERO_ERROR;
-    char *correctedPOSIXLocale = 0;
+    char *correctedPOSIXLocale = nullptr;
 
     // If we have already figured this out just use the cached value
-    if (gCorrectedPOSIXLocale != NULL) {
+    if (gCorrectedPOSIXLocale != nullptr) {
         return gCorrectedPOSIXLocale;
     }
 
     // No cached value, need to determine the current value
-    static WCHAR windowsLocale[LOCALE_NAME_MAX_LENGTH];
-#if U_PLATFORM_HAS_WINUWP_API == 0 
-    // If not a Universal Windows App, we'll need user default language.
-    // Vista and above should use Locale Names instead of LCIDs
-    int length = GetUserDefaultLocaleName(windowsLocale, UPRV_LENGTHOF(windowsLocale));
-#else
-    // In a UWP app, we want the top language that the application and user agreed upon
-    ComPtr<ABI::Windows::Foundation::Collections::IVectorView<HSTRING>> languageList;
-
-    ComPtr<ABI::Windows::Globalization::IApplicationLanguagesStatics> applicationLanguagesStatics;
-    HRESULT hr = GetActivationFactory(
-        HStringReference(RuntimeClass_Windows_Globalization_ApplicationLanguages).Get(),
-        &applicationLanguagesStatics);
-    if (SUCCEEDED(hr))
-    {
-        hr = applicationLanguagesStatics->get_Languages(&languageList);
-    }
+    static WCHAR windowsLocale[LOCALE_NAME_MAX_LENGTH] = {};
+    int length = GetLocaleInfoEx(LOCALE_NAME_USER_DEFAULT, LOCALE_SNAME, windowsLocale, LOCALE_NAME_MAX_LENGTH);
 
-    if (FAILED(hr))
-    {
-        // If there is no application context, then use the top language from the user language profile
-        ComPtr<ABI::Windows::System::UserProfile::IGlobalizationPreferencesStatics> globalizationPreferencesStatics;
-        hr = GetActivationFactory(
-            HStringReference(RuntimeClass_Windows_System_UserProfile_GlobalizationPreferences).Get(),
-            &globalizationPreferencesStatics);
-        if (SUCCEEDED(hr))
-        {
-            hr = globalizationPreferencesStatics->get_Languages(&languageList);
-        }
-    }
-
-    // We have a list of languages, ICU knows one, so use the top one for our locale
-    HString topLanguage;
-    if (SUCCEEDED(hr))
-    {
-        hr = languageList->GetAt(0, topLanguage.GetAddressOf());
-    }
-
-    if (FAILED(hr))
-    {
-        // Unexpected, use en-US by default
-        if (gCorrectedPOSIXLocale == NULL) {
-            gCorrectedPOSIXLocale = "en_US";
-        }
-
-        return gCorrectedPOSIXLocale;
-    }
-
-    // ResolveLocaleName will get a likely subtags form consistent with Windows behavior.
-    int length = ResolveLocaleName(topLanguage.GetRawBuffer(NULL), windowsLocale, UPRV_LENGTHOF(windowsLocale));
-#endif
-    // Now we should have a Windows locale name that needs converted to the POSIX style,
-    if (length > 0)
+    // Now we should have a Windows locale name that needs converted to the POSIX style.
+    if (length > 0) // If length is 0, then the GetLocaleInfoEx failed.
     {
         // First we need to go from UTF-16 to char (and also convert from _ to - while we're at it.)
-        char modifiedWindowsLocale[LOCALE_NAME_MAX_LENGTH];
+        char modifiedWindowsLocale[LOCALE_NAME_MAX_LENGTH] = {};
 
         int32_t i;
         for (i = 0; i < UPRV_LENGTHOF(modifiedWindowsLocale); i++)
@@ -1858,7 +1803,7 @@ The leftmost codepage (.xxx) wins.
     }
 
     // If unable to find a locale we can agree upon, use en-US by default
-    if (gCorrectedPOSIXLocale == NULL) {
+    if (gCorrectedPOSIXLocale == nullptr) {
         gCorrectedPOSIXLocale = "en_US";
     }
     return gCorrectedPOSIXLocale;
index 8b858df9e3b46e46c0f4d0861c03aa6d1a9924c1..d2cc37cde37833045e8ccdfb0df54a15c5b93d3e 100644 (file)
@@ -94,7 +94,7 @@ typedef size_t uintptr_t;
 #   define U_NL_LANGINFO_CODESET CODESET
 #endif
 
-#ifdef U_TZSET
+#if defined(U_TZSET) || defined(U_HAVE_TZSET)
     /* Use the predefined value. */
 #elif U_PLATFORM_USES_ONLY_WIN32_API
     // UWP doesn't support tzset or environment variables for tz
@@ -132,7 +132,7 @@ typedef size_t uintptr_t;
 #   define U_TIMEZONE timezone
 #endif
 
-#ifdef U_TZNAME
+#if defined(U_TZNAME) || defined(U_HAVE_TZNAME)
     /* Use the predefined value. */
 #elif U_PLATFORM_USES_ONLY_WIN32_API
     /* not usable on all windows platforms */
@@ -204,30 +204,18 @@ typedef size_t uintptr_t;
 
 /**
  * \def U_HAVE_STD_ATOMICS
- * Defines whether the standard C++11 <atomic> is available.
- * ICU will use this when available,
- * otherwise will fall back to compiler or platform specific alternatives.
+ * Defines whether to use the standard C++11 <atomic> functions
+ * If false, ICU will fall back to compiler or platform specific alternatives.
+ * Note: support for these fall back options for atomics will be removed in a future version
+ *       of ICU, and the use of C++ 11 atomics will be required.
  * @internal
  */
 #ifdef U_HAVE_STD_ATOMICS
     /* Use the predefined value. */
-#elif U_CPLUSPLUS_VERSION < 11
-    /* Not C++11, disable use of atomics */
-#   define U_HAVE_STD_ATOMICS 0
-#elif __clang__ && __clang_major__==3 && __clang_minor__<=1
-    /* Clang 3.1, has atomic variable initializer bug. */
-#   define U_HAVE_STD_ATOMICS 0
-#else 
-    /* U_HAVE_ATOMIC is typically set by an autoconf test of #include <atomic>  */
-    /*   Can be set manually, or left undefined, on platforms without autoconf. */
-#   if defined(U_HAVE_ATOMIC) &&  U_HAVE_ATOMIC 
-#      define U_HAVE_STD_ATOMICS 1
-#   else
-#      define U_HAVE_STD_ATOMICS 0
-#   endif
+#else
+#    define U_HAVE_STD_ATOMICS 1
 #endif
 
-
 /**
  *  \def U_HAVE_CLANG_ATOMICS
  *  Defines whether Clang c11 style built-in atomics are available.
@@ -586,6 +574,49 @@ U_INTERNAL void * U_EXPORT2 uprv_maximumPtr(void *base);
 #  endif
 #endif
 
+
+#ifdef __cplusplus
+/**
+ * Pin a buffer capacity such that doing pointer arithmetic
+ * on the destination pointer and capacity cannot overflow.
+ *
+ * The pinned capacity must fulfill the following conditions (for positive capacities):
+ *   - dest + capacity is a valid pointer according to the machine arcitecture (AS/400, 64-bit, etc.)
+ *   - (dest + capacity) >= dest
+ *   - The size (in bytes) of T[capacity] does not exceed 0x7fffffff
+ *
+ * @param dest the destination buffer pointer.
+ * @param capacity the requested buffer capacity, in units of type T.
+ * @return the pinned capacity.
+ * @internal
+ */
+template <typename T>
+inline int32_t pinCapacity(T *dest, int32_t capacity) {
+    if (capacity <= 0) { return capacity; }
+
+    uintptr_t destInt = (uintptr_t)dest;
+    uintptr_t maxInt;
+
+#  if U_PLATFORM == U_PF_OS390 && !defined(_LP64)
+    // We have 31-bit pointers.
+    maxInt = 0x7fffffff;
+#  elif U_PLATFORM == U_PF_OS400
+    maxInt = (uintptr_t)uprv_maximumPtr((void *)dest);
+#  else
+    maxInt = destInt + 0x7fffffffu;
+    if (maxInt < destInt) {
+        // Less than 2GB to the end of the address space.
+        // Pin to that to prevent address overflow.
+        maxInt = (uintptr_t)-1;
+    }
+#  endif
+
+    uintptr_t maxBytes = maxInt - destInt;  // max. 2GB
+    int32_t maxCapacity = (int32_t)(maxBytes / sizeof(T));
+    return capacity <= maxCapacity ? capacity : maxCapacity;
+}
+#endif   // __cplusplus
+
 /*  Dynamic Library Functions */
 
 typedef void (UVoidFunction)(void);
index c5ea2770ba98549b34a6e65312d6b4c5b9449bdf..cb3766506f4082e655648ce321fcc7006f8144b9 100644 (file)
@@ -18,6 +18,8 @@
 
 #if !UCONFIG_NO_BREAK_ITERATION
 
+#include <cinttypes>
+
 #include "unicode/rbbi.h"
 #include "unicode/schriter.h"
 #include "unicode/uchriter.h"
@@ -628,7 +630,7 @@ int32_t RuleBasedBreakIterator::preceding(int32_t offset) {
     // or on a trail byte if the input is UTF-8.
 
     utext_setNativeIndex(&fText, offset);
-    int32_t adjustedOffset = utext_getNativeIndex(&fText);
+    int32_t adjustedOffset = static_cast<int32_t>(utext_getNativeIndex(&fText));
 
     UErrorCode status = U_ZERO_ERROR;
     fBreakCache->preceding(adjustedOffset, status);
@@ -655,7 +657,7 @@ UBool RuleBasedBreakIterator::isBoundary(int32_t offset) {
     // But we still need the side effect of leaving iteration at the following boundary.
 
     utext_setNativeIndex(&fText, offset);
-    int32_t adjustedOffset = utext_getNativeIndex(&fText);
+    int32_t adjustedOffset = static_cast<int32_t>(utext_getNativeIndex(&fText));
 
     bool result = false;
     UErrorCode status = U_ZERO_ERROR;
@@ -848,7 +850,7 @@ int32_t RuleBasedBreakIterator::handleNext() {
 
        #ifdef RBBI_DEBUG
             if (gTrace) {
-                RBBIDebugPrintf("             %4ld   ", utext_getNativeIndex(&fText));
+                RBBIDebugPrintf("             %4" PRId64 "   ", utext_getNativeIndex(&fText));
                 if (0x20<=c && c<0x7f) {
                     RBBIDebugPrintf("\"%c\"  ", c);
                 } else {
index 60316ce6420dc5ecf5dc96ebbb5eebdd13059b5c..519c61049894e65c854f0514a2b64296eee262b6 100644 (file)
@@ -603,7 +603,7 @@ void RuleBasedBreakIterator::BreakCache::addFollowing(int32_t position, int32_t
         fStartBufIdx = modChunkSize(fStartBufIdx + 6);    // TODO: experiment. Probably revert to 1.
     }
     fBoundaries[nextIdx] = position;
-    fStatuses[nextIdx] = ruleStatusIdx;
+    fStatuses[nextIdx] = static_cast<uint16_t>(ruleStatusIdx);
     fEndBufIdx = nextIdx;
     if (update == UpdateCachePosition) {
         // Set current position to the newly added boundary.
@@ -631,7 +631,7 @@ bool RuleBasedBreakIterator::BreakCache::addPreceding(int32_t position, int32_t
         fEndBufIdx = modChunkSize(fEndBufIdx - 1);
     }
     fBoundaries[nextIdx] = position;
-    fStatuses[nextIdx] = ruleStatusIdx;
+    fStatuses[nextIdx] = static_cast<uint16_t>(ruleStatusIdx);
     fStartBufIdx = nextIdx;
     if (update == UpdateCachePosition) {
         fBufIdx = nextIdx;
index a4b9a718682540b0ed0b91f002e42db010d51a10..08c577696c22549f905b0b890c083f6f418436c9 100644 (file)
@@ -303,17 +303,24 @@ RBBIDataHeader *RBBIRuleBuilder::build(UErrorCode &status) {
 }
 
 void RBBIRuleBuilder::optimizeTables() {
+    bool didSomething;
+    do {
+        didSomething = false;
+
+        // Begin looking for duplicates with char class 3.
+        // Classes 0, 1 and 2 are special; they are unused, {bof} and {eof} respectively,
+        // and should not have other categories merged into them.
+        IntPair duplPair = {3, 0};
+        while (fForwardTable->findDuplCharClassFrom(&duplPair)) {
+            fSetBuilder->mergeCategories(duplPair);
+            fForwardTable->removeColumn(duplPair.second);
+            didSomething = true;
+        }
 
-    // Begin looking for duplicates with char class 3.
-    // Classes 0, 1 and 2 are special; they are unused, {bof} and {eof} respectively,
-    // and should not have other categories merged into them.
-    IntPair duplPair = {3, 0};
-
-    while (fForwardTable->findDuplCharClassFrom(&duplPair)) {
-        fSetBuilder->mergeCategories(duplPair);
-        fForwardTable->removeColumn(duplPair.second);
-    }
-    fForwardTable->removeDuplicateStates();
+        while (fForwardTable->removeDuplicateStates() > 0) {
+            didSomething = true;
+        }
+    } while (didSomething);
 }
 
 U_NAMESPACE_END
index c82e1ea0315157938835063a48ee6c917cc298eb..f536ab5d39863c270e711d48e951858b48ae11c7 100644 (file)
@@ -380,7 +380,7 @@ UBool RBBIRuleScanner::doParseActions(int32_t action)
             // with the current rule expression (on the Node Stack)
             //  with the resulting OR expression going to *destRules
             //
-            RBBINode  *thisRule    = fNodeStack[fNodeStackPtr];
+                       thisRule    = fNodeStack[fNodeStackPtr];
             RBBINode  *prevRules   = *destRules;
             RBBINode  *orNode      = pushNewNode(RBBINode::opOr);
             if (U_FAILURE(*fRB->fStatus)) {
index 8a6f7c792f33b9339125460f6459515c1b44ff4a..a20b51777cda7adf209fe08fedc4d45aa5bd745c 100644 (file)
@@ -428,8 +428,8 @@ void RBBITableBuilder::calcChainedFollowPos(RBBINode *tree) {
     addRuleRootNodes(&ruleRootNodes, tree);
 
     UVector matchStartNodes(*fStatus);
-    for (int i=0; i<ruleRootNodes.size(); ++i) {
-        RBBINode *node = static_cast<RBBINode *>(ruleRootNodes.elementAt(i));
+    for (int j=0; j<ruleRootNodes.size(); ++j) {
+        RBBINode *node = static_cast<RBBINode *>(ruleRootNodes.elementAt(j));
         if (node->fChainIn) {
             setAdd(&matchStartNodes, node->fFirstPosSet);
         }
@@ -1082,21 +1082,22 @@ bool RBBITableBuilder::findDuplCharClassFrom(IntPair *categories) {
     int32_t numStates = fDStates->size();
     int32_t numCols = fRB->fSetBuilder->getNumCharCategories();
 
-    uint16_t table_base;
-    uint16_t table_dupl;
     for (; categories->first < numCols-1; categories->first++) {
         for (categories->second=categories->first+1; categories->second < numCols; categories->second++) {
-             for (int32_t state=0; state<numStates; state++) {
-                 RBBIStateDescriptor *sd = (RBBIStateDescriptor *)fDStates->elementAt(state);
-                 table_base = (uint16_t)sd->fDtran->elementAti(categories->first);
-                 table_dupl = (uint16_t)sd->fDtran->elementAti(categories->second);
-                 if (table_base != table_dupl) {
-                     break;
-                 }
-             }
-             if (table_base == table_dupl) {
-                 return true;
-             }
+            // Initialized to different values to prevent returning true if numStates = 0 (implies no duplicates).
+            uint16_t table_base = 0;
+            uint16_t table_dupl = 1;
+            for (int32_t state=0; state<numStates; state++) {
+                RBBIStateDescriptor *sd = (RBBIStateDescriptor *)fDStates->elementAt(state);
+                table_base = (uint16_t)sd->fDtran->elementAti(categories->first);
+                table_dupl = (uint16_t)sd->fDtran->elementAti(categories->second);
+                if (table_base != table_dupl) {
+                    break;
+                }
+            }
+            if (table_base == table_dupl) {
+                return true;
+            }
         }
     }
     return false;
@@ -1236,7 +1237,7 @@ void RBBITableBuilder::removeSafeState(IntPair duplStates) {
             } else if (existingVal > duplState) {
                 newVal = existingVal - 1;
             }
-            sd->setCharAt(col, newVal);
+            sd->setCharAt(col, static_cast<char16_t>(newVal));
         }
     }
 }
@@ -1245,12 +1246,16 @@ void RBBITableBuilder::removeSafeState(IntPair duplStates) {
 /*
  * RemoveDuplicateStates
  */
-void RBBITableBuilder::removeDuplicateStates() {
+int32_t RBBITableBuilder::removeDuplicateStates() {
     IntPair dupls = {3, 0};
+    int32_t numStatesRemoved = 0;
+
     while (findDuplicateState(&dupls)) {
         // printf("Removing duplicate states (%d, %d)\n", dupls.first, dupls.second);
         removeState(dupls);
+        ++numStatesRemoved;
     }
+    return numStatesRemoved;
 }
 
 
@@ -1411,7 +1416,7 @@ void RBBITableBuilder::buildSafeReverseTable(UErrorCode &status) {
     UnicodeString &startState = *static_cast<UnicodeString *>(fSafeTable->elementAt(1));
     for (int32_t charClass=0; charClass < numCharClasses; ++charClass) {
         // Note: +2 for the start & stop state.
-        startState.setCharAt(charClass, charClass+2);
+        startState.setCharAt(charClass, static_cast<char16_t>(charClass+2));
     }
 
     // Initially make every other state table row look like the start state row,
index eea243e4cdd6c36bef958838cc2c3f5997729bfc..bc6077bb4da3dc6dcc206464d62280fb806555b3 100644 (file)
@@ -15,6 +15,9 @@
 #define RBBITBLB_H
 
 #include "unicode/utypes.h"
+
+#if !UCONFIG_NO_BREAK_ITERATION
+
 #include "unicode/uobject.h"
 #include "unicode/rbbi.h"
 #include "rbbirb.h"
@@ -66,8 +69,11 @@ public:
      */
     void     removeColumn(int32_t column);
 
-    /** Check for, and remove dupicate states (table rows). */
-    void     removeDuplicateStates();
+    /**
+     * Check for, and remove dupicate states (table rows).
+     * @return the number of states removed.
+     */
+    int32_t  removeDuplicateStates();
 
     /** Build the safe reverse table from the already-constructed forward table. */
     void     buildSafeReverseTable(UErrorCode &status);
@@ -204,4 +210,7 @@ private:
 
 
 U_NAMESPACE_END
+
+#endif /* #if !UCONFIG_NO_BREAK_ITERATION */
+
 #endif
index 959ab604c68d48629097cb3bef3c34cf7eccfcff..619e8c7c8bd38c9049b3de85f1323f5e4f529fe5 100644 (file)
@@ -702,9 +702,9 @@ ICUService::getDisplayName(const UnicodeString& id, UnicodeString& result, const
             }
 
             // fallback
-            UErrorCode status = U_ZERO_ERROR;
+            status = U_ZERO_ERROR;
             ICUServiceKey* fallbackKey = createKey(&id, status);
-            while (fallbackKey->fallback()) {
+            while (fallbackKey != NULL && fallbackKey->fallback()) {
                 UnicodeString us;
                 fallbackKey->currentID(us);
                 f = (ICUServiceFactory*)map->get(us);
index 75c4ec38eeb5b0733ce4ea9fad07a166072738ba..c0a5aba4782821bb0bd24a0f068850e9b7af08e5 100644 (file)
@@ -104,7 +104,7 @@ public:
     /**
      * Deletes this object if it has no references.
      * Available for non-cached SharedObjects only. Ownership of cached objects
-     * is with the UnifiedCache, which is soley responsible for eviction and deletion.
+     * is with the UnifiedCache, which is solely responsible for eviction and deletion.
      */
     void deleteIfZeroRefCount() const;
 
index 9e731f5781e2153bee4f849487c4cf24008a5ed2..5d598a0e33b6d46be0f650539d4c4dccde0e63de 100644 (file)
@@ -27,6 +27,7 @@ UnicodeSet* gUnicodeSets[COUNT] = {};
 
 // Save the empty instance in static memory to have well-defined behavior if a
 // regular UnicodeSet cannot be allocated.
+alignas(UnicodeSet)
 char gEmptyUnicodeSet[sizeof(UnicodeSet)];
 
 // Whether the gEmptyUnicodeSet is initialized and ready to use.
index cf5b7b73ae2c1f23d6e99a37d3d14e88af49d5de..6f9cc2e5c22b55f8f0dba8b1354707e438a3cad1 100644 (file)
@@ -373,7 +373,7 @@ StringTrieBuilder::registerFinalValue(int32_t value, UErrorCode &errorCode) {
     return newNode;
 }
 
-UBool
+int32_t
 StringTrieBuilder::hashNode(const void *node) {
     return ((const Node *)node)->hashCode();
 }
index 531ed64cff6ec8a635fbd6a6f05a0e03cf0850d2..4b65d491859bfaa9616300d0b49b8f8b8c3f08e1 100644 (file)
@@ -624,7 +624,7 @@ getDirProps(UBiDi *pBiDi) {
         pBiDi->paras[pBiDi->paraCount-1].level=1;
     }
     if(isDefaultLevel) {
-        pBiDi->paraLevel=pBiDi->paras[0].level;
+        pBiDi->paraLevel=static_cast<UBiDiLevel>(pBiDi->paras[0].level);
     }
     /* The following is needed to resolve the text direction for default level
        paragraphs containing no strong character */
@@ -825,28 +825,28 @@ bracketProcessClosing(BracketData *bd, int32_t openIdx, int32_t position) {
        N0c1. */
 
     if((direction==0 && pOpening->flags&FOUND_L) ||
-       (direction==1 && pOpening->flags&FOUND_R)) { /* N0b */
-        newProp=direction;
+       (direction==1 && pOpening->flags&FOUND_R)) {                         /* N0b */
+        newProp=static_cast<DirProp>(direction);
     }
-    else if(pOpening->flags&(FOUND_L|FOUND_R)) {    /* N0c */
+    else if(pOpening->flags&(FOUND_L|FOUND_R)) {                            /* N0c */
         /* it is stable if there is no containing pair or in
            conditions too complicated and not worth checking */
         stable=(openIdx==pLastIsoRun->start);
         if(direction!=pOpening->contextDir)
-            newProp=pOpening->contextDir;           /* N0c1 */
+            newProp= static_cast<DirProp>(pOpening->contextDir);           /* N0c1 */
         else
-            newProp=direction;                      /* N0c2 */
+            newProp= static_cast<DirProp>(direction);                      /* N0c2 */
     } else {
         /* forget this and any brackets nested within this pair */
-        pLastIsoRun->limit=openIdx;
-        return ON;                                  /* N0d */
+        pLastIsoRun->limit= static_cast<uint16_t>(openIdx);
+        return ON;                                                          /* N0d */
     }
     bd->pBiDi->dirProps[pOpening->position]=newProp;
     bd->pBiDi->dirProps[position]=newProp;
     /* Update nested N0c pairs that may be affected */
     fixN0c(bd, openIdx, pOpening->position, newProp);
     if(stable) {
-        pLastIsoRun->limit=openIdx; /* forget any brackets nested within this pair */
+        pLastIsoRun->limit= static_cast<uint16_t>(openIdx); /* forget any brackets nested within this pair */
         /* remove lower located synonyms if any */
         while(pLastIsoRun->limit>pLastIsoRun->start &&
               bd->openings[pLastIsoRun->limit-1].position==pOpening->position)
@@ -918,7 +918,7 @@ bracketProcessChar(BracketData *bd, int32_t position) {
            bracket or it is a case of N0d */
         /* Now see if it is an opening bracket */
         if(c)
-            match=u_getBidiPairedBracket(c);    /* get the matching char */
+            match= static_cast<UChar>(u_getBidiPairedBracket(c));    /* get the matching char */
         else
             match=0;
         if(match!=c &&                  /* has a matching char */
@@ -948,7 +948,7 @@ bracketProcessChar(BracketData *bd, int32_t position) {
         pLastIsoRun->contextPos=position;
     }
     else if(dirProp<=R || dirProp==AL) {
-        newProp=DIR_FROM_STRONG(dirProp);
+        newProp= static_cast<DirProp>(DIR_FROM_STRONG(dirProp));
         pLastIsoRun->lastBase=dirProp;
         pLastIsoRun->lastStrong=dirProp;
         pLastIsoRun->contextDir=(UBiDiDirection)newProp;
@@ -1101,7 +1101,7 @@ resolveExplicitLevels(UBiDi *pBiDi, UErrorCode *pErrorCode) {
             else
                 start=pBiDi->paras[paraIndex-1].limit;
             limit=pBiDi->paras[paraIndex].limit;
-            level=pBiDi->paras[paraIndex].level;
+            level= static_cast<UBiDiLevel>(pBiDi->paras[paraIndex].level);
             for(i=start; i<limit; i++)
                 levels[i]=level;
         }
@@ -1119,7 +1119,7 @@ resolveExplicitLevels(UBiDi *pBiDi, UErrorCode *pErrorCode) {
             else
                 start=pBiDi->paras[paraIndex-1].limit;
             limit=pBiDi->paras[paraIndex].limit;
-            level=pBiDi->paras[paraIndex].level;
+            level= static_cast<UBiDiLevel>(pBiDi->paras[paraIndex].level);
             for(i=start; i<limit; i++) {
                 levels[i]=level;
                 dirProp=dirProps[i];
@@ -2827,7 +2827,7 @@ ubidi_setPara(UBiDi *pBiDi, const UChar *text, int32_t length,
         DirProp dirProp;
         for(i=0; i<pBiDi->paraCount; i++) {
             last=(pBiDi->paras[i].limit)-1;
-            level=pBiDi->paras[i].level;
+            level= static_cast<UBiDiLevel>(pBiDi->paras[i].level);
             if(level==0)
                 continue;           /* LTR paragraph */
             start= i==0 ? 0 : pBiDi->paras[i-1].limit;
index fd7b90fd37c7ce9f0f128b87f15bd09291d0bef1..e6d1d9c086dd74aad15c1fed230221b38f2fb280 100644 (file)
@@ -146,7 +146,7 @@ static UBool
 action_reorder(UBiDiTransform *pTransform, UErrorCode *pErrorCode)
 {
     ubidi_writeReordered(pTransform->pBidi, pTransform->dest, pTransform->destSize,
-            pTransform->reorderingOptions, pErrorCode);
+            static_cast<uint16_t>(pTransform->reorderingOptions), pErrorCode);
 
     *pTransform->pDestLength = pTransform->srcLength;
     pTransform->reorderingOptions = UBIDI_REORDER_DEFAULT;
@@ -393,9 +393,9 @@ resolveBaseDirection(const UChar *text, uint32_t length,
     switch (*pInLevel) {
         case UBIDI_DEFAULT_LTR:
         case UBIDI_DEFAULT_RTL: {
-            UBiDiLevel level = ubidi_getBaseDirection(text, length);
-            *pInLevel = level != UBIDI_NEUTRAL ? level
-                    : *pInLevel == UBIDI_DEFAULT_RTL ? RTL : LTR;
+            UBiDiLevel level = static_cast<UBiDiLevel>(ubidi_getBaseDirection(text, length));
+            *pInLevel = static_cast<UBiDiLevel>(level != UBIDI_NEUTRAL) ? level
+                    : *pInLevel == UBIDI_DEFAULT_RTL ? static_cast<UBiDiLevel>(RTL) : static_cast<UBiDiLevel>(LTR);
             break;
         }
         default:
index cbd5a6efb56cc8f1bd74bf02646dd780c30b38cd..8414c527d49c9f1cb8995c7a80c2afbebb2a1ad0 100644 (file)
@@ -270,6 +270,7 @@ ucase_addCaseClosure(UChar32 c, const USetAdder *sa) {
             }
         }
         if(HAS_SLOT(excWord, UCASE_EXC_DELTA)) {
+            pe=pe0;
             int32_t delta;
             GET_SLOT_VALUE(excWord, UCASE_EXC_DELTA, pe, delta);
             sa->add(sa->set, (excWord&UCASE_EXC_DELTA_IS_NEGATIVE)==0 ? c+delta : c-delta);
@@ -1167,7 +1168,7 @@ ucase_toFullLower(UChar32 c,
 
         if(HAS_SLOT(excWord, UCASE_EXC_DELTA) && UCASE_IS_UPPER_OR_TITLE(props)) {
             int32_t delta;
-            GET_SLOT_VALUE(excWord, UCASE_EXC_DELTA, pe, delta);
+            GET_SLOT_VALUE(excWord, UCASE_EXC_DELTA, pe2, delta);
             return (excWord&UCASE_EXC_DELTA_IS_NEGATIVE)==0 ? c+delta : c-delta;
         }
         if(HAS_SLOT(excWord, UCASE_EXC_LOWER)) {
@@ -1261,7 +1262,7 @@ toUpperOrTitle(UChar32 c,
 
         if(HAS_SLOT(excWord, UCASE_EXC_DELTA) && UCASE_GET_TYPE(props)==UCASE_LOWER) {
             int32_t delta;
-            GET_SLOT_VALUE(excWord, UCASE_EXC_DELTA, pe, delta);
+            GET_SLOT_VALUE(excWord, UCASE_EXC_DELTA, pe2, delta);
             return (excWord&UCASE_EXC_DELTA_IS_NEGATIVE)==0 ? c+delta : c-delta;
         }
         if(!upperNotTitle && HAS_SLOT(excWord, UCASE_EXC_TITLE)) {
@@ -1469,7 +1470,7 @@ ucase_toFullFolding(UChar32 c,
         }
         if(HAS_SLOT(excWord, UCASE_EXC_DELTA) && UCASE_IS_UPPER_OR_TITLE(props)) {
             int32_t delta;
-            GET_SLOT_VALUE(excWord, UCASE_EXC_DELTA, pe, delta);
+            GET_SLOT_VALUE(excWord, UCASE_EXC_DELTA, pe2, delta);
             return (excWord&UCASE_EXC_DELTA_IS_NEGATIVE)==0 ? c+delta : c-delta;
         }
         if(HAS_SLOT(excWord, UCASE_EXC_FOLD)) {
index 9b6c2058135c5261dcf7a0bd554aa2f5f9f973e4..0ca911b47d9875a7dcabadd0dad6b6d8ab611fcd 100644 (file)
@@ -45,6 +45,7 @@ typedef enum ECleanupCommonType {
     UCLN_COMMON_CURRENCY,
     UCLN_COMMON_LOADED_NORMALIZER2,
     UCLN_COMMON_NORMALIZER2,
+    UCLN_COMMON_CHARACTERPROPERTIES,
     UCLN_COMMON_USET,
     UCLN_COMMON_UNAMES,
     UCLN_COMMON_UPROPS,
@@ -52,7 +53,6 @@ typedef enum ECleanupCommonType {
     UCLN_COMMON_UCNV_IO,
     UCLN_COMMON_UDATA,
     UCLN_COMMON_PUTIL,
-    UCLN_COMMON_LIST_FORMATTER,
     UCLN_COMMON_UINIT,
 
     /*
index ae3c63d31a49070c7ba3aa0676b15304e646b702..4e57619f5009f2e5044dd8eafe01d1bfa2dc63e2 100644 (file)
@@ -1743,13 +1743,9 @@ ucnv_fromUChars(UConverter *cnv,
     }
     if(srcLength>0) {
         srcLimit=src+srcLength;
+        destCapacity=pinCapacity(dest, destCapacity);
         destLimit=dest+destCapacity;
 
-        /* pin the destination limit to U_MAX_PTR; NULL check is for OS/400 */
-        if(destLimit<dest || (destLimit==NULL && dest!=NULL)) {
-            destLimit=(char *)U_MAX_PTR(dest);
-        }
-
         /* perform the conversion */
         ucnv_fromUnicode(cnv, &dest, destLimit, &src, srcLimit, 0, TRUE, pErrorCode);
         destLength=(int32_t)(dest-originalDest);
@@ -1803,13 +1799,9 @@ ucnv_toUChars(UConverter *cnv,
     }
     if(srcLength>0) {
         srcLimit=src+srcLength;
+        destCapacity=pinCapacity(dest, destCapacity);
         destLimit=dest+destCapacity;
 
-        /* pin the destination limit to U_MAX_PTR; NULL check is for OS/400 */
-        if(destLimit<dest || (destLimit==NULL && dest!=NULL)) {
-            destLimit=(UChar *)U_MAX_PTR(dest);
-        }
-
         /* perform the conversion */
         ucnv_toUnicode(cnv, &dest, destLimit, &src, srcLimit, 0, TRUE, pErrorCode);
         destLength=(int32_t)(dest-originalDest);
index 2ef5db9775415232aef0ebbbbcb4a14dbdd3889f..d1a50d269f1b24bfd481b9dabc4d79c0616c1756 100644 (file)
@@ -2772,7 +2772,7 @@ getTrailByte:
                         /* report a pair of illegal bytes if the second byte is not a DBCS starter */
                         ++mySource;
                         /* add another bit so that the code below writes 2 bytes in case of error */
-                        mySourceChar = 0x10000 | (mySourceChar << 8) | trailByte;
+                        mySourceChar = static_cast<UChar>(0x10000 | (mySourceChar << 8) | trailByte);
                     }
                 } else {
                     args->converter->toUBytes[0] = (uint8_t)mySourceChar;
@@ -3304,7 +3304,7 @@ UConverter_toUnicode_ISO_2022_CN_OFFSETS_LOGIC(UConverterToUnicodeArgs *args,
                     myData->isEmptySegment = FALSE;    /* we are handling it, reset to avoid future spurious errors */
                     *err = U_ILLEGAL_ESCAPE_SEQUENCE;
                     args->converter->toUCallbackReason = UCNV_IRREGULAR;
-                    args->converter->toUBytes[0] = mySourceChar;
+                    args->converter->toUBytes[0] = static_cast<uint8_t>(mySourceChar);
                     args->converter->toULength = 1;
                     args->target = myTarget;
                     args->source = mySource;
index 51e31aa4116bd3817bc73320d1695e6d117848f0..b40e1b2c970e51c1aea820550cef1eaa21cc9ae9 100644 (file)
@@ -180,7 +180,7 @@ _CompoundTextgetName(const UConverter* cnv);
 
 
 static int32_t findNextEsc(const char *source, const char *sourceLimit) {
-    int32_t length = sourceLimit - source;
+    int32_t length = static_cast<int32_t>(sourceLimit - source);
     int32_t i;
     for (i = 1; i < length; i++) {
         if (*(source + i) == 0x1B) {
index 28f2727ecdf122df9f967d0bc2b2d683f382374a..a5e8367400ae69a81b1af614c001c4fa8de19dfe 100644 (file)
@@ -71,7 +71,7 @@ _UTF16BEFromUnicodeWithOffsets(UConverterFromUnicodeArgs *pArgs,
 
     /* write the BOM if necessary */
     if(cnv->fromUnicodeStatus==UCNV_NEED_TO_WRITE_BOM) {
-        static const char bom[]={ (char)0xfe, (char)0xff };
+        static const char bom[]={ (char)0xfeu, (char)0xffu };
         ucnv_fromUWriteBytes(cnv,
                              bom, 2,
                              &pArgs->target, pArgs->targetLimit,
@@ -672,7 +672,7 @@ _UTF16LEFromUnicodeWithOffsets(UConverterFromUnicodeArgs *pArgs,
 
     /* write the BOM if necessary */
     if(cnv->fromUnicodeStatus==UCNV_NEED_TO_WRITE_BOM) {
-        static const char bom[]={ (char)0xff, (char)0xfe };
+        static const char bom[]={ (char)0xffu, (char)0xfeu };
         ucnv_fromUWriteBytes(cnv,
                              bom, 2,
                              &pArgs->target, pArgs->targetLimit,
index 5777117a924d8adee5a1a44937cb9ed46e15bb5f..9f98914b9d734dd8bb1046bace2f5776596c7fca 100644 (file)
@@ -228,7 +228,7 @@ T_UConverter_fromUnicode_UTF32_BE(UConverterFromUnicodeArgs * args,
 
     /* write the BOM if necessary */
     if(args->converter->fromUnicodeStatus==UCNV_NEED_TO_WRITE_BOM) {
-        static const char bom[]={ 0, 0, (char)0xfe, (char)0xff };
+        static const char bom[]={ 0, 0, (char)0xfeu, (char)0xffu };
         ucnv_fromUWriteBytes(args->converter,
                              bom, 4,
                              &args->target, args->targetLimit,
@@ -331,7 +331,7 @@ T_UConverter_fromUnicode_UTF32_BE_OFFSET_LOGIC(UConverterFromUnicodeArgs * args,
 
     /* write the BOM if necessary */
     if(args->converter->fromUnicodeStatus==UCNV_NEED_TO_WRITE_BOM) {
-        static const char bom[]={ 0, 0, (char)0xfe, (char)0xff };
+        static const char bom[]={ 0, 0, (char)0xfeu, (char)0xffu };
         ucnv_fromUWriteBytes(args->converter,
                              bom, 4,
                              &args->target, args->targetLimit,
@@ -706,7 +706,7 @@ T_UConverter_fromUnicode_UTF32_LE(UConverterFromUnicodeArgs * args,
 
     /* write the BOM if necessary */
     if(args->converter->fromUnicodeStatus==UCNV_NEED_TO_WRITE_BOM) {
-        static const char bom[]={ (char)0xff, (char)0xfe, 0, 0 };
+        static const char bom[]={ (char)0xffu, (char)0xfeu, 0, 0 };
         ucnv_fromUWriteBytes(args->converter,
                              bom, 4,
                              &args->target, args->targetLimit,
@@ -817,7 +817,7 @@ T_UConverter_fromUnicode_UTF32_LE_OFFSET_LOGIC(UConverterFromUnicodeArgs * args,
 
     /* write the BOM if necessary */
     if(args->converter->fromUnicodeStatus==UCNV_NEED_TO_WRITE_BOM) {
-        static const char bom[]={ (char)0xff, (char)0xfe, 0, 0 };
+        static const char bom[]={ (char)0xffu, (char)0xfeu, 0, 0 };
         ucnv_fromUWriteBytes(args->converter,
                              bom, 4,
                              &args->target, args->targetLimit,
@@ -1043,7 +1043,7 @@ _UTF32Open(UConverter *cnv,
     _UTF32Reset(cnv, UCNV_RESET_BOTH);
 }
 
-static const char utf32BOM[8]={ 0, 0, (char)0xfe, (char)0xff,    (char)0xff, (char)0xfe, 0, 0 };
+static const char utf32BOM[8]={ 0, 0, (char)0xfeu, (char)0xffu, (char)0xffu, (char)0xfeu, 0, 0 };
 
 static void U_CALLCONV
 _UTF32ToUnicodeWithOffsets(UConverterToUnicodeArgs *pArgs,
@@ -1071,7 +1071,7 @@ _UTF32ToUnicodeWithOffsets(UConverterToUnicodeArgs *pArgs,
             b=*source;
             if(b==0) {
                 state=1; /* could be 00 00 FE FF */
-            } else if(b==(char)0xff) {
+            } else if(b==(char)0xffu) {
                 state=5; /* could be FF FE 00 00 */
             } else {
                 state=8; /* default to UTF-32BE */
index 7089d9400c6e95a496162d4bbfcd7d6ab50a9b89..9b518e08df6785da63cd8629810e7e28504136e3 100644 (file)
@@ -108,7 +108,7 @@ morebytes:
                 if (mySource < sourceLimit)
                 {
                     toUBytes[i] = (char) (ch2 = *mySource);
-                    if (!icu::UTF8::isValidTrail(ch, ch2, i, inBytes) &&
+                    if (!icu::UTF8::isValidTrail(ch, static_cast<uint8_t>(ch2), i, inBytes) &&
                             !(isCESU8 && i == 1 && ch == 0xed && U8_IS_TRAIL(ch2)))
                     {
                         break; /* i < inBytes */
@@ -225,7 +225,7 @@ morebytes:
                 if (mySource < sourceLimit)
                 {
                     toUBytes[i] = (char) (ch2 = *mySource);
-                    if (!icu::UTF8::isValidTrail(ch, ch2, i, inBytes) &&
+                    if (!icu::UTF8::isValidTrail(ch, static_cast<uint8_t>(ch2), i, inBytes) &&
                             !(isCESU8 && i == 1 && ch == 0xed && U8_IS_TRAIL(ch2)))
                     {
                         break; /* i < inBytes */
index 79a83d759f182e94f178b59aa274b5de08b5bec5..e9f5206c16341cc45a791f9d83c59292abb27b9b 100644 (file)
@@ -199,7 +199,7 @@ UConverter_toUnicode_HZ_OFFSETS_LOGIC(UConverterToUnicodeArgs *args,
                         *err = U_ILLEGAL_ESCAPE_SEQUENCE;
                         args->converter->toUCallbackReason = UCNV_IRREGULAR;
                         args->converter->toUBytes[0] = UCNV_TILDE;
-                        args->converter->toUBytes[1] = mySourceChar;
+                        args->converter->toUBytes[1] = static_cast<uint8_t>(mySourceChar);
                         args->converter->toULength = 2;
                         args->target = myTarget;
                         args->source = mySource;
@@ -229,7 +229,7 @@ UConverter_toUnicode_HZ_OFFSETS_LOGIC(UConverterToUnicodeArgs *args,
                         --mySource;
                     } else {
                         /* Include the current byte in the illegal sequence. */
-                        args->converter->toUBytes[1] = mySourceChar;
+                        args->converter->toUBytes[1] = static_cast<uint8_t>(mySourceChar);
                         args->converter->toULength = 2;
                     }
                     args->target = myTarget;
index 2d0c857758d9bc93898eca2338b3a57e4e0b20d5..583744b73a30dc21f6c43b1518ab6ad48fe2a6e8 100644 (file)
@@ -4164,8 +4164,8 @@ ucnv_MBCSFromUnicodeWithOffsets(UConverterFromUnicodeArgs *pArgs,
     nextSourceIndex=0;
 
     /* Get the SI/SO character for the converter */
-    siLength = getSISOBytes(SI, cnv->options, siBytes);
-    soLength = getSISOBytes(SO, cnv->options, soBytes);
+    siLength = static_cast<uint8_t>(getSISOBytes(SI, cnv->options, siBytes));
+    soLength = static_cast<uint8_t>(getSISOBytes(SO, cnv->options, soBytes));
 
     /* conversion loop */
     /*
index ba062b35ceca8b9b0f62b0cda8874aaa87b4a3e0..79be8c31f2da5eca83dd585c341ddb8b4d855a19 100644 (file)
@@ -41,6 +41,7 @@
 #include "propsvec.h"
 #include "uassert.h"
 #include "ucmndata.h"
+#include "udataswp.h"
 #include "uenumimp.h"
 #include "cmemory.h"
 #include "cstring.h"
@@ -72,7 +73,7 @@ static void generateSelectorData(UConverterSelector* result,
   // set errorValue to all-ones
   for (int32_t col = 0; col < columns; col++) {
     upvec_setValue(upvec, UPVEC_ERROR_VALUE_CP, UPVEC_ERROR_VALUE_CP,
-                   col, ~0, ~0, status);
+                   col, static_cast<uint32_t>(~0), static_cast<uint32_t>(~0), status);
   }
 
   for (int32_t i = 0; i < result->encodingsCount; ++i) {
@@ -109,7 +110,7 @@ static void generateSelectorData(UConverterSelector* result,
         // this will be reached for the converters that fill the set with
         // strings. Those should be ignored by our system
       } else {
-        upvec_setValue(upvec, start_char, end_char, column, ~0, mask,
+        upvec_setValue(upvec, start_char, end_char, column, static_cast<uint32_t>(~0), mask,
                        status);
       }
     }
@@ -130,7 +131,7 @@ static void generateSelectorData(UConverterSelector* result,
       uset_getItem(excludedCodePoints, j, &start_char, &end_char, NULL, 0,
                    status);
       for (int32_t col = 0; col < columns; col++) {
-        upvec_setValue(upvec, start_char, end_char, col, ~0, ~0,
+        upvec_setValue(upvec, start_char, end_char, col, static_cast<uint32_t>(~0), static_cast<uint32_t>(~0),
                       status);
       }
     }
@@ -684,7 +685,7 @@ static int16_t countOnes(uint32_t* mask, int32_t len) {
       ent &= ent - 1; // clear the least significant bit set
     }
   }
-  return totalOnes;
+  return static_cast<int16_t>(totalOnes);
 }
 
 
index 1822705d37854b47bd617a00eb3ba2d9a79c7fcf..1af19863fa84e7556f505f076682234992e3630d 100644 (file)
 
 /* swapping ----------------------------------------------------------------- */
 
-/*
- * This performs data swapping for a folded trie (see utrie.c for details).
- */
-
-U_CAPI int32_t U_EXPORT2
-utrie_swap(const UDataSwapper *ds,
-           const void *inData, int32_t length, void *outData,
-           UErrorCode *pErrorCode) {
-    const UTrieHeader *inTrie;
-    UTrieHeader trie;
-    int32_t size;
-    UBool dataIs32;
-
-    if(pErrorCode==NULL || U_FAILURE(*pErrorCode)) {
-        return 0;
-    }
-    if(ds==NULL || inData==NULL || (length>=0 && outData==NULL)) {
-        *pErrorCode=U_ILLEGAL_ARGUMENT_ERROR;
-        return 0;
-    }
-
-    /* setup and swapping */
-    if(length>=0 && (uint32_t)length<sizeof(UTrieHeader)) {
-        *pErrorCode=U_INDEX_OUTOFBOUNDS_ERROR;
-        return 0;
-    }
-
-    inTrie=(const UTrieHeader *)inData;
-    trie.signature=ds->readUInt32(inTrie->signature);
-    trie.options=ds->readUInt32(inTrie->options);
-    trie.indexLength=udata_readInt32(ds, inTrie->indexLength);
-    trie.dataLength=udata_readInt32(ds, inTrie->dataLength);
-
-    if( trie.signature!=0x54726965 ||
-        (trie.options&UTRIE_OPTIONS_SHIFT_MASK)!=UTRIE_SHIFT ||
-        ((trie.options>>UTRIE_OPTIONS_INDEX_SHIFT)&UTRIE_OPTIONS_SHIFT_MASK)!=UTRIE_INDEX_SHIFT ||
-        trie.indexLength<UTRIE_BMP_INDEX_LENGTH ||
-        (trie.indexLength&(UTRIE_SURROGATE_BLOCK_COUNT-1))!=0 ||
-        trie.dataLength<UTRIE_DATA_BLOCK_LENGTH ||
-        (trie.dataLength&(UTRIE_DATA_GRANULARITY-1))!=0 ||
-        ((trie.options&UTRIE_OPTIONS_LATIN1_IS_LINEAR)!=0 && trie.dataLength<(UTRIE_DATA_BLOCK_LENGTH+0x100))
-    ) {
-        *pErrorCode=U_INVALID_FORMAT_ERROR; /* not a UTrie */
-        return 0;
-    }
-
-    dataIs32=(UBool)((trie.options&UTRIE_OPTIONS_DATA_IS_32_BIT)!=0);
-    size=sizeof(UTrieHeader)+trie.indexLength*2+trie.dataLength*(dataIs32?4:2);
-
-    if(length>=0) {
-        UTrieHeader *outTrie;
-
-        if(length<size) {
-            *pErrorCode=U_INDEX_OUTOFBOUNDS_ERROR;
-            return 0;
-        }
-
-        outTrie=(UTrieHeader *)outData;
-
-        /* swap the header */
-        ds->swapArray32(ds, inTrie, sizeof(UTrieHeader), outTrie, pErrorCode);
-
-        /* swap the index and the data */
-        if(dataIs32) {
-            ds->swapArray16(ds, inTrie+1, trie.indexLength*2, outTrie+1, pErrorCode);
-            ds->swapArray32(ds, (const uint16_t *)(inTrie+1)+trie.indexLength, trie.dataLength*4,
-                                     (uint16_t *)(outTrie+1)+trie.indexLength, pErrorCode);
-        } else {
-            ds->swapArray16(ds, inTrie+1, (trie.indexLength+trie.dataLength)*2, outTrie+1, pErrorCode);
-        }
-    }
-
-    return size;
-}
-
 #if !UCONFIG_NO_COLLATION
 
 U_CAPI UBool U_EXPORT2
diff --git a/source/common/ucptrie.cpp b/source/common/ucptrie.cpp
new file mode 100644 (file)
index 0000000..13496ad
--- /dev/null
@@ -0,0 +1,590 @@
+// © 2017 and later: Unicode, Inc. and others.
+// License & terms of use: http://www.unicode.org/copyright.html
+
+// ucptrie.cpp (modified from utrie2.cpp)
+// created: 2017dec29 Markus W. Scherer
+
+// #define UCPTRIE_DEBUG
+#ifdef UCPTRIE_DEBUG
+#   include <stdio.h>
+#endif
+
+#include "unicode/utypes.h"
+#include "unicode/ucptrie.h"
+#include "unicode/utf.h"
+#include "unicode/utf8.h"
+#include "unicode/utf16.h"
+#include "cmemory.h"
+#include "uassert.h"
+#include "ucptrie_impl.h"
+
+U_CAPI UCPTrie * U_EXPORT2
+ucptrie_openFromBinary(UCPTrieType type, UCPTrieValueWidth valueWidth,
+                       const void *data, int32_t length, int32_t *pActualLength,
+                       UErrorCode *pErrorCode) {
+    if (U_FAILURE(*pErrorCode)) {
+        return nullptr;
+    }
+
+    if (length <= 0 || (U_POINTER_MASK_LSB(data, 3) != 0) ||
+            type < UCPTRIE_TYPE_ANY || UCPTRIE_TYPE_SMALL < type ||
+            valueWidth < UCPTRIE_VALUE_BITS_ANY || UCPTRIE_VALUE_BITS_8 < valueWidth) {
+        *pErrorCode = U_ILLEGAL_ARGUMENT_ERROR;
+        return nullptr;
+    }
+
+    // Enough data for a trie header?
+    if (length < (int32_t)sizeof(UCPTrieHeader)) {
+        *pErrorCode = U_INVALID_FORMAT_ERROR;
+        return nullptr;
+    }
+
+    // Check the signature.
+    const UCPTrieHeader *header = (const UCPTrieHeader *)data;
+    if (header->signature != UCPTRIE_SIG) {
+        *pErrorCode = U_INVALID_FORMAT_ERROR;
+        return nullptr;
+    }
+
+    int32_t options = header->options;
+    int32_t typeInt = (options >> 6) & 3;
+    int32_t valueWidthInt = options & UCPTRIE_OPTIONS_VALUE_BITS_MASK;
+    if (typeInt > UCPTRIE_TYPE_SMALL || valueWidthInt > UCPTRIE_VALUE_BITS_8 ||
+            (options & UCPTRIE_OPTIONS_RESERVED_MASK) != 0) {
+        *pErrorCode = U_INVALID_FORMAT_ERROR;
+        return nullptr;
+    }
+    UCPTrieType actualType = (UCPTrieType)typeInt;
+    UCPTrieValueWidth actualValueWidth = (UCPTrieValueWidth)valueWidthInt;
+    if (type < 0) {
+        type = actualType;
+    }
+    if (valueWidth < 0) {
+        valueWidth = actualValueWidth;
+    }
+    if (type != actualType || valueWidth != actualValueWidth) {
+        *pErrorCode = U_INVALID_FORMAT_ERROR;
+        return nullptr;
+    }
+
+    // Get the length values and offsets.
+    UCPTrie tempTrie;
+    uprv_memset(&tempTrie, 0, sizeof(tempTrie));
+    tempTrie.indexLength = header->indexLength;
+    tempTrie.dataLength =
+        ((options & UCPTRIE_OPTIONS_DATA_LENGTH_MASK) << 4) | header->dataLength;
+    tempTrie.index3NullOffset = header->index3NullOffset;
+    tempTrie.dataNullOffset =
+        ((options & UCPTRIE_OPTIONS_DATA_NULL_OFFSET_MASK) << 8) | header->dataNullOffset;
+
+    tempTrie.highStart = header->shiftedHighStart << UCPTRIE_SHIFT_2;
+    tempTrie.shifted12HighStart = (tempTrie.highStart + 0xfff) >> 12;
+    tempTrie.type = type;
+    tempTrie.valueWidth = valueWidth;
+
+    // Calculate the actual length.
+    int32_t actualLength = (int32_t)sizeof(UCPTrieHeader) + tempTrie.indexLength * 2;
+    if (valueWidth == UCPTRIE_VALUE_BITS_16) {
+        actualLength += tempTrie.dataLength * 2;
+    } else if (valueWidth == UCPTRIE_VALUE_BITS_32) {
+        actualLength += tempTrie.dataLength * 4;
+    } else {
+        actualLength += tempTrie.dataLength;
+    }
+    if (length < actualLength) {
+        *pErrorCode = U_INVALID_FORMAT_ERROR;  // Not enough bytes.
+        return nullptr;
+    }
+
+    // Allocate the trie.
+    UCPTrie *trie = (UCPTrie *)uprv_malloc(sizeof(UCPTrie));
+    if (trie == nullptr) {
+        *pErrorCode = U_MEMORY_ALLOCATION_ERROR;
+        return nullptr;
+    }
+    uprv_memcpy(trie, &tempTrie, sizeof(tempTrie));
+#ifdef UCPTRIE_DEBUG
+    trie->name = "fromSerialized";
+#endif
+
+    // Set the pointers to its index and data arrays.
+    const uint16_t *p16 = (const uint16_t *)(header + 1);
+    trie->index = p16;
+    p16 += trie->indexLength;
+
+    // Get the data.
+    int32_t nullValueOffset = trie->dataNullOffset;
+    if (nullValueOffset >= trie->dataLength) {
+        nullValueOffset = trie->dataLength - UCPTRIE_HIGH_VALUE_NEG_DATA_OFFSET;
+    }
+    switch (valueWidth) {
+    case UCPTRIE_VALUE_BITS_16:
+        trie->data.ptr16 = p16;
+        trie->nullValue = trie->data.ptr16[nullValueOffset];
+        break;
+    case UCPTRIE_VALUE_BITS_32:
+        trie->data.ptr32 = (const uint32_t *)p16;
+        trie->nullValue = trie->data.ptr32[nullValueOffset];
+        break;
+    case UCPTRIE_VALUE_BITS_8:
+        trie->data.ptr8 = (const uint8_t *)p16;
+        trie->nullValue = trie->data.ptr8[nullValueOffset];
+        break;
+    default:
+        // Unreachable because valueWidth was checked above.
+        *pErrorCode = U_INVALID_FORMAT_ERROR;
+        return nullptr;
+    }
+
+    if (pActualLength != nullptr) {
+        *pActualLength = actualLength;
+    }
+    return trie;
+}
+
+U_CAPI void U_EXPORT2
+ucptrie_close(UCPTrie *trie) {
+    uprv_free(trie);
+}
+
+U_CAPI UCPTrieType U_EXPORT2
+ucptrie_getType(const UCPTrie *trie) {
+    return (UCPTrieType)trie->type;
+}
+
+U_CAPI UCPTrieValueWidth U_EXPORT2
+ucptrie_getValueWidth(const UCPTrie *trie) {
+    return (UCPTrieValueWidth)trie->valueWidth;
+}
+
+U_CAPI int32_t U_EXPORT2
+ucptrie_internalSmallIndex(const UCPTrie *trie, UChar32 c) {
+    int32_t i1 = c >> UCPTRIE_SHIFT_1;
+    if (trie->type == UCPTRIE_TYPE_FAST) {
+        U_ASSERT(0xffff < c && c < trie->highStart);
+        i1 += UCPTRIE_BMP_INDEX_LENGTH - UCPTRIE_OMITTED_BMP_INDEX_1_LENGTH;
+    } else {
+        U_ASSERT((uint32_t)c < (uint32_t)trie->highStart && trie->highStart > UCPTRIE_SMALL_LIMIT);
+        i1 += UCPTRIE_SMALL_INDEX_LENGTH;
+    }
+    int32_t i3Block = trie->index[
+        (int32_t)trie->index[i1] + ((c >> UCPTRIE_SHIFT_2) & UCPTRIE_INDEX_2_MASK)];
+    int32_t i3 = (c >> UCPTRIE_SHIFT_3) & UCPTRIE_INDEX_3_MASK;
+    int32_t dataBlock;
+    if ((i3Block & 0x8000) == 0) {
+        // 16-bit indexes
+        dataBlock = trie->index[i3Block + i3];
+    } else {
+        // 18-bit indexes stored in groups of 9 entries per 8 indexes.
+        i3Block = (i3Block & 0x7fff) + (i3 & ~7) + (i3 >> 3);
+        i3 &= 7;
+        dataBlock = ((int32_t)trie->index[i3Block++] << (2 + (2 * i3))) & 0x30000;
+        dataBlock |= trie->index[i3Block + i3];
+    }
+    return dataBlock + (c & UCPTRIE_SMALL_DATA_MASK);
+}
+
+U_CAPI int32_t U_EXPORT2
+ucptrie_internalSmallU8Index(const UCPTrie *trie, int32_t lt1, uint8_t t2, uint8_t t3) {
+    UChar32 c = (lt1 << 12) | (t2 << 6) | t3;
+    if (c >= trie->highStart) {
+        // Possible because the UTF-8 macro compares with shifted12HighStart which may be higher.
+        return trie->dataLength - UCPTRIE_HIGH_VALUE_NEG_DATA_OFFSET;
+    }
+    return ucptrie_internalSmallIndex(trie, c);
+}
+
+U_CAPI int32_t U_EXPORT2
+ucptrie_internalU8PrevIndex(const UCPTrie *trie, UChar32 c,
+                            const uint8_t *start, const uint8_t *src) {
+    int32_t i, length;
+    // Support 64-bit pointers by avoiding cast of arbitrary difference.
+    if ((src - start) <= 7) {
+        i = length = (int32_t)(src - start);
+    } else {
+        i = length = 7;
+        start = src - 7;
+    }
+    c = utf8_prevCharSafeBody(start, 0, &i, c, -1);
+    i = length - i;  // Number of bytes read backward from src.
+    int32_t idx = _UCPTRIE_CP_INDEX(trie, 0xffff, c);
+    return (idx << 3) | i;
+}
+
+namespace {
+
+inline uint32_t getValue(UCPTrieData data, UCPTrieValueWidth valueWidth, int32_t dataIndex) {
+    switch (valueWidth) {
+    case UCPTRIE_VALUE_BITS_16:
+        return data.ptr16[dataIndex];
+    case UCPTRIE_VALUE_BITS_32:
+        return data.ptr32[dataIndex];
+    case UCPTRIE_VALUE_BITS_8:
+        return data.ptr8[dataIndex];
+    default:
+        // Unreachable if the trie is properly initialized.
+        return 0xffffffff;
+    }
+}
+
+}  // namespace
+
+U_CAPI uint32_t U_EXPORT2
+ucptrie_get(const UCPTrie *trie, UChar32 c) {
+    int32_t dataIndex;
+    if ((uint32_t)c <= 0x7f) {
+        // linear ASCII
+        dataIndex = c;
+    } else {
+        UChar32 fastMax = trie->type == UCPTRIE_TYPE_FAST ? 0xffff : UCPTRIE_SMALL_MAX;
+        dataIndex = _UCPTRIE_CP_INDEX(trie, fastMax, c);
+    }
+    return getValue(trie->data, (UCPTrieValueWidth)trie->valueWidth, dataIndex);
+}
+
+namespace {
+
+constexpr int32_t MAX_UNICODE = 0x10ffff;
+
+inline uint32_t maybeFilterValue(uint32_t value, uint32_t trieNullValue, uint32_t nullValue,
+                                 UCPMapValueFilter *filter, const void *context) {
+    if (value == trieNullValue) {
+        value = nullValue;
+    } else if (filter != nullptr) {
+        value = filter(context, value);
+    }
+    return value;
+}
+
+UChar32 getRange(const void *t, UChar32 start,
+                 UCPMapValueFilter *filter, const void *context, uint32_t *pValue) {
+    if ((uint32_t)start > MAX_UNICODE) {
+        return U_SENTINEL;
+    }
+    const UCPTrie *trie = reinterpret_cast<const UCPTrie *>(t);
+    UCPTrieValueWidth valueWidth = (UCPTrieValueWidth)trie->valueWidth;
+    if (start >= trie->highStart) {
+        if (pValue != nullptr) {
+            int32_t di = trie->dataLength - UCPTRIE_HIGH_VALUE_NEG_DATA_OFFSET;
+            uint32_t value = getValue(trie->data, valueWidth, di);
+            if (filter != nullptr) { value = filter(context, value); }
+            *pValue = value;
+        }
+        return MAX_UNICODE;
+    }
+
+    uint32_t nullValue = trie->nullValue;
+    if (filter != nullptr) { nullValue = filter(context, nullValue); }
+    const uint16_t *index = trie->index;
+
+    int32_t prevI3Block = -1;
+    int32_t prevBlock = -1;
+    UChar32 c = start;
+    uint32_t value;
+    bool haveValue = false;
+    do {
+        int32_t i3Block;
+        int32_t i3;
+        int32_t i3BlockLength;
+        int32_t dataBlockLength;
+        if (c <= 0xffff && (trie->type == UCPTRIE_TYPE_FAST || c <= UCPTRIE_SMALL_MAX)) {
+            i3Block = 0;
+            i3 = c >> UCPTRIE_FAST_SHIFT;
+            i3BlockLength = trie->type == UCPTRIE_TYPE_FAST ?
+                UCPTRIE_BMP_INDEX_LENGTH : UCPTRIE_SMALL_INDEX_LENGTH;
+            dataBlockLength = UCPTRIE_FAST_DATA_BLOCK_LENGTH;
+        } else {
+            // Use the multi-stage index.
+            int32_t i1 = c >> UCPTRIE_SHIFT_1;
+            if (trie->type == UCPTRIE_TYPE_FAST) {
+                U_ASSERT(0xffff < c && c < trie->highStart);
+                i1 += UCPTRIE_BMP_INDEX_LENGTH - UCPTRIE_OMITTED_BMP_INDEX_1_LENGTH;
+            } else {
+                U_ASSERT(c < trie->highStart && trie->highStart > UCPTRIE_SMALL_LIMIT);
+                i1 += UCPTRIE_SMALL_INDEX_LENGTH;
+            }
+            i3Block = trie->index[
+                (int32_t)trie->index[i1] + ((c >> UCPTRIE_SHIFT_2) & UCPTRIE_INDEX_2_MASK)];
+            if (i3Block == prevI3Block && (c - start) >= UCPTRIE_CP_PER_INDEX_2_ENTRY) {
+                // The index-3 block is the same as the previous one, and filled with value.
+                U_ASSERT((c & (UCPTRIE_CP_PER_INDEX_2_ENTRY - 1)) == 0);
+                c += UCPTRIE_CP_PER_INDEX_2_ENTRY;
+                continue;
+            }
+            prevI3Block = i3Block;
+            if (i3Block == trie->index3NullOffset) {
+                // This is the index-3 null block.
+                if (haveValue) {
+                    if (nullValue != value) {
+                        return c - 1;
+                    }
+                } else {
+                    value = nullValue;
+                    if (pValue != nullptr) { *pValue = nullValue; }
+                    haveValue = true;
+                }
+                prevBlock = trie->dataNullOffset;
+                c = (c + UCPTRIE_CP_PER_INDEX_2_ENTRY) & ~(UCPTRIE_CP_PER_INDEX_2_ENTRY - 1);
+                continue;
+            }
+            i3 = (c >> UCPTRIE_SHIFT_3) & UCPTRIE_INDEX_3_MASK;
+            i3BlockLength = UCPTRIE_INDEX_3_BLOCK_LENGTH;
+            dataBlockLength = UCPTRIE_SMALL_DATA_BLOCK_LENGTH;
+        }
+        // Enumerate data blocks for one index-3 block.
+        do {
+            int32_t block;
+            if ((i3Block & 0x8000) == 0) {
+                block = index[i3Block + i3];
+            } else {
+                // 18-bit indexes stored in groups of 9 entries per 8 indexes.
+                int32_t group = (i3Block & 0x7fff) + (i3 & ~7) + (i3 >> 3);
+                int32_t gi = i3 & 7;
+                block = ((int32_t)index[group++] << (2 + (2 * gi))) & 0x30000;
+                block |= index[group + gi];
+            }
+            if (block == prevBlock && (c - start) >= dataBlockLength) {
+                // The block is the same as the previous one, and filled with value.
+                U_ASSERT((c & (dataBlockLength - 1)) == 0);
+                c += dataBlockLength;
+            } else {
+                int32_t dataMask = dataBlockLength - 1;
+                prevBlock = block;
+                if (block == trie->dataNullOffset) {
+                    // This is the data null block.
+                    if (haveValue) {
+                        if (nullValue != value) {
+                            return c - 1;
+                        }
+                    } else {
+                        value = nullValue;
+                        if (pValue != nullptr) { *pValue = nullValue; }
+                        haveValue = true;
+                    }
+                    c = (c + dataBlockLength) & ~dataMask;
+                } else {
+                    int32_t di = block + (c & dataMask);
+                    uint32_t value2 = getValue(trie->data, valueWidth, di);
+                    value2 = maybeFilterValue(value2, trie->nullValue, nullValue,
+                                              filter, context);
+                    if (haveValue) {
+                        if (value2 != value) {
+                            return c - 1;
+                        }
+                    } else {
+                        value = value2;
+                        if (pValue != nullptr) { *pValue = value; }
+                        haveValue = true;
+                    }
+                    while ((++c & dataMask) != 0) {
+                        if (maybeFilterValue(getValue(trie->data, valueWidth, ++di),
+                                             trie->nullValue, nullValue,
+                                             filter, context) != value) {
+                            return c - 1;
+                        }
+                    }
+                }
+            }
+        } while (++i3 < i3BlockLength);
+    } while (c < trie->highStart);
+    U_ASSERT(haveValue);
+    int32_t di = trie->dataLength - UCPTRIE_HIGH_VALUE_NEG_DATA_OFFSET;
+    uint32_t highValue = getValue(trie->data, valueWidth, di);
+    if (maybeFilterValue(highValue, trie->nullValue, nullValue,
+                         filter, context) != value) {
+        return c - 1;
+    } else {
+        return MAX_UNICODE;
+    }
+}
+
+}  // namespace
+
+U_CFUNC UChar32
+ucptrie_internalGetRange(UCPTrieGetRange *getRange,
+                         const void *trie, UChar32 start,
+                         UCPMapRangeOption option, uint32_t surrogateValue,
+                         UCPMapValueFilter *filter, const void *context, uint32_t *pValue) {
+    if (option == UCPMAP_RANGE_NORMAL) {
+        return getRange(trie, start, filter, context, pValue);
+    }
+    uint32_t value;
+    if (pValue == nullptr) {
+        // We need to examine the range value even if the caller does not want it.
+        pValue = &value;
+    }
+    UChar32 surrEnd = option == UCPMAP_RANGE_FIXED_ALL_SURROGATES ? 0xdfff : 0xdbff;
+    UChar32 end = getRange(trie, start, filter, context, pValue);
+    if (end < 0xd7ff || start > surrEnd) {
+        return end;
+    }
+    // The range overlaps with surrogates, or ends just before the first one.
+    if (*pValue == surrogateValue) {
+        if (end >= surrEnd) {
+            // Surrogates followed by a non-surrogateValue range,
+            // or surrogates are part of a larger surrogateValue range.
+            return end;
+        }
+    } else {
+        if (start <= 0xd7ff) {
+            return 0xd7ff;  // Non-surrogateValue range ends before surrogateValue surrogates.
+        }
+        // Start is a surrogate with a non-surrogateValue code *unit* value.
+        // Return a surrogateValue code *point* range.
+        *pValue = surrogateValue;
+        if (end > surrEnd) {
+            return surrEnd;  // Surrogate range ends before non-surrogateValue rest of range.
+        }
+    }
+    // See if the surrogateValue surrogate range can be merged with
+    // an immediately following range.
+    uint32_t value2;
+    UChar32 end2 = getRange(trie, surrEnd + 1, filter, context, &value2);
+    if (value2 == surrogateValue) {
+        return end2;
+    }
+    return surrEnd;
+}
+
+U_CAPI UChar32 U_EXPORT2
+ucptrie_getRange(const UCPTrie *trie, UChar32 start,
+                 UCPMapRangeOption option, uint32_t surrogateValue,
+                 UCPMapValueFilter *filter, const void *context, uint32_t *pValue) {
+    return ucptrie_internalGetRange(getRange, trie, start,
+                                    option, surrogateValue,
+                                    filter, context, pValue);
+}
+
+U_CAPI int32_t U_EXPORT2
+ucptrie_toBinary(const UCPTrie *trie,
+                 void *data, int32_t capacity,
+                 UErrorCode *pErrorCode) {
+    if (U_FAILURE(*pErrorCode)) {
+        return 0;
+    }
+
+    UCPTrieType type = (UCPTrieType)trie->type;
+    UCPTrieValueWidth valueWidth = (UCPTrieValueWidth)trie->valueWidth;
+    if (type < UCPTRIE_TYPE_FAST || UCPTRIE_TYPE_SMALL < type ||
+            valueWidth < UCPTRIE_VALUE_BITS_16 || UCPTRIE_VALUE_BITS_8 < valueWidth ||
+            capacity < 0 ||
+            (capacity > 0 && (data == nullptr || (U_POINTER_MASK_LSB(data, 3) != 0)))) {
+        *pErrorCode = U_ILLEGAL_ARGUMENT_ERROR;
+        return 0;
+    }
+
+    int32_t length = (int32_t)sizeof(UCPTrieHeader) + trie->indexLength * 2;
+    switch (valueWidth) {
+    case UCPTRIE_VALUE_BITS_16:
+        length += trie->dataLength * 2;
+        break;
+    case UCPTRIE_VALUE_BITS_32:
+        length += trie->dataLength * 4;
+        break;
+    case UCPTRIE_VALUE_BITS_8:
+        length += trie->dataLength;
+        break;
+    default:
+        // unreachable
+        break;
+    }
+    if (capacity < length) {
+        *pErrorCode = U_BUFFER_OVERFLOW_ERROR;
+        return length;
+    }
+
+    char *bytes = (char *)data;
+    UCPTrieHeader *header = (UCPTrieHeader *)bytes;
+    header->signature = UCPTRIE_SIG;  // "Tri3"
+    header->options = (uint16_t)(
+        ((trie->dataLength & 0xf0000) >> 4) |
+        ((trie->dataNullOffset & 0xf0000) >> 8) |
+        (trie->type << 6) |
+        valueWidth);
+    header->indexLength = (uint16_t)trie->indexLength;
+    header->dataLength = (uint16_t)trie->dataLength;
+    header->index3NullOffset = trie->index3NullOffset;
+    header->dataNullOffset = (uint16_t)trie->dataNullOffset;
+    header->shiftedHighStart = trie->highStart >> UCPTRIE_SHIFT_2;
+    bytes += sizeof(UCPTrieHeader);
+
+    uprv_memcpy(bytes, trie->index, trie->indexLength * 2);
+    bytes += trie->indexLength * 2;
+
+    switch (valueWidth) {
+    case UCPTRIE_VALUE_BITS_16:
+        uprv_memcpy(bytes, trie->data.ptr16, trie->dataLength * 2);
+        break;
+    case UCPTRIE_VALUE_BITS_32:
+        uprv_memcpy(bytes, trie->data.ptr32, trie->dataLength * 4);
+        break;
+    case UCPTRIE_VALUE_BITS_8:
+        uprv_memcpy(bytes, trie->data.ptr8, trie->dataLength);
+        break;
+    default:
+        // unreachable
+        break;
+    }
+    return length;
+}
+
+namespace {
+
+#ifdef UCPTRIE_DEBUG
+long countNull(const UCPTrie *trie) {
+    uint32_t nullValue=trie->nullValue;
+    int32_t length=trie->dataLength;
+    long count=0;
+    switch (trie->valueWidth) {
+    case UCPTRIE_VALUE_BITS_16:
+        for(int32_t i=0; i<length; ++i) {
+            if(trie->data.ptr16[i]==nullValue) { ++count; }
+        }
+        break;
+    case UCPTRIE_VALUE_BITS_32:
+        for(int32_t i=0; i<length; ++i) {
+            if(trie->data.ptr32[i]==nullValue) { ++count; }
+        }
+        break;
+    case UCPTRIE_VALUE_BITS_8:
+        for(int32_t i=0; i<length; ++i) {
+            if(trie->data.ptr8[i]==nullValue) { ++count; }
+        }
+        break;
+    default:
+        // unreachable
+        break;
+    }
+    return count;
+}
+
+U_CFUNC void
+ucptrie_printLengths(const UCPTrie *trie, const char *which) {
+    long indexLength=trie->indexLength;
+    long dataLength=(long)trie->dataLength;
+    long totalLength=(long)sizeof(UCPTrieHeader)+indexLength*2+
+            dataLength*(trie->valueWidth==UCPTRIE_VALUE_BITS_16 ? 2 :
+                        trie->valueWidth==UCPTRIE_VALUE_BITS_32 ? 4 : 1);
+    printf("**UCPTrieLengths(%s %s)** index:%6ld  data:%6ld  countNull:%6ld  serialized:%6ld\n",
+           which, trie->name, indexLength, dataLength, countNull(trie), totalLength);
+}
+#endif
+
+}  // namespace
+
+// UCPMap ----
+// Initially, this is the same as UCPTrie. This may well change.
+
+U_CAPI uint32_t U_EXPORT2
+ucpmap_get(const UCPMap *map, UChar32 c) {
+    return ucptrie_get(reinterpret_cast<const UCPTrie *>(map), c);
+}
+
+U_CAPI UChar32 U_EXPORT2
+ucpmap_getRange(const UCPMap *map, UChar32 start,
+                UCPMapRangeOption option, uint32_t surrogateValue,
+                UCPMapValueFilter *filter, const void *context, uint32_t *pValue) {
+    return ucptrie_getRange(reinterpret_cast<const UCPTrie *>(map), start,
+                            option, surrogateValue,
+                            filter, context, pValue);
+}
diff --git a/source/common/ucptrie_impl.h b/source/common/ucptrie_impl.h
new file mode 100644 (file)
index 0000000..1fe6a18
--- /dev/null
@@ -0,0 +1,289 @@
+// © 2017 and later: Unicode, Inc. and others.
+// License & terms of use: http://www.unicode.org/copyright.html
+
+// ucptrie_impl.h (modified from utrie2_impl.h)
+// created: 2017dec29 Markus W. Scherer
+
+#ifndef __UCPTRIE_IMPL_H__
+#define __UCPTRIE_IMPL_H__
+
+#include "unicode/ucptrie.h"
+#ifdef UCPTRIE_DEBUG
+#include "unicode/umutablecptrie.h"
+#endif
+
+// UCPTrie signature values, in platform endianness and opposite endianness.
+// The UCPTrie signature ASCII byte values spell "Tri3".
+#define UCPTRIE_SIG     0x54726933
+#define UCPTRIE_OE_SIG  0x33697254
+
+/**
+ * Header data for the binary, memory-mappable representation of a UCPTrie/CodePointTrie.
+ * @internal
+ */
+struct UCPTrieHeader {
+    /** "Tri3" in big-endian US-ASCII (0x54726933) */
+    uint32_t signature;
+
+    /**
+     * Options bit field:
+     * Bits 15..12: Data length bits 19..16.
+     * Bits 11..8: Data null block offset bits 19..16.
+     * Bits 7..6: UCPTrieType
+     * Bits 5..3: Reserved (0).
+     * Bits 2..0: UCPTrieValueWidth
+     */
+    uint16_t options;
+
+    /** Total length of the index tables. */
+    uint16_t indexLength;
+
+    /** Data length bits 15..0. */
+    uint16_t dataLength;
+
+    /** Index-3 null block offset, 0x7fff or 0xffff if none. */
+    uint16_t index3NullOffset;
+
+    /** Data null block offset bits 15..0, 0xfffff if none. */
+    uint16_t dataNullOffset;
+
+    /**
+     * First code point of the single-value range ending with U+10ffff,
+     * rounded up and then shifted right by UCPTRIE_SHIFT_2.
+     */
+    uint16_t shiftedHighStart;
+};
+
+/**
+ * Constants for use with UCPTrieHeader.options.
+ * @internal
+ */
+enum {
+    UCPTRIE_OPTIONS_DATA_LENGTH_MASK = 0xf000,
+    UCPTRIE_OPTIONS_DATA_NULL_OFFSET_MASK = 0xf00,
+    UCPTRIE_OPTIONS_RESERVED_MASK = 0x38,
+    UCPTRIE_OPTIONS_VALUE_BITS_MASK = 7,
+    /**
+     * Value for index3NullOffset which indicates that there is no index-3 null block.
+     * Bit 15 is unused for this value because this bit is used if the index-3 contains
+     * 18-bit indexes.
+     */
+    UCPTRIE_NO_INDEX3_NULL_OFFSET = 0x7fff,
+    UCPTRIE_NO_DATA_NULL_OFFSET = 0xfffff
+};
+
+// Internal constants.
+enum {
+    /** The length of the BMP index table. 1024=0x400 */
+    UCPTRIE_BMP_INDEX_LENGTH = 0x10000 >> UCPTRIE_FAST_SHIFT,
+
+    UCPTRIE_SMALL_LIMIT = 0x1000,
+    UCPTRIE_SMALL_INDEX_LENGTH = UCPTRIE_SMALL_LIMIT >> UCPTRIE_FAST_SHIFT,
+
+    /** Shift size for getting the index-3 table offset. */
+    UCPTRIE_SHIFT_3 = 4,
+
+    /** Shift size for getting the index-2 table offset. */
+    UCPTRIE_SHIFT_2 = 5 + UCPTRIE_SHIFT_3,
+
+    /** Shift size for getting the index-1 table offset. */
+    UCPTRIE_SHIFT_1 = 5 + UCPTRIE_SHIFT_2,
+
+    /**
+     * Difference between two shift sizes,
+     * for getting an index-2 offset from an index-3 offset. 5=9-4
+     */
+    UCPTRIE_SHIFT_2_3 = UCPTRIE_SHIFT_2 - UCPTRIE_SHIFT_3,
+
+    /**
+     * Difference between two shift sizes,
+     * for getting an index-1 offset from an index-2 offset. 5=14-9
+     */
+    UCPTRIE_SHIFT_1_2 = UCPTRIE_SHIFT_1 - UCPTRIE_SHIFT_2,
+
+    /**
+     * Number of index-1 entries for the BMP. (4)
+     * This part of the index-1 table is omitted from the serialized form.
+     */
+    UCPTRIE_OMITTED_BMP_INDEX_1_LENGTH = 0x10000 >> UCPTRIE_SHIFT_1,
+
+    /** Number of entries in an index-2 block. 32=0x20 */
+    UCPTRIE_INDEX_2_BLOCK_LENGTH = 1 << UCPTRIE_SHIFT_1_2,
+
+    /** Mask for getting the lower bits for the in-index-2-block offset. */
+    UCPTRIE_INDEX_2_MASK = UCPTRIE_INDEX_2_BLOCK_LENGTH - 1,
+
+    /** Number of code points per index-2 table entry. 512=0x200 */
+    UCPTRIE_CP_PER_INDEX_2_ENTRY = 1 << UCPTRIE_SHIFT_2,
+
+    /** Number of entries in an index-3 block. 32=0x20 */
+    UCPTRIE_INDEX_3_BLOCK_LENGTH = 1 << UCPTRIE_SHIFT_2_3,
+
+    /** Mask for getting the lower bits for the in-index-3-block offset. */
+    UCPTRIE_INDEX_3_MASK = UCPTRIE_INDEX_3_BLOCK_LENGTH - 1,
+
+    /** Number of entries in a small data block. 16=0x10 */
+    UCPTRIE_SMALL_DATA_BLOCK_LENGTH = 1 << UCPTRIE_SHIFT_3,
+
+    /** Mask for getting the lower bits for the in-small-data-block offset. */
+    UCPTRIE_SMALL_DATA_MASK = UCPTRIE_SMALL_DATA_BLOCK_LENGTH - 1
+};
+
+typedef UChar32
+UCPTrieGetRange(const void *trie, UChar32 start,
+                UCPMapValueFilter *filter, const void *context, uint32_t *pValue);
+
+U_CFUNC UChar32
+ucptrie_internalGetRange(UCPTrieGetRange *getRange,
+                         const void *trie, UChar32 start,
+                         UCPMapRangeOption option, uint32_t surrogateValue,
+                         UCPMapValueFilter *filter, const void *context, uint32_t *pValue);
+
+#ifdef UCPTRIE_DEBUG
+U_CFUNC void
+ucptrie_printLengths(const UCPTrie *trie, const char *which);
+
+U_CFUNC void umutablecptrie_setName(UMutableCPTrie *builder, const char *name);
+#endif
+
+/*
+ * Format of the binary, memory-mappable representation of a UCPTrie/CodePointTrie.
+ * For overview information see http://site.icu-project.org/design/struct/utrie
+ *
+ * The binary trie data should be 32-bit-aligned.
+ * The overall layout is:
+ *
+ * UCPTrieHeader header; -- 16 bytes, see struct definition above
+ * uint16_t index[header.indexLength];
+ * uintXY_t data[header.dataLength];
+ *
+ * The trie data array is an array of uint16_t, uint32_t, or uint8_t,
+ * specified via the UCPTrieValueWidth when building the trie.
+ * The data array is 32-bit-aligned for uint32_t, otherwise 16-bit-aligned.
+ * The overall length of the trie data is a multiple of 4 bytes.
+ * (Padding is added at the end of the index array and/or near the end of the data array as needed.)
+ *
+ * The length of the data array (dataLength) is stored as an integer split across two fields
+ * of the header struct (high bits in header.options).
+ *
+ * The trie type can be "fast" or "small" which determines the index structure,
+ * specified via the UCPTrieType when building the trie.
+ *
+ * The type and valueWidth are stored in the header.options.
+ * There are reserved type and valueWidth values, and reserved header.options bits.
+ * They could be used in future format extensions.
+ * Code reading the trie structure must fail with an error when unknown values or options are set.
+ *
+ * Values for ASCII character (U+0000..U+007F) can always be found at the start of the data array.
+ *
+ * Values for code points below a type-specific fast-indexing limit are found via two-stage lookup.
+ * For a "fast" trie, the limit is the BMP/supplementary boundary at U+10000.
+ * For a "small" trie, the limit is UCPTRIE_SMALL_MAX+1=U+1000.
+ *
+ * All code points in the range highStart..U+10FFFF map to a single highValue
+ * which is stored at the second-to-last position of the data array.
+ * (See UCPTRIE_HIGH_VALUE_NEG_DATA_OFFSET.)
+ * The highStart value is header.shiftedHighStart<<UCPTRIE_SHIFT_2.
+ * (UCPTRIE_SHIFT_2=9)
+ *
+ * Values for code points fast_limit..highStart-1 are found via four-stage lookup.
+ * The data block size is smaller for this range than for the fast range.
+ * This together with more index stages with small blocks makes this range
+ * more easily compactable.
+ *
+ * There is also a trie error value stored at the last position of the data array.
+ * (See UCPTRIE_ERROR_VALUE_NEG_DATA_OFFSET.)
+ * It is intended to be returned for inputs that are not Unicode code points
+ * (outside U+0000..U+10FFFF), or in string processing for ill-formed input
+ * (unpaired surrogate in UTF-16, ill-formed UTF-8 subsequence).
+ *
+ * For a "fast" trie:
+ *
+ * The index array starts with the BMP index table for BMP code point lookup.
+ * Its length is 1024=0x400.
+ *
+ * The supplementary index-1 table follows the BMP index table.
+ * Variable length, for code points up to highStart-1.
+ * Maximum length 64=0x40=0x100000>>UCPTRIE_SHIFT_1.
+ * (For 0x100000 supplementary code points U+10000..U+10ffff.)
+ *
+ * After this index-1 table follow the variable-length index-3 and index-2 tables.
+ *
+ * The supplementary index tables are omitted completely
+ * if there is only BMP data (highStart<=U+10000).
+ *
+ * For a "small" trie:
+ *
+ * The index array starts with a fast-index table for lookup of code points U+0000..U+0FFF.
+ *
+ * The "supplementary" index tables are always stored.
+ * The index-1 table starts from U+0000, its maximum length is 68=0x44=0x110000>>UCPTRIE_SHIFT_1.
+ *
+ * For both trie types:
+ *
+ * The last index-2 block may be a partial block, storing indexes only for code points
+ * below highStart.
+ *
+ * Lookup for ASCII code point c:
+ *
+ * Linear access from the start of the data array.
+ *
+ * value = data[c];
+ *
+ * Lookup for fast-range code point c:
+ *
+ * Shift the code point right by UCPTRIE_FAST_SHIFT=6 bits,
+ * fetch the index array value at that offset,
+ * add the lower code point bits, index into the data array.
+ *
+ * value = data[index[c>>6] + (c&0x3f)];
+ *
+ * (This works for ASCII as well.)
+ *
+ * Lookup for small-range code point c below highStart:
+ *
+ * Split the code point into four bit fields using several sets of shifts & masks
+ * to read consecutive values from the index-1, index-2, index-3 and data tables.
+ *
+ * If all of the data block offsets in an index-3 block fit within 16 bits (up to 0xffff),
+ * then the data block offsets are stored directly as uint16_t.
+ *
+ * Otherwise (this is very unusual but possible), the index-2 entry for the index-3 block
+ * has bit 15 (0x8000) set, and each set of 8 index-3 entries is preceded by
+ * an additional uint16_t word. Data block offsets are 18 bits wide, with the top 2 bits stored
+ * in the additional word.
+ *
+ * See ucptrie_internalSmallIndex() for details.
+ *
+ * (In a "small" trie, this works for ASCII and below-fast_limit code points as well.)
+ *
+ * Compaction:
+ *
+ * Multiple code point ranges ("blocks") that are aligned on certain boundaries
+ * (determined by the shifting/bit fields of code points) and
+ * map to the same data values normally share a single subsequence of the data array.
+ * Data blocks can also overlap partially.
+ * (Depending on the builder code finding duplicate and overlapping blocks.)
+ *
+ * Iteration over same-value ranges:
+ *
+ * Range iteration (ucptrie_getRange()) walks the structure from a start code point
+ * until some code point is found that maps to a different value;
+ * the end of the returned range is just before that.
+ *
+ * The header.dataNullOffset (split across two header fields, high bits in header.options)
+ * is the offset of a widely shared data block filled with one single value.
+ * It helps quickly skip over large ranges of data with that value.
+ * The builder must ensure that if the start of any data block (fast or small)
+ * matches the dataNullOffset, then the whole block must be filled with the null value.
+ * Special care must be taken if there is no fast null data block
+ * but a small one, which is shorter, and it matches the *start* of some fast data block.
+ *
+ * Similarly, the header.index3NullOffset is the index-array offset of an index-3 block
+ * where all index entries point to the dataNullOffset.
+ * If there is no such data or index-3 block, then these offsets are set to
+ * values that cannot be reached (data offset out of range/reserved index offset),
+ * normally UCPTRIE_NO_DATA_NULL_OFFSET or UCPTRIE_NO_INDEX3_NULL_OFFSET respectively.
+ */
+
+#endif
index e9a09cc1799775888a0e66050811a039add18f5e..1062a9f3099777834b5bfc84791749b277916191 100644 (file)
@@ -1077,11 +1077,11 @@ collectCurrencyNames(const char* locale,
         }
 
         // currency plurals
-        UErrorCode ec3 = U_ZERO_ERROR;
-        UResourceBundle* curr_p = ures_getByKey(rb, CURRENCYPLURALS, NULL, &ec3);
+        UErrorCode ec5 = U_ZERO_ERROR;
+        UResourceBundle* curr_p = ures_getByKey(rb, CURRENCYPLURALS, NULL, &ec5);
         n = ures_getSize(curr_p);
         for (int32_t i=0; i<n; ++i) {
-            UResourceBundle* names = ures_getByIndex(curr_p, i, NULL, &ec3);
+            UResourceBundle* names = ures_getByIndex(curr_p, i, NULL, &ec5);
             iso = (char*)ures_getKey(names);
             // Using hash to remove duplicated ISO codes in fallback chain.
             if (localeLevel == 0) {
@@ -1099,7 +1099,7 @@ collectCurrencyNames(const char* locale,
             for (int32_t j = 0; j < num; ++j) {
                 // TODO: remove duplicates between singular name and 
                 // currency long name?
-                s = ures_getStringByIndex(names, j, &len, &ec3);
+                s = ures_getStringByIndex(names, j, &len, &ec5);
                 (*currencyNames)[*total_currency_name_count].IsoCode = iso;
                 UChar* upperName = toUpperCase(s, len, locale);
                 (*currencyNames)[*total_currency_name_count].currencyName = upperName;
@@ -1449,7 +1449,7 @@ getCacheEntry(const char* locale, UErrorCode& ec) {
     umtx_lock(&gCurrencyCacheMutex);
     // in order to handle racing correctly,
     // not putting 'search' in a separate function.
-    int8_t  found = -1;
+    int8_t found = -1;
     for (int8_t i = 0; i < CURRENCY_NAME_CACHE_NUM; ++i) {
         if (currCache[i]!= NULL &&
             uprv_strcmp(locale, currCache[i]->locale) == 0) {
@@ -1469,7 +1469,6 @@ getCacheEntry(const char* locale, UErrorCode& ec) {
         }
         umtx_lock(&gCurrencyCacheMutex);
         // check again.
-        int8_t  found = -1;
         for (int8_t i = 0; i < CURRENCY_NAME_CACHE_NUM; ++i) {
             if (currCache[i]!= NULL &&
                 uprv_strcmp(locale, currCache[i]->locale) == 0) {
index 3cb8863f6c373cf4de898971a6bc2182dd546993..efcd2a2f975da021ed0fef6b34f545dc1d3d9371 100644 (file)
@@ -418,7 +418,8 @@ private:
     const char *path;                              /* working path (u_icudata_Dir) */
     const char *nextPath;                          /* path following this one */
     const char *basename;                          /* item's basename (icudt22e_mt.res)*/
-    const char *suffix;                            /* item suffix (can be null) */
+
+    StringPiece suffix;                            /* item suffix (can be null) */
 
     uint32_t    basenameLen;                       /* length of basename */
 
@@ -432,13 +433,15 @@ private:
 };
 
 /**
- * @param iter  The iterator to be initialized. Its current state does not matter. 
- * @param path  The full pathname to be iterated over.  If NULL, defaults to U_ICUDATA_NAME 
- * @param pkg   Package which is being searched for, ex "icudt28l".  Will ignore leave directories such as /icudt28l 
- * @param item  Item to be searched for.  Can include full path, such as /a/b/foo.dat 
- * @param suffix  Optional item suffix, if not-null (ex. ".dat") then 'path' can contain 'item' explicitly.
- *               Ex:   'stuff.dat' would be found in '/a/foo:/tmp/stuff.dat:/bar/baz' as item #2.   
- *                     '/blarg/stuff.dat' would also be found.
+ * @param iter    The iterator to be initialized. Its current state does not matter.
+ * @param inPath  The full pathname to be iterated over.  If NULL, defaults to U_ICUDATA_NAME 
+ * @param pkg     Package which is being searched for, ex "icudt28l".  Will ignore leaf directories such as /icudt28l 
+ * @param item    Item to be searched for.  Can include full path, such as /a/b/foo.dat 
+ * @param inSuffix  Optional item suffix, if not-null (ex. ".dat") then 'path' can contain 'item' explicitly.
+ *             Ex:   'stuff.dat' would be found in '/a/foo:/tmp/stuff.dat:/bar/baz' as item #2.   
+ *                   '/blarg/stuff.dat' would also be found.
+ *  Note: inSuffix may also be the 'item' being searched for as well, (ex: "ibm-5348_P100-1997.cnv"), in which case 
+ *        the 'item' parameter is often the same as pkg. (Though sometimes might have a tree part as well, ex: "icudt62l-curr").
  */
 UDataPathIterator::UDataPathIterator(const char *inPath, const char *pkg,
                                      const char *item, const char *inSuffix, UBool doCheckLastFour,
@@ -566,7 +569,7 @@ const char *UDataPathIterator::next(UErrorCode *pErrorCode)
 
         if(checkLastFour == TRUE && 
            (pathLen>=4) &&
-           uprv_strncmp(pathBuffer.data() +(pathLen-4), suffix, 4)==0 && /* suffix matches */
+           uprv_strncmp(pathBuffer.data() +(pathLen-4), suffix.data(), 4)==0 && /* suffix matches */
            uprv_strncmp(findBasename(pathBuffer.data()), basename, basenameLen)==0  && /* base matches */
            uprv_strlen(pathBasename)==(basenameLen+4)) { /* base+suffix = full len */
 
@@ -602,8 +605,13 @@ const char *UDataPathIterator::next(UErrorCode *pErrorCode)
             /* + basename */
             pathBuffer.append(packageStub.data()+1, packageStub.length()-1, *pErrorCode);
 
-            if(*suffix)  /* tack on suffix */
+            if (!suffix.empty())  /* tack on suffix */
             {
+                if (suffix.length() > 4) {
+                    // If the suffix is actually an item ("ibm-5348_P100-1997.cnv") and not an extension (".res")
+                    // then we need to ensure that the path ends with a separator.
+                    pathBuffer.ensureEndsWithFileSeparator(*pErrorCode);
+                }
                 pathBuffer.append(suffix, *pErrorCode);
             }
         }
@@ -751,16 +759,19 @@ openCommonData(const char *path,          /*  Path from OpenChoice?          */
 
     UDataPathIterator iter(u_getDataDirectory(), inBasename, path, ".dat", TRUE, pErrorCode);
 
-    while((UDataMemory_isLoaded(&tData)==FALSE) && (pathBuffer = iter.next(pErrorCode)) != NULL)
+    while ((UDataMemory_isLoaded(&tData)==FALSE) && (pathBuffer = iter.next(pErrorCode)) != NULL)
     {
 #ifdef UDATA_DEBUG
         fprintf(stderr, "ocd: trying path %s - ", pathBuffer);
 #endif
-        uprv_mapFile(&tData, pathBuffer);
+        uprv_mapFile(&tData, pathBuffer, pErrorCode);
 #ifdef UDATA_DEBUG
         fprintf(stderr, "%s\n", UDataMemory_isLoaded(&tData)?"LOADED":"not loaded");
 #endif
     }
+    if (U_FAILURE(*pErrorCode)) {
+        return NULL;
+    }
 
 #if defined(OS390_STUBDATA) && defined(OS390BATCH)
     if (!UDataMemory_isLoaded(&tData)) {
@@ -769,7 +780,7 @@ openCommonData(const char *path,          /*  Path from OpenChoice?          */
         uprv_strncpy(ourPathBuffer, path, 1019);
         ourPathBuffer[1019]=0;
         uprv_strcat(ourPathBuffer, ".dat");
-        uprv_mapFile(&tData, ourPathBuffer);
+        uprv_mapFile(&tData, ourPathBuffer, pErrorCode);
     }
 #endif
 
@@ -860,7 +871,7 @@ static UBool extendICUData(UErrorCode *pErr)
     umtx_unlock(&extendICUDataMutex);
 #endif
     return didUpdate;               /* Return true if ICUData pointer was updated.   */
-                                    /*   (Could potentialy have been done by another thread racing */
+                                    /*   (Could potentially have been done by another thread racing */
                                     /*   us through here, but that's fine, we still return true    */
                                     /*   so that current thread will also examine extended data.   */
 }
@@ -986,12 +997,12 @@ static UDataMemory *doLoadFromIndividualFiles(const char *pkgName,
     /* init path iterator for individual files */
     UDataPathIterator iter(dataPath, pkgName, path, tocEntryPathSuffix, FALSE, pErrorCode);
 
-    while((pathBuffer = iter.next(pErrorCode)) != NULL)
+    while ((pathBuffer = iter.next(pErrorCode)) != NULL)
     {
 #ifdef UDATA_DEBUG
         fprintf(stderr, "UDATA: trying individual file %s\n", pathBuffer);
 #endif
-        if(uprv_mapFile(&dataMemory, pathBuffer))
+        if (uprv_mapFile(&dataMemory, pathBuffer, pErrorCode))
         {
             pEntryData = checkDataItem(dataMemory.pHeader, isAcceptable, context, type, name, subErrorCode, pErrorCode);
             if (pEntryData != NULL) {
@@ -1007,7 +1018,7 @@ static UDataMemory *doLoadFromIndividualFiles(const char *pkgName,
                 return pEntryData;
             }
 
-            /* the data is not acceptable, or some error occured.  Either way, unmap the memory */
+            /* the data is not acceptable, or some error occurred.  Either way, unmap the memory */
             udata_close(&dataMemory);
 
             /* If we had a nasty error, bail out completely.  */
@@ -1076,6 +1087,11 @@ static UDataMemory *doLoadFromCommonData(UBool isICUData, const char * /*pkgName
                 }
             }
         }
+        // If we failed due to being out-of-memory, then stop early and report the error.
+        if (*subErrorCode == U_MEMORY_ALLOCATION_ERROR) {
+            *pErrorCode = *subErrorCode;
+            return NULL;
+        }
         /* Data wasn't found.  If we were looking for an ICUData item and there is
          * more data available, load it and try again,
          * otherwise break out of this loop. */
@@ -1252,7 +1268,8 @@ doOpenChoice(const char *path, const char *type, const char *name,
         tocEntryName.append(".", *pErrorCode).append(type, *pErrorCode);
         tocEntryPath.append(".", *pErrorCode).append(type, *pErrorCode);
     }
-    tocEntryPathSuffix = tocEntryPath.data()+tocEntrySuffixIndex; /* suffix starts here */
+    // The +1 is for the U_FILE_SEP_CHAR that is always appended above.
+    tocEntryPathSuffix = tocEntryPath.data() + tocEntrySuffixIndex + 1; /* suffix starts here */
 
 #ifdef UDATA_DEBUG
     fprintf(stderr, " tocEntryName = %s\n", tocEntryName.data());
index 5303870b1d3046b7d2f103a3a96a6bf850ad501f..5e7b043c4c934c995715852f3dab70ec14f2dd10 100644 (file)
@@ -333,6 +333,43 @@ uprv_compareInvEbcdic(const UDataSwapper *ds,
 #   error Unknown charset family!
 #endif
 
+// utrie_swap.cpp -----------------------------------------------------------***
+
+/**
+ * Swaps a serialized UTrie.
+ * @internal
+ */
+U_CAPI int32_t U_EXPORT2
+utrie_swap(const UDataSwapper *ds,
+           const void *inData, int32_t length, void *outData,
+           UErrorCode *pErrorCode);
+
+/**
+ * Swaps a serialized UTrie2.
+ * @internal
+ */
+U_CAPI int32_t U_EXPORT2
+utrie2_swap(const UDataSwapper *ds,
+            const void *inData, int32_t length, void *outData,
+            UErrorCode *pErrorCode);
+
+/**
+ * Swaps a serialized UCPTrie.
+ * @internal
+ */
+U_CAPI int32_t U_EXPORT2
+ucptrie_swap(const UDataSwapper *ds,
+             const void *inData, int32_t length, void *outData,
+             UErrorCode *pErrorCode);
+
+/**
+ * Swaps a serialized UTrie, UTrie2, or UCPTrie.
+ * @internal
+ */
+U_CAPI int32_t U_EXPORT2
+utrie_swapAnyVersion(const UDataSwapper *ds,
+                     const void *inData, int32_t length, void *outData,
+                     UErrorCode *pErrorCode);
 
 /* material... -------------------------------------------------------------- */
 
index a80e7b8ff27b42822c89132c2de98cc6debecc20..239997d05d7e38b0abcdc51f66e67c06531fea42 100644 (file)
@@ -218,7 +218,7 @@ _uhash_allocate(UHashtable *hash,
 
     U_ASSERT(primeIndex >= 0 && primeIndex < PRIMES_LENGTH);
 
-    hash->primeIndex = primeIndex;
+    hash->primeIndex = static_cast<int8_t>(primeIndex);
     hash->length = PRIMES[primeIndex];
 
     p = hash->elements = (UHashElement*)
@@ -860,13 +860,13 @@ uhash_hashUChars(const UHashTok key) {
 U_CAPI int32_t U_EXPORT2
 uhash_hashChars(const UHashTok key) {
     const char *s = (const char *)key.pointer;
-    return s == NULL ? 0 : static_cast<int32_t>(ustr_hashCharsN(s, uprv_strlen(s)));
+    return s == NULL ? 0 : static_cast<int32_t>(ustr_hashCharsN(s, static_cast<int32_t>(uprv_strlen(s))));
 }
 
 U_CAPI int32_t U_EXPORT2
 uhash_hashIChars(const UHashTok key) {
     const char *s = (const char *)key.pointer;
-    return s == NULL ? 0 : ustr_hashICharsN(s, uprv_strlen(s));
+    return s == NULL ? 0 : ustr_hashICharsN(s, static_cast<int32_t>(uprv_strlen(s)));
 }
 
 U_CAPI UBool U_EXPORT2
index c4f9f88b9ad32ffa6e89ff220aeb58bf9ceaa7f9..56dddfa8fde9bbb84e2bd9bbb94b7304b72dbbc9 100644 (file)
@@ -53,22 +53,6 @@ uprv_isInvariantString(const char *s, int32_t length);
 U_INTERNAL UBool U_EXPORT2
 uprv_isInvariantUString(const UChar *s, int32_t length);
 
-#ifdef __cplusplus
-
-/**
- * Check if a UnicodeString only contains invariant characters.
- * See utypes.h for details.
- *
- * @param s Input string.
- * @return TRUE if s contains only invariant characters.
- */
-U_INTERNAL inline UBool U_EXPORT2
-uprv_isInvariantUnicodeString(const icu::UnicodeString &s) {
-    return uprv_isInvariantUString(icu::toUCharPtr(s.getBuffer()), s.length());
-}
-
-#endif  /* __cplusplus */
-
 /**
  * \def U_UPPER_ORDINAL
  * Get the ordinal number of an uppercase invariant character
diff --git a/source/common/ulayout_props_data.h b/source/common/ulayout_props_data.h
new file mode 100644 (file)
index 0000000..f42d15f
--- /dev/null
@@ -0,0 +1,722 @@
+// © 2018 and later: Unicode, Inc. and others.
+// License & terms of use: http://www.unicode.org/copyright.html
+//
+// file name: ulayout_props_data.h
+//
+// machine-generated by: icu/tools/unicode/c/genprops/layoutpropsbuilder.cpp
+
+
+#ifdef INCLUDED_FROM_UPROPS_CPP
+
+static const int32_t maxInPCValue = 14;
+
+static const uint16_t inpc_trieIndex[765]={
+0,0x40,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0x80,0xc0,0xff,0x13f,0x17e,0x1be,0x17e,0x1fe,0x23e,0x27e,0x2bc,0x2fc,
+0x33c,0x37b,0x23e,0x3bb,0x3fb,0x439,0x477,0x4ad,0x4e1,0x521,0x531,0x571,0x599,0x5d9,0x619,0x656,
+0x2b7,0x2c6,0x2d2,0x2c6,0x2ed,0,0x10,0x20,0x30,0x40,0x50,0x60,0x70,0,0x10,0x20,
+0x30,0,0x10,0x20,0x30,0,0x10,0x20,0x30,0,0x10,0x20,0x30,0,0x10,0x20,
+0x30,0,0x10,0x20,0x30,0,0x10,0x20,0x30,0,0x10,0x20,0x30,0x80,0x90,0xa0,
+0xb0,0xc0,0xd0,0xe0,0xf0,0xff,0x10f,0x11f,0x12f,0x13f,0x14f,0x15f,0x16f,0x17e,0x18e,0x19e,
+0x1ae,0x1be,0x1ce,0x1de,0x1ee,0x17e,0x18e,0x19e,0x1ae,0x1fe,0x20e,0x21e,0x22e,0x23e,0x24e,0x25e,
+0x26e,0x27e,0x28e,0x29e,0x2ae,0x2bc,0x2cc,0x2dc,0x2ec,0x2fc,0x30c,0x31c,0x32c,0x33c,0x34c,0x35c,
+0x36c,0x37b,0x38b,0x39b,0x3ab,0x23e,0x24e,0x25e,0x26e,0x3bb,0x3cb,0x3db,0x3eb,0x3fb,0x40b,0x41b,
+0x42b,0x439,0x449,0x459,0x469,0x477,0x487,0x497,0x4a7,0x4ad,0x4bd,0x4cd,0x4dd,0x4e1,0x4f1,0x501,
+0x511,0x521,0x531,0x541,0x551,0x531,0x541,0x551,0x561,0x571,0x581,0x591,0x5a1,0x599,0x5a9,0x5b9,
+0x5c9,0x5d9,0x5e9,0x5f9,0x609,0x619,0x629,0x639,0x649,0x656,0x666,0x676,0x686,0,0,0x68b,
+0x69a,0,0x6a9,0x6b8,0x6c7,0x6d5,0x6e5,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0x6f3,0,0x6f3,
+0,0x701,0,0x701,0,0,0,0x70b,0x71b,0x729,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0x739,0x749,0,0,
+0,0,0,0,0,0x759,0x768,0,0,0,0x772,0,0,0,0x77e,0x78d,
+0x79b,0,0,0,0,0,0,0,0,0x7ab,0,0,0x7b7,0x7c7,0,0x7cc,
+0x52c,0x81,0,0x7dc,0,0,0,0x7ea,0x3fb,0,0,0x7fa,0x807,0,0,0,
+0,0,0,0,0,0,0x817,0x827,0x835,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0x2b3,0x83f,0,0x84c,0,0,0,0,
+0,0x101,0,0,0x858,0x864,0,0x874,0x882,0,0,0x892,0,0x8a0,0x3fb,0,
+0,0x80,0,0,0x8b0,0x8c0,0,0x2b9,0,0,0x8c7,0x8d6,0x8e3,0,0,0x8f1,
+0,0,0,0x901,0x2bd,0,0x911,0x151,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0x921,0,0x930,0,0,0x940,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0x950,0,0,0x958,0x966,0,0,0,
+0x81,0,0,0x976,0,0,0,0,0x52d,0,0x981,0x991,0x3cb,0,0,0x659,
+0x81,0,0,0x99e,0x9ae,0,0,0,0x9bb,0x9cb,0,0,0,0,0,0,
+0,0,0,0x71,0x9db,0,0xff,0,0,0x9e6,0x9f6,0x14f,0xa04,0x52b,0,0,
+0,0,0,0,0,0,0x99c,0xa14,0x16f,0,0,0,0,0,0xa24,0xa33,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0x2eb,0xa43,0xe3,
+0x214,0,0,0,0xa53,0x2be,0,0,0,0,0,0xa63,0xa73,0,0,0,
+0,0,0xa7b,0xa8b,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0xa97,0xaa6,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0xab5,
+0,0,0xac2,0,0xad1,0,0,0xadd,0xae7,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0x2eb,
+0xaf7,0,0,0,0,0,0xb07,0xb0f,0xb1e,0,0,0,0,0,0,0,
+0xb2d,0xb3c,0,0,0,0xb44,0xb54,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0xb61,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0x45,0x4d,0x4d,0x4d,0x5d,0x7d,0x9d,0xbd,0xdd,
+2,2,0xec,0x10a,0x129,0x149,2,2,2,2,2,2,2,2,2,2,
+2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,
+2,2,2,2,2,2,0x169,0x188,2,2,2,2,2,2,2,2,
+2,2,0x1a8,2,2,0x1c8,0x1e6,0x203,0x221,0x23f,0x25f,0x27d,0x297
+};
+
+static const uint8_t inpc_trieData[2930]={
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+8,8,8,7,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,8,7,1,0,7,4,
+7,1,1,1,1,8,8,8,8,7,7,7,7,1,4,7,
+0,8,1,8,8,8,1,1,0,0,0,0,0,0,0,0,
+0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+8,7,7,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,1,0,7,4,7,
+1,1,1,1,0,0,4,4,0,0,5,5,1,0,0,0,
+0,0,0,0,0,0,7,0,0,0,0,0,0,0,0,0,
+0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,8,0,8,
+8,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,1,0,7,4,7,1,
+1,0,0,0,0,8,8,0,0,8,8,1,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,8,
+0,0,0,1,0,0,0,0,0,0,0,0,0,0,7,1,
+1,1,1,8,0,8,8,0xd,0,7,7,1,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,8,8,8,8,8,8,0,8,
+7,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,1,0,7,8,7,1,
+1,1,1,0,0,4,0xb,0,0,5,0xc,1,0,0,0,0,
+0,0,0,0,8,0xd,0,0,0,0,0,0,0,0,0,0,
+1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,7,7,8,7,7,0,
+0,0,4,4,4,0,5,5,5,8,0,0,0,0,0,0,
+0,0,0,7,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,8,7,7,7,
+8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,8,8,7,7,7,7,
+0,8,8,9,0,8,8,8,8,0,0,0,0,0,0,0,
+8,1,0,0,0,0,0,0,0,0,0,0,0,1,1,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0xd,7,7,7,7,
+0,8,0xd,0xd,0,0xd,0xd,8,8,0,0,0,0,0,0,0,
+7,7,0,0,0,0,0,0,0,0,0,0,0,1,1,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,8,8,7,7,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,8,8,0,7,7,7,1,1,0,4,
+4,4,0,5,5,5,8,0,0,0,0,0,0,0,0,0,
+7,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,7,7,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,8,0,0,0,0,7,7,7,8,
+8,1,0,1,0,7,4,0xb,4,5,0xc,5,7,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,
+7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,7,8,7,7,8,8,8,8,1,1,1,0,0,0,0,
+0,0xe,0xe,0xe,0xe,0xe,7,0,8,8,8,8,8,8,8,8,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,7,8,7,7,8,8,8,8,1,1,0,8,1,0,0,
+0,0xe,0xe,0xe,0xe,0xe,0,0,0,8,8,8,8,8,8,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,
+1,0,8,0,0,0,0,7,4,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,1,8,9,1,1,9,
+9,9,9,8,8,8,8,8,7,8,9,8,8,1,0,8,
+8,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,
+1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,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,1,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,7,7,8,8,1,4,8,8,8,8,
+8,1,7,0,8,7,0,1,1,0,0,0,0,0,0,7,
+7,1,1,0,0,0,0,1,1,0,7,7,7,0,0,7,
+7,7,7,7,7,7,0,0,8,8,8,8,0,0,0,0,
+0,0,0,0,0,0,0,1,7,4,8,8,7,7,7,7,
+7,7,1,0,7,0,0,0,0,0,0,0,0,0,0,7,
+7,7,8,0,0,8,1,1,0,0,0,0,0,0,0,0,
+0,0,0,8,1,0,0,0,0,0,0,0,0,0,0,0,
+0,7,8,8,8,8,1,1,1,0xb,0xc,5,4,4,4,5,
+5,8,7,7,8,8,8,8,8,8,8,0,8,0,0,0,
+0,0,0,0,0,0,8,0,0,8,8,1,7,7,0xd,0xd,
+8,8,7,7,7,0,0,0,0,7,7,1,7,7,7,7,
+7,7,1,8,1,0,0,0,0,7,7,7,7,7,0xe,0xe,
+0xe,7,7,0xe,7,7,7,7,7,0,0,0,0,0,0,0,
+7,7,0,0,0,0,0,0,0,8,1,4,7,8,0,0,
+0,0,0,4,1,7,8,8,8,1,1,1,1,0,7,8,
+7,7,8,8,8,8,1,1,8,1,7,4,4,4,8,8,
+8,8,8,8,8,8,8,8,0,0,1,8,8,8,8,7,
+0,0,0,0,0,0,0,0,0,0,0,8,7,8,8,1,
+1,1,3,9,0xa,4,4,5,5,8,0xd,7,0,0,0,0,
+0,0,0,0,0,0,0,8,1,8,8,8,0,7,1,1,
+8,1,4,7,8,8,7,0,1,1,0,0,0,0,0,0,
+8,7,8,8,7,7,7,8,7,8,0,0,0,0,7,7,
+7,4,4,0xb,7,7,1,8,8,8,8,4,4,8,1,0,
+0,0,0,0,0,0,0,8,8,8,0,6,1,1,1,1,
+1,8,8,1,1,1,1,8,7,6,6,6,6,6,6,6,
+0,0,0,0,1,0,0,0,0,8,0,0,7,0,0,0,
+0,0,0,0,0,8,0,0,0,0,8,0,0,0,0,7,
+7,1,8,7,0,0,0,0,0,0,0,0,7,7,7,7,
+7,7,7,7,7,7,7,7,1,8,0,0,0,0,0,0,
+0,0,0,0,8,8,8,8,8,8,8,8,8,8,8,8,
+8,8,8,8,0,0,0,0,0,0,0,0,0,0,0,0,
+0,8,0,0,0,0,0,0,0,0,0,0,0,1,1,1,
+0,0,0,0,0,0,0,1,1,1,8,1,1,1,1,8,
+0,0,0,8,7,7,8,8,1,1,4,4,8,7,7,2,
+3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+8,8,8,8,1,8,4,8,1,7,4,1,1,0,0,0,
+0,0,0,0,0,0,8,0,0,0,0,0,0,0,0,8,
+7,0,0,0,0,0,0,0,0,0,0,0,7,8,7,0,
+0,8,7,8,8,1,0xe,0xe,8,8,0xe,7,0xe,0xe,7,8,
+8,0,0,0,0,0,0,0,0,0,0,0,4,1,8,4,
+7,0,0,0,7,7,8,7,7,1,7,7,0,7,1,0,
+0,6,1,1,0,8,6,0,0,0,0,0,1,1,1,8,
+0,0,0,0,0,0,0,0,8,1,1,0,0,0,0,0,
+7,8,7,0,0,0,0,0,0,0,0,0,0,0,0,0,
+8,8,8,8,1,1,1,1,8,8,8,8,8,0,0,0,
+0,0,0,0,0,0,7,4,7,1,1,8,8,7,7,1,
+1,0,0,0,0,0,0,0,8,8,8,1,1,4,8,9,
+9,8,1,1,0,8,0,0,0,0,0,0,0,0,0,0,
+0,7,4,7,1,1,1,1,1,1,8,8,8,0xd,7,0,
+0,0,0,0,0,0,0,1,0,8,1,0,0,0,0,0,
+0,0,0,0,0,0,0,7,7,7,1,8,8,0xd,0xd,8,
+7,8,8,0,0,0,0,0,0,8,0,7,4,7,1,1,
+8,8,8,8,1,1,0,0,0,0,0,0,0,0,0,0,
+0,1,1,0,7,7,8,7,7,7,7,0,0,4,4,0,
+0,5,5,7,0,0,7,7,0,0,8,8,8,8,8,8,
+8,0,0,0,7,7,1,8,8,7,1,0,0,0,0,0,
+0,0,0,0,7,4,7,1,1,1,1,1,1,4,8,0xb,
+5,7,5,8,7,1,1,0,0,0,0,0,0,0,0,0,
+0,0,0,4,7,1,1,1,1,0,0,4,0xb,5,0xc,8,
+8,7,1,7,7,7,1,1,1,1,1,1,8,8,7,7,
+8,7,1,0,0,0,0,0,0,0,0,0,0,0,8,7,
+8,4,7,1,1,8,8,8,8,7,1,0,0,0,0,0,
+0,0,0,0,0,0,0,0,1,0,8,7,7,8,8,1,
+1,4,8,1,8,8,8,0,0,0,0,0,0,0,0,0,
+0,0,0,7,4,7,1,1,1,8,8,8,8,8,7,1,
+1,0,0,0,0,0,8,1,1,8,8,8,8,8,8,1,
+0,0,0,0,0,1,1,8,8,8,8,7,0,1,1,1,
+1,0,8,1,1,8,8,8,7,7,1,1,1,0,0,0,
+0,0,0,0,0,0,0,1,1,1,1,1,1,8,7,8,
+0,0,0,0,0,0,0,8,8,1,1,1,1,1,0,8,
+8,8,8,8,8,7,1,0,0,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,0,7,1,1,1,1,1,1,4,
+1,8,7,8,8,0,0,0,0,0,0,0,0,0,8,8,
+8,8,8,1,0,0,0,8,0,8,8,0,8,8,1,8,
+1,0,0,1,0,0,0,0,0,0,0,0,0,0,7,7,
+7,7,7,0,8,8,0,7,7,8,7,0,0,0,0,0,
+0,0,0,0,8,1,4,7,0,0,0,0,0,0,0,0,
+0,0
+};
+
+static const UCPTrie inpc_trie={
+    inpc_trieIndex,
+    { inpc_trieData },
+    765, 2930,
+    0x12000, 0x12,
+    1, 2,
+    0, 0,
+    0x2, 0x0,
+    0x0,
+};
+
+static const int32_t maxInSCValue = 35;
+
+static const uint16_t insc_trieIndex[834]={
+0,0x40,0x60,0x94,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,
+0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,
+0x40,0x40,0x40,0x40,0xd4,0x112,0x152,0x190,0x1cf,0x20d,0x24c,0x28a,0x2ca,0x308,0x346,0x384,
+0x3c4,0x402,0x441,0x47f,0x4bf,0x4fd,0x53d,0x57d,0x5bc,0x5fc,0x63b,0x67b,0x69b,0x6db,0x71b,0x758,
+0x2f8,0x30b,0x317,0x30b,0x332,0,0x10,0x20,0x30,0x40,0x50,0x60,0x70,0x60,0x70,0x80,
+0x90,0x94,0xa4,0xb4,0xc4,0x40,0x50,0x60,0x70,0x40,0x50,0x60,0x70,0x40,0x50,0x60,
+0x70,0x40,0x50,0x60,0x70,0x40,0x50,0x60,0x70,0x40,0x50,0x60,0x70,0x40,0x50,0x60,
+0x70,0x40,0x50,0x60,0x70,0xd4,0xe4,0xf4,0x104,0x112,0x122,0x132,0x142,0x152,0x162,0x172,
+0x182,0x190,0x1a0,0x1b0,0x1c0,0x1cf,0x1df,0x1ef,0x1ff,0x20d,0x21d,0x22d,0x23d,0x24c,0x25c,0x26c,
+0x27c,0x28a,0x29a,0x2aa,0x2ba,0x2ca,0x2da,0x2ea,0x2fa,0x308,0x318,0x328,0x338,0x346,0x356,0x366,
+0x376,0x384,0x394,0x3a4,0x3b4,0x3c4,0x3d4,0x3e4,0x3f4,0x402,0x412,0x422,0x432,0x441,0x451,0x461,
+0x471,0x47f,0x48f,0x49f,0x4af,0x4bf,0x4cf,0x4df,0x4ef,0x4fd,0x50d,0x51d,0x52d,0x53d,0x54d,0x55d,
+0x56d,0x57d,0x58d,0x59d,0x5ad,0x5bc,0x5cc,0x5dc,0x5ec,0x5fc,0x60c,0x61c,0x62c,0x63b,0x64b,0x65b,
+0x66b,0x67b,0x68b,0x69b,0x6ab,0x69b,0x6ab,0x6bb,0x6cb,0x6db,0x6eb,0x6fb,0x70b,0x71b,0x72b,0x73b,
+0x74b,0x758,0x768,0x778,0x788,0xe9,0xe9,0x798,0x7a3,0x7b3,0x7c3,0x7d2,0x7e1,0x7ef,0x7ff,0x40,
+0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,
+0x40,0x40,0x40,0x40,0x40,0x80f,0x81d,0xe6,0x81d,0xe6,0x82d,0x80f,0x83d,0xe9,0xe9,0x84d,
+0x859,0x863,0x872,0x30,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,
+0x40,0x40,0x40,0x40,0x882,0x16c,0x892,0x8a2,0x22d,0xe9,0x8b2,0x8c2,0xe9,0xe9,0x374,0x8d2,
+0x8e1,0x30,0x40,0x40,0xe9,0x8f1,0xe9,0xe9,0x901,0x90e,0x91e,0x92a,0x30,0x30,0x40,0x40,
+0x40,0x40,0x40,0x40,0x93a,0xe6,0xe9,0x94a,0x956,0x30,0x40,0x40,0x966,0xe9,0x975,0x985,
+0xe9,0xe9,0x995,0x9a5,0xe9,0xe9,0x9b5,0x9c2,0x9d2,0x40,0x40,0x40,0x40,0x40,0x40,0x40,
+0x40,0x9e2,0x9f0,0x9fe,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,
+0x40,0x40,0x40,0xa08,0xa14,0xa24,0x40,0x40,0x40,0x40,0x40,0x75a,0xa32,0x40,0x40,0x40,
+0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,
+0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x74,0x40,0x40,0x40,0xa42,0xe9,0xa4f,
+0x40,0xe9,0xa5f,0xa6d,0xa7c,0xd6,0xe7,0xe9,0xa8c,0xa98,0x30,0xaa8,0xab6,0xac6,0xe9,0xad4,
+0xe9,0xae4,0xaf3,0x40,0x40,0xb03,0xe9,0xe9,0xb12,0x297,0x30,0xb22,0xb32,0xe3,0xe9,0x889,
+0xb42,0xb52,0x30,0xe9,0xb61,0xe9,0xe9,0xe9,0xb71,0xb81,0x40,0xb91,0xba1,0x40,0x40,0x40,
+0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0xbb1,0xbc1,0xbce,0x30,0xbde,0xbee,0xe9,
+0xbf8,0x31,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,
+0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0xc08,0xe6,0xe9,
+0x88a,0xc18,0xc26,0xc30,0xc40,0xc50,0xe9,0xe9,0xc60,0x40,0x40,0x40,0x40,0xc70,0xe9,0x88b,
+0xc80,0xc90,0xca0,0xe9,0xcad,0xd5,0xe8,0xe9,0xcbd,0xccd,0x30,0x6ba,0x35,0xe1,0x3eb,0x886,
+0xcdd,0x40,0x40,0x40,0x40,0xced,0x16d,0xcfc,0xdf,0xe9,0xd0c,0xd1c,0x30,0xd2c,0x162,0x172,
+0xd3c,0x308,0xd4c,0xd5c,0x9ed,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0xdb,0xe9,0xe9,
+0xd6c,0xd7a,0xd8a,0x40,0x40,0xd99,0xe9,0xe9,0x91f,0xda9,0x30,0x40,0x40,0x40,0x40,0x40,
+0x40,0x40,0x40,0x40,0x40,0xdb,0xe9,0xff,0xdb9,0xdc9,0xdd1,0x40,0x40,0xdb,0xe9,0xe9,
+0xde1,0xdf1,0x30,0x40,0x40,0xdf,0xe9,0xe01,0xe0e,0x30,0x40,0x40,0x40,0xe9,0xe1e,0xe2e,
+0xe3e,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0xdf,0xe9,0x886,
+0xe4e,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,
+0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0xe5e,0xe9,0xe9,
+0xe6b,0xe7b,0xe8b,0xe9,0xe9,0xe97,0xea1,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,
+0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0xeb1,0xe9,0xff,
+0xec1,0xed1,0x6bb,0xee1,0x555,0xe9,0xeef,0x72b,0xeff,0x40,0x40,0x40,0x40,0xf0f,0xe9,0xe9,
+0xf1e,0xf2e,0x30,0xf3e,0xe9,0xf4a,0xf57,0x30,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,
+0x40,0x40,0x40,0x40,0x40,0x40,0xe9,0xf67,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,
+0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x45,0x55,0x55,0x55,0x65,0x85,0xa5,0xc5,
+0xe5,4,4,0xf5,0x114,0x134,0x154,4,0x174,4,0x17d,4,4,4,4,4,
+4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,
+4,4,4,4,4,4,4,4,4,4,4,0x19d,0x1bd,4,4,4,
+4,4,4,4,4,4,4,0x1dd,4,4,0x1fd,0x21d,0x23d,0x25d,0x27d,0x29d,
+0x2bd,0x2d8
+};
+
+static const uint8_t insc_trieData[3960]={
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0xc,0,0,
+0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0xc,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0x1c,0x1c,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0xc,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,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,2,2,0x20,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,
+0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,5,5,5,5,5,5,5,
+5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
+5,5,5,5,5,5,5,5,5,5,5,5,5,5,0x22,0x22,
+0x17,1,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x1f,
+0x22,0x22,0,4,4,0,0,0x22,0x22,0x22,5,5,5,5,5,5,
+5,5,0x23,0x23,0x22,0x22,0,0,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,
+0x18,0x18,0,0,0x23,0x23,0x23,0x23,0x23,0x23,5,5,5,5,5,5,
+5,5,0xc,2,2,0x20,0,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0,
+0,0x23,0x23,0,0,0x23,0x23,5,5,5,5,5,5,5,5,5,
+5,5,5,5,5,5,5,5,5,5,5,0,5,5,5,5,
+5,5,5,0,5,0,0,0,5,5,5,5,0,0,0x17,1,
+0x22,0x22,0x22,0x22,0x22,0,0,0x22,0x22,0,0,0x22,0x22,0x1f,6,0,
+0,0,0,0,0,0,0,0x22,0,0,0,0,5,5,0,5,
+0x23,0x23,0x22,0x22,0,0,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,
+5,5,0,0,0,0,0,0,0,0,0,0,2,0,0x1c,0,
+2,2,0x20,0,0x23,0x23,0x23,0x23,0x23,0x23,0,0,0,0,0x23,0x23,
+0,0,0x23,0x23,5,5,5,5,5,5,5,5,5,5,5,5,
+5,5,5,5,5,5,5,5,0,5,5,5,5,5,5,5,
+0,5,5,0,5,5,0,5,5,0,0,0x17,0,0x22,0x22,0x22,
+0,0,0,0,0x22,0x22,0,0,0x22,0x22,0x1f,0,0,0,4,0,
+0,0,0,0,0,0,5,5,5,5,0,5,0,0,0,0,
+0,0,0,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,2,0x12,0xc,
+0xc,0,0xb,0,0,0,0,0,0,0,0,0,0,2,2,0x20,
+0,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0,0x23,0x23,0x23,0,0x23,
+0x23,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
+5,5,5,5,5,0,5,5,5,5,5,5,5,0,5,5,
+0,5,5,5,5,5,0,0,0x17,1,0x22,0x22,0x22,0x22,0x22,0x22,
+0,0x22,0x22,0x22,0,0x22,0x22,0x1f,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0x23,0x23,0x22,0x22,0,0,
+0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0,0,0,0,0,0,
+0,0,0,5,4,4,4,0x17,0x17,0x17,0,2,2,0x20,0,0x23,
+0x23,0x23,0x23,0x23,0x23,0x23,0x23,0,0,0x23,0x23,0,0,0x23,0x23,5,
+5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
+5,5,5,0,5,5,5,5,5,5,5,0,5,5,0,5,
+5,5,5,5,0,0,0x17,1,0x22,0x22,0x22,0x22,0x22,0,0,0x22,
+0x22,0,0,0x22,0x22,0x1f,0,0,0,0,0,0,0,0,0x22,0x22,
+0,0,0,0,5,5,0,5,0x23,0x23,0x22,0x22,0,0,0x18,0x18,
+0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0,5,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,2,0x15,0,0x23,0x23,0x23,0x23,0x23,
+0x23,0,0,0,0x23,0x23,0x23,0,0x23,0x23,0x23,5,0,0,0,5,
+5,0,5,0,5,5,0,0,0,5,5,0,0,0,5,5,
+5,0,0,0,5,5,5,5,5,5,5,5,5,5,5,5,
+0,0,0,0,0x22,0x22,0x22,0,0,0,0x22,0x22,0x22,0,0x22,0x22,
+0x22,0x1f,0,0,0,0,0,0,0,0,0,0x22,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0x18,0x18,0x18,0x18,0x18,0x18,
+0x18,0x18,0x18,0x18,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,2,2,2,0x20,2,0x23,0x23,0x23,0x23,0x23,0x23,0x23,
+0x23,0,0x23,0x23,0x23,0,0x23,0x23,0x23,5,5,5,5,5,5,5,
+5,5,5,5,5,5,5,5,5,5,5,5,5,0,5,5,
+5,5,5,5,5,5,5,5,5,5,5,5,5,5,0,0,
+0,1,0x22,0x22,0x22,0x22,0x22,0,0x22,0x22,0x22,0,0x22,0x22,0x22,0x1f,
+0,0,0,0,0,0,0,0x22,0x22,0,5,5,5,0,0,0,
+0,0,0x23,0x23,0x22,0x22,0,0,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,
+0x18,0x18,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,2,2,0x20,0,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0,0x23,
+0x23,0x23,0,0x23,0x23,0x23,5,5,5,5,5,5,5,5,5,5,
+5,5,5,5,5,5,5,5,5,5,0,5,5,5,5,5,
+5,5,5,5,5,0,5,5,5,5,5,0,0,0x17,1,0x22,
+0x22,0x22,0x22,0x22,0,0x22,0x22,0x22,0,0x22,0x22,0x22,0x1f,0,0,0,
+0,0,0,0,0x22,0x22,0,0,0,0,0,0,0,5,0,0x23,
+0x23,0x22,0x22,0,0,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0,
+0x11,0x11,0,0,0,0,0,0,0,0,0,0,0,0,0,2,
+2,2,0x20,0,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0,0x23,0x23,0x23,
+0,0x23,0x23,0x23,5,5,5,5,5,5,5,5,5,5,5,5,
+5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
+5,5,5,5,5,5,5,5,5,5,0x1a,0x1a,1,0x22,0x22,0x22,
+0x22,0x22,0,0x22,0x22,0x22,0,0x22,0x22,0x22,0x1f,0xd,0,0,0,0,
+0,6,6,6,0x22,0,0,0,0,0,0,0,0x23,0x23,0x23,0x22,
+0x22,0,0,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0,0,0,
+0,0,0,0,0,0,0,6,6,6,6,6,6,0,0,2,
+0x20,0,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,
+0x23,0x23,0x23,0x23,0,0,0,5,5,5,5,5,5,5,5,5,
+5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,0,
+5,5,5,5,5,5,5,5,5,0,5,0,0,5,5,5,
+5,5,5,5,0,0,0,0x1f,0,0,0,0,0x22,0x22,0x22,0x22,
+0x22,0x22,0,0x22,0,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0,0,0,
+0,0,0,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0,0,0x22,
+0x22,0,0,0,0,0,0,0,0,0,0,0,0,5,5,5,
+5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
+5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
+5,5,5,5,5,5,5,5,5,5,5,0,0x22,0x22,0x22,0x22,
+0x22,0x22,0x22,0x22,0x22,0x22,0x1a,0,0,0,0,0,0x22,0x22,0x22,0x22,
+0x22,0x22,0,0x22,0x1e,0x1e,0x1e,0x1e,0xa,2,0x1a,0,0x18,0x18,0x18,0x18,
+0x18,0x18,0x18,0x18,0x18,0x18,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,5,5,0,5,
+0,0,5,5,0,5,0,0,5,0,0,0,0,0,0,5,
+5,5,5,0,5,5,5,5,5,5,5,0,5,5,5,0,
+5,0,5,0,0,5,5,0,5,5,0,0x22,0x22,0x22,0x22,0x22,
+0x22,0x22,0x22,0x22,0x22,0,0x22,0xb,0xb,0,0,0x22,0x22,0x22,0x22,0x22,
+0,0,0,0x1e,0x1e,0x1e,0x1e,0,2,0,0,0x18,0x18,0x18,0x18,0x18,
+0x18,0x18,0x18,0x18,0x18,0,0,5,5,5,5,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0x18,0x18,0x18,0x18,0x18,
+0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0,
+0x1c,0,0x1c,0,0x17,0,0,0,0,0,0,5,5,5,5,5,
+5,5,5,0,5,5,5,5,5,5,5,5,5,5,5,5,
+5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
+5,5,5,5,5,5,5,5,0,0,0,0,0x22,0x22,0x22,0x22,
+0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,2,0x20,0x22,0x22,2,2,0x1a,
+1,0,0,8,8,8,8,8,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,
+0xf,0xf,0xf,0,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,
+0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,
+0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0,0,0,0,0,0,0x1c,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,5,0x23,0x23,0x23,0x23,0x23,0x23,0x23,
+0x23,0x23,0x23,0x22,0x22,0x22,0x22,0x22,0x22,2,0x1e,0x20,0x13,0x1a,0xb,0xb,
+0xb,0xb,5,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0,0xc,0,
+0,0xc,0,5,5,0x23,0x23,0x23,0x23,0x22,0x22,0x22,0x22,5,5,5,
+5,0xb,0xb,5,0x22,0x1e,0x1e,5,5,0x22,0x22,0x1e,0x1e,0x1e,0x1e,0x1e,
+5,5,0x22,0x22,0x22,0x22,5,5,5,5,5,5,5,5,5,5,
+5,0xb,0x22,0x22,0x22,0x22,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,5,0x1e,0x18,
+0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x1e,0x1e,0x22,0x22,0,0,0x23,
+0x23,0x23,5,5,5,5,5,5,5,5,5,5,0,5,5,0x22,
+0x22,0x1a,0,0,0,0,0,0,0,0,0,0,0,5,5,0x22,
+0x22,0,0,0,0,0,0,0,0,0,0,0,0,5,0,0x22,
+0x22,0,0,0,0,0,0,0,0,0,0,0,0,5,5,5,
+0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0,0,0x22,
+0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,2,0x20,0x22,0x1b,0x1b,0x1c,0x10,
+0xa,0x1c,0x1c,0x1a,0x13,0x1c,0,0,0,0,0,0,0,0,1,0x1c,
+0,0,0xc,5,5,5,5,5,5,5,5,5,5,5,5,5,
+5,5,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0xf,0xf,0xf,0,0,
+0,0,7,7,2,7,7,7,7,7,7,7,0x22,0x1c,0,0,
+0,0,5,5,5,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,
+0,0,0x1d,0x1d,0x1d,0x1d,0x1d,0,0,0,0,0,0,0,0,0,
+0,0,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,
+0x22,0x22,7,7,7,7,7,7,7,0x1e,0x1e,0,0,0,0,0,
+0,5,5,5,5,5,5,5,0x22,0x22,0x22,0x22,0x22,0,0,0,
+0,5,5,5,5,5,5,5,5,5,5,5,5,5,0x23,0x23,
+0x23,5,5,0xb,0xb,0xf,7,7,9,0xf,0xf,0xf,0xf,0,0x13,0x22,
+0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,2,0x1e,
+0x1e,0x1e,0x1e,0x1e,0x1a,0x1c,0x1c,0,0,0x1c,2,2,2,0x10,0x20,0x23,
+0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,5,5,5,5,0x17,0x22,
+0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x1f,5,5,5,5,5,
+5,5,0,0,0,0,2,0x10,0x20,0x23,0x23,0x23,0x23,0x23,0x23,0x23,
+5,5,5,5,5,5,0xf,0xf,0xf,0x22,0x22,0x22,0x22,0x22,0x22,0x1a,
+0x13,0xf,0xf,5,5,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,1,
+5,5,5,7,7,5,5,5,5,0x23,0x23,0x17,0x22,0x22,0x22,0x22,
+0x22,0x22,0x22,0x22,0x22,7,7,0x1a,0x1a,0,0,0,0,0,0,0,
+0,0,0,0,0,5,5,5,5,0xf,0xf,0x22,0x22,0x22,0x22,0x22,
+0x22,0x22,7,7,7,7,2,2,0x1c,0x17,0,0,0,0,0,0,
+0,0,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0,0,0,5,
+5,5,4,4,4,0,4,4,4,4,4,4,4,4,4,4,
+4,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0x20,0x20,4,0x11,0x11,4,4,4,0,0,0,0,0,0,0,0,
+0,0,0,0x1c,0,0,0,0,0,0,0,0,0,0,0,0,
+0x16,0x14,0,0,0xc,0xc,0xc,0xc,0xc,0,0,0,0,0,0,0,
+0,0,0,0,0x1c,0x1c,0x1c,0,0,0,0,0,0,0,0,0,
+0,0,0x23,0x23,0,0x23,0x23,0x23,0x1a,5,5,5,5,2,5,5,
+5,5,0x22,0x22,0x22,0x22,0x22,0,0,0,0,0,0,0,0,5,
+5,5,5,5,5,5,5,5,5,5,5,5,5,0x21,0x21,5,
+5,5,5,0x21,0xf,0xf,5,5,5,5,5,5,5,0xf,5,2,
+0,0,0,0,0,0,0,0,0,0,0,0,5,5,5,5,
+0xb,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x1f,2,0,0,
+0,0,0,0,0,0,0,0,4,4,4,4,4,4,4,4,
+4,4,4,4,4,4,4,4,2,2,0,0,0,0,0,0,
+0,0,0,0,0x23,0x22,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,
+5,5,5,5,5,5,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x1e,
+0x1e,0x1e,0,0,5,5,5,5,5,5,5,0x22,0x22,0x22,0x22,0x22,
+0x22,0x22,0x22,7,7,7,0x1a,0,0,0,0,0,0,0,0,0,
+0,0,0,2,2,0x10,0x20,0x23,0x23,0x23,0x23,0x23,5,5,5,0x23,
+0x23,0x23,5,5,5,0x17,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0xf,
+0xb,0xb,5,5,5,5,5,0x22,0,5,5,5,5,5,5,5,
+5,5,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,5,5,5,5,
+5,0,0x22,0x22,0x22,0xb,0xb,0xb,0xb,0,0,0,0,0,0,0,
+0,0,7,7,7,7,7,7,7,7,7,7,7,7,7,7,
+0,0,5,5,5,0xc,0xc,0xc,0,0,0,5,0x1e,0x1e,0x1e,5,
+5,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,
+0x1e,0x1d,0x1e,0x1d,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0x23,0x23,5,5,5,5,5,5,5,5,5,0x22,0x22,0x22,0x22,
+0x22,0,0,0,0,0,0x20,0x13,0,0,0,0,0,0,0,0,
+0,5,5,5,5,5,5,5,5,5,5,5,5,5,5,0x23,
+0x23,5,0x23,5,5,5,5,5,5,5,5,5,7,7,7,7,
+7,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0,0x1e,0x1a,0,0,5,0x22,
+0x22,0x22,0,0x22,0x22,0,0,0,0,0,0x22,0x22,2,0x20,5,5,
+5,5,0,5,5,5,0,5,5,5,5,5,5,5,0,0,
+0x17,0x17,0x17,0,0,0,0,0x13,2,2,0x20,0x11,0x11,0x23,0x23,0x23,
+0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x22,0x22,0x22,0x22,0x22,0x22,0x1f,0,
+0,0,0,0,0,0,0,0,3,3,3,3,3,3,3,3,
+3,3,3,3,3,3,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0x19,
+2,2,0x20,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,5,5,5,
+0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x1f,0x17,0,0,0,0,0,
+2,2,0x20,0x23,0x23,0x23,0x23,5,5,5,5,5,5,5,5,5,
+0x22,0x22,0x22,0x13,0x1a,0,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,
+0,0,0,0,5,0x22,0x22,0,0,0,0,0,0,0,0,0,
+0x21,0x21,0x21,0x21,0x21,5,5,5,5,5,5,5,5,5,5,5,
+0x17,0,0,0,0,0,0,0,0,0,0,0,0,5,5,5,
+0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x1f,1,0xe,
+0xe,0,0,0,0,0,0x1c,0x17,0x22,0x22,0,0,0,0x22,0x22,0x22,
+0x22,2,0x1f,0x17,0x12,0,0,0,0,0,0,4,0,0x23,0x23,0x23,
+0x23,5,5,5,0,5,0,5,5,5,5,0,5,5,5,5,
+5,5,5,5,5,0,0,0,0,0,0,0,5,5,5,5,
+5,5,5,5,5,5,5,5,5,5,5,2,0x22,0x22,0x22,0x22,
+0x22,0x22,0x22,0x22,0x22,0x17,0x1a,0,0,0,0,0,2,2,2,0x20,
+0,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0,0,0x23,5,0,5,5,
+0,5,5,5,5,5,0,0x17,0x17,1,0x22,0x22,0,0,0,0,
+0,0,0,0x22,0,0,0,0,0,0,2,2,0x23,0x23,0x22,0x22,
+0,0,4,4,4,4,4,4,4,0,0,0,5,5,5,5,
+5,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x1f,2,2,0x20,
+0x17,1,0,0,0,0,0,0,0,0,0x18,0x18,0x18,0x18,0x18,0x18,
+0x18,0x18,0x18,0x18,0,0,0,0,0x1c,0,0x23,0x23,0x23,0x23,0x23,0x23,
+0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,5,2,0x20,0x1f,0x17,1,0,0,
+0,0,0,0,0,0,0,0,0,0x22,0x22,0x22,0x22,0x22,0x22,0,
+0,0x22,0x22,0x22,0x22,2,2,0x20,0x1f,0x17,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0x23,0x23,0x23,0x23,0x22,0x22,0,
+0,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,2,0x20,
+0x1f,0x22,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,5,5,5,5,5,5,5,5,5,5,5,2,0x20,0x22,0x22,
+0x22,0x22,0x22,0x22,0x1f,0x17,0,0,0,0,0,0,0,0,5,5,
+5,5,5,5,5,5,5,5,5,0,0,0xb,0xb,0xb,0x22,0x22,
+0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x1a,0,0,0,0,0x18,0x18,
+0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0,0,0,0,0x22,0x22,
+0x22,0x22,0x22,0x22,0x22,2,0x20,0x1f,0x17,0,0,0,0,0,0x23,0x22,
+0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,5,5,5,5,5,0x1c,0x1a,
+2,2,2,2,0x20,0xe,0xb,0xb,0xb,0xb,0xc,0,0,0,0,0,
+0xc,0,0x13,0,0,0,0,0,0,0,0,0x23,0x22,0x22,0x22,0x22,
+0x22,0x22,0x22,0x22,0x22,0x22,0x22,5,5,5,5,0,0,0xe,0xe,0xe,
+0xe,7,7,7,7,7,7,2,0x20,0x12,0x13,0,0,0,1,0,
+0,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0,0x23,0x23,0x23,0x23,5,
+5,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0,0x22,0x22,0x22,0x22,2,2,0x20,
+0x1f,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0,0,
+0,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0x22,
+0x22,0x22,0x22,0x22,2,2,0,0,0,0,0,0,0,0,0,0x23,
+0x23,0x23,0x23,0x23,0x23,0x23,0,0x23,0x23,0,0x23,5,5,5,5,0x22,
+0x22,0x22,0x22,0x22,0x22,0,0,0,0x22,0,0x22,0x22,0,0x22,2,0x20,
+0x17,0x22,0x1a,0x13,0xd,0xb,0,0,0,0,0,0,0,0,0x23,0x23,
+0x23,0x23,0x23,0x23,0,0x23,0x23,0,0x23,0x23,5,5,5,5,5,5,
+5,5,5,5,0x22,0x22,0x22,0x22,0x22,0,0x22,0x22,2,0x20,0x13,0,
+0,0,0,0,0,0,0,5,5,0xc,0x22,0x22,0x22,0x22,0,0,
+0,0,0,0,0,0,0,0
+};
+
+static const UCPTrie insc_trie={
+    insc_trieIndex,
+    { insc_trieData },
+    834, 3960,
+    0x12000, 0x12,
+    1, 2,
+    0, 0,
+    0x4, 0x40,
+    0x0,
+};
+
+static const int32_t maxVoValue = 3;
+
+static const uint16_t vo_trieIndex[1100]={
+0,0x40,0x59,0x98,0,0,0,0,0,0,0,0xd0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0x33b,0x355,0x363,0x379,0x399,0x3b7,0x3d2,0x3ec,0x355,0x355,0x355,0x40c,0x355,0x355,0x355,0x40c,
+0x42c,0x42c,0x42c,0x42c,0x42c,0x42c,0x42c,0x42c,0x42c,0x42c,0x42c,0x42c,0x42c,0x42c,0x42c,0x42c,
+0x42c,0x42c,0x42c,0x42c,0x42c,0x42c,0x42c,0x42c,0x42c,0x42c,0x42c,0x42c,0x42c,0x42c,0x42c,0x42c,
+0x42c,0x42c,0x42c,0x42c,0x42c,0x42c,0x42c,0x42c,0x42c,0x42c,0x42c,0x42c,0x355,0x355,0x355,0x40c,
+0x355,0x355,0x355,0x40c,0,0x10,0x20,0x30,0x40,0x50,0x60,0x70,0x59,0x69,0x79,0x89,
+0x98,0xa8,0xb8,0xc8,0,0x10,0x20,0x30,0,0x10,0x20,0x30,0,0x10,0x20,0x30,
+0,0x10,0x20,0x30,0xd0,0xe0,0xf0,0x100,0,0x10,0x20,0x30,0,0x10,0x20,0x30,
+0,0x10,0x20,0x30,0,0x10,0x20,0x30,0,0x10,0x20,0x30,0,0x10,0x20,0x30,
+0,0x10,0x20,0x30,0,0x10,0x20,0x30,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0x110,0x110,0x110,0x110,0x110,0x110,0x110,0x110,
+0x110,0x110,0x110,0x110,0x110,0x110,0x110,0x110,0x10f,0x110,0x110,0x110,0x110,0x110,0x110,0x110,
+0x110,0x110,0x110,0x110,0x110,0x110,0x110,0x110,0x110,0x110,0x110,0x110,0x110,0x110,0x110,0x110,
+0x110,0x110,0x110,0x110,0x110,0x110,0x110,0x110,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0x110,0x110,0x110,0x110,0x110,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0xa9,0x96,0x11e,0x12c,0xae,0xaa,0,0,0,0,0,
+0,0x103,0x13c,0,0x14c,0x158,0x166,0x10b,0x175,0x110,0x110,0x110,0x184,0,0,0,
+0,0,0,0,0x72,0,0xf6,0,0,0,0,0,0,0,0,0,
+0,0,0,0x190,0x110,0x198,0,0,0,0,0x103,0x110,0x115,0,0xec,0x1a8,
+0x1b6,0x10e,0x110,0x110,0x1c6,0x110,0x110,0x110,0x110,0x110,0x110,0x110,0x110,0x110,0x110,0x110,
+0x110,0x110,0,0,0,0,0,0,0,0,0,0,0x110,0x110,0x110,0x110,
+0x110,0x110,0x116,0x110,0x110,0x110,0x110,0x110,0x110,0x110,0x110,0x110,0x110,0x110,0x110,0x110,
+0x110,0x110,0x110,0x110,0x110,0x110,0x110,0x118,0x10a,0x110,0x1d2,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0x10e,0x110,0,0,
+0x116,0,0,0,0,0,0x108,0x110,0x1e2,0x114,0x110,0,0,0,0,0,
+0,0,0,0x110,0x110,0x110,0x110,0x110,0x110,0x110,0x110,0x110,0x110,0x110,0x110,0x110,
+0x110,0x110,0x110,0x110,0x110,0x110,0x110,0x110,0x110,0x110,0x110,0x1f1,0x1ff,0x110,0x20e,0x21d,
+0x110,0x22a,0x110,0x237,0x246,0x256,0x110,0x22a,0x110,0x237,0x261,0x110,0x110,0x26e,0x110,0x110,
+0x110,0x110,0x110,0x110,0x110,0x110,0x110,0x110,0x110,0x110,0x27e,0x110,0x110,0x110,0x110,0x110,
+0x110,0x110,0x110,0x110,0x110,0x110,0x110,0x110,0x110,0x110,0x110,0x27e,0x27e,0x27e,0x27e,0x27e,
+0x286,0x110,0x28e,0x110,0x110,0x110,0x110,0x110,0x110,0x110,0x110,0x110,0x110,0x110,0x110,0x110,
+0x110,0x110,0x110,0x110,0x110,0x110,0x110,0x110,0x110,0x110,0x110,0x110,0x110,0x110,0x110,0x110,
+0x110,0x110,0x110,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0x110,0x110,0,0,0,0,0,
+0,0,0,0x110,0,0x110,0x117,0x29b,0x2aa,0,0,0,0,0,0,0,
+0,0,0x2ba,0x2c9,0x110,0x2d9,0x110,0x2e9,0x2f8,0,0,0,0,0,0,0,
+0x308,0x318,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0x110,0x110,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0x110,0x110,0x110,0x110,0x110,0x110,0x110,0x110,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0x110,0x110,0x110,0x110,0x110,0x110,
+0x110,0x110,0x110,0x110,0x110,0x110,0x110,0x110,0x110,0x110,0x110,0x110,0x110,0,0,0,
+0,0x110,0x110,0x110,0x110,0x110,0x110,0x110,0x110,0x110,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0x110,0x110,0x110,0x110,0x110,0x110,0x110,0x110,
+0x110,0x110,0,0,0,0,0,0,0,0,0x328,0x110,0x110,0x110,0x110,0x110,
+0x110,0x110,0x110,0x110,0x110,0x110,0x110,0x110,0x110,0x110,0x110,0x110,0x110,0x110,0x110,0x110,
+0x110,0x110,0x110,0x110,0x110,0x110,0x110,0x110,0x110,0x110,0x112,0x84,0x98,0xa8,0xa8,0xa8,
+0xa8,0xa8,0xa8,0xc8,0xc,0xe8,0x100,0x115,0xc,0xc,0xc,0x134,0x153,0x172,0x191,0xc,
+0x1ab,0xc,0x1cb,0x1eb,0x20b,0x223,0x223,0x223,0x223,0x223,0x223,0x223,0x223,0x223,0x223,0x223,
+0x223,0x223,0x223,0x223,0x223,0x223,0x223,0x223,0x223,0x223,0x223,0x223,0x223,0x223,0x223,0x223,
+0x223,0x223,0x223,0x223,0x223,0xfb,0xc,0x243,0xc,0x223,0x223,0x223,0x223,0x223,0x223,0x223,
+0x223,0x223,0x223,0x223,0x223,0xc,0xc,0xc,0xc,0x223,0x223,0x223,0x223,0x223,0x223,0x223,
+0x223,0x223,0x223,0x223,0x223,0x223,0xf8,0xc,0x262,0xc,0xc,0xc,0xc,0x282,0xc,0xc,
+0xc,0xc,0xc,0x29c,0xc,0xc,0xfd,0xc,0xc,0xc,0xc,0xc,0xc,0xc,0xc,0xc,
+0xc,0x223,0x223,0x2b9,0xc,0xc,0xc,0xc,0xc,0x223,0x100,0xc,0xc,0xc,0xc,0xc,
+0xc,0xc,0xc,0xc,0xc,0xc,0xc,0xc,0xc,0xc,0xc,0xc,0xc,0xc,0x2bc,0x223,
+0x223,0x223,0x223,0x223,0x223,0x223,0x223,0xf8,0xc,0xc,0xc,0xc,0xc,0xc,0xc,0xc,
+0xc,0xc,0xc,0xc,0xc,0xc,0xc,0xc,0xc,0xc,0x2da,0xf8,0xc,0xc,0xc,0xc,
+0xc,0xc,0xc,0xc,0x223,0x2fa,0xc,0xc,0x223,0xfd,0xc,0xc,0xc,0xc,0xc,0xc,
+0xc,0xc,0xc,0xc,0x223,0x31a,0x223,0x223,0xc8,0x2b5,0xc,0xc,0x223,0x223,0x223,0x223,
+0x223,0x223,0x223,0x223,0x223,0x223,0x223,0x223,0x223,0x223,0x223,0x223,0x223,0x223,0x223,0x223,
+0x223,0x223,0x223,0x223,0x223,0x223,0x223,0x223,0x223,0x223,0x223,0x31b,0xc,0xc,0xc,0xc,
+0xc,0xc,0xc,0xc,0xc,0xc,0xc,0xc,0xc,0xc,0xc,0xc,0xc,0xc,0xc,0xc,
+0xc,0xc,0xc,0xc,0xc,0xc,0xc,0xc,0xc,0xc,0xc,0xc
+};
+
+static const uint8_t vo_trieData[828]={
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+3,0,3,0,0,0,0,3,0,0,3,0,0,0,0,0,
+0,0,0,0,0,3,3,3,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,3,3,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,
+0,0,0,0,0,0,0,0,0,3,3,0,0,0,3,0,
+0,0,0,3,3,3,0,0,0,0,0,0,3,0,3,3,
+3,0,0,0,0,0,0,0,0,0,0,0,3,3,0,3,
+3,3,3,3,3,3,0,0,0,0,0,3,3,0,3,3,
+0,0,0,0,0,0,3,3,3,3,0,3,0,3,0,3,
+0,0,0,0,3,0,0,0,0,0,3,3,3,3,3,3,
+0,3,3,0,3,3,3,3,3,3,3,3,3,3,0,0,
+3,3,3,3,3,3,3,3,0,0,0,0,3,3,3,3,
+3,1,1,3,0,0,0,0,3,3,3,3,3,3,3,3,
+3,3,3,3,3,3,0,3,3,3,3,3,3,3,3,3,
+3,3,0,0,0,0,3,3,3,0,3,3,3,3,3,3,
+3,3,3,3,3,3,0,0,0,0,0,0,0,0,0,0,
+0,0,3,3,0,3,3,3,3,3,3,3,3,3,3,3,
+3,3,2,2,3,3,3,3,3,1,1,1,1,1,1,1,
+1,3,3,1,1,1,1,1,1,1,1,1,1,1,1,3,
+3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,3,
+2,3,2,3,2,3,2,3,3,3,3,3,3,2,3,3,
+3,3,3,3,3,3,3,3,3,3,2,3,2,3,2,3,
+3,3,3,3,3,2,3,3,3,3,3,2,2,3,3,3,
+3,2,2,3,3,3,1,2,3,2,3,2,3,2,3,2,
+3,3,3,3,3,3,2,2,3,3,3,3,3,1,3,3,
+3,3,3,3,3,2,3,3,3,3,3,3,3,3,2,2,
+2,2,2,2,2,2,2,2,2,2,2,2,2,2,3,3,
+3,3,3,3,3,3,3,3,3,2,2,2,2,2,3,3,
+3,3,3,0,1,1,1,1,1,1,3,3,3,0,0,0,
+0,3,3,3,3,3,3,3,3,3,0,2,3,3,3,3,
+3,3,1,1,3,3,2,0,2,3,3,3,3,3,3,3,
+3,3,3,1,1,0,0,0,2,3,3,3,3,3,3,3,
+3,3,3,3,1,3,1,3,1,3,3,3,3,3,3,3,
+3,3,3,3,1,1,1,1,1,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,3,3,3,1,3,3,3,3,
+0,0,0,0,0,0,0,0,3,3,3,3,3,3,3,3,
+3,0,0,0,3,3,0,0,2,2,3,3,3,3,3,3,
+3,3,3,3,3,3,3,3,0,0,0,0
+};
+
+static const UCPTrie vo_trie={
+    vo_trieIndex,
+    { vo_trieData },
+    1100, 828,
+    0x110000, 0x110,
+    1, 2,
+    0, 0,
+    0xc, 0x0,
+    0x0,
+};
+
+#endif  // INCLUDED_FROM_UPROPS_CPP
diff --git a/source/common/ulistformatter.cpp b/source/common/ulistformatter.cpp
deleted file mode 100644 (file)
index c140c78..0000000
+++ /dev/null
@@ -1,91 +0,0 @@
-// © 2016 and later: Unicode, Inc. and others.
-// License & terms of use: http://www.unicode.org/copyright.html
-/*
-*****************************************************************************************
-* Copyright (C) 2015, International Business Machines
-* Corporation and others. All Rights Reserved.
-*****************************************************************************************
-*/
-
-#include "unicode/utypes.h"
-
-#if !UCONFIG_NO_FORMATTING
-
-#include "unicode/ulistformatter.h"
-#include "unicode/listformatter.h"
-#include "unicode/localpointer.h"
-#include "cmemory.h"
-
-U_NAMESPACE_USE
-
-U_CAPI UListFormatter* U_EXPORT2
-ulistfmt_open(const char*  locale,
-              UErrorCode*  status)
-{
-    if (U_FAILURE(*status)) {
-        return NULL;
-    }
-    LocalPointer<ListFormatter> listfmt(ListFormatter::createInstance(Locale(locale), *status));
-    if (U_FAILURE(*status)) {
-        return NULL;
-    }
-    return (UListFormatter*)listfmt.orphan();
-}
-
-
-U_CAPI void U_EXPORT2
-ulistfmt_close(UListFormatter *listfmt)
-{
-    delete (ListFormatter*)listfmt;
-}
-
-
-U_CAPI int32_t U_EXPORT2
-ulistfmt_format(const UListFormatter* listfmt,
-                const UChar* const strings[],
-                const int32_t *    stringLengths,
-                int32_t            stringCount,
-                UChar*             result,
-                int32_t            resultCapacity,
-                UErrorCode*        status)
-{
-    if (U_FAILURE(*status)) {
-        return -1;
-    }
-    if (stringCount < 0 || (strings == NULL && stringCount > 0) || ((result == NULL)? resultCapacity != 0 : resultCapacity < 0)) {
-        *status = U_ILLEGAL_ARGUMENT_ERROR;
-        return -1;
-    }
-    UnicodeString ustringsStackBuf[4];
-    UnicodeString* ustrings = ustringsStackBuf;
-    if (stringCount > UPRV_LENGTHOF(ustringsStackBuf)) {
-        ustrings = new UnicodeString[stringCount];
-        if (ustrings == NULL) {
-            *status = U_MEMORY_ALLOCATION_ERROR;
-            return -1;
-        }
-    }
-    if (stringLengths == NULL) {
-        for (int32_t stringIndex = 0; stringIndex < stringCount; stringIndex++) {
-            ustrings[stringIndex].setTo(TRUE, strings[stringIndex], -1);
-        }
-    } else {
-        for (int32_t stringIndex = 0; stringIndex < stringCount; stringIndex++) {
-            ustrings[stringIndex].setTo(stringLengths[stringIndex] < 0, strings[stringIndex], stringLengths[stringIndex]);
-        }
-    }
-    UnicodeString res;
-    if (result != NULL) {
-        // NULL destination for pure preflighting: empty dummy string
-        // otherwise, alias the destination buffer (copied from udat_format)
-        res.setTo(result, 0, resultCapacity);
-    }
-    ((const ListFormatter*)listfmt)->format( ustrings, stringCount, res, *status );
-    if (ustrings != ustringsStackBuf) {
-        delete[] ustrings;
-    }
-    return res.extract(result, resultCapacity, *status);
-}
-
-
-#endif /* #if !UCONFIG_NO_FORMATTING */
index 7a1dc723cff619f82fd5b244dced43da1507ee0d..81b6e0f68ab88be97d59dcec345e8d612ebd45e4 100644 (file)
@@ -798,7 +798,7 @@ _getKeywords(const char *localeID,
             }
             keywordsLen += keywordList[i].keywordLen + 1;
             if(valuesToo) {
-                if(keywordsLen + keywordList[i].valueLen < keywordCapacity) {
+                if(keywordsLen + keywordList[i].valueLen <= keywordCapacity) {
                     uprv_strncpy(keywords+keywordsLen, keywordList[i].valueStart, keywordList[i].valueLen);
                 }
                 keywordsLen += keywordList[i].valueLen;
@@ -1133,7 +1133,7 @@ uloc_setKeywordValue(const char* keywordName,
             keyValuePrefix = ';'; /* for any subsequent key-value pair */
             updatedKeysAndValues.append(localeKeywordNameBuffer, keyValueLen, *status);
             updatedKeysAndValues.append('=', *status);
-            updatedKeysAndValues.append(nextEqualsign, keyValueTail-nextEqualsign, *status);
+            updatedKeysAndValues.append(nextEqualsign, static_cast<int32_t>(keyValueTail-nextEqualsign), *status);
         }
         if (!nextSeparator && keywordValueLen > 0 && !handledInputKeyAndValue) {
             /* append new entry at the end, it sorts later than existing entries */
@@ -1500,7 +1500,7 @@ _deleteVariant(char* variants, int32_t variantsLen,
         }
         if (uprv_strncmp(variants, toDelete, toDeleteLen) == 0 &&
             (variantsLen == toDeleteLen ||
-             (flag=(variants[toDeleteLen] == '_'))))
+             (flag=(variants[toDeleteLen] == '_')) != 0))
         {
             int32_t d = toDeleteLen + (flag?1:0);
             variantsLen -= d;
@@ -2412,7 +2412,7 @@ uloc_acceptLanguageFromHTTP(char *result, int32_t resultAvailable, UAcceptResult
         /* eat spaces prior to semi */
         for(t=(paramEnd-1);(paramEnd>s)&&isspace(*t);t--)
             ;
-        int32_t slen = ((t+1)-s);
+        int32_t slen = static_cast<int32_t>(((t+1)-s));
         if(slen > ULOC_FULLNAME_CAPACITY) {
           *status = U_BUFFER_OVERFLOW_ERROR;
           return -1; // too big
index 4eea504bc26b774494f499834307aaccdd23c121..b6f0752a7077b68d6fed567529ab95a023886f9d 100644 (file)
@@ -228,7 +228,7 @@ initFromResourceBundle(UErrorCode& sts) {
                     // a timezone key uses a colon instead of a slash in the resource.
                     // e.g. America:Los_Angeles
                     if (uprv_strchr(legacyTypeId, ':') != NULL) {
-                        int32_t legacyTypeIdLen = uprv_strlen(legacyTypeId);
+                        int32_t legacyTypeIdLen = static_cast<int32_t>(uprv_strlen(legacyTypeId));
                         char* legacyTypeIdBuf = (char*)uprv_malloc(legacyTypeIdLen + 1);
                         if (legacyTypeIdBuf == NULL) {
                             sts = U_MEMORY_ALLOCATION_ERROR;
@@ -320,7 +320,7 @@ initFromResourceBundle(UErrorCode& sts) {
                             if (isTZ) {
                                 // replace colon with slash if necessary
                                 if (uprv_strchr(from, ':') != NULL) {
-                                    int32_t fromLen = uprv_strlen(from);
+                                    int32_t fromLen = static_cast<int32_t>(uprv_strlen(from));
                                     char* fromBuf = (char*)uprv_malloc(fromLen + 1);
                                     if (fromBuf == NULL) {
                                         sts = U_MEMORY_ALLOCATION_ERROR;
@@ -472,7 +472,6 @@ isSpecialTypeRgKeyValue(const char* val) {
         p++;
     }
     return (subtagLen == 6);
-    return TRUE;
 }
 
 U_CFUNC const char*
index 87b9f63f279a826f5b275236f68d419598c5dd12..83d79160e8f35ddc801bd3a3a4d78d3a06dc181e 100644 (file)
 #include "unicode/putil.h"
 #include "unicode/uloc.h"
 #include "ustr_imp.h"
+#include "charstr.h"
 #include "cmemory.h"
 #include "cstring.h"
 #include "putilimp.h"
 #include "uinvchar.h"
 #include "ulocimp.h"
+#include "uvector.h"
 #include "uassert.h"
 
 
@@ -77,19 +79,34 @@ static const char LOCALE_TYPE_YES[] = "yes";
 
 #define LANG_UND_LEN 3
 
+/*
+ Updated on 2018-09-12 from
+ https://www.iana.org/assignments/language-subtag-registry/language-subtag-registry .
+
+ This table has 2 parts. The parts for Grandfathered tags is generated by the
+ following scripts from the IANA language tag registry.
+
+ curl  https://www.iana.org/assignments/language-subtag-registry/language-subtag-registry |\
+ egrep -A 7 'Type: grandfathered' | \
+ egrep 'Tag|Prefe' | grep -B1 'Preferred' | grep -v '^--' | \
+ awk -n '/Tag/ {printf("    \"%s\", ", $2);} /Preferred/ {printf("\"%s\",\n", $2);}' |\
+ tr 'A-Z' 'a-z'
+
+
+ The 2nd part is made of five ICU-specific entries. They're kept for
+ the backward compatibility for now, even though there are no preferred
+ values. They may have to be removed for the strict BCP 47 compliance.
+
+*/
 static const char* const GRANDFATHERED[] = {
 /*  grandfathered   preferred */
     "art-lojban",   "jbo",
-    "cel-gaulish",  "xtg-x-cel-gaulish",
-    "en-GB-oed",    "en-GB-x-oed",
+    "en-gb-oed",    "en-gb-oxendict",
     "i-ami",        "ami",
     "i-bnn",        "bnn",
-    "i-default",    "en-x-i-default",
-    "i-enochian",   "und-x-i-enochian",
     "i-hak",        "hak",
     "i-klingon",    "tlh",
     "i-lux",        "lb",
-    "i-mingo",      "see-x-i-mingo",
     "i-navajo",     "nv",
     "i-pwn",        "pwn",
     "i-tao",        "tao",
@@ -102,17 +119,175 @@ static const char* const GRANDFATHERED[] = {
     "sgn-ch-de",    "sgg",
     "zh-guoyu",     "cmn",
     "zh-hakka",     "hak",
-    "zh-min",       "nan-x-zh-min",
     "zh-min-nan",   "nan",
     "zh-xiang",     "hsn",
-    NULL,           NULL
+
+    // Grandfathered tags with no preferred value in the IANA
+    // registry. Kept for now for the backward compatibility
+    // because ICU has mapped them this way.
+    "cel-gaulish",  "xtg-x-cel-gaulish",
+    "i-default",    "en-x-i-default",
+    "i-enochian",   "und-x-i-enochian",
+    "i-mingo",      "see-x-i-mingo",
+    "zh-min",       "nan-x-zh-min",
 };
 
+/*
+ Updated on 2018-09-12 from
+ https://www.iana.org/assignments/language-subtag-registry/language-subtag-registry .
+
+ The table lists redundant tags with preferred value in the IANA languate tag registry.
+ It's generated with the following command:
+
+ curl  https://www.iana.org/assignments/language-subtag-registry/language-subtag-registry |\
+ grep 'Type: redundant' -A 5 | egrep '^(Tag:|Prefer)' | grep -B1 'Preferred' | \
+ awk -n '/Tag/ {printf("    \"%s\",       ", $2);} /Preferred/ {printf("\"%s\",\n", $2);}' | \
+ tr 'A-Z' 'a-z'
+
+ In addition, ja-latn-hepburn-heploc is mapped to ja-latn-alalc97 because
+ a variant tag 'hepburn-heploc' has the preferred subtag, 'alaic97'.
+*/
+
+static const char* const REDUNDANT[] = {
+//  redundant       preferred
+    "sgn-br",       "bzs",
+    "sgn-co",       "csn",
+    "sgn-de",       "gsg",
+    "sgn-dk",       "dsl",
+    "sgn-es",       "ssp",
+    "sgn-fr",       "fsl",
+    "sgn-gb",       "bfi",
+    "sgn-gr",       "gss",
+    "sgn-ie",       "isg",
+    "sgn-it",       "ise",
+    "sgn-jp",       "jsl",
+    "sgn-mx",       "mfs",
+    "sgn-ni",       "ncs",
+    "sgn-nl",       "dse",
+    "sgn-no",       "nsl",
+    "sgn-pt",       "psr",
+    "sgn-se",       "swl",
+    "sgn-us",       "ase",
+    "sgn-za",       "sfs",
+    "zh-cmn",       "cmn",
+    "zh-cmn-hans",  "cmn-hans",
+    "zh-cmn-hant",  "cmn-hant",
+    "zh-gan",       "gan",
+    "zh-wuu",       "wuu",
+    "zh-yue",       "yue",
+
+    // variant tag with preferred value
+    "ja-latn-hepburn-heploc", "ja-latn-alalc97",
+};
+
+/*
+  Updated on 2018-09-12 from
+  https://www.iana.org/assignments/language-subtag-registry/language-subtag-registry .
+
+  grep 'Type: language' -A 7 language-subtag-registry  | egrep 'Subtag|Prefe' | \
+  grep -B1 'Preferred' | grep -v '^--' | \
+  awk -n '/Subtag/ {printf("    \"%s\",       ", $2);} /Preferred/ {printf("\"%s\",\n", $2);}'
+
+  Make sure that 2-letter language subtags come before 3-letter subtags.
+*/
 static const char DEPRECATEDLANGS[][4] = {
 /*  deprecated  new */
+    "in",       "id",
     "iw",       "he",
     "ji",       "yi",
-    "in",       "id"
+    "jw",       "jv",
+    "mo",       "ro",
+    "aam",       "aas",
+    "adp",       "dz",
+    "aue",       "ktz",
+    "ayx",       "nun",
+    "bgm",       "bcg",
+    "bjd",       "drl",
+    "ccq",       "rki",
+    "cjr",       "mom",
+    "cka",       "cmr",
+    "cmk",       "xch",
+    "coy",       "pij",
+    "cqu",       "quh",
+    "drh",       "khk",
+    "drw",       "prs",
+    "gav",       "dev",
+    "gfx",       "vaj",
+    "ggn",       "gvr",
+    "gti",       "nyc",
+    "guv",       "duz",
+    "hrr",       "jal",
+    "ibi",       "opa",
+    "ilw",       "gal",
+    "jeg",       "oyb",
+    "kgc",       "tdf",
+    "kgh",       "kml",
+    "koj",       "kwv",
+    "krm",       "bmf",
+    "ktr",       "dtp",
+    "kvs",       "gdj",
+    "kwq",       "yam",
+    "kxe",       "tvd",
+    "kzj",       "dtp",
+    "kzt",       "dtp",
+    "lii",       "raq",
+    "lmm",       "rmx",
+    "meg",       "cir",
+    "mst",       "mry",
+    "mwj",       "vaj",
+    "myt",       "mry",
+    "nad",       "xny",
+    "ncp",       "kdz",
+    "nnx",       "ngv",
+    "nts",       "pij",
+    "oun",       "vaj",
+    "pcr",       "adx",
+    "pmc",       "huw",
+    "pmu",       "phr",
+    "ppa",       "bfy",
+    "ppr",       "lcq",
+    "pry",       "prt",
+    "puz",       "pub",
+    "sca",       "hle",
+    "skk",       "oyb",
+    "tdu",       "dtp",
+    "thc",       "tpo",
+    "thx",       "oyb",
+    "tie",       "ras",
+    "tkk",       "twm",
+    "tlw",       "weo",
+    "tmp",       "tyj",
+    "tne",       "kak",
+    "tnf",       "prs",
+    "tsf",       "taj",
+    "uok",       "ema",
+    "xba",       "cax",
+    "xia",       "acn",
+    "xkh",       "waw",
+    "xsj",       "suj",
+    "ybd",       "rki",
+    "yma",       "lrr",
+    "ymt",       "mtm",
+    "yos",       "zom",
+    "yuu",       "yug",
+};
+
+/*
+  Updated on 2018-04-24 from
+
+  curl  https://www.iana.org/assignments/language-subtag-registry/language-subtag-registry | \
+  grep 'Type: region' -A 7 | egrep 'Subtag|Prefe' | \
+  grep -B1 'Preferred' | \
+  awk -n '/Subtag/ {printf("    \"%s\",       ", $2);} /Preferred/ {printf("\"%s\",\n", $2);}'
+*/
+static const char DEPRECATEDREGIONS[][3] = {
+/*  deprecated  new */
+    "BU",       "MM",
+    "DD",       "DE",
+    "FX",       "FR",
+    "TP",       "TL",
+    "YD",       "YE",
+    "ZR",       "CD",
 };
 
 /*
@@ -172,6 +347,46 @@ static const char*
 ultag_getGrandfathered(const ULanguageTag* langtag);
 #endif
 
+namespace {
+
+// Helper class to memory manage CharString objects.
+// Only ever stack-allocated, does not need to inherit UMemory.
+class CharStringPool {
+public:
+    CharStringPool() : status(U_ZERO_ERROR), pool(&deleter, nullptr, status) {}
+    ~CharStringPool() = default;
+
+    CharStringPool(const CharStringPool&) = delete;
+    CharStringPool& operator=(const CharStringPool&) = delete;
+
+    icu::CharString* create() {
+        if (U_FAILURE(status)) {
+            return nullptr;
+        }
+        icu::CharString* const obj = new icu::CharString;
+        if (obj == nullptr) {
+            status = U_MEMORY_ALLOCATION_ERROR;
+            return nullptr;
+        }
+        pool.addElement(obj, status);
+        if (U_FAILURE(status)) {
+            delete obj;
+            return nullptr;
+        }
+        return obj;
+    }
+
+private:
+    static void U_CALLCONV deleter(void* obj) {
+        delete static_cast<icu::CharString*>(obj);
+    }
+
+    UErrorCode status;
+    icu::UVector pool;
+};
+
+}  // namespace
+
 /*
 * -------------------------------------------------
 *
@@ -675,6 +890,11 @@ _appendLanguageToLanguageTag(const char* localeID, char* appendAt, int32_t capac
     } else {
         /* resolve deprecated */
         for (i = 0; i < UPRV_LENGTHOF(DEPRECATEDLANGS); i += 2) {
+            // 2-letter deprecated subtags are listede before 3-letter
+            // ones in DEPRECATEDLANGS[]. Get out of loop on coming
+            // across the 1st 3-letter subtag, if the input is a 2-letter code.
+            // to avoid continuing to try when there's no match.
+            if (uprv_strlen(buf) < uprv_strlen(DEPRECATEDLANGS[i])) break;
             if (uprv_compareInvCharsAsAscii(buf, DEPRECATEDLANGS[i]) == 0) {
                 uprv_strcpy(buf, DEPRECATEDLANGS[i + 1]);
                 len = (int32_t)uprv_strlen(buf);
@@ -721,7 +941,6 @@ _appendScriptToLanguageTag(const char* localeID, char* appendAt, int32_t capacit
                 *(appendAt + reslen) = SEP;
             }
             reslen++;
-
             if (reslen < capacity) {
                 uprv_memcpy(appendAt + reslen, buf, uprv_min(len, capacity - reslen));
             }
@@ -763,6 +982,14 @@ _appendRegionToLanguageTag(const char* localeID, char* appendAt, int32_t capacit
                 *(appendAt + reslen) = SEP;
             }
             reslen++;
+           /* resolve deprecated */
+            for (int i = 0; i < UPRV_LENGTHOF(DEPRECATEDREGIONS); i += 2) {
+                if (uprv_compareInvCharsAsAscii(buf, DEPRECATEDREGIONS[i]) == 0) {
+                    uprv_strcpy(buf, DEPRECATEDREGIONS[i + 1]);
+                    len = (int32_t)uprv_strlen(buf);
+                    break;
+                }
+            }
 
             if (reslen < capacity) {
                 uprv_memcpy(appendAt + reslen, buf, uprv_min(len, capacity - reslen));
@@ -900,7 +1127,6 @@ _appendVariantsToLanguageTag(const char* localeID, char* appendAt, int32_t capac
 
 static int32_t
 _appendKeywordsToLanguageTag(const char* localeID, char* appendAt, int32_t capacity, UBool strict, UBool hadPosix, UErrorCode* status) {
-    char buf[ULOC_KEYWORD_AND_VALUES_CAPACITY];
     char attrBuf[ULOC_KEYWORD_AND_VALUES_CAPACITY] = { 0 };
     int32_t attrBufLength = 0;
     UEnumeration *keywordEnum = NULL;
@@ -920,22 +1146,48 @@ _appendKeywordsToLanguageTag(const char* localeID, char* appendAt, int32_t capac
         AttributeListEntry *firstAttr = NULL;
         AttributeListEntry *attr;
         char *attrValue;
-        char extBuf[ULOC_KEYWORD_AND_VALUES_CAPACITY];
-        char *pExtBuf = extBuf;
-        int32_t extBufCapacity = sizeof(extBuf);
+        CharStringPool extBufPool;
         const char *bcpKey=nullptr, *bcpValue=nullptr;
         UErrorCode tmpStatus = U_ZERO_ERROR;
         int32_t keylen;
         UBool isBcpUExt;
 
         while (TRUE) {
+            icu::CharString buf;
             key = uenum_next(keywordEnum, NULL, status);
             if (key == NULL) {
                 break;
             }
-            len = uloc_getKeywordValue(localeID, key, buf, sizeof(buf), &tmpStatus);
-            /* buf must be null-terminated */
-            if (U_FAILURE(tmpStatus) || tmpStatus == U_STRING_NOT_TERMINATED_WARNING) {
+            char* buffer;
+            int32_t resultCapacity = ULOC_KEYWORD_AND_VALUES_CAPACITY;
+
+            for (;;) {
+                buffer = buf.getAppendBuffer(
+                        /*minCapacity=*/resultCapacity,
+                        /*desiredCapacityHint=*/resultCapacity,
+                        resultCapacity,
+                        tmpStatus);
+
+                if (U_FAILURE(tmpStatus)) {
+                    break;
+                }
+
+                len = uloc_getKeywordValue(
+                        localeID, key, buffer, resultCapacity, &tmpStatus);
+
+                if (tmpStatus != U_BUFFER_OVERFLOW_ERROR) {
+                    break;
+                }
+
+                resultCapacity = len;
+                tmpStatus = U_ZERO_ERROR;
+            }
+
+            if (U_FAILURE(tmpStatus)) {
+                if (tmpStatus == U_MEMORY_ALLOCATION_ERROR) {
+                    *status = U_MEMORY_ALLOCATION_ERROR;
+                    break;
+                }
                 if (strict) {
                     *status = U_ILLEGAL_ARGUMENT_ERROR;
                     break;
@@ -945,6 +1197,11 @@ _appendKeywordsToLanguageTag(const char* localeID, char* appendAt, int32_t capac
                 continue;
             }
 
+            buf.append(buffer, len, tmpStatus);
+            if (tmpStatus == U_STRING_NOT_TERMINATED_WARNING) {
+                tmpStatus = U_ZERO_ERROR;  // Terminators provided by CharString.
+            }
+
             keylen = (int32_t)uprv_strlen(key);
             isBcpUExt = (keylen > 1);
 
@@ -1007,7 +1264,7 @@ _appendKeywordsToLanguageTag(const char* localeID, char* appendAt, int32_t capac
                 }
 
                 /* we've checked buf is null-terminated above */
-                bcpValue = uloc_toUnicodeLocaleType(key, buf);
+                bcpValue = uloc_toUnicodeLocaleType(key, buf.data());
                 if (bcpValue == NULL) {
                     if (strict) {
                         *status = U_ILLEGAL_ARGUMENT_ERROR;
@@ -1015,33 +1272,44 @@ _appendKeywordsToLanguageTag(const char* localeID, char* appendAt, int32_t capac
                     }
                     continue;
                 }
-                if (bcpValue == buf) {
-                    /* 
+                if (bcpValue == buf.data()) {
+                    /*
                     When uloc_toUnicodeLocaleType(key, buf) returns the
                     input value as is, the value is well-formed, but has
                     no known mapping. This implementation normalizes the
-                    the value to lower case
+                    value to lower case
                     */
+                    icu::CharString* extBuf = extBufPool.create();
+                    if (extBuf == nullptr) {
+                        *status = U_MEMORY_ALLOCATION_ERROR;
+                        break;
+                    }
                     int32_t bcpValueLen = static_cast<int32_t>(uprv_strlen(bcpValue));
-                    if (bcpValueLen < extBufCapacity) {
-                        uprv_strcpy(pExtBuf, bcpValue);
-                        T_CString_toLowerCase(pExtBuf);
+                    int32_t resultCapacity;
+                    char* pExtBuf = extBuf->getAppendBuffer(
+                            /*minCapacity=*/bcpValueLen,
+                            /*desiredCapacityHint=*/bcpValueLen,
+                            resultCapacity,
+                            tmpStatus);
+                    if (U_FAILURE(tmpStatus)) {
+                        *status = tmpStatus;
+                        break;
+                    }
 
-                        bcpValue = pExtBuf;
+                    uprv_strcpy(pExtBuf, bcpValue);
+                    T_CString_toLowerCase(pExtBuf);
 
-                        pExtBuf += (bcpValueLen + 1);
-                        extBufCapacity -= (bcpValueLen + 1);
-                    } else {
-                        if (strict) {
-                            *status = U_ILLEGAL_ARGUMENT_ERROR;
-                            break;
-                        }
-                        continue;
+                    extBuf->append(pExtBuf, bcpValueLen, tmpStatus);
+                    if (U_FAILURE(tmpStatus)) {
+                        *status = tmpStatus;
+                        break;
                     }
+
+                    bcpValue = extBuf->data();
                 }
             } else {
                 if (*key == PRIVATEUSE) {
-                    if (!_isPrivateuseValueSubtags(buf, len)) {
+                    if (!_isPrivateuseValueSubtags(buf.data(), len)) {
                         if (strict) {
                             *status = U_ILLEGAL_ARGUMENT_ERROR;
                             break;
@@ -1049,7 +1317,7 @@ _appendKeywordsToLanguageTag(const char* localeID, char* appendAt, int32_t capac
                         continue;
                     }
                 } else {
-                    if (!_isExtensionSingleton(key, keylen) || !_isExtensionSubtags(buf, len)) {
+                    if (!_isExtensionSingleton(key, keylen) || !_isExtensionSubtags(buf.data(), len)) {
                         if (strict) {
                             *status = U_ILLEGAL_ARGUMENT_ERROR;
                             break;
@@ -1058,20 +1326,17 @@ _appendKeywordsToLanguageTag(const char* localeID, char* appendAt, int32_t capac
                     }
                 }
                 bcpKey = key;
-                if ((len + 1) < extBufCapacity) {
-                    uprv_memcpy(pExtBuf, buf, len);
-                    bcpValue = pExtBuf;
-
-                    pExtBuf += len;
-
-                    *pExtBuf = 0;
-                    pExtBuf++;
-
-                    extBufCapacity -= (len + 1);
-                } else {
-                    *status = U_ILLEGAL_ARGUMENT_ERROR;
+                icu::CharString* extBuf = extBufPool.create();
+                if (extBuf == nullptr) {
+                    *status = U_MEMORY_ALLOCATION_ERROR;
                     break;
                 }
+                extBuf->append(buf.data(), len, tmpStatus);
+                if (U_FAILURE(tmpStatus)) {
+                    *status = tmpStatus;
+                    break;
+                }
+                bcpValue = extBuf->data();
             }
 
             /* create ExtensionListEntry */
@@ -1242,6 +1507,7 @@ _appendLDMLExtensionAsKeywords(const char* ldmlext, ExtensionListEntry** appendT
             attrBufIdx += (len + 1);
         } else {
             *status = U_ILLEGAL_ARGUMENT_ERROR;
+            uprv_free(attr);
             goto cleanup;
         }
 
@@ -1460,9 +1726,9 @@ _appendLDMLExtensionAsKeywords(const char* ldmlext, ExtensionListEntry** appendT
                     kwd->value = pType;
 
                     if (!_addExtensionToList(&kwdFirst, kwd, FALSE)) {
-                        *status = U_ILLEGAL_ARGUMENT_ERROR;
+                        // duplicate keyword is allowed, Only the first
+                        // is honored.
                         uprv_free(kwd);
-                        goto cleanup;
                     }
                 }
 
@@ -1836,7 +2102,7 @@ ultag_parse(const char* tag, int32_t tagLen, int32_t* parsedLen, UErrorCode* sta
     }
 
     /* check if the tag is grandfathered */
-    for (i = 0; GRANDFATHERED[i] != NULL; i += 2) {
+    for (i = 0; i < UPRV_LENGTHOF(GRANDFATHERED); i += 2) {
         if (uprv_stricmp(GRANDFATHERED[i], tagBuf) == 0) {
             int32_t newTagLength;
 
@@ -1858,6 +2124,37 @@ ultag_parse(const char* tag, int32_t tagLen, int32_t* parsedLen, UErrorCode* sta
         }
     }
 
+    size_t parsedLenDelta = 0;
+    if (grandfatheredLen == 0) {
+        for (i = 0; i < UPRV_LENGTHOF(REDUNDANT); i += 2) {
+            const char* redundantTag = REDUNDANT[i];
+            size_t redundantTagLen = uprv_strlen(redundantTag);
+            // The preferred tag for a redundant tag is always shorter than redundant
+            // tag. A redundant tag may or may not be followed by other subtags.
+            // (i.e. "zh-yue" or "zh-yue-u-co-pinyin").
+            if (uprv_strnicmp(redundantTag, tagBuf, static_cast<uint32_t>(redundantTagLen)) == 0) {
+                const char* redundantTagEnd = tagBuf + redundantTagLen;
+                if (*redundantTagEnd  == '\0' || *redundantTagEnd == SEP) {
+                    const char* preferredTag = REDUNDANT[i + 1];
+                    size_t preferredTagLen = uprv_strlen(preferredTag);
+                    uprv_strncpy(t->buf, preferredTag, preferredTagLen);
+                    if (*redundantTagEnd == SEP) {
+                        uprv_memmove(tagBuf + preferredTagLen,
+                                     redundantTagEnd,
+                                     tagLen - redundantTagLen + 1);
+                    } else {
+                        tagBuf[preferredTagLen] = '\0';
+                    }
+                    // parsedLen should be the length of the input
+                    // before redundantTag is replaced by preferredTag.
+                    // Save the delta to add it back later.
+                    parsedLenDelta = redundantTagLen - preferredTagLen;
+                    break;
+                }
+            }
+        }
+    }
+
     /*
      * langtag      =   language
      *                  ["-" script]
@@ -1898,10 +2195,13 @@ ultag_parse(const char* tag, int32_t tagLen, int32_t* parsedLen, UErrorCode* sta
         if (next & LANG) {
             if (_isLanguageSubtag(pSubtag, subtagLen)) {
                 *pSep = 0;  /* terminate */
+                // TODO: move deprecated language code handling here.
                 t->language = T_CString_toLowerCase(pSubtag);
 
                 pLastGoodPosition = pSep;
-                next = EXTL | SCRT | REGN | VART | EXTS | PRIV;
+                next = SCRT | REGN | VART | EXTS | PRIV;
+                if (subtagLen <= 3)
+                  next |= EXTL;
                 continue;
             }
         }
@@ -1942,6 +2242,7 @@ ultag_parse(const char* tag, int32_t tagLen, int32_t* parsedLen, UErrorCode* sta
         if (next & REGN) {
             if (_isRegionSubtag(pSubtag, subtagLen)) {
                 *pSep = 0;
+                // TODO: move deprecated region code handling here.
                 t->region = T_CString_toUpperCase(pSubtag);
 
                 pLastGoodPosition = pSep;
@@ -2035,7 +2336,7 @@ ultag_parse(const char* tag, int32_t tagLen, int32_t* parsedLen, UErrorCode* sta
             }
         }
         if (next & PRIV) {
-            if (uprv_tolower(*pSubtag) == PRIVATEUSE) {
+            if (uprv_tolower(*pSubtag) == PRIVATEUSE && subtagLen == 1) {
                 char *pPrivuseVal;
 
                 if (pExtension != NULL) {
@@ -2138,7 +2439,8 @@ ultag_parse(const char* tag, int32_t tagLen, int32_t* parsedLen, UErrorCode* sta
     }
 
     if (parsedLen != NULL) {
-        *parsedLen = (grandfatheredLen > 0) ? grandfatheredLen : (int32_t)(pLastGoodPosition - t->buf);
+        *parsedLen = (grandfatheredLen > 0) ? grandfatheredLen :
+            (int32_t)(pLastGoodPosition - t->buf + parsedLenDelta);
     }
 
     return t;
@@ -2335,31 +2637,66 @@ uloc_toLanguageTag(const char* localeID,
                    int32_t langtagCapacity,
                    UBool strict,
                    UErrorCode* status) {
-    /* char canonical[ULOC_FULLNAME_CAPACITY]; */ /* See #6822 */
-    char canonical[256];
-    int32_t reslen = 0;
+    icu::CharString canonical;
+    int32_t reslen;
     UErrorCode tmpStatus = U_ZERO_ERROR;
     UBool hadPosix = FALSE;
     const char* pKeywordStart;
 
     /* Note: uloc_canonicalize returns "en_US_POSIX" for input locale ID "".  See #6835 */
-    canonical[0] = 0;
-    if (uprv_strlen(localeID) > 0) {
-        uloc_canonicalize(localeID, canonical, sizeof(canonical), &tmpStatus);
-        if (tmpStatus != U_ZERO_ERROR) {
+    int32_t resultCapacity = static_cast<int32_t>(uprv_strlen(localeID));
+    if (resultCapacity > 0) {
+        char* buffer;
+
+        for (;;) {
+            buffer = canonical.getAppendBuffer(
+                    /*minCapacity=*/resultCapacity,
+                    /*desiredCapacityHint=*/resultCapacity,
+                    resultCapacity,
+                    tmpStatus);
+
+            if (U_FAILURE(tmpStatus)) {
+                *status = tmpStatus;
+                return 0;
+            }
+
+            reslen =
+                uloc_canonicalize(localeID, buffer, resultCapacity, &tmpStatus);
+
+            if (tmpStatus != U_BUFFER_OVERFLOW_ERROR) {
+                break;
+            }
+
+            resultCapacity = reslen;
+            tmpStatus = U_ZERO_ERROR;
+        }
+
+        if (U_FAILURE(tmpStatus)) {
             *status = U_ILLEGAL_ARGUMENT_ERROR;
             return 0;
         }
+
+        canonical.append(buffer, reslen, tmpStatus);
+        if (tmpStatus == U_STRING_NOT_TERMINATED_WARNING) {
+            tmpStatus = U_ZERO_ERROR;  // Terminators provided by CharString.
+        }
+
+        if (U_FAILURE(tmpStatus)) {
+            *status = tmpStatus;
+            return 0;
+        }
     }
 
+    reslen = 0;
+
     /* For handling special case - private use only tag */
-    pKeywordStart = locale_getKeywordsStart(canonical);
-    if (pKeywordStart == canonical) {
+    pKeywordStart = locale_getKeywordsStart(canonical.data());
+    if (pKeywordStart == canonical.data()) {
         UEnumeration *kwdEnum;
         int kwdCnt = 0;
         UBool done = FALSE;
 
-        kwdEnum = uloc_openKeywords((const char*)canonical, &tmpStatus);
+        kwdEnum = uloc_openKeywords(canonical.data(), &tmpStatus);
         if (kwdEnum != NULL) {
             kwdCnt = uenum_count(kwdEnum, &tmpStatus);
             if (kwdCnt == 1) {
@@ -2397,12 +2734,12 @@ uloc_toLanguageTag(const char* localeID,
         }
     }
 
-    reslen += _appendLanguageToLanguageTag(canonical, langtag, langtagCapacity, strict, status);
-    reslen += _appendScriptToLanguageTag(canonical, langtag + reslen, langtagCapacity - reslen, strict, status);
-    reslen += _appendRegionToLanguageTag(canonical, langtag + reslen, langtagCapacity - reslen, strict, status);
-    reslen += _appendVariantsToLanguageTag(canonical, langtag + reslen, langtagCapacity - reslen, strict, &hadPosix, status);
-    reslen += _appendKeywordsToLanguageTag(canonical, langtag + reslen, langtagCapacity - reslen, strict, hadPosix, status);
-    reslen += _appendPrivateuseToLanguageTag(canonical, langtag + reslen, langtagCapacity - reslen, strict, hadPosix, status);
+    reslen += _appendLanguageToLanguageTag(canonical.data(), langtag, langtagCapacity, strict, status);
+    reslen += _appendScriptToLanguageTag(canonical.data(), langtag + reslen, langtagCapacity - reslen, strict, status);
+    reslen += _appendRegionToLanguageTag(canonical.data(), langtag + reslen, langtagCapacity - reslen, strict, status);
+    reslen += _appendVariantsToLanguageTag(canonical.data(), langtag + reslen, langtagCapacity - reslen, strict, &hadPosix, status);
+    reslen += _appendKeywordsToLanguageTag(canonical.data(), langtag + reslen, langtagCapacity - reslen, strict, hadPosix, status);
+    reslen += _appendPrivateuseToLanguageTag(canonical.data(), langtag + reslen, langtagCapacity - reslen, strict, hadPosix, status);
 
     return reslen;
 }
@@ -2414,6 +2751,23 @@ uloc_forLanguageTag(const char* langtag,
                     int32_t localeIDCapacity,
                     int32_t* parsedLength,
                     UErrorCode* status) {
+    return ulocimp_forLanguageTag(
+            langtag,
+            -1,
+            localeID,
+            localeIDCapacity,
+            parsedLength,
+            status);
+}
+
+
+U_CAPI int32_t U_EXPORT2
+ulocimp_forLanguageTag(const char* langtag,
+                       int32_t tagLen,
+                       char* localeID,
+                       int32_t localeIDCapacity,
+                       int32_t* parsedLength,
+                       UErrorCode* status) {
     ULanguageTag *lt;
     int32_t reslen = 0;
     const char *subtag, *p;
@@ -2421,7 +2775,7 @@ uloc_forLanguageTag(const char* langtag,
     int32_t i, n;
     UBool noRegion = TRUE;
 
-    lt = ultag_parse(langtag, -1, parsedLength, status);
+    lt = ultag_parse(langtag, tagLen, parsedLength, status);
     if (U_FAILURE(*status)) {
         return 0;
     }
index 869f296d022400cacbbedbd0156ba9e6789303dc..aa2090ebba60290b8ba7cb2a904d7f3d2e012faa 100644 (file)
@@ -61,6 +61,38 @@ ulocimp_getCountry(const char *localeID,
                    char *country, int32_t countryCapacity,
                    const char **pEnd);
 
+/**
+ * Returns a locale ID for the specified BCP47 language tag string.
+ * If the specified language tag contains any ill-formed subtags,
+ * the first such subtag and all following subtags are ignored.
+ * <p>
+ * This implements the 'Language-Tag' production of BCP47, and so
+ * supports grandfathered (regular and irregular) as well as private
+ * use language tags.  Private use tags are represented as 'x-whatever',
+ * and grandfathered tags are converted to their canonical replacements
+ * where they exist.  Note that a few grandfathered tags have no modern
+ * replacement, these will be converted using the fallback described in
+ * the first paragraph, so some information might be lost.
+ * @param langtag   the input BCP47 language tag.
+ * @param tagLen    the length of langtag, or -1 to call uprv_strlen().
+ * @param localeID  the output buffer receiving a locale ID for the
+ *                  specified BCP47 language tag.
+ * @param localeIDCapacity  the size of the locale ID output buffer.
+ * @param parsedLength  if not NULL, successfully parsed length
+ *                      for the input language tag is set.
+ * @param err       error information if receiving the locald ID
+ *                  failed.
+ * @return          the length of the locale ID.
+ * @internal ICU 63
+ */
+U_CAPI int32_t U_EXPORT2
+ulocimp_forLanguageTag(const char* langtag,
+                       int32_t tagLen,
+                       char* localeID,
+                       int32_t localeIDCapacity,
+                       int32_t* parsedLength,
+                       UErrorCode* err);
+
 /**
  * Get the region to use for supplemental data lookup. Uses
  * (1) any region specified by locale tag "rg"; if none then
index 53699e762b265dc1bd963687c7131ef49a5a5cd1..175e1a93ef3ef16ade48d7bcf553e060431b829b 100644 (file)
@@ -22,6 +22,7 @@
 #include "uposixdefs.h"
 
 #include "unicode/putil.h"
+#include "unicode/ustring.h"
 #include "udatamem.h"
 #include "umapfile.h"
 
@@ -64,7 +65,7 @@
 #       include "unicode/udata.h"
 #       define LIB_PREFIX "lib"
 #       define LIB_SUFFIX ".dll"
-        /* This is inconvienient until we figure out what to do with U_ICUDATA_NAME in utypes.h */
+        /* This is inconvenient until we figure out what to do with U_ICUDATA_NAME in utypes.h */
 #       define U_ICUDATA_ENTRY_NAME "icudt" U_ICU_VERSION_SHORT U_LIB_SUFFIX_C_NAME_STRING "_dat"
 #   endif
 #elif MAP_IMPLEMENTATION==MAP_STDIO
  *----------------------------------------------------------------------------*/
 #if MAP_IMPLEMENTATION==MAP_NONE
     U_CFUNC UBool
-    uprv_mapFile(UDataMemory *pData, const char *path) {
+    uprv_mapFile(UDataMemory *pData, const char *path, UErrorCode *status) {
+        if (U_FAILURE(*status)) {
+            return FALSE;
+        }
         UDataMemory_init(pData); /* Clear the output struct. */
         return FALSE;            /* no file access */
     }
     uprv_mapFile(
          UDataMemory *pData,    /* Fill in with info on the result doing the mapping. */
                                 /*   Output only; any original contents are cleared.  */
-         const char *path       /* File path to be opened/mapped                      */
+         const char *path,      /* File path to be opened/mapped.                     */
+         UErrorCode *status     /* Error status, used to report out-of-memory errors. */
          )
     {
         HANDLE map;
         HANDLE file;
-        
+
+        if (U_FAILURE(*status)) {
+            return FALSE;
+        }
+
         UDataMemory_init(pData); /* Clear the output struct.        */
 
         /* open the input file */
             OPEN_EXISTING,
             FILE_ATTRIBUTE_NORMAL|FILE_FLAG_RANDOM_ACCESS, NULL);
 #else
-        // First we need to go from char to UTF-16
-        // u_UCharsToChars could work but it requires length.
-        WCHAR utf16Path[MAX_PATH];
-        int32_t i;
-        for (i = 0; i < UPRV_LENGTHOF(utf16Path); i++)
-        {
-            utf16Path[i] = path[i];
-            if (path[i] == '\0')
-            {
-                break;
-            }
+        // Convert from UTF-8 string to UTF-16 string.
+        wchar_t utf16Path[MAX_PATH];
+        int32_t pathUtf16Len = 0;
+        u_strFromUTF8(reinterpret_cast<UChar*>(utf16Path), static_cast<int32_t>(UPRV_LENGTHOF(utf16Path)), &pathUtf16Len, path, -1, status);
+
+        if (U_FAILURE(*status)) {
+            return FALSE;
         }
-        if (i >= UPRV_LENGTHOF(utf16Path))
-        {
-            // Ran out of room, unlikely but be safe
-            utf16Path[UPRV_LENGTHOF(utf16Path) - 1] = '\0';
+        if (*status == U_STRING_NOT_TERMINATED_WARNING) {
+            // Report back an error instead of a warning.
+            *status = U_BUFFER_OVERFLOW_ERROR;
+            return FALSE;
         }
 
         // TODO: Is it worth setting extended parameters to specify random access?
         file = CreateFile2(utf16Path, GENERIC_READ, FILE_SHARE_READ, OPEN_EXISTING, NULL);
 #endif
-        if(file==INVALID_HANDLE_VALUE) {
+        if (file == INVALID_HANDLE_VALUE) {
+            // If we failed to open the file due to an out-of-memory error, then we want
+            // to report that error back to the caller.
+            if (HRESULT_FROM_WIN32(GetLastError()) == E_OUTOFMEMORY) {
+                *status = U_MEMORY_ALLOCATION_ERROR;
+            }
             return FALSE;
         }
 
         map = CreateFileMappingFromApp(file, NULL, PAGE_READONLY, 0, NULL);
 #endif
         CloseHandle(file);
-        if(map==NULL) {
+        if (map == NULL) {
+            // If we failed to create the mapping due to an out-of-memory error, then 
+            // we want to report that error back to the caller.
+            if (HRESULT_FROM_WIN32(GetLastError()) == E_OUTOFMEMORY) {
+                *status = U_MEMORY_ALLOCATION_ERROR;
+            }
             return FALSE;
         }
 
 
 #elif MAP_IMPLEMENTATION==MAP_POSIX
     U_CFUNC UBool
-    uprv_mapFile(UDataMemory *pData, const char *path) {
+    uprv_mapFile(UDataMemory *pData, const char *path, UErrorCode *status) {
         int fd;
         int length;
         struct stat mystat;
         void *data;
 
+        if (U_FAILURE(*status)) {
+            return FALSE;
+        }
+
         UDataMemory_init(pData); /* Clear the output struct.        */
 
         /* determine the length of the file */
 #endif
         close(fd); /* no longer needed */
         if(data==MAP_FAILED) {
+            // Possibly check the errno value for ENOMEM, and report U_MEMORY_ALLOCATION_ERROR?
             return FALSE;
         }
 
     }
 
     U_CFUNC UBool
-    uprv_mapFile(UDataMemory *pData, const char *path) {
+    uprv_mapFile(UDataMemory *pData, const char *path, UErrorCode *status) {
         FILE *file;
         int32_t fileLength;
         void *p;
 
+        if (U_FAILURE(*status)) {
+            return FALSE;
+        }
+
         UDataMemory_init(pData); /* Clear the output struct.        */
         /* open the input file */
         file=fopen(path, "rb");
         p=uprv_malloc(fileLength);
         if(p==NULL) {
             fclose(file);
+            *status = U_MEMORY_ALLOCATION_ERROR;
             return FALSE;
         }
 
      *
      *                    TODO:  This works the way ICU historically has, but the
      *                           whole data fallback search path is so complicated that
-     *                           proabably almost no one will ever really understand it,
+     *                           probably almost no one will ever really understand it,
      *                           the potential for confusion is large.  (It's not just 
      *                           this one function, but the whole scheme.)
      *                            
 
 #   define DATA_TYPE "dat"
 
-    U_CFUNC UBool uprv_mapFile(UDataMemory *pData, const char *path) {
+    U_CFUNC UBool uprv_mapFile(UDataMemory *pData, const char *path, UErrorCode *status) {
         const char *inBasename;
         char *basename;
         char pathBuffer[1024];
         dllhandle *handle;
         void *val=0;
 
+        if (U_FAILURE(*status)) {
+            return FALSE;
+        }
+
         inBasename=uprv_strrchr(path, U_FILE_SEP_CHAR);
         if(inBasename==NULL) {
             inBasename = path;
             data=mmap(0, length, PROT_READ, MAP_PRIVATE, fd, 0);
             close(fd); /* no longer needed */
             if(data==MAP_FAILED) {
+                // Possibly check the errorno value for ENOMEM, and report U_MEMORY_ALLOCATION_ERROR?
                 return FALSE;
             }
             pData->map = (char *)data + length;
index 24e476b11e93d0e9c64c1b5071b889b17e0d9018..92bd567a2a98952845eb489391092a6a64d9dfbc 100644 (file)
@@ -29,7 +29,7 @@
 #include "unicode/udata.h"
 #include "putilimp.h"
 
-U_CFUNC UBool uprv_mapFile(UDataMemory *pdm, const char *path);
+U_CFUNC UBool uprv_mapFile(UDataMemory *pdm, const char *path, UErrorCode *status);
 U_CFUNC void  uprv_unmapFile(UDataMemory *pData);
 
 /* MAP_NONE: no memory mapping, no file access at all */
diff --git a/source/common/umutablecptrie.cpp b/source/common/umutablecptrie.cpp
new file mode 100644 (file)
index 0000000..40af4b6
--- /dev/null
@@ -0,0 +1,1678 @@
+// © 2017 and later: Unicode, Inc. and others.
+// License & terms of use: http://www.unicode.org/copyright.html
+
+// umutablecptrie.cpp (inspired by utrie2_builder.cpp)
+// created: 2017dec29 Markus W. Scherer
+
+// #define UCPTRIE_DEBUG
+#ifdef UCPTRIE_DEBUG
+#   include <stdio.h>
+#endif
+
+#include "unicode/utypes.h"
+#include "unicode/ucptrie.h"
+#include "unicode/umutablecptrie.h"
+#include "unicode/uobject.h"
+#include "unicode/utf16.h"
+#include "cmemory.h"
+#include "uassert.h"
+#include "ucptrie_impl.h"
+
+U_NAMESPACE_BEGIN
+
+namespace {
+
+constexpr int32_t MAX_UNICODE = 0x10ffff;
+
+constexpr int32_t UNICODE_LIMIT = 0x110000;
+constexpr int32_t BMP_LIMIT = 0x10000;
+constexpr int32_t ASCII_LIMIT = 0x80;
+
+constexpr int32_t I_LIMIT = UNICODE_LIMIT >> UCPTRIE_SHIFT_3;
+constexpr int32_t BMP_I_LIMIT = BMP_LIMIT >> UCPTRIE_SHIFT_3;
+constexpr int32_t ASCII_I_LIMIT = ASCII_LIMIT >> UCPTRIE_SHIFT_3;
+
+constexpr int32_t SMALL_DATA_BLOCKS_PER_BMP_BLOCK = (1 << (UCPTRIE_FAST_SHIFT - UCPTRIE_SHIFT_3));
+
+// Flag values for data blocks.
+constexpr uint8_t ALL_SAME = 0;
+constexpr uint8_t MIXED = 1;
+constexpr uint8_t SAME_AS = 2;
+
+/** Start with allocation of 16k data entries. */
+constexpr int32_t INITIAL_DATA_LENGTH = ((int32_t)1 << 14);
+
+/** Grow about 8x each time. */
+constexpr int32_t MEDIUM_DATA_LENGTH = ((int32_t)1 << 17);
+
+/**
+ * Maximum length of the build-time data array.
+ * One entry per 0x110000 code points.
+ */
+constexpr int32_t MAX_DATA_LENGTH = UNICODE_LIMIT;
+
+// Flag values for index-3 blocks while compacting/building.
+constexpr uint8_t I3_NULL = 0;
+constexpr uint8_t I3_BMP = 1;
+constexpr uint8_t I3_16 = 2;
+constexpr uint8_t I3_18 = 3;
+
+constexpr int32_t INDEX_3_18BIT_BLOCK_LENGTH = UCPTRIE_INDEX_3_BLOCK_LENGTH + UCPTRIE_INDEX_3_BLOCK_LENGTH / 8;
+
+class AllSameBlocks;
+
+class MutableCodePointTrie : public UMemory {
+public:
+    MutableCodePointTrie(uint32_t initialValue, uint32_t errorValue, UErrorCode &errorCode);
+    MutableCodePointTrie(const MutableCodePointTrie &other, UErrorCode &errorCode);
+    MutableCodePointTrie(const MutableCodePointTrie &other) = delete;
+    ~MutableCodePointTrie();
+
+    MutableCodePointTrie &operator=(const MutableCodePointTrie &other) = delete;
+
+    static MutableCodePointTrie *fromUCPMap(const UCPMap *map, UErrorCode &errorCode);
+    static MutableCodePointTrie *fromUCPTrie(const UCPTrie *trie, UErrorCode &errorCode);
+
+    uint32_t get(UChar32 c) const;
+    int32_t getRange(UChar32 start, UCPMapValueFilter *filter, const void *context,
+                     uint32_t *pValue) const;
+
+    void set(UChar32 c, uint32_t value, UErrorCode &errorCode);
+    void setRange(UChar32 start, UChar32 end, uint32_t value, UErrorCode &errorCode);
+
+    UCPTrie *build(UCPTrieType type, UCPTrieValueWidth valueWidth, UErrorCode &errorCode);
+
+private:
+    void clear();
+
+    bool ensureHighStart(UChar32 c);
+    int32_t allocDataBlock(int32_t blockLength);
+    int32_t getDataBlock(int32_t i);
+
+    void maskValues(uint32_t mask);
+    UChar32 findHighStart() const;
+    int32_t compactWholeDataBlocks(int32_t fastILimit, AllSameBlocks &allSameBlocks);
+    int32_t compactData(int32_t fastILimit, uint32_t *newData, int32_t dataNullIndex);
+    int32_t compactIndex(int32_t fastILimit, UErrorCode &errorCode);
+    int32_t compactTrie(int32_t fastILimit, UErrorCode &errorCode);
+
+    uint32_t *index = nullptr;
+    int32_t indexCapacity = 0;
+    int32_t index3NullOffset = -1;
+    uint32_t *data = nullptr;
+    int32_t dataCapacity = 0;
+    int32_t dataLength = 0;
+    int32_t dataNullOffset = -1;
+
+    uint32_t origInitialValue;
+    uint32_t initialValue;
+    uint32_t errorValue;
+    UChar32 highStart;
+    uint32_t highValue;
+#ifdef UCPTRIE_DEBUG
+public:
+    const char *name;
+#endif
+private:
+    /** Temporary array while building the final data. */
+    uint16_t *index16 = nullptr;
+    uint8_t flags[UNICODE_LIMIT >> UCPTRIE_SHIFT_3];
+};
+
+MutableCodePointTrie::MutableCodePointTrie(uint32_t iniValue, uint32_t errValue, UErrorCode &errorCode) :
+        origInitialValue(iniValue), initialValue(iniValue), errorValue(errValue),
+        highStart(0), highValue(initialValue)
+#ifdef UCPTRIE_DEBUG
+        , name("open")
+#endif
+        {
+    if (U_FAILURE(errorCode)) { return; }
+    index = (uint32_t *)uprv_malloc(BMP_I_LIMIT * 4);
+    data = (uint32_t *)uprv_malloc(INITIAL_DATA_LENGTH * 4);
+    if (index == nullptr || data == nullptr) {
+        errorCode = U_MEMORY_ALLOCATION_ERROR;
+        return;
+    }
+    indexCapacity = BMP_I_LIMIT;
+    dataCapacity = INITIAL_DATA_LENGTH;
+}
+
+MutableCodePointTrie::MutableCodePointTrie(const MutableCodePointTrie &other, UErrorCode &errorCode) :
+        index3NullOffset(other.index3NullOffset),
+        dataNullOffset(other.dataNullOffset),
+        origInitialValue(other.origInitialValue), initialValue(other.initialValue),
+        errorValue(other.errorValue),
+        highStart(other.highStart), highValue(other.highValue)
+#ifdef UCPTRIE_DEBUG
+        , name("mutable clone")
+#endif
+        {
+    if (U_FAILURE(errorCode)) { return; }
+    int32_t iCapacity = highStart <= BMP_LIMIT ? BMP_I_LIMIT : I_LIMIT;
+    index = (uint32_t *)uprv_malloc(iCapacity * 4);
+    data = (uint32_t *)uprv_malloc(other.dataCapacity * 4);
+    if (index == nullptr || data == nullptr) {
+        errorCode = U_MEMORY_ALLOCATION_ERROR;
+        return;
+    }
+    indexCapacity = iCapacity;
+    dataCapacity = other.dataCapacity;
+
+    int32_t iLimit = highStart >> UCPTRIE_SHIFT_3;
+    uprv_memcpy(flags, other.flags, iLimit);
+    uprv_memcpy(index, other.index, iLimit * 4);
+    uprv_memcpy(data, other.data, (size_t)other.dataLength * 4);
+    dataLength = other.dataLength;
+    U_ASSERT(other.index16 == nullptr);
+}
+
+MutableCodePointTrie::~MutableCodePointTrie() {
+    uprv_free(index);
+    uprv_free(data);
+    uprv_free(index16);
+}
+
+MutableCodePointTrie *MutableCodePointTrie::fromUCPMap(const UCPMap *map, UErrorCode &errorCode) {
+    // Use the highValue as the initialValue to reduce the highStart.
+    uint32_t errorValue = ucpmap_get(map, -1);
+    uint32_t initialValue = ucpmap_get(map, 0x10ffff);
+    LocalPointer<MutableCodePointTrie> mutableTrie(
+        new MutableCodePointTrie(initialValue, errorValue, errorCode),
+        errorCode);
+    if (U_FAILURE(errorCode)) {
+        return nullptr;
+    }
+    UChar32 start = 0, end;
+    uint32_t value;
+    while ((end = ucpmap_getRange(map, start, UCPMAP_RANGE_NORMAL, 0,
+                                  nullptr, nullptr, &value)) >= 0) {
+        if (value != initialValue) {
+            if (start == end) {
+                mutableTrie->set(start, value, errorCode);
+            } else {
+                mutableTrie->setRange(start, end, value, errorCode);
+            }
+        }
+        start = end + 1;
+    }
+    if (U_SUCCESS(errorCode)) {
+        return mutableTrie.orphan();
+    } else {
+        return nullptr;
+    }
+}
+
+MutableCodePointTrie *MutableCodePointTrie::fromUCPTrie(const UCPTrie *trie, UErrorCode &errorCode) {
+    // Use the highValue as the initialValue to reduce the highStart.
+    uint32_t errorValue;
+    uint32_t initialValue;
+    switch (trie->valueWidth) {
+    case UCPTRIE_VALUE_BITS_16:
+        errorValue = trie->data.ptr16[trie->dataLength - UCPTRIE_ERROR_VALUE_NEG_DATA_OFFSET];
+        initialValue = trie->data.ptr16[trie->dataLength - UCPTRIE_HIGH_VALUE_NEG_DATA_OFFSET];
+        break;
+    case UCPTRIE_VALUE_BITS_32:
+        errorValue = trie->data.ptr32[trie->dataLength - UCPTRIE_ERROR_VALUE_NEG_DATA_OFFSET];
+        initialValue = trie->data.ptr32[trie->dataLength - UCPTRIE_HIGH_VALUE_NEG_DATA_OFFSET];
+        break;
+    case UCPTRIE_VALUE_BITS_8:
+        errorValue = trie->data.ptr8[trie->dataLength - UCPTRIE_ERROR_VALUE_NEG_DATA_OFFSET];
+        initialValue = trie->data.ptr8[trie->dataLength - UCPTRIE_HIGH_VALUE_NEG_DATA_OFFSET];
+        break;
+    default:
+        // Unreachable if the trie is properly initialized.
+        errorCode = U_ILLEGAL_ARGUMENT_ERROR;
+        return nullptr;
+    }
+    LocalPointer<MutableCodePointTrie> mutableTrie(
+        new MutableCodePointTrie(initialValue, errorValue, errorCode),
+        errorCode);
+    if (U_FAILURE(errorCode)) {
+        return nullptr;
+    }
+    UChar32 start = 0, end;
+    uint32_t value;
+    while ((end = ucptrie_getRange(trie, start, UCPMAP_RANGE_NORMAL, 0,
+                                   nullptr, nullptr, &value)) >= 0) {
+        if (value != initialValue) {
+            if (start == end) {
+                mutableTrie->set(start, value, errorCode);
+            } else {
+                mutableTrie->setRange(start, end, value, errorCode);
+            }
+        }
+        start = end + 1;
+    }
+    if (U_SUCCESS(errorCode)) {
+        return mutableTrie.orphan();
+    } else {
+        return nullptr;
+    }
+}
+
+void MutableCodePointTrie::clear() {
+    index3NullOffset = dataNullOffset = -1;
+    dataLength = 0;
+    highValue = initialValue = origInitialValue;
+    highStart = 0;
+    uprv_free(index16);
+    index16 = nullptr;
+}
+
+uint32_t MutableCodePointTrie::get(UChar32 c) const {
+    if ((uint32_t)c > MAX_UNICODE) {
+        return errorValue;
+    }
+    if (c >= highStart) {
+        return highValue;
+    }
+    int32_t i = c >> UCPTRIE_SHIFT_3;
+    if (flags[i] == ALL_SAME) {
+        return index[i];
+    } else {
+        return data[index[i] + (c & UCPTRIE_SMALL_DATA_MASK)];
+    }
+}
+
+inline uint32_t maybeFilterValue(uint32_t value, uint32_t initialValue, uint32_t nullValue,
+                                 UCPMapValueFilter *filter, const void *context) {
+    if (value == initialValue) {
+        value = nullValue;
+    } else if (filter != nullptr) {
+        value = filter(context, value);
+    }
+    return value;
+}
+
+UChar32 MutableCodePointTrie::getRange(
+        UChar32 start, UCPMapValueFilter *filter, const void *context,
+        uint32_t *pValue) const {
+    if ((uint32_t)start > MAX_UNICODE) {
+        return U_SENTINEL;
+    }
+    if (start >= highStart) {
+        if (pValue != nullptr) {
+            uint32_t value = highValue;
+            if (filter != nullptr) { value = filter(context, value); }
+            *pValue = value;
+        }
+        return MAX_UNICODE;
+    }
+    uint32_t nullValue = initialValue;
+    if (filter != nullptr) { nullValue = filter(context, nullValue); }
+    UChar32 c = start;
+    uint32_t value;
+    bool haveValue = false;
+    int32_t i = c >> UCPTRIE_SHIFT_3;
+    do {
+        if (flags[i] == ALL_SAME) {
+            uint32_t value2 = maybeFilterValue(index[i], initialValue, nullValue,
+                                               filter, context);
+            if (haveValue) {
+                if (value2 != value) {
+                    return c - 1;
+                }
+            } else {
+                value = value2;
+                if (pValue != nullptr) { *pValue = value; }
+                haveValue = true;
+            }
+            c = (c + UCPTRIE_SMALL_DATA_BLOCK_LENGTH) & ~UCPTRIE_SMALL_DATA_MASK;
+        } else /* MIXED */ {
+            int32_t di = index[i] + (c & UCPTRIE_SMALL_DATA_MASK);
+            uint32_t value2 = maybeFilterValue(data[di], initialValue, nullValue,
+                                               filter, context);
+            if (haveValue) {
+                if (value2 != value) {
+                    return c - 1;
+                }
+            } else {
+                value = value2;
+                if (pValue != nullptr) { *pValue = value; }
+                haveValue = true;
+            }
+            while ((++c & UCPTRIE_SMALL_DATA_MASK) != 0) {
+                if (maybeFilterValue(data[++di], initialValue, nullValue,
+                                     filter, context) != value) {
+                    return c - 1;
+                }
+            }
+        }
+        ++i;
+    } while (c < highStart);
+    U_ASSERT(haveValue);
+    if (maybeFilterValue(highValue, initialValue, nullValue,
+                         filter, context) != value) {
+        return c - 1;
+    } else {
+        return MAX_UNICODE;
+    }
+}
+
+void
+writeBlock(uint32_t *block, uint32_t value) {
+    uint32_t *limit = block + UCPTRIE_SMALL_DATA_BLOCK_LENGTH;
+    while (block < limit) {
+        *block++ = value;
+    }
+}
+
+bool MutableCodePointTrie::ensureHighStart(UChar32 c) {
+    if (c >= highStart) {
+        // Round up to a UCPTRIE_CP_PER_INDEX_2_ENTRY boundary to simplify compaction.
+        c = (c + UCPTRIE_CP_PER_INDEX_2_ENTRY) & ~(UCPTRIE_CP_PER_INDEX_2_ENTRY - 1);
+        int32_t i = highStart >> UCPTRIE_SHIFT_3;
+        int32_t iLimit = c >> UCPTRIE_SHIFT_3;
+        if (iLimit > indexCapacity) {
+            uint32_t *newIndex = (uint32_t *)uprv_malloc(I_LIMIT * 4);
+            if (newIndex == nullptr) { return false; }
+            uprv_memcpy(newIndex, index, i * 4);
+            uprv_free(index);
+            index = newIndex;
+            indexCapacity = I_LIMIT;
+        }
+        do {
+            flags[i] = ALL_SAME;
+            index[i] = initialValue;
+        } while(++i < iLimit);
+        highStart = c;
+    }
+    return true;
+}
+
+int32_t MutableCodePointTrie::allocDataBlock(int32_t blockLength) {
+    int32_t newBlock = dataLength;
+    int32_t newTop = newBlock + blockLength;
+    if (newTop > dataCapacity) {
+        int32_t capacity;
+        if (dataCapacity < MEDIUM_DATA_LENGTH) {
+            capacity = MEDIUM_DATA_LENGTH;
+        } else if (dataCapacity < MAX_DATA_LENGTH) {
+            capacity = MAX_DATA_LENGTH;
+        } else {
+            // Should never occur.
+            // Either MAX_DATA_LENGTH is incorrect,
+            // or the code writes more values than should be possible.
+            return -1;
+        }
+        uint32_t *newData = (uint32_t *)uprv_malloc(capacity * 4);
+        if (newData == nullptr) {
+            return -1;
+        }
+        uprv_memcpy(newData, data, (size_t)dataLength * 4);
+        uprv_free(data);
+        data = newData;
+        dataCapacity = capacity;
+    }
+    dataLength = newTop;
+    return newBlock;
+}
+
+/**
+ * No error checking for illegal arguments.
+ *
+ * @return -1 if no new data block available (out of memory in data array)
+ * @internal
+ */
+int32_t MutableCodePointTrie::getDataBlock(int32_t i) {
+    if (flags[i] == MIXED) {
+        return index[i];
+    }
+    if (i < BMP_I_LIMIT) {
+        int32_t newBlock = allocDataBlock(UCPTRIE_FAST_DATA_BLOCK_LENGTH);
+        if (newBlock < 0) { return newBlock; }
+        int32_t iStart = i & ~(SMALL_DATA_BLOCKS_PER_BMP_BLOCK -1);
+        int32_t iLimit = iStart + SMALL_DATA_BLOCKS_PER_BMP_BLOCK;
+        do {
+            U_ASSERT(flags[iStart] == ALL_SAME);
+            writeBlock(data + newBlock, index[iStart]);
+            flags[iStart] = MIXED;
+            index[iStart++] = newBlock;
+            newBlock += UCPTRIE_SMALL_DATA_BLOCK_LENGTH;
+        } while (iStart < iLimit);
+        return index[i];
+    } else {
+        int32_t newBlock = allocDataBlock(UCPTRIE_SMALL_DATA_BLOCK_LENGTH);
+        if (newBlock < 0) { return newBlock; }
+        writeBlock(data + newBlock, index[i]);
+        flags[i] = MIXED;
+        index[i] = newBlock;
+        return newBlock;
+    }
+}
+
+void MutableCodePointTrie::set(UChar32 c, uint32_t value, UErrorCode &errorCode) {
+    if (U_FAILURE(errorCode)) {
+        return;
+    }
+    if ((uint32_t)c > MAX_UNICODE) {
+        errorCode = U_ILLEGAL_ARGUMENT_ERROR;
+        return;
+    }
+
+    int32_t block;
+    if (!ensureHighStart(c) || (block = getDataBlock(c >> UCPTRIE_SHIFT_3)) < 0) {
+        errorCode = U_MEMORY_ALLOCATION_ERROR;
+        return;
+    }
+
+    data[block + (c & UCPTRIE_SMALL_DATA_MASK)] = value;
+}
+
+void
+fillBlock(uint32_t *block, UChar32 start, UChar32 limit, uint32_t value) {
+    uint32_t *pLimit = block + limit;
+    block += start;
+    while (block < pLimit) {
+        *block++ = value;
+    }
+}
+
+void MutableCodePointTrie::setRange(UChar32 start, UChar32 end, uint32_t value, UErrorCode &errorCode) {
+    if (U_FAILURE(errorCode)) {
+        return;
+    }
+    if ((uint32_t)start > MAX_UNICODE || (uint32_t)end > MAX_UNICODE || start > end) {
+        errorCode = U_ILLEGAL_ARGUMENT_ERROR;
+        return;
+    }
+    if (!ensureHighStart(end)) {
+        errorCode = U_MEMORY_ALLOCATION_ERROR;
+        return;
+    }
+
+    UChar32 limit = end + 1;
+    if (start & UCPTRIE_SMALL_DATA_MASK) {
+        // Set partial block at [start..following block boundary[.
+        int32_t block = getDataBlock(start >> UCPTRIE_SHIFT_3);
+        if (block < 0) {
+            errorCode = U_MEMORY_ALLOCATION_ERROR;
+            return;
+        }
+
+        UChar32 nextStart = (start + UCPTRIE_SMALL_DATA_MASK) & ~UCPTRIE_SMALL_DATA_MASK;
+        if (nextStart <= limit) {
+            fillBlock(data + block, start & UCPTRIE_SMALL_DATA_MASK, UCPTRIE_SMALL_DATA_BLOCK_LENGTH,
+                      value);
+            start = nextStart;
+        } else {
+            fillBlock(data + block, start & UCPTRIE_SMALL_DATA_MASK, limit & UCPTRIE_SMALL_DATA_MASK,
+                      value);
+            return;
+        }
+    }
+
+    // Number of positions in the last, partial block.
+    int32_t rest = limit & UCPTRIE_SMALL_DATA_MASK;
+
+    // Round down limit to a block boundary.
+    limit &= ~UCPTRIE_SMALL_DATA_MASK;
+
+    // Iterate over all-value blocks.
+    while (start < limit) {
+        int32_t i = start >> UCPTRIE_SHIFT_3;
+        if (flags[i] == ALL_SAME) {
+            index[i] = value;
+        } else /* MIXED */ {
+            fillBlock(data + index[i], 0, UCPTRIE_SMALL_DATA_BLOCK_LENGTH, value);
+        }
+        start += UCPTRIE_SMALL_DATA_BLOCK_LENGTH;
+    }
+
+    if (rest > 0) {
+        // Set partial block at [last block boundary..limit[.
+        int32_t block = getDataBlock(start >> UCPTRIE_SHIFT_3);
+        if (block < 0) {
+            errorCode = U_MEMORY_ALLOCATION_ERROR;
+            return;
+        }
+
+        fillBlock(data + block, 0, rest, value);
+    }
+}
+
+/* compaction --------------------------------------------------------------- */
+
+void MutableCodePointTrie::maskValues(uint32_t mask) {
+    initialValue &= mask;
+    errorValue &= mask;
+    highValue &= mask;
+    int32_t iLimit = highStart >> UCPTRIE_SHIFT_3;
+    for (int32_t i = 0; i < iLimit; ++i) {
+        if (flags[i] == ALL_SAME) {
+            index[i] &= mask;
+        }
+    }
+    for (int32_t i = 0; i < dataLength; ++i) {
+        data[i] &= mask;
+    }
+}
+
+inline bool
+equalBlocks(const uint32_t *s, const uint32_t *t, int32_t length) {
+    while (length > 0 && *s == *t) {
+        ++s;
+        ++t;
+        --length;
+    }
+    return length == 0;
+}
+
+inline bool
+equalBlocks(const uint16_t *s, const uint32_t *t, int32_t length) {
+    while (length > 0 && *s == *t) {
+        ++s;
+        ++t;
+        --length;
+    }
+    return length == 0;
+}
+
+inline bool
+equalBlocks(const uint16_t *s, const uint16_t *t, int32_t length) {
+    while (length > 0 && *s == *t) {
+        ++s;
+        ++t;
+        --length;
+    }
+    return length == 0;
+}
+
+bool allValuesSameAs(const uint32_t *p, int32_t length, uint32_t value) {
+    const uint32_t *pLimit = p + length;
+    while (p < pLimit && *p == value) { ++p; }
+    return p == pLimit;
+}
+
+/** Search for an identical block. */
+int32_t findSameBlock(const uint32_t *p, int32_t pStart, int32_t length,
+                      const uint32_t *q, int32_t qStart, int32_t blockLength) {
+    // Ensure that we do not even partially get past length.
+    length -= blockLength;
+
+    q += qStart;
+    while (pStart <= length) {
+        if (equalBlocks(p + pStart, q, blockLength)) {
+            return pStart;
+        }
+        ++pStart;
+    }
+    return -1;
+}
+
+int32_t findSameBlock(const uint16_t *p, int32_t pStart, int32_t length,
+                      const uint32_t *q, int32_t qStart, int32_t blockLength) {
+    // Ensure that we do not even partially get past length.
+    length -= blockLength;
+
+    q += qStart;
+    while (pStart <= length) {
+        if (equalBlocks(p + pStart, q, blockLength)) {
+            return pStart;
+        }
+        ++pStart;
+    }
+    return -1;
+}
+
+int32_t findSameBlock(const uint16_t *p, int32_t pStart, int32_t length,
+                      const uint16_t *q, int32_t qStart, int32_t blockLength) {
+    // Ensure that we do not even partially get past length.
+    length -= blockLength;
+
+    q += qStart;
+    while (pStart <= length) {
+        if (equalBlocks(p + pStart, q, blockLength)) {
+            return pStart;
+        }
+        ++pStart;
+    }
+    return -1;
+}
+
+int32_t findAllSameBlock(const uint32_t *p, int32_t start, int32_t limit,
+                         uint32_t value, int32_t blockLength) {
+    // Ensure that we do not even partially get past limit.
+    limit -= blockLength;
+
+    for (int32_t block = start; block <= limit; ++block) {
+        if (p[block] == value) {
+            for (int32_t i = 1;; ++i) {
+                if (i == blockLength) {
+                    return block;
+                }
+                if (p[block + i] != value) {
+                    block += i;
+                    break;
+                }
+            }
+        }
+    }
+    return -1;
+}
+
+/**
+ * Look for maximum overlap of the beginning of the other block
+ * with the previous, adjacent block.
+ */
+int32_t getOverlap(const uint32_t *p, int32_t length,
+                   const uint32_t *q, int32_t qStart, int32_t blockLength) {
+    int32_t overlap = blockLength - 1;
+    U_ASSERT(overlap <= length);
+    q += qStart;
+    while (overlap > 0 && !equalBlocks(p + (length - overlap), q, overlap)) {
+        --overlap;
+    }
+    return overlap;
+}
+
+int32_t getOverlap(const uint16_t *p, int32_t length,
+                   const uint32_t *q, int32_t qStart, int32_t blockLength) {
+    int32_t overlap = blockLength - 1;
+    U_ASSERT(overlap <= length);
+    q += qStart;
+    while (overlap > 0 && !equalBlocks(p + (length - overlap), q, overlap)) {
+        --overlap;
+    }
+    return overlap;
+}
+
+int32_t getOverlap(const uint16_t *p, int32_t length,
+                   const uint16_t *q, int32_t qStart, int32_t blockLength) {
+    int32_t overlap = blockLength - 1;
+    U_ASSERT(overlap <= length);
+    q += qStart;
+    while (overlap > 0 && !equalBlocks(p + (length - overlap), q, overlap)) {
+        --overlap;
+    }
+    return overlap;
+}
+
+int32_t getAllSameOverlap(const uint32_t *p, int32_t length, uint32_t value,
+                          int32_t blockLength) {
+    int32_t min = length - (blockLength - 1);
+    int32_t i = length;
+    while (min < i && p[i - 1] == value) { --i; }
+    return length - i;
+}
+
+bool isStartOfSomeFastBlock(uint32_t dataOffset, const uint32_t index[], int32_t fastILimit) {
+    for (int32_t i = 0; i < fastILimit; i += SMALL_DATA_BLOCKS_PER_BMP_BLOCK) {
+        if (index[i] == dataOffset) {
+            return true;
+        }
+    }
+    return false;
+}
+
+/**
+ * Finds the start of the last range in the trie by enumerating backward.
+ * Indexes for code points higher than this will be omitted.
+ */
+UChar32 MutableCodePointTrie::findHighStart() const {
+    int32_t i = highStart >> UCPTRIE_SHIFT_3;
+    while (i > 0) {
+        bool match;
+        if (flags[--i] == ALL_SAME) {
+            match = index[i] == highValue;
+        } else /* MIXED */ {
+            const uint32_t *p = data + index[i];
+            for (int32_t j = 0;; ++j) {
+                if (j == UCPTRIE_SMALL_DATA_BLOCK_LENGTH) {
+                    match = true;
+                    break;
+                }
+                if (p[j] != highValue) {
+                    match = false;
+                    break;
+                }
+            }
+        }
+        if (!match) {
+            return (i + 1) << UCPTRIE_SHIFT_3;
+        }
+    }
+    return 0;
+}
+
+class AllSameBlocks {
+public:
+    static constexpr int32_t NEW_UNIQUE = -1;
+    static constexpr int32_t OVERFLOW = -2;
+
+    AllSameBlocks() : length(0), mostRecent(-1) {}
+
+    int32_t findOrAdd(int32_t index, int32_t count, uint32_t value) {
+        if (mostRecent >= 0 && values[mostRecent] == value) {
+            refCounts[mostRecent] += count;
+            return indexes[mostRecent];
+        }
+        for (int32_t i = 0; i < length; ++i) {
+            if (values[i] == value) {
+                mostRecent = i;
+                refCounts[i] += count;
+                return indexes[i];
+            }
+        }
+        if (length == CAPACITY) {
+            return OVERFLOW;
+        }
+        mostRecent = length;
+        indexes[length] = index;
+        values[length] = value;
+        refCounts[length++] = count;
+        return NEW_UNIQUE;
+    }
+
+    /** Replaces the block which has the lowest reference count. */
+    void add(int32_t index, int32_t count, uint32_t value) {
+        U_ASSERT(length == CAPACITY);
+        int32_t least = -1;
+        int32_t leastCount = I_LIMIT;
+        for (int32_t i = 0; i < length; ++i) {
+            U_ASSERT(values[i] != value);
+            if (refCounts[i] < leastCount) {
+                least = i;
+                leastCount = refCounts[i];
+            }
+        }
+        U_ASSERT(least >= 0);
+        mostRecent = least;
+        indexes[least] = index;
+        values[least] = value;
+        refCounts[least] = count;
+    }
+
+    int32_t findMostUsed() const {
+        if (length == 0) { return -1; }
+        int32_t max = -1;
+        int32_t maxCount = 0;
+        for (int32_t i = 0; i < length; ++i) {
+            if (refCounts[i] > maxCount) {
+                max = i;
+                maxCount = refCounts[i];
+            }
+        }
+        return indexes[max];
+    }
+
+private:
+    static constexpr int32_t CAPACITY = 32;
+
+    int32_t length;
+    int32_t mostRecent;
+
+    int32_t indexes[CAPACITY];
+    uint32_t values[CAPACITY];
+    int32_t refCounts[CAPACITY];
+};
+
+int32_t MutableCodePointTrie::compactWholeDataBlocks(int32_t fastILimit, AllSameBlocks &allSameBlocks) {
+#ifdef UCPTRIE_DEBUG
+    bool overflow = false;
+#endif
+
+    // ASCII data will be stored as a linear table, even if the following code
+    // does not yet count it that way.
+    int32_t newDataCapacity = ASCII_LIMIT;
+    // Add room for a small data null block in case it would match the start of
+    // a fast data block where dataNullOffset must not be set in that case.
+    newDataCapacity += UCPTRIE_SMALL_DATA_BLOCK_LENGTH;
+    // Add room for special values (errorValue, highValue) and padding.
+    newDataCapacity += 4;
+    int32_t iLimit = highStart >> UCPTRIE_SHIFT_3;
+    int32_t blockLength = UCPTRIE_FAST_DATA_BLOCK_LENGTH;
+    int32_t inc = SMALL_DATA_BLOCKS_PER_BMP_BLOCK;
+    for (int32_t i = 0; i < iLimit; i += inc) {
+        if (i == fastILimit) {
+            blockLength = UCPTRIE_SMALL_DATA_BLOCK_LENGTH;
+            inc = 1;
+        }
+        uint32_t value = index[i];
+        if (flags[i] == MIXED) {
+            // Really mixed?
+            const uint32_t *p = data + value;
+            value = *p;
+            if (allValuesSameAs(p + 1, blockLength - 1, value)) {
+                flags[i] = ALL_SAME;
+                index[i] = value;
+                // Fall through to ALL_SAME handling.
+            } else {
+                newDataCapacity += blockLength;
+                continue;
+            }
+        } else {
+            U_ASSERT(flags[i] == ALL_SAME);
+            if (inc > 1) {
+                // Do all of the fast-range data block's ALL_SAME parts have the same value?
+                bool allSame = true;
+                int32_t next_i = i + inc;
+                for (int32_t j = i + 1; j < next_i; ++j) {
+                    U_ASSERT(flags[j] == ALL_SAME);
+                    if (index[j] != value) {
+                        allSame = false;
+                        break;
+                    }
+                }
+                if (!allSame) {
+                    // Turn it into a MIXED block.
+                    if (getDataBlock(i) < 0) {
+                        return -1;
+                    }
+                    newDataCapacity += blockLength;
+                    continue;
+                }
+            }
+        }
+        // Is there another ALL_SAME block with the same value?
+        int32_t other = allSameBlocks.findOrAdd(i, inc, value);
+        if (other == AllSameBlocks::OVERFLOW) {
+            // The fixed-size array overflowed. Slow check for a duplicate block.
+#ifdef UCPTRIE_DEBUG
+            if (!overflow) {
+                puts("UCPTrie AllSameBlocks overflow");
+                overflow = true;
+            }
+#endif
+            int32_t jInc = SMALL_DATA_BLOCKS_PER_BMP_BLOCK;
+            for (int32_t j = 0;; j += jInc) {
+                if (j == i) {
+                    allSameBlocks.add(i, inc, value);
+                    break;
+                }
+                if (j == fastILimit) {
+                    jInc = 1;
+                }
+                if (flags[j] == ALL_SAME && index[j] == value) {
+                    allSameBlocks.add(j, jInc + inc, value);
+                    other = j;
+                    break;
+                    // We could keep counting blocks with the same value
+                    // before we add the first one, which may improve compaction in rare cases,
+                    // but it would make it slower.
+                }
+            }
+        }
+        if (other >= 0) {
+            flags[i] = SAME_AS;
+            index[i] = other;
+        } else {
+            // New unique same-value block.
+            newDataCapacity += blockLength;
+        }
+    }
+    return newDataCapacity;
+}
+
+#ifdef UCPTRIE_DEBUG
+#   define DEBUG_DO(expr) expr
+#else
+#   define DEBUG_DO(expr)
+#endif
+
+#ifdef UCPTRIE_DEBUG
+// Braille symbols: U+28xx = UTF-8 E2 A0 80..E2 A3 BF
+int32_t appendValue(char s[], int32_t length, uint32_t value) {
+    value ^= value >> 16;
+    value ^= value >> 8;
+    s[length] = 0xE2;
+    s[length + 1] = (char)(0xA0 + ((value >> 6) & 3));
+    s[length + 2] = (char)(0x80 + (value & 0x3F));
+    return length + 3;
+}
+
+void printBlock(const uint32_t *block, int32_t blockLength, uint32_t value,
+                UChar32 start, int32_t overlap, uint32_t initialValue) {
+    char s[UCPTRIE_FAST_DATA_BLOCK_LENGTH * 3 + 3];
+    int32_t length = 0;
+    int32_t i;
+    for (i = 0; i < overlap; ++i) {
+        length = appendValue(s, length, 0);  // Braille blank
+    }
+    s[length++] = '|';
+    for (; i < blockLength; ++i) {
+        if (block != nullptr) {
+            value = block[i];
+        }
+        if (value == initialValue) {
+            value = 0x40;  // Braille lower left dot
+        }
+        length = appendValue(s, length, value);
+    }
+    s[length] = 0;
+    start += overlap;
+    if (start <= 0xffff) {
+        printf("    %04lX  %s|\n", (long)start, s);
+    } else if (start <= 0xfffff) {
+        printf("   %5lX  %s|\n", (long)start, s);
+    } else {
+        printf("  %6lX  %s|\n", (long)start, s);
+    }
+}
+#endif
+
+/**
+ * Compacts a build-time trie.
+ *
+ * The compaction
+ * - removes blocks that are identical with earlier ones
+ * - overlaps each new non-duplicate block as much as possible with the previously-written one
+ * - works with fast-range data blocks whose length is a multiple of that of
+ *   higher-code-point data blocks
+ *
+ * It does not try to find an optimal order of writing, deduplicating, and overlapping blocks.
+ */
+int32_t MutableCodePointTrie::compactData(int32_t fastILimit,
+                                          uint32_t *newData, int32_t dataNullIndex) {
+#ifdef UCPTRIE_DEBUG
+    int32_t countSame=0, sumOverlaps=0;
+    bool printData = dataLength == 29088 /* line.brk */ ||
+        // dataLength == 30048 /* CanonIterData */ ||
+        dataLength == 50400 /* zh.txt~stroke */;
+#endif
+
+    // The linear ASCII data has been copied into newData already.
+    int32_t newDataLength = 0;
+    for (int32_t i = 0; newDataLength < ASCII_LIMIT;
+            newDataLength += UCPTRIE_FAST_DATA_BLOCK_LENGTH, i += SMALL_DATA_BLOCKS_PER_BMP_BLOCK) {
+        index[i] = newDataLength;
+#ifdef UCPTRIE_DEBUG
+        if (printData) {
+            printBlock(newData + newDataLength, UCPTRIE_FAST_DATA_BLOCK_LENGTH, 0, newDataLength, 0, initialValue);
+        }
+#endif
+    }
+
+    int32_t iLimit = highStart >> UCPTRIE_SHIFT_3;
+    int32_t blockLength = UCPTRIE_FAST_DATA_BLOCK_LENGTH;
+    int32_t inc = SMALL_DATA_BLOCKS_PER_BMP_BLOCK;
+    int32_t fastLength = 0;
+    for (int32_t i = ASCII_I_LIMIT; i < iLimit; i += inc) {
+        if (i == fastILimit) {
+            blockLength = UCPTRIE_SMALL_DATA_BLOCK_LENGTH;
+            inc = 1;
+            fastLength = newDataLength;
+        }
+        if (flags[i] == ALL_SAME) {
+            uint32_t value = index[i];
+            int32_t n;
+            // Find an earlier part of the data array of length blockLength
+            // that is filled with this value.
+            // If we find a match, and the current block is the data null block,
+            // and it is not a fast block but matches the start of a fast block,
+            // then we need to continue looking.
+            // This is because this small block is shorter than the fast block,
+            // and not all of the rest of the fast block is filled with this value.
+            // Otherwise trie.getRange() would detect that the fast block starts at
+            // dataNullOffset and assume incorrectly that it is filled with the null value.
+            for (int32_t start = 0;
+                    (n = findAllSameBlock(newData, start, newDataLength,
+                                value, blockLength)) >= 0 &&
+                            i == dataNullIndex && i >= fastILimit && n < fastLength &&
+                            isStartOfSomeFastBlock(n, index, fastILimit);
+                    start = n + 1) {}
+            if (n >= 0) {
+                DEBUG_DO(++countSame);
+                index[i] = n;
+            } else {
+                n = getAllSameOverlap(newData, newDataLength, value, blockLength);
+                DEBUG_DO(sumOverlaps += n);
+#ifdef UCPTRIE_DEBUG
+                if (printData) {
+                    printBlock(nullptr, blockLength, value, i << UCPTRIE_SHIFT_3, n, initialValue);
+                }
+#endif
+                index[i] = newDataLength - n;
+                while (n < blockLength) {
+                    newData[newDataLength++] = value;
+                    ++n;
+                }
+            }
+        } else if (flags[i] == MIXED) {
+            const uint32_t *block = data + index[i];
+            int32_t n = findSameBlock(newData, 0, newDataLength, block, 0, blockLength);
+            if (n >= 0) {
+                DEBUG_DO(++countSame);
+                index[i] = n;
+            } else {
+                n = getOverlap(newData, newDataLength, block, 0, blockLength);
+                DEBUG_DO(sumOverlaps += n);
+#ifdef UCPTRIE_DEBUG
+                if (printData) {
+                    printBlock(block, blockLength, 0, i << UCPTRIE_SHIFT_3, n, initialValue);
+                }
+#endif
+                index[i] = newDataLength - n;
+                while (n < blockLength) {
+                    newData[newDataLength++] = block[n++];
+                }
+            }
+        } else /* SAME_AS */ {
+            uint32_t j = index[i];
+            index[i] = index[j];
+        }
+    }
+
+#ifdef UCPTRIE_DEBUG
+    /* we saved some space */
+    printf("compacting UCPTrie: count of 32-bit data words %lu->%lu  countSame=%ld  sumOverlaps=%ld\n",
+            (long)dataLength, (long)newDataLength, (long)countSame, (long)sumOverlaps);
+#endif
+    return newDataLength;
+}
+
+int32_t MutableCodePointTrie::compactIndex(int32_t fastILimit, UErrorCode &errorCode) {
+    int32_t fastIndexLength = fastILimit >> (UCPTRIE_FAST_SHIFT - UCPTRIE_SHIFT_3);
+    if ((highStart >> UCPTRIE_FAST_SHIFT) <= fastIndexLength) {
+        // Only the linear fast index, no multi-stage index tables.
+        index3NullOffset = UCPTRIE_NO_INDEX3_NULL_OFFSET;
+        return fastIndexLength;
+    }
+
+    // Condense the fast index table.
+    // Also, does it contain an index-3 block with all dataNullOffset?
+    uint16_t fastIndex[UCPTRIE_BMP_INDEX_LENGTH];  // fastIndexLength
+    int32_t i3FirstNull = -1;
+    for (int32_t i = 0, j = 0; i < fastILimit; ++j) {
+        uint32_t i3 = index[i];
+        fastIndex[j] = (uint16_t)i3;
+        if (i3 == (uint32_t)dataNullOffset) {
+            if (i3FirstNull < 0) {
+                i3FirstNull = j;
+            } else if (index3NullOffset < 0 &&
+                    (j - i3FirstNull + 1) == UCPTRIE_INDEX_3_BLOCK_LENGTH) {
+                index3NullOffset = i3FirstNull;
+            }
+        } else {
+            i3FirstNull = -1;
+        }
+        // Set the index entries that compactData() skipped.
+        // Needed when the multi-stage index covers the fast index range as well.
+        int32_t iNext = i + SMALL_DATA_BLOCKS_PER_BMP_BLOCK;
+        while (++i < iNext) {
+            i3 += UCPTRIE_SMALL_DATA_BLOCK_LENGTH;
+            index[i] = i3;
+        }
+    }
+
+    // Examine index-3 blocks. For each determine one of:
+    // - same as the index-3 null block
+    // - same as a fast-index block
+    // - 16-bit indexes
+    // - 18-bit indexes
+    // We store this in the first flags entry for the index-3 block.
+    //
+    // Also determine an upper limit for the index-3 table length.
+    int32_t index3Capacity = 0;
+    i3FirstNull = index3NullOffset;
+    // If the fast index covers the whole BMP, then
+    // the multi-stage index is only for supplementary code points.
+    // Otherwise, the multi-stage index covers all of Unicode.
+    int32_t iStart = fastILimit < BMP_I_LIMIT ? 0 : BMP_I_LIMIT;
+    int32_t iLimit = highStart >> UCPTRIE_SHIFT_3;
+    for (int32_t i = iStart; i < iLimit;) {
+        int32_t j = i;
+        int32_t jLimit = i + UCPTRIE_INDEX_3_BLOCK_LENGTH;
+        uint32_t oredI3 = 0;
+        bool isNull = true;
+        do {
+            uint32_t i3 = index[j];
+            oredI3 |= i3;
+            if (i3 != (uint32_t)dataNullOffset) {
+                isNull = false;
+            }
+        } while (++j < jLimit);
+        if (isNull) {
+            flags[i] = I3_NULL;
+            if (i3FirstNull < 0) {
+                if (oredI3 <= 0xffff) {
+                    index3Capacity += UCPTRIE_INDEX_3_BLOCK_LENGTH;
+                } else {
+                    index3Capacity += INDEX_3_18BIT_BLOCK_LENGTH;
+                }
+                i3FirstNull = 0;
+            }
+        } else {
+            if (oredI3 <= 0xffff) {
+                int32_t n = findSameBlock(fastIndex, 0, fastIndexLength,
+                                          index, i, UCPTRIE_INDEX_3_BLOCK_LENGTH);
+                if (n >= 0) {
+                    flags[i] = I3_BMP;
+                    index[i] = n;
+                } else {
+                    flags[i] = I3_16;
+                    index3Capacity += UCPTRIE_INDEX_3_BLOCK_LENGTH;
+                }
+            } else {
+                flags[i] = I3_18;
+                index3Capacity += INDEX_3_18BIT_BLOCK_LENGTH;
+            }
+        }
+        i = j;
+    }
+
+    int32_t index2Capacity = (iLimit - iStart) >> UCPTRIE_SHIFT_2_3;
+
+    // Length of the index-1 table, rounded up.
+    int32_t index1Length = (index2Capacity + UCPTRIE_INDEX_2_MASK) >> UCPTRIE_SHIFT_1_2;
+
+    // Index table: Fast index, index-1, index-3, index-2.
+    // +1 for possible index table padding.
+    int32_t index16Capacity = fastIndexLength + index1Length + index3Capacity + index2Capacity + 1;
+    index16 = (uint16_t *)uprv_malloc(index16Capacity * 2);
+    if (index16 == nullptr) {
+        errorCode = U_MEMORY_ALLOCATION_ERROR;
+        return 0;
+    }
+    uprv_memcpy(index16, fastIndex, fastIndexLength * 2);
+
+    // Compact the index-3 table and write an uncompacted version of the index-2 table.
+    uint16_t index2[UNICODE_LIMIT >> UCPTRIE_SHIFT_2];  // index2Capacity
+    int32_t i2Length = 0;
+    i3FirstNull = index3NullOffset;
+    int32_t index3Start = fastIndexLength + index1Length;
+    int32_t indexLength = index3Start;
+    for (int32_t i = iStart; i < iLimit; i += UCPTRIE_INDEX_3_BLOCK_LENGTH) {
+        int32_t i3;
+        uint8_t f = flags[i];
+        if (f == I3_NULL && i3FirstNull < 0) {
+            // First index-3 null block. Write & overlap it like a normal block, then remember it.
+            f = dataNullOffset <= 0xffff ? I3_16 : I3_18;
+            i3FirstNull = 0;
+        }
+        if (f == I3_NULL) {
+            i3 = index3NullOffset;
+        } else if (f == I3_BMP) {
+            i3 = index[i];
+        } else if (f == I3_16) {
+            int32_t n = findSameBlock(index16, index3Start, indexLength,
+                                      index, i, UCPTRIE_INDEX_3_BLOCK_LENGTH);
+            if (n >= 0) {
+                i3 = n;
+            } else {
+                if (indexLength == index3Start) {
+                    // No overlap at the boundary between the index-1 and index-3 tables.
+                    n = 0;
+                } else {
+                    n = getOverlap(index16, indexLength,
+                                   index, i, UCPTRIE_INDEX_3_BLOCK_LENGTH);
+                }
+                i3 = indexLength - n;
+                while (n < UCPTRIE_INDEX_3_BLOCK_LENGTH) {
+                    index16[indexLength++] = index[i + n++];
+                }
+            }
+        } else {
+            U_ASSERT(f == I3_18);
+            // Encode an index-3 block that contains one or more data indexes exceeding 16 bits.
+            int32_t j = i;
+            int32_t jLimit = i + UCPTRIE_INDEX_3_BLOCK_LENGTH;
+            int32_t k = indexLength;
+            do {
+                ++k;
+                uint32_t v = index[j++];
+                uint32_t upperBits = (v & 0x30000) >> 2;
+                index16[k++] = v;
+                v = index[j++];
+                upperBits |= (v & 0x30000) >> 4;
+                index16[k++] = v;
+                v = index[j++];
+                upperBits |= (v & 0x30000) >> 6;
+                index16[k++] = v;
+                v = index[j++];
+                upperBits |= (v & 0x30000) >> 8;
+                index16[k++] = v;
+                v = index[j++];
+                upperBits |= (v & 0x30000) >> 10;
+                index16[k++] = v;
+                v = index[j++];
+                upperBits |= (v & 0x30000) >> 12;
+                index16[k++] = v;
+                v = index[j++];
+                upperBits |= (v & 0x30000) >> 14;
+                index16[k++] = v;
+                v = index[j++];
+                upperBits |= (v & 0x30000) >> 16;
+                index16[k++] = v;
+                index16[k - 9] = upperBits;
+            } while (j < jLimit);
+            int32_t n = findSameBlock(index16, index3Start, indexLength,
+                                      index16, indexLength, INDEX_3_18BIT_BLOCK_LENGTH);
+            if (n >= 0) {
+                i3 = n | 0x8000;
+            } else {
+                if (indexLength == index3Start) {
+                    // No overlap at the boundary between the index-1 and index-3 tables.
+                    n = 0;
+                } else {
+                    n = getOverlap(index16, indexLength,
+                                   index16, indexLength, INDEX_3_18BIT_BLOCK_LENGTH);
+                }
+                i3 = (indexLength - n) | 0x8000;
+                if (n > 0) {
+                    int32_t start = indexLength;
+                    while (n < INDEX_3_18BIT_BLOCK_LENGTH) {
+                        index16[indexLength++] = index16[start + n++];
+                    }
+                } else {
+                    indexLength += INDEX_3_18BIT_BLOCK_LENGTH;
+                }
+            }
+        }
+        if (index3NullOffset < 0 && i3FirstNull >= 0) {
+            index3NullOffset = i3;
+        }
+        // Set the index-2 table entry.
+        index2[i2Length++] = i3;
+    }
+    U_ASSERT(i2Length == index2Capacity);
+    U_ASSERT(indexLength <= index3Start + index3Capacity);
+
+    if (index3NullOffset < 0) {
+        index3NullOffset = UCPTRIE_NO_INDEX3_NULL_OFFSET;
+    }
+    if (indexLength >= (UCPTRIE_NO_INDEX3_NULL_OFFSET + UCPTRIE_INDEX_3_BLOCK_LENGTH)) {
+        // The index-3 offsets exceed 15 bits, or
+        // the last one cannot be distinguished from the no-null-block value.
+        errorCode = U_INDEX_OUTOFBOUNDS_ERROR;
+        return 0;
+    }
+
+    // Compact the index-2 table and write the index-1 table.
+    int32_t blockLength = UCPTRIE_INDEX_2_BLOCK_LENGTH;
+    int32_t i1 = fastIndexLength;
+    for (int32_t i = 0; i < i2Length; i += blockLength) {
+        if ((i2Length - i) < blockLength) {
+            // highStart is inside the last index-2 block. Shorten it.
+            blockLength = i2Length - i;
+        }
+        int32_t i2;
+        int32_t n = findSameBlock(index16, index3Start, indexLength,
+                                  index2, i, blockLength);
+        if (n >= 0) {
+            i2 = n;
+        } else {
+            if (indexLength == index3Start) {
+                // No overlap at the boundary between the index-1 and index-3/2 tables.
+                n = 0;
+            } else {
+                n = getOverlap(index16, indexLength, index2, i, blockLength);
+            }
+            i2 = indexLength - n;
+            while (n < blockLength) {
+                index16[indexLength++] = index2[i + n++];
+            }
+        }
+        // Set the index-1 table entry.
+        index16[i1++] = i2;
+    }
+    U_ASSERT(i1 == index3Start);
+    U_ASSERT(indexLength <= index16Capacity);
+
+#ifdef UCPTRIE_DEBUG
+    /* we saved some space */
+    printf("compacting UCPTrie: count of 16-bit index words %lu->%lu\n",
+            (long)iLimit, (long)indexLength);
+#endif
+
+    return indexLength;
+}
+
+int32_t MutableCodePointTrie::compactTrie(int32_t fastILimit, UErrorCode &errorCode) {
+    // Find the real highStart and round it up.
+    U_ASSERT((highStart & (UCPTRIE_CP_PER_INDEX_2_ENTRY - 1)) == 0);
+    highValue = get(MAX_UNICODE);
+    int32_t realHighStart = findHighStart();
+    realHighStart = (realHighStart + (UCPTRIE_CP_PER_INDEX_2_ENTRY - 1)) &
+        ~(UCPTRIE_CP_PER_INDEX_2_ENTRY - 1);
+    if (realHighStart == UNICODE_LIMIT) {
+        highValue = initialValue;
+    }
+
+#ifdef UCPTRIE_DEBUG
+    printf("UCPTrie: highStart U+%06lx  highValue 0x%lx  initialValue 0x%lx\n",
+            (long)realHighStart, (long)highValue, (long)initialValue);
+#endif
+
+    // We always store indexes and data values for the fast range.
+    // Pin highStart to the top of that range while building.
+    UChar32 fastLimit = fastILimit << UCPTRIE_SHIFT_3;
+    if (realHighStart < fastLimit) {
+        for (int32_t i = (realHighStart >> UCPTRIE_SHIFT_3); i < fastILimit; ++i) {
+            flags[i] = ALL_SAME;
+            index[i] = highValue;
+        }
+        highStart = fastLimit;
+    } else {
+        highStart = realHighStart;
+    }
+
+    uint32_t asciiData[ASCII_LIMIT];
+    for (int32_t i = 0; i < ASCII_LIMIT; ++i) {
+        asciiData[i] = get(i);
+    }
+
+    // First we look for which data blocks have the same value repeated over the whole block,
+    // deduplicate such blocks, find a good null data block (for faster enumeration),
+    // and get an upper bound for the necessary data array length.
+    AllSameBlocks allSameBlocks;
+    int32_t newDataCapacity = compactWholeDataBlocks(fastILimit, allSameBlocks);
+    if (newDataCapacity < 0) {
+        errorCode = U_MEMORY_ALLOCATION_ERROR;
+        return 0;
+    }
+    uint32_t *newData = (uint32_t *)uprv_malloc(newDataCapacity * 4);
+    if (newData == nullptr) {
+        errorCode = U_MEMORY_ALLOCATION_ERROR;
+        return 0;
+    }
+    uprv_memcpy(newData, asciiData, sizeof(asciiData));
+
+    int32_t dataNullIndex = allSameBlocks.findMostUsed();
+    int32_t newDataLength = compactData(fastILimit, newData, dataNullIndex);
+    U_ASSERT(newDataLength <= newDataCapacity);
+    uprv_free(data);
+    data = newData;
+    dataCapacity = newDataCapacity;
+    dataLength = newDataLength;
+    if (dataLength > (0x3ffff + UCPTRIE_SMALL_DATA_BLOCK_LENGTH)) {
+        // The offset of the last data block is too high to be stored in the index table.
+        errorCode = U_INDEX_OUTOFBOUNDS_ERROR;
+        return 0;
+    }
+
+    if (dataNullIndex >= 0) {
+        dataNullOffset = index[dataNullIndex];
+#ifdef UCPTRIE_DEBUG
+        if (data[dataNullOffset] != initialValue) {
+            printf("UCPTrie initialValue %lx -> more common nullValue %lx\n",
+                   (long)initialValue, (long)data[dataNullOffset]);
+        }
+#endif
+        initialValue = data[dataNullOffset];
+    } else {
+        dataNullOffset = UCPTRIE_NO_DATA_NULL_OFFSET;
+    }
+
+    int32_t indexLength = compactIndex(fastILimit, errorCode);
+    highStart = realHighStart;
+    return indexLength;
+}
+
+UCPTrie *MutableCodePointTrie::build(UCPTrieType type, UCPTrieValueWidth valueWidth, UErrorCode &errorCode) {
+    if (U_FAILURE(errorCode)) {
+        return nullptr;
+    }
+    if (type < UCPTRIE_TYPE_FAST || UCPTRIE_TYPE_SMALL < type ||
+            valueWidth < UCPTRIE_VALUE_BITS_16 || UCPTRIE_VALUE_BITS_8 < valueWidth) {
+        errorCode = U_ILLEGAL_ARGUMENT_ERROR;
+        return nullptr;
+    }
+
+    // The mutable trie always stores 32-bit values.
+    // When we build a UCPTrie for a smaller value width, we first mask off unused bits
+    // before compacting the data.
+    switch (valueWidth) {
+    case UCPTRIE_VALUE_BITS_32:
+        break;
+    case UCPTRIE_VALUE_BITS_16:
+        maskValues(0xffff);
+        break;
+    case UCPTRIE_VALUE_BITS_8:
+        maskValues(0xff);
+        break;
+    default:
+        break;
+    }
+
+    UChar32 fastLimit = type == UCPTRIE_TYPE_FAST ? BMP_LIMIT : UCPTRIE_SMALL_LIMIT;
+    int32_t indexLength = compactTrie(fastLimit >> UCPTRIE_SHIFT_3, errorCode);
+    if (U_FAILURE(errorCode)) {
+        clear();
+        return nullptr;
+    }
+
+    // Ensure data table alignment: The index length must be even for uint32_t data.
+    if (valueWidth == UCPTRIE_VALUE_BITS_32 && (indexLength & 1) != 0) {
+        index16[indexLength++] = 0xffee;  // arbitrary value
+    }
+
+    // Make the total trie structure length a multiple of 4 bytes by padding the data table,
+    // and store special values as the last two data values.
+    int32_t length = indexLength * 2;
+    if (valueWidth == UCPTRIE_VALUE_BITS_16) {
+        if (((indexLength ^ dataLength) & 1) != 0) {
+            // padding
+            data[dataLength++] = errorValue;
+        }
+        if (data[dataLength - 1] != errorValue || data[dataLength - 2] != highValue) {
+            data[dataLength++] = highValue;
+            data[dataLength++] = errorValue;
+        }
+        length += dataLength * 2;
+    } else if (valueWidth == UCPTRIE_VALUE_BITS_32) {
+        // 32-bit data words never need padding to a multiple of 4 bytes.
+        if (data[dataLength - 1] != errorValue || data[dataLength - 2] != highValue) {
+            if (data[dataLength - 1] != highValue) {
+                data[dataLength++] = highValue;
+            }
+            data[dataLength++] = errorValue;
+        }
+        length += dataLength * 4;
+    } else {
+        int32_t and3 = (length + dataLength) & 3;
+        if (and3 == 0 && data[dataLength - 1] == errorValue && data[dataLength - 2] == highValue) {
+            // all set
+        } else if(and3 == 3 && data[dataLength - 1] == highValue) {
+            data[dataLength++] = errorValue;
+        } else {
+            while (and3 != 2) {
+                data[dataLength++] = highValue;
+                and3 = (and3 + 1) & 3;
+            }
+            data[dataLength++] = highValue;
+            data[dataLength++] = errorValue;
+        }
+        length += dataLength;
+    }
+
+    // Calculate the total length of the UCPTrie as a single memory block.
+    length += sizeof(UCPTrie);
+    U_ASSERT((length & 3) == 0);
+
+    uint8_t *bytes = (uint8_t *)uprv_malloc(length);
+    if (bytes == nullptr) {
+        errorCode = U_MEMORY_ALLOCATION_ERROR;
+        clear();
+        return nullptr;
+    }
+    UCPTrie *trie = reinterpret_cast<UCPTrie *>(bytes);
+    uprv_memset(trie, 0, sizeof(UCPTrie));
+    trie->indexLength = indexLength;
+    trie->dataLength = dataLength;
+
+    trie->highStart = highStart;
+    // Round up shifted12HighStart to a multiple of 0x1000 for easy testing from UTF-8 lead bytes.
+    // Runtime code needs to then test for the real highStart as well.
+    trie->shifted12HighStart = (highStart + 0xfff) >> 12;
+    trie->type = type;
+    trie->valueWidth = valueWidth;
+
+    trie->index3NullOffset = index3NullOffset;
+    trie->dataNullOffset = dataNullOffset;
+    trie->nullValue = initialValue;
+
+    bytes += sizeof(UCPTrie);
+
+    // Fill the index and data arrays.
+    uint16_t *dest16 = (uint16_t *)bytes;
+    trie->index = dest16;
+
+    if (highStart <= fastLimit) {
+        // Condense only the fast index from the mutable-trie index.
+        for (int32_t i = 0, j = 0; j < indexLength; i += SMALL_DATA_BLOCKS_PER_BMP_BLOCK, ++j) {
+            *dest16++ = (uint16_t)index[i];  // dest16[j]
+        }
+    } else {
+        uprv_memcpy(dest16, index16, indexLength * 2);
+        dest16 += indexLength;
+    }
+    bytes += indexLength * 2;
+
+    // Write the data array.
+    const uint32_t *p = data;
+    switch (valueWidth) {
+    case UCPTRIE_VALUE_BITS_16:
+        // Write 16-bit data values.
+        trie->data.ptr16 = dest16;
+        for (int32_t i = dataLength; i > 0; --i) {
+            *dest16++ = (uint16_t)*p++;
+        }
+        break;
+    case UCPTRIE_VALUE_BITS_32:
+        // Write 32-bit data values.
+        trie->data.ptr32 = (uint32_t *)bytes;
+        uprv_memcpy(bytes, p, (size_t)dataLength * 4);
+        break;
+    case UCPTRIE_VALUE_BITS_8:
+        // Write 8-bit data values.
+        trie->data.ptr8 = bytes;
+        for (int32_t i = dataLength; i > 0; --i) {
+            *bytes++ = (uint8_t)*p++;
+        }
+        break;
+    default:
+        // Will not occur, valueWidth checked at the beginning.
+        break;
+    }
+
+#ifdef UCPTRIE_DEBUG
+    trie->name = name;
+
+    ucptrie_printLengths(trie, "");
+#endif
+
+    clear();
+    return trie;
+}
+
+}  // namespace
+
+U_NAMESPACE_END
+
+U_NAMESPACE_USE
+
+U_CAPI UMutableCPTrie * U_EXPORT2
+umutablecptrie_open(uint32_t initialValue, uint32_t errorValue, UErrorCode *pErrorCode) {
+    if (U_FAILURE(*pErrorCode)) {
+        return nullptr;
+    }
+    LocalPointer<MutableCodePointTrie> trie(
+        new MutableCodePointTrie(initialValue, errorValue, *pErrorCode), *pErrorCode);
+    if (U_FAILURE(*pErrorCode)) {
+        return nullptr;
+    }
+    return reinterpret_cast<UMutableCPTrie *>(trie.orphan());
+}
+
+U_CAPI UMutableCPTrie * U_EXPORT2
+umutablecptrie_clone(const UMutableCPTrie *other, UErrorCode *pErrorCode) {
+    if (U_FAILURE(*pErrorCode)) {
+        return nullptr;
+    }
+    if (other == nullptr) {
+        return nullptr;
+    }
+    LocalPointer<MutableCodePointTrie> clone(
+        new MutableCodePointTrie(*reinterpret_cast<const MutableCodePointTrie *>(other), *pErrorCode), *pErrorCode);
+    if (U_FAILURE(*pErrorCode)) {
+        return nullptr;
+    }
+    return reinterpret_cast<UMutableCPTrie *>(clone.orphan());
+}
+
+U_CAPI void U_EXPORT2
+umutablecptrie_close(UMutableCPTrie *trie) {
+    delete reinterpret_cast<MutableCodePointTrie *>(trie);
+}
+
+U_CAPI UMutableCPTrie * U_EXPORT2
+umutablecptrie_fromUCPMap(const UCPMap *map, UErrorCode *pErrorCode) {
+    if (U_FAILURE(*pErrorCode)) {
+        return nullptr;
+    }
+    if (map == nullptr) {
+        *pErrorCode = U_ILLEGAL_ARGUMENT_ERROR;
+        return nullptr;
+    }
+    return reinterpret_cast<UMutableCPTrie *>(MutableCodePointTrie::fromUCPMap(map, *pErrorCode));
+}
+
+U_CAPI UMutableCPTrie * U_EXPORT2
+umutablecptrie_fromUCPTrie(const UCPTrie *trie, UErrorCode *pErrorCode) {
+    if (U_FAILURE(*pErrorCode)) {
+        return nullptr;
+    }
+    if (trie == nullptr) {
+        *pErrorCode = U_ILLEGAL_ARGUMENT_ERROR;
+        return nullptr;
+    }
+    return reinterpret_cast<UMutableCPTrie *>(MutableCodePointTrie::fromUCPTrie(trie, *pErrorCode));
+}
+
+U_CAPI uint32_t U_EXPORT2
+umutablecptrie_get(const UMutableCPTrie *trie, UChar32 c) {
+    return reinterpret_cast<const MutableCodePointTrie *>(trie)->get(c);
+}
+
+namespace {
+
+UChar32 getRange(const void *trie, UChar32 start,
+                 UCPMapValueFilter *filter, const void *context, uint32_t *pValue) {
+    return reinterpret_cast<const MutableCodePointTrie *>(trie)->
+        getRange(start, filter, context, pValue);
+}
+
+}  // namespace
+
+U_CAPI UChar32 U_EXPORT2
+umutablecptrie_getRange(const UMutableCPTrie *trie, UChar32 start,
+                        UCPMapRangeOption option, uint32_t surrogateValue,
+                        UCPMapValueFilter *filter, const void *context, uint32_t *pValue) {
+    return ucptrie_internalGetRange(getRange, trie, start,
+                                    option, surrogateValue,
+                                    filter, context, pValue);
+}
+
+U_CAPI void U_EXPORT2
+umutablecptrie_set(UMutableCPTrie *trie, UChar32 c, uint32_t value, UErrorCode *pErrorCode) {
+    if (U_FAILURE(*pErrorCode)) {
+        return;
+    }
+    reinterpret_cast<MutableCodePointTrie *>(trie)->set(c, value, *pErrorCode);
+}
+
+U_CAPI void U_EXPORT2
+umutablecptrie_setRange(UMutableCPTrie *trie, UChar32 start, UChar32 end,
+                   uint32_t value, UErrorCode *pErrorCode) {
+    if (U_FAILURE(*pErrorCode)) {
+        return;
+    }
+    reinterpret_cast<MutableCodePointTrie *>(trie)->setRange(start, end, value, *pErrorCode);
+}
+
+/* Compact and internally serialize the trie. */
+U_CAPI UCPTrie * U_EXPORT2
+umutablecptrie_buildImmutable(UMutableCPTrie *trie, UCPTrieType type, UCPTrieValueWidth valueWidth,
+                              UErrorCode *pErrorCode) {
+    if (U_FAILURE(*pErrorCode)) {
+        return nullptr;
+    }
+    return reinterpret_cast<MutableCodePointTrie *>(trie)->build(type, valueWidth, *pErrorCode);
+}
+
+#ifdef UCPTRIE_DEBUG
+U_CFUNC void umutablecptrie_setName(UMutableCPTrie *trie, const char *name) {
+    reinterpret_cast<MutableCodePointTrie *>(trie)->name = name;
+}
+#endif
index 8e1f6e934a418bd94f41484656dcded686031452..015a12f96340188b390f327ba1c5b3023657586d 100644 (file)
@@ -56,6 +56,13 @@ U_NAMESPACE_END
 
 U_NAMESPACE_BEGIN
 
+// Export an explicit template instantiation of std::atomic<int32_t>. 
+// When building DLLs for Windows this is required as it is used as a data member of the exported SharedObject class.
+// See digitlst.h, pluralaffix.h, datefmt.h, and others for similar examples.
+#if U_PF_WINDOWS <= U_PLATFORM && U_PLATFORM <= U_PF_CYGWIN
+template struct U_COMMON_API std::atomic<int32_t>;
+#endif
+
 typedef std::atomic<int32_t> u_atomic_int32_t;
 #define ATOMIC_INT32_T_INITIALIZER(val) ATOMIC_VAR_INIT(val)
 
@@ -205,7 +212,7 @@ umtx_atomic_dec(u_atomic_int32_t *p);
 
 U_NAMESPACE_END
 
-#endif  /* Low Level Atomic Ops Platfrom Chain */
+#endif  /* Low Level Atomic Ops Platform Chain */
 
 
 
@@ -319,7 +326,7 @@ U_NAMESPACE_END
  *************************************************************************************************/
 
 #if defined(U_USER_MUTEX_H)
-// #inlcude "U_USER_MUTEX_H"
+// #include "U_USER_MUTEX_H"
 #include U_MUTEX_XSTR(U_USER_MUTEX_H)
 
 #elif U_PLATFORM_USES_ONLY_WIN32_API
@@ -389,7 +396,7 @@ struct UConditionVar {
 #else
 
 /*
- *  Unknow platform type.
+ *  Unknown platform type.
  *      This is an error condition. ICU requires mutexes.
  */
 
@@ -401,7 +408,7 @@ struct UConditionVar {
 
 /**************************************************************************************
  *
- *  Mutex Implementation function declaratations.
+ *  Mutex Implementation function declarations.
  *     Declarations are platform neutral.
  *     Implementations, in umutex.cpp, are platform specific.
  *
index 6ad349c2e3bcfaacfd2018af92478f4149b13f62..9c230dc93ee2f3be2ebe3c0ae8a285e5841eff7b 100644 (file)
@@ -466,7 +466,7 @@ static uint16_t getExtName(uint32_t code, char *buffer, uint16_t bufferLength) {
         buffer[--i] = (v < 10 ? '0' + v : 'A' + v - 10);
     }
     buffer += ndigits;
-    length += ndigits;
+    length += static_cast<uint16_t>(ndigits);
     WRITE_CHAR(buffer, bufferLength, length, '>');
 
     return length;
index 6f61c384f795866b165ce95e9b5a26381f043a21..493115f71c7d355fecf46b1af27730a0e32c3394 100644 (file)
@@ -237,13 +237,12 @@ class StringByteSink : public ByteSink {
    * @stable ICU 4.2
    */
   StringByteSink(StringClass* dest) : dest_(dest) { }
-#ifndef U_HIDE_DRAFT_API
   /**
    * Constructs a ByteSink that reserves append capacity and will append bytes to the dest string.
    * 
    * @param dest pointer to string object to append to
    * @param initialAppendCapacity capacity beyond dest->length() to be reserve()d
-   * @draft ICU 60
+   * @stable ICU 60
    */
   StringByteSink(StringClass* dest, int32_t initialAppendCapacity) : dest_(dest) {
     if (initialAppendCapacity > 0 &&
@@ -251,7 +250,6 @@ class StringByteSink : public ByteSink {
       dest->reserve(dest->length() + initialAppendCapacity);
     }
   }
-#endif  // U_HIDE_DRAFT_API
   /**
    * Append "bytes[0,n-1]" to this.
    * @param data the pointer to the bytes
index 4b77256d742784d3c609a5ddad64aadec5e9b814..477eb484d136b6972a731e11cebf3c91bc06761d 100644 (file)
@@ -194,7 +194,6 @@ public:
             char16_t *dest, int32_t destCapacity, Edits *edits,
             UErrorCode &errorCode);
 
-#ifndef U_HIDE_DRAFT_API
     /**
      * Lowercases a UTF-8 string and optionally records edits.
      * Casing is locale-dependent and context-sensitive.
@@ -214,7 +213,7 @@ public:
      *                  which must not indicate a failure before the function call.
      *
      * @see ucasemap_utf8ToLower
-     * @draft ICU 60
+     * @stable ICU 60
      */
     static void utf8ToLower(
             const char *locale, uint32_t options,
@@ -240,7 +239,7 @@ public:
      *                  which must not indicate a failure before the function call.
      *
      * @see ucasemap_utf8ToUpper
-     * @draft ICU 60
+     * @stable ICU 60
      */
     static void utf8ToUpper(
             const char *locale, uint32_t options,
@@ -280,7 +279,7 @@ public:
      *                  which must not indicate a failure before the function call.
      *
      * @see ucasemap_utf8ToTitle
-     * @draft ICU 60
+     * @stable ICU 60
      */
     static void utf8ToTitle(
             const char *locale, uint32_t options, BreakIterator *iter,
@@ -311,13 +310,12 @@ public:
      *                  which must not indicate a failure before the function call.
      *
      * @see ucasemap_utf8FoldCase
-     * @draft ICU 60
+     * @stable ICU 60
      */
     static void utf8Fold(
             uint32_t options,
             StringPiece src, ByteSink &sink, Edits *edits,
             UErrorCode &errorCode);
-#endif  // U_HIDE_DRAFT_API
 
     /**
      * Lowercases a UTF-8 string and optionally records edits.
index 49d0e029a93b6e592e81297ce87abbb916a78717..a7c5f1a0c5ed56631808bcb37fb4e79b6a9806b2 100644 (file)
@@ -28,6 +28,8 @@ U_NAMESPACE_BEGIN
     // Use the predefined value.
 #elif (defined(__clang__) || defined(__GNUC__)) && U_PLATFORM != U_PF_BROWSER_NATIVE_CLIENT
 #   define U_ALIASING_BARRIER(ptr) asm volatile("" : : "rm"(ptr) : "memory")
+#elif defined(U_IN_DOXYGEN)
+#   define U_ALIASING_BARRIER(ptr)
 #endif
 
 /**
@@ -103,6 +105,7 @@ private:
 #endif
 };
 
+/// \cond
 #ifdef U_ALIASING_BARRIER
 
 Char16Ptr::Char16Ptr(char16_t *p) : p_(p) {}
@@ -134,6 +137,7 @@ Char16Ptr::~Char16Ptr() {}
 char16_t *Char16Ptr::get() const { return u_.cp; }
 
 #endif
+/// \endcond
 
 /**
  * const char16_t * wrapper with implicit conversion from distinct but bit-compatible pointer types.
@@ -209,6 +213,7 @@ private:
 #endif
 };
 
+/// \cond
 #ifdef U_ALIASING_BARRIER
 
 ConstChar16Ptr::ConstChar16Ptr(const char16_t *p) : p_(p) {}
@@ -240,6 +245,7 @@ ConstChar16Ptr::~ConstChar16Ptr() {}
 const char16_t *ConstChar16Ptr::get() const { return u_.cp; }
 
 #endif
+/// \endcond
 
 /**
  * Converts from const char16_t * to const UChar *.
index b98da28c192f6826532813ed9d6ab0c408eb248d..6c2d9dcfb8b20a613adaa3eafad947fedf65aac0 100644 (file)
  *     <td>icu::UnicodeSet</td>
  *   </tr>
  *   <tr>
+ *     <td>Maps from Unicode Code Points to Integer Values</td>
+ *     <td>ucptrie.h, umutablecptrie.h</td>
+ *     <td>C API</td>
+ *   </tr>
+ *   <tr>
  *     <td>Maps from Strings to Integer Values</td>
  *     <td>(no C API)</td>
  *     <td>icu::BytesTrie, icu::UCharsTrie</td>
  *     <td>C API</td>
  *   </tr>
  *   <tr>
- *     <td>Layout Engine/Complex Text Layout</td>
- *     <td>loengine.h</td>
- *     <td>icu::LayoutEngine,icu::ParagraphLayout</td>
+ *     <td>Paragraph Layout / Complex Text Layout</td>
+ *     <td>playout.h</td>
+ *     <td>icu::ParagraphLayout</td>
  *   </tr>
  *   <tr>
  *     <td>ICU I/O</td>
index f767a8d3b494c3caf829bd03fd8020d4408d7326..79e98b0cc27ac6716913f10b9177b69dad03283b 100644 (file)
@@ -24,8 +24,8 @@ class UnicodeString;
  * in linear progression. Does not support moving/reordering of text.
  *
  * There are two types of edits: <em>change edits</em> and <em>no-change edits</em>. Add edits to
- * instances of this class using {@link #addReplace(int, int)} (for change edits) and
- * {@link #addUnchanged(int)} (for no-change edits). Change edits are retained with full granularity,
+ * instances of this class using {@link #addReplace(int32_t, int32_t)} (for change edits) and
+ * {@link #addUnchanged(int32_t)} (for no-change edits). Change edits are retained with full granularity,
  * whereas adjacent no-change edits are always merged together. In no-change edits, there is a one-to-one
  * mapping between code points in the source and destination strings.
  *
@@ -62,11 +62,11 @@ class UnicodeString;
  * </ul>
  *
  * The "fine changes" and "coarse changes" iterators will step through only the change edits when their
- * {@link Edits::Iterator#next()} methods are called. They are identical to the non-change iterators when
- * their {@link Edits::Iterator#findSourceIndex(int)} or {@link Edits::Iterator#findDestinationIndex(int)}
+ * `Edits::Iterator::next()` methods are called. They are identical to the non-change iterators when
+ * their `Edits::Iterator::findSourceIndex()` or `Edits::Iterator::findDestinationIndex()`
  * methods are used to walk through the string.
  *
- * For examples of how to use this class, see the test <code>TestCaseMapEditsIteratorDocs</code> in
+ * For examples of how to use this class, see the test `TestCaseMapEditsIteratorDocs` in
  * UCharacterCaseTest.java.
  *
  * An Edits object tracks a separate UErrorCode, but ICU string transformation functions
@@ -86,7 +86,7 @@ public:
     /**
      * Copy constructor.
      * @param other source edits
-     * @draft ICU 60
+     * @stable ICU 60
      */
     Edits(const Edits &other) :
             array(stackArray), capacity(STACK_CAPACITY), length(other.length),
@@ -98,7 +98,7 @@ public:
      * Move constructor, might leave src empty.
      * This object will have the same contents that the source object had.
      * @param src source edits
-     * @draft ICU 60
+     * @stable ICU 60
      */
     Edits(Edits &&src) U_NOEXCEPT :
             array(stackArray), capacity(STACK_CAPACITY), length(src.length),
@@ -117,7 +117,7 @@ public:
      * Assignment operator.
      * @param other source edits
      * @return *this
-     * @draft ICU 60
+     * @stable ICU 60
      */
     Edits &operator=(const Edits &other);
 
@@ -127,7 +127,7 @@ public:
      * The behavior is undefined if *this and src are the same object.
      * @param src source edits
      * @return *this
-     * @draft ICU 60
+     * @stable ICU 60
      */
     Edits &operator=(Edits &&src) U_NOEXCEPT;
 
@@ -173,13 +173,11 @@ public:
      */
     UBool hasChanges() const { return numChanges != 0; }
 
-#ifndef U_HIDE_DRAFT_API
     /**
      * @return the number of change edits
-     * @draft ICU 60
+     * @stable ICU 60
      */
     int32_t numberOfChanges() const { return numChanges; }
-#endif  // U_HIDE_DRAFT_API
 
     /**
      * Access to the list of edits.
@@ -189,9 +187,9 @@ public:
      * starts at {@link #sourceIndex()} and runs for {@link #oldLength()} chars; the destination string
      * span starts at {@link #destinationIndex()} and runs for {@link #newLength()} chars.
      *
-     * The iterator can be moved between edits using the {@link #next()}, {@link #findSourceIndex(int)},
-     * and {@link #findDestinationIndex(int)} methods. Calling any of these methods mutates the iterator
-     * to make it point to the corresponding edit.
+     * The iterator can be moved between edits using the `next()`, `findSourceIndex(int32_t, UErrorCode &)`,
+     * and `findDestinationIndex(int32_t, UErrorCode &)` methods.
+     * Calling any of these methods mutates the iterator to make it point to the corresponding edit.
      *
      * For more information, see the documentation for {@link Edits}.
      *
@@ -202,7 +200,7 @@ public:
     struct U_COMMON_API Iterator U_FINAL : public UMemory {
         /**
          * Default constructor, empty iterator.
-         * @draft ICU 60
+         * @stable ICU 60
          */
         Iterator() :
                 array(nullptr), index(0), length(0),
@@ -253,7 +251,6 @@ public:
             return findIndex(i, TRUE, errorCode) == 0;
         }
 
-#ifndef U_HIDE_DRAFT_API
         /**
          * Moves the iterator to the edit that contains the destination index.
          * The destination index may be found in a no-change edit
@@ -271,7 +268,7 @@ public:
          *                  or else the function returns immediately. Check for U_FAILURE()
          *                  on output or use with function chaining. (See User Guide for details.)
          * @return TRUE if the edit for the destination index was found
-         * @draft ICU 60
+         * @stable ICU 60
          */
         UBool findDestinationIndex(int32_t i, UErrorCode &errorCode) {
             return findIndex(i, FALSE, errorCode) == 0;
@@ -297,7 +294,7 @@ public:
          *                  or else the function returns immediately. Check for U_FAILURE()
          *                  on output or use with function chaining. (See User Guide for details.)
          * @return destination index; undefined if i is not 0..string length
-         * @draft ICU 60
+         * @stable ICU 60
          */
         int32_t destinationIndexFromSourceIndex(int32_t i, UErrorCode &errorCode);
 
@@ -321,10 +318,9 @@ public:
          *                  or else the function returns immediately. Check for U_FAILURE()
          *                  on output or use with function chaining. (See User Guide for details.)
          * @return source index; undefined if i is not 0..string length
-         * @draft ICU 60
+         * @stable ICU 60
          */
         int32_t sourceIndexFromDestinationIndex(int32_t i, UErrorCode &errorCode);
-#endif  // U_HIDE_DRAFT_API
 
         /**
          * Returns whether the edit currently represented by the iterator is a change edit.
@@ -366,13 +362,13 @@ public:
         /**
          * The start index of the current span in the replacement string; the span has length
          * {@link #newLength}. Well-defined only if the current edit is a change edit.
-         * <p>
-         * The <em>replacement string</em> is the concatenation of all substrings of the destination
+         *
+         * The *replacement string* is the concatenation of all substrings of the destination
          * string corresponding to change edits.
-         * <p>
+         *
          * This method is intended to be used together with operations that write only replacement
-         * characters (e.g., {@link CaseMap#omitUnchangedText()}). The source string can then be modified
-         * in-place.
+         * characters (e.g. operations specifying the \ref U_OMIT_UNCHANGED_TEXT option).
+         * The source string can then be modified in-place.
          *
          * @return the current index into the replacement-characters-only string,
          *         not counting unchanged spans
@@ -475,7 +471,6 @@ public:
         return Iterator(array, length, FALSE, FALSE);
     }
 
-#ifndef U_HIDE_DRAFT_API
     /**
      * Merges the two input Edits and appends the result to this object.
      *
@@ -501,10 +496,9 @@ public:
      *                  or else the function returns immediately. Check for U_FAILURE()
      *                  on output or use with function chaining. (See User Guide for details.)
      * @return *this, with the merged edits appended
-     * @draft ICU 60
+     * @stable ICU 60
      */
     Edits &mergeAndAppend(const Edits &ab, const Edits &bc, UErrorCode &errorCode);
-#endif  // U_HIDE_DRAFT_API
 
 private:
     void releaseArray() U_NOEXCEPT;
index f63dd1622e20c4a5778080c51be9bca533e05f5e..bde8c455c0dd2bd80f57101dc95d0ef094352b72 100644 (file)
@@ -28,6 +28,7 @@ U_NAMESPACE_BEGIN
  * enum bitset for boolean fields. Similar to Java EnumSet<>. 
  * Needs to range check. Used for private instance variables.
  * @internal
+ * \cond
  */
 template<typename T, uint32_t minValue, uint32_t limitValue>
 class EnumSet {
@@ -60,6 +61,8 @@ private:
     uint32_t fBools;
 };
 
+/** \endcond */
+
 U_NAMESPACE_END
 
 #endif /* U_SHOW_CPLUSPLUS_API */
index 751d1faf40454fa3475bcff9748f561f39ad7205..2444114e9a14bfd47f3b12f5ea2e91a75e63703e 100644 (file)
@@ -67,16 +67,14 @@ class U_COMMON_API FilteredBreakIteratorBuilder : public UObject {
   static FilteredBreakIteratorBuilder *createInstance(UErrorCode &status);
 #endif  /* U_HIDE_DEPRECATED_API */
 
-#ifndef U_HIDE_DRAFT_API
   /**
    * Construct an empty FilteredBreakIteratorBuilder.
    * In this state, it will not suppress any segment boundaries.
    * @param status The error code.
    * @return the new builder
-   * @draft ICU 60
+   * @stable ICU 60
    */
   static FilteredBreakIteratorBuilder *createEmptyInstance(UErrorCode &status);
-#endif  /* U_HIDE_DRAFT_API */
 
   /**
    * Suppress a certain string from being the end of a segment.
@@ -95,7 +93,7 @@ class U_COMMON_API FilteredBreakIteratorBuilder : public UObject {
    * This function does not create any new segment boundaries, but only serves to un-do
    * the effect of earlier calls to suppressBreakAfter, or to un-do the effect of
    * locale data which may be suppressing certain strings.
-   * @param exception the exception to remove
+   * @param string the exception to remove
    * @param status error code
    * @return returns TRUE if the string was present and now removed,
    * FALSE if the call was a no-op because the string was not being suppressed.
@@ -114,7 +112,6 @@ class U_COMMON_API FilteredBreakIteratorBuilder : public UObject {
    */
   virtual BreakIterator *build(BreakIterator* adoptBreakIterator, UErrorCode& status) = 0;
 
-#ifndef U_HIDE_DRAFT_API
   /**
    * Wrap (adopt) an existing break iterator in a new filtered instance.
    * The resulting BreakIterator is owned by the caller.
@@ -126,12 +123,11 @@ class U_COMMON_API FilteredBreakIteratorBuilder : public UObject {
    * @param adoptBreakIterator the break iterator to adopt
    * @param status error code
    * @return the new BreakIterator, owned by the caller.
-   * @draft ICU 60
+   * @stable ICU 60
    */
   inline BreakIterator *wrapIteratorWithFilter(BreakIterator* adoptBreakIterator, UErrorCode& status) {
     return build(adoptBreakIterator, status);
   }
-#endif  /* U_HIDE_DRAFT_API */
 
  protected:
   /**
index 1a894a71c4ae8899cc5f75e39c5112af96f3fd52..2e57b149e14ede56a865c2c6695901bb30663f14 100644 (file)
 #include "unicode/utypes.h"
 
 
-#if UCONFIG_ENABLE_PLUGINS
+#if UCONFIG_ENABLE_PLUGINS || defined(U_IN_DOXYGEN)
 
 
 
diff --git a/source/common/unicode/listformatter.h b/source/common/unicode/listformatter.h
deleted file mode 100644 (file)
index 180fbcb..0000000
+++ /dev/null
@@ -1,171 +0,0 @@
-// © 2016 and later: Unicode, Inc. and others.
-// License & terms of use: http://www.unicode.org/copyright.html
-/*
-*******************************************************************************
-*
-*   Copyright (C) 2012-2016, International Business Machines
-*   Corporation and others.  All Rights Reserved.
-*
-*******************************************************************************
-*   file name:  listformatter.h
-*   encoding:   UTF-8
-*   tab size:   8 (not used)
-*   indentation:4
-*
-*   created on: 20120426
-*   created by: Umesh P. Nair
-*/
-
-#ifndef __LISTFORMATTER_H__
-#define __LISTFORMATTER_H__
-
-#include "unicode/utypes.h"
-
-#include "unicode/unistr.h"
-#include "unicode/locid.h"
-
-U_NAMESPACE_BEGIN
-
-/** @internal */
-class Hashtable;
-
-/** @internal */
-struct ListFormatInternal;
-
-/* The following can't be #ifndef U_HIDE_INTERNAL_API, needed for other .h file declarations */
-/** @internal */
-struct ListFormatData : public UMemory {
-    UnicodeString twoPattern;
-    UnicodeString startPattern;
-    UnicodeString middlePattern;
-    UnicodeString endPattern;
-
-  ListFormatData(const UnicodeString& two, const UnicodeString& start, const UnicodeString& middle, const UnicodeString& end) :
-      twoPattern(two), startPattern(start), middlePattern(middle), endPattern(end) {}
-};
-
-
-/**
- * \file
- * \brief C++ API: API for formatting a list.
- */
-
-
-/**
- * An immutable class for formatting a list, using data from CLDR (or supplied
- * separately).
- *
- * Example: Input data ["Alice", "Bob", "Charlie", "Delta"] will be formatted
- * as "Alice, Bob, Charlie and Delta" in English.
- *
- * The ListFormatter class is not intended for public subclassing.
- * @stable ICU 50
- */
-class U_COMMON_API ListFormatter : public UObject{
-
-  public:
-
-    /**
-     * Copy constructor.
-     * @stable ICU 52
-     */
-    ListFormatter(const ListFormatter&);
-
-    /**
-     * Assignment operator.
-     * @stable ICU 52
-     */
-    ListFormatter& operator=(const ListFormatter& other);
-
-    /**
-     * Creates a ListFormatter appropriate for the default locale.
-     *
-     * @param errorCode ICU error code, set if no data available for default locale.
-     * @return Pointer to a ListFormatter object for the default locale,
-     *     created from internal data derived from CLDR data.
-     * @stable ICU 50
-     */
-    static ListFormatter* createInstance(UErrorCode& errorCode);
-
-    /**
-     * Creates a ListFormatter appropriate for a locale.
-     *
-     * @param locale The locale.
-     * @param errorCode ICU error code, set if no data available for the given locale.
-     * @return A ListFormatter object created from internal data derived from
-     *     CLDR data.
-     * @stable ICU 50
-     */
-    static ListFormatter* createInstance(const Locale& locale, UErrorCode& errorCode);
-
-#ifndef U_HIDE_INTERNAL_API
-    /**
-     * Creates a ListFormatter appropriate for a locale and style.
-     *
-     * @param locale The locale.
-     * @param style the style, either "standard", "duration", or "duration-short"
-     * @param errorCode ICU error code, set if no data available for the given locale.
-     * @return A ListFormatter object created from internal data derived from
-     *     CLDR data.
-     * @internal
-     */
-    static ListFormatter* createInstance(const Locale& locale, const char* style, UErrorCode& errorCode);
-#endif  /* U_HIDE_INTERNAL_API */
-
-    /**
-     * Destructor.
-     *
-     * @stable ICU 50
-     */
-    virtual ~ListFormatter();
-
-
-    /**
-     * Formats a list of strings.
-     *
-     * @param items An array of strings to be combined and formatted.
-     * @param n_items Length of the array items.
-     * @param appendTo The string to which the result should be appended to.
-     * @param errorCode ICU error code, set if there is an error.
-     * @return Formatted string combining the elements of items, appended to appendTo.
-     * @stable ICU 50
-     */
-    UnicodeString& format(const UnicodeString items[], int32_t n_items,
-        UnicodeString& appendTo, UErrorCode& errorCode) const;
-
-#ifndef U_HIDE_INTERNAL_API
-    /**
-      @internal for MeasureFormat
-    */
-    UnicodeString& format(
-            const UnicodeString items[],
-            int32_t n_items,
-            UnicodeString& appendTo,
-            int32_t index,
-            int32_t &offset,
-            UErrorCode& errorCode) const;
-    /**
-     * @internal constructor made public for testing.
-     */
-    ListFormatter(const ListFormatData &data, UErrorCode &errorCode);
-    /**
-     * @internal constructor made public for testing.
-     */
-    ListFormatter(const ListFormatInternal* listFormatterInternal);
-#endif  /* U_HIDE_INTERNAL_API */
-
-  private:
-    static void initializeHash(UErrorCode& errorCode);
-    static const ListFormatInternal* getListFormatInternal(const Locale& locale, const char *style, UErrorCode& errorCode);
-    struct ListPatternsSink;
-    static ListFormatInternal* loadListFormatInternal(const Locale& locale, const char* style, UErrorCode& errorCode);
-
-    ListFormatter();
-
-    ListFormatInternal* owned;
-    const ListFormatInternal* data;
-};
-
-U_NAMESPACE_END
-
-#endif
index 9ccf4715afffb7f4a8c6af02a85ec37003902ba6..1ef15ca75120cfa94f16e790a5af48d7bdbaf585 100644 (file)
 #ifndef LOCID_H
 #define LOCID_H
 
+#include "unicode/bytestream.h"
+#include "unicode/localpointer.h"
+#include "unicode/strenum.h"
+#include "unicode/stringpiece.h"
 #include "unicode/utypes.h"
 #include "unicode/uobject.h"
 #include "unicode/putil.h"
@@ -280,6 +284,16 @@ public:
      */
     Locale(const    Locale& other);
 
+#ifndef U_HIDE_DRAFT_API
+    /**
+     * Move constructor; might leave source in bogus state.
+     * This locale will have the same contents that the source locale had.
+     *
+     * @param other The Locale object being moved in.
+     * @draft ICU 63
+     */
+    Locale(Locale&& other) U_NOEXCEPT;
+#endif  // U_HIDE_DRAFT_API
 
     /**
      * Destructor
@@ -296,6 +310,19 @@ public:
      */
     Locale& operator=(const Locale& other);
 
+#ifndef U_HIDE_DRAFT_API
+    /**
+     * Move assignment operator; might leave source in bogus state.
+     * This locale will have the same contents that the source locale had.
+     * The behavior is undefined if *this and the source are the same object.
+     *
+     * @param other The Locale object being moved in.
+     * @return      *this
+     * @draft ICU 63
+     */
+    Locale& operator=(Locale&& other) U_NOEXCEPT;
+#endif  // U_HIDE_DRAFT_API
+
     /**
      * Checks if two locale keys are the same.
      *
@@ -362,6 +389,55 @@ public:
                                      UErrorCode&   success);
 #endif  /* U_HIDE_SYSTEM_API */
 
+#ifndef U_HIDE_DRAFT_API
+    /**
+     * Returns a Locale for the specified BCP47 language tag string.
+     * If the specified language tag contains any ill-formed subtags,
+     * the first such subtag and all following subtags are ignored.
+     * <p>
+     * This implements the 'Language-Tag' production of BCP47, and so
+     * supports grandfathered (regular and irregular) as well as private
+     * use language tags.  Private use tags are represented as 'x-whatever',
+     * and grandfathered tags are converted to their canonical replacements
+     * where they exist.  Note that a few grandfathered tags have no modern
+     * replacement, these will be converted using the fallback described in
+     * the first paragraph, so some information might be lost.
+     * @param tag     the input BCP47 language tag.
+     * @param status  error information if creating the Locale failed.
+     * @return        the Locale for the specified BCP47 language tag.
+     * @draft ICU 63
+     */
+    static Locale U_EXPORT2 forLanguageTag(StringPiece tag, UErrorCode& status);
+
+    /**
+     * Returns a well-formed language tag for this Locale.
+     * <p>
+     * <b>Note</b>: Any locale fields which do not satisfy the BCP47 syntax
+     * requirement will be silently omitted from the result.
+     *
+     * If this function fails, partial output may have been written to the sink.
+     *
+     * @param sink    the output sink receiving the BCP47 language
+     *                tag for this Locale.
+     * @param status  error information if creating the language tag failed.
+     * @draft ICU 63
+     */
+    void toLanguageTag(ByteSink& sink, UErrorCode& status) const;
+
+    /**
+     * Returns a well-formed language tag for this Locale.
+     * <p>
+     * <b>Note</b>: Any locale fields which do not satisfy the BCP47 syntax
+     * requirement will be silently omitted from the result.
+     *
+     * @param status  error information if creating the language tag failed.
+     * @return        the BCP47 language tag for this Locale.
+     * @draft ICU 63
+     */
+    template<typename StringClass>
+    inline StringClass toLanguageTag(UErrorCode& status) const;
+#endif  // U_HIDE_DRAFT_API
+
     /**
      * Creates a locale which has had minimal canonicalization
      * as per uloc_getName().
@@ -432,6 +508,69 @@ public:
      */
     const char * getBaseName() const;
 
+#ifndef U_HIDE_DRAFT_API
+    /**
+     * Add the likely subtags for this Locale, per the algorithm described
+     * in the following CLDR technical report:
+     *
+     *   http://www.unicode.org/reports/tr35/#Likely_Subtags
+     *
+     * If this Locale is already in the maximal form, or not valid, or there is
+     * no data available for maximization, the Locale will be unchanged.
+     *
+     * For example, "und-Zzzz" cannot be maximized, since there is no
+     * reasonable maximization.
+     *
+     * Examples:
+     *
+     * "en" maximizes to "en_Latn_US"
+     *
+     * "de" maximizes to "de_Latn_US"
+     *
+     * "sr" maximizes to "sr_Cyrl_RS"
+     *
+     * "sh" maximizes to "sr_Latn_RS" (Note this will not reverse.)
+     *
+     * "zh_Hani" maximizes to "zh_Hans_CN" (Note this will not reverse.)
+     *
+     * @param status  error information if maximizing this Locale failed.
+     *                If this Locale is not well-formed, the error code is
+     *                U_ILLEGAL_ARGUMENT_ERROR.
+     * @draft ICU 63
+     */
+    void addLikelySubtags(UErrorCode& status);
+
+    /**
+     * Minimize the subtags for this Locale, per the algorithm described
+     * in the following CLDR technical report:
+     *
+     *   http://www.unicode.org/reports/tr35/#Likely_Subtags
+     *
+     * If this Locale is already in the minimal form, or not valid, or there is
+     * no data available for minimization, the Locale will be unchanged.
+     *
+     * Since the minimization algorithm relies on proper maximization, see the
+     * comments for addLikelySubtags for reasons why there might not be any
+     * data.
+     *
+     * Examples:
+     *
+     * "en_Latn_US" minimizes to "en"
+     *
+     * "de_Latn_US" minimizes to "de"
+     *
+     * "sr_Cyrl_RS" minimizes to "sr"
+     *
+     * "zh_Hant_TW" minimizes to "zh_TW" (The region is preferred to the
+     * script, and minimizing to "zh" would imply "zh_Hans_CN".)
+     *
+     * @param status  error information if maximizing this Locale failed.
+     *                If this Locale is not well-formed, the error code is
+     *                U_ILLEGAL_ARGUMENT_ERROR.
+     * @draft ICU 63
+     */
+    void minimizeSubtags(UErrorCode& status);
+#endif  // U_HIDE_DRAFT_API
 
     /**
      * Gets the list of keywords for the specified locale.
@@ -439,13 +578,62 @@ public:
      * @param status the status code
      * @return pointer to StringEnumeration class, or NULL if there are no keywords. 
      * Client must dispose of it by calling delete.
+     * @see getKeywords
      * @stable ICU 2.8
      */
     StringEnumeration * createKeywords(UErrorCode &status) const;
 
+#ifndef U_HIDE_DRAFT_API
+
+    /**
+     * Gets the list of Unicode keywords for the specified locale.
+     *
+     * @param status the status code
+     * @return pointer to StringEnumeration class, or NULL if there are no keywords.
+     * Client must dispose of it by calling delete.
+     * @see getUnicodeKeywords
+     * @draft ICU 63
+     */
+    StringEnumeration * createUnicodeKeywords(UErrorCode &status) const;
+
+    /**
+     * Gets the set of keywords for this Locale.
+     *
+     * A wrapper to call createKeywords() and write the resulting
+     * keywords as standard strings (or compatible objects) into any kind of
+     * container that can be written to by an STL style output iterator.
+     *
+     * @param iterator  an STL style output iterator to write the keywords to.
+     * @param status    error information if creating set of keywords failed.
+     * @draft ICU 63
+     */
+    template<typename StringClass, typename OutputIterator>
+    inline void getKeywords(OutputIterator iterator, UErrorCode& status) const;
+
+    /**
+     * Gets the set of Unicode keywords for this Locale.
+     *
+     * A wrapper to call createUnicodeKeywords() and write the resulting
+     * keywords as standard strings (or compatible objects) into any kind of
+     * container that can be written to by an STL style output iterator.
+     *
+     * @param iterator  an STL style output iterator to write the keywords to.
+     * @param status    error information if creating set of keywords failed.
+     * @draft ICU 63
+     */
+    template<typename StringClass, typename OutputIterator>
+    inline void getUnicodeKeywords(OutputIterator iterator, UErrorCode& status) const;
+
+#endif  // U_HIDE_DRAFT_API
+
     /**
      * Gets the value for a keyword.
      *
+     * This uses legacy keyword=value pairs, like "collation=phonebook".
+     *
+     * ICU4C doesn't do automatic conversion between legacy and Unicode
+     * keywords and values in getters and setters (as opposed to ICU4J).
+     *
      * @param keywordName name of the keyword for which we want the value. Case insensitive.
      * @param buffer The buffer to receive the keyword value.
      * @param bufferCapacity The capacity of receiving buffer
@@ -456,12 +644,81 @@ public:
      */
     int32_t getKeywordValue(const char* keywordName, char *buffer, int32_t bufferCapacity, UErrorCode &status) const;
 
+#ifndef U_HIDE_DRAFT_API
+    /**
+     * Gets the value for a keyword.
+     *
+     * This uses legacy keyword=value pairs, like "collation=phonebook".
+     *
+     * ICU4C doesn't do automatic conversion between legacy and Unicode
+     * keywords and values in getters and setters (as opposed to ICU4J).
+     *
+     * @param keywordName  name of the keyword for which we want the value.
+     * @param sink         the sink to receive the keyword value.
+     * @param status       error information if getting the value failed.
+     * @draft ICU 63
+     */
+    void getKeywordValue(StringPiece keywordName, ByteSink& sink, UErrorCode& status) const;
+
+    /**
+     * Gets the value for a keyword.
+     *
+     * This uses legacy keyword=value pairs, like "collation=phonebook".
+     *
+     * ICU4C doesn't do automatic conversion between legacy and Unicode
+     * keywords and values in getters and setters (as opposed to ICU4J).
+     *
+     * @param keywordName  name of the keyword for which we want the value.
+     * @param status       error information if getting the value failed.
+     * @return             the keyword value.
+     * @draft ICU 63
+     */
+    template<typename StringClass>
+    inline StringClass getKeywordValue(StringPiece keywordName, UErrorCode& status) const;
+
+    /**
+     * Gets the Unicode value for a Unicode keyword.
+     *
+     * This uses Unicode key-value pairs, like "co-phonebk".
+     *
+     * ICU4C doesn't do automatic conversion between legacy and Unicode
+     * keywords and values in getters and setters (as opposed to ICU4J).
+     *
+     * @param keywordName  name of the keyword for which we want the value.
+     * @param sink         the sink to receive the keyword value.
+     * @param status       error information if getting the value failed.
+     * @draft ICU 63
+     */
+    void getUnicodeKeywordValue(StringPiece keywordName, ByteSink& sink, UErrorCode& status) const;
+
+    /**
+     * Gets the Unicode value for a Unicode keyword.
+     *
+     * This uses Unicode key-value pairs, like "co-phonebk".
+     *
+     * ICU4C doesn't do automatic conversion between legacy and Unicode
+     * keywords and values in getters and setters (as opposed to ICU4J).
+     *
+     * @param keywordName  name of the keyword for which we want the value.
+     * @param status       error information if getting the value failed.
+     * @return             the keyword value.
+     * @draft ICU 63
+     */
+    template<typename StringClass>
+    inline StringClass getUnicodeKeywordValue(StringPiece keywordName, UErrorCode& status) const;
+#endif  // U_HIDE_DRAFT_API
+
     /**
      * Sets or removes the value for a keyword.
      *
      * For removing all keywords, use getBaseName(),
      * and construct a new Locale if it differs from getName().
      *
+     * This uses legacy keyword=value pairs, like "collation=phonebook".
+     *
+     * ICU4C doesn't do automatic conversion between legacy and Unicode
+     * keywords and values in getters and setters (as opposed to ICU4J).
+     *
      * @param keywordName name of the keyword to be set. Case insensitive.
      * @param keywordValue value of the keyword to be set. If 0-length or
      *  NULL, will result in the keyword being removed. No error is given if
@@ -472,6 +729,48 @@ public:
      */
     void setKeywordValue(const char* keywordName, const char* keywordValue, UErrorCode &status);
 
+#ifndef U_HIDE_DRAFT_API
+    /**
+     * Sets or removes the value for a keyword.
+     *
+     * For removing all keywords, use getBaseName(),
+     * and construct a new Locale if it differs from getName().
+     *
+     * This uses legacy keyword=value pairs, like "collation=phonebook".
+     *
+     * ICU4C doesn't do automatic conversion between legacy and Unicode
+     * keywords and values in getters and setters (as opposed to ICU4J).
+     *
+     * @param keywordName name of the keyword to be set.
+     * @param keywordValue value of the keyword to be set. If 0-length or
+     *  NULL, will result in the keyword being removed. No error is given if
+     *  that keyword does not exist.
+     * @param status Returns any error information while performing this operation.
+     * @draft ICU 63
+     */
+    void setKeywordValue(StringPiece keywordName, StringPiece keywordValue, UErrorCode& status);
+
+    /**
+     * Sets or removes the Unicode value for a Unicode keyword.
+     *
+     * For removing all keywords, use getBaseName(),
+     * and construct a new Locale if it differs from getName().
+     *
+     * This uses Unicode key-value pairs, like "co-phonebk".
+     *
+     * ICU4C doesn't do automatic conversion between legacy and Unicode
+     * keywords and values in getters and setters (as opposed to ICU4J).
+     *
+     * @param keywordName name of the keyword to be set.
+     * @param keywordValue value of the keyword to be set. If 0-length or
+     *  NULL, will result in the keyword being removed. No error is given if
+     *  that keyword does not exist.
+     * @param status Returns any error information while performing this operation.
+     * @draft ICU 63
+     */
+    void setUnicodeKeywordValue(StringPiece keywordName, StringPiece keywordValue, UErrorCode& status);
+#endif  // U_HIDE_DRAFT_API
+
     /**
      * returns the locale's three-letter language code, as specified
      * in ISO draft standard ISO-639-2.
@@ -759,12 +1058,12 @@ private:
 
     /**
      * A friend to allow the default locale to be set by either the C or C++ API.
-     * @internal
+     * @internal (private)
      */
     friend Locale *locale_set_default_internal(const char *, UErrorCode& status);
 
     /**
-     * @internal
+     * @internal (private)
      */
     friend void U_CALLCONV locale_available_init();
 };
@@ -775,6 +1074,17 @@ Locale::operator!=(const    Locale&     other) const
     return !operator==(other);
 }
 
+#ifndef U_HIDE_DRAFT_API
+template<typename StringClass> inline StringClass
+Locale::toLanguageTag(UErrorCode& status) const
+{
+    StringClass result;
+    StringByteSink<StringClass> sink(&result);
+    toLanguageTag(sink, status);
+    return result;
+}
+#endif  // U_HIDE_DRAFT_API
+
 inline const char *
 Locale::getCountry() const
 {
@@ -805,6 +1115,62 @@ Locale::getName() const
     return fullName;
 }
 
+#ifndef U_HIDE_DRAFT_API
+
+template<typename StringClass, typename OutputIterator> inline void
+Locale::getKeywords(OutputIterator iterator, UErrorCode& status) const
+{
+    LocalPointer<StringEnumeration> keys(createKeywords(status));
+    if (U_FAILURE(status)) {
+        return;
+    }
+    for (;;) {
+        int32_t resultLength;
+        const char* buffer = keys->next(&resultLength, status);
+        if (U_FAILURE(status) || buffer == nullptr) {
+            return;
+        }
+        *iterator++ = StringClass(buffer, resultLength);
+    }
+}
+
+template<typename StringClass, typename OutputIterator> inline void
+Locale::getUnicodeKeywords(OutputIterator iterator, UErrorCode& status) const
+{
+    LocalPointer<StringEnumeration> keys(createUnicodeKeywords(status));
+    if (U_FAILURE(status)) {
+        return;
+    }
+    for (;;) {
+        int32_t resultLength;
+        const char* buffer = keys->next(&resultLength, status);
+        if (U_FAILURE(status) || buffer == nullptr) {
+            return;
+        }
+        *iterator++ = StringClass(buffer, resultLength);
+    }
+}
+
+template<typename StringClass> inline StringClass
+Locale::getKeywordValue(StringPiece keywordName, UErrorCode& status) const
+{
+    StringClass result;
+    StringByteSink<StringClass> sink(&result);
+    getKeywordValue(keywordName, sink, status);
+    return result;
+}
+
+template<typename StringClass> inline StringClass
+Locale::getUnicodeKeywordValue(StringPiece keywordName, UErrorCode& status) const
+{
+    StringClass result;
+    StringByteSink<StringClass> sink(&result);
+    getUnicodeKeywordValue(keywordName, sink, status);
+    return result;
+}
+
+#endif  // U_HIDE_DRAFT_API
+
 inline UBool
 Locale::isBogus(void) const {
     return fIsBogus;
index f28adafee0d2acd481ff40bb684855b68f7b2c3d..9f2a86551ca417dd8ab00a12189da062757b44ee 100644 (file)
@@ -771,8 +771,8 @@ public:
          * @stable ICU 4.8
          */
         UMessagePatternArgType getArgType() const {
-            UMessagePatternPartType type=getType();
-            if(type==UMSGPAT_PART_TYPE_ARG_START || type==UMSGPAT_PART_TYPE_ARG_LIMIT) {
+            UMessagePatternPartType msgType=getType();
+            if(msgType ==UMSGPAT_PART_TYPE_ARG_START || msgType ==UMSGPAT_PART_TYPE_ARG_LIMIT) {
                 return (UMessagePatternArgType)value;
             } else {
                 return UMSGPAT_ARG_TYPE_NONE;
index 8a6d7138021b566c8a93d827a93988bd25dc8495..4caa0e31034b2db65f75b0b72ab8ec2d904f090f 100644 (file)
@@ -241,7 +241,7 @@ public:
      *                  pass the U_SUCCESS() test, or else the function returns
      *                  immediately. Check for U_FAILURE() on output or use with
      *                  function chaining. (See User Guide for details.)
-     * @draft ICU 60
+     * @stable ICU 60
      */
     virtual void
     normalizeUTF8(uint32_t options, StringPiece src, ByteSink &sink,
@@ -391,7 +391,7 @@ public:
      *                  immediately. Check for U_FAILURE() on output or use with
      *                  function chaining. (See User Guide for details.)
      * @return TRUE if s is normalized
-     * @draft ICU 60
+     * @stable ICU 60
      */
     virtual UBool
     isNormalizedUTF8(StringPiece s, UErrorCode &errorCode) const;
@@ -559,7 +559,7 @@ public:
      *                  pass the U_SUCCESS() test, or else the function returns
      *                  immediately. Check for U_FAILURE() on output or use with
      *                  function chaining. (See User Guide for details.)
-     * @draft ICU 60
+     * @stable ICU 60
      */
     virtual void
     normalizeUTF8(uint32_t options, StringPiece src, ByteSink &sink,
@@ -686,7 +686,7 @@ public:
      *                  immediately. Check for U_FAILURE() on output or use with
      *                  function chaining. (See User Guide for details.)
      * @return TRUE if s is normalized
-     * @draft ICU 60
+     * @stable ICU 60
      */
     virtual UBool
     isNormalizedUTF8(StringPiece s, UErrorCode &errorCode) const U_OVERRIDE;
index 7a3a87a08d2e2151608b0ea2f0cbfb3488e4a5ce..a3623f5da6a75a51e91baddf677907e9e522e188 100644 (file)
@@ -38,7 +38,7 @@
  * and/or from other macros that are predefined by the compiler
  * or defined in standard (POSIX or platform or compiler) headers.
  *
- * As a temporary workaround, you can add an explicit <code>#define</code> for some macros
+ * As a temporary workaround, you can add an explicit \#define for some macros
  * before it is first tested, or add an equivalent -D macro definition
  * to the compiler's command line.
  *
 #   define CYGWINMSVC
 #endif
 */
+#ifdef U_IN_DOXYGEN
+#   define CYGWINMSVC
+#endif
 
 /**
  * \def U_PLATFORM_USES_ONLY_WIN32_API
 #ifndef __has_cpp_attribute
 #    define __has_cpp_attribute(x) 0
 #endif
+#ifndef __has_declspec_attribute
+#    define __has_declspec_attribute(x) 0
+#endif
 #ifndef __has_builtin
 #    define __has_builtin(x) 0
 #endif
@@ -493,13 +499,8 @@ namespace std {
  */
 #ifdef U_NOEXCEPT
     /* Use the predefined value. */
-#elif defined(_HAS_EXCEPTIONS) && !_HAS_EXCEPTIONS  /* Visual Studio */
-#   define U_NOEXCEPT
-#elif U_CPLUSPLUS_VERSION >= 11 || __has_feature(cxx_noexcept) || __has_extension(cxx_noexcept) \
-        || (defined(_MSC_VER) && _MSC_VER >= 1900)  /* Visual Studio 2015 */
-#   define U_NOEXCEPT noexcept
 #else
-#   define U_NOEXCEPT
+#   define U_NOEXCEPT noexcept
 #endif
 
 /**
@@ -519,6 +520,8 @@ namespace std {
             (__has_feature(cxx_attributes) && __has_warning("-Wimplicit-fallthrough"))
 #       define U_FALLTHROUGH [[clang::fallthrough]]
 #   endif
+#elif defined(__GNUC__) && (__GNUC__ >= 7)
+#   define U_FALLTHROUGH __attribute__((fallthrough))
 #endif
 
 #ifndef U_FALLTHROUGH
@@ -763,7 +766,8 @@ namespace std {
 #elif U_HAVE_CHAR16_T \
     || (defined(__xlC__) && defined(__IBM_UTF_LITERAL) && U_SIZEOF_WCHAR_T != 2) \
     || (defined(__HP_aCC) && __HP_aCC >= 035000) \
-    || (defined(__HP_cc) && __HP_cc >= 111106)
+    || (defined(__HP_cc) && __HP_cc >= 111106) \
+    || (defined(U_IN_DOXYGEN))
 #   define U_DECLARE_UTF16(string) u ## string
 #elif U_SIZEOF_WCHAR_T == 2 \
     && (U_CHARSET_FAMILY == 0 || (U_PF_OS390 <= U_PLATFORM && U_PLATFORM <= U_PF_OS400 && defined(__UCS2__)))
@@ -782,6 +786,8 @@ namespace std {
     /* Use the predefined value. */
 #elif defined(U_STATIC_IMPLEMENTATION)
 #   define U_EXPORT
+#elif defined(_MSC_VER) || (__has_declspec_attribute(dllexport) && __has_declspec_attribute(dllimport))
+#   define U_EXPORT __declspec(dllexport)
 #elif defined(__GNUC__)
 #   define U_EXPORT __attribute__((visibility("default")))
 #elif (defined(__SUNPRO_CC) && __SUNPRO_CC >= 0x550) \
@@ -789,8 +795,6 @@ namespace std {
 #   define U_EXPORT __global
 /*#elif defined(__HP_aCC) || defined(__HP_cc)
 #   define U_EXPORT __declspec(dllexport)*/
-#elif defined(_MSC_VER)
-#   define U_EXPORT __declspec(dllexport)
 #else
 #   define U_EXPORT
 #endif
@@ -806,7 +810,7 @@ namespace std {
 
 #ifdef U_IMPORT
     /* Use the predefined value. */
-#elif defined(_MSC_VER)
+#elif defined(_MSC_VER) || (__has_declspec_attribute(dllexport) && __has_declspec_attribute(dllimport))
     /* Windows needs to export/import data. */
 #   define U_IMPORT __declspec(dllimport)
 #else
index 6eaf2dbf03572568102283c57957de8bf95a6f9f..70324ffee3b9c4f1d2399e2c1dfb2c14df26e652 100644 (file)
@@ -83,6 +83,7 @@ typedef unsigned char uint8_t;
 
 #else /* neither U_HAVE_STDINT_H nor U_HAVE_INTTYPES_H */
 
+/// \cond
 #if ! U_HAVE_INT8_T
 typedef signed char int8_t;
 #endif
@@ -122,6 +123,7 @@ typedef unsigned int uint32_t;
     typedef unsigned long long uint64_t;
 #endif
 #endif
+/// \endcond
 
 #endif /* U_HAVE_STDINT_H / U_HAVE_INTTYPES_H */
 
index e9b82cd520736bb93f6c56adb6fcb20caf8c3907..47abd554eaf0f174fb9db59ab60cd1b6bfb71499 100644 (file)
@@ -99,7 +99,7 @@ private:
      * If present, UStack of LanguageBreakEngine objects that might handle
      * dictionary characters. Searched from top to bottom to find an object to
      * handle a given character.
-     * @internal
+     * @internal (private)
      */
     UStack              *fLanguageBreakEngines;
 
@@ -108,14 +108,14 @@ private:
      * If present, the special LanguageBreakEngine used for handling
      * characters that are in the dictionary set, but not handled by any
      * LangugageBreakEngine.
-     * @internal
+     * @internal (private)
      */
     UnhandledEngine     *fUnhandledBreakEngine;
 
     /**
      * Counter for the number of characters encountered with the "dictionary"
      *   flag set.
-     * @internal
+     * @internal (private)
      */
     uint32_t            fDictionaryCharCount;
 
@@ -150,7 +150,7 @@ private:
      *
      *             The break iterator adopts the memory, and will
      *             free it when done.
-     * @internal
+     * @internal (private)
      */
     RuleBasedBreakIterator(RBBIDataHeader* data, UErrorCode &status);
 
index f2de96e9634a02e355eb13ea79f08d758a2e3bdd..7b9f70944f62db69997057f5f67912566cdde220 100644 (file)
@@ -39,8 +39,6 @@
  */
 #define U_FOLD_CASE_EXCLUDE_SPECIAL_I 1
 
-#ifndef U_HIDE_DRAFT_API
-
 /**
  * Titlecase the string as a whole rather than each word.
  * (Titlecase only the character at index 0, possibly adjusted.)
@@ -50,7 +48,7 @@
  * including both an options bit and an explicit BreakIterator.
  *
  * @see U_TITLECASE_ADJUST_TO_CASED
- * @draft ICU 60
+ * @stable ICU 60
  */
 #define U_TITLECASE_WHOLE_STRING 0x20
 
  * including both an options bit and an explicit BreakIterator.
  *
  * @see U_TITLECASE_ADJUST_TO_CASED
- * @draft ICU 60
+ * @stable ICU 60
  */
 #define U_TITLECASE_SENTENCES 0x40
 
-#endif  // U_HIDE_DRAFT_API
-
 /**
  * Do not lowercase non-initial parts of words when titlecasing.
  * Option bit for titlecasing APIs that take an options bit set.
  */
 #define U_TITLECASE_NO_BREAK_ADJUSTMENT 0x200
 
-#ifndef U_HIDE_DRAFT_API
-
 /**
  * Adjust each titlecasing BreakIterator index to the next cased character.
  * (See the Unicode Standard, chapter 3, Default Case Conversion, R3 toTitlecase(X).)
  * It is an error to specify multiple titlecasing adjustment options together.
  *
  * @see U_TITLECASE_NO_BREAK_ADJUSTMENT
- * @draft ICU 60
+ * @stable ICU 60
  */
 #define U_TITLECASE_ADJUST_TO_CASED 0x400
 
  * @see CaseMap
  * @see Edits
  * @see Normalizer2
- * @draft ICU 60
+ * @stable ICU 60
  */
 #define U_EDITS_NO_RESET 0x2000
 
  * @see CaseMap
  * @see Edits
  * @see Normalizer2
- * @draft ICU 60
+ * @stable ICU 60
  */
 #define U_OMIT_UNCHANGED_TEXT 0x4000
 
-#endif  // U_HIDE_DRAFT_API
-
 /**
  * Option bit for u_strCaseCompare, u_strcasecmp, unorm_compare, etc:
  * Compare strings in code point order instead of code unit order.
index caeae51a47222087033931a19a2245604a5b9394..fe99fdb41fdd4f5a3cb7ffff1eb3b2d06716fe93 100644 (file)
  */
 
 // Forward declaration.
+/// \cond
 struct UHashtable;
 typedef struct UHashtable UHashtable;
+/// \endcond
 
 /**
  * Build options for BytesTrieBuilder and CharsTrieBuilder.
@@ -64,7 +66,7 @@ class U_COMMON_API StringTrieBuilder : public UObject {
 public:
 #ifndef U_HIDE_INTERNAL_API
     /** @internal */
-    static UBool hashNode(const void *node);
+    static int32_t hashNode(const void *node);
     /** @internal */
     static UBool equalNodes(const void *left, const void *right);
 #endif  /* U_HIDE_INTERNAL_API */
@@ -188,7 +190,10 @@ protected:
 
     // Do not conditionalize the following with #ifndef U_HIDE_INTERNAL_API,
     // it is needed for layout of other objects.
-    /** @internal */
+    /**
+     * @internal
+     * \cond
+     */
     class Node : public UObject {
     public:
         Node(int32_t initialHash) : hash(initialHash), offset(0) {}
@@ -391,7 +396,9 @@ protected:
         int32_t length;
         Node *next;  // A branch sub-node.
     };
+
 #endif  /* U_HIDE_INTERNAL_API */
+    /// \endcond
 
     /** @internal */
     virtual Node *createLinearMatchNode(int32_t i, int32_t unitIndex, int32_t length,
index 254a5bf9ef469f161dd2c18e6ac0a51dc0eee407..f4875c8801efd6c58963c266c9359f937a9ce9e5 100644 (file)
  * these special values are designed that way. Also, the implementation
  * assumes that UBIDI_MAX_EXPLICIT_LEVEL is odd.
  *
+ * Note: The numeric values of the related constants will not change:
+ * They are tied to the use of 7-bit byte values (plus the override bit)
+ * and of the UBiDiLevel=uint8_t data type in this API.
+ *
  * @see UBIDI_DEFAULT_LTR
  * @see UBIDI_DEFAULT_RTL
  * @see UBIDI_LEVEL_OVERRIDE
@@ -386,6 +390,8 @@ typedef uint8_t UBiDiLevel;
 
 /**
  * Maximum explicit embedding level.
+ * Same as the max_depth value in the
+ * <a href="http://www.unicode.org/reports/tr9/#BD2">Unicode Bidirectional Algorithm</a>.
  * (The maximum resolved level can be up to <code>UBIDI_MAX_EXPLICIT_LEVEL+1</code>).
  * @stable ICU 2.0
  */
@@ -1996,7 +2002,7 @@ U_CDECL_BEGIN
  *
  * @return The directional property / Bidi class for the given code point
  *         <code>c</code> if the default class has been overridden, or
- *         <code>#U_BIDI_CLASS_DEFAULT=u_getIntPropertyMaxValue(UCHAR_BIDI_CLASS)+1</code>
+ *         <code>u_getIntPropertyMaxValue(UCHAR_BIDI_CLASS)+1</code>
  *         if the standard Bidi class value for <code>c</code> is to be used.
  * @see ubidi_setClassCallback
  * @see ubidi_getClassCallback
@@ -2010,7 +2016,7 @@ U_CDECL_END
 /**
  * Retrieve the Bidi class for a given code point.
  * <p>If a <code>#UBiDiClassCallback</code> callback is defined and returns a
- * value other than <code>#U_BIDI_CLASS_DEFAULT=u_getIntPropertyMaxValue(UCHAR_BIDI_CLASS)+1</code>,
+ * value other than <code>u_getIntPropertyMaxValue(UCHAR_BIDI_CLASS)+1</code>,
  * that value is used; otherwise the default class determination mechanism is invoked.</p>
  *
  * @param pBiDi is the paragraph <code>UBiDi</code> object.
index 627b005ed45f8d1397e0d2585dc2e00be7964a69..5c08ed5df0fd90bd0a571cced3e28551dfc93334 100644 (file)
 /**
  * \file
  * \brief Bidi Transformations
+ */
+
+/**
+ * `UBiDiOrder` indicates the order of text.
  *
- * <code>UBiDiOrder</code> indicates the order of text.<p>
  * This bidi transformation engine supports all possible combinations (4 in
  * total) of input and output text order:
- * <ul>
- * <li><logical input, visual output>: unless the output direction is RTL, this
- * corresponds to a normal operation of the Bidi algorithm as described in the
- * Unicode Technical Report and implemented by <code>UBiDi</code> when the
- * reordering mode is set to <code>UBIDI_REORDER_DEFAULT</code>. Visual RTL
- * mode is not supported by <code>UBiDi</code> and is accomplished through
- * reversing a visual LTR string,</li>
- * <li><visual input, logical output>: unless the input direction is RTL, this
- * corresponds to an "inverse bidi algorithm" in <code>UBiDi</code> with the
- * reordering mode set to <code>UBIDI_REORDER_INVERSE_LIKE_DIRECT</code>.
- * Visual RTL mode is not not supported by <code>UBiDi</code> and is
- * accomplished through reversing a visual LTR string,</li>
- * <li><logical input, logical output>: if the input and output base directions
- * mismatch, this corresponds to the <code>UBiDi</code> implementation with the
- * reordering mode set to <code>UBIDI_REORDER_RUNS_ONLY</code>; and if the
- * input and output base directions are identical, the transformation engine
- * will only handle character mirroring and Arabic shaping operations without
- * reordering,</li>
- * <li><visual input, visual output>: this reordering mode is not supported by
- * the <code>UBiDi</code> engine; it implies character mirroring, Arabic
- * shaping, and - if the input/output base directions mismatch -  string
- * reverse operations.</li>
- * </ul>
+ *
+ *   - <logical input, visual output>: unless the output direction is RTL, this
+ *     corresponds to a normal operation of the Bidi algorithm as described in the
+ *     Unicode Technical Report and implemented by `UBiDi` when the
+ *     reordering mode is set to `UBIDI_REORDER_DEFAULT`. Visual RTL
+ *     mode is not supported by `UBiDi` and is accomplished through
+ *     reversing a visual LTR string,
+ *
+ *   - <visual input, logical output>: unless the input direction is RTL, this
+ *     corresponds to an "inverse bidi algorithm" in `UBiDi` with the
+ *     reordering mode set to `UBIDI_REORDER_INVERSE_LIKE_DIRECT`.
+ *     Visual RTL mode is not not supported by `UBiDi` and is
+ *     accomplished through reversing a visual LTR string,
+ *
+ *   - <logical input, logical output>: if the input and output base directions
+ *     mismatch, this corresponds to the `UBiDi` implementation with the
+ *     reordering mode set to `UBIDI_REORDER_RUNS_ONLY`; and if the
+ *     input and output base directions are identical, the transformation engine
+ *     will only handle character mirroring and Arabic shaping operations without
+ *     reordering,
+ *
+ *   - <visual input, visual output>: this reordering mode is not supported by
+ *     the `UBiDi` engine; it implies character mirroring, Arabic
+ *     shaping, and - if the input/output base directions mismatch -  string
+ *     reverse operations.
  * @see ubidi_setInverse
  * @see ubidi_setReorderingMode
  * @see UBIDI_REORDER_DEFAULT
index 6d31083e66ee0de032597aa1d28c229206cbd8e7..9e180db53b665aa07b50f82fa5769773e32706ec 100644 (file)
 
 #include "unicode/utypes.h"
 #include "unicode/stringoptions.h"
+#include "unicode/ucpmap.h"
+
+#if !defined(USET_DEFINED) && !defined(U_IN_DOXYGEN)
+
+#define USET_DEFINED
+
+/**
+ * USet is the C API type corresponding to C++ class UnicodeSet.
+ * It is forward-declared here to avoid including unicode/uset.h file if related
+ * APIs are not used.
+ *
+ * @see ucnv_getUnicodeSet
+ * @stable ICU 2.4
+ */
+typedef struct USet USet;
+
+#endif
+
 
 U_CDECL_BEGIN
 
@@ -61,6 +79,18 @@ U_CDECL_BEGIN
  * "About the Unicode Character Database" (http://www.unicode.org/ucd/)
  * and the ICU User Guide chapter on Properties (http://icu-project.org/userguide/properties.html).
  *
+ * Many properties are accessible via generic functions that take a UProperty selector.
+ * - u_hasBinaryProperty() returns a binary value (TRUE/FALSE) per property and code point.
+ * - u_getIntPropertyValue() returns an integer value per property and code point.
+ *   For each supported enumerated or catalog property, there is
+ *   an enum type for all of the property's values, and
+ *   u_getIntPropertyValue() returns the numeric values of those constants.
+ * - u_getBinaryPropertySet() returns a set for each ICU-supported binary property with
+ *   all code points for which the property is true.
+ * - u_getIntPropertyMap() returns a map for each
+ *   ICU-supported enumerated/catalog/int-valued property which
+ *   maps all Unicode code points to their values for that property.
+ *
  * Many functions are designed to match java.lang.Character functions.
  * See the individual function documentation,
  * and see the JDK 1.4 java.lang.Character documentation
@@ -546,12 +576,34 @@ typedef enum UProperty {
         (http://www.unicode.org/reports/tr9/)
         Returns UBidiPairedBracketType values. @stable ICU 52 */
     UCHAR_BIDI_PAIRED_BRACKET_TYPE=0x1015,
+    /**
+     * Enumerated property Indic_Positional_Category.
+     * New in Unicode 6.0 as provisional property Indic_Matra_Category;
+     * renamed and changed to informative in Unicode 8.0.
+     * See http://www.unicode.org/reports/tr44/#IndicPositionalCategory.txt
+     * @stable ICU 63
+     */
+    UCHAR_INDIC_POSITIONAL_CATEGORY=0x1016,
+    /**
+     * Enumerated property Indic_Syllabic_Category.
+     * New in Unicode 6.0 as provisional; informative since Unicode 8.0.
+     * See http://www.unicode.org/reports/tr44/#IndicSyllabicCategory.txt
+     * @stable ICU 63
+     */
+    UCHAR_INDIC_SYLLABIC_CATEGORY=0x1017,
+    /**
+     * Enumerated property Vertical_Orientation.
+     * Used for UAX #50 Unicode Vertical Text Layout (https://www.unicode.org/reports/tr50/).
+     * New as a UCD property in Unicode 10.0.
+     * @stable ICU 63
+     */
+    UCHAR_VERTICAL_ORIENTATION=0x1018,
 #ifndef U_HIDE_DEPRECATED_API
     /**
      * One more than the last constant for enumerated/integer Unicode properties.
      * @deprecated ICU 58 The numeric value may change over time, see ICU ticket #12420.
      */
-    UCHAR_INT_LIMIT=0x1016,
+    UCHAR_INT_LIMIT=0x1019,
 #endif  // U_HIDE_DEPRECATED_API
 
     /** Bitmask property General_Category_Mask.
@@ -2320,6 +2372,161 @@ typedef enum UHangulSyllableType {
 #endif  // U_HIDE_DEPRECATED_API
 } UHangulSyllableType;
 
+/**
+ * Indic Positional Category constants.
+ *
+ * @see UCHAR_INDIC_POSITIONAL_CATEGORY
+ * @stable ICU 63
+ */
+typedef enum UIndicPositionalCategory {
+    /*
+     * Note: UIndicPositionalCategory constants are parsed by preparseucd.py.
+     * It matches lines like
+     *     U_INPC_<Unicode Indic_Positional_Category value name>
+     */
+
+    /** @stable ICU 63 */
+    U_INPC_NA,
+    /** @stable ICU 63 */
+    U_INPC_BOTTOM,
+    /** @stable ICU 63 */
+    U_INPC_BOTTOM_AND_LEFT,
+    /** @stable ICU 63 */
+    U_INPC_BOTTOM_AND_RIGHT,
+    /** @stable ICU 63 */
+    U_INPC_LEFT,
+    /** @stable ICU 63 */
+    U_INPC_LEFT_AND_RIGHT,
+    /** @stable ICU 63 */
+    U_INPC_OVERSTRUCK,
+    /** @stable ICU 63 */
+    U_INPC_RIGHT,
+    /** @stable ICU 63 */
+    U_INPC_TOP,
+    /** @stable ICU 63 */
+    U_INPC_TOP_AND_BOTTOM,
+    /** @stable ICU 63 */
+    U_INPC_TOP_AND_BOTTOM_AND_RIGHT,
+    /** @stable ICU 63 */
+    U_INPC_TOP_AND_LEFT,
+    /** @stable ICU 63 */
+    U_INPC_TOP_AND_LEFT_AND_RIGHT,
+    /** @stable ICU 63 */
+    U_INPC_TOP_AND_RIGHT,
+    /** @stable ICU 63 */
+    U_INPC_VISUAL_ORDER_LEFT,
+} UIndicPositionalCategory;
+
+/**
+ * Indic Syllabic Category constants.
+ *
+ * @see UCHAR_INDIC_SYLLABIC_CATEGORY
+ * @stable ICU 63
+ */
+typedef enum UIndicSyllabicCategory {
+    /*
+     * Note: UIndicSyllabicCategory constants are parsed by preparseucd.py.
+     * It matches lines like
+     *     U_INSC_<Unicode Indic_Syllabic_Category value name>
+     */
+
+    /** @stable ICU 63 */
+    U_INSC_OTHER,
+    /** @stable ICU 63 */
+    U_INSC_AVAGRAHA,
+    /** @stable ICU 63 */
+    U_INSC_BINDU,
+    /** @stable ICU 63 */
+    U_INSC_BRAHMI_JOINING_NUMBER,
+    /** @stable ICU 63 */
+    U_INSC_CANTILLATION_MARK,
+    /** @stable ICU 63 */
+    U_INSC_CONSONANT,
+    /** @stable ICU 63 */
+    U_INSC_CONSONANT_DEAD,
+    /** @stable ICU 63 */
+    U_INSC_CONSONANT_FINAL,
+    /** @stable ICU 63 */
+    U_INSC_CONSONANT_HEAD_LETTER,
+    /** @stable ICU 63 */
+    U_INSC_CONSONANT_INITIAL_POSTFIXED,
+    /** @stable ICU 63 */
+    U_INSC_CONSONANT_KILLER,
+    /** @stable ICU 63 */
+    U_INSC_CONSONANT_MEDIAL,
+    /** @stable ICU 63 */
+    U_INSC_CONSONANT_PLACEHOLDER,
+    /** @stable ICU 63 */
+    U_INSC_CONSONANT_PRECEDING_REPHA,
+    /** @stable ICU 63 */
+    U_INSC_CONSONANT_PREFIXED,
+    /** @stable ICU 63 */
+    U_INSC_CONSONANT_SUBJOINED,
+    /** @stable ICU 63 */
+    U_INSC_CONSONANT_SUCCEEDING_REPHA,
+    /** @stable ICU 63 */
+    U_INSC_CONSONANT_WITH_STACKER,
+    /** @stable ICU 63 */
+    U_INSC_GEMINATION_MARK,
+    /** @stable ICU 63 */
+    U_INSC_INVISIBLE_STACKER,
+    /** @stable ICU 63 */
+    U_INSC_JOINER,
+    /** @stable ICU 63 */
+    U_INSC_MODIFYING_LETTER,
+    /** @stable ICU 63 */
+    U_INSC_NON_JOINER,
+    /** @stable ICU 63 */
+    U_INSC_NUKTA,
+    /** @stable ICU 63 */
+    U_INSC_NUMBER,
+    /** @stable ICU 63 */
+    U_INSC_NUMBER_JOINER,
+    /** @stable ICU 63 */
+    U_INSC_PURE_KILLER,
+    /** @stable ICU 63 */
+    U_INSC_REGISTER_SHIFTER,
+    /** @stable ICU 63 */
+    U_INSC_SYLLABLE_MODIFIER,
+    /** @stable ICU 63 */
+    U_INSC_TONE_LETTER,
+    /** @stable ICU 63 */
+    U_INSC_TONE_MARK,
+    /** @stable ICU 63 */
+    U_INSC_VIRAMA,
+    /** @stable ICU 63 */
+    U_INSC_VISARGA,
+    /** @stable ICU 63 */
+    U_INSC_VOWEL,
+    /** @stable ICU 63 */
+    U_INSC_VOWEL_DEPENDENT,
+    /** @stable ICU 63 */
+    U_INSC_VOWEL_INDEPENDENT,
+} UIndicSyllabicCategory;
+
+/**
+ * Vertical Orientation constants.
+ *
+ * @see UCHAR_VERTICAL_ORIENTATION
+ * @stable ICU 63
+ */
+typedef enum UVerticalOrientation {
+    /*
+     * Note: UVerticalOrientation constants are parsed by preparseucd.py.
+     * It matches lines like
+     *     U_VO_<Unicode Vertical_Orientation value name>
+     */
+
+    /** @stable ICU 63 */
+    U_VO_ROTATED,
+    /** @stable ICU 63 */
+    U_VO_TRANSFORMED_ROTATED,
+    /** @stable ICU 63 */
+    U_VO_TRANSFORMED_UPRIGHT,
+    /** @stable ICU 63 */
+    U_VO_UPRIGHT,
+} UVerticalOrientation;
+
 /**
  * Check a binary Unicode property for a code point.
  *
@@ -2342,6 +2549,7 @@ typedef enum UHangulSyllableType {
  *         does not have data for the property at all, or not for this code point.
  *
  * @see UProperty
+ * @see u_getBinaryPropertySet
  * @see u_getIntPropertyValue
  * @see u_getUnicodeVersion
  * @stable ICU 2.1
@@ -2349,6 +2557,28 @@ typedef enum UHangulSyllableType {
 U_STABLE UBool U_EXPORT2
 u_hasBinaryProperty(UChar32 c, UProperty which);
 
+#ifndef U_HIDE_DRAFT_API
+
+/**
+ * Returns a frozen USet for a binary property.
+ * The library retains ownership over the returned object.
+ * Sets an error code if the property number is not one for a binary property.
+ *
+ * The returned set contains all code points for which the property is true.
+ *
+ * @param property UCHAR_BINARY_START..UCHAR_BINARY_LIMIT-1
+ * @param pErrorCode an in/out ICU UErrorCode
+ * @return the property as a set
+ * @see UProperty
+ * @see u_hasBinaryProperty
+ * @see Unicode::fromUSet
+ * @draft ICU 63
+ */
+U_CAPI const USet * U_EXPORT2
+u_getBinaryPropertySet(UProperty property, UErrorCode *pErrorCode);
+
+#endif  // U_HIDE_DRAFT_API
+
 /**
  * Check if a code point has the Alphabetic Unicode property.
  * Same as u_hasBinaryProperty(c, UCHAR_ALPHABETIC).
@@ -2449,6 +2679,7 @@ u_isUWhiteSpace(UChar32 c);
  * @see u_hasBinaryProperty
  * @see u_getIntPropertyMinValue
  * @see u_getIntPropertyMaxValue
+ * @see u_getIntPropertyMap
  * @see u_getUnicodeVersion
  * @stable ICU 2.2
  */
@@ -2505,6 +2736,28 @@ u_getIntPropertyMinValue(UProperty which);
 U_STABLE int32_t U_EXPORT2
 u_getIntPropertyMaxValue(UProperty which);
 
+#ifndef U_HIDE_DRAFT_API
+
+/**
+ * Returns an immutable UCPMap for an enumerated/catalog/int-valued property.
+ * The library retains ownership over the returned object.
+ * Sets an error code if the property number is not one for an "int property".
+ *
+ * The returned object maps all Unicode code points to their values for that property.
+ * For documentation of the integer values see u_getIntPropertyValue().
+ *
+ * @param property UCHAR_INT_START..UCHAR_INT_LIMIT-1
+ * @param pErrorCode an in/out ICU UErrorCode
+ * @return the property as a map
+ * @see UProperty
+ * @see u_getIntPropertyValue
+ * @draft ICU 63
+ */
+U_CAPI const UCPMap * U_EXPORT2
+u_getIntPropertyMap(UProperty property, UErrorCode *pErrorCode);
+
+#endif  // U_HIDE_DRAFT_API
+
 /**
  * Get the numeric value for a Unicode code point as defined in the
  * Unicode Character Database.
index 53b4c6f0733aca65f5c6e121d01a8021c63b9038..ec7c5f350b497378298874dd869a837137964352 100644 (file)
 #include "unicode/uenum.h"
 #include "unicode/localpointer.h"
 
-#ifndef __USET_H__
+#if !defined(USET_DEFINED) && !defined(U_IN_DOXYGEN)
+
+#define USET_DEFINED
 
 /**
- * USet is the C API type for Unicode sets.
- * It is forward-declared here to avoid including the header file if related
+ * USet is the C API type corresponding to C++ class UnicodeSet.
+ * It is forward-declared here to avoid including unicode/uset.h file if related
  * conversion APIs are not used.
- * See unicode/uset.h
  *
  * @see ucnv_getUnicodeSet
- * @stable ICU 2.6
+ * @stable ICU 2.4
  */
-struct USet;
-/** @stable ICU 2.6 */
 typedef struct USet USet;
 
 #endif
index 7ddf4e6adfb862ab821998cfcf9410ebb028d501..857ed561357085155ad7f6e5d6e1bd88b5d1c637 100644 (file)
  */
 #ifdef U_HAVE_LIB_SUFFIX
     /* Use the predefined value. */
-#elif defined(U_LIB_SUFFIX_C_NAME)
+#elif defined(U_LIB_SUFFIX_C_NAME) || defined(U_IN_DOXYGEN)
 #   define U_HAVE_LIB_SUFFIX 1
 #endif
 
 #   define UCONFIG_HAVE_PARSEALLINPUT 1
 #endif
 
-
-/**
- * \def UCONFIG_FORMAT_FASTPATHS_49
- * This switch turns on other formatting fastpaths. Binary incompatible in object DecimalFormat and DecimalFormatSymbols
- *
- * @internal
- */
-#ifndef UCONFIG_FORMAT_FASTPATHS_49
-#   define UCONFIG_FORMAT_FASTPATHS_49 1
-#endif
-
 /**
  * \def UCONFIG_NO_FILTERED_BREAK_ITERATION
  * This switch turns off filtered break iteration code.
diff --git a/source/common/unicode/ucpmap.h b/source/common/unicode/ucpmap.h
new file mode 100644 (file)
index 0000000..f2c42b6
--- /dev/null
@@ -0,0 +1,162 @@
+// © 2018 and later: Unicode, Inc. and others.
+// License & terms of use: http://www.unicode.org/copyright.html
+
+// ucpmap.h
+// created: 2018sep03 Markus W. Scherer
+
+#ifndef __UCPMAP_H__
+#define __UCPMAP_H__
+
+#include "unicode/utypes.h"
+
+#ifndef U_HIDE_DRAFT_API
+
+U_CDECL_BEGIN
+
+/**
+ * \file
+ *
+ * This file defines an abstract map from Unicode code points to integer values.
+ *
+ * @see UCPMap
+ * @see UCPTrie
+ * @see UMutableCPTrie
+ */
+
+/**
+ * Abstract map from Unicode code points (U+0000..U+10FFFF) to integer values.
+ *
+ * @see UCPTrie
+ * @see UMutableCPTrie
+ * @draft ICU 63
+ */
+typedef struct UCPMap UCPMap;
+
+/**
+ * Selectors for how ucpmap_getRange() etc. should report value ranges overlapping with surrogates.
+ * Most users should use UCPMAP_RANGE_NORMAL.
+ *
+ * @see ucpmap_getRange
+ * @see ucptrie_getRange
+ * @see umutablecptrie_getRange
+ * @draft ICU 63
+ */
+enum UCPMapRangeOption {
+    /**
+     * ucpmap_getRange() enumerates all same-value ranges as stored in the map.
+     * Most users should use this option.
+     * @draft ICU 63
+     */
+    UCPMAP_RANGE_NORMAL,
+    /**
+     * ucpmap_getRange() enumerates all same-value ranges as stored in the map,
+     * except that lead surrogates (U+D800..U+DBFF) are treated as having the
+     * surrogateValue, which is passed to getRange() as a separate parameter.
+     * The surrogateValue is not transformed via filter().
+     * See U_IS_LEAD(c).
+     *
+     * Most users should use UCPMAP_RANGE_NORMAL instead.
+     *
+     * This option is useful for maps that map surrogate code *units* to
+     * special values optimized for UTF-16 string processing
+     * or for special error behavior for unpaired surrogates,
+     * but those values are not to be associated with the lead surrogate code *points*.
+     * @draft ICU 63
+     */
+    UCPMAP_RANGE_FIXED_LEAD_SURROGATES,
+    /**
+     * ucpmap_getRange() enumerates all same-value ranges as stored in the map,
+     * except that all surrogates (U+D800..U+DFFF) are treated as having the
+     * surrogateValue, which is passed to getRange() as a separate parameter.
+     * The surrogateValue is not transformed via filter().
+     * See U_IS_SURROGATE(c).
+     *
+     * Most users should use UCPMAP_RANGE_NORMAL instead.
+     *
+     * This option is useful for maps that map surrogate code *units* to
+     * special values optimized for UTF-16 string processing
+     * or for special error behavior for unpaired surrogates,
+     * but those values are not to be associated with the lead surrogate code *points*.
+     * @draft ICU 63
+     */
+    UCPMAP_RANGE_FIXED_ALL_SURROGATES
+};
+#ifndef U_IN_DOXYGEN
+typedef enum UCPMapRangeOption UCPMapRangeOption;
+#endif
+
+/**
+ * Returns the value for a code point as stored in the map, with range checking.
+ * Returns an implementation-defined error value if c is not in the range 0..U+10FFFF.
+ *
+ * @param map the map
+ * @param c the code point
+ * @return the map value,
+ *         or an implementation-defined error value if the code point is not in the range 0..U+10FFFF
+ * @draft ICU 63
+ */
+U_CAPI uint32_t U_EXPORT2
+ucpmap_get(const UCPMap *map, UChar32 c);
+
+/**
+ * Callback function type: Modifies a map value.
+ * Optionally called by ucpmap_getRange()/ucptrie_getRange()/umutablecptrie_getRange().
+ * The modified value will be returned by the getRange function.
+ *
+ * Can be used to ignore some of the value bits,
+ * make a filter for one of several values,
+ * return a value index computed from the map value, etc.
+ *
+ * @param context an opaque pointer, as passed into the getRange function
+ * @param value a value from the map
+ * @return the modified value
+ * @draft ICU 63
+ */
+typedef uint32_t U_CALLCONV
+UCPMapValueFilter(const void *context, uint32_t value);
+
+/**
+ * Returns the last code point such that all those from start to there have the same value.
+ * Can be used to efficiently iterate over all same-value ranges in a map.
+ * (This is normally faster than iterating over code points and get()ting each value,
+ * but much slower than a data structure that stores ranges directly.)
+ *
+ * If the UCPMapValueFilter function pointer is not NULL, then
+ * the value to be delivered is passed through that function, and the return value is the end
+ * of the range where all values are modified to the same actual value.
+ * The value is unchanged if that function pointer is NULL.
+ *
+ * Example:
+ * \code
+ * UChar32 start = 0, end;
+ * uint32_t value;
+ * while ((end = ucpmap_getRange(map, start, UCPMAP_RANGE_NORMAL, 0,
+ *                               NULL, NULL, &value)) >= 0) {
+ *     // Work with the range start..end and its value.
+ *     start = end + 1;
+ * }
+ * \endcode
+ *
+ * @param map the map
+ * @param start range start
+ * @param option defines whether surrogates are treated normally,
+ *               or as having the surrogateValue; usually UCPMAP_RANGE_NORMAL
+ * @param surrogateValue value for surrogates; ignored if option==UCPMAP_RANGE_NORMAL
+ * @param filter a pointer to a function that may modify the map data value,
+ *     or NULL if the values from the map are to be used unmodified
+ * @param context an opaque pointer that is passed on to the filter function
+ * @param pValue if not NULL, receives the value that every code point start..end has;
+ *     may have been modified by filter(context, map value)
+ *     if that function pointer is not NULL
+ * @return the range end code point, or -1 if start is not a valid code point
+ * @draft ICU 63
+ */
+U_CAPI UChar32 U_EXPORT2
+ucpmap_getRange(const UCPMap *map, UChar32 start,
+                UCPMapRangeOption option, uint32_t surrogateValue,
+                UCPMapValueFilter *filter, const void *context, uint32_t *pValue);
+
+U_CDECL_END
+
+#endif  // U_HIDE_DRAFT_API
+#endif
diff --git a/source/common/unicode/ucptrie.h b/source/common/unicode/ucptrie.h
new file mode 100644 (file)
index 0000000..2718c98
--- /dev/null
@@ -0,0 +1,646 @@
+// © 2017 and later: Unicode, Inc. and others.
+// License & terms of use: http://www.unicode.org/copyright.html
+
+// ucptrie.h (modified from utrie2.h)
+// created: 2017dec29 Markus W. Scherer
+
+#ifndef __UCPTRIE_H__
+#define __UCPTRIE_H__
+
+#include "unicode/utypes.h"
+
+#ifndef U_HIDE_DRAFT_API
+
+#include "unicode/localpointer.h"
+#include "unicode/ucpmap.h"
+#include "unicode/utf8.h"
+
+U_CDECL_BEGIN
+
+/**
+ * \file
+ *
+ * This file defines an immutable Unicode code point trie.
+ *
+ * @see UCPTrie
+ * @see UMutableCPTrie
+ */
+
+#ifndef U_IN_DOXYGEN
+/** @internal */
+typedef union UCPTrieData {
+    /** @internal */
+    const void *ptr0;
+    /** @internal */
+    const uint16_t *ptr16;
+    /** @internal */
+    const uint32_t *ptr32;
+    /** @internal */
+    const uint8_t *ptr8;
+} UCPTrieData;
+#endif
+
+/**
+ * Immutable Unicode code point trie structure.
+ * Fast, reasonably compact, map from Unicode code points (U+0000..U+10FFFF) to integer values.
+ * For details see http://site.icu-project.org/design/struct/utrie
+ *
+ * Do not access UCPTrie fields directly; use public functions and macros.
+ * Functions are easy to use: They support all trie types and value widths.
+ *
+ * When performance is really important, macros provide faster access.
+ * Most macros are specific to either "fast" or "small" tries, see UCPTrieType.
+ * There are "fast" macros for special optimized use cases.
+ *
+ * The macros will return bogus values, or may crash, if used on the wrong type or value width.
+ *
+ * @see UMutableCPTrie
+ * @draft ICU 63
+ */
+struct UCPTrie {
+#ifndef U_IN_DOXYGEN
+    /** @internal */
+    const uint16_t *index;
+    /** @internal */
+    UCPTrieData data;
+
+    /** @internal */
+    int32_t indexLength;
+    /** @internal */
+    int32_t dataLength;
+    /** Start of the last range which ends at U+10FFFF. @internal */
+    UChar32 highStart;
+    /** highStart>>12 @internal */
+    uint16_t shifted12HighStart;
+
+    /** @internal */
+    int8_t type;  // UCPTrieType
+    /** @internal */
+    int8_t valueWidth;  // UCPTrieValueWidth
+
+    /** padding/reserved @internal */
+    uint32_t reserved32;
+    /** padding/reserved @internal */
+    uint16_t reserved16;
+
+    /**
+     * Internal index-3 null block offset.
+     * Set to an impossibly high value (e.g., 0xffff) if there is no dedicated index-3 null block.
+     * @internal
+     */
+    uint16_t index3NullOffset;
+    /**
+     * Internal data null block offset, not shifted.
+     * Set to an impossibly high value (e.g., 0xfffff) if there is no dedicated data null block.
+     * @internal
+     */
+    int32_t dataNullOffset;
+    /** @internal */
+    uint32_t nullValue;
+
+#ifdef UCPTRIE_DEBUG
+    /** @internal */
+    const char *name;
+#endif
+#endif
+};
+#ifndef U_IN_DOXYGEN
+typedef struct UCPTrie UCPTrie;
+#endif
+
+/**
+ * Selectors for the type of a UCPTrie.
+ * Different trade-offs for size vs. speed.
+ *
+ * @see umutablecptrie_buildImmutable
+ * @see ucptrie_openFromBinary
+ * @see ucptrie_getType
+ * @draft ICU 63
+ */
+enum UCPTrieType {
+    /**
+     * For ucptrie_openFromBinary() to accept any type.
+     * ucptrie_getType() will return the actual type.
+     * @draft ICU 63
+     */
+    UCPTRIE_TYPE_ANY = -1,
+    /**
+     * Fast/simple/larger BMP data structure. Use functions and "fast" macros.
+     * @draft ICU 63
+     */
+    UCPTRIE_TYPE_FAST,
+    /**
+     * Small/slower BMP data structure. Use functions and "small" macros.
+     * @draft ICU 63
+     */
+    UCPTRIE_TYPE_SMALL
+};
+#ifndef U_IN_DOXYGEN
+typedef enum UCPTrieType UCPTrieType;
+#endif
+
+/**
+ * Selectors for the number of bits in a UCPTrie data value.
+ *
+ * @see umutablecptrie_buildImmutable
+ * @see ucptrie_openFromBinary
+ * @see ucptrie_getValueWidth
+ * @draft ICU 63
+ */
+enum UCPTrieValueWidth {
+    /**
+     * For ucptrie_openFromBinary() to accept any data value width.
+     * ucptrie_getValueWidth() will return the actual data value width.
+     * @draft ICU 63
+     */
+    UCPTRIE_VALUE_BITS_ANY = -1,
+    /**
+     * The trie stores 16 bits per data value.
+     * It returns them as unsigned values 0..0xffff=65535.
+     * @draft ICU 63
+     */
+    UCPTRIE_VALUE_BITS_16,
+    /**
+     * The trie stores 32 bits per data value.
+     * @draft ICU 63
+     */
+    UCPTRIE_VALUE_BITS_32,
+    /**
+     * The trie stores 8 bits per data value.
+     * It returns them as unsigned values 0..0xff=255.
+     * @draft ICU 63
+     */
+    UCPTRIE_VALUE_BITS_8
+};
+#ifndef U_IN_DOXYGEN
+typedef enum UCPTrieValueWidth UCPTrieValueWidth;
+#endif
+
+/**
+ * Opens a trie from its binary form, stored in 32-bit-aligned memory.
+ * Inverse of ucptrie_toBinary().
+ *
+ * The memory must remain valid and unchanged as long as the trie is used.
+ * You must ucptrie_close() the trie once you are done using it.
+ *
+ * @param type selects the trie type; results in an
+ *             U_INVALID_FORMAT_ERROR if it does not match the binary data;
+ *             use UCPTRIE_TYPE_ANY to accept any type
+ * @param valueWidth selects the number of bits in a data value; results in an
+ *                  U_INVALID_FORMAT_ERROR if it does not match the binary data;
+ *                  use UCPTRIE_VALUE_BITS_ANY to accept any data value width
+ * @param data a pointer to 32-bit-aligned memory containing the binary data of a UCPTrie
+ * @param length the number of bytes available at data;
+ *               can be more than necessary
+ * @param pActualLength receives the actual number of bytes at data taken up by the trie data;
+ *                      can be NULL
+ * @param pErrorCode an in/out ICU UErrorCode
+ * @return the trie
+ *
+ * @see umutablecptrie_open
+ * @see umutablecptrie_buildImmutable
+ * @see ucptrie_toBinary
+ * @draft ICU 63
+ */
+U_CAPI UCPTrie * U_EXPORT2
+ucptrie_openFromBinary(UCPTrieType type, UCPTrieValueWidth valueWidth,
+                       const void *data, int32_t length, int32_t *pActualLength,
+                       UErrorCode *pErrorCode);
+
+/**
+ * Closes a trie and releases associated memory.
+ *
+ * @param trie the trie
+ * @draft ICU 63
+ */
+U_CAPI void U_EXPORT2
+ucptrie_close(UCPTrie *trie);
+
+#if U_SHOW_CPLUSPLUS_API
+
+U_NAMESPACE_BEGIN
+
+/**
+ * \class LocalUCPTriePointer
+ * "Smart pointer" class, closes a UCPTrie via ucptrie_close().
+ * For most methods see the LocalPointerBase base class.
+ *
+ * @see LocalPointerBase
+ * @see LocalPointer
+ * @draft ICU 63
+ */
+U_DEFINE_LOCAL_OPEN_POINTER(LocalUCPTriePointer, UCPTrie, ucptrie_close);
+
+U_NAMESPACE_END
+
+#endif
+
+/**
+ * Returns the trie type.
+ *
+ * @param trie the trie
+ * @return the trie type
+ * @see ucptrie_openFromBinary
+ * @see UCPTRIE_TYPE_ANY
+ * @draft ICU 63
+ */
+U_CAPI UCPTrieType U_EXPORT2
+ucptrie_getType(const UCPTrie *trie);
+
+/**
+ * Returns the number of bits in a trie data value.
+ *
+ * @param trie the trie
+ * @return the number of bits in a trie data value
+ * @see ucptrie_openFromBinary
+ * @see UCPTRIE_VALUE_BITS_ANY
+ * @draft ICU 63
+ */
+U_CAPI UCPTrieValueWidth U_EXPORT2
+ucptrie_getValueWidth(const UCPTrie *trie);
+
+/**
+ * Returns the value for a code point as stored in the trie, with range checking.
+ * Returns the trie error value if c is not in the range 0..U+10FFFF.
+ *
+ * Easier to use than UCPTRIE_FAST_GET() and similar macros but slower.
+ * Easier to use because, unlike the macros, this function works on all UCPTrie
+ * objects, for all types and value widths.
+ *
+ * @param trie the trie
+ * @param c the code point
+ * @return the trie value,
+ *         or the trie error value if the code point is not in the range 0..U+10FFFF
+ * @draft ICU 63
+ */
+U_CAPI uint32_t U_EXPORT2
+ucptrie_get(const UCPTrie *trie, UChar32 c);
+
+/**
+ * Returns the last code point such that all those from start to there have the same value.
+ * Can be used to efficiently iterate over all same-value ranges in a trie.
+ * (This is normally faster than iterating over code points and get()ting each value,
+ * but much slower than a data structure that stores ranges directly.)
+ *
+ * If the UCPMapValueFilter function pointer is not NULL, then
+ * the value to be delivered is passed through that function, and the return value is the end
+ * of the range where all values are modified to the same actual value.
+ * The value is unchanged if that function pointer is NULL.
+ *
+ * Example:
+ * \code
+ * UChar32 start = 0, end;
+ * uint32_t value;
+ * while ((end = ucptrie_getRange(trie, start, UCPMAP_RANGE_NORMAL, 0,
+ *                                NULL, NULL, &value)) >= 0) {
+ *     // Work with the range start..end and its value.
+ *     start = end + 1;
+ * }
+ * \endcode
+ *
+ * @param trie the trie
+ * @param start range start
+ * @param option defines whether surrogates are treated normally,
+ *               or as having the surrogateValue; usually UCPMAP_RANGE_NORMAL
+ * @param surrogateValue value for surrogates; ignored if option==UCPMAP_RANGE_NORMAL
+ * @param filter a pointer to a function that may modify the trie data value,
+ *     or NULL if the values from the trie are to be used unmodified
+ * @param context an opaque pointer that is passed on to the filter function
+ * @param pValue if not NULL, receives the value that every code point start..end has;
+ *     may have been modified by filter(context, trie value)
+ *     if that function pointer is not NULL
+ * @return the range end code point, or -1 if start is not a valid code point
+ * @draft ICU 63
+ */
+U_CAPI UChar32 U_EXPORT2
+ucptrie_getRange(const UCPTrie *trie, UChar32 start,
+                 UCPMapRangeOption option, uint32_t surrogateValue,
+                 UCPMapValueFilter *filter, const void *context, uint32_t *pValue);
+
+/**
+ * Writes a memory-mappable form of the trie into 32-bit aligned memory.
+ * Inverse of ucptrie_openFromBinary().
+ *
+ * @param trie the trie
+ * @param data a pointer to 32-bit-aligned memory to be filled with the trie data;
+ *             can be NULL if capacity==0
+ * @param capacity the number of bytes available at data, or 0 for pure preflighting
+ * @param pErrorCode an in/out ICU UErrorCode;
+ *                   U_BUFFER_OVERFLOW_ERROR if the capacity is too small
+ * @return the number of bytes written or (if buffer overflow) needed for the trie
+ *
+ * @see ucptrie_openFromBinary()
+ * @draft ICU 63
+ */
+U_CAPI int32_t U_EXPORT2
+ucptrie_toBinary(const UCPTrie *trie, void *data, int32_t capacity, UErrorCode *pErrorCode);
+
+/**
+ * Macro parameter value for a trie with 16-bit data values.
+ * Use the name of this macro as a "dataAccess" parameter in other macros.
+ * Do not use this macro in any other way.
+ *
+ * @see UCPTRIE_VALUE_BITS_16
+ * @draft ICU 63
+ */
+#define UCPTRIE_16(trie, i) ((trie)->data.ptr16[i])
+
+/**
+ * Macro parameter value for a trie with 32-bit data values.
+ * Use the name of this macro as a "dataAccess" parameter in other macros.
+ * Do not use this macro in any other way.
+ *
+ * @see UCPTRIE_VALUE_BITS_32
+ * @draft ICU 63
+ */
+#define UCPTRIE_32(trie, i) ((trie)->data.ptr32[i])
+
+/**
+ * Macro parameter value for a trie with 8-bit data values.
+ * Use the name of this macro as a "dataAccess" parameter in other macros.
+ * Do not use this macro in any other way.
+ *
+ * @see UCPTRIE_VALUE_BITS_8
+ * @draft ICU 63
+ */
+#define UCPTRIE_8(trie, i) ((trie)->data.ptr8[i])
+
+/**
+ * Returns a trie value for a code point, with range checking.
+ * Returns the trie error value if c is not in the range 0..U+10FFFF.
+ *
+ * @param trie (const UCPTrie *, in) the trie; must have type UCPTRIE_TYPE_FAST
+ * @param dataAccess UCPTRIE_16, UCPTRIE_32, or UCPTRIE_8 according to the trie’s value width
+ * @param c (UChar32, in) the input code point
+ * @return The code point's trie value.
+ * @draft ICU 63
+ */
+#define UCPTRIE_FAST_GET(trie, dataAccess, c) dataAccess(trie, _UCPTRIE_CP_INDEX(trie, 0xffff, c))
+
+/**
+ * Returns a 16-bit trie value for a code point, with range checking.
+ * Returns the trie error value if c is not in the range U+0000..U+10FFFF.
+ *
+ * @param trie (const UCPTrie *, in) the trie; must have type UCPTRIE_TYPE_SMALL
+ * @param dataAccess UCPTRIE_16, UCPTRIE_32, or UCPTRIE_8 according to the trie’s value width
+ * @param c (UChar32, in) the input code point
+ * @return The code point's trie value.
+ * @draft ICU 63
+ */
+#define UCPTRIE_SMALL_GET(trie, dataAccess, c) \
+    dataAccess(trie, _UCPTRIE_CP_INDEX(trie, UCPTRIE_SMALL_MAX, c))
+
+/**
+ * UTF-16: Reads the next code point (UChar32 c, out), post-increments src,
+ * and gets a value from the trie.
+ * Sets the trie error value if c is an unpaired surrogate.
+ *
+ * @param trie (const UCPTrie *, in) the trie; must have type UCPTRIE_TYPE_FAST
+ * @param dataAccess UCPTRIE_16, UCPTRIE_32, or UCPTRIE_8 according to the trie’s value width
+ * @param src (const UChar *, in/out) the source text pointer
+ * @param limit (const UChar *, in) the limit pointer for the text, or NULL if NUL-terminated
+ * @param c (UChar32, out) variable for the code point
+ * @param result (out) variable for the trie lookup result
+ * @draft ICU 63
+ */
+#define UCPTRIE_FAST_U16_NEXT(trie, dataAccess, src, limit, c, result) { \
+    (c) = *(src)++; \
+    int32_t __index; \
+    if (!U16_IS_SURROGATE(c)) { \
+        __index = _UCPTRIE_FAST_INDEX(trie, c); \
+    } else { \
+        uint16_t __c2; \
+        if (U16_IS_SURROGATE_LEAD(c) && (src) != (limit) && U16_IS_TRAIL(__c2 = *(src))) { \
+            ++(src); \
+            (c) = U16_GET_SUPPLEMENTARY((c), __c2); \
+            __index = _UCPTRIE_SMALL_INDEX(trie, c); \
+        } else { \
+            __index = (trie)->dataLength - UCPTRIE_ERROR_VALUE_NEG_DATA_OFFSET; \
+        } \
+    } \
+    (result) = dataAccess(trie, __index); \
+}
+
+/**
+ * UTF-16: Reads the previous code point (UChar32 c, out), pre-decrements src,
+ * and gets a value from the trie.
+ * Sets the trie error value if c is an unpaired surrogate.
+ *
+ * @param trie (const UCPTrie *, in) the trie; must have type UCPTRIE_TYPE_FAST
+ * @param dataAccess UCPTRIE_16, UCPTRIE_32, or UCPTRIE_8 according to the trie’s value width
+ * @param start (const UChar *, in) the start pointer for the text
+ * @param src (const UChar *, in/out) the source text pointer
+ * @param c (UChar32, out) variable for the code point
+ * @param result (out) variable for the trie lookup result
+ * @draft ICU 63
+ */
+#define UCPTRIE_FAST_U16_PREV(trie, dataAccess, start, src, c, result) { \
+    (c) = *--(src); \
+    int32_t __index; \
+    if (!U16_IS_SURROGATE(c)) { \
+        __index = _UCPTRIE_FAST_INDEX(trie, c); \
+    } else { \
+        uint16_t __c2; \
+        if (U16_IS_SURROGATE_TRAIL(c) && (src) != (start) && U16_IS_LEAD(__c2 = *((src) - 1))) { \
+            --(src); \
+            (c) = U16_GET_SUPPLEMENTARY(__c2, (c)); \
+            __index = _UCPTRIE_SMALL_INDEX(trie, c); \
+        } else { \
+            __index = (trie)->dataLength - UCPTRIE_ERROR_VALUE_NEG_DATA_OFFSET; \
+        } \
+    } \
+    (result) = dataAccess(trie, __index); \
+}
+
+/**
+ * UTF-8: Post-increments src and gets a value from the trie.
+ * Sets the trie error value for an ill-formed byte sequence.
+ *
+ * Unlike UCPTRIE_FAST_U16_NEXT() this UTF-8 macro does not provide the code point
+ * because it would be more work to do so and is often not needed.
+ * If the trie value differs from the error value, then the byte sequence is well-formed,
+ * and the code point can be assembled without revalidation.
+ *
+ * @param trie (const UCPTrie *, in) the trie; must have type UCPTRIE_TYPE_FAST
+ * @param dataAccess UCPTRIE_16, UCPTRIE_32, or UCPTRIE_8 according to the trie’s value width
+ * @param src (const char *, in/out) the source text pointer
+ * @param limit (const char *, in) the limit pointer for the text (must not be NULL)
+ * @param result (out) variable for the trie lookup result
+ * @draft ICU 63
+ */
+#define UCPTRIE_FAST_U8_NEXT(trie, dataAccess, src, limit, result) { \
+    int32_t __lead = (uint8_t)*(src)++; \
+    if (!U8_IS_SINGLE(__lead)) { \
+        uint8_t __t1, __t2, __t3; \
+        if ((src) != (limit) && \
+            (__lead >= 0xe0 ? \
+                __lead < 0xf0 ?  /* U+0800..U+FFFF except surrogates */ \
+                    U8_LEAD3_T1_BITS[__lead &= 0xf] & (1 << ((__t1 = *(src)) >> 5)) && \
+                    ++(src) != (limit) && (__t2 = *(src) - 0x80) <= 0x3f && \
+                    (__lead = ((int32_t)(trie)->index[(__lead << 6) + (__t1 & 0x3f)]) + __t2, 1) \
+                :  /* U+10000..U+10FFFF */ \
+                    (__lead -= 0xf0) <= 4 && \
+                    U8_LEAD4_T1_BITS[(__t1 = *(src)) >> 4] & (1 << __lead) && \
+                    (__lead = (__lead << 6) | (__t1 & 0x3f), ++(src) != (limit)) && \
+                    (__t2 = *(src) - 0x80) <= 0x3f && \
+                    ++(src) != (limit) && (__t3 = *(src) - 0x80) <= 0x3f && \
+                    (__lead = __lead >= (trie)->shifted12HighStart ? \
+                        (trie)->dataLength - UCPTRIE_HIGH_VALUE_NEG_DATA_OFFSET : \
+                        ucptrie_internalSmallU8Index((trie), __lead, __t2, __t3), 1) \
+            :  /* U+0080..U+07FF */ \
+                __lead >= 0xc2 && (__t1 = *(src) - 0x80) <= 0x3f && \
+                (__lead = (int32_t)(trie)->index[__lead & 0x1f] + __t1, 1))) { \
+            ++(src); \
+        } else { \
+            __lead = (trie)->dataLength - UCPTRIE_ERROR_VALUE_NEG_DATA_OFFSET;  /* ill-formed*/ \
+        } \
+    } \
+    (result) = dataAccess(trie, __lead); \
+}
+
+/**
+ * UTF-8: Pre-decrements src and gets a value from the trie.
+ * Sets the trie error value for an ill-formed byte sequence.
+ *
+ * Unlike UCPTRIE_FAST_U16_PREV() this UTF-8 macro does not provide the code point
+ * because it would be more work to do so and is often not needed.
+ * If the trie value differs from the error value, then the byte sequence is well-formed,
+ * and the code point can be assembled without revalidation.
+ *
+ * @param trie (const UCPTrie *, in) the trie; must have type UCPTRIE_TYPE_FAST
+ * @param dataAccess UCPTRIE_16, UCPTRIE_32, or UCPTRIE_8 according to the trie’s value width
+ * @param start (const char *, in) the start pointer for the text
+ * @param src (const char *, in/out) the source text pointer
+ * @param result (out) variable for the trie lookup result
+ * @draft ICU 63
+ */
+#define UCPTRIE_FAST_U8_PREV(trie, dataAccess, start, src, result) { \
+    int32_t __index = (uint8_t)*--(src); \
+    if (!U8_IS_SINGLE(__index)) { \
+        __index = ucptrie_internalU8PrevIndex((trie), __index, (const uint8_t *)(start), \
+                                              (const uint8_t *)(src)); \
+        (src) -= __index & 7; \
+        __index >>= 3; \
+    } \
+    (result) = dataAccess(trie, __index); \
+}
+
+/**
+ * Returns a trie value for an ASCII code point, without range checking.
+ *
+ * @param trie (const UCPTrie *, in) the trie (of either fast or small type)
+ * @param dataAccess UCPTRIE_16, UCPTRIE_32, or UCPTRIE_8 according to the trie’s value width
+ * @param c (UChar32, in) the input code point; must be U+0000..U+007F
+ * @return The ASCII code point's trie value.
+ * @draft ICU 63
+ */
+#define UCPTRIE_ASCII_GET(trie, dataAccess, c) dataAccess(trie, c)
+
+/**
+ * Returns a trie value for a BMP code point (U+0000..U+FFFF), without range checking.
+ * Can be used to look up a value for a UTF-16 code unit if other parts of
+ * the string processing check for surrogates.
+ *
+ * @param trie (const UCPTrie *, in) the trie; must have type UCPTRIE_TYPE_FAST
+ * @param dataAccess UCPTRIE_16, UCPTRIE_32, or UCPTRIE_8 according to the trie’s value width
+ * @param c (UChar32, in) the input code point, must be U+0000..U+FFFF
+ * @return The BMP code point's trie value.
+ * @draft ICU 63
+ */
+#define UCPTRIE_FAST_BMP_GET(trie, dataAccess, c) dataAccess(trie, _UCPTRIE_FAST_INDEX(trie, c))
+
+/**
+ * Returns a trie value for a supplementary code point (U+10000..U+10FFFF),
+ * without range checking.
+ *
+ * @param trie (const UCPTrie *, in) the trie; must have type UCPTRIE_TYPE_FAST
+ * @param dataAccess UCPTRIE_16, UCPTRIE_32, or UCPTRIE_8 according to the trie’s value width
+ * @param c (UChar32, in) the input code point, must be U+10000..U+10FFFF
+ * @return The supplementary code point's trie value.
+ * @draft ICU 63
+ */
+#define UCPTRIE_FAST_SUPP_GET(trie, dataAccess, c) dataAccess(trie, _UCPTRIE_SMALL_INDEX(trie, c))
+
+/* Internal definitions ----------------------------------------------------- */
+
+#ifndef U_IN_DOXYGEN
+
+/**
+ * Internal implementation constants.
+ * These are needed for the API macros, but users should not use these directly.
+ * @internal
+ */
+enum {
+    /** @internal */
+    UCPTRIE_FAST_SHIFT = 6,
+
+    /** Number of entries in a data block for code points below the fast limit. 64=0x40 @internal */
+    UCPTRIE_FAST_DATA_BLOCK_LENGTH = 1 << UCPTRIE_FAST_SHIFT,
+
+    /** Mask for getting the lower bits for the in-fast-data-block offset. @internal */
+    UCPTRIE_FAST_DATA_MASK = UCPTRIE_FAST_DATA_BLOCK_LENGTH - 1,
+
+    /** @internal */
+    UCPTRIE_SMALL_MAX = 0xfff,
+
+    /**
+     * Offset from dataLength (to be subtracted) for fetching the
+     * value returned for out-of-range code points and ill-formed UTF-8/16.
+     * @internal
+     */
+    UCPTRIE_ERROR_VALUE_NEG_DATA_OFFSET = 1,
+    /**
+     * Offset from dataLength (to be subtracted) for fetching the
+     * value returned for code points highStart..U+10FFFF.
+     * @internal
+     */
+    UCPTRIE_HIGH_VALUE_NEG_DATA_OFFSET = 2
+};
+
+/* Internal functions and macros -------------------------------------------- */
+// Do not conditionalize with #ifndef U_HIDE_INTERNAL_API, needed for public API
+
+/** @internal */
+U_INTERNAL int32_t U_EXPORT2
+ucptrie_internalSmallIndex(const UCPTrie *trie, UChar32 c);
+
+/** @internal */
+U_INTERNAL int32_t U_EXPORT2
+ucptrie_internalSmallU8Index(const UCPTrie *trie, int32_t lt1, uint8_t t2, uint8_t t3);
+
+/**
+ * Internal function for part of the UCPTRIE_FAST_U8_PREVxx() macro implementations.
+ * Do not call directly.
+ * @internal
+ */
+U_INTERNAL int32_t U_EXPORT2
+ucptrie_internalU8PrevIndex(const UCPTrie *trie, UChar32 c,
+                            const uint8_t *start, const uint8_t *src);
+
+/** Internal trie getter for a code point below the fast limit. Returns the data index. @internal */
+#define _UCPTRIE_FAST_INDEX(trie, c) \
+    ((int32_t)(trie)->index[(c) >> UCPTRIE_FAST_SHIFT] + ((c) & UCPTRIE_FAST_DATA_MASK))
+
+/** Internal trie getter for a code point at or above the fast limit. Returns the data index. @internal */
+#define _UCPTRIE_SMALL_INDEX(trie, c) \
+    ((c) >= (trie)->highStart ? \
+        (trie)->dataLength - UCPTRIE_HIGH_VALUE_NEG_DATA_OFFSET : \
+        ucptrie_internalSmallIndex(trie, c))
+
+/**
+ * Internal trie getter for a code point, with checking that c is in U+0000..10FFFF.
+ * Returns the data index.
+ * @internal
+ */
+#define _UCPTRIE_CP_INDEX(trie, fastMax, c) \
+    ((uint32_t)(c) <= (uint32_t)(fastMax) ? \
+        _UCPTRIE_FAST_INDEX(trie, c) : \
+        (uint32_t)(c) <= 0x10ffff ? \
+            _UCPTRIE_SMALL_INDEX(trie, c) : \
+            (trie)->dataLength - UCPTRIE_ERROR_VALUE_NEG_DATA_OFFSET)
+
+U_CDECL_END
+
+#endif  // U_IN_DOXYGEN
+#endif  // U_HIDE_DRAFT_API
+#endif
index 192bc298cf71b93af7f8d154c708bea729b6b7b0..b219875de239ce56843955e7def2d46b104237e5 100644 (file)
@@ -60,6 +60,7 @@ enum UCurrencyUsage {
     UCURR_USAGE_COUNT=2
 #endif  // U_HIDE_DEPRECATED_API
 };
+/** Currency Usage used for Decimal Format */
 typedef enum UCurrencyUsage UCurrencyUsage; 
 
 /**
index fc6efa2450db17d7e69caa6452c956257a970bb8..c670eeafb1626b2b7b4fe36e4fa0d672d6509fd4 100644 (file)
@@ -190,8 +190,6 @@ U_STABLE UEnumeration* U_EXPORT2
 uenum_openUCharStringsEnumeration(const UChar* const strings[], int32_t count,
                                  UErrorCode* ec);
 
-/* Note:  next function is not hidden as draft, as it is used internally (it was formerly an internal function). */
-
 /**
  * Given an array of const char* strings (invariant chars only), return a UEnumeration.  String pointers from 0..count-1 must not be null.
  * Do not free or modify either the string array or the characters it points to until this object has been destroyed with uenum_close.
diff --git a/source/common/unicode/ulistformatter.h b/source/common/unicode/ulistformatter.h
deleted file mode 100644 (file)
index 9fe24f7..0000000
+++ /dev/null
@@ -1,130 +0,0 @@
-// © 2016 and later: Unicode, Inc. and others.
-// License & terms of use: http://www.unicode.org/copyright.html
-/*
-*****************************************************************************************
-* Copyright (C) 2015-2016, International Business Machines
-* Corporation and others. All Rights Reserved.
-*****************************************************************************************
-*/
-
-#ifndef ULISTFORMATTER_H
-#define ULISTFORMATTER_H
-
-#include "unicode/utypes.h"
-
-#if !UCONFIG_NO_FORMATTING
-
-#include "unicode/localpointer.h"
-
-/**
- * \file
- * \brief C API: Format a list in a locale-appropriate way.
- *
- * A UListFormatter is used to format a list of items in a locale-appropriate way, 
- * using data from CLDR.
- * Example: Input data ["Alice", "Bob", "Charlie", "Delta"] will be formatted
- * as "Alice, Bob, Charlie, and Delta" in English.
- */
-
-/**
- * Opaque UListFormatter object for use in C
- * @stable ICU 55
- */
-struct UListFormatter;
-typedef struct UListFormatter UListFormatter;  /**< C typedef for struct UListFormatter. @stable ICU 55 */
-
-/**
- * Open a new UListFormatter object using the rules for a given locale.
- * @param locale
- *            The locale whose rules should be used; may be NULL for
- *            default locale.
- * @param status
- *            A pointer to a standard ICU UErrorCode (input/output parameter).
- *            Its input value must pass the U_SUCCESS() test, or else the
- *            function returns immediately. The caller should check its output
- *            value with U_FAILURE(), or use with function chaining (see User
- *            Guide for details).
- * @return
- *            A pointer to a UListFormatter object for the specified locale,
- *            or NULL if an error occurred.
- * @stable ICU 55
- */
-U_CAPI UListFormatter* U_EXPORT2
-ulistfmt_open(const char*  locale,
-              UErrorCode*  status);
-
-/**
- * Close a UListFormatter object. Once closed it may no longer be used.
- * @param listfmt
- *            The UListFormatter object to close.
- * @stable ICU 55
- */
-U_CAPI void U_EXPORT2
-ulistfmt_close(UListFormatter *listfmt);
-
-
-#if U_SHOW_CPLUSPLUS_API
-
-U_NAMESPACE_BEGIN
-
-/**
- * \class LocalUListFormatterPointer
- * "Smart pointer" class, closes a UListFormatter via ulistfmt_close().
- * For most methods see the LocalPointerBase base class.
- *
- * @see LocalPointerBase
- * @see LocalPointer
- * @stable ICU 55
- */
-U_DEFINE_LOCAL_OPEN_POINTER(LocalUListFormatterPointer, UListFormatter, ulistfmt_close);
-
-U_NAMESPACE_END
-
-#endif
-
-/**
- * Formats a list of strings using the conventions established for the
- * UListFormatter object.
- * @param listfmt
- *            The UListFormatter object specifying the list conventions.
- * @param strings
- *            An array of pointers to UChar strings; the array length is
- *            specified by stringCount. Must be non-NULL if stringCount > 0.
- * @param stringLengths
- *            An array of string lengths corresponding to the strings[]
- *            parameter; any individual length value may be negative to indicate
- *            that the corresponding strings[] entry is 0-terminated, or
- *            stringLengths itself may be NULL if all of the strings are
- *            0-terminated. If non-NULL, the stringLengths array must have
- *            stringCount entries.
- * @param stringCount
- *            the number of entries in strings[], and the number of entries
- *            in the stringLengths array if it is not NULL. Must be >= 0.
- * @param result
- *            A pointer to a buffer to receive the formatted list.
- * @param resultCapacity
- *            The maximum size of result.
- * @param status
- *            A pointer to a standard ICU UErrorCode (input/output parameter).
- *            Its input value must pass the U_SUCCESS() test, or else the
- *            function returns immediately. The caller should check its output
- *            value with U_FAILURE(), or use with function chaining (see User
- *            Guide for details).
- * @return
- *            The total buffer size needed; if greater than resultLength, the
- *            output was truncated. May be <=0 if unable to determine the
- *            total buffer size needed (e.g. for illegal arguments).
- * @stable ICU 55
- */
-U_CAPI int32_t U_EXPORT2
-ulistfmt_format(const UListFormatter* listfmt,
-                const UChar* const strings[],
-                const int32_t *    stringLengths,
-                int32_t            stringCount,
-                UChar*             result,
-                int32_t            resultCapacity,
-                UErrorCode*        status);
-
-#endif /* #if !UCONFIG_NO_FORMATTING */
-
-#endif
index 2bcaaf4050a696f4c24f7d895656a4691f031770..0205da62eb4e1add9d6f4d33894f1af509bc1fd0 100644 (file)
  * May result in an error if it applied to something not an override.
  * @internal
  */
+#ifndef U_OVERRIDE
+#define U_OVERRIDE override
+#endif
 
 /**
  * \def U_FINAL
  * May result in an error if subclasses attempt to override.
  * @internal
  */
-
-#if U_CPLUSPLUS_VERSION >= 11
-/* C++11 */
-#ifndef U_OVERRIDE
-#define U_OVERRIDE override
-#endif
-#ifndef U_FINAL
+#if !defined(U_FINAL) || defined(U_IN_DOXYGEN)
 #define U_FINAL final
 #endif
-#else
-/* not C++11 - define to nothing */
-#ifndef U_OVERRIDE
-#define U_OVERRIDE
-#endif
-#ifndef U_FINAL
-#define U_FINAL
-#endif
-#endif
+
 
 /*==========================================================================*/
 /* limits for int32_t etc., like in POSIX inttypes.h                        */
@@ -318,7 +307,7 @@ typedef int8_t UBool;
  * UChar is configurable by defining the macro UCHAR_TYPE
  * on the preprocessor or compiler command line:
  * -DUCHAR_TYPE=uint16_t or -DUCHAR_TYPE=wchar_t (if U_SIZEOF_WCHAR_T==2) etc.
- * (The UCHAR_TYPE can also be #defined earlier in this file, for outside the ICU library code.)
+ * (The UCHAR_TYPE can also be \#defined earlier in this file, for outside the ICU library code.)
  * This is for transitional use from application code that uses uint16_t or wchar_t for UTF-16.
  *
  * The default is UChar=char16_t.
diff --git a/source/common/unicode/umutablecptrie.h b/source/common/unicode/umutablecptrie.h
new file mode 100644 (file)
index 0000000..e75191a
--- /dev/null
@@ -0,0 +1,241 @@
+// © 2017 and later: Unicode, Inc. and others.
+// License & terms of use: http://www.unicode.org/copyright.html
+
+// umutablecptrie.h (split out of ucptrie.h)
+// created: 2018jan24 Markus W. Scherer
+
+#ifndef __UMUTABLECPTRIE_H__
+#define __UMUTABLECPTRIE_H__
+
+#include "unicode/utypes.h"
+
+#ifndef U_HIDE_DRAFT_API
+
+#include "unicode/localpointer.h"
+#include "unicode/ucpmap.h"
+#include "unicode/ucptrie.h"
+#include "unicode/utf8.h"
+
+U_CDECL_BEGIN
+
+/**
+ * \file
+ *
+ * This file defines a mutable Unicode code point trie.
+ *
+ * @see UCPTrie
+ * @see UMutableCPTrie
+ */
+
+/**
+ * Mutable Unicode code point trie.
+ * Fast map from Unicode code points (U+0000..U+10FFFF) to 32-bit integer values.
+ * For details see http://site.icu-project.org/design/struct/utrie
+ *
+ * Setting values (especially ranges) and lookup is fast.
+ * The mutable trie is only somewhat space-efficient.
+ * It builds a compacted, immutable UCPTrie.
+ *
+ * This trie can be modified while iterating over its contents.
+ * For example, it is possible to merge its values with those from another
+ * set of ranges (e.g., another mutable or immutable trie):
+ * Iterate over those source ranges; for each of them iterate over this trie;
+ * add the source value into the value of each trie range.
+ *
+ * @see UCPTrie
+ * @see umutablecptrie_buildImmutable
+ * @draft ICU 63
+ */
+typedef struct UMutableCPTrie UMutableCPTrie;
+
+/**
+ * Creates a mutable trie that initially maps each Unicode code point to the same value.
+ * It uses 32-bit data values until umutablecptrie_buildImmutable() is called.
+ * umutablecptrie_buildImmutable() takes a valueWidth parameter which
+ * determines the number of bits in the data value in the resulting UCPTrie.
+ * You must umutablecptrie_close() the trie once you are done using it.
+ *
+ * @param initialValue the initial value that is set for all code points
+ * @param errorValue the value for out-of-range code points and ill-formed UTF-8/16
+ * @param pErrorCode an in/out ICU UErrorCode
+ * @return the trie
+ * @draft ICU 63
+ */
+U_CAPI UMutableCPTrie * U_EXPORT2
+umutablecptrie_open(uint32_t initialValue, uint32_t errorValue, UErrorCode *pErrorCode);
+
+/**
+ * Clones a mutable trie.
+ * You must umutablecptrie_close() the clone once you are done using it.
+ *
+ * @param other the trie to clone
+ * @param pErrorCode an in/out ICU UErrorCode
+ * @return the trie clone
+ * @draft ICU 63
+ */
+U_CAPI UMutableCPTrie * U_EXPORT2
+umutablecptrie_clone(const UMutableCPTrie *other, UErrorCode *pErrorCode);
+
+/**
+ * Closes a mutable trie and releases associated memory.
+ *
+ * @param trie the trie
+ * @draft ICU 63
+ */
+U_CAPI void U_EXPORT2
+umutablecptrie_close(UMutableCPTrie *trie);
+
+#if U_SHOW_CPLUSPLUS_API
+
+U_NAMESPACE_BEGIN
+
+/**
+ * \class LocalUMutableCPTriePointer
+ * "Smart pointer" class, closes a UMutableCPTrie via umutablecptrie_close().
+ * For most methods see the LocalPointerBase base class.
+ *
+ * @see LocalPointerBase
+ * @see LocalPointer
+ * @draft ICU 63
+ */
+U_DEFINE_LOCAL_OPEN_POINTER(LocalUMutableCPTriePointer, UMutableCPTrie, umutablecptrie_close);
+
+U_NAMESPACE_END
+
+#endif
+
+/**
+ * Creates a mutable trie with the same contents as the UCPMap.
+ * You must umutablecptrie_close() the mutable trie once you are done using it.
+ *
+ * @param map the source map
+ * @param pErrorCode an in/out ICU UErrorCode
+ * @return the mutable trie
+ * @draft ICU 63
+ */
+U_CAPI UMutableCPTrie * U_EXPORT2
+umutablecptrie_fromUCPMap(const UCPMap *map, UErrorCode *pErrorCode);
+
+/**
+ * Creates a mutable trie with the same contents as the immutable one.
+ * You must umutablecptrie_close() the mutable trie once you are done using it.
+ *
+ * @param trie the immutable trie
+ * @param pErrorCode an in/out ICU UErrorCode
+ * @return the mutable trie
+ * @draft ICU 63
+ */
+U_CAPI UMutableCPTrie * U_EXPORT2
+umutablecptrie_fromUCPTrie(const UCPTrie *trie, UErrorCode *pErrorCode);
+
+/**
+ * Returns the value for a code point as stored in the trie.
+ *
+ * @param trie the trie
+ * @param c the code point
+ * @return the value
+ * @draft ICU 63
+ */
+U_CAPI uint32_t U_EXPORT2
+umutablecptrie_get(const UMutableCPTrie *trie, UChar32 c);
+
+/**
+ * Returns the last code point such that all those from start to there have the same value.
+ * Can be used to efficiently iterate over all same-value ranges in a trie.
+ * (This is normally faster than iterating over code points and get()ting each value,
+ * but much slower than a data structure that stores ranges directly.)
+ *
+ * The trie can be modified between calls to this function.
+ *
+ * If the UCPMapValueFilter function pointer is not NULL, then
+ * the value to be delivered is passed through that function, and the return value is the end
+ * of the range where all values are modified to the same actual value.
+ * The value is unchanged if that function pointer is NULL.
+ *
+ * See the same-signature ucptrie_getRange() for a code sample.
+ *
+ * @param trie the trie
+ * @param start range start
+ * @param option defines whether surrogates are treated normally,
+ *               or as having the surrogateValue; usually UCPMAP_RANGE_NORMAL
+ * @param surrogateValue value for surrogates; ignored if option==UCPMAP_RANGE_NORMAL
+ * @param filter a pointer to a function that may modify the trie data value,
+ *     or NULL if the values from the trie are to be used unmodified
+ * @param context an opaque pointer that is passed on to the filter function
+ * @param pValue if not NULL, receives the value that every code point start..end has;
+ *     may have been modified by filter(context, trie value)
+ *     if that function pointer is not NULL
+ * @return the range end code point, or -1 if start is not a valid code point
+ * @draft ICU 63
+ */
+U_CAPI UChar32 U_EXPORT2
+umutablecptrie_getRange(const UMutableCPTrie *trie, UChar32 start,
+                        UCPMapRangeOption option, uint32_t surrogateValue,
+                        UCPMapValueFilter *filter, const void *context, uint32_t *pValue);
+
+/**
+ * Sets a value for a code point.
+ *
+ * @param trie the trie
+ * @param c the code point
+ * @param value the value
+ * @param pErrorCode an in/out ICU UErrorCode
+ * @draft ICU 63
+ */
+U_CAPI void U_EXPORT2
+umutablecptrie_set(UMutableCPTrie *trie, UChar32 c, uint32_t value, UErrorCode *pErrorCode);
+
+/**
+ * Sets a value for each code point [start..end].
+ * Faster and more space-efficient than setting the value for each code point separately.
+ *
+ * @param trie the trie
+ * @param start the first code point to get the value
+ * @param end the last code point to get the value (inclusive)
+ * @param value the value
+ * @param pErrorCode an in/out ICU UErrorCode
+ * @draft ICU 63
+ */
+U_CAPI void U_EXPORT2
+umutablecptrie_setRange(UMutableCPTrie *trie,
+                        UChar32 start, UChar32 end,
+                        uint32_t value, UErrorCode *pErrorCode);
+
+/**
+ * Compacts the data and builds an immutable UCPTrie according to the parameters.
+ * After this, the mutable trie will be empty.
+ *
+ * The mutable trie stores 32-bit values until buildImmutable() is called.
+ * If values shorter than 32 bits are to be stored in the immutable trie,
+ * then the upper bits are discarded.
+ * For example, when the mutable trie contains values 0x81, -0x7f, and 0xa581,
+ * and the value width is 8 bits, then each of these is stored as 0x81
+ * and the immutable trie will return that as an unsigned value.
+ * (Some implementations may want to make productive temporary use of the upper bits
+ * until buildImmutable() discards them.)
+ *
+ * Not every possible set of mappings can be built into a UCPTrie,
+ * because of limitations resulting from speed and space optimizations.
+ * Every Unicode assigned character can be mapped to a unique value.
+ * Typical data yields data structures far smaller than the limitations.
+ *
+ * It is possible to construct extremely unusual mappings that exceed the data structure limits.
+ * In such a case this function will fail with a U_INDEX_OUTOFBOUNDS_ERROR.
+ *
+ * @param trie the trie trie
+ * @param type selects the trie type
+ * @param valueWidth selects the number of bits in a trie data value; if smaller than 32 bits,
+ *                   then the values stored in the trie will be truncated first
+ * @param pErrorCode an in/out ICU UErrorCode
+ *
+ * @see umutablecptrie_fromUCPTrie
+ * @draft ICU 63
+ */
+U_CAPI UCPTrie * U_EXPORT2
+umutablecptrie_buildImmutable(UMutableCPTrie *trie, UCPTrieType type, UCPTrieValueWidth valueWidth,
+                              UErrorCode *pErrorCode);
+
+U_CDECL_END
+
+#endif  // U_HIDE_DRAFT_API
+#endif
index ed9a3eb72ff3aea0b49cd36e6c755a89c967e6b2..0abc754240290a8ffd6c18c20b345395b13d7f68 100644 (file)
@@ -13,6 +13,7 @@
 #ifndef UNICODESET_H
 #define UNICODESET_H
 
+#include "unicode/ucpmap.h"
 #include "unicode/unifilt.h"
 #include "unicode/unistr.h"
 #include "unicode/uset.h"
@@ -25,9 +26,8 @@
 U_NAMESPACE_BEGIN
 
 // Forward Declarations.
-void U_CALLCONV UnicodeSet_initInclusion(int32_t src, UErrorCode &status); /**< @internal */
-
 class BMPSet;
+class CharacterProperties;
 class ParsePosition;
 class RBBIRuleScanner;
 class SymbolTable;
@@ -584,9 +584,8 @@ public:
     //----------------------------------------------------------------
 
     /**
-     * Make this object represent the range <code>start - end</code>.
-     * If <code>end > start</code> then this object is set to an
-     * an empty range.
+     * Make this object represent the range `start - end`.
+     * If `end > start` then this object is set to an empty range.
      * A frozen set will not be modified.
      *
      * @param start first character in the set, inclusive
@@ -1506,6 +1505,7 @@ private:
     //----------------------------------------------------------------
 
     UnicodeSet(const UnicodeSet& o, UBool /* asThawed */);
+    UnicodeSet& copyFrom(const UnicodeSet& o, UBool asThawed);
 
     //----------------------------------------------------------------
     // Implementation: Pattern parsing
@@ -1614,7 +1614,7 @@ private:
                               UnicodeString& rebuiltPat,
                               UErrorCode& ec);
 
-    friend void U_CALLCONV UnicodeSet_initInclusion(int32_t src, UErrorCode &status);
+    friend class CharacterProperties;
     static const UnicodeSet* getInclusions(int32_t src, UErrorCode &status);
 
     /**
@@ -1634,9 +1634,15 @@ private:
      */
     void applyFilter(Filter filter,
                      void* context,
-                     int32_t src,
+                     const UnicodeSet* inclusions,
                      UErrorCode &status);
 
+#ifndef U_HIDE_DRAFT_API   // Skipped: ucpmap.h is draft only.
+    void applyIntPropertyValue(const UCPMap *map,
+                               UCPMapValueFilter *filter, const void *context,
+                               UErrorCode &errorCode);
+#endif  /* U_HIDE_DRAFT_API */
+
     /**
      * Set the new pattern to cache.
      */
index b84f40bd449cede203809005134905007b98f8bb..bf954b5f1d82321e0cdce7932b632413de54f865 100644 (file)
@@ -243,6 +243,9 @@ class UnicodeStringAppendable;  // unicode/appendable.h
  * than other ICU APIs. In particular:
  * - If indexes are out of bounds for a UnicodeString object
  *   (<0 or >length()) then they are "pinned" to the nearest boundary.
+ * - If the buffer passed to an insert/append/replace operation is owned by the
+ *   target object, e.g., calling str.append(str), an extra copy may take place
+ *   to ensure safety.
  * - If primitive string pointer values (e.g., const char16_t * or char *)
  *   for input strings are NULL, then those input string parameters are treated
  *   as if they pointed to an empty string.
index 9782f272f6d7045a5c1c668468c73a62d3160162..c42c720cc71041d5bf2c03f3797527c5546eae80 100644 (file)
@@ -27,7 +27,6 @@
  */
 
 /**
- * @{
  * \def U_NO_THROW
  *         Define this to define the throw() specification so
  *                 certain functions do not throw any exceptions
@@ -44,8 +43,6 @@
 #define U_NO_THROW throw()
 #endif
 
-/** @} */
-
 /*===========================================================================*/
 /* UClassID-based RTTI */
 /*===========================================================================*/
index 4175e527f404a70c57b32b41e63ce0b1a6aa26d8..5812173e39cfd277c5cbdffbbeb5a065d2961c5f 100644 (file)
@@ -33,6 +33,9 @@
 
 #if !U_DISABLE_RENAMING
 
+// Disable Renaming for Visual Studio's IntelliSense feature, so that 'Go-to-Definition' (F12) will work.
+#if !(defined(_MSC_VER) && defined(__INTELLISENSE__))
+
 /* We need the U_ICU_ENTRY_POINT_RENAME definition. There's a default one in unicode/uvernum.h we can use, but we will give
    the platform a chance to define it first.
    Normally (if utypes.h or umachine.h was included first) this will not be necessary as it will already be defined.
 #define _UTF7Data U_ICU_ENTRY_POINT_RENAME(_UTF7Data)
 #define _UTF8Data U_ICU_ENTRY_POINT_RENAME(_UTF8Data)
 #define allowedHourFormatsCleanup U_ICU_ENTRY_POINT_RENAME(allowedHourFormatsCleanup)
+#define checkImpl U_ICU_ENTRY_POINT_RENAME(checkImpl)
 #define cmemory_cleanup U_ICU_ENTRY_POINT_RENAME(cmemory_cleanup)
 #define dayPeriodRulesCleanup U_ICU_ENTRY_POINT_RENAME(dayPeriodRulesCleanup)
 #define deleteAllowedHourFormats U_ICU_ENTRY_POINT_RENAME(deleteAllowedHourFormats)
 #define u_fstropen U_ICU_ENTRY_POINT_RENAME(u_fstropen)
 #define u_fungetc U_ICU_ENTRY_POINT_RENAME(u_fungetc)
 #define u_getBidiPairedBracket U_ICU_ENTRY_POINT_RENAME(u_getBidiPairedBracket)
+#define u_getBinaryPropertySet U_ICU_ENTRY_POINT_RENAME(u_getBinaryPropertySet)
 #define u_getCombiningClass U_ICU_ENTRY_POINT_RENAME(u_getCombiningClass)
 #define u_getDataDirectory U_ICU_ENTRY_POINT_RENAME(u_getDataDirectory)
 #define u_getDataVersion U_ICU_ENTRY_POINT_RENAME(u_getDataVersion)
 #define u_getDefaultConverter U_ICU_ENTRY_POINT_RENAME(u_getDefaultConverter)
 #define u_getFC_NFKC_Closure U_ICU_ENTRY_POINT_RENAME(u_getFC_NFKC_Closure)
 #define u_getISOComment U_ICU_ENTRY_POINT_RENAME(u_getISOComment)
+#define u_getIntPropertyMap U_ICU_ENTRY_POINT_RENAME(u_getIntPropertyMap)
 #define u_getIntPropertyMaxValue U_ICU_ENTRY_POINT_RENAME(u_getIntPropertyMaxValue)
 #define u_getIntPropertyMinValue U_ICU_ENTRY_POINT_RENAME(u_getIntPropertyMinValue)
 #define u_getIntPropertyValue U_ICU_ENTRY_POINT_RENAME(u_getIntPropertyValue)
 #define ucol_swap U_ICU_ENTRY_POINT_RENAME(ucol_swap)
 #define ucol_swapInverseUCA U_ICU_ENTRY_POINT_RENAME(ucol_swapInverseUCA)
 #define ucol_tertiaryOrder U_ICU_ENTRY_POINT_RENAME(ucol_tertiaryOrder)
+#define ucpmap_get U_ICU_ENTRY_POINT_RENAME(ucpmap_get)
+#define ucpmap_getRange U_ICU_ENTRY_POINT_RENAME(ucpmap_getRange)
+#define ucptrie_close U_ICU_ENTRY_POINT_RENAME(ucptrie_close)
+#define ucptrie_get U_ICU_ENTRY_POINT_RENAME(ucptrie_get)
+#define ucptrie_getRange U_ICU_ENTRY_POINT_RENAME(ucptrie_getRange)
+#define ucptrie_getType U_ICU_ENTRY_POINT_RENAME(ucptrie_getType)
+#define ucptrie_getValueWidth U_ICU_ENTRY_POINT_RENAME(ucptrie_getValueWidth)
+#define ucptrie_internalGetRange U_ICU_ENTRY_POINT_RENAME(ucptrie_internalGetRange)
+#define ucptrie_internalSmallIndex U_ICU_ENTRY_POINT_RENAME(ucptrie_internalSmallIndex)
+#define ucptrie_internalSmallU8Index U_ICU_ENTRY_POINT_RENAME(ucptrie_internalSmallU8Index)
+#define ucptrie_internalU8PrevIndex U_ICU_ENTRY_POINT_RENAME(ucptrie_internalU8PrevIndex)
+#define ucptrie_openFromBinary U_ICU_ENTRY_POINT_RENAME(ucptrie_openFromBinary)
+#define ucptrie_swap U_ICU_ENTRY_POINT_RENAME(ucptrie_swap)
+#define ucptrie_toBinary U_ICU_ENTRY_POINT_RENAME(ucptrie_toBinary)
 #define ucsdet_close U_ICU_ENTRY_POINT_RENAME(ucsdet_close)
 #define ucsdet_detect U_ICU_ENTRY_POINT_RENAME(ucsdet_detect)
 #define ucsdet_detectAll U_ICU_ENTRY_POINT_RENAME(ucsdet_detectAll)
 #define ulocdata_getPaperSize U_ICU_ENTRY_POINT_RENAME(ulocdata_getPaperSize)
 #define ulocdata_open U_ICU_ENTRY_POINT_RENAME(ulocdata_open)
 #define ulocdata_setNoSubstitute U_ICU_ENTRY_POINT_RENAME(ulocdata_setNoSubstitute)
+#define ulocimp_forLanguageTag U_ICU_ENTRY_POINT_RENAME(ulocimp_forLanguageTag)
 #define ulocimp_getCountry U_ICU_ENTRY_POINT_RENAME(ulocimp_getCountry)
 #define ulocimp_getLanguage U_ICU_ENTRY_POINT_RENAME(ulocimp_getLanguage)
 #define ulocimp_getRegionForSupplementalData U_ICU_ENTRY_POINT_RENAME(ulocimp_getRegionForSupplementalData)
 #define umtx_condWait U_ICU_ENTRY_POINT_RENAME(umtx_condWait)
 #define umtx_lock U_ICU_ENTRY_POINT_RENAME(umtx_lock)
 #define umtx_unlock U_ICU_ENTRY_POINT_RENAME(umtx_unlock)
+#define umutablecptrie_buildImmutable U_ICU_ENTRY_POINT_RENAME(umutablecptrie_buildImmutable)
+#define umutablecptrie_clone U_ICU_ENTRY_POINT_RENAME(umutablecptrie_clone)
+#define umutablecptrie_close U_ICU_ENTRY_POINT_RENAME(umutablecptrie_close)
+#define umutablecptrie_fromUCPMap U_ICU_ENTRY_POINT_RENAME(umutablecptrie_fromUCPMap)
+#define umutablecptrie_fromUCPTrie U_ICU_ENTRY_POINT_RENAME(umutablecptrie_fromUCPTrie)
+#define umutablecptrie_get U_ICU_ENTRY_POINT_RENAME(umutablecptrie_get)
+#define umutablecptrie_getRange U_ICU_ENTRY_POINT_RENAME(umutablecptrie_getRange)
+#define umutablecptrie_open U_ICU_ENTRY_POINT_RENAME(umutablecptrie_open)
+#define umutablecptrie_set U_ICU_ENTRY_POINT_RENAME(umutablecptrie_set)
+#define umutablecptrie_setRange U_ICU_ENTRY_POINT_RENAME(umutablecptrie_setRange)
 #define uniset_getUnicode32Instance U_ICU_ENTRY_POINT_RENAME(uniset_getUnicode32Instance)
 #define unorm2_append U_ICU_ENTRY_POINT_RENAME(unorm2_append)
 #define unorm2_close U_ICU_ENTRY_POINT_RENAME(unorm2_close)
 #define uplug_setPlugLevel U_ICU_ENTRY_POINT_RENAME(uplug_setPlugLevel)
 #define uplug_setPlugName U_ICU_ENTRY_POINT_RENAME(uplug_setPlugName)
 #define uplug_setPlugNoUnload U_ICU_ENTRY_POINT_RENAME(uplug_setPlugNoUnload)
+#define uprops_addPropertyStarts U_ICU_ENTRY_POINT_RENAME(uprops_addPropertyStarts)
 #define uprops_getSource U_ICU_ENTRY_POINT_RENAME(uprops_getSource)
 #define upropsvec_addPropertyStarts U_ICU_ENTRY_POINT_RENAME(upropsvec_addPropertyStarts)
 #define uprv_add32_overflow U_ICU_ENTRY_POINT_RENAME(uprv_add32_overflow)
 #define uprv_convertToPosix U_ICU_ENTRY_POINT_RENAME(uprv_convertToPosix)
 #define uprv_copyAscii U_ICU_ENTRY_POINT_RENAME(uprv_copyAscii)
 #define uprv_copyEbcdic U_ICU_ENTRY_POINT_RENAME(uprv_copyEbcdic)
+#define uprv_currencyLeads U_ICU_ENTRY_POINT_RENAME(uprv_currencyLeads)
 #define uprv_decContextClearStatus U_ICU_ENTRY_POINT_RENAME(uprv_decContextClearStatus)
 #define uprv_decContextDefault U_ICU_ENTRY_POINT_RENAME(uprv_decContextDefault)
 #define uprv_decContextGetRounding U_ICU_ENTRY_POINT_RENAME(uprv_decContextGetRounding)
 #define uprv_fmod U_ICU_ENTRY_POINT_RENAME(uprv_fmod)
 #define uprv_free U_ICU_ENTRY_POINT_RENAME(uprv_free)
 #define uprv_getCharNameCharacters U_ICU_ENTRY_POINT_RENAME(uprv_getCharNameCharacters)
-#define uprv_getDefaultCodepage U_ICU_ENTRY_POINT_RENAME(uprv_getDefaultCodepage)
 #define uprv_getDefaultLocaleID U_ICU_ENTRY_POINT_RENAME(uprv_getDefaultLocaleID)
 #define uprv_getInfinity U_ICU_ENTRY_POINT_RENAME(uprv_getInfinity)
 #define uprv_getMaxCharNameLength U_ICU_ENTRY_POINT_RENAME(uprv_getMaxCharNameLength)
 #define utrie2_fromUTrie U_ICU_ENTRY_POINT_RENAME(utrie2_fromUTrie)
 #define utrie2_get32 U_ICU_ENTRY_POINT_RENAME(utrie2_get32)
 #define utrie2_get32FromLeadSurrogateCodeUnit U_ICU_ENTRY_POINT_RENAME(utrie2_get32FromLeadSurrogateCodeUnit)
-#define utrie2_getVersion U_ICU_ENTRY_POINT_RENAME(utrie2_getVersion)
 #define utrie2_internalU8NextIndex U_ICU_ENTRY_POINT_RENAME(utrie2_internalU8NextIndex)
 #define utrie2_internalU8PrevIndex U_ICU_ENTRY_POINT_RENAME(utrie2_internalU8PrevIndex)
 #define utrie2_isFrozen U_ICU_ENTRY_POINT_RENAME(utrie2_isFrozen)
 #define utrie2_set32ForLeadSurrogateCodeUnit U_ICU_ENTRY_POINT_RENAME(utrie2_set32ForLeadSurrogateCodeUnit)
 #define utrie2_setRange32 U_ICU_ENTRY_POINT_RENAME(utrie2_setRange32)
 #define utrie2_swap U_ICU_ENTRY_POINT_RENAME(utrie2_swap)
-#define utrie2_swapAnyVersion U_ICU_ENTRY_POINT_RENAME(utrie2_swapAnyVersion)
 #define utrie_clone U_ICU_ENTRY_POINT_RENAME(utrie_clone)
 #define utrie_close U_ICU_ENTRY_POINT_RENAME(utrie_close)
 #define utrie_defaultGetFoldingOffset U_ICU_ENTRY_POINT_RENAME(utrie_defaultGetFoldingOffset)
 #define utrie_set32 U_ICU_ENTRY_POINT_RENAME(utrie_set32)
 #define utrie_setRange32 U_ICU_ENTRY_POINT_RENAME(utrie_setRange32)
 #define utrie_swap U_ICU_ENTRY_POINT_RENAME(utrie_swap)
+#define utrie_swapAnyVersion U_ICU_ENTRY_POINT_RENAME(utrie_swapAnyVersion)
 #define utrie_unserialize U_ICU_ENTRY_POINT_RENAME(utrie_unserialize)
 #define utrie_unserializeDummy U_ICU_ENTRY_POINT_RENAME(utrie_unserializeDummy)
 #define vzone_clone U_ICU_ENTRY_POINT_RENAME(vzone_clone)
 #define ztrans_setTime U_ICU_ENTRY_POINT_RENAME(ztrans_setTime)
 #define ztrans_setTo U_ICU_ENTRY_POINT_RENAME(ztrans_setTo)
 
-#endif
+#endif /* !(defined(_MSC_VER) && defined(__INTELLISENSE__)) */
+#endif /* U_DISABLE_RENAMING */
+#endif /* URENAME_H */
 
-#endif
index 59f46507d548aa48658f8478af79d5fd43a9f2cf..18482c10e738443f46eeaf47df65381dc7d8abb5 100644 (file)
 #include "unicode/uchar.h"
 #include "unicode/localpointer.h"
 
-#ifndef UCNV_H
-struct USet;
+#ifndef USET_DEFINED
+
+#ifndef U_IN_DOXYGEN
+#define USET_DEFINED
+#endif
 /**
- * A UnicodeSet.  Use the uset_* API to manipulate.  Create with
+ * USet is the C API type corresponding to C++ class UnicodeSet.
+ * Use the uset_* API to manipulate.  Create with
  * uset_open*, and destroy with uset_close.
  * @stable ICU 2.4
  */
index f9fc41a1db6b97e96a682ca755508f9d56d3175c..245b766545ab25e025b2dba0117aefd29bdf3903 100644 (file)
@@ -895,35 +895,32 @@ u_memrchr32(const UChar *s, UChar32 c, int32_t count);
  * parameters.
  * The string parameter must be a C string literal.
  * The length of the string, not including the terminating
- * <code>NUL</code>, must be specified as a constant.
+ * `NUL`, must be specified as a constant.
  * The U_STRING_DECL macro should be invoked exactly once for one
  * such string variable before it is used.
  *
  * Usage:
- * <pre>
- *    U_STRING_DECL(ustringVar1, "Quick-Fox 2", 11);
- *    U_STRING_DECL(ustringVar2, "jumps 5%", 8);
- *    static UBool didInit=FALSE;
- * 
- *    int32_t function() {
- *        if(!didInit) {
- *            U_STRING_INIT(ustringVar1, "Quick-Fox 2", 11);
- *            U_STRING_INIT(ustringVar2, "jumps 5%", 8);
- *            didInit=TRUE;
- *        }
- *        return u_strcmp(ustringVar1, ustringVar2);
- *    }
- * </pre>
+ *
+ *     U_STRING_DECL(ustringVar1, "Quick-Fox 2", 11);
+ *     U_STRING_DECL(ustringVar2, "jumps 5%", 8);
+ *     static UBool didInit=FALSE;
+ *
+ *     int32_t function() {
+ *         if(!didInit) {
+ *             U_STRING_INIT(ustringVar1, "Quick-Fox 2", 11);
+ *             U_STRING_INIT(ustringVar2, "jumps 5%", 8);
+ *             didInit=TRUE;
+ *         }
+ *         return u_strcmp(ustringVar1, ustringVar2);
+ *     }
  * 
- * Note that the macros will NOT consistently work if their argument is another <code>#define</code>. 
- *  The following will not work on all platforms, don't use it.
+ * Note that the macros will NOT consistently work if their argument is another #`define`.
+ * The following will not work on all platforms, don't use it.
  * 
- * <pre>
  *     #define GLUCK "Mr. Gluck"
  *     U_STRING_DECL(var, GLUCK, 9)
  *     U_STRING_INIT(var, GLUCK, 9)
- * </pre>
- * 
+ *
  * Instead, use the string literal "Mr. Gluck"  as the argument to both macro
  * calls.
  *
index 35fd09861143cdfb1fb0002ade64e1a734927498..aca51b56a79dcfb7e4cb0641a37599c71b575577 100644 (file)
     } \
 }
 
-#ifndef U_HIDE_DRAFT_API
-
 /**
  * Get a code point from a string at a random-access offset,
  * without changing the offset.
  * @param length string length
  * @param c output UChar32 variable
  * @see U16_GET_UNSAFE
- * @draft ICU 60
+ * @stable ICU 60
  */
 #define U16_GET_OR_FFFD(s, start, i, length, c) { \
     (c)=(s)[i]; \
     } \
 }
 
-#endif  // U_HIDE_DRAFT_API
-
 /* definitions with forward iteration --------------------------------------- */
 
 /**
     } \
 }
 
-#ifndef U_HIDE_DRAFT_API
-
 /**
  * Get a code point from a string at a code point boundary offset,
  * and advance the offset to the next code point boundary.
  * @param length string length
  * @param c output UChar32 variable
  * @see U16_NEXT_UNSAFE
- * @draft ICU 60
+ * @stable ICU 60
  */
 #define U16_NEXT_OR_FFFD(s, i, length, c) { \
     (c)=(s)[(i)++]; \
     } \
 }
 
-#endif  // U_HIDE_DRAFT_API
-
 /**
  * Append a code point to a string, overwriting 1 or 2 code units.
  * The offset points to the current end of the string contents
     } \
 }
 
-#ifndef U_HIDE_DRAFT_API
-
 /**
  * Move the string offset from one code point boundary to the previous one
  * and get the code point between them.
  * @param i string offset, must be start<i
  * @param c output UChar32 variable
  * @see U16_PREV_UNSAFE
- * @draft ICU 60
+ * @stable ICU 60
  */
 #define U16_PREV_OR_FFFD(s, start, i, c) { \
     (c)=(s)[--(i)]; \
     } \
 }
 
-#endif  // U_HIDE_DRAFT_API
-
 /**
  * Move the string offset from one code point boundary to the previous one.
  * (Pre-decrementing backward iteration.)
index bc5f77299e802072bc4233508266a532f37b04e5..2baf519f7fbd42c18ba3ac108edebff9bb15d71d 100644 (file)
@@ -290,6 +290,11 @@ typedef double UDate;
  * @stable ICU 3.4
  */
 
+#ifdef U_IN_DOXYGEN
+// This definition is required when generating the API docs.
+#define U_COMBINED_IMPLEMENTATION 1
+#endif
+
 #if defined(U_COMBINED_IMPLEMENTATION)
 #define U_DATA_API     U_EXPORT
 #define U_COMMON_API   U_EXPORT
index 2240661112c1adb8dbf882a95a40cec044568150..83d0b4ecd1c8a0d3f01b59102ce677457de82db8 100644 (file)
   *  by running the UNIX makefile target 'update-windows-makefiles' in icu/source.
   *
   *
+  * source/common/common_uwp.vcxproj
   * source/common/common.vcxproj - update 'Output file name' on the link tab so
   *                   that it contains the new major/minor combination
   * source/i18n/i18n.vcxproj - same as for the common.vcxproj
+  * source/i18n/i18n_uwp.vcxproj - same as for the common_uwp.vcxproj
   * source/layoutex/layoutex.vcproj - same
   * source/stubdata/stubdata.vcproj - same as for the common.vcxproj
   * source/io/io.vcproj - same as for the common.vcxproj
@@ -58,7 +60,7 @@
  *  This value will change in the subsequent releases of ICU
  *  @stable ICU 2.4
  */
-#define U_ICU_VERSION_MAJOR_NUM 62
+#define U_ICU_VERSION_MAJOR_NUM 63
 
 /** The current ICU minor version as an integer.
  *  This value will change in the subsequent releases of ICU
@@ -84,7 +86,7 @@
  *  This value will change in the subsequent releases of ICU
  *  @stable ICU 2.6
  */
-#define U_ICU_VERSION_SUFFIX _62
+#define U_ICU_VERSION_SUFFIX _63
 
 /**
  * \def U_DEF2_ICU_ENTRY_POINT_RENAME
  *  This value will change in the subsequent releases of ICU
  *  @stable ICU 2.4
  */
-#define U_ICU_VERSION "62.1"
+#define U_ICU_VERSION "63.1"
 
 /**
  * The current ICU library major version number as a string, for library name suffixes.
  *
  * @stable ICU 2.6
  */
-#define U_ICU_VERSION_SHORT "62"
+#define U_ICU_VERSION_SHORT "63"
 
 #ifndef U_HIDE_INTERNAL_API
 /** Data version in ICU4C.
  * @internal ICU 4.4 Internal Use Only
  **/
-#define U_ICU_DATA_VERSION "62.1"
+#define U_ICU_DATA_VERSION "63.1"
 #endif  /* U_HIDE_INTERNAL_API */
 
 /*===========================================================================
index f0f660ed06bb1939a4b57fa4d4cc753b1c0ff2c9..d33d8d2c01c0e510afdd5d53a9f7e53785a990a3 100644 (file)
@@ -251,7 +251,7 @@ UBool UnifiedCache::_flush(UBool all) const {
         if (all || _isEvictable(element)) {
             const SharedObject *sharedObject =
                     (const SharedObject *) element->value.pointer;
-            U_ASSERT(sharedObject->cachePtr = this);
+            U_ASSERT(sharedObject->cachePtr == this);
             uhash_removeElement(fHashtable, element);
             removeSoftRef(sharedObject);    // Deletes the sharedObject when softRefCount goes to zero.
             result = TRUE;
index fe5a157aa6bf51e0abde864b6caad3fe3c31fac2..e8378e0a223f2bfe805626b726392c6b829a37af 100644 (file)
@@ -152,6 +152,7 @@ UnicodeSet::UnicodeSet() :
     UErrorCode status = U_ZERO_ERROR;
     allocateStrings(status);
     if (U_FAILURE(status)) {
+        setToBogus(); // If memory allocation failed, set to bogus state.
         return;
     }
     list = (UChar32*) uprv_malloc(sizeof(UChar32) * capacity);
@@ -179,6 +180,7 @@ UnicodeSet::UnicodeSet(UChar32 start, UChar32 end) :
     UErrorCode status = U_ZERO_ERROR;
     allocateStrings(status);
     if (U_FAILURE(status)) {
+        setToBogus(); // If memory allocation failed, set to bogus state.
         return;
     }
     list = (UChar32*) uprv_malloc(sizeof(UChar32) * capacity);
@@ -206,6 +208,7 @@ UnicodeSet::UnicodeSet(const UnicodeSet& o) :
     UErrorCode status = U_ZERO_ERROR;
     allocateStrings(status);
     if (U_FAILURE(status)) {
+        setToBogus(); // If memory allocation failed, set to bogus state.
         return;
     }
     list = (UChar32*) uprv_malloc(sizeof(UChar32) * capacity);
@@ -230,6 +233,7 @@ UnicodeSet::UnicodeSet(const UnicodeSet& o, UBool /* asThawed */) :
     UErrorCode status = U_ZERO_ERROR;
     allocateStrings(status);
     if (U_FAILURE(status)) {
+        setToBogus(); // If memory allocation failed, set to bogus state.
         return;
     }
     list = (UChar32*) uprv_malloc(sizeof(UChar32) * capacity);
@@ -272,6 +276,10 @@ UnicodeSet::~UnicodeSet() {
  * Assigns this object to be a copy of another.
  */
 UnicodeSet& UnicodeSet::operator=(const UnicodeSet& o) {
+    return copyFrom(o, FALSE);
+}
+
+UnicodeSet& UnicodeSet::copyFrom(const UnicodeSet& o, UBool asThawed) {
     if (this == &o) {
         return *this;
     }
@@ -285,11 +293,12 @@ UnicodeSet& UnicodeSet::operator=(const UnicodeSet& o) {
     UErrorCode ec = U_ZERO_ERROR;
     ensureCapacity(o.len, ec);
     if (U_FAILURE(ec)) {
-        return *this; // There is no way to report this error :-(
+        // ensureCapacity will mark the UnicodeSet as Bogus if OOM failure happens.
+        return *this;
     }
     len = o.len;
     uprv_memcpy(list, o.list, (size_t)len*sizeof(UChar32));
-    if (o.bmpSet == NULL) {
+    if (o.bmpSet == NULL || asThawed) {
         bmpSet = NULL;
     } else {
         bmpSet = new BMPSet(*o.bmpSet, list, len);
@@ -304,7 +313,7 @@ UnicodeSet& UnicodeSet::operator=(const UnicodeSet& o) {
         setToBogus();
         return *this;
     }
-    if (o.stringSpan == NULL) {
+    if (o.stringSpan == NULL || asThawed) {
         stringSpan = NULL;
     } else {
         stringSpan = new UnicodeSetStringSpan(*o.stringSpan, *strings);
@@ -359,12 +368,12 @@ UBool UnicodeSet::operator==(const UnicodeSet& o) const {
  * @see Object#hashCode()
  */
 int32_t UnicodeSet::hashCode(void) const {
-    int32_t result = len;
+    uint32_t result = static_cast<uint32_t>(len);
     for (int32_t i = 0; i < len; ++i) {
-        result *= 1000003;
+        result *= 1000003u;
         result += list[i];
     }
-    return result;
+    return static_cast<int32_t>(result);
 }
 
 //----------------------------------------------------------------
@@ -912,7 +921,8 @@ UnicodeSet& UnicodeSet::add(UChar32 c) {
             UErrorCode status = U_ZERO_ERROR;
             ensureCapacity(len+1, status);
             if (U_FAILURE(status)) {
-                return *this; // There is no way to report this error :-(
+                // ensureCapacity will mark the object as Bogus if OOM failure happens.
+                return *this;
             }
             list[len++] = UNICODESET_HIGH;
         }
@@ -957,7 +967,8 @@ UnicodeSet& UnicodeSet::add(UChar32 c) {
         UErrorCode status = U_ZERO_ERROR;
         ensureCapacity(len+2, status);
         if (U_FAILURE(status)) {
-            return *this; // There is no way to report this error :-(
+            // ensureCapacity will mark the object as Bogus if OOM failure happens.
+            return *this;
         }
 
         //for (int32_t k=len-1; k>=i; --k) {
@@ -1654,12 +1665,13 @@ UBool UnicodeSet::allocateStrings(UErrorCode &status) {
 }
 
 void UnicodeSet::ensureCapacity(int32_t newLen, UErrorCode& ec) {
-    if (newLen <= capacity)
+    if (newLen <= capacity) {
         return;
+    }
     UChar32* temp = (UChar32*) uprv_realloc(list, sizeof(UChar32) * (newLen + GROW_EXTRA));
     if (temp == NULL) {
         ec = U_MEMORY_ALLOCATION_ERROR;
-        setToBogus();
+        setToBogus(); // set the object to bogus state if an OOM failure occurred.
         return;
     }
     list = temp;
index 6ae6e71289b6d8b40959f0059707fee4192870a1..6cfd80a705b8fcb4911b94ab29c44d6c315e7653 100644 (file)
@@ -36,8 +36,6 @@
 #include "uprops.h"
 #include "propname.h"
 #include "normalizer2impl.h"
-#include "ucase.h"
-#include "ubidi_props.h"
 #include "uinvchar.h"
 #include "uprops.h"
 #include "charstr.h"
@@ -98,47 +96,13 @@ static const char ASSIGNED[] = "Assigned"; // [:^Cn:]
 U_CDECL_BEGIN
 static UBool U_CALLCONV uset_cleanup();
 
-struct Inclusion {
-    UnicodeSet  *fSet;
-    UInitOnce    fInitOnce;
-};
-static Inclusion gInclusions[UPROPS_SRC_COUNT]; // cached getInclusions()
-
 static UnicodeSet *uni32Singleton;
 static icu::UInitOnce uni32InitOnce = U_INITONCE_INITIALIZER;
 
-//----------------------------------------------------------------
-// Inclusions list
-//----------------------------------------------------------------
-
-// USetAdder implementation
-// Does not use uset.h to reduce code dependencies
-static void U_CALLCONV
-_set_add(USet *set, UChar32 c) {
-    ((UnicodeSet *)set)->add(c);
-}
-
-static void U_CALLCONV
-_set_addRange(USet *set, UChar32 start, UChar32 end) {
-    ((UnicodeSet *)set)->add(start, end);
-}
-
-static void U_CALLCONV
-_set_addString(USet *set, const UChar *str, int32_t length) {
-    ((UnicodeSet *)set)->add(UnicodeString((UBool)(length<0), str, length));
-}
-
 /**
  * Cleanup function for UnicodeSet
  */
 static UBool U_CALLCONV uset_cleanup(void) {
-    for(int32_t i = UPROPS_SRC_NONE; i < UPROPS_SRC_COUNT; ++i) {
-        Inclusion &in = gInclusions[i];
-        delete in.fSet;
-        in.fSet = NULL;
-        in.fInitOnce.reset();
-    }
-
     delete uni32Singleton;
     uni32Singleton = NULL;
     uni32InitOnce.reset();
@@ -149,114 +113,6 @@ U_CDECL_END
 
 U_NAMESPACE_BEGIN
 
-/*
-Reduce excessive reallocation, and make it easier to detect initialization problems.
-Usually you don't see smaller sets than this for Unicode 5.0.
-*/
-#define DEFAULT_INCLUSION_CAPACITY 3072
-
-void U_CALLCONV UnicodeSet_initInclusion(int32_t src, UErrorCode &status) {
-    // This function is invoked only via umtx_initOnce().
-    // This function is a friend of class UnicodeSet.
-
-    U_ASSERT(src >=0 && src<UPROPS_SRC_COUNT);
-    UnicodeSet * &incl = gInclusions[src].fSet;
-    U_ASSERT(incl == NULL);
-
-    incl = new UnicodeSet();
-    if (incl == NULL) {
-        status = U_MEMORY_ALLOCATION_ERROR;
-        return;
-    }
-    USetAdder sa = {
-        (USet *)incl,
-        _set_add,
-        _set_addRange,
-        _set_addString,
-        NULL, // don't need remove()
-        NULL // don't need removeRange()
-    };
-
-    incl->ensureCapacity(DEFAULT_INCLUSION_CAPACITY, status);
-    switch(src) {
-    case UPROPS_SRC_CHAR:
-        uchar_addPropertyStarts(&sa, &status);
-        break;
-    case UPROPS_SRC_PROPSVEC:
-        upropsvec_addPropertyStarts(&sa, &status);
-        break;
-    case UPROPS_SRC_CHAR_AND_PROPSVEC:
-        uchar_addPropertyStarts(&sa, &status);
-        upropsvec_addPropertyStarts(&sa, &status);
-        break;
-#if !UCONFIG_NO_NORMALIZATION
-    case UPROPS_SRC_CASE_AND_NORM: {
-        const Normalizer2Impl *impl=Normalizer2Factory::getNFCImpl(status);
-        if(U_SUCCESS(status)) {
-            impl->addPropertyStarts(&sa, status);
-        }
-        ucase_addPropertyStarts(&sa, &status);
-        break;
-    }
-    case UPROPS_SRC_NFC: {
-        const Normalizer2Impl *impl=Normalizer2Factory::getNFCImpl(status);
-        if(U_SUCCESS(status)) {
-            impl->addPropertyStarts(&sa, status);
-        }
-        break;
-    }
-    case UPROPS_SRC_NFKC: {
-        const Normalizer2Impl *impl=Normalizer2Factory::getNFKCImpl(status);
-        if(U_SUCCESS(status)) {
-            impl->addPropertyStarts(&sa, status);
-        }
-        break;
-    }
-    case UPROPS_SRC_NFKC_CF: {
-        const Normalizer2Impl *impl=Normalizer2Factory::getNFKC_CFImpl(status);
-        if(U_SUCCESS(status)) {
-            impl->addPropertyStarts(&sa, status);
-        }
-        break;
-    }
-    case UPROPS_SRC_NFC_CANON_ITER: {
-        const Normalizer2Impl *impl=Normalizer2Factory::getNFCImpl(status);
-        if(U_SUCCESS(status)) {
-            impl->addCanonIterPropertyStarts(&sa, status);
-        }
-        break;
-    }
-#endif
-    case UPROPS_SRC_CASE:
-        ucase_addPropertyStarts(&sa, &status);
-        break;
-    case UPROPS_SRC_BIDI:
-        ubidi_addPropertyStarts(&sa, &status);
-        break;
-    default:
-        status = U_INTERNAL_PROGRAM_ERROR;
-        break;
-    }
-
-    if (U_FAILURE(status)) {
-        delete incl;
-        incl = NULL;
-        return;
-    }
-    // Compact for caching
-    incl->compact();
-    ucln_common_registerCleanup(UCLN_COMMON_USET, uset_cleanup);
-}
-
-
-
-const UnicodeSet* UnicodeSet::getInclusions(int32_t src, UErrorCode &status) {
-    U_ASSERT(src >=0 && src<UPROPS_SRC_COUNT);
-    Inclusion &i = gInclusions[src];
-    umtx_initOnce(i.fInitOnce, &UnicodeSet_initInclusion, src, status);
-    return i.fSet;
-}
-
 namespace {
 
 // Cache some sets for other services -------------------------------------- ***
@@ -857,11 +713,6 @@ static UBool numericValueFilter(UChar32 ch, void* context) {
     return u_getNumericValue(ch) == *(double*)context;
 }
 
-static UBool generalCategoryMaskFilter(UChar32 ch, void* context) {
-    int32_t value = *(int32_t*)context;
-    return (U_GET_GC_MASK((UChar32) ch) & value) != 0;
-}
-
 static UBool versionFilter(UChar32 ch, void* context) {
     static const UVersionInfo none = { 0, 0, 0, 0 };
     UVersionInfo v;
@@ -870,16 +721,6 @@ static UBool versionFilter(UChar32 ch, void* context) {
     return uprv_memcmp(&v, &none, sizeof(v)) > 0 && uprv_memcmp(&v, version, sizeof(v)) <= 0;
 }
 
-typedef struct {
-    UProperty prop;
-    int32_t value;
-} IntPropertyContext;
-
-static UBool intPropertyFilter(UChar32 ch, void* context) {
-    IntPropertyContext* c = (IntPropertyContext*)context;
-    return u_getIntPropertyValue((UChar32) ch, c->prop) == c->value;
-}
-
 static UBool scriptExtensionsFilter(UChar32 ch, void* context) {
     return uscript_hasScript(ch, *(UScriptCode*)context);
 }
@@ -891,7 +732,7 @@ static UBool scriptExtensionsFilter(UChar32 ch, void* context) {
  */
 void UnicodeSet::applyFilter(UnicodeSet::Filter filter,
                              void* context,
-                             int32_t src,
+                             const UnicodeSet* inclusions,
                              UErrorCode &status) {
     if (U_FAILURE(status)) return;
 
@@ -902,12 +743,8 @@ void UnicodeSet::applyFilter(UnicodeSet::Filter filter,
     // To improve performance, use an inclusions set which
     // encodes information about character ranges that are known
     // to have identical properties.
-    // getInclusions(src) contains exactly the first characters of
-    // same-value ranges for the given properties "source".
-    const UnicodeSet* inclusions = getInclusions(src, status);
-    if (U_FAILURE(status)) {
-        return;
-    }
+    // inclusions contains the first characters of
+    // same-value ranges for the given property.
 
     clear();
 
@@ -944,6 +781,43 @@ void UnicodeSet::applyFilter(UnicodeSet::Filter filter,
 
 namespace {
 
+/** Maps map values to 1 if the mask contains their value'th bit, all others to 0. */
+uint32_t U_CALLCONV generalCategoryMaskFilter(const void *context, uint32_t value) {
+    uint32_t mask = *(const uint32_t *)context;
+    value = U_MASK(value) & mask;
+    if (value != 0) { value = 1; }
+    return value;
+}
+
+/** Maps one map value to 1, all others to 0. */
+uint32_t U_CALLCONV intValueFilter(const void *context, uint32_t value) {
+    uint32_t v = *(const uint32_t *)context;
+    return value == v ? 1 : 0;
+}
+
+}  // namespace
+
+void UnicodeSet::applyIntPropertyValue(const UCPMap *map,
+                                       UCPMapValueFilter *filter, const void *context,
+                                       UErrorCode &errorCode) {
+    if (U_FAILURE(errorCode)) { return; }
+    clear();
+    UChar32 start = 0, end;
+    uint32_t value;
+    while ((end = ucpmap_getRange(map, start, UCPMAP_RANGE_NORMAL, 0,
+                                  filter, context, &value)) >= 0) {
+        if (value != 0) {
+            add(start, end);
+        }
+        start = end + 1;
+    }
+    if (isBogus()) {
+        errorCode = U_MEMORY_ALLOCATION_ERROR;
+    }
+}
+
+namespace {
+
 static UBool mungeCharName(char* dst, const char* src, int32_t dstCapacity) {
     /* Note: we use ' ' in compiler code page */
     int32_t j = 0;
@@ -971,16 +845,35 @@ static UBool mungeCharName(char* dst, const char* src, int32_t dstCapacity) {
 
 UnicodeSet&
 UnicodeSet::applyIntPropertyValue(UProperty prop, int32_t value, UErrorCode& ec) {
-    if (U_FAILURE(ec) || isFrozen()) return *this;
-
+    if (U_FAILURE(ec)) { return *this; }
+    // All of the following check isFrozen() before modifying this set.
     if (prop == UCHAR_GENERAL_CATEGORY_MASK) {
-        applyFilter(generalCategoryMaskFilter, &value, UPROPS_SRC_CHAR, ec);
+        const UCPMap *map = u_getIntPropertyMap(UCHAR_GENERAL_CATEGORY, &ec);
+        applyIntPropertyValue(map, generalCategoryMaskFilter, &value, ec);
     } else if (prop == UCHAR_SCRIPT_EXTENSIONS) {
+        const UnicodeSet* inclusions = CharacterProperties::getInclusionsForProperty(prop, ec);
         UScriptCode script = (UScriptCode)value;
-        applyFilter(scriptExtensionsFilter, &script, UPROPS_SRC_PROPSVEC, ec);
+        applyFilter(scriptExtensionsFilter, &script, inclusions, ec);
+    } else if (0 <= prop && prop < UCHAR_BINARY_LIMIT) {
+        if (value == 0 || value == 1) {
+            const USet *set = u_getBinaryPropertySet(prop, &ec);
+            if (U_FAILURE(ec)) { return *this; }
+            copyFrom(*UnicodeSet::fromUSet(set), TRUE);
+            if (value == 0) {
+                complement();
+            }
+        } else {
+            clear();
+        }
+    } else if (UCHAR_INT_START <= prop && prop < UCHAR_INT_LIMIT) {
+        const UCPMap *map = u_getIntPropertyMap(prop, &ec);
+        applyIntPropertyValue(map, intValueFilter, &value, ec);
     } else {
-        IntPropertyContext c = {prop, value};
-        applyFilter(intPropertyFilter, &c, uprops_getSource(prop), ec);
+        // This code used to always call getInclusions(property source)
+        // which sets an error for an unsupported property.
+        ec = U_ILLEGAL_ARGUMENT_ERROR;
+        // Otherwise we would just clear() this set because
+        // getIntPropertyValue(c, prop) returns 0 for all code points.
     }
     return *this;
 }
@@ -1030,13 +923,13 @@ UnicodeSet::applyPropertyAlias(const UnicodeString& prop,
                     p == UCHAR_TRAIL_CANONICAL_COMBINING_CLASS ||
                     p == UCHAR_LEAD_CANONICAL_COMBINING_CLASS) {
                     char* end;
-                    double value = uprv_strtod(vname.data(), &end);
+                    double val = uprv_strtod(vname.data(), &end);
                     // Anything between 0 and 255 is valid even if unused.
                     // Cast double->int only after range check.
                     // We catch NaN here because comparing it with both 0 and 255 will be false
                     // (as are all comparisons with NaN).
-                    if (*end != 0 || !(0 <= value && value <= 255) ||
-                            (v = (int32_t)value) != value) {
+                    if (*end != 0 || !(0 <= val && val <= 255) ||
+                            (v = (int32_t)val) != val) {
                         // non-integral value or outside 0..255, or trailing junk
                         FAIL(ec);
                     }
@@ -1052,11 +945,12 @@ UnicodeSet::applyPropertyAlias(const UnicodeString& prop,
             case UCHAR_NUMERIC_VALUE:
                 {
                     char* end;
-                    double value = uprv_strtod(vname.data(), &end);
+                    double val = uprv_strtod(vname.data(), &end);
                     if (*end != 0) {
                         FAIL(ec);
                     }
-                    applyFilter(numericValueFilter, &value, UPROPS_SRC_CHAR, ec);
+                    applyFilter(numericValueFilter, &val,
+                                CharacterProperties::getInclusionsForProperty(p, ec), ec);
                     return *this;
                 }
             case UCHAR_NAME:
@@ -1085,7 +979,8 @@ UnicodeSet::applyPropertyAlias(const UnicodeString& prop,
                     if (!mungeCharName(buf, vname.data(), sizeof(buf))) FAIL(ec);
                     UVersionInfo version;
                     u_versionFromString(version, buf);
-                    applyFilter(versionFilter, &version, UPROPS_SRC_PROPSVEC, ec);
+                    applyFilter(versionFilter, &version,
+                                CharacterProperties::getInclusionsForProperty(p, ec), ec);
                     return *this;
                 }
             case UCHAR_SCRIPT_EXTENSIONS:
index 5d7cab2e155ccc21aed8592bdfc61f687b5d0e69..c8b6c0a3a46319219b7e9d15a220dc5930786401 100644 (file)
@@ -1447,10 +1447,15 @@ UnicodeString::doReplace(int32_t start,
   }
 
   if(srcChars == 0) {
-    srcStart = srcLength = 0;
-  } else if(srcLength < 0) {
-    // get the srcLength if necessary
-    srcLength = u_strlen(srcChars + srcStart);
+    srcLength = 0;
+  } else {
+    // Perform all remaining operations relative to srcChars + srcStart.
+    // From this point forward, do not use srcStart.
+    srcChars += srcStart;
+    if (srcLength < 0) {
+      // get the srcLength if necessary
+      srcLength = u_strlen(srcChars);
+    }
   }
 
   // pin the indices to legal values
@@ -1465,17 +1470,28 @@ UnicodeString::doReplace(int32_t start,
   }
   newLength += srcLength;
 
+  // Check for insertion into ourself
+  const UChar *oldArray = getArrayStart();
+  if (isBufferWritable() &&
+      oldArray < srcChars + srcLength &&
+      srcChars < oldArray + oldLength) {
+    // Copy into a new UnicodeString and start over
+    UnicodeString copy(srcChars, srcLength);
+    if (copy.isBogus()) {
+      setToBogus();
+      return *this;
+    }
+    return doReplace(start, length, copy.getArrayStart(), 0, srcLength);
+  }
+
   // cloneArrayIfNeeded(doCopyArray=FALSE) may change fArray but will not copy the current contents;
   // therefore we need to keep the current fArray
   UChar oldStackBuffer[US_STACKBUF_SIZE];
-  UChar *oldArray;
   if((fUnion.fFields.fLengthAndFlags&kUsingStackBuffer) && (newLength > US_STACKBUF_SIZE)) {
     // copy the stack buffer contents because it will be overwritten with
     // fUnion.fFields values
-    u_memcpy(oldStackBuffer, fUnion.fStackFields.fBuffer, oldLength);
+    u_memcpy(oldStackBuffer, oldArray, oldLength);
     oldArray = oldStackBuffer;
-  } else {
-    oldArray = getArrayStart();
   }
 
   // clone our array and allocate a bigger array if needed
@@ -1503,7 +1519,7 @@ UnicodeString::doReplace(int32_t start,
   }
 
   // now fill in the hole with the new string
-  us_arrayCopy(srcChars, srcStart, newArray, start, srcLength);
+  us_arrayCopy(srcChars, 0, newArray, start, srcLength);
 
   setLength(newLength);
 
@@ -1536,15 +1552,34 @@ UnicodeString::doAppend(const UChar *srcChars, int32_t srcStart, int32_t srcLeng
     return *this;
   }
 
+  // Perform all remaining operations relative to srcChars + srcStart.
+  // From this point forward, do not use srcStart.
+  srcChars += srcStart;
+
   if(srcLength < 0) {
     // get the srcLength if necessary
-    if((srcLength = u_strlen(srcChars + srcStart)) == 0) {
+    if((srcLength = u_strlen(srcChars)) == 0) {
       return *this;
     }
   }
 
   int32_t oldLength = length();
   int32_t newLength = oldLength + srcLength;
+
+  // Check for append onto ourself
+  const UChar* oldArray = getArrayStart();
+  if (isBufferWritable() &&
+      oldArray < srcChars + srcLength &&
+      srcChars < oldArray + oldLength) {
+    // Copy into a new UnicodeString and start over
+    UnicodeString copy(srcChars, srcLength);
+    if (copy.isBogus()) {
+      setToBogus();
+      return *this;
+    }
+    return doAppend(copy.getArrayStart(), 0, srcLength);
+  }
+
   // optimize append() onto a large-enough, owned string
   if((newLength <= getCapacity() && isBufferWritable()) ||
       cloneArrayIfNeeded(newLength, getGrowCapacity(newLength))) {
@@ -1556,8 +1591,8 @@ UnicodeString::doAppend(const UChar *srcChars, int32_t srcStart, int32_t srcLeng
     // or
     //   str.appendString(buffer, length)
     // or similar.
-    if(srcChars + srcStart != newArray + oldLength) {
-      us_arrayCopy(srcChars, srcStart, newArray, oldLength, srcLength);
+    if(srcChars != newArray + oldLength) {
+      us_arrayCopy(srcChars, 0, newArray, oldLength, srcLength);
     }
     setLength(newLength);
   }
index 21723b32aa7c8d15691f3d5a94c8d562f281fb9c..2421c15d2bd0b60babc4a01be327790f0a803dd3 100644 (file)
@@ -25,6 +25,7 @@
 
 #include "unicode/utypes.h"
 #include "unicode/uchar.h"
+#include "unicode/ucptrie.h"
 #include "unicode/unorm2.h"
 #include "unicode/uscript.h"
 #include "unicode/ustring.h"
 #include "ucase.h"
 #include "ustr_imp.h"
 
+// ulayout_props_data.h is machine-generated by genprops
+#define INCLUDED_FROM_UPROPS_CPP
+#include "ulayout_props_data.h"
+
 U_NAMESPACE_USE
 
 /* general properties API functions ----------------------------------------- */
@@ -56,7 +61,7 @@ static UBool defaultContains(const BinaryProperty &prop, UChar32 c, UProperty /*
 }
 
 static UBool caseBinaryPropertyContains(const BinaryProperty &/*prop*/, UChar32 c, UProperty which) {
-    return ucase_hasBinaryProperty(c, which);
+    return static_cast<UBool>(ucase_hasBinaryProperty(c, which));
 }
 
 static UBool isBidiControl(const BinaryProperty &/*prop*/, UChar32 c, UProperty /*which*/) {
@@ -428,6 +433,18 @@ static int32_t getTrailCombiningClass(const IntProperty &/*prop*/, UChar32 c, UP
 }
 #endif
 
+static int32_t getInPC(const IntProperty &, UChar32 c, UProperty) {
+    return ucptrie_get(&inpc_trie, c);
+}
+
+static int32_t getInSC(const IntProperty &, UChar32 c, UProperty) {
+    return ucptrie_get(&insc_trie, c);
+}
+
+static int32_t getVo(const IntProperty &, UChar32 c, UProperty) {
+    return ucptrie_get(&vo_trie, c);
+}
+
 static const IntProperty intProps[UCHAR_INT_LIMIT-UCHAR_INT_START]={
     /*
      * column, mask and shift values for int-value properties from u_getUnicodeProperties().
@@ -463,6 +480,9 @@ static const IntProperty intProps[UCHAR_INT_LIMIT-UCHAR_INT_START]={
     { 2,                UPROPS_SB_MASK, UPROPS_SB_SHIFT,    defaultGetValue, defaultGetMaxValue },
     { 2,                UPROPS_WB_MASK, UPROPS_WB_SHIFT,    defaultGetValue, defaultGetMaxValue },
     { UPROPS_SRC_BIDI,  0, 0,                               getBiDiPairedBracketType, biDiGetMaxValue },
+    { UPROPS_SRC_INPC,  0, maxInPCValue,                    getInPC, getMaxValueFromShift },
+    { UPROPS_SRC_INSC,  0, maxInSCValue,                    getInSC, getMaxValueFromShift },
+    { UPROPS_SRC_VO,    0, maxVoValue,                      getVo, getMaxValueFromShift },
 };
 
 U_CAPI int32_t U_EXPORT2
@@ -564,6 +584,34 @@ uprops_getSource(UProperty which) {
     }
 }
 
+U_CFUNC void U_EXPORT2
+uprops_addPropertyStarts(UPropertySource src, const USetAdder *sa, UErrorCode *pErrorCode) {
+    if (U_FAILURE(*pErrorCode)) { return; }
+    const UCPTrie *trie;
+    switch (src) {
+    case UPROPS_SRC_INPC:
+        trie = &inpc_trie;
+        break;
+    case UPROPS_SRC_INSC:
+        trie = &insc_trie;
+        break;
+    case UPROPS_SRC_VO:
+        trie = &vo_trie;
+        break;
+    default:
+        *pErrorCode = U_ILLEGAL_ARGUMENT_ERROR;
+        return;
+    }
+
+    // Add the start code point of each same-value range of the trie.
+    UChar32 start = 0, end;
+    while ((end = ucptrie_getRange(trie, start, UCPMAP_RANGE_NORMAL, 0,
+                                   nullptr, nullptr, nullptr)) >= 0) {
+        sa->add(sa->set, start);
+        start = end + 1;
+    }
+}
+
 #if !UCONFIG_NO_NORMALIZATION
 
 U_CAPI int32_t U_EXPORT2
index 2078384c3e47dd4d1228bcb965f9d424d96feb02..1a8e4e84f7445d2669193faaa2773b933f15d110 100644 (file)
@@ -397,6 +397,10 @@ enum UPropertySource {
     UPROPS_SRC_NFKC_CF,
     /** From normalizer2impl.cpp/nfc.nrm canonical iterator data */
     UPROPS_SRC_NFC_CANON_ITER,
+    // Text layout properties.
+    UPROPS_SRC_INPC,
+    UPROPS_SRC_INSC,
+    UPROPS_SRC_VO,
     /** One more than the highest UPropertySource (UPROPS_SRC_) constant. */
     UPROPS_SRC_COUNT
 };
@@ -425,6 +429,9 @@ uchar_addPropertyStarts(const USetAdder *sa, UErrorCode *pErrorCode);
 U_CFUNC void U_EXPORT2
 upropsvec_addPropertyStarts(const USetAdder *sa, UErrorCode *pErrorCode);
 
+U_CFUNC void U_EXPORT2
+uprops_addPropertyStarts(UPropertySource src, const USetAdder *sa, UErrorCode *pErrorCode);
+
 /**
  * Return a set of characters for property enumeration.
  * For each two consecutive characters (start, limit) in the set,
@@ -452,6 +459,13 @@ U_NAMESPACE_BEGIN
 
 class UnicodeSet;
 
+class CharacterProperties {
+public:
+    CharacterProperties() = delete;
+    static void U_CALLCONV initInclusion(UPropertySource src, UErrorCode &errorCode);
+    static const UnicodeSet *getInclusionsForProperty(UProperty prop, UErrorCode &errorCode);
+};
+
 // implemented in uniset_props.cpp
 U_CFUNC UnicodeSet *
 uniset_getUnicode32Instance(UErrorCode &errorCode);
index c51f7fdb64cc964c7750b8e1df7b540d8a4a96c1..656eeb7b442f7cfb4702fa3fee624ba043d3bd8c 100644 (file)
@@ -367,7 +367,12 @@ static UResourceDataEntry *init_entry(const char *localeID, const char *path, UE
         /* this is the actual loading */
         res_load(&(r->fData), r->fPath, r->fName, status);
 
-        if (U_FAILURE(*status)) { 
+        if (U_FAILURE(*status)) {
+            /* if we failed to load due to an out-of-memory error, exit early. */
+            if (*status == U_MEMORY_ALLOCATION_ERROR) {
+                uprv_free(r);
+                return NULL;
+            }
             /* we have no such entry in dll, so it will always use fallback */
             *status = U_USING_FALLBACK_WARNING;
             r->fBogus = U_USING_FALLBACK_WARNING;
@@ -537,6 +542,11 @@ loadParentsExceptRoot(UResourceDataEntry *&t1,
         UErrorCode usrStatus = U_ZERO_ERROR;
         if (usingUSRData) {  // This code inserts user override data into the inheritance chain.
             u2 = init_entry(name, usrDataPath, &usrStatus);
+            // If we failed due to out-of-memory, report that to the caller and exit early.
+            if (usrStatus == U_MEMORY_ALLOCATION_ERROR) {
+                *status = usrStatus;
+                return FALSE;
+            }
         }
 
         if (usingUSRData && U_SUCCESS(usrStatus) && u2->fBogus == U_ZERO_ERROR) {
@@ -642,21 +652,32 @@ static UResourceDataEntry *entryOpen(const char* path, const char* localeID,
         /* We're going to skip all the locales that do not have any data */
         r = findFirstExisting(path, name, &isRoot, &hasChopped, &isDefault, &intStatus);
 
+        // If we failed due to out-of-memory, report the failure and exit early.
+        if (intStatus == U_MEMORY_ALLOCATION_ERROR) {
+            *status = intStatus;
+            goto finishUnlock;
+        }
+
         if(r != NULL) { /* if there is one real locale, we can look for parents. */
             t1 = r;
             hasRealData = TRUE;
             if ( usingUSRData ) {  /* This code inserts user override data into the inheritance chain */
                 UErrorCode usrStatus = U_ZERO_ERROR;
                 UResourceDataEntry *u1 = init_entry(t1->fName, usrDataPath, &usrStatus);
-               if ( u1 != NULL ) {
-                 if(u1->fBogus == U_ZERO_ERROR) {
-                   u1->fParent = t1;
-                   r = u1;
-                 } else {
-                   /* the USR override data wasn't found, set it to be deleted */
-                   u1->fCountExisting = 0;
-                 }
-               }
+                // If we failed due to out-of-memory, report the failure and exit early.
+                if (intStatus == U_MEMORY_ALLOCATION_ERROR) {
+                    *status = intStatus;
+                    goto finishUnlock;
+                }
+                if ( u1 != NULL ) {
+                    if(u1->fBogus == U_ZERO_ERROR) {
+                        u1->fParent = t1;
+                        r = u1;
+                    } else {
+                        /* the USR override data wasn't found, set it to be deleted */
+                        u1->fCountExisting = 0;
+                    }
+                }
             }
             if (hasChopped && !isRoot) {
                 if (!loadParentsExceptRoot(t1, name, UPRV_LENGTHOF(name), usingUSRData, usrDataPath, status)) {
@@ -671,6 +692,11 @@ static UResourceDataEntry *entryOpen(const char* path, const char* localeID,
             /* insert default locale */
             uprv_strcpy(name, uloc_getDefault());
             r = findFirstExisting(path, name, &isRoot, &hasChopped, &isDefault, &intStatus);
+            // If we failed due to out-of-memory, report the failure and exit early.
+            if (intStatus == U_MEMORY_ALLOCATION_ERROR) {
+                *status = intStatus;
+                goto finishUnlock;
+            }
             intStatus = U_USING_DEFAULT_WARNING;
             if(r != NULL) { /* the default locale exists */
                 t1 = r;
@@ -690,6 +716,11 @@ static UResourceDataEntry *entryOpen(const char* path, const char* localeID,
         if(r == NULL) {
             uprv_strcpy(name, kRootLocaleName);
             r = findFirstExisting(path, name, &isRoot, &hasChopped, &isDefault, &intStatus);
+            // If we failed due to out-of-memory, report the failure and exit early.
+            if (intStatus == U_MEMORY_ALLOCATION_ERROR) {
+                *status = intStatus;
+                goto finishUnlock;
+            }
             if(r != NULL) {
                 t1 = r;
                 intStatus = U_USING_DEFAULT_WARNING;
@@ -2421,7 +2452,7 @@ ures_loc_nextLocale(UEnumeration* en,
     UResourceBundle *k = NULL;
     const char *result = NULL;
     int32_t len = 0;
-    if(ures_hasNext(res) && (k = ures_getNextResource(res, &ctx->curr, status))) {
+    if(ures_hasNext(res) && (k = ures_getNextResource(res, &ctx->curr, status)) != 0) {
         result = ures_getKey(k);
         len = (int32_t)uprv_strlen(result);
     }
@@ -2843,7 +2874,7 @@ ures_getKeywordValues(const char *path, const char *keyword, UErrorCode *status)
     valuesBuf[0]=0;
     valuesBuf[1]=0;
     
-    while((locale = uenum_next(locs, &locLen, status))) {
+    while((locale = uenum_next(locs, &locLen, status)) != 0) {
         UResourceBundle   *bund = NULL;
         UResourceBundle   *subPtr = NULL;
         UErrorCode subStatus = U_ZERO_ERROR; /* don't fail if a bundle is unopenable */
@@ -2868,7 +2899,7 @@ ures_getKeywordValues(const char *path, const char *keyword, UErrorCode *status)
             continue;
         }
         
-        while((subPtr = ures_getNextResource(&item,&subItem,&subStatus))
+        while((subPtr = ures_getNextResource(&item,&subItem,&subStatus)) != 0
             && U_SUCCESS(subStatus)) {
             const char *k;
             int32_t i;
index 8d845e3dfcfc8391bec08463dfd184afad1e7627..4e28ddccf63199a4dac23fb14dc73aba509b7f90 100644 (file)
@@ -475,7 +475,7 @@ U_NAMESPACE_BEGIN
 
 class ResourceDataValue : public ResourceValue {
 public:
-    ResourceDataValue() : pResData(NULL), res(URES_NONE) {}
+    ResourceDataValue() : pResData(NULL), res(static_cast<Resource>(URES_NONE)) {}
     virtual ~ResourceDataValue();
 
     void setData(const ResourceData *data) { pResData = data; }
index a640ae2907c264ac1d132ba244fd225d3d1f0721..ae13b5c11834c50e787d300e0f366d1b4b216a86 100644 (file)
@@ -1323,7 +1323,7 @@ shapeUnicode(UChar *dest, int32_t sourceLength,
                         /* to ensure the array index is within the range */
                         U_ASSERT(dest[i] >= 0x064Bu
                             && dest[i]-0x064Bu < UPRV_LENGTHOF(IrrelevantPos));
-                        dest[i] =  0xFE70 + IrrelevantPos[(dest[i] - 0x064B)] + Shape;
+                        dest[i] =  0xFE70 + IrrelevantPos[(dest[i] - 0x064B)] + static_cast<UChar>(Shape);
                     }
                 }else if ((currLink & APRESENT) > 0) {
                     dest[i] = (UChar)(0xFB50 + (currLink >> 8) + Shape);
index cc8069dce8ba6ddf0d586ee9d50503290f1559e9..01238b35f5bb06775373d6752d730d55a4823cd0 100644 (file)
@@ -112,7 +112,9 @@ hashEntry(const UHashTok parm) {
     UHashTok namekey, pathkey;
     namekey.pointer = b->name;
     pathkey.pointer = b->path;
-    return uhash_hashChars(namekey)+37*uhash_hashChars(pathkey);
+    uint32_t unsignedHash = static_cast<uint32_t>(uhash_hashChars(namekey)) +
+            37u * static_cast<uint32_t>(uhash_hashChars(pathkey));
+    return static_cast<int32_t>(unsignedHash);
 }
 
 /* compares two entries */
@@ -351,9 +353,9 @@ usprep_getProfile(const char* path,
         LocalMemory<char> keyName;
         LocalMemory<char> keyPath;
         if( key.allocateInsteadAndReset() == NULL ||
-            keyName.allocateInsteadAndCopy(uprv_strlen(name)+1) == NULL ||
+            keyName.allocateInsteadAndCopy(static_cast<int32_t>(uprv_strlen(name)+1)) == NULL ||
             (path != NULL &&
-             keyPath.allocateInsteadAndCopy(uprv_strlen(path)+1) == NULL)
+             keyPath.allocateInsteadAndCopy(static_cast<int32_t>(uprv_strlen(path)+1)) == NULL)
          ) {
             *status = U_MEMORY_ALLOCATION_ERROR;
             usprep_unload(newProfile.getAlias());
@@ -726,7 +728,7 @@ usprep_prepare(   const UStringPrepProfile* profile,
             ((result < _SPREP_TYPE_THRESHOLD) && (result & 0x01) /* first bit says it the code point is prohibited*/)
            ){
             *status = U_STRINGPREP_PROHIBITED_ERROR;
-            uprv_syntaxError(b1, b2Index-U16_LENGTH(ch), b2Len, parseError);
+            uprv_syntaxError(b2, b2Index-U16_LENGTH(ch), b2Len, parseError);
             return 0;
         }
 
index 978bd3b7b8618e1f8030b3fadef01cfd62568d17..618e847c65d5a66c428bd9dac31d0559f3c8ce06 100644 (file)
@@ -218,7 +218,7 @@ int32_t toLower(int32_t caseLocale, uint32_t options,
     int32_t srcIndex = srcStart;
     for (;;) {
         // fast path for simple cases
-        UChar lead;
+        UChar lead = 0;
         while (srcIndex < srcLimit) {
             lead = src[srcIndex];
             int32_t delta;
@@ -238,7 +238,7 @@ int32_t toLower(int32_t caseLocale, uint32_t options,
                     continue;
                 }
             }
-            lead += delta;
+            lead += static_cast<UChar>(delta);
             destIndex = appendUnchanged(dest, destIndex, destCapacity,
                                         src + prev, srcIndex - 1 - prev, options, edits);
             if (destIndex >= 0) {
@@ -313,7 +313,7 @@ int32_t toUpper(int32_t caseLocale, uint32_t options,
     int32_t srcIndex = 0;
     for (;;) {
         // fast path for simple cases
-        UChar lead;
+        UChar lead = 0;
         while (srcIndex < srcLength) {
             lead = src[srcIndex];
             int32_t delta;
@@ -333,7 +333,7 @@ int32_t toUpper(int32_t caseLocale, uint32_t options,
                     continue;
                 }
             }
-            lead += delta;
+            lead += static_cast<UChar>(delta);
             destIndex = appendUnchanged(dest, destIndex, destCapacity,
                                         src + prev, srcIndex - 1 - prev, options, edits);
             if (destIndex >= 0) {
@@ -1747,8 +1747,8 @@ static int32_t _cmpFold(
     }
 
     if(matchLen1) {
-        *matchLen1=m1-org1;
-        *matchLen2=m2-org2;
+        *matchLen1=static_cast<int32_t>(m1-org1);
+        *matchLen2=static_cast<int32_t>(m2-org2);
     }
     return cmpRes;
 }
index a2c9008abf668d56c9bb29582ae79192a3e8c6ea..6f579bd4f2732fd0ec20df824cc3d0d370e9c485 100644 (file)
@@ -1196,9 +1196,9 @@ fillForward:
         // Swap the UText buffers.
         //  We want to fill what was previously the alternate buffer,
         //  and make what was the current buffer be the new alternate.
-        UTF8Buf *u8b = (UTF8Buf *)ut->q;
+        UTF8Buf *u8b_swap = (UTF8Buf *)ut->q;
         ut->q = ut->p;
-        ut->p = u8b;
+        ut->p = u8b_swap;
 
         int32_t strLen = ut->b;
         UBool   nulTerminated = FALSE;
@@ -1207,9 +1207,9 @@ fillForward:
             nulTerminated = TRUE;
         }
 
-        UChar   *buf = u8b->buf;
-        uint8_t *mapToNative  = u8b->mapToNative;
-        uint8_t *mapToUChars  = u8b->mapToUChars;
+        UChar   *buf = u8b_swap->buf;
+        uint8_t *mapToNative  = u8b_swap->mapToNative;
+        uint8_t *mapToUChars  = u8b_swap->mapToUChars;
         int32_t  destIx       = 0;
         int32_t  srcIx        = ix;
         UBool    seenNonAscii = FALSE;
@@ -1230,7 +1230,7 @@ fillForward:
                 // General case, handle everything.
                 if (seenNonAscii == FALSE) {
                     seenNonAscii = TRUE;
-                    u8b->bufNILimit = destIx;
+                    u8b_swap->bufNILimit = destIx;
                 }
 
                 int32_t  cIx      = srcIx;
@@ -1263,22 +1263,22 @@ fillForward:
         mapToUChars[srcIx - ix] = (uint8_t)destIx;
 
         //  fill in Buffer descriptor
-        u8b->bufNativeStart     = ix;
-        u8b->bufNativeLimit     = srcIx;
-        u8b->bufStartIdx        = 0;
-        u8b->bufLimitIdx        = destIx;
+        u8b_swap->bufNativeStart     = ix;
+        u8b_swap->bufNativeLimit     = srcIx;
+        u8b_swap->bufStartIdx        = 0;
+        u8b_swap->bufLimitIdx        = destIx;
         if (seenNonAscii == FALSE) {
-            u8b->bufNILimit     = destIx;
+            u8b_swap->bufNILimit     = destIx;
         }
-        u8b->toUCharsMapStart   = u8b->bufNativeStart;
+        u8b_swap->toUCharsMapStart   = u8b_swap->bufNativeStart;
 
         // Set UText chunk to refer to this buffer.
         ut->chunkContents       = buf;
         ut->chunkOffset         = 0;
-        ut->chunkLength         = u8b->bufLimitIdx;
-        ut->chunkNativeStart    = u8b->bufNativeStart;
-        ut->chunkNativeLimit    = u8b->bufNativeLimit;
-        ut->nativeIndexingLimit = u8b->bufNILimit;
+        ut->chunkLength         = u8b_swap->bufLimitIdx;
+        ut->chunkNativeStart    = u8b_swap->bufNativeStart;
+        ut->chunkNativeLimit    = u8b_swap->bufNativeLimit;
+        ut->nativeIndexingLimit = u8b_swap->bufNILimit;
 
         // For zero terminated strings, keep track of the maximum point
         //   scanned so far.
@@ -1311,13 +1311,13 @@ fillReverse:
         // Swap the UText buffers.
         //  We want to fill what was previously the alternate buffer,
         //  and make what was the current buffer be the new alternate.
-        UTF8Buf *u8b = (UTF8Buf *)ut->q;
+        UTF8Buf *u8b_swap = (UTF8Buf *)ut->q;
         ut->q = ut->p;
-        ut->p = u8b;
+        ut->p = u8b_swap;
 
-        UChar   *buf = u8b->buf;
-        uint8_t *mapToNative = u8b->mapToNative;
-        uint8_t *mapToUChars = u8b->mapToUChars;
+        UChar   *buf = u8b_swap->buf;
+        uint8_t *mapToNative = u8b_swap->mapToNative;
+        uint8_t *mapToUChars = u8b_swap->mapToUChars;
         int32_t  toUCharsMapStart = ix - sizeof(UTF8Buf::mapToUChars) + 1;
         // Note that toUCharsMapStart can be negative. Happens when the remaining
         // text from current position to the beginning is less than the buffer size.
@@ -1387,19 +1387,19 @@ fillReverse:
                 bufNILimit = destIx;
             }
         }
-        u8b->bufNativeStart     = srcIx;
-        u8b->bufNativeLimit     = ix;
-        u8b->bufStartIdx        = destIx;
-        u8b->bufLimitIdx        = UTF8_TEXT_CHUNK_SIZE+2;
-        u8b->bufNILimit         = bufNILimit - u8b->bufStartIdx;
-        u8b->toUCharsMapStart   = toUCharsMapStart;
-
-        ut->chunkContents       = &buf[u8b->bufStartIdx];
-        ut->chunkLength         = u8b->bufLimitIdx - u8b->bufStartIdx;
+        u8b_swap->bufNativeStart     = srcIx;
+        u8b_swap->bufNativeLimit     = ix;
+        u8b_swap->bufStartIdx        = destIx;
+        u8b_swap->bufLimitIdx        = UTF8_TEXT_CHUNK_SIZE+2;
+        u8b_swap->bufNILimit         = bufNILimit - u8b_swap->bufStartIdx;
+        u8b_swap->toUCharsMapStart   = toUCharsMapStart;
+
+        ut->chunkContents       = &buf[u8b_swap->bufStartIdx];
+        ut->chunkLength         = u8b_swap->bufLimitIdx - u8b_swap->bufStartIdx;
         ut->chunkOffset         = ut->chunkLength;
-        ut->chunkNativeStart    = u8b->bufNativeStart;
-        ut->chunkNativeLimit    = u8b->bufNativeLimit;
-        ut->nativeIndexingLimit = u8b->bufNILimit;
+        ut->chunkNativeStart    = u8b_swap->bufNativeStart;
+        ut->chunkNativeLimit    = u8b_swap->bufNativeLimit;
+        ut->nativeIndexingLimit = u8b_swap->bufNILimit;
         return TRUE;
     }
 
index 641027a1a3f448ae6e9571ced95131537b470ea6..3e2197eda6c2619b41e5501b1cd43946d1e454a2 100644 (file)
@@ -21,7 +21,6 @@
 
 #include "unicode/utypes.h"
 #include "unicode/utf16.h"
-#include "udataswp.h"
 
 U_CDECL_BEGIN
 
@@ -732,17 +731,13 @@ utrie_serialize(UNewTrie *trie, void *data, int32_t capacity,
                 UBool reduceTo16Bits,
                 UErrorCode *pErrorCode);
 
-/**
- * Swap a serialized UTrie.
- * @internal
- */
-U_CAPI int32_t U_EXPORT2
-utrie_swap(const UDataSwapper *ds,
-           const void *inData, int32_t length, void *outData,
-           UErrorCode *pErrorCode);
-
 /* serialization ------------------------------------------------------------ */
 
+// UTrie signature values, in platform endianness and opposite endianness.
+// The UTrie signature ASCII byte values spell "Trie".
+#define UTRIE_SIG       0x54726965
+#define UTRIE_OE_SIG    0x65697254
+
 /**
  * Trie data structure in serialized form:
  *
index 8f9183bafad71fd8a457035c6d38fb417e37030e..24ef5782c90565c7567dac81e3758256bbdceeb5 100644 (file)
 *   This file contains only the runtime and enumeration code, for read-only access.
 *   See utrie2_builder.c for the builder code.
 */
-#ifdef UTRIE2_DEBUG
-#   include <stdio.h>
-#endif
-
 #include "unicode/utypes.h"
+#ifdef UCPTRIE_DEBUG
+#include "unicode/umutablecptrie.h"
+#endif
 #include "unicode/utf.h"
 #include "unicode/utf8.h"
 #include "unicode/utf16.h"
@@ -202,6 +201,9 @@ utrie2_openFromSerialized(UTrie2ValueBits valueBits,
     trie->memory=(uint32_t *)data;
     trie->length=actualLength;
     trie->isMemoryOwned=FALSE;
+#ifdef UTRIE2_DEBUG
+    trie->name="fromSerialized";
+#endif
 
     /* set the pointers to its index and data arrays */
     p16=(const uint16_t *)(header+1);
@@ -294,6 +296,9 @@ utrie2_openDummy(UTrie2ValueBits valueBits,
     trie->errorValue=errorValue;
     trie->highStart=0;
     trie->highValueIndex=dataMove+UTRIE2_DATA_START_OFFSET;
+#ifdef UTRIE2_DEBUG
+    trie->name="dummy";
+#endif
 
     /* set the header fields */
     header=(UTrie2Header *)trie->memory;
@@ -373,34 +378,15 @@ utrie2_close(UTrie2 *trie) {
         }
         if(trie->newTrie!=NULL) {
             uprv_free(trie->newTrie->data);
+#ifdef UCPTRIE_DEBUG
+            umutablecptrie_close(trie->newTrie->t3);
+#endif
             uprv_free(trie->newTrie);
         }
         uprv_free(trie);
     }
 }
 
-U_CAPI int32_t U_EXPORT2
-utrie2_getVersion(const void *data, int32_t length, UBool anyEndianOk) {
-    uint32_t signature;
-    if(length<16 || data==NULL || (U_POINTER_MASK_LSB(data, 3)!=0)) {
-        return 0;
-    }
-    signature=*(const uint32_t *)data;
-    if(signature==UTRIE2_SIG) {
-        return 2;
-    }
-    if(anyEndianOk && signature==UTRIE2_OE_SIG) {
-        return 2;
-    }
-    if(signature==UTRIE_SIG) {
-        return 1;
-    }
-    if(anyEndianOk && signature==UTRIE_OE_SIG) {
-        return 1;
-    }
-    return 0;
-}
-
 U_CAPI UBool U_EXPORT2
 utrie2_isFrozen(const UTrie2 *trie) {
     return (UBool)(trie->newTrie==NULL);
@@ -430,96 +416,6 @@ utrie2_serialize(const UTrie2 *trie,
     return trie->length;
 }
 
-U_CAPI int32_t U_EXPORT2
-utrie2_swap(const UDataSwapper *ds,
-            const void *inData, int32_t length, void *outData,
-            UErrorCode *pErrorCode) {
-    const UTrie2Header *inTrie;
-    UTrie2Header trie;
-    int32_t dataLength, size;
-    UTrie2ValueBits valueBits;
-
-    if(U_FAILURE(*pErrorCode)) {
-        return 0;
-    }
-    if(ds==NULL || inData==NULL || (length>=0 && outData==NULL)) {
-        *pErrorCode=U_ILLEGAL_ARGUMENT_ERROR;
-        return 0;
-    }
-
-    /* setup and swapping */
-    if(length>=0 && length<(int32_t)sizeof(UTrie2Header)) {
-        *pErrorCode=U_INDEX_OUTOFBOUNDS_ERROR;
-        return 0;
-    }
-
-    inTrie=(const UTrie2Header *)inData;
-    trie.signature=ds->readUInt32(inTrie->signature);
-    trie.options=ds->readUInt16(inTrie->options);
-    trie.indexLength=ds->readUInt16(inTrie->indexLength);
-    trie.shiftedDataLength=ds->readUInt16(inTrie->shiftedDataLength);
-
-    valueBits=(UTrie2ValueBits)(trie.options&UTRIE2_OPTIONS_VALUE_BITS_MASK);
-    dataLength=(int32_t)trie.shiftedDataLength<<UTRIE2_INDEX_SHIFT;
-
-    if( trie.signature!=UTRIE2_SIG ||
-        valueBits<0 || UTRIE2_COUNT_VALUE_BITS<=valueBits ||
-        trie.indexLength<UTRIE2_INDEX_1_OFFSET ||
-        dataLength<UTRIE2_DATA_START_OFFSET
-    ) {
-        *pErrorCode=U_INVALID_FORMAT_ERROR; /* not a UTrie */
-        return 0;
-    }
-
-    size=sizeof(UTrie2Header)+trie.indexLength*2;
-    switch(valueBits) {
-    case UTRIE2_16_VALUE_BITS:
-        size+=dataLength*2;
-        break;
-    case UTRIE2_32_VALUE_BITS:
-        size+=dataLength*4;
-        break;
-    default:
-        *pErrorCode=U_INVALID_FORMAT_ERROR;
-        return 0;
-    }
-
-    if(length>=0) {
-        UTrie2Header *outTrie;
-
-        if(length<size) {
-            *pErrorCode=U_INDEX_OUTOFBOUNDS_ERROR;
-            return 0;
-        }
-
-        outTrie=(UTrie2Header *)outData;
-
-        /* swap the header */
-        ds->swapArray32(ds, &inTrie->signature, 4, &outTrie->signature, pErrorCode);
-        ds->swapArray16(ds, &inTrie->options, 12, &outTrie->options, pErrorCode);
-
-        /* swap the index and the data */
-        switch(valueBits) {
-        case UTRIE2_16_VALUE_BITS:
-            ds->swapArray16(ds, inTrie+1, (trie.indexLength+dataLength)*2, outTrie+1, pErrorCode);
-            break;
-        case UTRIE2_32_VALUE_BITS:
-            ds->swapArray16(ds, inTrie+1, trie.indexLength*2, outTrie+1, pErrorCode);
-            ds->swapArray32(ds, (const uint16_t *)(inTrie+1)+trie.indexLength, dataLength*4,
-                                     (uint16_t *)(outTrie+1)+trie.indexLength, pErrorCode);
-            break;
-        default:
-            *pErrorCode=U_INVALID_FORMAT_ERROR;
-            return 0;
-        }
-    }
-
-    return size;
-}
-
-// utrie2_swapAnyVersion() should be defined here but lives in utrie2_builder.c
-// to avoid a dependency from utrie2.cpp on utrie.c.
-
 /* enumeration -------------------------------------------------------------- */
 
 #define MIN_VALUE(a, b) ((a)<(b) ? (a) : (b))
@@ -746,7 +642,7 @@ uint16_t BackwardUTrie2StringIterator::previous16() {
     codePointLimit=codePointStart;
     if(start>=codePointStart) {
         codePoint=U_SENTINEL;
-        return trie->errorValue;
+        return static_cast<uint16_t>(trie->errorValue);
     }
     uint16_t result;
     UTRIE2_U16_PREV16(trie, start, codePointStart, codePoint, result);
@@ -757,7 +653,7 @@ uint16_t ForwardUTrie2StringIterator::next16() {
     codePointStart=codePointLimit;
     if(codePointLimit==limit) {
         codePoint=U_SENTINEL;
-        return trie->errorValue;
+        return static_cast<uint16_t>(trie->errorValue);
     }
     uint16_t result;
     UTRIE2_U16_NEXT16(trie, codePointLimit, limit, codePoint, result);
index 8e1caa5e90bde2a5fff8a6bcbac75dc0b1b86bba..75028ee23ac1e96acbd5748dc6c99a4b8d589f4c 100644 (file)
@@ -22,7 +22,6 @@
 #include "unicode/utypes.h"
 #include "unicode/utf8.h"
 #include "putilimp.h"
-#include "udataswp.h"
 
 U_CDECL_BEGIN
 
@@ -330,40 +329,6 @@ utrie2_serialize(const UTrie2 *trie,
 
 /* Public UTrie2 API: miscellaneous functions ------------------------------- */
 
-/**
- * Get the UTrie version from 32-bit-aligned memory containing the serialized form
- * of either a UTrie (version 1) or a UTrie2 (version 2).
- *
- * @param data a pointer to 32-bit-aligned memory containing the serialized form
- *             of a UTrie, version 1 or 2
- * @param length the number of bytes available at data;
- *               can be more than necessary (see return value)
- * @param anyEndianOk If FALSE, only platform-endian serialized forms are recognized.
- *                    If TRUE, opposite-endian serialized forms are recognized as well.
- * @return the UTrie version of the serialized form, or 0 if it is not
- *         recognized as a serialized UTrie
- */
-U_CAPI int32_t U_EXPORT2
-utrie2_getVersion(const void *data, int32_t length, UBool anyEndianOk);
-
-/**
- * Swap a serialized UTrie2.
- * @internal
- */
-U_CAPI int32_t U_EXPORT2
-utrie2_swap(const UDataSwapper *ds,
-            const void *inData, int32_t length, void *outData,
-            UErrorCode *pErrorCode);
-
-/**
- * Swap a serialized UTrie or UTrie2.
- * @internal
- */
-U_CAPI int32_t U_EXPORT2
-utrie2_swapAnyVersion(const UDataSwapper *ds,
-                      const void *inData, int32_t length, void *outData,
-                      UErrorCode *pErrorCode);
-
 /**
  * Build a UTrie2 (version 2) from a UTrie (version 1).
  * Enumerates all values in the UTrie and builds a UTrie2 with the same values.
@@ -709,6 +674,10 @@ struct UTrie2 {
     UBool padding1;
     int16_t padding2;
     UNewTrie2 *newTrie;     /* builder object; NULL when frozen */
+
+#ifdef UTRIE2_DEBUG
+    const char *name;
+#endif
 };
 
 /**
index d8a3a06757370da5702ecfeca5e2fcf31790e9e6..80e09c9c26b3e1c27c4eee5186cb71de88eb6688 100644 (file)
 *   This file contains only the builder code.
 *   See utrie2.c for the runtime and enumeration code.
 */
+// #define UTRIE2_DEBUG
 #ifdef UTRIE2_DEBUG
 #   include <stdio.h>
 #endif
+// #define UCPTRIE_DEBUG
 
 #include "unicode/utypes.h"
+#ifdef UCPTRIE_DEBUG
+#include "unicode/ucptrie.h"
+#include "unicode/umutablecptrie.h"
+#include "ucptrie_impl.h"
+#endif
 #include "cmemory.h"
 #include "utrie2.h"
 #include "utrie2_impl.h"
 
-#include "utrie.h" /* for utrie2_fromUTrie() and utrie_swap() */
+#include "utrie.h"  // for utrie2_fromUTrie()
 
 /* Implementation notes ----------------------------------------------------- */
 
@@ -132,8 +139,14 @@ utrie2_open(uint32_t initialValue, uint32_t errorValue, UErrorCode *pErrorCode)
     trie->errorValue=errorValue;
     trie->highStart=0x110000;
     trie->newTrie=newTrie;
+#ifdef UTRIE2_DEBUG
+    trie->name="open";
+#endif
 
     newTrie->data=data;
+#ifdef UCPTRIE_DEBUG
+    newTrie->t3=umutablecptrie_open(initialValue, errorValue, pErrorCode);
+#endif
     newTrie->dataCapacity=UNEWTRIE2_INITIAL_DATA_LENGTH;
     newTrie->initialValue=initialValue;
     newTrie->errorValue=errorValue;
@@ -246,6 +259,14 @@ cloneBuilder(const UNewTrie2 *other) {
         uprv_free(trie);
         return NULL;
     }
+#ifdef UCPTRIE_DEBUG
+    if(other->t3==nullptr) {
+        trie->t3=nullptr;
+    } else {
+        UErrorCode errorCode=U_ZERO_ERROR;
+        trie->t3=umutablecptrie_clone(other->t3, &errorCode);
+    }
+#endif
     trie->dataCapacity=other->dataCapacity;
 
     /* clone data */
@@ -343,6 +364,22 @@ copyEnumRange(const void *context, UChar32 start, UChar32 end, uint32_t value) {
 }
 
 #ifdef UTRIE2_DEBUG
+static long countInitial(const UTrie2 *trie) {
+    uint32_t initialValue=trie->initialValue;
+    int32_t length=trie->dataLength;
+    long count=0;
+    if(trie->data16!=nullptr) {
+        for(int32_t i=0; i<length; ++i) {
+            if(trie->data16[i]==initialValue) { ++count; }
+        }
+    } else {
+        for(int32_t i=0; i<length; ++i) {
+            if(trie->data32[i]==initialValue) { ++count; }
+        }
+    }
+    return count;
+}
+
 static void
 utrie_printLengths(const UTrie *trie) {
     long indexLength=trie->indexLength;
@@ -357,8 +394,8 @@ utrie2_printLengths(const UTrie2 *trie, const char *which) {
     long indexLength=trie->indexLength;
     long dataLength=(long)trie->dataLength;
     long totalLength=(long)sizeof(UTrie2Header)+indexLength*2+dataLength*(trie->data32!=NULL ? 4 : 2);
-    printf("**UTrie2Lengths(%s)** index:%6ld  data:%6ld  serialized:%6ld\n",
-           which, indexLength, dataLength, totalLength);
+    printf("**UTrie2Lengths(%s %s)** index:%6ld  data:%6ld  countInitial:%6ld  serialized:%6ld\n",
+           which, trie->name, indexLength, dataLength, countInitial(trie), totalLength);
 }
 #endif
 
@@ -622,6 +659,9 @@ set32(UNewTrie2 *trie,
         *pErrorCode=U_NO_WRITE_PERMISSION;
         return;
     }
+#ifdef UCPTRIE_DEBUG
+    umutablecptrie_set(trie->t3, c, value, pErrorCode);
+#endif
 
     block=getDataBlock(trie, c, forLSCP);
     if(block<0) {
@@ -717,6 +757,9 @@ utrie2_setRange32(UTrie2 *trie,
         *pErrorCode=U_NO_WRITE_PERMISSION;
         return;
     }
+#ifdef UCPTRIE_DEBUG
+    umutablecptrie_setRange(newTrie->t3, start, end, value, pErrorCode);
+#endif
     if(!overwrite && value==newTrie->initialValue) {
         return; /* nothing to do */
     }
@@ -732,7 +775,7 @@ utrie2_setRange32(UTrie2 *trie,
             return;
         }
 
-        nextStart=(start+UTRIE2_DATA_BLOCK_LENGTH)&~UTRIE2_DATA_MASK;
+        nextStart=(start+UTRIE2_DATA_MASK)&~UTRIE2_DATA_MASK;
         if(nextStart<=limit) {
             fillBlock(newTrie->data+block, start&UTRIE2_DATA_MASK, UTRIE2_DATA_BLOCK_LENGTH,
                       value, newTrie->initialValue, overwrite);
@@ -983,6 +1026,10 @@ findHighStart(UNewTrie2 *trie, uint32_t highValue) {
  */
 static void
 compactData(UNewTrie2 *trie) {
+#ifdef UTRIE2_DEBUG
+    int32_t countSame=0, sumOverlaps=0;
+#endif
+
     int32_t start, newStart, movedStart;
     int32_t blockLength, overlap;
     int32_t i, mapIndex, blockCount;
@@ -1023,6 +1070,9 @@ compactData(UNewTrie2 *trie) {
         if( (movedStart=findSameDataBlock(trie->data, newStart, start, blockLength))
              >=0
         ) {
+#ifdef UTRIE2_DEBUG
+            ++countSame;
+#endif
             /* found an identical block, set the other block's index value for the current block */
             for(i=blockCount, mapIndex=start>>UTRIE2_SHIFT_2; i>0; --i) {
                 trie->map[mapIndex++]=movedStart;
@@ -1042,6 +1092,9 @@ compactData(UNewTrie2 *trie) {
             overlap>0 && !equal_uint32(trie->data+(newStart-overlap), trie->data+start, overlap);
             overlap-=UTRIE2_DATA_GRANULARITY) {}
 
+#ifdef UTRIE2_DEBUG
+            sumOverlaps+=overlap;
+#endif
         if(overlap>0 || newStart<start) {
             /* some overlap, or just move the whole block */
             movedStart=newStart-overlap;
@@ -1081,8 +1134,8 @@ compactData(UNewTrie2 *trie) {
 
 #ifdef UTRIE2_DEBUG
     /* we saved some space */
-    printf("compacting UTrie2: count of 32-bit data words %lu->%lu\n",
-            (long)trie->dataLength, (long)newStart);
+    printf("compacting UTrie2: count of 32-bit data words %lu->%lu  countSame=%ld  sumOverlaps=%ld\n",
+            (long)trie->dataLength, (long)newStart, (long)countSame, (long)sumOverlaps);
 #endif
 
     trie->dataLength=newStart;
@@ -1163,7 +1216,7 @@ compactIndex2(UNewTrie2 *trie) {
 
 #ifdef UTRIE2_DEBUG
     /* we saved some space */
-    printf("compacting UTrie2: count of 16-bit index-2 words %lu->%lu\n",
+    printf("compacting UTrie2: count of 16-bit index words %lu->%lu\n",
             (long)trie->index2Length, (long)newStart);
 #endif
 
@@ -1193,7 +1246,7 @@ compactTrie(UTrie2 *trie, UErrorCode *pErrorCode) {
     trie->highStart=newTrie->highStart=highStart;
 
 #ifdef UTRIE2_DEBUG
-    printf("UTrie2: highStart U+%04lx  highValue 0x%lx  initialValue 0x%lx\n",
+    printf("UTrie2: highStart U+%06lx  highValue 0x%lx  initialValue 0x%lx\n",
             (long)highStart, (long)highValue, (long)trie->initialValue);
 #endif
 
@@ -1211,7 +1264,7 @@ compactTrie(UTrie2 *trie, UErrorCode *pErrorCode) {
         compactIndex2(newTrie);
 #ifdef UTRIE2_DEBUG
     } else {
-        printf("UTrie2: highStart U+%04lx  count of 16-bit index-2 words %lu->%lu\n",
+        printf("UTrie2: highStart U+%04lx  count of 16-bit index words %lu->%lu\n",
                 (long)highStart, (long)trie->newTrie->index2Length, (long)UTRIE2_INDEX_1_OFFSET);
 #endif
     }
@@ -1334,7 +1387,7 @@ utrie2_freeze(UTrie2 *trie, UTrie2ValueBits valueBits, UErrorCode *pErrorCode) {
     if(highStart<=0x10000) {
         trie->index2NullOffset=0xffff;
     } else {
-        trie->index2NullOffset=UTRIE2_INDEX_2_OFFSET+newTrie->index2NullOffset;
+        trie->index2NullOffset=static_cast<uint16_t>(UTRIE2_INDEX_2_OFFSET+newTrie->index2NullOffset);
     }
     trie->dataNullOffset=(uint16_t)(dataMove+newTrie->dataNullOffset);
     trie->highValueIndex=dataMove+trie->dataLength-UTRIE2_DATA_GRANULARITY;
@@ -1411,31 +1464,18 @@ utrie2_freeze(UTrie2 *trie, UTrie2ValueBits valueBits, UErrorCode *pErrorCode) {
         return;
     }
 
+#ifdef UTRIE2_DEBUG
+    utrie2_printLengths(trie, "");
+#endif
+
+#ifdef UCPTRIE_DEBUG
+    umutablecptrie_setName(newTrie->t3, trie->name);
+    ucptrie_close(
+        umutablecptrie_buildImmutable(
+            newTrie->t3, UCPTRIE_TYPE_FAST, (UCPTrieValueWidth)valueBits, pErrorCode));
+#endif
     /* Delete the UNewTrie2. */
     uprv_free(newTrie->data);
     uprv_free(newTrie);
     trie->newTrie=NULL;
 }
-
-/*
- * This is here to avoid a dependency from utrie2.cpp on utrie.c.
- * This file already depends on utrie.c.
- * Otherwise, this should be in utrie2.cpp right after utrie2_swap().
- */
-U_CAPI int32_t U_EXPORT2
-utrie2_swapAnyVersion(const UDataSwapper *ds,
-                      const void *inData, int32_t length, void *outData,
-                      UErrorCode *pErrorCode) {
-    if(U_SUCCESS(*pErrorCode)) {
-        switch(utrie2_getVersion(inData, length, TRUE)) {
-        case 1:
-            return utrie_swap(ds, inData, length, outData, pErrorCode);
-        case 2:
-            return utrie2_swap(ds, inData, length, outData, pErrorCode);
-        default:
-            *pErrorCode=U_INVALID_FORMAT_ERROR;
-            return 0;
-        }
-    }
-    return 0;
-}
index b7dc9d3fb45fd4e783e536a1826b7779da56fa9b..2a14db3a6bdd1a5e55398830c581c85607469845 100644 (file)
 #ifndef __UTRIE2_IMPL_H__
 #define __UTRIE2_IMPL_H__
 
+#ifdef UCPTRIE_DEBUG
+#include "unicode/umutablecptrie.h"
+#endif
 #include "utrie2.h"
 
 /* Public UTrie2 API implementation ----------------------------------------- */
 
 /*
- * These definitions are mostly needed by utrie2.c,
+ * These definitions are mostly needed by utrie2.cpp,
  * but also by utrie2_serialize() and utrie2_swap().
  */
 
-/*
- * UTrie and UTrie2 signature values,
- * in platform endianness and opposite endianness.
- */
-#define UTRIE_SIG       0x54726965
-#define UTRIE_OE_SIG    0x65697254
-
+// UTrie2 signature values, in platform endianness and opposite endianness.
+// The UTrie2 signature ASCII byte values spell "Tri2".
 #define UTRIE2_SIG      0x54726932
 #define UTRIE2_OE_SIG   0x32697254
 
@@ -145,6 +143,9 @@ struct UNewTrie2 {
     int32_t index1[UNEWTRIE2_INDEX_1_LENGTH];
     int32_t index2[UNEWTRIE2_MAX_INDEX_2_LENGTH];
     uint32_t *data;
+#ifdef UCPTRIE_DEBUG
+    UMutableCPTrie *t3;
+#endif
 
     uint32_t initialValue, errorValue;
     int32_t index2Length, dataCapacity, dataLength;
diff --git a/source/common/utrie_swap.cpp b/source/common/utrie_swap.cpp
new file mode 100644 (file)
index 0000000..5abe7bd
--- /dev/null
@@ -0,0 +1,344 @@
+// © 2018 and later: Unicode, Inc. and others.
+// License & terms of use: http://www.unicode.org/copyright.html
+
+// utrie_swap.cpp
+// created: 2018aug08 Markus W. Scherer
+
+#include "unicode/utypes.h"
+#include "cmemory.h"
+#include "ucptrie_impl.h"
+#include "udataswp.h"
+#include "utrie.h"
+#include "utrie2_impl.h"
+
+// These functions for swapping different generations of ICU code point tries are here
+// so that their implementation files need not depend on swapper code,
+// need not depend on each other, and so that other swapper code
+// need not depend on other trie code.
+
+namespace {
+
+constexpr int32_t ASCII_LIMIT = 0x80;
+
+}  // namespace
+
+U_CAPI int32_t U_EXPORT2
+utrie_swap(const UDataSwapper *ds,
+           const void *inData, int32_t length, void *outData,
+           UErrorCode *pErrorCode) {
+    const UTrieHeader *inTrie;
+    UTrieHeader trie;
+    int32_t size;
+    UBool dataIs32;
+
+    if(pErrorCode==NULL || U_FAILURE(*pErrorCode)) {
+        return 0;
+    }
+    if(ds==NULL || inData==NULL || (length>=0 && outData==NULL)) {
+        *pErrorCode=U_ILLEGAL_ARGUMENT_ERROR;
+        return 0;
+    }
+
+    /* setup and swapping */
+    if(length>=0 && (uint32_t)length<sizeof(UTrieHeader)) {
+        *pErrorCode=U_INDEX_OUTOFBOUNDS_ERROR;
+        return 0;
+    }
+
+    inTrie=(const UTrieHeader *)inData;
+    trie.signature=ds->readUInt32(inTrie->signature);
+    trie.options=ds->readUInt32(inTrie->options);
+    trie.indexLength=udata_readInt32(ds, inTrie->indexLength);
+    trie.dataLength=udata_readInt32(ds, inTrie->dataLength);
+
+    if( trie.signature!=0x54726965 ||
+        (trie.options&UTRIE_OPTIONS_SHIFT_MASK)!=UTRIE_SHIFT ||
+        ((trie.options>>UTRIE_OPTIONS_INDEX_SHIFT)&UTRIE_OPTIONS_SHIFT_MASK)!=UTRIE_INDEX_SHIFT ||
+        trie.indexLength<UTRIE_BMP_INDEX_LENGTH ||
+        (trie.indexLength&(UTRIE_SURROGATE_BLOCK_COUNT-1))!=0 ||
+        trie.dataLength<UTRIE_DATA_BLOCK_LENGTH ||
+        (trie.dataLength&(UTRIE_DATA_GRANULARITY-1))!=0 ||
+        ((trie.options&UTRIE_OPTIONS_LATIN1_IS_LINEAR)!=0 && trie.dataLength<(UTRIE_DATA_BLOCK_LENGTH+0x100))
+    ) {
+        *pErrorCode=U_INVALID_FORMAT_ERROR; /* not a UTrie */
+        return 0;
+    }
+
+    dataIs32=(UBool)((trie.options&UTRIE_OPTIONS_DATA_IS_32_BIT)!=0);
+    size=sizeof(UTrieHeader)+trie.indexLength*2+trie.dataLength*(dataIs32?4:2);
+
+    if(length>=0) {
+        UTrieHeader *outTrie;
+
+        if(length<size) {
+            *pErrorCode=U_INDEX_OUTOFBOUNDS_ERROR;
+            return 0;
+        }
+
+        outTrie=(UTrieHeader *)outData;
+
+        /* swap the header */
+        ds->swapArray32(ds, inTrie, sizeof(UTrieHeader), outTrie, pErrorCode);
+
+        /* swap the index and the data */
+        if(dataIs32) {
+            ds->swapArray16(ds, inTrie+1, trie.indexLength*2, outTrie+1, pErrorCode);
+            ds->swapArray32(ds, (const uint16_t *)(inTrie+1)+trie.indexLength, trie.dataLength*4,
+                                     (uint16_t *)(outTrie+1)+trie.indexLength, pErrorCode);
+        } else {
+            ds->swapArray16(ds, inTrie+1, (trie.indexLength+trie.dataLength)*2, outTrie+1, pErrorCode);
+        }
+    }
+
+    return size;
+}
+
+U_CAPI int32_t U_EXPORT2
+utrie2_swap(const UDataSwapper *ds,
+            const void *inData, int32_t length, void *outData,
+            UErrorCode *pErrorCode) {
+    const UTrie2Header *inTrie;
+    UTrie2Header trie;
+    int32_t dataLength, size;
+    UTrie2ValueBits valueBits;
+
+    if(U_FAILURE(*pErrorCode)) {
+        return 0;
+    }
+    if(ds==NULL || inData==NULL || (length>=0 && outData==NULL)) {
+        *pErrorCode=U_ILLEGAL_ARGUMENT_ERROR;
+        return 0;
+    }
+
+    /* setup and swapping */
+    if(length>=0 && length<(int32_t)sizeof(UTrie2Header)) {
+        *pErrorCode=U_INDEX_OUTOFBOUNDS_ERROR;
+        return 0;
+    }
+
+    inTrie=(const UTrie2Header *)inData;
+    trie.signature=ds->readUInt32(inTrie->signature);
+    trie.options=ds->readUInt16(inTrie->options);
+    trie.indexLength=ds->readUInt16(inTrie->indexLength);
+    trie.shiftedDataLength=ds->readUInt16(inTrie->shiftedDataLength);
+
+    valueBits=(UTrie2ValueBits)(trie.options&UTRIE2_OPTIONS_VALUE_BITS_MASK);
+    dataLength=(int32_t)trie.shiftedDataLength<<UTRIE2_INDEX_SHIFT;
+
+    if( trie.signature!=UTRIE2_SIG ||
+        valueBits<0 || UTRIE2_COUNT_VALUE_BITS<=valueBits ||
+        trie.indexLength<UTRIE2_INDEX_1_OFFSET ||
+        dataLength<UTRIE2_DATA_START_OFFSET
+    ) {
+        *pErrorCode=U_INVALID_FORMAT_ERROR; /* not a UTrie */
+        return 0;
+    }
+
+    size=sizeof(UTrie2Header)+trie.indexLength*2;
+    switch(valueBits) {
+    case UTRIE2_16_VALUE_BITS:
+        size+=dataLength*2;
+        break;
+    case UTRIE2_32_VALUE_BITS:
+        size+=dataLength*4;
+        break;
+    default:
+        *pErrorCode=U_INVALID_FORMAT_ERROR;
+        return 0;
+    }
+
+    if(length>=0) {
+        UTrie2Header *outTrie;
+
+        if(length<size) {
+            *pErrorCode=U_INDEX_OUTOFBOUNDS_ERROR;
+            return 0;
+        }
+
+        outTrie=(UTrie2Header *)outData;
+
+        /* swap the header */
+        ds->swapArray32(ds, &inTrie->signature, 4, &outTrie->signature, pErrorCode);
+        ds->swapArray16(ds, &inTrie->options, 12, &outTrie->options, pErrorCode);
+
+        /* swap the index and the data */
+        switch(valueBits) {
+        case UTRIE2_16_VALUE_BITS:
+            ds->swapArray16(ds, inTrie+1, (trie.indexLength+dataLength)*2, outTrie+1, pErrorCode);
+            break;
+        case UTRIE2_32_VALUE_BITS:
+            ds->swapArray16(ds, inTrie+1, trie.indexLength*2, outTrie+1, pErrorCode);
+            ds->swapArray32(ds, (const uint16_t *)(inTrie+1)+trie.indexLength, dataLength*4,
+                                     (uint16_t *)(outTrie+1)+trie.indexLength, pErrorCode);
+            break;
+        default:
+            *pErrorCode=U_INVALID_FORMAT_ERROR;
+            return 0;
+        }
+    }
+
+    return size;
+}
+
+U_CAPI int32_t U_EXPORT2
+ucptrie_swap(const UDataSwapper *ds,
+             const void *inData, int32_t length, void *outData,
+             UErrorCode *pErrorCode) {
+    const UCPTrieHeader *inTrie;
+    UCPTrieHeader trie;
+    int32_t dataLength, size;
+    UCPTrieValueWidth valueWidth;
+
+    if(U_FAILURE(*pErrorCode)) {
+        return 0;
+    }
+    if(ds==nullptr || inData==nullptr || (length>=0 && outData==nullptr)) {
+        *pErrorCode=U_ILLEGAL_ARGUMENT_ERROR;
+        return 0;
+    }
+
+    /* setup and swapping */
+    if(length>=0 && length<(int32_t)sizeof(UCPTrieHeader)) {
+        *pErrorCode=U_INDEX_OUTOFBOUNDS_ERROR;
+        return 0;
+    }
+
+    inTrie=(const UCPTrieHeader *)inData;
+    trie.signature=ds->readUInt32(inTrie->signature);
+    trie.options=ds->readUInt16(inTrie->options);
+    trie.indexLength=ds->readUInt16(inTrie->indexLength);
+    trie.dataLength = ds->readUInt16(inTrie->dataLength);
+
+    UCPTrieType type = (UCPTrieType)((trie.options >> 6) & 3);
+    valueWidth = (UCPTrieValueWidth)(trie.options & UCPTRIE_OPTIONS_VALUE_BITS_MASK);
+    dataLength = ((int32_t)(trie.options & UCPTRIE_OPTIONS_DATA_LENGTH_MASK) << 4) | trie.dataLength;
+
+    int32_t minIndexLength = type == UCPTRIE_TYPE_FAST ?
+        UCPTRIE_BMP_INDEX_LENGTH : UCPTRIE_SMALL_INDEX_LENGTH;
+    if( trie.signature!=UCPTRIE_SIG ||
+        type > UCPTRIE_TYPE_SMALL ||
+        (trie.options & UCPTRIE_OPTIONS_RESERVED_MASK) != 0 ||
+        valueWidth > UCPTRIE_VALUE_BITS_8 ||
+        trie.indexLength < minIndexLength ||
+        dataLength < ASCII_LIMIT
+    ) {
+        *pErrorCode=U_INVALID_FORMAT_ERROR; /* not a UCPTrie */
+        return 0;
+    }
+
+    size=sizeof(UCPTrieHeader)+trie.indexLength*2;
+    switch(valueWidth) {
+    case UCPTRIE_VALUE_BITS_16:
+        size+=dataLength*2;
+        break;
+    case UCPTRIE_VALUE_BITS_32:
+        size+=dataLength*4;
+        break;
+    case UCPTRIE_VALUE_BITS_8:
+        size+=dataLength;
+        break;
+    default:
+        *pErrorCode=U_INVALID_FORMAT_ERROR;
+        return 0;
+    }
+
+    if(length>=0) {
+        UCPTrieHeader *outTrie;
+
+        if(length<size) {
+            *pErrorCode=U_INDEX_OUTOFBOUNDS_ERROR;
+            return 0;
+        }
+
+        outTrie=(UCPTrieHeader *)outData;
+
+        /* swap the header */
+        ds->swapArray32(ds, &inTrie->signature, 4, &outTrie->signature, pErrorCode);
+        ds->swapArray16(ds, &inTrie->options, 12, &outTrie->options, pErrorCode);
+
+        /* swap the index and the data */
+        switch(valueWidth) {
+        case UCPTRIE_VALUE_BITS_16:
+            ds->swapArray16(ds, inTrie+1, (trie.indexLength+dataLength)*2, outTrie+1, pErrorCode);
+            break;
+        case UCPTRIE_VALUE_BITS_32:
+            ds->swapArray16(ds, inTrie+1, trie.indexLength*2, outTrie+1, pErrorCode);
+            ds->swapArray32(ds, (const uint16_t *)(inTrie+1)+trie.indexLength, dataLength*4,
+                                     (uint16_t *)(outTrie+1)+trie.indexLength, pErrorCode);
+            break;
+        case UCPTRIE_VALUE_BITS_8:
+            ds->swapArray16(ds, inTrie+1, trie.indexLength*2, outTrie+1, pErrorCode);
+            if(inTrie!=outTrie) {
+                uprv_memmove((outTrie+1)+trie.indexLength, (inTrie+1)+trie.indexLength, dataLength);
+            }
+            break;
+        default:
+            *pErrorCode=U_INVALID_FORMAT_ERROR;
+            return 0;
+        }
+    }
+
+    return size;
+}
+
+namespace {
+
+/**
+ * Gets the trie version from 32-bit-aligned memory containing the serialized form
+ * of a UTrie (version 1), a UTrie2 (version 2), or a UCPTrie (version 3).
+ *
+ * @param data a pointer to 32-bit-aligned memory containing the serialized form of a trie
+ * @param length the number of bytes available at data;
+ *               can be more than necessary (see return value)
+ * @param anyEndianOk If FALSE, only platform-endian serialized forms are recognized.
+ *                    If TRUE, opposite-endian serialized forms are recognized as well.
+ * @return the trie version of the serialized form, or 0 if it is not
+ *         recognized as a serialized trie
+ */
+int32_t
+getVersion(const void *data, int32_t length, UBool anyEndianOk) {
+    uint32_t signature;
+    if(length<16 || data==nullptr || (U_POINTER_MASK_LSB(data, 3)!=0)) {
+        return 0;
+    }
+    signature=*(const uint32_t *)data;
+    if(signature==UCPTRIE_SIG) {
+        return 3;
+    }
+    if(anyEndianOk && signature==UCPTRIE_OE_SIG) {
+        return 3;
+    }
+    if(signature==UTRIE2_SIG) {
+        return 2;
+    }
+    if(anyEndianOk && signature==UTRIE2_OE_SIG) {
+        return 2;
+    }
+    if(signature==UTRIE_SIG) {
+        return 1;
+    }
+    if(anyEndianOk && signature==UTRIE_OE_SIG) {
+        return 1;
+    }
+    return 0;
+}
+
+}  // namespace
+
+U_CAPI int32_t U_EXPORT2
+utrie_swapAnyVersion(const UDataSwapper *ds,
+                     const void *inData, int32_t length, void *outData,
+                     UErrorCode *pErrorCode) {
+    if(U_FAILURE(*pErrorCode)) { return 0; }
+    switch(getVersion(inData, length, TRUE)) {
+    case 1:
+        return utrie_swap(ds, inData, length, outData, pErrorCode);
+    case 2:
+        return utrie2_swap(ds, inData, length, outData, pErrorCode);
+    case 3:
+        return ucptrie_swap(ds, inData, length, outData, pErrorCode);
+    default:
+        *pErrorCode=U_INVALID_FORMAT_ERROR;
+        return 0;
+    }
+}
index 5a23572eb64af20b0b69d2727900c950476856de..b9e6cb023bb379964838caf16ff2285c54cfdbf1 100644 (file)
@@ -557,7 +557,10 @@ UTS46::processUnicode(const UnicodeString &src,
             destArray=dest.getBuffer();
             destLength+=newLength-labelLength;
             labelLimit=labelStart+=newLength+1;
-        } else if(0xdf<=c && c<=0x200d && (c==0xdf || c==0x3c2 || c>=0x200c)) {
+            continue;
+        } else if(c<0xdf) {
+            // pass
+        } else if(c<=0x200d && (c==0xdf || c==0x3c2 || c>=0x200c)) {
             info.isTransDiff=TRUE;
             if(doMapDevChars) {
                 destLength=mapDevChars(dest, labelStart, labelLimit, errorCode);
@@ -565,15 +568,23 @@ UTS46::processUnicode(const UnicodeString &src,
                     return dest;
                 }
                 destArray=dest.getBuffer();
-                // Do not increment labelLimit in case c was removed.
                 // All deviation characters have been mapped, no need to check for them again.
                 doMapDevChars=FALSE;
-            } else {
-                ++labelLimit;
+                // Do not increment labelLimit in case c was removed.
+                continue;
+            }
+        } else if(U16_IS_SURROGATE(c)) {
+            if(U16_IS_SURROGATE_LEAD(c) ?
+                    (labelLimit+1)==destLength || !U16_IS_TRAIL(destArray[labelLimit+1]) :
+                    labelLimit==labelStart || !U16_IS_LEAD(destArray[labelLimit-1])) {
+                // Map an unpaired surrogate to U+FFFD before normalization so that when
+                // that removes characters we do not turn two unpaired ones into a pair.
+                info.labelErrors|=UIDNA_ERROR_DISALLOWED;
+                dest.setCharAt(labelLimit, 0xfffd);
+                destArray=dest.getBuffer();
             }
-        } else {
-            ++labelLimit;
         }
+        ++labelLimit;
     }
     // Permit an empty label at the end (0<labelStart==labelLimit==destLength is ok)
     // but not an empty label elsewhere nor a completely empty domain name.
index 3aaa36a0632f4a08e0fb5f4933ce74c5252ede5f..5e9ac0d2f373d81a448b7657d502f005a4e13122 100644 (file)
@@ -13,9 +13,7 @@
 
 #include "unicode/utypes.h"
 
-// This file contains only desktop Windows behavior
-// Windows UWP calls Windows::Globalization directly, so this isn't needed there.
-#if U_PLATFORM_USES_ONLY_WIN32_API && (U_PLATFORM_HAS_WINUWP_API == 0)
+#if U_PLATFORM_USES_ONLY_WIN32_API
 
 #include "wintz.h"
 #include "cmemory.h"
@@ -23,6 +21,7 @@
 
 #include "unicode/ures.h"
 #include "unicode/ustring.h"
+#include "uresimp.h"
 
 #ifndef WIN32_LEAN_AND_MEAN
 #   define WIN32_LEAN_AND_MEAN
 #   define NOMCX
 #include <windows.h>
 
-#define MAX_LENGTH_ID 40
+U_NAMESPACE_BEGIN
 
-/* The layout of the Tzi value in the registry */
-typedef struct
-{
-    int32_t bias;
-    int32_t standardBias;
-    int32_t daylightBias;
-    SYSTEMTIME standardDate;
-    SYSTEMTIME daylightDate;
-} TZI;
-
-/**
- * Various registry keys and key fragments.
- */
-static const wchar_t CURRENT_ZONE_REGKEY[] = L"SYSTEM\\CurrentControlSet\\Control\\TimeZoneInformation\\";
-static const char STANDARD_TIME_REGKEY[] = " Standard Time";
-static const char TZI_REGKEY[] = "TZI";
-static const char STD_REGKEY[] = "Std";
+// The value of MAX_TIMEZONE_ID_LENGTH is 128, which is defined in DYNAMIC_TIME_ZONE_INFORMATION
+#define MAX_TIMEZONE_ID_LENGTH 128
 
 /**
- * The time zone root keys (under HKLM) for Win7+
- */
-static const char TZ_REGKEY[] = "SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\Time Zones\\";
-
-static LONG openTZRegKey(HKEY *hkey, const char *winid)
-{
-    char subKeyName[110]; /* TODO: why 110?? */
-    char *name;
-    LONG result;
-
-    uprv_strcpy(subKeyName, TZ_REGKEY);
-    name = &subKeyName[strlen(subKeyName)];
-    uprv_strcat(subKeyName, winid);
-
-    result = RegOpenKeyExA(HKEY_LOCAL_MACHINE,
-                            subKeyName,
-                            0,
-                            KEY_QUERY_VALUE,
-                            hkey);
-    return result;
-}
-
-static LONG getTZI(const char *winid, TZI *tzi)
-{
-    DWORD cbData = sizeof(TZI);
-    LONG result;
-    HKEY hkey;
-
-    result = openTZRegKey(&hkey, winid);
-
-    if (result == ERROR_SUCCESS)
-    {
-        result = RegQueryValueExA(hkey,
-                                    TZI_REGKEY,
-                                    NULL,
-                                    NULL,
-                                    (LPBYTE)tzi,
-                                    &cbData);
-        RegCloseKey(hkey);
-    }
-
-    return result;
-}
-
-static LONG getSTDName(const char *winid, char *regStdName, int32_t length)
-{
-    DWORD cbData = length;
-    LONG result;
-    HKEY hkey;
-
-    result = openTZRegKey(&hkey, winid);
-
-    if (result == ERROR_SUCCESS) 
-    {
-        result = RegQueryValueExA(hkey,
-                                    STD_REGKEY,
-                                    NULL,
-                                    NULL,
-                                    (LPBYTE)regStdName,
-                                    &cbData);
-        RegCloseKey(hkey);
-    }
-
-    return result;
-}
-
-static LONG getTZKeyName(char* tzKeyName, int32_t tzKeyNamelength)
-{
-    HKEY hkey;
-    LONG result = FALSE;
-    WCHAR timeZoneKeyNameData[128];
-    DWORD timeZoneKeyNameLength = static_cast<DWORD>(sizeof(timeZoneKeyNameData));
-
-    if(ERROR_SUCCESS == RegOpenKeyExW(
-        HKEY_LOCAL_MACHINE,
-        CURRENT_ZONE_REGKEY,
-        0, 
-        KEY_QUERY_VALUE,
-        &hkey))
-    {
-        if (ERROR_SUCCESS == RegQueryValueExW(
-             hkey,
-             L"TimeZoneKeyName",
-             NULL,
-             NULL,
-             (LPBYTE)timeZoneKeyNameData,
-             &timeZoneKeyNameLength))
-        {
-            // Ensure null termination.
-            timeZoneKeyNameData[UPRV_LENGTHOF(timeZoneKeyNameData) - 1] = L'\0';
-
-            // Convert the UTF-16 string to UTF-8.
-            UErrorCode status = U_ZERO_ERROR;
-            u_strToUTF8(tzKeyName, tzKeyNamelength, NULL, reinterpret_cast<const UChar *>(timeZoneKeyNameData), -1, &status);
-            if (U_ZERO_ERROR == status)
-            {
-                result = ERROR_SUCCESS;
-            }
-        }
-        RegCloseKey(hkey);
-    }
-
-    return result;
-}
-
-/*
-  This code attempts to detect the Windows time zone directly,
-  as set in the Windows Date and Time control panel.  It attempts
-  to work on versions greater than Windows Vista and on localized
-  installs.  It works by directly interrogating the registry and
-  comparing the data there with the data returned by the
-  GetTimeZoneInformation API, along with some other strategies.  The
-  registry contains time zone data under this key:
-
-    HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Time Zones\
-
-  Under this key are several subkeys, one for each time zone.  For
-  example these subkeys are named "Pacific Standard Time" on Vista+.
-  There are some other wrinkles; see the code for
-  details.  The subkey name is NOT LOCALIZED, allowing us to support
-  localized installs.
-
-  Under the subkey are data values.  We care about:
-
-    Std   Standard time display name, localized
-    TZI   Binary block of data
-
-  The TZI data is of particular interest.  It contains the offset, two
-  more offsets for standard and daylight time, and the start and end
-  rules.  This is the same data returned by the GetTimeZoneInformation
-  API.  The API may modify the data on the way out, so we have to be
-  careful, but essentially we do a binary comparison against the TZI
-  blocks of various registry keys.  When we find a match, we know what
-  time zone Windows is set to.  Since the registry key is not
-  localized, we can then translate the key through a simple table
-  lookup into the corresponding ICU time zone.
-
-  This strategy doesn't always work because there are zones which
-  share an offset and rules, so more than one TZI block will match.
-  For example, both Tokyo and Seoul are at GMT+9 with no DST rules;
-  their TZI blocks are identical.  For these cases, we fall back to a
-  name lookup.  We attempt to match the display name as stored in the
-  registry for the current zone to the display name stored in the
-  registry for various Windows zones.  By comparing the registry data
-  directly we avoid conversion complications.
-
-  Author: Alan Liu
-  Since: ICU 2.6
-  Based on original code by Carl Brown <cbrown@xnetinc.com>
+* Main Windows time zone detection function.
+* Returns the Windows time zone converted to an ICU time zone as a heap-allocated buffer, or nullptr upon failure.
+* Note: We use the Win32 API GetDynamicTimeZoneInformation to get the current time zone info.
+* This API returns a non-localized time zone name, which we can then map to an ICU time zone name.
 */
-
-/**
- * Main Windows time zone detection function.  Returns the Windows
- * time zone, translated to an ICU time zone, or NULL upon failure.
- */
 U_CFUNC const char* U_EXPORT2
-uprv_detectWindowsTimeZone() 
+uprv_detectWindowsTimeZone()
 {
     UErrorCode status = U_ZERO_ERROR;
-    UResourceBundle* bundle = NULL;
-    char* icuid = NULL;
-    char apiStdName[MAX_LENGTH_ID];
-    char regStdName[MAX_LENGTH_ID];
-    char tmpid[MAX_LENGTH_ID];
+    char* icuid = nullptr;
+    char dynamicTZKeyName[MAX_TIMEZONE_ID_LENGTH];
+    char tmpid[MAX_TIMEZONE_ID_LENGTH];
     int32_t len;
-    int id;
+    int id = GEOID_NOT_AVAILABLE;
     int errorCode;
-    wchar_t ISOcodeW[3]; /* 2 letter iso code in UTF-16*/
-    char  ISOcodeA[3]; /* 2 letter iso code in ansi */
+    wchar_t ISOcodeW[3] = {}; /* 2 letter ISO code in UTF-16 */
+    char ISOcode[3] = {}; /* 2 letter ISO code in UTF-8 */
 
-    LONG result;
-    TZI tziKey;
-    TZI tziReg;
-    TIME_ZONE_INFORMATION apiTZI;
+    DYNAMIC_TIME_ZONE_INFORMATION dynamicTZI;
+    uprv_memset(&dynamicTZI, 0, sizeof(dynamicTZI));
+    uprv_memset(dynamicTZKeyName, 0, sizeof(dynamicTZKeyName));
+    uprv_memset(tmpid, 0, sizeof(tmpid));
 
-    BOOL tryPreVistaFallback;
-    OSVERSIONINFO osVerInfo;
+    /* Obtain TIME_ZONE_INFORMATION from the API and get the non-localized time zone name. */
+    if (TIME_ZONE_ID_INVALID == GetDynamicTimeZoneInformation(&dynamicTZI)) {
+        return nullptr;
+    }
 
-    /* Obtain TIME_ZONE_INFORMATION from the API, and then convert it
-       to TZI.  We could also interrogate the registry directly; we do
-       this below if needed. */
-    uprv_memset(&apiTZI, 0, sizeof(apiTZI));
-    uprv_memset(&tziKey, 0, sizeof(tziKey));
-    uprv_memset(&tziReg, 0, sizeof(tziReg));
-    GetTimeZoneInformation(&apiTZI);
-    tziKey.bias = apiTZI.Bias;
-    uprv_memcpy((char *)&tziKey.standardDate, (char*)&apiTZI.StandardDate,
-           sizeof(apiTZI.StandardDate));
-    uprv_memcpy((char *)&tziKey.daylightDate, (char*)&apiTZI.DaylightDate,
-           sizeof(apiTZI.DaylightDate));
+    id = GetUserGeoID(GEOCLASS_NATION);
+    errorCode = GetGeoInfoW(id, GEO_ISO2, ISOcodeW, 3, 0);
 
-    /* Convert the wchar_t* standard name to char* */
-    uprv_memset(apiStdName, 0, sizeof(apiStdName));
-    wcstombs(apiStdName, apiTZI.StandardName, MAX_LENGTH_ID);
+    // convert from wchar_t* (UTF-16 on Windows) to char* (UTF-8).
+    u_strToUTF8(ISOcode, UPRV_LENGTHOF(ISOcode), nullptr,
+        reinterpret_cast<const UChar*>(ISOcodeW), UPRV_LENGTHOF(ISOcodeW), &status);
 
-    tmpid[0] = 0;
+    LocalUResourceBundlePointer bundle(ures_openDirect(nullptr, "windowsZones", &status));
+    ures_getByKey(bundle.getAlias(), "mapTimezones", bundle.getAlias(), &status);
 
-    id = GetUserGeoID(GEOCLASS_NATION);
-    errorCode = GetGeoInfoW(id, GEO_ISO2, ISOcodeW, 3, 0);
-    u_strToUTF8(ISOcodeA, 3, NULL, (const UChar *)ISOcodeW, 3, &status);
+    // convert from wchar_t* (UTF-16 on Windows) to char* (UTF-8).
+    u_strToUTF8(dynamicTZKeyName, UPRV_LENGTHOF(dynamicTZKeyName), nullptr,
+        reinterpret_cast<const UChar*>(dynamicTZI.TimeZoneKeyName), UPRV_LENGTHOF(dynamicTZI.TimeZoneKeyName), &status);
 
-    bundle = ures_openDirect(NULL, "windowsZones", &status);
-    ures_getByKey(bundle, "mapTimezones", bundle, &status);
+    if (U_FAILURE(status)) {
+        return nullptr;
+    }
 
-    /*
-        Windows Vista+ provides us with a "TimeZoneKeyName" that is not localized
-        and can be used to directly map a name in our bundle. Try to use that first
-        if we're on Vista or higher
-    */
-    uprv_memset(&osVerInfo, 0, sizeof(osVerInfo));
-    osVerInfo.dwOSVersionInfoSize = sizeof(osVerInfo);
-    tryPreVistaFallback = TRUE;
-    result = getTZKeyName(regStdName, sizeof(regStdName));
-    if(ERROR_SUCCESS == result) 
-    {
-        UResourceBundle* winTZ = ures_getByKey(bundle, regStdName, NULL, &status);
-        if(U_SUCCESS(status)) 
-        {
-            const UChar* icuTZ = NULL;
-            if (errorCode != 0) 
-            {
-                icuTZ = ures_getStringByKey(winTZ, ISOcodeA, &len, &status);
+    if (dynamicTZI.TimeZoneKeyName[0] != 0) {
+        UResourceBundle winTZ;
+        ures_initStackObject(&winTZ);
+        ures_getByKey(bundle.getAlias(), dynamicTZKeyName, &winTZ, &status);
+        
+        if (U_SUCCESS(status)) {
+            const UChar* icuTZ = nullptr;
+            if (errorCode != 0) {
+                icuTZ = ures_getStringByKey(&winTZ, ISOcode, &len, &status);
             }
-            if (errorCode==0 || icuTZ==NULL) 
-            {
+            if (errorCode == 0 || icuTZ == nullptr) {
                 /* fallback to default "001" and reset status */
                 status = U_ZERO_ERROR;
-                icuTZ = ures_getStringByKey(winTZ, "001", &len, &status);
-            }
-
-            if(U_SUCCESS(status)) 
-            {
-                int index=0;
-                while (! (*icuTZ == '\0' || *icuTZ ==' ')) 
-                {
-                    tmpid[index++]=(char)(*icuTZ++);  /* safe to assume 'char' is ASCII compatible on windows */
-                }
-                tmpid[index]='\0';
-                tryPreVistaFallback = FALSE;
-            }
-        }
-        ures_close(winTZ);
-    }
-
-    if(tryPreVistaFallback)
-    {
-        /* Note: We get the winid not from static tables but from resource bundle. */
-        while (U_SUCCESS(status) && ures_hasNext(bundle))
-        {
-            UBool idFound = FALSE;
-            const char* winid;
-            UResourceBundle* winTZ = ures_getNextResource(bundle, NULL, &status);
-            if (U_FAILURE(status)) 
-            {
-                break;
+                icuTZ = ures_getStringByKey(&winTZ, "001", &len, &status);
             }
-            winid = ures_getKey(winTZ);
-            result = getTZI(winid, &tziReg);
-
-            if (result == ERROR_SUCCESS)
-            {
-                /* Windows alters the DaylightBias in some situations.
-                   Using the bias and the rules suffices, so overwrite
-                   these unreliable fields. */
-                tziKey.standardBias = tziReg.standardBias;
-                tziKey.daylightBias = tziReg.daylightBias;
 
-                if (uprv_memcmp((char *)&tziKey, (char*)&tziReg, sizeof(tziKey)) == 0)
-                {
-                    const UChar* icuTZ = NULL;
-                    if (errorCode != 0)
-                    {
-                        icuTZ = ures_getStringByKey(winTZ, ISOcodeA, &len, &status);
-                    }
-                    if (errorCode==0 || icuTZ==NULL) 
-                    {
-                        /* fallback to default "001" and reset status */
-                        status = U_ZERO_ERROR;
-                        icuTZ = ures_getStringByKey(winTZ, "001", &len, &status);
-                    }
+            if (U_SUCCESS(status)) {
+                int index = 0;
 
-                    if (U_SUCCESS(status)) 
-                    {
-                        /* Get the standard name from the registry key to compare with
-                           the one from Windows API call. */
-                        uprv_memset(regStdName, 0, sizeof(regStdName));
-                        result = getSTDName(winid, regStdName, sizeof(regStdName));
-                        if (result == ERROR_SUCCESS) 
-                        {
-                            if (uprv_strcmp(apiStdName, regStdName) == 0) 
-                            {
-                                idFound = TRUE;
-                            }
-                        }
-
-                        /* tmpid buffer holds the ICU timezone ID corresponding to the timezone ID from Windows.
-                         * If none is found, tmpid buffer will contain a fallback ID (i.e. the time zone ID matching
-                         * the current time zone information)
-                         */
-                        if (idFound || tmpid[0] == 0) 
-                        {
-                            /* if icuTZ has more than one city, take only the first (i.e. terminate icuTZ at first space) */
-                            int index=0;
-                            while (! (*icuTZ == '\0' || *icuTZ ==' ')) 
-                            {
-                                tmpid[index++]=(char)(*icuTZ++);  /* safe to assume 'char' is ASCII compatible on windows */
-                            }
-                            tmpid[index]='\0';
-                        }
-                    }
+                while (!(*icuTZ == '\0' || *icuTZ == ' ')) {
+                    // time zone IDs only contain ASCII invariant characters.
+                    tmpid[index++] = (char)(*icuTZ++);
                 }
-            }
-            ures_close(winTZ);
-            if (idFound) 
-            {
-                break;
+                tmpid[index] = '\0';
             }
         }
+        ures_close(&winTZ);
     }
 
-    /*
-     * Copy the timezone ID to icuid to be returned.
-     */
-    if (tmpid[0] != 0) 
-    {
-        len = uprv_strlen(tmpid);
-        icuid = (char*)uprv_calloc(len + 1, sizeof(char));
-        if (icuid != NULL) 
-        {
-            uprv_strcpy(icuid, tmpid);
-        }
+    // Copy the timezone ID to icuid to be returned.
+    if (tmpid[0] != 0) {
+        icuid = uprv_strdup(tmpid);
     }
 
-    ures_close(bundle);
-    
     return icuid;
 }
 
-#endif /* U_PLATFORM_USES_ONLY_WIN32_API && (U_PLATFORM_HAS_WINUWP_API == 0) */
+U_NAMESPACE_END
+#endif /* U_PLATFORM_USES_ONLY_WIN32_API  */
index 7be30eb44702c25c31437549e097d47cda95d5d9..f98b1779b5d4b4eff78683c98577b34907514632 100644 (file)
@@ -16,9 +16,7 @@
 
 #include "unicode/utypes.h"
 
-// This file contains only desktop windows behavior
-// Windows UWP calls Windows::Globalization directly, so this isn't needed there.
-#if U_PLATFORM_USES_ONLY_WIN32_API && (U_PLATFORM_HAS_WINUWP_API == 0)
+#if U_PLATFORM_USES_ONLY_WIN32_API
 
 /**
  * \file 
@@ -33,6 +31,6 @@ U_CDECL_END
 U_CFUNC const char* U_EXPORT2
 uprv_detectWindowsTimeZone();
 
-#endif /* U_PLATFORM_USES_ONLY_WIN32_API && (U_PLATFORM_HAS_WINUWP_API == 0) */
+#endif /* U_PLATFORM_USES_ONLY_WIN32_API  */
 
 #endif /* __WINTZ */
index 94e6439758ef247085f22c76cbd6d831a10ad0ee..78df54af07e9a9e92503f845c00ae822e1458582 100644 (file)
@@ -42,6 +42,11 @@ THREADSCFLAGS = -mthreads
 THREADSCXXFLAGS = -mthreads
 LIBCPPFLAGS =
 
+## Add 'd' suffix to the names of binary files with Debug configuration
+ifeq ($(ENABLE_DEBUG),1)
+ICULIBSUFFIX:=$(ICULIBSUFFIX)d#M#
+endif
+
 # Commands to link. Link with C++ in case static libraries are used.
 LINK.c=       $(CXX) $(CXXFLAGS) $(LDFLAGS)
 #LINK.cc=      $(CXX) $(CXXFLAGS) $(LDFLAGS)
index 6d0c55753298c0463a364eb66e369f87acb63913..7d464e572bb80463ba5993c7da00e0690d0a8a52 100644 (file)
@@ -42,6 +42,11 @@ THREADSCFLAGS = -mthreads
 THREADSCXXFLAGS = -mthreads
 LIBCPPFLAGS =
 
+## Add 'd' suffix to the names of binary files with Debug configuration
+ifeq ($(ENABLE_DEBUG),1)
+ICULIBSUFFIX:=$(ICULIBSUFFIX)d#M#
+endif
+
 # Commands to link. Link with C++ in case static libraries are used.
 LINK.c=       $(CXX) $(CXXFLAGS) $(LDFLAGS)
 #LINK.cc=      $(CXX) $(CXXFLAGS) $(LDFLAGS)
index 47301a1f7c7619417dc864370404d7fd272d6334..1ed93bfcd785d0671c2d6b910a87686b164ab81c 100755 (executable)
@@ -1,6 +1,6 @@
 #! /bin/sh
 # Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69 for ICU 62.1.
+# Generated by GNU Autoconf 2.69 for ICU 63.1.
 #
 # Report bugs to <http://icu-project.org/bugs>.
 #
@@ -582,8 +582,8 @@ MAKEFLAGS=
 # Identity of this package.
 PACKAGE_NAME='ICU'
 PACKAGE_TARNAME='International Components for Unicode'
-PACKAGE_VERSION='62.1'
-PACKAGE_STRING='ICU 62.1'
+PACKAGE_VERSION='63.1'
+PACKAGE_STRING='ICU 63.1'
 PACKAGE_BUGREPORT='http://icu-project.org/bugs'
 PACKAGE_URL='http://icu-project.org'
 
@@ -673,7 +673,6 @@ U_HAVE_INTTYPES_H
 GENCCODE_ASSEMBLY
 HAVE_MMAP
 LIB_THREAD
-U_HAVE_ATOMIC
 ENABLE_RPATH
 U_ENABLE_DYLOAD
 U_HAVE_PLUGINS
@@ -695,6 +694,7 @@ GREP
 DOXYGEN
 cross_buildroot
 U_MAKE
+PYTHON3
 cross_compiling
 INSTALL_DATA
 INSTALL_SCRIPT
@@ -716,6 +716,7 @@ CFLAGS
 CC
 ENABLE_RELEASE
 ENABLE_DEBUG
+INSTALL_ICU_CONFIG
 CPPFLAGS
 host_os
 host_vendor
@@ -775,6 +776,7 @@ SHELL'
 ac_subst_files=''
 ac_user_opts='
 enable_option_checking
+enable_icu_config
 enable_debug
 enable_release
 with_cross_build
@@ -1368,7 +1370,7 @@ if test "$ac_init_help" = "long"; then
   # Omit some internal or obsolete options to make the list less imposing.
   # This message is too long to be a string in the A/UX 3.1 sh.
   cat <<_ACEOF
-\`configure' configures ICU 62.1 to adapt to many kinds of systems.
+\`configure' configures ICU 63.1 to adapt to many kinds of systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -1435,7 +1437,7 @@ fi
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of ICU 62.1:";;
+     short | recursive ) echo "Configuration of ICU 63.1:";;
    esac
   cat <<\_ACEOF
 
@@ -1443,6 +1445,7 @@ Optional Features:
   --disable-option-checking  ignore unrecognized --enable/--with options
   --disable-FEATURE       do not include FEATURE (same as --enable-FEATURE=no)
   --enable-FEATURE[=ARG]  include FEATURE [ARG=yes]
+  --enable-icu-config     install icu-config
   --enable-debug          build debug libraries and enable the U_DEBUG define default=no
   --enable-release        build release libraries default=yes
   --enable-strict         compile with strict compiler options default=yes
@@ -1571,7 +1574,7 @@ fi
 test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
-ICU configure 62.1
+ICU configure 63.1
 generated by GNU Autoconf 2.69
 
 Copyright (C) 2012 Free Software Foundation, Inc.
@@ -2263,7 +2266,7 @@ cat >config.log <<_ACEOF
 This file contains any messages produced by compilers while
 running configure, to aid debugging if configure makes a mistake.
 
-It was created by ICU $as_me 62.1, which was
+It was created by ICU $as_me 63.1, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   $ $0 $@
@@ -2797,6 +2800,21 @@ UCONFIG_CPPFLAGS=""
 # such as -std
 UCONFIG_CFLAGS=""
 
+# Check whether to install icu-config
+# Check whether --enable-icu-config was given.
+if test "${enable_icu_config+set}" = set; then :
+  enableval=$enable_icu_config; case "${enableval}" in
+            yes) enable_icu_config=true ;;
+            no) enable_icu_config=false ;;
+            *) as_fn_error $? "bad value '${enableval}' for --enable-icu-config" "$LINENO" 5 ;;
+        esac
+else
+  enable_icu_config=true
+fi
+
+INSTALL_ICU_CONFIG=$enable_icu_config
+
+
 # Check whether to build debug libraries
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build debug libraries" >&5
 $as_echo_n "checking whether to build debug libraries... " >&6; }
@@ -4182,6 +4200,49 @@ fi
 #AC_CHECK_PROG(AUTOCONF, autoconf, autoconf, true)
 #AC_CHECK_PROG(STRIP, strip, strip, true)
 
+for ac_prog in python3
+do
+  # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_PYTHON3+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$PYTHON3"; then
+  ac_cv_prog_PYTHON3="$PYTHON3" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_PYTHON3="$ac_prog"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+fi
+fi
+PYTHON3=$ac_cv_prog_PYTHON3
+if test -n "$PYTHON3"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PYTHON3" >&5
+$as_echo "$PYTHON3" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+  test -n "$PYTHON3" && break
+done
+
+
 # Check for the platform make
 for ac_prog in gmake gnumake
 do
@@ -6041,37 +6102,6 @@ $as_echo "$as_me: Adding CXXFLAGS option -std=c++11" >&6;}
     fi
 fi
 
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if #include <atomic> works" >&5
-$as_echo_n "checking if #include <atomic> works... " >&6; }
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <atomic>
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_cxx_try_compile "$LINENO"; then :
-  ac_cv_header_atomic=yes
-else
-  ac_cv_header_atomic=no
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_atomic" >&5
-$as_echo "$ac_cv_header_atomic" >&6; }
-if test $ac_cv_header_atomic = yes
-then
-       U_HAVE_ATOMIC=1
-else
-        U_HAVE_ATOMIC=0
-fi
-# Make this available via CPPFLAGS
-CONFIG_CPPFLAGS="${CONFIG_CPPFLAGS} -DU_HAVE_ATOMIC=${U_HAVE_ATOMIC}"
-
-
 ac_ext=c
 ac_cpp='$CPP $CPPFLAGS'
 ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
@@ -8404,7 +8434,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
 # report actual input values of CONFIG_FILES etc. instead of their
 # values after options handling.
 ac_log="
-This file was extended by ICU $as_me 62.1, which was
+This file was extended by ICU $as_me 63.1, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
@@ -8458,7 +8488,7 @@ _ACEOF
 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
 ac_cs_version="\\
-ICU config.status 62.1
+ICU config.status 63.1
 configured by $0, generated by GNU Autoconf 2.69,
   with options \\"\$ac_cs_config\\"
 
@@ -9173,4 +9203,17 @@ then
         echo "## Expect build failures in the 'data', 'test', and other directories."
 fi
 
+if test -z "$PYTHON3";
+then
+    echo ""
+    echo "NOTICE: Unable to find Python 3. ICU versions 64 and later will require Python 3 to build."
+    echo "See ICU-10923 for more information: https://unicode-org.atlassian.net/browse/ICU-10923"
+    echo ""
+else
+    echo ""
+    echo "Found Python 3. You are all set for ICU 64, which will require Python 3 to build."
+    echo "For more info on Python 3 requirement, see: https://unicode-org.atlassian.net/browse/ICU-10923"
+    echo ""
+fi
+
 $as_unset _CXX_CXXSUFFIX
index 7078d491fabb1acda2e57d981f1c7aa8c270f1b6..3b01890996eb2bdcdfd2cfffd52ed6d5500b2c1f 100644 (file)
@@ -100,6 +100,16 @@ UCONFIG_CPPFLAGS=""
 # such as -std
 UCONFIG_CFLAGS=""
 
+# Check whether to install icu-config
+AC_ARG_ENABLE([icu-config],
+    AS_HELP_STRING([--enable-icu-config], [install icu-config]),
+        [case "${enableval}" in
+            yes) enable_icu_config=true ;;
+            no) enable_icu_config=false ;;
+            *) AC_MSG_ERROR([bad value '${enableval}' for --enable-icu-config]) ;;
+        esac], [enable_icu_config=true])
+AC_SUBST(INSTALL_ICU_CONFIG, [$enable_icu_config])
+
 # Check whether to build debug libraries
 AC_MSG_CHECKING([whether to build debug libraries])
 enabled=no
@@ -185,6 +195,8 @@ fi
 #AC_CHECK_PROG(AUTOCONF, autoconf, autoconf, true)
 #AC_CHECK_PROG(STRIP, strip, strip, true)
 
+AC_CHECK_PROGS(PYTHON3, python3)
+
 # Check for the platform make
 AC_PATH_PROGS(U_MAKE, gmake gnumake, make)
 AC_SUBST(U_MAKE)
@@ -517,19 +529,6 @@ if [[ "$GXX" = yes ]]; then
     fi
 fi
 
-AC_MSG_CHECKING([[if #include <atomic> works]])
-AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <atomic>]], [[]])], [ac_cv_header_atomic=yes], [ac_cv_header_atomic=no])
-AC_MSG_RESULT($ac_cv_header_atomic)
-if test $ac_cv_header_atomic = yes
-then
-       U_HAVE_ATOMIC=1
-else
-        U_HAVE_ATOMIC=0
-fi
-# Make this available via CPPFLAGS
-CONFIG_CPPFLAGS="${CONFIG_CPPFLAGS} -DU_HAVE_ATOMIC=${U_HAVE_ATOMIC}"
-AC_SUBST(U_HAVE_ATOMIC)
-
 AC_LANG_POP([C++])
 
 # Always build ICU with multi-threading support.
@@ -1465,4 +1464,17 @@ then
         echo "## Expect build failures in the 'data', 'test', and other directories."
 fi
 
+if test -z "$PYTHON3";
+then
+    echo ""
+    echo "NOTICE: Unable to find Python 3. ICU versions 64 and later will require Python 3 to build."
+    echo "See ICU-10923 for more information: https://unicode-org.atlassian.net/browse/ICU-10923"
+    echo ""
+else
+    echo ""
+    echo "Found Python 3. You are all set for ICU 64, which will require Python 3 to build."
+    echo "For more info on Python 3 requirement, see: https://unicode-org.atlassian.net/browse/ICU-10923"
+    echo ""
+fi
+
 $as_unset _CXX_CXXSUFFIX
index 8053f3feedcb0acc3644c247c393441c00b369e6..487108ff44bc71142736f999a866b85fbe9ae7b5 100644 (file)
@@ -1,6 +1,6 @@
 # © 2016 and later: Unicode, Inc. and others.\r
 # License & terms of use: http://www.unicode.org/copyright.html#License\r
-BRK_RES_CLDR_VERSION = 33.1\r
+BRK_RES_CLDR_VERSION = 34\r
 # A list of txt's to build\r
 # Note:\r
 #\r
@@ -39,13 +39,13 @@ BRK_DICT_SOURCE = burmesedict.txt cjdict.txt khmerdict.txt laodict.txt\
 \r
 \r
 # List of break iterator files (brk).\r
-BRK_SOURCE = char.txt line.txt line_fi.txt line_loose.txt\\r
- line_loose_cj.txt line_loose_fi.txt line_normal.txt line_normal_cj.txt line_normal_fi.txt\\r
sent.txt sent_el.txt title.txt word.txt word_POSIX.txt\r
+BRK_SOURCE = char.txt line.txt line_loose.txt line_loose_cj.txt\\r
+ line_normal.txt line_normal_cj.txt sent.txt sent_el.txt title.txt\\r
+ word.txt word_POSIX.txt\r
 \r
 \r
 # Ordinary resources\r
 BRK_RES_SOURCE = de.txt el.txt en.txt en_US.txt\\r
- en_US_POSIX.txt es.txt fi.txt fr.txt it.txt\\r
ja.txt pt.txt ru.txt zh.txt zh_Hant.txt\r
+ en_US_POSIX.txt es.txt fr.txt it.txt ja.txt\\r
+ pt.txt ru.txt zh.txt zh_Hant.txt\r
 \r
diff --git a/source/data/brkitr/fi.txt b/source/data/brkitr/fi.txt
deleted file mode 100644 (file)
index 976568a..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
-// © 2016 and later: Unicode, Inc. and others.\r
-// License & terms of use: http://www.unicode.org/copyright.html#License\r
-fi{\r
-    Version{"2.1.19.14"}\r
-    boundaries{\r
-        line:process(dependency){"line_fi.brk"}\r
-        line_loose:process(dependency){"line_loose_fi.brk"}\r
-        line_normal:process(dependency){"line_normal_fi.brk"}\r
-        line_strict:process(dependency){"line_fi.brk"}\r
-    }\r
-}\r
index fa0b0169a58f5a17cfea093aaacb08ef0acca6d8..e4f615830df709b068278929b010df638e161216 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 ja{\r
-    Version{"2.1.29.25"}\r
+    Version{"2.1.44.56"}\r
     boundaries{\r
         line:process(dependency){"line_normal.brk"}\r
         line_loose:process(dependency){"line_loose_cj.brk"}\r
index ee3d91986ffb5efd5db340fee3f37ac08d04ab5c..0dff488fc264a2697022f8d6f2f57413a4d44478 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 root{\r
-    Version{"2.1.37.61"}\r
+    Version{"2.1.44.57"}\r
     boundaries{\r
         grapheme:process(dependency){"char.brk"}\r
         line:process(dependency){"line.brk"}\r
index 2c66d3ec60e3c71098cae76b6eeaf0a5ebc3c3bf..fd59b395922f8fc95bdd7764ad378a0dcb25889f 100644 (file)
@@ -8,11 +8,10 @@
 #         Line Breaking Rules\r
 #         Implement default line breaking as defined by\r
 #         Unicode Standard Annex #14 Revision 40 for Unicode 11.0\r
-#         http://www.unicode.org/reports/tr14/\r
+#         http://www.unicode.org/reports/tr14/, with the following modification:\r
 #\r
-#         TODO:  Rule LB 8 remains as it was in Unicode 5.2\r
-#         This is only because of a limitation of ICU break engine implementation,\r
-#         not because the older behavior is desirable.\r
+#         Boundaries between hyphens and following letters are suppressed when\r
+#         there is a boundary preceding the hyphen. See rule 20.9\r
 #\r
 #         This corresponds to CSS line-break=strict (BCP47 -u-lb-strict).\r
 #         It sets characters of class CJ to behave like NS.\r
@@ -27,6 +26,7 @@
 $AI = [:LineBreak =  Ambiguous:];\r
 $AL = [:LineBreak =  Alphabetic:];\r
 $BA = [:LineBreak =  Break_After:];\r
+$HH = [\u2010];     # \u2010 is HYPHEN, default line break is BA.\r
 $BB = [:LineBreak =  Break_Before:];\r
 $BK = [:LineBreak =  Mandatory_Break:];\r
 $B2 = [:LineBreak =  Break_Both:];\r
@@ -132,12 +132,11 @@ $CAN_CM $CM*  [$SP $ZW];
 \r
 #\r
 # LB 8         Break after zero width space\r
-#              TODO:  ZW SP* <break>\r
-#              An engine change is required to write the reverse rule for this.\r
-#              For now, leave the Unicode 5.2 rule, ZW <break>\r
+#              ZW SP* ÷\r
 #\r
 $LB8Breaks    = [$LB4Breaks $ZW];\r
 $LB8NonBreaks = [[$LB4NonBreaks] - [$ZW]];\r
+$ZW $SP* / [^$SP $ZW $LB4Breaks];\r
 \r
 # LB 8a        ZWJ x            Do not break Emoji ZWJ sequences.\r
 #\r
@@ -230,17 +229,24 @@ $LB18NonBreaks $CM* $QU;
 #         QU  x\r
 $QU $CM* .;\r
 \r
-\r
 # LB 20\r
 #        <break>  $CB\r
 #        $CB   <break>\r
-\r
+#\r
 $LB20NonBreaks = [$LB18NonBreaks - $CB];\r
 \r
+# LB 20.09    Don't break between Hyphens and Letters when there is a break preceding the hyphen.\r
+#             Originally added as a Finnish tailoring, now promoted to default ICU behavior.\r
+#             Note: this is not default UAX-14 behaviour. See issue ICU-8151.\r
+#\r
+^($HY | $HH) $CM* $ALPlus;\r
+\r
 # LB 21        x   (BA | HY | NS)\r
 #           BB x\r
 #\r
 $LB20NonBreaks $CM* ($BA | $HY | $NS);\r
+\r
+\r
 ^$CM+ ($BA | $HY | $NS);\r
 \r
 $BB $CM* [^$CB];                                  #  $BB  x\r
diff --git a/source/data/brkitr/rules/line_fi.txt b/source/data/brkitr/rules/line_fi.txt
deleted file mode 100644 (file)
index 5211c02..0000000
+++ /dev/null
@@ -1,340 +0,0 @@
-# Copyright (C) 2016 and later: Unicode, Inc. and others.\r
-# License & terms of use: http://www.unicode.org/copyright.html\r
-# Copyright (c) 2002-2016  International Business Machines Corporation and\r
-# others. All Rights Reserved.\r
-#\r
-#  file:  line_fi.txt\r
-#\r
-#         Line Breaking Rules\r
-#         Implement default line breaking as defined by\r
-#         Unicode Standard Annex #14 Revision 40 for Unicode 11.0\r
-#         http://www.unicode.org/reports/tr14/\r
-#         tailored as noted in 2nd paragraph below.\r
-#\r
-#         TODO:  Rule LB 8 remains as it was in Unicode 5.2\r
-#         This is only because of a limitation of ICU break engine implementation,\r
-#         not because the older behavior is desirable.\r
-#\r
-#         This tailors the line break behavior for Finnish, while otherwise behaving\r
-#         per UAX 14 which corresponds to CSS line-break=strict (BCP47 -u-lb-strict).\r
-#         It sets characters of class CJ to behave like NS.\r
-#\r
-#         This corresponds to CSS line-break=strict (BCP47 -u-lb-strict).\r
-#         It sets characters of class CJ to behave like NS.\r
-\r
-#\r
-#  Character Classes defined by TR 14.\r
-#\r
-\r
-!!chain;\r
-!!quoted_literals_only;\r
-\r
-$AI = [:LineBreak =  Ambiguous:];\r
-$AL = [:LineBreak =  Alphabetic:];\r
-$BA = [:LineBreak =  Break_After:];\r
-$HH = [\u2010];     # \u2010 is HYPHEN, default line break is BA.\r
-$BB = [:LineBreak =  Break_Before:];\r
-$BK = [:LineBreak =  Mandatory_Break:];\r
-$B2 = [:LineBreak =  Break_Both:];\r
-$CB = [:LineBreak =  Contingent_Break:];\r
-$CJ = [:LineBreak =  Conditional_Japanese_Starter:];\r
-$CL = [:LineBreak =  Close_Punctuation:];\r
-# $CM = [:LineBreak =  Combining_Mark:];\r
-$CP = [:LineBreak =  Close_Parenthesis:];\r
-$CR = [:LineBreak =  Carriage_Return:];\r
-$EB = [:LineBreak =  EB:];\r
-$EM = [:LineBreak =  EM:];\r
-$EX = [:LineBreak =  Exclamation:];\r
-$GL = [:LineBreak =  Glue:];\r
-$HL = [:LineBreak =  Hebrew_Letter:];\r
-$HY = [:LineBreak =  Hyphen:];\r
-$H2 = [:LineBreak =  H2:];\r
-$H3 = [:LineBreak =  H3:];\r
-$ID = [:LineBreak =  Ideographic:];\r
-$IN = [:LineBreak =  Inseperable:];\r
-$IS = [:LineBreak =  Infix_Numeric:];\r
-$JL = [:LineBreak =  JL:];\r
-$JV = [:LineBreak =  JV:];\r
-$JT = [:LineBreak =  JT:];\r
-$LF = [:LineBreak =  Line_Feed:];\r
-$NL = [:LineBreak =  Next_Line:];\r
-# NS includes CJ for CSS strict line breaking.\r
-$NS = [[:LineBreak =  Nonstarter:] $CJ];\r
-$NU = [:LineBreak =  Numeric:];\r
-$OP = [:LineBreak =  Open_Punctuation:];\r
-$PO = [:LineBreak =  Postfix_Numeric:];\r
-$PR = [:LineBreak =  Prefix_Numeric:];\r
-$QU = [:LineBreak =  Quotation:];\r
-$RI = [:LineBreak =  Regional_Indicator:];\r
-$SA = [:LineBreak =  Complex_Context:];\r
-$SG = [:LineBreak =  Surrogate:];\r
-$SP = [:LineBreak =  Space:];\r
-$SY = [:LineBreak =  Break_Symbols:];\r
-$WJ = [:LineBreak =  Word_Joiner:];\r
-$XX = [:LineBreak =  Unknown:];\r
-$ZW = [:LineBreak =  ZWSpace:];\r
-$ZWJ = [:LineBreak = ZWJ:];\r
-\r
-# By LB9, a ZWJ also behaves as a CM. Including it in the definition of CM avoids having to explicitly\r
-#         list it in the numerous rules that use CM.\r
-# By LB1, SA characters with general categor of Mn or Mc also resolve to CM.\r
-\r
-$CM = [[:LineBreak = Combining_Mark:] $ZWJ [$SA & [[:Mn:][:Mc:]]]];\r
-\r
-#   Dictionary character set, for triggering language-based break engines. Currently\r
-#   limited to LineBreak=Complex_Context (SA).\r
-\r
-$dictionary = [$SA];\r
-\r
-#\r
-#  Rule LB1.  By default, treat AI  (characters with ambiguous east Asian width),\r
-#                               SA  (Dictionary chars, excluding Mn and Mc)\r
-#                               SG  (Unpaired Surrogates)\r
-#                               XX  (Unknown, unassigned)\r
-#                         as $AL  (Alphabetic)\r
-#\r
-$ALPlus = [$AL $AI $SG $XX [$SA-[[:Mn:][:Mc:]]]];\r
-\r
-\r
-## -------------------------------------------------\r
-\r
-#\r
-# CAN_CM  is the set of characters that may combine with CM combining chars.\r
-#         Note that Linebreak UAX 14's concept of a combining char and the rules\r
-#         for what they can combine with are _very_ different from the rest of Unicode.\r
-#\r
-#         Note that $CM itself is left out of this set.  If CM is needed as a base\r
-#         it must be listed separately in the rule.\r
-#\r
-$CAN_CM  = [^$SP $BK $CR $LF $NL $ZW $CM];       # Bases that can   take CMs\r
-$CANT_CM = [ $SP $BK $CR $LF $NL $ZW $CM];       # Bases that can't take CMs\r
-\r
-#\r
-# AL_FOLLOW  set of chars that can unconditionally follow an AL\r
-#            Needed in rules where stand-alone $CM s are treated as AL.\r
-#\r
-$AL_FOLLOW      = [$BK $CR $LF $NL $ZW $SP $CL $CP $EX $HL $IS $SY $WJ $GL $OP $QU $BA $HH $HY $NS $IN $NU $PR $PO $ALPlus];\r
-\r
-\r
-#\r
-#  Rule LB 4, 5    Mandatory (Hard) breaks.\r
-#\r
-$LB4Breaks    = [$BK $CR $LF $NL];\r
-$LB4NonBreaks = [^$BK $CR $LF $NL $CM];\r
-$CR $LF {100};\r
-\r
-#\r
-#  LB 6    Do not break before hard line breaks.\r
-#\r
-$LB4NonBreaks?  $LB4Breaks {100};    # LB 5  do not break before hard breaks.\r
-$CAN_CM $CM*    $LB4Breaks {100};\r
-^$CM+           $LB4Breaks {100};\r
-\r
-# LB 7         x SP\r
-#              x ZW\r
-$LB4NonBreaks [$SP $ZW];\r
-$CAN_CM $CM*  [$SP $ZW];\r
-^$CM+         [$SP $ZW];\r
-\r
-#\r
-# LB 8         Break after zero width space\r
-#              TODO:  ZW SP* <break>\r
-#              An engine change is required to write the reverse rule for this.\r
-#              For now, leave the Unicode 5.2 rule, ZW <break>\r
-#\r
-$LB8Breaks    = [$LB4Breaks $ZW];\r
-$LB8NonBreaks = [[$LB4NonBreaks] - [$ZW]];\r
-\r
-# LB 8a        ZWJ x            Do not break Emoji ZWJ sequences.\r
-#\r
-$ZWJ [^$CM];\r
-\r
-# LB 9     Combining marks.      X   $CM needs to behave like X, where X is not $SP, $BK $CR $LF $NL\r
-#                                $CM not covered by the above needs to behave like $AL\r
-#                                See definition of $CAN_CM.\r
-\r
-$CAN_CM $CM+;                   #  Stick together any combining sequences that don't match other rules.\r
-^$CM+;\r
-\r
-#\r
-# LB 11  Do not break before or after WORD JOINER & related characters.\r
-#\r
-$CAN_CM $CM*  $WJ;\r
-$LB8NonBreaks $WJ;\r
-^$CM+         $WJ;\r
-\r
-$WJ $CM* .;\r
-\r
-#\r
-# LB 12  Do not break after NBSP and related characters.\r
-#         GL  x\r
-#\r
-$GL $CM* .;\r
-\r
-#\r
-# LB 12a  Do not break before NBSP and related characters ...\r
-#            [^SP BA HY] x GL\r
-#\r
-[[$LB8NonBreaks] - [$SP $BA $HH $HY]] $CM* $GL;\r
-^$CM+ $GL;\r
-\r
-\r
-\r
-#\r
-# LB 13   Don't break before ']' or '!' or ';' or '/', even after spaces.\r
-#\r
-$LB8NonBreaks $CL;\r
-$CAN_CM $CM*  $CL;\r
-^$CM+         $CL;              # by rule 10, stand-alone CM behaves as AL\r
-\r
-$LB8NonBreaks $CP;\r
-$CAN_CM $CM*  $CP;\r
-^$CM+         $CP;              # by rule 10, stand-alone CM behaves as AL\r
-\r
-$LB8NonBreaks $EX;\r
-$CAN_CM $CM*  $EX;\r
-^$CM+         $EX;              # by rule 10, stand-alone CM behaves as AL\r
-\r
-$LB8NonBreaks $IS;\r
-$CAN_CM $CM*  $IS;\r
-^$CM+         $IS;              # by rule 10, stand-alone CM behaves as AL\r
-\r
-$LB8NonBreaks $SY;\r
-$CAN_CM $CM*  $SY;\r
-^$CM+         $SY;              # by rule 10, stand-alone CM behaves as AL\r
-\r
-\r
-#\r
-# LB 14  Do not break after OP, even after spaces\r
-#\r
-$OP $CM* $SP* .;\r
-\r
-$OP $CM* $SP+ $CM+ $AL_FOLLOW?;    # by rule 10, stand-alone CM behaves as AL\r
-                                   # by rule 8, CM following a SP is stand-alone.\r
-\r
-# LB 15\r
-$QU $CM* $SP* $OP;\r
-\r
-# LB 16\r
-($CL | $CP) $CM* $SP* $NS;\r
-\r
-# LB 17\r
-$B2 $CM* $SP* $B2;\r
-\r
-#\r
-# LB 18  Break after spaces.\r
-#\r
-$LB18NonBreaks = [$LB8NonBreaks - [$SP]];\r
-$LB18Breaks    = [$LB8Breaks $SP];\r
-\r
-\r
-# LB 19\r
-#         x QU\r
-$LB18NonBreaks $CM* $QU;\r
-^$CM+               $QU;\r
-\r
-#         QU  x\r
-$QU $CM* .;\r
-\r
-\r
-# LB 20\r
-#        <break>  $CB\r
-#        $CB   <break>\r
-\r
-$LB20NonBreaks = [$LB18NonBreaks - $CB];\r
-\r
-# LB 20.09 added rule for Finnish tailoring\r
-# LB 21        x   (BA | HY | NS)\r
-#           BB x\r
-#\r
-$LB20NonBreaks $CM* ($BA | $HH | $HY | $NS) $CM* / $AL;\r
-$LB20NonBreaks $CM* ($BA | $HH | $HY | $NS);\r
-($HY | $HH) $AL;\r
-^$CM+ ($BA | $HY | $HH | $NS);\r
-\r
-$BB $CM* [^$CB];                                  #  $BB  x\r
-$BB $CM* $LB20NonBreaks;\r
-\r
-# LB 21a Don't break after Hebrew + Hyphen\r
-#   HL (HY | BA) x\r
-#\r
-$HL $CM* ($HY | $BA | $HH) $CM* [^$CB]?;\r
-\r
-# LB 21b (forward) Don't break between SY and HL\r
-# (break between HL and SY already disallowed by LB 13 above)\r
-$SY $CM* $HL;\r
-\r
-# LB 22\r
-($ALPlus | $HL) $CM* $IN;\r
-^$CM+    $IN;     #  by rule 10, any otherwise unattached CM behaves as AL\r
-$EX $CM*    $IN;\r
-($ID | $EB | $EM) $CM*  $IN;\r
-$IN $CM*    $IN;\r
-$NU $CM*    $IN;\r
-\r
-\r
-# $LB 23\r
-#\r
-($ALPlus | $HL) $CM* $NU;\r
-^$CM+  $NU;       # Rule 10, any otherwise unattached CM behaves as AL\r
-$NU $CM* ($ALPlus | $HL);\r
-\r
-# LB 23a\r
-#\r
-$PR $CM* ($ID | $EB | $EM);\r
-($ID | $EB | $EM) $CM*  $PO;\r
-\r
-\r
-#\r
-# LB 24\r
-#\r
-($PR | $PO) $CM* ($ALPlus | $HL);\r
-($ALPlus | $HL) $CM* ($PR | $PO);\r
-^$CM+ ($PR | $PO);       # Rule 10, any otherwise unattached CM behaves as AL\r
-\r
-#\r
-# LB 25   Numbers.\r
-#\r
-(($PR | $PO) $CM*)? (($OP | $HY) $CM*)? $NU ($CM* ($NU | $SY | $IS))*\r
-    ($CM* ($CL | $CP))? ($CM* ($PR | $PO))?;\r
-\r
-# LB 26  Do not break a Korean syllable\r
-#\r
-$JL $CM* ($JL | $JV | $H2 | $H3);\r
-($JV | $H2) $CM* ($JV | $JT);\r
-($JT | $H3) $CM* $JT;\r
-\r
-# LB 27  Treat korean Syllable Block the same as ID  (don't break it)\r
-($JL | $JV | $JT | $H2 | $H3) $CM* $IN;\r
-($JL | $JV | $JT | $H2 | $H3) $CM* $PO;\r
-$PR $CM* ($JL | $JV | $JT | $H2 | $H3);\r
-\r
-\r
-# LB 28   Do not break between alphabetics\r
-#\r
-($ALPlus | $HL) $CM* ($ALPlus | $HL);\r
-^$CM+ ($ALPlus | $HL);      # The $CM+ is from rule 10, an unattached CM is treated as AL\r
-\r
-# LB 29\r
-$IS $CM* ($ALPlus | $HL);\r
-\r
-# LB 30\r
-($ALPlus | $HL | $NU) $CM* $OP;\r
-^$CM+ $OP;         # The $CM+ is from rule 10, an unattached CM is treated as AL.\r
-$CP $CM* ($ALPlus | $HL | $NU);\r
-\r
-# LB 30a  Do not break between regional indicators. Break after pairs of them.\r
-#         Tricky interaction with LB8a: ZWJ x .   together with ZWJ acting like a CM.\r
-$RI $CM* $RI                 / [[^$BK $CR $LF $NL $SP $ZW $WJ $CL $CP $EX $IS $SY $GL $QU $BA $HY $NS $CM]];\r
-$RI $CM* $RI $CM* [$CM-$ZWJ] / [[^$BK $CR $LF $NL $SP $ZW $WJ $CL $CP $EX $IS $SY $GL $QU $BA $HY $NS $CM]];\r
-$RI $CM* $RI $CM* [$BK $CR $LF $NL $SP $ZW $WJ $CL $CP $EX $IS $SY $GL $QU $BA $HY $NS $ZWJ {eof}];\r
-# note: the preceding rule includes {eof} rather than having the last [set] term qualified with '?'\r
-#       because of the chain-out behavior difference. The rule must chain out only from the [set characters],\r
-#       not from the preceding $RI or $CM, which it would be able to do if the set were optional.\r
-\r
-# LB 30b Do not break between an Emoji Base and an Emoji Modifier\r
-$EB $CM* $EM;\r
-\r
-# LB 31 Break everywhere else.\r
-#       Match a single code point if no other rule applies.\r
-.;\r
index bd11fdca7a00d128c28f83a4fc2380d55092d1ba..2bce4ed4dec53990aaeb077ab9d7346e9dd00c37 100644 (file)
@@ -9,13 +9,10 @@
 #         Line Breaking Rules\r
 #         Implement default line breaking as defined by\r
 #         Unicode Standard Annex #14 Revision 40 for Unicode 11.0\r
-#         http://www.unicode.org/reports/tr14/\r
+#         http://www.unicode.org/reports/tr14/, with the following modification:\r
 #\r
-#         tailored as noted in 2nd paragraph below.\r
-#\r
-#         TODO:  Rule LB 8 remains as it was in Unicode 5.2\r
-#         This is only because of a limitation of ICU break engine implementation,\r
-#         not because the older behavior is desirable.\r
+#         Boundaries between hyphens and following letters are suppressed when\r
+#         there is a boundary preceding the hyphen. See rule 20.9\r
 #\r
 #         This tailors the line break behavior to correspond to CSS\r
 #         line-break=loose (BCP47 -u-lb-loose) as defined for languages other than\r
@@ -35,6 +32,7 @@
 $AI = [:LineBreak =  Ambiguous:];\r
 $AL = [:LineBreak =  Alphabetic:];\r
 $BA = [:LineBreak =  Break_After:];\r
+$HH = [\u2010];     # \u2010 is HYPHEN, default line break is BA.\r
 $BB = [:LineBreak =  Break_Before:];\r
 $BK = [:LineBreak =  Mandatory_Break:];\r
 $B2 = [:LineBreak =  Break_Both:];\r
@@ -141,12 +139,11 @@ $CAN_CM $CM*  [$SP $ZW];
 \r
 #\r
 # LB 8         Break after zero width space\r
-#              TODO:  ZW SP* <break>\r
-#              An engine change is required to write the reverse rule for this.\r
-#              For now, leave the Unicode 5.2 rule, ZW <break>\r
+#              ZW SP* ÷\r
 #\r
 $LB8Breaks    = [$LB4Breaks $ZW];\r
 $LB8NonBreaks = [[$LB4NonBreaks] - [$ZW]];\r
+$ZW $SP* / [^$SP $ZW $LB4Breaks];\r
 \r
 # LB 8a        ZWJ x            Do not break Emoji ZWJ sequences.\r
 #\r
@@ -241,18 +238,25 @@ $LB18NonBreaks $CM* $QU;
 #         QU  x\r
 $QU $CM* .;\r
 \r
-\r
 # LB 20\r
 #        <break>  $CB\r
 #        $CB   <break>\r
-\r
+#\r
 $LB20NonBreaks = [$LB18NonBreaks - $CB];\r
 \r
+# LB 20.09    Don't break between Hyphens and Letters when there is a break preceding the hyphen.\r
+#             Originally added as a Finnish tailoring, now promoted to default ICU behavior.\r
+#             Note: this is not default UAX-14 behaviour. See issue ICU-8151.\r
+#\r
+^($HY | $HH) $CM* $ALPlus;\r
+\r
 # LB 21        x   (BA | HY | NS)\r
 #           BB x\r
 #\r
 # DO allow breaks here before NSX, so don't include it\r
 $LB20NonBreaks $CM* ($BA | $HY | $NS);\r
+\r
+\r
 ^$CM+ ($BA | $HY | $NS);\r
 \r
 $BB $CM* [^$CB];                                  #  $BB  x\r
index f9a2e32b45269a5f54e90a7bebeb790591d8021b..caae23226cae1d44f87402b57e4ff57557738752 100644 (file)
@@ -8,13 +8,10 @@
 #         Line Breaking Rules\r
 #         Implement default line breaking as defined by\r
 #         Unicode Standard Annex #14 Revision 40 for Unicode 11.0\r
-#         http://www.unicode.org/reports/tr14/\r
+#         http://www.unicode.org/reports/tr14/, with the following modification:\r
 #\r
-#         tailored as noted in 2nd paragraph below.\r
-#\r
-#         TODO:  Rule LB 8 remains as it was in Unicode 5.2\r
-#         This is only because of a limitation of ICU break engine implementation,\r
-#         not because the older behavior is desirable.\r
+#         Boundaries between hyphens and following letters are suppressed when\r
+#         there is a boundary preceding the hyphen. See rule 20.9\r
 #\r
 #         This tailors the line break behavior to correspond to CSS\r
 #         line-break=loose (BCP47 -u-lb-loose) as defined for Chinese & Japanese.\r
@@ -42,6 +39,7 @@ $AI = [:LineBreak =  Ambiguous:];
 $AL = [:LineBreak =  Alphabetic:];\r
 $BAX = [\u2010 \u2013];\r
 $BA = [[:LineBreak =  Break_After:] - $BAX];\r
+$HH = [\u2010];     # \u2010 is HYPHEN, default line break is BA.\r
 $BB = [:LineBreak =  Break_Before:];\r
 $BK = [:LineBreak =  Mandatory_Break:];\r
 $B2 = [:LineBreak =  Break_Both:];\r
@@ -151,12 +149,11 @@ $CAN_CM $CM*  [$SP $ZW];
 \r
 #\r
 # LB 8         Break after zero width space\r
-#              TODO:  ZW SP* <break>\r
-#              An engine change is required to write the reverse rule for this.\r
-#              For now, leave the Unicode 5.2 rule, ZW <break>\r
+#              ZW SP* ÷\r
 #\r
 $LB8Breaks    = [$LB4Breaks $ZW];\r
 $LB8NonBreaks = [[$LB4NonBreaks] - [$ZW]];\r
+$ZW $SP* / [^$SP $ZW $LB4Breaks];\r
 \r
 # LB 8a        ZWJ x            Do not break Emoji ZWJ sequences.\r
 #\r
@@ -251,18 +248,25 @@ $LB18NonBreaks $CM* $QU;
 #         QU  x\r
 $QU $CM* .;\r
 \r
-\r
 # LB 20\r
 #        <break>  $CB\r
 #        $CB   <break>\r
-\r
+#\r
 $LB20NonBreaks = [$LB18NonBreaks - $CB];\r
 \r
+# LB 20.09    Don't break between Hyphens and Letters when there is a break preceding the hyphen.\r
+#             Originally added as a Finnish tailoring, now promoted to default ICU behavior.\r
+#             Note: this is not default UAX-14 behaviour. See issue ICU-8151.\r
+#\r
+^($HY | $HH) $CM* $ALPlus;\r
+\r
 # LB 21        x   (BA | HY | NS)\r
 #           BB x\r
 #\r
 # DO allow breaks here before $BAX and $NSX, so don't include them\r
 $LB20NonBreaks $CM* ($BA | $HY | $NS);\r
+\r
+\r
 ^$CM+ ($BA | $HY | $NS);\r
 \r
 $BB $CM* [^$CB];                                  #  $BB  x\r
diff --git a/source/data/brkitr/rules/line_loose_fi.txt b/source/data/brkitr/rules/line_loose_fi.txt
deleted file mode 100644 (file)
index 765576c..0000000
+++ /dev/null
@@ -1,342 +0,0 @@
-# Copyright (C) 2016 and later: Unicode, Inc. and others.\r
-# License & terms of use: http://www.unicode.org/copyright.html\r
-# Copyright (c) 2002-2016  International Business Machines Corporation and\r
-# others. All Rights Reserved.\r
-#\r
-#  file:  line_loose_fi.txt\r
-#\r
-#         Line Breaking Rules\r
-#         Implement default line breaking as defined by\r
-#         Unicode Standard Annex #14 Revision 40 for Unicode 11.0\r
-#         http://www.unicode.org/reports/tr14/\r
-#         tailored as noted in 3rd paragraph below.\r
-#\r
-#         TODO:  Rule LB 8 remains as it was in Unicode 5.2\r
-#         This is only because of a limitation of ICU break engine implementation,\r
-#         not because the older behavior is desirable.\r
-#\r
-#         This tailors the line break behavior both for Finnish and to correpond to CSS\r
-#         line-break=loose (BCP47 -u-lb-loose) as defined for languages other than\r
-#         Chinese & Japanese.\r
-#         It sets characters of class CJ to behave like ID.\r
-#         In addition, it allows breaks before 3005, 303B, 309D, 309E, 30FD, 30FE (all NS).\r
-#\r
-#  Character Classes defined by TR 14.\r
-#\r
-\r
-!!chain;\r
-!!quoted_literals_only;\r
-\r
-$AI = [:LineBreak =  Ambiguous:];\r
-$AL = [:LineBreak =  Alphabetic:];\r
-$BA = [:LineBreak =  Break_After:];\r
-$HH = [\u2010];     # \u2010 is HYPHEN, default line break is BA.\r
-$BB = [:LineBreak =  Break_Before:];\r
-$BK = [:LineBreak =  Mandatory_Break:];\r
-$B2 = [:LineBreak =  Break_Both:];\r
-$CB = [:LineBreak =  Contingent_Break:];\r
-$CJ = [:LineBreak =  Conditional_Japanese_Starter:];\r
-$CL = [:LineBreak =  Close_Punctuation:];\r
-# $CM = [:LineBreak =  Combining_Mark:];\r
-$CP = [:LineBreak =  Close_Parenthesis:];\r
-$CR = [:LineBreak =  Carriage_Return:];\r
-$EB = [:LineBreak =  EB:];\r
-$EM = [:LineBreak =  EM:];\r
-$EX = [:LineBreak =  Exclamation:];\r
-$GL = [:LineBreak =  Glue:];\r
-$HL = [:LineBreak =  Hebrew_Letter:];\r
-$HY = [:LineBreak =  Hyphen:];\r
-$H2 = [:LineBreak =  H2:];\r
-$H3 = [:LineBreak =  H3:];\r
-# CSS Loose tailoring: CJ resolves to ID\r
-$ID = [[:LineBreak =  Ideographic:] $CJ];\r
-$IN = [:LineBreak =  Inseperable:];\r
-$IS = [:LineBreak =  Infix_Numeric:];\r
-$JL = [:LineBreak =  JL:];\r
-$JV = [:LineBreak =  JV:];\r
-$JT = [:LineBreak =  JT:];\r
-$LF = [:LineBreak =  Line_Feed:];\r
-$NL = [:LineBreak =  Next_Line:];\r
-$NSX = [\u3005 \u303B \u309D \u309E \u30FD \u30FE];\r
-$NS = [[:LineBreak =  Nonstarter:] - $NSX];\r
-$NU = [:LineBreak =  Numeric:];\r
-$OP = [:LineBreak =  Open_Punctuation:];\r
-$PO = [:LineBreak =  Postfix_Numeric:];\r
-$PR = [:LineBreak =  Prefix_Numeric:];\r
-$QU = [:LineBreak =  Quotation:];\r
-$RI = [:LineBreak =  Regional_Indicator:];\r
-$SA = [:LineBreak =  Complex_Context:];\r
-$SG = [:LineBreak =  Surrogate:];\r
-$SP = [:LineBreak =  Space:];\r
-$SY = [:LineBreak =  Break_Symbols:];\r
-$WJ = [:LineBreak =  Word_Joiner:];\r
-$XX = [:LineBreak =  Unknown:];\r
-$ZW = [:LineBreak =  ZWSpace:];\r
-$ZWJ = [:LineBreak = ZWJ:];\r
-\r
-# By LB9, a ZWJ also behaves as a CM. Including it in the definition of CM avoids having to explicitly\r
-#         list it in the numerous rules that use CM.\r
-# By LB1, SA characters with general categor of Mn or Mc also resolve to CM.\r
-\r
-$CM = [[:LineBreak = Combining_Mark:] $ZWJ [$SA & [[:Mn:][:Mc:]]]];\r
-\r
-#   Dictionary character set, for triggering language-based break engines. Currently\r
-#   limited to LineBreak=Complex_Context (SA).\r
-\r
-$dictionary = [$SA];\r
-\r
-#\r
-#  Rule LB1.  By default, treat AI  (characters with ambiguous east Asian width),\r
-#                               SA  (Dictionary chars, excluding Mn and Mc)\r
-#                               SG  (Unpaired Surrogates)\r
-#                               XX  (Unknown, unassigned)\r
-#                         as $AL  (Alphabetic)\r
-#\r
-$ALPlus = [$AL $AI $SG $XX [$SA-[[:Mn:][:Mc:]]]];\r
-\r
-\r
-## -------------------------------------------------\r
-\r
-#\r
-# CAN_CM  is the set of characters that may combine with CM combining chars.\r
-#         Note that Linebreak UAX 14's concept of a combining char and the rules\r
-#         for what they can combine with are _very_ different from the rest of Unicode.\r
-#\r
-#         Note that $CM itself is left out of this set.  If CM is needed as a base\r
-#         it must be listed separately in the rule.\r
-#\r
-$CAN_CM  = [^$SP $BK $CR $LF $NL $ZW $CM];       # Bases that can   take CMs\r
-$CANT_CM = [ $SP $BK $CR $LF $NL $ZW $CM];       # Bases that can't take CMs\r
-\r
-#\r
-# AL_FOLLOW  set of chars that can unconditionally follow an AL\r
-#            Needed in rules where stand-alone $CM s are treated as AL.\r
-#\r
-$AL_FOLLOW      = [$BK $CR $LF $NL $ZW $SP $CL $CP $EX $HL $IS $SY $WJ $GL $OP $QU $BA $HH $HY $NS $IN $NU $PR $PO $ALPlus];\r
-\r
-\r
-#\r
-#  Rule LB 4, 5    Mandatory (Hard) breaks.\r
-#\r
-$LB4Breaks    = [$BK $CR $LF $NL];\r
-$LB4NonBreaks = [^$BK $CR $LF $NL $CM];\r
-$CR $LF {100};\r
-\r
-#\r
-#  LB 6    Do not break before hard line breaks.\r
-#\r
-$LB4NonBreaks?  $LB4Breaks {100};    # LB 5  do not break before hard breaks.\r
-$CAN_CM $CM*    $LB4Breaks {100};\r
-^$CM+           $LB4Breaks {100};\r
-\r
-# LB 7         x SP\r
-#              x ZW\r
-$LB4NonBreaks [$SP $ZW];\r
-$CAN_CM $CM*  [$SP $ZW];\r
-^$CM+         [$SP $ZW];\r
-\r
-#\r
-# LB 8         Break after zero width space\r
-#              TODO:  ZW SP* <break>\r
-#              An engine change is required to write the reverse rule for this.\r
-#              For now, leave the Unicode 5.2 rule, ZW <break>\r
-#\r
-$LB8Breaks    = [$LB4Breaks $ZW];\r
-$LB8NonBreaks = [[$LB4NonBreaks] - [$ZW]];\r
-\r
-# LB 8a        ZWJ x            Do not break Emoji ZWJ sequences.\r
-#\r
-$ZWJ [^$CM];\r
-\r
-# LB 9     Combining marks.      X   $CM needs to behave like X, where X is not $SP, $BK $CR $LF $NL\r
-#                                $CM not covered by the above needs to behave like $AL\r
-#                                See definition of $CAN_CM.\r
-\r
-$CAN_CM $CM+;                   #  Stick together any combining sequences that don't match other rules.\r
-^$CM+;\r
-\r
-#\r
-# LB 11  Do not break before or after WORD JOINER & related characters.\r
-#\r
-$CAN_CM $CM*  $WJ;\r
-$LB8NonBreaks $WJ;\r
-^$CM+         $WJ;\r
-\r
-$WJ $CM* .;\r
-\r
-#\r
-# LB 12  Do not break after NBSP and related characters.\r
-#         GL  x\r
-#\r
-$GL $CM* .;\r
-\r
-#\r
-# LB 12a  Do not break before NBSP and related characters ...\r
-#            [^SP BA HY] x GL\r
-#\r
-[[$LB8NonBreaks] - [$SP $BA $HH $HY]] $CM* $GL;\r
-^$CM+ $GL;\r
-\r
-\r
-\r
-#\r
-# LB 13   Don't break before ']' or '!' or ';' or '/', even after spaces.\r
-#\r
-$LB8NonBreaks $CL;\r
-$CAN_CM $CM*  $CL;\r
-^$CM+         $CL;              # by rule 10, stand-alone CM behaves as AL\r
-\r
-$LB8NonBreaks $CP;\r
-$CAN_CM $CM*  $CP;\r
-^$CM+         $CP;              # by rule 10, stand-alone CM behaves as AL\r
-\r
-$LB8NonBreaks $EX;\r
-$CAN_CM $CM*  $EX;\r
-^$CM+         $EX;              # by rule 10, stand-alone CM behaves as AL\r
-\r
-$LB8NonBreaks $IS;\r
-$CAN_CM $CM*  $IS;\r
-^$CM+         $IS;              # by rule 10, stand-alone CM behaves as AL\r
-\r
-$LB8NonBreaks $SY;\r
-$CAN_CM $CM*  $SY;\r
-^$CM+         $SY;              # by rule 10, stand-alone CM behaves as AL\r
-\r
-\r
-#\r
-# LB 14  Do not break after OP, even after spaces\r
-#\r
-$OP $CM* $SP* .;\r
-\r
-$OP $CM* $SP+ $CM+ $AL_FOLLOW?;    # by rule 10, stand-alone CM behaves as AL\r
-                                   # by rule 8, CM following a SP is stand-alone.\r
-\r
-# LB 15\r
-$QU $CM* $SP* $OP;\r
-\r
-# LB 16\r
-# Do not break between closing punctuation and $NS, even with intervening spaces\r
-# But DO allow a break between closing punctuation and $NSX, don't include it here\r
-($CL | $CP) $CM* $SP* $NS;\r
-\r
-# LB 17\r
-$B2 $CM* $SP* $B2;\r
-\r
-#\r
-# LB 18  Break after spaces.\r
-#\r
-$LB18NonBreaks = [$LB8NonBreaks - [$SP]];\r
-$LB18Breaks    = [$LB8Breaks $SP];\r
-\r
-\r
-# LB 19\r
-#         x QU\r
-$LB18NonBreaks $CM* $QU;\r
-^$CM+               $QU;\r
-\r
-#         QU  x\r
-$QU $CM* .;\r
-\r
-\r
-# LB 20\r
-#        <break>  $CB\r
-#        $CB   <break>\r
-\r
-$LB20NonBreaks = [$LB18NonBreaks - $CB];\r
-\r
-# LB 20.09 added rule for Finnish tailoring\r
-# LB 21        x   (BA | HY | NS)\r
-#           BB x\r
-#\r
-# DO allow breaks here before NSX, so don't include it\r
-$LB20NonBreaks $CM* ($BA | $HH | $HY | $NS) $CM* / $AL;\r
-$LB20NonBreaks $CM* ($BA | $HH | $HY | $NS);\r
-($HY | $HH) $AL;\r
-^$CM+ ($BA | $HY | $HH | $NS);\r
-\r
-$BB $CM* [^$CB];                                  #  $BB  x\r
-$BB $CM* $LB20NonBreaks;\r
-\r
-# LB 21a Don't break after Hebrew + Hyphen\r
-#   HL (HY | BA) x\r
-#\r
-$HL $CM* ($HY | $BA | $HH) $CM* [^$CB]?;\r
-\r
-# LB 21b (forward) Don't break between SY and HL\r
-# (break between HL and SY already disallowed by LB 13 above)\r
-$SY $CM* $HL;\r
-\r
-# LB 22\r
-($ALPlus | $HL) $CM* $IN;\r
-^$CM+    $IN;     #  by rule 10, any otherwise unattached CM behaves as AL\r
-$EX $CM*    $IN;\r
-($ID | $EB | $EM) $CM*  $IN;\r
-# $IN $CM*    $IN;  # delete this rule for CSS loose\r
-$NU $CM*    $IN;\r
-\r
-\r
-# $LB 23\r
-#\r
-($ALPlus | $HL) $CM* $NU;\r
-^$CM+  $NU;       # Rule 10, any otherwise unattached CM behaves as AL\r
-$NU $CM* ($ALPlus | $HL);\r
-\r
-# LB 23a\r
-#\r
-$PR $CM* ($ID | $EB | $EM);\r
-($ID | $EB | $EM) $CM*  $PO;\r
-\r
-\r
-#\r
-# LB 24\r
-#\r
-($PR | $PO) $CM* ($ALPlus | $HL);\r
-($ALPlus | $HL) $CM* ($PR | $PO);\r
-^$CM+ ($PR | $PO);       # Rule 10, any otherwise unattached CM behaves as AL\r
-\r
-#\r
-# LB 25   Numbers.\r
-#\r
-(($PR | $PO) $CM*)? (($OP | $HY) $CM*)? $NU ($CM* ($NU | $SY | $IS))*\r
-    ($CM* ($CL | $CP))? ($CM* ($PR | $PO))?;\r
-\r
-# LB 26  Do not break a Korean syllable\r
-#\r
-$JL $CM* ($JL | $JV | $H2 | $H3);\r
-($JV | $H2) $CM* ($JV | $JT);\r
-($JT | $H3) $CM* $JT;\r
-\r
-# LB 27  Treat korean Syllable Block the same as ID  (don't break it)\r
-($JL | $JV | $JT | $H2 | $H3) $CM* $IN;\r
-($JL | $JV | $JT | $H2 | $H3) $CM* $PO;\r
-$PR $CM* ($JL | $JV | $JT | $H2 | $H3);\r
-\r
-\r
-# LB 28   Do not break between alphabetics\r
-#\r
-($ALPlus | $HL) $CM* ($ALPlus | $HL);\r
-^$CM+ ($ALPlus | $HL);      # The $CM+ is from rule 10, an unattached CM is treated as AL\r
-\r
-# LB 29\r
-$IS $CM* ($ALPlus | $HL);\r
-\r
-# LB 30\r
-($ALPlus | $HL | $NU) $CM* $OP;\r
-^$CM+ $OP;         # The $CM+ is from rule 10, an unattached CM is treated as AL.\r
-$CP $CM* ($ALPlus | $HL | $NU);\r
-\r
-# LB 30a  Do not break between regional indicators. Break after pairs of them.\r
-#         Tricky interaction with LB8a: ZWJ x .   together with ZWJ acting like a CM.\r
-$RI $CM* $RI                 / [[^$BK $CR $LF $NL $SP $ZW $WJ $CL $CP $EX $IS $SY $GL $QU $BA $HY $NS $CM]];\r
-$RI $CM* $RI $CM* [$CM-$ZWJ] / [[^$BK $CR $LF $NL $SP $ZW $WJ $CL $CP $EX $IS $SY $GL $QU $BA $HY $NS $CM]];\r
-$RI $CM* $RI $CM* [$BK $CR $LF $NL $SP $ZW $WJ $CL $CP $EX $IS $SY $GL $QU $BA $HY $NS $ZWJ {eof}];\r
-# note: the preceding rule includes {eof} rather than having the last [set] term qualified with '?'\r
-#       because of the chain-out behavior difference. The rule must chain out only from the [set characters],\r
-#       not from the preceding $RI or $CM, which it would be able to do if the set were optional.\r
-\r
-# LB 30b Do not break between an Emoji Base and an Emoji Modifier\r
-$EB $CM* $EM;\r
-\r
-# LB 31 Break everywhere else.\r
-#       Match a single code point if no other rule applies.\r
-.;\r
index 3e37c23e17d54c46b2acc31cc4cee941dc1eb250..80da310f617a0f6161443ad2bb8ab3301d6355ee 100644 (file)
@@ -8,13 +8,10 @@
 #         Line Breaking Rules\r
 #         Implement default line breaking as defined by\r
 #         Unicode Standard Annex #14 Revision 40 for Unicode 11.0\r
-#         http://www.unicode.org/reports/tr14/\r
+#         http://www.unicode.org/reports/tr14/, with the following modification:\r
 #\r
-#         tailored as noted in 2nd paragraph below.\r
-#\r
-#         TODO:  Rule LB 8 remains as it was in Unicode 5.2\r
-#         This is only because of a limitation of ICU break engine implementation,\r
-#         not because the older behavior is desirable.\r
+#         Boundaries between hyphens and following letters are suppressed when\r
+#         there is a boundary preceding the hyphen. See rule 20.9\r
 #\r
 #         This tailors the line break behavior to correspond to CSS\r
 #         line-break=normal (BCP47 -u-lb-normal) as defined for languages other than\r
@@ -31,6 +28,7 @@
 $AI = [:LineBreak =  Ambiguous:];\r
 $AL = [:LineBreak =  Alphabetic:];\r
 $BA = [:LineBreak =  Break_After:];\r
+$HH = [\u2010];     # \u2010 is HYPHEN, default line break is BA.\r
 $BB = [:LineBreak =  Break_Before:];\r
 $BK = [:LineBreak =  Mandatory_Break:];\r
 $B2 = [:LineBreak =  Break_Both:];\r
@@ -136,12 +134,11 @@ $CAN_CM $CM*  [$SP $ZW];
 \r
 #\r
 # LB 8         Break after zero width space\r
-#              TODO:  ZW SP* <break>\r
-#              An engine change is required to write the reverse rule for this.\r
-#              For now, leave the Unicode 5.2 rule, ZW <break>\r
+#              ZW SP* ÷\r
 #\r
 $LB8Breaks    = [$LB4Breaks $ZW];\r
 $LB8NonBreaks = [[$LB4NonBreaks] - [$ZW]];\r
+$ZW $SP* / [^$SP $ZW $LB4Breaks];\r
 \r
 # LB 8a        ZWJ x            Do not break Emoji ZWJ sequences.\r
 #\r
@@ -234,17 +231,24 @@ $LB18NonBreaks $CM* $QU;
 #         QU  x\r
 $QU $CM* .;\r
 \r
-\r
 # LB 20\r
 #        <break>  $CB\r
 #        $CB   <break>\r
-\r
+#\r
 $LB20NonBreaks = [$LB18NonBreaks - $CB];\r
 \r
+# LB 20.09    Don't break between Hyphens and Letters when there is a break preceding the hyphen.\r
+#             Originally added as a Finnish tailoring, now promoted to default ICU behavior.\r
+#             Note: this is not default UAX-14 behaviour. See issue ICU-8151.\r
+#\r
+^($HY | $HH) $CM* $ALPlus;\r
+\r
 # LB 21        x   (BA | HY | NS)\r
 #           BB x\r
 #\r
 $LB20NonBreaks $CM* ($BA | $HY | $NS);\r
+\r
+\r
 ^$CM+ ($BA | $HY | $NS);\r
 \r
 $BB $CM* [^$CB];                                  #  $BB  x\r
index bd704b627fd034af364b3c7df1a8332e95a3df44..22e00ec669dde56a908a9cae2fb623ff0b1540e9 100644 (file)
@@ -8,13 +8,10 @@
 #         Line Breaking Rules\r
 #         Implement default line breaking as defined by\r
 #         Unicode Standard Annex #14 Revision 40 for Unicode 11.0\r
-#         http://www.unicode.org/reports/tr14/\r
+#         http://www.unicode.org/reports/tr14/, with the following modification:\r
 #\r
-#         tailored as noted in 2nd paragraph below.\r
-#\r
-#         TODO:  Rule LB 8 remains as it was in Unicode 5.2\r
-#         This is only because of a limitation of ICU break engine implementation,\r
-#         not because the older behavior is desirable.\r
+#         Boundaries between hyphens and following letters are suppressed when\r
+#         there is a boundary preceding the hyphen. See rule 20.9\r
 #\r
 #         This tailors the line break behavior to correspond to CSS\r
 #         line-break=normal (BCP47 -u-lb-normal) as defined for Chinese & Japanese.\r
@@ -33,6 +30,7 @@ $AI = [:LineBreak =  Ambiguous:];
 $AL = [:LineBreak =  Alphabetic:];\r
 $BAX = [\u2010 \u2013];\r
 $BA = [[:LineBreak =  Break_After:] - $BAX];\r
+$HH = [\u2010];     # \u2010 is HYPHEN, default line break is BA.\r
 $BB = [:LineBreak =  Break_Before:];\r
 $BK = [:LineBreak =  Mandatory_Break:];\r
 $B2 = [:LineBreak =  Break_Both:];\r
@@ -139,12 +137,11 @@ $CAN_CM $CM*  [$SP $ZW];
 \r
 #\r
 # LB 8         Break after zero width space\r
-#              TODO:  ZW SP* <break>\r
-#              An engine change is required to write the reverse rule for this.\r
-#              For now, leave the Unicode 5.2 rule, ZW <break>\r
+#              ZW SP* ÷\r
 #\r
 $LB8Breaks    = [$LB4Breaks $ZW];\r
 $LB8NonBreaks = [[$LB4NonBreaks] - [$ZW]];\r
+$ZW $SP* / [^$SP $ZW $LB4Breaks];\r
 \r
 # LB 8a        ZWJ x            Do not break Emoji ZWJ sequences.\r
 #\r
@@ -239,18 +236,25 @@ $LB18NonBreaks $CM* $QU;
 #         QU  x\r
 $QU $CM* .;\r
 \r
-\r
 # LB 20\r
 #        <break>  $CB\r
 #        $CB   <break>\r
-\r
+#\r
 $LB20NonBreaks = [$LB18NonBreaks - $CB];\r
 \r
+# LB 20.09    Don't break between Hyphens and Letters when there is a break preceding the hyphen.\r
+#             Originally added as a Finnish tailoring, now promoted to default ICU behavior.\r
+#             Note: this is not default UAX-14 behaviour. See issue ICU-8151.\r
+#\r
+^($HY | $HH) $CM* $ALPlus;\r
+\r
 # LB 21        x   (BA | HY | NS)\r
 #           BB x\r
 #\r
-# DO allow breaks here before $BAXcm and $NSXcm, so don't include them\r
+# DO allow breaks here before $BAX and $NSX, so don't include them\r
 $LB20NonBreaks $CM* ($BA | $HY | $NS);\r
+\r
+\r
 ^$CM+ ($BA | $HY | $NS);\r
 \r
 $BB $CM* [^$CB];                                  #  $BB  x\r
diff --git a/source/data/brkitr/rules/line_normal_fi.txt b/source/data/brkitr/rules/line_normal_fi.txt
deleted file mode 100644 (file)
index a37e5bb..0000000
+++ /dev/null
@@ -1,338 +0,0 @@
-# Copyright (C) 2016 and later: Unicode, Inc. and others.\r
-# License & terms of use: http://www.unicode.org/copyright.html\r
-# Copyright (c) 2002-2016  International Business Machines Corporation and\r
-# others. All Rights Reserved.\r
-#\r
-#  file:  line_normal_fi.txt\r
-#\r
-#         Line Breaking Rules\r
-#         Implement default line breaking as defined by\r
-#         Unicode Standard Annex #14 Revision 40 for Unicode 11.0\r
-#         http://www.unicode.org/reports/tr14/\r
-#         tailored as noted in 3rd paragraph below.\r
-#\r
-#         TODO:  Rule LB 8 remains as it was in Unicode 5.2\r
-#         This is only because of a limitation of ICU break engine implementation,\r
-#         not because the older behavior is desirable.\r
-#\r
-#         This tailors the line break behavior for Finnish, and to correspond to CSS\r
-#         line-break=normal (BCP47 -u-lb-normal) as defined for languages other than\r
-#         Chinese & Japanese.\r
-#         It sets characters of class CJ to behave like ID.\r
-\r
-#\r
-#  Character Classes defined by TR 14.\r
-#\r
-\r
-!!chain;\r
-!!quoted_literals_only;\r
-\r
-$AI = [:LineBreak =  Ambiguous:];\r
-$AL = [:LineBreak =  Alphabetic:];\r
-$BA = [:LineBreak =  Break_After:];\r
-$HH = [\u2010];     # \u2010 is HYPHEN, default line break is BA.\r
-$BB = [:LineBreak =  Break_Before:];\r
-$BK = [:LineBreak =  Mandatory_Break:];\r
-$B2 = [:LineBreak =  Break_Both:];\r
-$CB = [:LineBreak =  Contingent_Break:];\r
-$CJ = [:LineBreak =  Conditional_Japanese_Starter:];\r
-$CL = [:LineBreak =  Close_Punctuation:];\r
-# $CM = [:LineBreak =  Combining_Mark:];\r
-$CP = [:LineBreak =  Close_Parenthesis:];\r
-$CR = [:LineBreak =  Carriage_Return:];\r
-$EB = [:LineBreak =  EB:];\r
-$EM = [:LineBreak =  EM:];\r
-$EX = [:LineBreak =  Exclamation:];\r
-$GL = [:LineBreak =  Glue:];\r
-$HL = [:LineBreak =  Hebrew_Letter:];\r
-$HY = [:LineBreak =  Hyphen:];\r
-$H2 = [:LineBreak =  H2:];\r
-$H3 = [:LineBreak =  H3:];\r
-# CSS Normal tailoring: CJ resolves to ID\r
-$ID = [[:LineBreak =  Ideographic:] $CJ];\r
-$IN = [:LineBreak =  Inseperable:];\r
-$IS = [:LineBreak =  Infix_Numeric:];\r
-$JL = [:LineBreak =  JL:];\r
-$JV = [:LineBreak =  JV:];\r
-$JT = [:LineBreak =  JT:];\r
-$LF = [:LineBreak =  Line_Feed:];\r
-$NL = [:LineBreak =  Next_Line:];\r
-$NS = [:LineBreak =  Nonstarter:];\r
-$NU = [:LineBreak =  Numeric:];\r
-$OP = [:LineBreak =  Open_Punctuation:];\r
-$PO = [:LineBreak =  Postfix_Numeric:];\r
-$PR = [:LineBreak =  Prefix_Numeric:];\r
-$QU = [:LineBreak =  Quotation:];\r
-$RI = [:LineBreak =  Regional_Indicator:];\r
-$SA = [:LineBreak =  Complex_Context:];\r
-$SG = [:LineBreak =  Surrogate:];\r
-$SP = [:LineBreak =  Space:];\r
-$SY = [:LineBreak =  Break_Symbols:];\r
-$WJ = [:LineBreak =  Word_Joiner:];\r
-$XX = [:LineBreak =  Unknown:];\r
-$ZW = [:LineBreak =  ZWSpace:];\r
-$ZWJ = [:LineBreak = ZWJ:];\r
-\r
-# By LB9, a ZWJ also behaves as a CM. Including it in the definition of CM avoids having to explicitly\r
-#         list it in the numerous rules that use CM.\r
-# By LB1, SA characters with general categor of Mn or Mc also resolve to CM.\r
-\r
-$CM = [[:LineBreak = Combining_Mark:] $ZWJ [$SA & [[:Mn:][:Mc:]]]];\r
-\r
-#   Dictionary character set, for triggering language-based break engines. Currently\r
-#   limited to LineBreak=Complex_Context (SA).\r
-\r
-$dictionary = [$SA];\r
-\r
-#\r
-#  Rule LB1.  By default, treat AI  (characters with ambiguous east Asian width),\r
-#                               SA  (Dictionary chars, excluding Mn and Mc)\r
-#                               SG  (Unpaired Surrogates)\r
-#                               XX  (Unknown, unassigned)\r
-#                         as $AL  (Alphabetic)\r
-#\r
-$ALPlus = [$AL $AI $SG $XX [$SA-[[:Mn:][:Mc:]]]];\r
-\r
-\r
-## -------------------------------------------------\r
-\r
-#\r
-# CAN_CM  is the set of characters that may combine with CM combining chars.\r
-#         Note that Linebreak UAX 14's concept of a combining char and the rules\r
-#         for what they can combine with are _very_ different from the rest of Unicode.\r
-#\r
-#         Note that $CM itself is left out of this set.  If CM is needed as a base\r
-#         it must be listed separately in the rule.\r
-#\r
-$CAN_CM  = [^$SP $BK $CR $LF $NL $ZW $CM];       # Bases that can   take CMs\r
-$CANT_CM = [ $SP $BK $CR $LF $NL $ZW $CM];       # Bases that can't take CMs\r
-\r
-#\r
-# AL_FOLLOW  set of chars that can unconditionally follow an AL\r
-#            Needed in rules where stand-alone $CM s are treated as AL.\r
-#\r
-$AL_FOLLOW      = [$BK $CR $LF $NL $ZW $SP $CL $CP $EX $HL $IS $SY $WJ $GL $OP $QU $BA $HH $HY $NS $IN $NU $PR $PO $ALPlus];\r
-\r
-\r
-#\r
-#  Rule LB 4, 5    Mandatory (Hard) breaks.\r
-#\r
-$LB4Breaks    = [$BK $CR $LF $NL];\r
-$LB4NonBreaks = [^$BK $CR $LF $NL $CM];\r
-$CR $LF {100};\r
-\r
-#\r
-#  LB 6    Do not break before hard line breaks.\r
-#\r
-$LB4NonBreaks?  $LB4Breaks {100};    # LB 5  do not break before hard breaks.\r
-$CAN_CM $CM*    $LB4Breaks {100};\r
-^$CM+           $LB4Breaks {100};\r
-\r
-# LB 7         x SP\r
-#              x ZW\r
-$LB4NonBreaks [$SP $ZW];\r
-$CAN_CM $CM*  [$SP $ZW];\r
-^$CM+         [$SP $ZW];\r
-\r
-#\r
-# LB 8         Break after zero width space\r
-#              TODO:  ZW SP* <break>\r
-#              An engine change is required to write the reverse rule for this.\r
-#              For now, leave the Unicode 5.2 rule, ZW <break>\r
-#\r
-$LB8Breaks    = [$LB4Breaks $ZW];\r
-$LB8NonBreaks = [[$LB4NonBreaks] - [$ZW]];\r
-\r
-# LB 8a        ZWJ x            Do not break Emoji ZWJ sequences.\r
-#\r
-$ZWJ [^$CM];\r
-\r
-# LB 9     Combining marks.      X   $CM needs to behave like X, where X is not $SP, $BK $CR $LF $NL\r
-#                                $CM not covered by the above needs to behave like $AL\r
-#                                See definition of $CAN_CM.\r
-\r
-$CAN_CM $CM+;                   #  Stick together any combining sequences that don't match other rules.\r
-^$CM+;\r
-\r
-#\r
-# LB 11  Do not break before or after WORD JOINER & related characters.\r
-#\r
-$CAN_CM $CM*  $WJ;\r
-$LB8NonBreaks $WJ;\r
-^$CM+         $WJ;\r
-\r
-$WJ $CM* .;\r
-\r
-#\r
-# LB 12  Do not break after NBSP and related characters.\r
-#         GL  x\r
-#\r
-$GL $CM* .;\r
-\r
-#\r
-# LB 12a  Do not break before NBSP and related characters ...\r
-#            [^SP BA HY] x GL\r
-#\r
-[[$LB8NonBreaks] - [$SP $BA $HH $HY]] $CM* $GL;\r
-^$CM+ $GL;\r
-\r
-\r
-\r
-#\r
-# LB 13   Don't break before ']' or '!' or ';' or '/', even after spaces.\r
-#\r
-$LB8NonBreaks $CL;\r
-$CAN_CM $CM*  $CL;\r
-^$CM+         $CL;              # by rule 10, stand-alone CM behaves as AL\r
-\r
-$LB8NonBreaks $CP;\r
-$CAN_CM $CM*  $CP;\r
-^$CM+         $CP;              # by rule 10, stand-alone CM behaves as AL\r
-\r
-$LB8NonBreaks $EX;\r
-$CAN_CM $CM*  $EX;\r
-^$CM+         $EX;              # by rule 10, stand-alone CM behaves as AL\r
-\r
-$LB8NonBreaks $IS;\r
-$CAN_CM $CM*  $IS;\r
-^$CM+         $IS;              # by rule 10, stand-alone CM behaves as AL\r
-\r
-$LB8NonBreaks $SY;\r
-$CAN_CM $CM*  $SY;\r
-^$CM+         $SY;              # by rule 10, stand-alone CM behaves as AL\r
-\r
-\r
-#\r
-# LB 14  Do not break after OP, even after spaces\r
-#\r
-$OP $CM* $SP* .;\r
-\r
-$OP $CM* $SP+ $CM+ $AL_FOLLOW?;    # by rule 10, stand-alone CM behaves as AL\r
-                                   # by rule 8, CM following a SP is stand-alone.\r
-\r
-# LB 15\r
-$QU $CM* $SP* $OP;\r
-\r
-# LB 16\r
-($CL | $CP) $CM* $SP* $NS;\r
-\r
-# LB 17\r
-$B2 $CM* $SP* $B2;\r
-\r
-#\r
-# LB 18  Break after spaces.\r
-#\r
-$LB18NonBreaks = [$LB8NonBreaks - [$SP]];\r
-$LB18Breaks    = [$LB8Breaks $SP];\r
-\r
-\r
-# LB 19\r
-#         x QU\r
-$LB18NonBreaks $CM* $QU;\r
-^$CM+               $QU;\r
-\r
-#         QU  x\r
-$QU $CM* .;\r
-\r
-\r
-# LB 20\r
-#        <break>  $CB\r
-#        $CB   <break>\r
-\r
-$LB20NonBreaks = [$LB18NonBreaks - $CB];\r
-\r
-# LB 20.09 added rule for Finnish tailoring\r
-# LB 21        x   (BA | HY | NS)\r
-#           BB x\r
-#\r
-$LB20NonBreaks $CM* ($BA | $HH | $HY | $NS) $CM* / $AL;\r
-$LB20NonBreaks $CM* ($BA | $HH | $HY | $NS);\r
-($HY | $HH) $AL;\r
-^$CM+ ($BA | $HY | $HH | $NS);\r
-\r
-$BB $CM* [^$CB];                                  #  $BB  x\r
-$BB $CM* $LB20NonBreaks;\r
-\r
-# LB 21a Don't break after Hebrew + Hyphen\r
-#   HL (HY | BA) x\r
-#\r
-$HL $CM* ($HY | $BA | $HH) $CM* [^$CB]?;\r
-\r
-# LB 21b (forward) Don't break between SY and HL\r
-# (break between HL and SY already disallowed by LB 13 above)\r
-$SY $CM* $HL;\r
-\r
-# LB 22\r
-($ALPlus | $HL) $CM* $IN;\r
-^$CM+    $IN;     #  by rule 10, any otherwise unattached CM behaves as AL\r
-$EX $CM*    $IN;\r
-($ID | $EB | $EM) $CM*  $IN;\r
-$IN $CM*    $IN;\r
-$NU $CM*    $IN;\r
-\r
-\r
-# $LB 23\r
-#\r
-($ALPlus | $HL) $CM* $NU;\r
-^$CM+  $NU;       # Rule 10, any otherwise unattached CM behaves as AL\r
-$NU $CM* ($ALPlus | $HL);\r
-\r
-# LB 23a\r
-#\r
-$PR $CM* ($ID | $EB | $EM);\r
-($ID | $EB | $EM) $CM*  $PO;\r
-\r
-\r
-#\r
-# LB 24\r
-#\r
-($PR | $PO) $CM* ($ALPlus | $HL);\r
-($ALPlus | $HL) $CM* ($PR | $PO);\r
-^$CM+ ($PR | $PO);       # Rule 10, any otherwise unattached CM behaves as AL\r
-\r
-#\r
-# LB 25   Numbers.\r
-#\r
-(($PR | $PO) $CM*)? (($OP | $HY) $CM*)? $NU ($CM* ($NU | $SY | $IS))*\r
-    ($CM* ($CL | $CP))? ($CM* ($PR | $PO))?;\r
-\r
-# LB 26  Do not break a Korean syllable\r
-#\r
-$JL $CM* ($JL | $JV | $H2 | $H3);\r
-($JV | $H2) $CM* ($JV | $JT);\r
-($JT | $H3) $CM* $JT;\r
-\r
-# LB 27  Treat korean Syllable Block the same as ID  (don't break it)\r
-($JL | $JV | $JT | $H2 | $H3) $CM* $IN;\r
-($JL | $JV | $JT | $H2 | $H3) $CM* $PO;\r
-$PR $CM* ($JL | $JV | $JT | $H2 | $H3);\r
-\r
-\r
-# LB 28   Do not break between alphabetics\r
-#\r
-($ALPlus | $HL) $CM* ($ALPlus | $HL);\r
-^$CM+ ($ALPlus | $HL);      # The $CM+ is from rule 10, an unattached CM is treated as AL\r
-\r
-# LB 29\r
-$IS $CM* ($ALPlus | $HL);\r
-\r
-# LB 30\r
-($ALPlus | $HL | $NU) $CM* $OP;\r
-^$CM+ $OP;         # The $CM+ is from rule 10, an unattached CM is treated as AL.\r
-$CP $CM* ($ALPlus | $HL | $NU);\r
-\r
-# LB 30a  Do not break between regional indicators. Break after pairs of them.\r
-#         Tricky interaction with LB8a: ZWJ x .   together with ZWJ acting like a CM.\r
-$RI $CM* $RI                 / [[^$BK $CR $LF $NL $SP $ZW $WJ $CL $CP $EX $IS $SY $GL $QU $BA $HY $NS $CM]];\r
-$RI $CM* $RI $CM* [$CM-$ZWJ] / [[^$BK $CR $LF $NL $SP $ZW $WJ $CL $CP $EX $IS $SY $GL $QU $BA $HY $NS $CM]];\r
-$RI $CM* $RI $CM* [$BK $CR $LF $NL $SP $ZW $WJ $CL $CP $EX $IS $SY $GL $QU $BA $HY $NS $ZWJ {eof}];\r
-# note: the preceding rule includes {eof} rather than having the last [set] term qualified with '?'\r
-#       because of the chain-out behavior difference. The rule must chain out only from the [set characters],\r
-#       not from the preceding $RI or $CM, which it would be able to do if the set were optional.\r
-\r
-# LB 30b Do not break between an Emoji Base and an Emoji Modifier\r
-$EB $CM* $EM;\r
-\r
-# LB 31 Break everywhere else.\r
-#       Match a single code point if no other rule applies.\r
-.;\r
index da0b68db6cba8e3dbf0c49fb86b691f7d25a7c22..599cec9b7a545dde7ace3d6a066a2390b0e3e62c 100644 (file)
@@ -59,7 +59,7 @@
         </taskdef>\r
     </target>\r
     <!-- target for generating ICU data -->\r
-    <target name="all" depends="locales, collation, rbnf, supplementalData, metadata, metaZones, windowsZones, likelySubtags, plurals, numberingSystems, translit, brkitr, keyTypeData, genderList, dayPeriods" />\r
+    <target name="all" depends="locales, collation, rbnf, supplementalData, metadata, metaZones, windowsZones, likelySubtags, plurals, pluralRanges, numberingSystems, translit, brkitr, keyTypeData, genderList, dayPeriods" />\r
     <!-- parallel target -->\r
     <target name="pall" depends="init">\r
         <parallel threadsPerProcessor ="1">\r
             </run>\r
         </cldr-build>\r
     </target>\r
+    <target name="pluralRanges" depends="init,setup" description="builds pluralRanges.txt from pluralRanges.xml">\r
+        <cldr-build toolName="org.unicode.cldr.icu.NewLdml2IcuConverter" destFile="pluralRanges.txt" noArgs="true">\r
+            <!-- launch the tool and generate the data after reading the config file -->\r
+            <run>\r
+                <args>\r
+                    <arg name="-s" value="${env.CLDR_DIR}/common/supplemental" />\r
+                    <arg name="-d" value="${env.ICU4C_DIR}/source/data/misc"/>\r
+                    <arg name="-t" value="pluralRanges"/>\r
+                </args>\r
+            </run>\r
+        </cldr-build>\r
+    </target>\r
     <target name="numberingSystems" depends="init,setup" description="builds numberingSystems.txt from numberingSystems.xml">\r
         <cldr-build toolName="org.unicode.cldr.icu.NewLdml2IcuConverter" destFile="numberingSystems.txt" noArgs="true">\r
             <!-- launch the tool and generate the data after reading the config file -->\r
             <fileset id="plurals" dir="${env.ICU4C_DIR}/source/data/misc">\r
                 <include name="plurals.txt" />\r
             </fileset>\r
+            <fileset id="pluralRanges" dir="${env.ICU4C_DIR}/source/data/misc">\r
+                <include name="pluralRanges.txt" />\r
+            </fileset>\r
             <fileset id="numberingSystems" dir="${env.ICU4C_DIR}/source/data/misc">\r
                 <include name="numberingSystems.txt" />\r
             </fileset>\r
index 5a5c2627e3d2ac32e3bd172645b69c7bb321b802..edb5dae9762d1dbb2a408eb2f3312e52cf7c03bd 100644 (file)
@@ -9,9 +9,6 @@
 #    - CLDR (the source of most of the data, and some Java tools)\r
 #    - ICU4J  (used only for checking the converted data)\r
 #    - ICU4C  (the destination for the new data, and the source for some of it)\r
-#             (Either check out ICU4C from Subversion, or download the additional \r
-#              icu4c-*-data.zip file so that the icu/source/data/ directory is fully\r
-#              populated.)\r
 #\r
 # For an official CLDR data integration into ICU, these should be clean, freshly\r
 # checked-out. For released CLDR sources, an alternative to checking out sources\r
 #\r
 # IP address whitelisting\r
 #\r
-# Parts of the build process (notably building the new ICU data filescin step 4)\r
+# Parts of the build process (notably building the new ICU data files in step 4)\r
 # require http: access to files in the CLDR repository; for example, processing\r
 # the files in icu4c/source/data/xml/ may require access to\r
 # http://www.unicode.org/repos/cldr/trunk/common/dtd/ldml.dtd\r
 #\r
-# The IP address of the system requesting such access be whitelisted with Unicode,\r
-# otherwise there may be timeout failures; contact Rick McGowan.\r
+# Unless you cache the dtds locally by e.g. setting -DCLDR_DTD_CACHE=/tmp, the\r
+# builds will repeatedly make such requests, which will likely result in the\r
+# Unicode server blocking access and consequent timeout failures. You can\r
+# prevent such blockage by having the external IP address of your build system\r
+# whitelisted with Unicode; contact Rick McGowan or Steven Loomis.\r
 #\r
 #----\r
 #\r
@@ -66,6 +66,8 @@
 #\r
 #                -Xmx3072m, to give Java more memory; otherwise it may run out\r
 #                 of heap.\r
+#                -DCLDR_DTD_CACHE=/tmp, to reduce frequent http: access to dtds\r
+#                 and consequent blockage by Unicode server.\r
 #\r
 # b) CLDR-related variables\r
 #\r
 # 1a. Java and ant variables, adjust for your system\r
 \r
 export JAVA_HOME=`/usr/libexec/java_home`\r
-export ANT_OPTS="-Xmx3072m"\r
+export ANT_OPTS="-Xmx3072m -DCLDR_DTD_CACHE=/tmp"\r
 \r
 # 1b. CLDR variables, adjust for your setup; with cygwin it might be e.g.\r
 # CLDR_DIR=`cygpath -wp /build/cldr`\r
@@ -184,7 +186,7 @@ ant all 2>&1 | tee /tmp/cldr-newData-buildLog.txt
 # (if there are no changes, you may not need to proceed further). Make sure the\r
 # list seems reasonable.\r
 \r
-svn status\r
+git status\r
 \r
 # 6. Fix any errors, investigate any warnings. Some warnings are expected,\r
 # including  warnings for missing versions in locale names which specify some\r
@@ -258,11 +260,11 @@ ant check 2>&1 | tee /tmp/icu4j-newData-antCheck.txt
 # commit the changes.\r
 \r
 cd $ICU4C_DIR/source\r
-svn status\r
+git status\r
 # add or remove as necessary\r
 \r
 cd $ICU4J_ROOT\r
-svn status\r
+git status\r
 # add or remove as necessary\r
 \r
 cd $HOME/icu/trunk/\r
index fa56607bed2f1e6397eaf09cc7401b5e633fa7f0..fdf1094bed17a546b4d892c1f9a508004dca87a4 100644 (file)
@@ -5,7 +5,7 @@ af{
     collations{\r
         standard{\r
             Sequence{"&N<<<ʼn"}\r
-            Version{"33.1"}\r
+            Version{"34"}\r
         }\r
     }\r
 }\r
index 8ba15bc3640da8a8189e88a8d0a981f234b2a43f..6244cffe3c550804fc5e6e8fb07361ac6835b4e2 100644 (file)
@@ -5,7 +5,7 @@ am{
     collations{\r
         standard{\r
             Sequence{"[reorder Ethi]"}\r
-            Version{"33.1"}\r
+            Version{"34"}\r
         }\r
     }\r
 }\r
index 12f48513df97ad044be90eb16d25807b35fcc7e3..9eb1118cb2cc6ad10d0225b55ad00e51d0512d4a 100644 (file)
@@ -9,7 +9,7 @@ ar{
                 "&ت<<ة<<<ﺔ<<<ﺓ"\r
                 "&ي<<ى<<<ﯨ<<<ﯩ<<<ﻰ<<<ﻯ<<<ﲐ<<<ﱝ"\r
             }\r
-            Version{"33.1"}\r
+            Version{"34"}\r
         }\r
         standard{\r
             Sequence{\r
@@ -397,7 +397,7 @@ ar{
                 "‎&ۓ‎=ﮰ‎=ﮱ"\r
                 "‎&ۀ‎=ﮤ‎=ﮥ"\r
             }\r
-            Version{"33.1"}\r
+            Version{"34"}\r
         }\r
     }\r
 }\r
index 2f3dec986e4c44e7fac5a9f129eb3895fbf8b27e..b4c4412b6b8f6893f16c84be7d0d84a91632fd43 100644 (file)
@@ -11,7 +11,7 @@ as{
                 "&[before 1]ত<ৎ=ত্\u200D"\r
                 "&হ<ক্ষ"\r
             }\r
-            Version{"33.1"}\r
+            Version{"34"}\r
         }\r
     }\r
 }\r
index 3e4e5bbf80e6b5cb1e72ca8f1b55c127aabe8c4c..e2230234fd089925905f2cbf645204aa871e45f8 100644 (file)
@@ -9,7 +9,7 @@ az{
                 "[import az-u-co-standard]"\r
                 "[reorder others]"\r
             }\r
-            Version{"33.1"}\r
+            Version{"34"}\r
         }\r
         standard{\r
             Sequence{\r
@@ -26,7 +26,7 @@ az{
                 "&H<x<<<X"\r
                 "&Z<w<<<W"\r
             }\r
-            Version{"33.1"}\r
+            Version{"34"}\r
         }\r
     }\r
 }\r
index c1f797d7065edb45c0e4c3555ed3f0a0e353c42e..03fb3be9de3943d0094f18e602e430918c9e2737 100644 (file)
@@ -9,7 +9,7 @@ be{
                 "&Е<ё<<<Ё"\r
                 "&у<ў<<<Ў"\r
             }\r
-            Version{"33.1"}\r
+            Version{"34"}\r
         }\r
     }\r
 }\r
index c2b1fc107249cc4562ff9343674640111eaa5cd7..91f86ac13b7df3989ca6694e86cfe8e4f6e2e77c 100644 (file)
@@ -5,7 +5,7 @@ bg{
     collations{\r
         standard{\r
             Sequence{"[reorder Cyrl]"}\r
-            Version{"33.1"}\r
+            Version{"34"}\r
         }\r
     }\r
 }\r
index 5ba5fc174cacb64bda3968f4989c075ebf36fbb1..6fffc8d8a38b7bcd67d73302c757807a3705c71d 100644 (file)
@@ -9,7 +9,7 @@ bn{
                 "[reorder Beng Deva Guru Gujr Orya Taml Telu Knda Mlym Sinh]"\r
                 "&ঔ<ং<ঃ<ঁ"\r
             }\r
-            Version{"33.1"}\r
+            Version{"34"}\r
         }\r
         traditional{\r
             Sequence{\r
@@ -629,7 +629,7 @@ bn{
                 "&যৌ<<<য়ৌ"\r
                 "&য্<<<য়্"\r
             }\r
-            Version{"33.1"}\r
+            Version{"34"}\r
         }\r
     }\r
 }\r
index 39c6e41f44b7535775ffdc4e97484bb06b84f8ec..a9f189c52063f54f9566865b2cdf1e22033db6c0 100644 (file)
@@ -5,11 +5,11 @@ bs{
     collations{\r
         search{\r
             Sequence{"[import hr-u-co-search]"}\r
-            Version{"33.1"}\r
+            Version{"34"}\r
         }\r
         standard{\r
             Sequence{"[import hr]"}\r
-            Version{"33.1"}\r
+            Version{"34"}\r
         }\r
     }\r
 }\r
index 98ab128203b2ccbf26a822252f662e16de25e590..f7544de269eb61179bf07898ebc50b0958d9bbda 100644 (file)
@@ -5,7 +5,7 @@ bs_Cyrl{
     collations{\r
         standard{\r
             Sequence{"[import sr]"}\r
-            Version{"33.1"}\r
+            Version{"34"}\r
         }\r
     }\r
 }\r
index 06d1f3a0a11f42b74bc36125c924187524d11136..251ba3427c0b7ae6ba3ee9d9033cc48d4a845cbc 100644 (file)
@@ -8,7 +8,7 @@ ca{
                 "[import und-u-co-search]"\r
                 "&L<ŀ=l·<<<Ŀ=L·"\r
             }\r
-            Version{"33.1"}\r
+            Version{"34"}\r
         }\r
     }\r
 }\r
index da9383280dc78c5e8c58141b3cabcc5788ea0a93..8ecfde34cd908ad8b4aec0d91852ac9a2e419d16 100644 (file)
@@ -5,7 +5,7 @@ chr{
     collations{\r
         standard{\r
             Sequence{"[reorder Cher]"}\r
-            Version{"33.1"}\r
+            Version{"34"}\r
         }\r
     }\r
 }\r
index a326becda81927f52daa1fc991d743cc59b830c1..b898f36d18fece84f80171f0f984decffa29c604 100644 (file)
@@ -1,6 +1,6 @@
 # © 2016 and later: Unicode, Inc. and others.\r
 # License & terms of use: http://www.unicode.org/copyright.html#License\r
-COLLATION_CLDR_VERSION = 33.1\r
+COLLATION_CLDR_VERSION = 34\r
 # A list of txt's to build\r
 # Note:\r
 #\r
@@ -59,15 +59,16 @@ COLLATION_SOURCE = $(COLLATION_EMPTY_SOURCE) af.txt am.txt ar.txt\
  hsb.txt hu.txt hy.txt id.txt ig.txt\\r
  is.txt it.txt ja.txt ka.txt kk.txt\\r
  kl.txt km.txt kn.txt ko.txt kok.txt\\r
- ky.txt lb.txt lkt.txt ln.txt lo.txt\\r
- lt.txt lv.txt mk.txt ml.txt mn.txt\\r
- mr.txt ms.txt mt.txt my.txt nb.txt\\r
- ne.txt nl.txt nn.txt om.txt or.txt\\r
- pa.txt pl.txt ps.txt pt.txt ro.txt\\r
- ru.txt se.txt si.txt sk.txt sl.txt\\r
- smn.txt sq.txt sr.txt sr_Latn.txt sv.txt\\r
- sw.txt ta.txt te.txt th.txt to.txt\\r
- tr.txt ug.txt uk.txt ur.txt uz.txt\\r
- vi.txt wae.txt wo.txt yi.txt yo.txt\\r
- zh.txt zh_Hant.txt zu.txt\r
+ ku.txt ky.txt lb.txt lkt.txt ln.txt\\r
+ lo.txt lt.txt lv.txt mk.txt ml.txt\\r
+ mn.txt mr.txt ms.txt mt.txt my.txt\\r
+ nb.txt ne.txt nl.txt nn.txt om.txt\\r
+ or.txt pa.txt pl.txt ps.txt pt.txt\\r
+ ro.txt ru.txt se.txt si.txt sk.txt\\r
+ sl.txt smn.txt sq.txt sr.txt sr_Latn.txt\\r
+ sv.txt sw.txt ta.txt te.txt th.txt\\r
+ tk.txt to.txt tr.txt ug.txt uk.txt\\r
+ ur.txt uz.txt vi.txt wae.txt wo.txt\\r
+ xh.txt yi.txt yo.txt zh.txt zh_Hant.txt\\r
+ zu.txt\r
 \r
index 21b487457ecb68655aeb0033d31d8b110b17bf97..fff6d6078cc400cabc46a36df271f35c55cfeac6 100644 (file)
@@ -11,7 +11,7 @@ cs{
                 "&S<š<<<Š"\r
                 "&Z<ž<<<Ž"\r
             }\r
-            Version{"33.1"}\r
+            Version{"34"}\r
         }\r
     }\r
 }\r
index 8c1a2664e97d279fa7bc947c5fe8f8951088eb1f..39b737698286c3c3cdf2353a306b332a8618df3a 100644 (file)
@@ -14,7 +14,7 @@ cy{
                 "&R<rh<<<Rh<<<RH"\r
                 "&T<th<<<Th<<<TH"\r
             }\r
-            Version{"33.1"}\r
+            Version{"34"}\r
         }\r
     }\r
 }\r
index 8a5dc04819733205414484e77b6b8fd1566dc5d7..ccea594bef45012b4bb82b75e6b1ce1ebd7b2db0 100644 (file)
@@ -9,7 +9,7 @@ da{
                 "[import da-u-co-standard]"\r
                 "[caseFirst off]"\r
             }\r
-            Version{"33.1"}\r
+            Version{"34"}\r
         }\r
         standard{\r
             Sequence{\r
@@ -21,7 +21,7 @@ da{
                 "&[before 1]ǀ<æ<<<Æ<<ä<<<Ä<ø<<<Ø<<ö<<<Ö<<ő<<<Ő<å<<<Å<<<aa<<<Aa<<<AA"\r
                 "&oe<<œ<<<Œ"\r
             }\r
-            Version{"33.1"}\r
+            Version{"34"}\r
         }\r
     }\r
 }\r
index 2de4c147523ef5bc5391c0b1ff62275cc1e966eb..d4a3327911ad199457bb3089ea357c07a34c2105 100644 (file)
@@ -9,14 +9,14 @@ de{
                 "&OE<<ö<<<Ö"\r
                 "&UE<<ü<<<Ü"\r
             }\r
-            Version{"33.1"}\r
+            Version{"34"}\r
         }\r
         search{\r
             Sequence{\r
                 "[import und-u-co-search]"\r
                 "[import de-u-co-phonebk]"\r
             }\r
-            Version{"33.1"}\r
+            Version{"34"}\r
         }\r
     }\r
 }\r
index 3ac767fe8c419db9d6bb8ff10c2c6bf5300d847b..8893d2b98f15861ac3b4b04461e7d035328481fd 100644 (file)
@@ -10,7 +10,7 @@ de_AT{
                 "&u<ü<<<Ü"\r
                 "&ss<ß<<<ẞ"\r
             }\r
-            Version{"33.1"}\r
+            Version{"34"}\r
         }\r
     }\r
 }\r
index c045dadd189061bd0af07a002fc864ec48652f6f..8f2bb9a8e4bfce60a560b912f87ab8bed44d7d62 100644 (file)
@@ -14,7 +14,7 @@ dsb{
                 "&S<š<<<Š<ś<<<Ś"\r
                 "&Z<ž<<<Ž<ź<<<Ź"\r
             }\r
-            Version{"33.1"}\r
+            Version{"34"}\r
         }\r
     }\r
 }\r
index fa435a6245eef9765fa671129415dc39af61d35c..6b5907e07323e85982dad129ed2ed725e91e0add 100644 (file)
@@ -17,7 +17,7 @@ ee{
                 "&T<ts<<<Ts<<<TS"\r
                 "&V<ʋ<<<Ʋ"\r
             }\r
-            Version{"33.1"}\r
+            Version{"34"}\r
         }\r
     }\r
 }\r
index 54d357821a090482c8dbccf72fe5538ec2376674..21dafbb21cddf370a2016b4a46ea495934eed5d3 100644 (file)
@@ -8,7 +8,7 @@ el{
                 "[normalization on]"\r
                 "[reorder Grek]"\r
             }\r
-            Version{"33.1"}\r
+            Version{"34"}\r
         }\r
     }\r
 }\r
index faf55a3033923344e86c62c5ad86d728e9c661c4..c0972eb2287e7fa6fe794949d3f5c514469a8bc3 100644 (file)
@@ -8,7 +8,7 @@ en_US_POSIX{
                 "&A<*'\u0020'-'/'<*0-'@'<*ABCDEFGHIJKLMNOPQRSTUVWXYZ<*'['-'`'<*abcdefghijklmnopqrstuvwxyz"\r
                 "<*'{'-'\u007F'"\r
             }\r
-            Version{"33.1"}\r
+            Version{"34"}\r
         }\r
     }\r
 }\r
index 1beebabcde98b590cf764f59c0459a2657ac3cdb..c105c5c11d1487eec179655dedd4a714fd1c7a73 100644 (file)
@@ -12,7 +12,7 @@ eo{
                 "&S<ŝ<<<Ŝ"\r
                 "&U<ŭ<<<Ŭ"\r
             }\r
-            Version{"33.1"}\r
+            Version{"34"}\r
         }\r
     }\r
 }\r
index 681533e4e55f9c166d4a49b857367f9d4ea01d2b..e69479b2fab4e441d545ed4fe654cb030c49645e 100644 (file)
@@ -8,11 +8,11 @@ es{
                 "[import und-u-co-search]"\r
                 "&N<ñ<<<Ñ"\r
             }\r
-            Version{"33.1"}\r
+            Version{"34"}\r
         }\r
         standard{\r
             Sequence{"&N<ñ<<<Ñ"}\r
-            Version{"33.1"}\r
+            Version{"34"}\r
         }\r
         traditional{\r
             Sequence{\r
@@ -20,7 +20,7 @@ es{
                 "&C<ch<<<Ch<<<CH"\r
                 "&l<ll<<<Ll<<<LL"\r
             }\r
-            Version{"33.1"}\r
+            Version{"34"}\r
         }\r
     }\r
 }\r
index dcb66730969e93be8a628fe82c23d975315e822f..feb8a7ac0e4208086e9044a7e96c9f16ecf5f87b 100644 (file)
@@ -8,7 +8,7 @@ et{
                 "&[before 1]T<š<<<Š<z<<<Z<ž<<<Ž"\r
                 "&[before 1]X<õ<<<Õ<ä<<<Ä<ö<<<Ö<ü<<<Ü"\r
             }\r
-            Version{"33.1"}\r
+            Version{"34"}\r
         }\r
     }\r
 }\r
index c468156313253ef031b435a517f693b1c314da63..1ec4f5589b5fca81a708709a033685c8b21c67d4 100644 (file)
@@ -16,7 +16,7 @@ fa{
                 "&ۏ<ه<<ە<<ہ<<ة<<ۃ<<ۀ<<ھ"\r
                 "&ی<<*ىےيېۑۍێ"\r
             }\r
-            Version{"33.1"}\r
+            Version{"34"}\r
         }\r
     }\r
 }\r
index 3d8b82d1398357e26d1cbbe7a79927b0d2ab8f54..b288abf1e2b8949e23459235b1e1e7bcbec217f5 100644 (file)
@@ -5,7 +5,7 @@ fa_AF{
     collations{\r
         standard{\r
             Sequence{"[import ps]"}\r
-            Version{"33.1"}\r
+            Version{"34"}\r
         }\r
     }\r
 }\r
index 7287462f62ab5af99e89ae7183625eb8ace96dd0..304a3c3a09c3f0b902df3b38e87a7329196c671b 100644 (file)
@@ -8,7 +8,7 @@ fi{
                 "[import und-u-co-search]"\r
                 "[import fi-u-co-trad]"\r
             }\r
-            Version{"33.1"}\r
+            Version{"34"}\r
         }\r
         standard{\r
             Sequence{\r
@@ -20,7 +20,7 @@ fi{
                 "&Z\u0335<<ʒ<<<Ʒ"\r
                 "&[before 1]ǀ<å<<<Å<ä<<<Ä<<æ<<<Æ<ö<<<Ö<<ø<<<Ø"\r
             }\r
-            Version{"33.1"}\r
+            Version{"34"}\r
         }\r
         traditional{\r
             Sequence{\r
@@ -31,7 +31,7 @@ fi{
                 "&Y<<ü<<<Ü<<ű<<<Ű"\r
                 "&[before 1]ǀ<å<<<Å<ä<<<Ä<<æ<<<Æ<ö<<<Ö<<ø<<<Ø<<ő<<<Ő<<õ<<<Õ<<œ<<<Œ"\r
             }\r
-            Version{"33.1"}\r
+            Version{"34"}\r
         }\r
     }\r
 }\r
index 61f129ab2f82abf91fda3e9da4d1c7d84da9c3a8..4fd1e3702d64cb81e6d5e379886337a3a984ab75 100644 (file)
@@ -5,7 +5,7 @@ fil{
     collations{\r
         standard{\r
             Sequence{"&N<ñ<<<Ñ<ng<<<Ng<<<NG"}\r
-            Version{"33.1"}\r
+            Version{"34"}\r
         }\r
     }\r
 }\r
index 89438498953f0a1701d3724abc8625e182761b8b..da25a48ee59e45de7cdb6cccede1b8661c108b62 100644 (file)
@@ -8,7 +8,7 @@ fo{
                 "[import und-u-co-search]"\r
                 "[import fo-u-co-standard]"\r
             }\r
-            Version{"33.1"}\r
+            Version{"34"}\r
         }\r
         standard{\r
             Sequence{\r
@@ -18,7 +18,7 @@ fo{
                 "&Y<<ü<<<Ü<<ű<<<Ű"\r
                 "&[before 1]ǀ<æ<<<Æ<<ä<<<Ä<<ę<<<Ę<ø<<<Ø<<ö<<<Ö<<ő<<<Ő<<œ<<<Œ<å<<<Å<<<aa<<<Aa<<<AA"\r
             }\r
-            Version{"33.1"}\r
+            Version{"34"}\r
         }\r
     }\r
 }\r
index 9b48c7f40d3a3446398c3be79a85192e784f11b4..09a32fae22ddda9e050207473d6de20b0913d746 100644 (file)
@@ -5,7 +5,7 @@ fr_CA{
     collations{\r
         standard{\r
             Sequence{"[backwards 2]"}\r
-            Version{"33.1"}\r
+            Version{"34"}\r
         }\r
     }\r
 }\r
index db548b44c7b389ecb0a167fc94b0fbfbbc76d075..544c8c7827298b8ef3e1667352ca18f65d5abb34 100644 (file)
@@ -5,11 +5,11 @@ gl{
     collations{\r
         search{\r
             Sequence{"[import es-u-co-search]"}\r
-            Version{"33.1"}\r
+            Version{"34"}\r
         }\r
         standard{\r
             Sequence{"[import es]"}\r
-            Version{"33.1"}\r
+            Version{"34"}\r
         }\r
     }\r
 }\r
index 3c33c797563ace56b2ebc80c12ae168d245f9784..62df43d58fa7e3a8ee4f29cb2df6a9aabc4ae969 100644 (file)
@@ -9,7 +9,7 @@ gu{
                 "[reorder Gujr Deva Beng Guru Orya Taml Telu Knda Mlym Sinh]"\r
                 "&ૐ<ં<<ઁ<ઃ"\r
             }\r
-            Version{"33.1"}\r
+            Version{"34"}\r
         }\r
     }\r
 }\r
index 462358545a1e6b522fcec854aef769f76e6ea0c5..acb860c317af63b63f145f00150a58228ebdc195 100644 (file)
@@ -12,7 +12,7 @@ ha{
                 "&T<ts<<<Ts<<<TS"\r
                 "&Y<ƴ<<<ʼy<<<''y<<<Ƴ<<<ʼY<<<''Y"\r
             }\r
-            Version{"33.1"}\r
+            Version{"34"}\r
         }\r
     }\r
 }\r
index 0d64ed60aa56a2ebff1ecf7021fc6cb3deac9bfb..20a2b3b8326919b9f45cbaf0693060c1ffded828 100644 (file)
@@ -8,7 +8,7 @@ haw{
                 "&a<e<<<E<i<<<I<o<<<O<u<<<U"\r
                 "&w<ʻ"\r
             }\r
-            Version{"33.1"}\r
+            Version{"34"}\r
         }\r
     }\r
 }\r
index 94e39f56dcf05b5f96e919e7bd4d9e10b08e4285..b50588124a79f6aee81df230ffcad071e045698b 100644 (file)
@@ -11,7 +11,7 @@ he{
                 "‎&״"\r
                 "<<'\u0022'"\r
             }\r
-            Version{"33.1"}\r
+            Version{"34"}\r
         }\r
         standard{\r
             Sequence{\r
@@ -20,7 +20,7 @@ he{
                 "&[before 2]''<<׳"\r
                 "&[before 2]'\u0022'<<״"\r
             }\r
-            Version{"33.1"}\r
+            Version{"34"}\r
         }\r
     }\r
 }\r
index 86cc276b25302915db1157d33e52ee3206a11314..80f6949d4eb8edf88f9c530c7037b4cb77a40ec5 100644 (file)
@@ -9,7 +9,7 @@ hi{
                 "[reorder Deva Beng Guru Gujr Orya Taml Telu Knda Mlym Sinh]"\r
                 "&ॐ<ं<<ँ<ः"\r
             }\r
-            Version{"33.1"}\r
+            Version{"34"}\r
         }\r
     }\r
 }\r
index da8c40b744b803e606f9a4e4847cbff8b0174759..f72f60e94ff05133904275e68549409b7694ad51 100644 (file)
@@ -9,7 +9,7 @@ hr{
                 "[import hr-u-co-standard]"\r
                 "[reorder others]"\r
             }\r
-            Version{"33.1"}\r
+            Version{"34"}\r
         }\r
         standard{\r
             Sequence{\r
@@ -21,7 +21,7 @@ hr{
                 "&S<š<<<Š"\r
                 "&Z<ž<<<Ž"\r
             }\r
-            Version{"33.1"}\r
+            Version{"34"}\r
         }\r
     }\r
 }\r
index 2e47b262dabc67934c16fa6c8cda2f94a73cf289..adf26e41840cf82f9ee0a9793d9fa82afb507bf0 100644 (file)
@@ -13,7 +13,7 @@ hsb{
                 "&S<š<<<Š"\r
                 "&Z<ž<<<Ž<ź<<<Ź"\r
             }\r
-            Version{"33.1"}\r
+            Version{"34"}\r
         }\r
     }\r
 }\r
index 9615c26a3950f330c6ad6e90da0c66d4ab2bd2c9..ee063c599dad2bd9c0806d065fdf28ffd9a13f05 100644 (file)
@@ -44,7 +44,7 @@ hu{
                 "&Zs<<<Zzs/zs"\r
                 "&ZS<<<ZZS/ZS"\r
             }\r
-            Version{"33.1"}\r
+            Version{"34"}\r
         }\r
     }\r
 }\r
index 3687798c91dc5bf6b118e703b9d030c230394fd6..1b30998002cdaf108496e7a951411ae86f4dc490 100644 (file)
@@ -8,7 +8,7 @@ hy{
                 "[reorder Armn]"\r
                 "&ք<և<<<Եւ"\r
             }\r
-            Version{"33.1"}\r
+            Version{"34"}\r
         }\r
     }\r
 }\r
index fe77f2c63dcb5bcafa7848eee9011bbb824cd97e..cd2f0841832928c16310cc983d09b0b780f3527c 100644 (file)
@@ -15,7 +15,7 @@ ig{
                 "&S<sh<<<Sh<<<SH"\r
                 "&U<ụ<<<Ụ"\r
             }\r
-            Version{"33.1"}\r
+            Version{"34"}\r
         }\r
     }\r
 }\r
index 1731c1ac1e413175fbad02d1a12d267f5a2021e7..27e7d3390b4f796099009ff2e0c4fd076f19191d 100644 (file)
@@ -8,7 +8,7 @@ is{
                 "[import und-u-co-search]"\r
                 "[import is-u-co-standard]"\r
             }\r
-            Version{"33.1"}\r
+            Version{"34"}\r
         }\r
         standard{\r
             Sequence{\r
@@ -21,7 +21,7 @@ is{
                 "&[before 1]z<ý<<<Ý"\r
                 "&[before 1]ǀ<æ<<<Æ<<ä<<<Ä<ö<<<Ö<<ø<<<Ø<å<<<Å"\r
             }\r
-            Version{"33.1"}\r
+            Version{"34"}\r
         }\r
     }\r
 }\r
index a44025c5da19153ade99b89b07a31285edca1524..fe4cb63135930ea283a16d191fba945b178683b0 100644 (file)
@@ -412,21 +412,21 @@ ja{
                 "&「=「"\r
                 "&」=」"\r
             }\r
-            Version{"33.1"}\r
+            Version{"34"}\r
         }\r
         standard{\r
             Sequence{\r
                 "[import ja-u-co-private-kana]"\r
                 "&[last regular]<*亜唖娃阿哀愛挨姶逢葵茜穐悪握渥旭葦芦鯵梓圧斡扱宛姐虻飴絢綾鮎或粟袷安庵按暗案闇鞍杏以伊位依偉囲夷委威尉惟意慰易椅為畏異移維緯胃萎衣謂違遺医井亥域育郁磯一壱溢逸稲茨芋鰯允印咽員因姻引飲淫胤蔭院陰隠韻吋右宇烏羽迂雨卯鵜窺丑碓臼渦嘘唄欝蔚鰻姥厩浦瓜閏噂云運雲荏餌叡営嬰影映曳栄永泳洩瑛盈穎頴英衛詠鋭液疫益駅悦謁越閲榎厭円園堰奄宴延怨掩援沿演炎焔煙燕猿縁艶苑薗遠鉛鴛塩於汚甥凹央奥往応押旺横欧殴王翁襖鴬鴎黄岡沖荻億屋憶臆桶牡乙俺卸恩温穏音下化仮何伽価佳加可嘉夏嫁家寡科暇果架歌河火珂禍禾稼箇花苛茄荷華菓蝦課嘩貨迦過霞蚊俄峨我牙画臥芽蛾賀雅餓駕介会解回塊壊廻快怪悔恢懐戒拐改魁晦械海灰界皆絵芥蟹開階貝凱劾外咳害崖慨概涯碍蓋街該鎧骸浬馨蛙垣柿蛎鈎劃嚇各廓拡撹格核殻獲確穫覚角赫較郭閣隔革学岳楽額顎掛笠樫橿梶鰍潟割喝恰括活渇滑葛褐轄且鰹叶椛樺鞄株兜竃蒲釜鎌噛鴨栢茅萱粥刈苅瓦乾侃冠寒刊勘勧巻喚堪姦完官寛干幹患感慣憾換敢柑桓棺款歓汗漢澗潅環甘監看竿管簡緩缶翰肝艦莞観諌貫還鑑間閑関陥韓館舘丸含岸巌玩癌眼岩翫贋雁頑顔願企伎危喜器基奇嬉寄岐希幾忌揮机旗既期棋棄機帰毅気汽畿祈季稀紀徽規記貴起軌輝飢騎鬼亀偽儀妓宜戯技擬欺犠疑祇義蟻誼議掬菊鞠吉吃喫桔橘詰砧杵黍却客脚虐逆丘久仇休及吸宮弓急救朽求汲泣灸球究窮笈級糾給旧牛去居巨拒拠挙渠虚許距鋸漁禦魚亨享京供侠僑兇競共凶協匡卿叫喬境峡強彊怯恐恭挟教橋況狂狭矯胸脅興蕎郷鏡響饗驚仰凝尭暁業局曲極玉桐粁僅勤均巾錦斤欣欽琴禁禽筋緊芹菌衿襟謹近金吟銀九倶句区狗玖矩苦躯駆駈駒具愚虞喰空偶寓遇隅串櫛釧屑屈掘窟沓靴轡窪熊隈粂栗繰桑鍬勲君薫訓群軍郡卦袈祁係傾刑兄啓圭珪型契形径恵慶慧憩掲携敬景桂渓畦稽系経継繋罫茎荊蛍計詣警軽頚鶏芸迎鯨劇戟撃激隙桁傑欠決潔穴結血訣月件倹倦健兼券剣喧圏堅嫌建憲懸拳捲検権牽犬献研硯絹県肩見謙賢軒遣鍵険顕験鹸元原厳幻弦減源玄現絃舷言諺限乎個古呼固姑孤己庫弧戸故枯湖狐糊袴股胡菰虎誇跨鈷雇顧鼓五互伍午呉吾娯後御悟梧檎瑚碁語誤護醐乞鯉交佼侯候倖光公功効勾厚口向后喉坑垢好孔孝宏工巧巷幸広庚康弘恒慌抗拘控攻昂晃更杭校梗構江洪浩港溝甲皇硬稿糠紅紘絞綱耕考肯肱腔膏航荒行衡講貢購郊酵鉱砿鋼閤降項香高鴻剛劫号合壕拷濠豪轟麹克刻告国穀酷鵠黒獄漉腰甑忽惚骨狛込此頃今困坤墾婚恨懇昏昆根梱混痕紺艮魂些佐叉唆嵯左差査沙瑳砂詐鎖裟坐座挫債催再最哉塞妻宰彩才採栽歳済災采犀砕砦祭斎細菜裁載際剤在材罪財冴坂阪堺榊肴咲崎埼碕鷺作削咋搾昨朔柵窄策索錯桜鮭笹匙冊刷察拶撮擦札殺薩雑皐鯖捌錆鮫皿晒三傘参山惨撒散桟燦珊産算纂蚕讃賛酸餐斬暫残仕仔伺使刺司史嗣四士始姉姿子屍市師志思指支孜斯施旨枝止死氏獅祉私糸紙紫肢脂至視詞詩試誌諮資賜雌飼歯事似侍児字寺慈持時次滋治爾璽痔磁示而耳自蒔辞汐鹿式識鴫竺軸宍雫七叱執失嫉室悉湿漆疾質実蔀篠偲柴芝屡蕊縞舎写射捨赦斜煮社紗者謝車遮蛇邪借勺尺杓灼爵酌釈錫若寂弱惹主取守手朱殊狩珠種腫趣酒首儒受呪寿授樹綬需囚収周宗就州修愁拾洲秀秋終繍習臭舟蒐衆襲讐蹴輯週酋酬集醜什住充十従戎柔汁渋獣縦重銃叔夙宿淑祝縮粛塾熟出術述俊峻春瞬竣舜駿准循旬楯殉淳準潤盾純巡遵醇順処初所暑曙渚庶緒署書薯藷諸助叙女序徐恕鋤除傷償勝匠升召哨商唱嘗奨妾娼宵将小少尚庄床廠彰承抄招掌捷昇昌昭晶松梢樟樵沼消渉湘焼焦照症省硝礁祥称章笑粧紹肖菖蒋蕉衝裳訟証詔詳象賞醤鉦鍾鐘障鞘上丈丞乗冗剰城場壌嬢常情擾条杖浄状畳穣蒸譲醸錠嘱埴飾拭植殖燭織職色触食蝕辱尻伸信侵唇娠寝審心慎振新晋森榛浸深申疹真神秦紳臣芯薪親診身辛進針震人仁刃塵壬尋甚尽腎訊迅陣靭笥諏須酢図厨逗吹垂帥推水炊睡粋翠衰遂酔錐錘随瑞髄崇嵩数枢趨雛据杉椙菅頗雀裾澄摺寸世瀬畝是凄制勢姓征性成政整星晴棲栖正清牲生盛精聖声製西誠誓請逝醒青静斉税脆隻席惜戚斥昔析石積籍績脊責赤跡蹟碩切拙接摂折設窃節説雪絶舌蝉仙先千占宣専尖川戦扇撰栓栴泉浅洗染潜煎煽旋穿箭線繊羨腺舛船薦詮賎践選遷銭銑閃鮮前善漸然全禅繕膳糎噌塑岨措曾曽楚狙疏疎礎祖租粗素組蘇訴阻遡鼠僧創双叢倉喪壮奏爽宋層匝惣想捜掃挿掻操早曹巣槍槽漕燥争痩相窓糟総綜聡草荘葬蒼藻装走送遭鎗霜騒像増憎臓蔵贈造促側則即息捉束測足速俗属賊族続卒袖其揃存孫尊損村遜他多太汰詑唾堕妥惰打柁舵楕陀駄騨体堆対耐岱帯待怠態戴替泰滞胎腿苔袋貸退逮隊黛鯛代台大第醍題鷹滝瀧卓啄宅托択拓沢濯琢託鐸濁諾茸凧蛸只叩但達辰奪脱巽竪辿棚谷狸鱈樽誰丹単嘆坦担探旦歎淡湛炭短端箪綻耽胆蛋誕鍛団壇弾断暖檀段男談値知地弛恥智池痴稚置致蜘遅馳築畜竹筑蓄逐秩窒茶嫡着中仲宙忠抽昼柱注虫衷註酎鋳駐樗瀦猪苧著貯丁兆凋喋寵帖帳庁弔張彫徴懲挑暢朝潮牒町眺聴脹腸蝶調諜超跳銚長頂鳥勅捗直朕沈珍賃鎮陳津墜椎槌追鎚痛通塚栂掴槻佃漬柘辻蔦綴鍔椿潰坪壷嬬紬爪吊釣鶴亭低停偵剃貞呈堤定帝底庭廷弟悌抵挺提梯汀碇禎程締艇訂諦蹄逓邸鄭釘鼎泥摘擢敵滴的笛適鏑溺哲徹撤轍迭鉄典填天展店添纏甜貼転顛点伝殿澱田電兎吐堵塗妬屠徒斗杜渡登菟賭途都鍍砥砺努度土奴怒倒党冬凍刀唐塔塘套宕島嶋悼投搭東桃梼棟盗淘湯涛灯燈当痘祷等答筒糖統到董蕩藤討謄豆踏逃透鐙陶頭騰闘働動同堂導憧撞洞瞳童胴萄道銅峠鴇匿得徳涜特督禿篤毒独読栃橡凸突椴届鳶苫寅酉瀞噸屯惇敦沌豚遁頓呑曇鈍奈那内乍凪薙謎灘捺鍋楢馴縄畷南楠軟難汝二尼弐迩匂賑肉虹廿日乳入如尿韮任妊忍認濡禰祢寧葱猫熱年念捻撚燃粘乃廼之埜嚢悩濃納能脳膿農覗蚤巴把播覇杷波派琶破婆罵芭馬俳廃拝排敗杯盃牌背肺輩配倍培媒梅楳煤狽買売賠陪這蝿秤矧萩伯剥博拍柏泊白箔粕舶薄迫曝漠爆縛莫駁麦函箱硲箸肇筈櫨幡肌畑畠八鉢溌発醗髪伐罰抜筏閥鳩噺塙蛤隼伴判半反叛帆搬斑板氾汎版犯班畔繁般藩販範釆煩頒飯挽晩番盤磐蕃蛮匪卑否妃庇彼悲扉批披斐比泌疲皮碑秘緋罷肥被誹費避非飛樋簸備尾微枇毘琵眉美鼻柊稗匹疋髭彦膝菱肘弼必畢筆逼桧姫媛紐百謬俵彪標氷漂瓢票表評豹廟描病秒苗錨鋲蒜蛭鰭品彬斌浜瀕貧賓頻敏瓶不付埠夫婦富冨布府怖扶敷斧普浮父符腐膚芙譜負賦赴阜附侮撫武舞葡蕪部封楓風葺蕗伏副復幅服福腹複覆淵弗払沸仏物鮒分吻噴墳憤扮焚奮粉糞紛雰文聞丙併兵塀幣平弊柄並蔽閉陛米頁僻壁癖碧別瞥蔑箆偏変片篇編辺返遍便勉娩弁鞭保舗鋪圃捕歩甫補輔穂募墓慕戊暮母簿菩倣俸包呆報奉宝峰峯崩庖抱捧放方朋法泡烹砲縫胞芳萌蓬蜂褒訪豊邦鋒飽鳳鵬乏亡傍剖坊妨帽忘忙房暴望某棒冒紡肪膨謀貌貿鉾防吠頬北僕卜墨撲朴牧睦穆釦勃没殆堀幌奔本翻凡盆摩磨魔麻埋妹昧枚毎哩槙幕膜枕鮪柾鱒桝亦俣又抹末沫迄侭繭麿万慢満漫蔓味未魅巳箕岬密蜜湊蓑稔脈妙粍民眠務夢無牟矛霧鵡椋婿娘冥名命明盟迷銘鳴姪牝滅免棉綿緬面麺摸模茂妄孟毛猛盲網耗蒙儲木黙目杢勿餅尤戻籾貰問悶紋門匁也冶夜爺耶野弥矢厄役約薬訳躍靖柳薮鑓愉愈油癒諭輸唯佑優勇友宥幽悠憂揖有柚湧涌猶猷由祐裕誘遊邑郵雄融夕予余与誉輿預傭幼妖容庸揚揺擁曜楊様洋溶熔用窯羊耀葉蓉要謡踊遥陽養慾抑欲沃浴翌翼淀羅螺裸来莱頼雷洛絡落酪乱卵嵐欄濫藍蘭覧利吏履李梨理璃痢裏裡里離陸律率立葎掠略劉流溜琉留硫粒隆竜龍侶慮旅虜了亮僚両凌寮料梁涼猟療瞭稜糧良諒遼量陵領力緑倫厘林淋燐琳臨輪隣鱗麟瑠塁涙累類令伶例冷励嶺怜玲礼苓鈴隷零霊麗齢暦歴列劣烈裂廉恋憐漣煉簾練聯蓮連錬呂魯櫓炉賂路露労婁廊弄朗楼榔浪漏牢狼篭老聾蝋郎六麓禄肋録論倭和話歪賄脇惑枠鷲亙亘鰐詫藁蕨椀湾碗腕弌丐丕个丱丶丼丿乂乖乘亂亅豫亊舒弍于亞亟亠亢亰亳亶从仍仄仆仂仗仞仭仟价伉佚估佛佝佗佇佶侈侏侘佻佩佰侑佯來侖儘俔俟俎俘俛俑俚俐俤俥倚倨倔倪倥倅伜俶倡倩倬俾俯們倆偃假會偕偐偈做偖偬偸傀傚傅傴傲僉僊傳僂僖僞僥僭僣僮價僵儉儁儂儖儕儔儚儡儺儷儼儻儿兀兒兌兔兢竸兩兪兮冀冂囘册冉冏冑冓冕冖冤冦冢冩冪冫决冱冲冰况冽凅凉凛几處凩凭凰凵凾刄刋刔刎刧刪刮刳刹剏剄剋剌剞剔剪剴剩剳剿剽劍劔劒剱劈劑辨辧劬劭劼劵勁勍勗勞勣勦飭勠勳勵勸勹匆匈甸匍匐匏匕匚匣匯匱匳匸區卆卅丗卉卍凖卞卩卮夘卻卷厂厖厠厦厥厮厰厶參簒雙叟曼燮叮叨叭叺吁吽呀听吭吼吮吶吩吝呎咏呵咎呟呱呷呰咒呻咀呶咄咐咆哇咢咸咥咬哄哈咨咫哂咤咾咼哘哥哦唏唔哽哮哭哺哢唹啀啣啌售啜啅啖啗唸唳啝喙喀咯喊喟啻啾喘喞單啼喃喩喇喨嗚嗅嗟嗄嗜嗤嗔嘔嗷嘖嗾嗽嘛嗹噎噐營嘴嘶嘲嘸噫噤嘯噬噪嚆嚀嚊嚠嚔嚏嚥嚮嚶嚴囂嚼囁囃囀囈囎囑囓囗囮囹圀囿圄圉圈國圍圓團圖嗇圜圦圷圸坎圻址坏坩埀垈坡坿垉垓垠垳垤垪垰埃埆埔埒埓堊埖埣堋堙堝塲堡塢塋塰毀塒堽塹墅墹墟墫墺壞墻墸墮壅壓壑壗壙壘壥壜壤壟壯壺壹壻壼壽夂夊夐夛梦夥夬夭夲夸夾竒奕奐奎奚奘奢奠奧奬奩奸妁妝佞侫妣妲姆姨姜妍姙姚娥娟娑娜娉娚婀婬婉娵娶婢婪媚媼媾嫋嫂媽嫣嫗嫦嫩嫖嫺嫻嬌嬋嬖嬲嫐嬪嬶嬾孃孅孀孑孕孚孛孥孩孰孳孵學斈孺宀它宦宸寃寇寉寔寐寤實寢寞寥寫寰寶寳尅將專對尓尠尢尨尸尹屁屆屎屓屐屏孱屬屮乢屶屹岌岑岔妛岫岻岶岼岷峅岾峇峙峩峽峺峭嶌峪崋崕崗嵜崟崛崑崔崢崚崙崘嵌嵒嵎嵋嵬嵳嵶嶇嶄嶂嶢嶝嶬嶮嶽嶐嶷嶼巉巍巓巒巖巛巫已巵帋帚帙帑帛帶帷幄幃幀幎幗幔幟幢幤幇幵并幺麼广庠廁廂廈廐廏廖廣廝廚廛廢廡廨廩廬廱廳廰廴廸廾弃弉彝彜弋弑弖弩弭弸彁彈彌彎弯彑彖彗彙彡彭彳彷徃徂彿徊很徑徇從徙徘徠徨徭徼忖忻忤忸忱忝悳忿怡恠怙怐怩怎怱怛怕怫怦怏怺恚恁恪恷恟恊恆恍恣恃恤恂恬恫恙悁悍惧悃悚悄悛悖悗悒悧悋惡悸惠惓悴忰悽惆悵惘慍愕愆惶惷愀惴惺愃愡惻惱愍愎慇愾愨愧慊愿愼愬愴愽慂慄慳慷慘慙慚慫慴慯慥慱慟慝慓慵憙憖憇憬憔憚憊憑憫憮懌懊應懷懈懃懆憺懋罹懍懦懣懶懺懴懿懽懼懾戀戈戉戍戌戔戛戞戡截戮戰戲戳扁扎扞扣扛扠扨扼抂抉找抒抓抖拔抃抔拗拑抻拏拿拆擔拈拜拌拊拂拇抛拉挌拮拱挧挂挈拯拵捐挾捍搜捏掖掎掀掫捶掣掏掉掟掵捫捩掾揩揀揆揣揉插揶揄搖搴搆搓搦搶攝搗搨搏摧摯摶摎攪撕撓撥撩撈撼據擒擅擇撻擘擂擱擧舉擠擡抬擣擯攬擶擴擲擺攀擽攘攜攅攤攣攫攴攵攷收攸畋效敖敕敍敘敞敝敲數斂斃變斛斟斫斷旃旆旁旄旌旒旛旙无旡旱杲昊昃旻杳昵昶昴昜晏晄晉晁晞晝晤晧晨晟晢晰暃暈暎暉暄暘暝曁暹曉暾暼曄暸曖曚曠昿曦曩曰曵曷朏朖朞朦朧霸朮朿朶杁朸朷杆杞杠杙杣杤枉杰枩杼杪枌枋枦枡枅枷柯枴柬枳柩枸柤柞柝柢柮枹柎柆柧檜栞框栩桀桍栲桎梳栫桙档桷桿梟梏梭梔條梛梃檮梹桴梵梠梺椏梍桾椁棊椈棘椢椦棡椌棍棔棧棕椶椒椄棗棣椥棹棠棯椨椪椚椣椡棆楹楷楜楸楫楔楾楮椹楴椽楙椰楡楞楝榁楪榲榮槐榿槁槓榾槎寨槊槝榻槃榧樮榑榠榜榕榴槞槨樂樛槿權槹槲槧樅榱樞槭樔槫樊樒櫁樣樓橄樌橲樶橸橇橢橙橦橈樸樢檐檍檠檄檢檣檗蘗檻櫃櫂檸檳檬櫞櫑櫟檪櫚櫪櫻欅蘖櫺欒欖鬱欟欸欷盜欹飮歇歃歉歐歙歔歛歟歡歸歹歿殀殄殃殍殘殕殞殤殪殫殯殲殱殳殷殼毆毋毓毟毬毫毳毯麾氈氓气氛氤氣汞汕汢汪沂沍沚沁沛汾汨汳沒沐泄泱泓沽泗泅泝沮沱沾沺泛泯泙泪洟衍洶洫洽洸洙洵洳洒洌浣涓浤浚浹浙涎涕濤涅淹渕渊涵淇淦涸淆淬淞淌淨淒淅淺淙淤淕淪淮渭湮渮渙湲湟渾渣湫渫湶湍渟湃渺湎渤滿渝游溂溪溘滉溷滓溽溯滄溲滔滕溏溥滂溟潁漑灌滬滸滾漿滲漱滯漲滌漾漓滷澆潺潸澁澀潯潛濳潭澂潼潘澎澑濂潦澳澣澡澤澹濆澪濟濕濬濔濘濱濮濛瀉瀋濺瀑瀁瀏濾瀛瀚潴瀝瀘瀟瀰瀾瀲灑灣炙炒炯烱炬炸炳炮烟烋烝烙焉烽焜焙煥煕熈煦煢煌煖煬熏燻熄熕熨熬燗熹熾燒燉燔燎燠燬燧燵燼燹燿爍爐爛爨爭爬爰爲爻爼爿牀牆牋牘牴牾犂犁犇犒犖犢犧犹犲狃狆狄狎狒狢狠狡狹狷倏猗猊猜猖猝猴猯猩猥猾獎獏默獗獪獨獰獸獵獻獺珈玳珎玻珀珥珮珞璢琅瑯琥珸琲琺瑕琿瑟瑙瑁瑜瑩瑰瑣瑪瑶瑾璋璞璧瓊瓏瓔珱瓠瓣瓧瓩瓮瓲瓰瓱瓸瓷甄甃甅甌甎甍甕甓甞甦甬甼畄畍畊畉畛畆畚畩畤畧畫畭畸當疆疇畴疊疉疂疔疚疝疥疣痂疳痃疵疽疸疼疱痍痊痒痙痣痞痾痿痼瘁痰痺痲痳瘋瘍瘉瘟瘧瘠瘡瘢瘤瘴瘰瘻癇癈癆癜癘癡癢癨癩癪癧癬癰癲癶癸發皀皃皈皋皎皖皓皙皚皰皴皸皹皺盂盍盖盒盞盡盥盧盪蘯盻眈眇眄眩眤眞眥眦眛眷眸睇睚睨睫睛睥睿睾睹瞎瞋瞑瞠瞞瞰瞶瞹瞿瞼瞽瞻矇矍矗矚矜矣矮矼砌砒礦砠礪硅碎硴碆硼碚碌碣碵碪碯磑磆磋磔碾碼磅磊磬磧磚磽磴礇礒礑礙礬礫祀祠祗祟祚祕祓祺祿禊禝禧齋禪禮禳禹禺秉秕秧秬秡秣稈稍稘稙稠稟禀稱稻稾稷穃穗穉穡穢穩龝穰穹穽窈窗窕窘窖窩竈窰窶竅竄窿邃竇竊竍竏竕竓站竚竝竡竢竦竭竰笂笏笊笆笳笘笙笞笵笨笶筐筺笄筍笋筌筅筵筥筴筧筰筱筬筮箝箘箟箍箜箚箋箒箏筝箙篋篁篌篏箴篆篝篩簑簔篦篥籠簀簇簓篳篷簗簍篶簣簧簪簟簷簫簽籌籃籔籏籀籐籘籟籤籖籥籬籵粃粐粤粭粢粫粡粨粳粲粱粮粹粽糀糅糂糘糒糜糢鬻糯糲糴糶糺紆紂紜紕紊絅絋紮紲紿紵絆絳絖絎絲絨絮絏絣經綉絛綏絽綛綺綮綣綵緇綽綫總綢綯緜綸綟綰緘緝緤緞緻緲緡縅縊縣縡縒縱縟縉縋縢繆繦縻縵縹繃縷縲縺繧繝繖繞繙繚繹繪繩繼繻纃緕繽辮繿纈纉續纒纐纓纔纖纎纛纜缸缺罅罌罍罎罐网罕罔罘罟罠罨罩罧罸羂羆羃羈羇羌羔羞羝羚羣羯羲羹羮羶羸譱翅翆翊翕翔翡翦翩翳翹飜耆耄耋耒耘耙耜耡耨耿耻聊聆聒聘聚聟聢聨聳聲聰聶聹聽聿肄肆肅肛肓肚肭冐肬胛胥胙胝胄胚胖脉胯胱脛脩脣脯腋隋腆脾腓腑胼腱腮腥腦腴膃膈膊膀膂膠膕膤膣腟膓膩膰膵膾膸膽臀臂膺臉臍臑臙臘臈臚臟臠臧臺臻臾舁舂舅與舊舍舐舖舩舫舸舳艀艙艘艝艚艟艤艢艨艪艫舮艱艷艸艾芍芒芫芟芻芬苡苣苟苒苴苳苺莓范苻苹苞茆苜茉苙茵茴茖茲茱荀茹荐荅茯茫茗茘莅莚莪莟莢莖茣莎莇莊荼莵荳荵莠莉莨菴萓菫菎菽萃菘萋菁菷萇菠菲萍萢萠莽萸蔆菻葭萪萼蕚蒄葷葫蒭葮蒂葩葆萬葯葹萵蓊葢蒹蒿蒟蓙蓍蒻蓚蓐蓁蓆蓖蒡蔡蓿蓴蔗蔘蔬蔟蔕蔔蓼蕀蕣蕘蕈蕁蘂蕋蕕薀薤薈薑薊薨蕭薔薛藪薇薜蕷蕾薐藉薺藏薹藐藕藝藥藜藹蘊蘓蘋藾藺蘆蘢蘚蘰蘿虍乕虔號虧虱蚓蚣蚩蚪蚋蚌蚶蚯蛄蛆蚰蛉蠣蚫蛔蛞蛩蛬蛟蛛蛯蜒蜆蜈蜀蜃蛻蜑蜉蜍蛹蜊蜴蜿蜷蜻蜥蜩蜚蝠蝟蝸蝌蝎蝴蝗蝨蝮蝙蝓蝣蝪蠅螢螟螂螯蟋螽蟀蟐雖螫蟄螳蟇蟆螻蟯蟲蟠蠏蠍蟾蟶蟷蠎蟒蠑蠖蠕蠢蠡蠱蠶蠹蠧蠻衄衂衒衙衞衢衫袁衾袞衵衽袵衲袂袗袒袮袙袢袍袤袰袿袱裃裄裔裘裙裝裹褂裼裴裨裲褄褌褊褓襃褞褥褪褫襁襄褻褶褸襌褝襠襞襦襤襭襪襯襴襷襾覃覈覊覓覘覡覩覦覬覯覲覺覽覿觀觚觜觝觧觴觸訃訖訐訌訛訝訥訶詁詛詒詆詈詼詭詬詢誅誂誄誨誡誑誥誦誚誣諄諍諂諚諫諳諧諤諱謔諠諢諷諞諛謌謇謚諡謖謐謗謠謳鞫謦謫謾謨譁譌譏譎證譖譛譚譫譟譬譯譴譽讀讌讎讒讓讖讙讚谺豁谿豈豌豎豐豕豢豬豸豺貂貉貅貊貍貎貔豼貘戝貭貪貽貲貳貮貶賈賁賤賣賚賽賺賻贄贅贊贇贏贍贐齎贓賍贔贖赧赭赱赳趁趙跂趾趺跏跚跖跌跛跋跪跫跟跣跼踈踉跿踝踞踐踟蹂踵踰踴蹊蹇蹉蹌蹐蹈蹙蹤蹠踪蹣蹕蹶蹲蹼躁躇躅躄躋躊躓躑躔躙躪躡躬躰軆躱躾軅軈軋軛軣軼軻軫軾輊輅輕輒輙輓輜輟輛輌輦輳輻輹轅轂輾轌轉轆轎轗轜轢轣轤辜辟辣辭辯辷迚迥迢迪迯邇迴逅迹迺逑逕逡逍逞逖逋逧逶逵逹迸遏遐遑遒逎遉逾遖遘遞遨遯遶隨遲邂遽邁邀邊邉邏邨邯邱邵郢郤扈郛鄂鄒鄙鄲鄰酊酖酘酣酥酩酳酲醋醉醂醢醫醯醪醵醴醺釀釁釉釋釐釖釟釡釛釼釵釶鈞釿鈔鈬鈕鈑鉞鉗鉅鉉鉤鉈銕鈿鉋鉐銜銖銓銛鉚鋏銹銷鋩錏鋺鍄錮錙錢錚錣錺錵錻鍜鍠鍼鍮鍖鎰鎬鎭鎔鎹鏖鏗鏨鏥鏘鏃鏝鏐鏈鏤鐚鐔鐓鐃鐇鐐鐶鐫鐵鐡鐺鑁鑒鑄鑛鑠鑢鑞鑪鈩鑰鑵鑷鑽鑚鑼鑾钁鑿閂閇閊閔閖閘閙閠閨閧閭閼閻閹閾闊濶闃闍闌闕闔闖關闡闥闢阡阨阮阯陂陌陏陋陷陜陞陝陟陦陲陬隍隘隕隗險隧隱隲隰隴隶隸隹雎雋雉雍襍雜霍雕雹霄霆霈霓霎霑霏霖霙霤霪霰霹霽霾靄靆靈靂靉靜靠靤靦靨勒靫靱靹鞅靼鞁靺鞆鞋鞏鞐鞜鞨鞦鞣鞳鞴韃韆韈韋韜韭齏韲竟韶韵頏頌頸頤頡頷頽顆顏顋顫顯顰顱顴顳颪颯颱颶飄飃飆飩飫餃餉餒餔餘餡餝餞餤餠餬餮餽餾饂饉饅饐饋饑饒饌饕馗馘馥馭馮馼駟駛駝駘駑駭駮駱駲駻駸騁騏騅駢騙騫騷驅驂驀驃騾驕驍驛驗驟驢驥驤驩驫驪骭骰骼髀髏髑髓體髞髟髢髣髦髯髫髮髴髱髷髻鬆鬘鬚鬟鬢鬣鬥鬧鬨鬩鬪鬮鬯鬲魄魃魏魍魎魑魘魴鮓鮃鮑鮖鮗鮟鮠鮨鮴鯀鯊鮹鯆鯏鯑鯒鯣鯢鯤鯔鯡鰺鯲鯱鯰鰕鰔鰉鰓鰌鰆鰈鰒鰊鰄鰮鰛鰥鰤鰡鰰鱇鰲鱆鰾鱚鱠鱧鱶鱸鳧鳬鳰鴉鴈鳫鴃鴆鴪鴦鶯鴣鴟鵄鴕鴒鵁鴿鴾鵆鵈鵝鵞鵤鵑鵐鵙鵲鶉鶇鶫鵯鵺鶚鶤鶩鶲鷄鷁鶻鶸鶺鷆鷏鷂鷙鷓鷸鷦鷭鷯鷽鸚鸛鸞鹵鹹鹽麁麈麋麌麒麕麑麝麥麩麸麪麭靡黌黎黏黐黔黜點黝黠黥黨黯黴黶黷黹黻黼黽鼇鼈皷鼕鼡鼬鼾齊齒齔齣齟齠齡齦齧齬齪齷齲齶龕龜龠堯槇遙瑤凜熙"\r
             }\r
-            Version{"33.1"}\r
+            Version{"34"}\r
         }\r
         unihan{\r
             Sequence{\r
                 "[import und-u-co-private-unihan]"\r
                 "[import ja-u-co-private-kana]"\r
             }\r
-            Version{"33.1"}\r
+            Version{"34"}\r
         }\r
     }\r
 }\r
index eaacf49dcfa5c1ae9feb771ad3b5b2eb4a687e88..80265a7db0618fe8ce9f93e987f5753d460f4858 100644 (file)
@@ -5,7 +5,7 @@ ka{
     collations{\r
         standard{\r
             Sequence{"[reorder Geor]"}\r
-            Version{"33.1"}\r
+            Version{"34"}\r
         }\r
     }\r
 }\r
index ba63b0d2fdda87372040d78c2d13cccdcb3f5633..59d91172d028153338cf7952cce910fa343b9195 100644 (file)
@@ -10,7 +10,7 @@ kk{
                 "&Ұ<ү<<<Ү"\r
                 "&[before 1]ь<і<<<І"\r
             }\r
-            Version{"33.1"}\r
+            Version{"34"}\r
         }\r
     }\r
 }\r
index e95a050782fd53022aa4d28f4943a61e1046d334..bba0e073faab487cff2f7b156b7ceaaca081de13 100644 (file)
@@ -8,7 +8,7 @@ kl{
                 "[import und-u-co-search]"\r
                 "[import kl-u-co-standard]"\r
             }\r
-            Version{"33.1"}\r
+            Version{"34"}\r
         }\r
         standard{\r
             Sequence{\r
@@ -19,7 +19,7 @@ kl{
                 "&Y<<ü<<<Ü<<ű<<<Ű"\r
                 "&[before 1]ǀ<æ<<<Æ<<ä<<<Ä<<ę<<<Ę<ø<<<Ø<<ö<<<Ö<<ő<<<Ő<<œ<<<Œ<å<<<Å"\r
             }\r
-            Version{"33.1"}\r
+            Version{"34"}\r
         }\r
     }\r
 }\r
index 221b158b00b0d896fd927ad1fd98c381967f5d0d..c24f5ee03e6977c58f20e7624c199de6e715aa81 100644 (file)
@@ -66,7 +66,7 @@ km{
                 "&ឱ<<<ឲ"\r
                 "&ៅ<ុំ<ំ<ាំ<ះ<ិះ<ុះ<េះ<ោះ"\r
             }\r
-            Version{"33.1"}\r
+            Version{"34"}\r
         }\r
     }\r
 }\r
index 1250cb3c22535eb9f61464ba6f1738a3e90e43a3..dfceac79efad942ec347f870146464f87bbf9dc0 100644 (file)
@@ -9,7 +9,7 @@ kn{
                 "[reorder Knda Deva Beng Guru Gujr Orya Taml Telu Mlym Sinh]"\r
                 "&ಔ<ಂ<ಃ<ೱ<ೲ"\r
             }\r
-            Version{"33.1"}\r
+            Version{"34"}\r
         }\r
         traditional{\r
             Sequence{\r
@@ -651,7 +651,7 @@ kn{
                 "&ಫೋ<<<ಫ಼ೋ"\r
                 "&ಫೌ<<<ಫ಼ೌ"\r
             }\r
-            Version{"33.1"}\r
+            Version{"34"}\r
         }\r
     }\r
 }\r
index 6d1e79565838aee65f3cf85ca31828e799b55de0..c05fe0764ba76a042f962ba235ca83add3f016f3 100644 (file)
@@ -283,7 +283,7 @@ ko{
                 "&ᅩᅣᅵ"\r
                 "=ᆧ"\r
             }\r
-            Version{"33.1"}\r
+            Version{"34"}\r
         }\r
         searchjl{\r
             Sequence{\r
@@ -378,7 +378,7 @@ ko{
                 "&\u1109\u1109=\u110A<<<\u3146"\r
                 "&\u110C\u110C=\u110D<<<\u3149"\r
             }\r
-            Version{"33.1"}\r
+            Version{"34"}\r
         }\r
         standard{\r
             Sequence{\r
@@ -862,14 +862,14 @@ ko{
                 "&희<<*僖凞喜噫囍姬嬉希憙憘戱晞曦熙熹熺犧禧稀羲咥唏嘻悕戲暿欷燹爔豨餼"\r
                 "&힐<<*詰犵纈襭頡黠"\r
             }\r
-            Version{"33.1"}\r
+            Version{"34"}\r
         }\r
         unihan{\r
             Sequence{\r
                 "[import und-u-co-private-unihan]"\r
                 "[reorder Hang Hani]"\r
             }\r
-            Version{"33.1"}\r
+            Version{"34"}\r
         }\r
     }\r
 }\r
index 305cf9cba975be6f023a917f0b145a31f47fc2b2..fc0deecca09e0b3f2c8a6ee2d405fba68f794647 100644 (file)
@@ -11,7 +11,7 @@ kok{
                 "&ह<ळ"\r
                 "<क्ष"\r
             }\r
-            Version{"33.1"}\r
+            Version{"34"}\r
         }\r
     }\r
 }\r
diff --git a/source/data/coll/ku.txt b/source/data/coll/ku.txt
new file mode 100644 (file)
index 0000000..158074e
--- /dev/null
@@ -0,0 +1,21 @@
+// © 2016 and later: Unicode, Inc. and others.\r
+// License & terms of use: http://www.unicode.org/copyright.html#License\r
+ku{\r
+    Version{"2.1.44.82"}\r
+    collations{\r
+        standard{\r
+            Sequence{\r
+                "[reorder Latn Arab]"\r
+                "&c<ç<<<Ç"\r
+                "&e<ê<<<Ê"\r
+                "&i<î<<<Î"\r
+                "&s<ş<<<Ş"\r
+                "&u<û<<<Û"\r
+                "&ê<<é<<<É"\r
+                "&î<<í<<<Í"\r
+                "&û<<ú<<<Ú"\r
+            }\r
+            Version{"34"}\r
+        }\r
+    }\r
+}\r
index e2035f12d1ec04308fbb069b88ef57a5d973d3b8..b37b3a476857b7fd0b463416dbe18efdd8a8fa0c 100644 (file)
@@ -8,7 +8,7 @@ ky{
                 "[reorder Cyrl]"\r
                 "&е<ё<<<Ё"\r
             }\r
-            Version{"33.1"}\r
+            Version{"34"}\r
         }\r
     }\r
 }\r
index 8eb3f75ff09365a628cb83cc36a893c7ac68ea72..f1ed391890b9282d70f90fc8b242bcffdbfa22be 100644 (file)
@@ -11,7 +11,7 @@ lkt{
                 "&S<š<<<Š"\r
                 "&Z<ž<<<Ž"\r
             }\r
-            Version{"33.1"}\r
+            Version{"34"}\r
         }\r
     }\r
 }\r
index 767214f5a3f502497736cbcc8a2c09ddd9fc35bf..38b4361efd791cbcea5727a93edc79cf4b5b0d1c 100644 (file)
@@ -16,14 +16,14 @@ ln{
                 "&S<sh<<<sH<<<Sh<<<SH"\r
                 "&T<ts<<<tS<<<Ts<<<TS"\r
             }\r
-            Version{"33.1"}\r
+            Version{"34"}\r
         }\r
         standard{\r
             Sequence{\r
                 "&E<ɛ<<<Ɛ"\r
                 "&O<<ɔ<<<Ɔ"\r
             }\r
-            Version{"33.1"}\r
+            Version{"34"}\r
         }\r
     }\r
 }\r
index 6463b23fd9c44337941479916fbdffb771ee812f..5d4b68a9fa35ced9bcd263f2b35603f7e13d0962 100644 (file)
@@ -5,7 +5,7 @@ lo{
     collations{\r
         standard{\r
             Sequence{"[reorder Laoo]"}\r
-            Version{"33.1"}\r
+            Version{"34"}\r
         }\r
     }\r
 }\r
index 4e35324be55839165aec95b19dfe816c2b499a39..6421aebe0068a2fc49ea321ea678bbfb4211ab0f 100644 (file)
@@ -16,7 +16,7 @@ lt{
                 "&U<<ų<<<Ų<<ū<<<Ū"\r
                 "&Z<ž<<<Ž"\r
             }\r
-            Version{"33.1"}\r
+            Version{"34"}\r
         }\r
     }\r
 }\r
index a68ff56a1757bd8568a424d4e62c09a2be41688d..3cc834f9dd3509d6ce0150163d9e7132ddb6705b 100644 (file)
@@ -15,7 +15,7 @@ lv{
                 "&[before 1]T<š<<<Š"\r
                 "&[before 1]Ʒ<ž<<<Ž"\r
             }\r
-            Version{"33.1"}\r
+            Version{"34"}\r
         }\r
     }\r
 }\r
index 034555a4ddb4b64a1c0ba3c9388f38e727472066..fd5feea6d74b3df1cfb7c1b3fbfb831d30cb7ea8 100644 (file)
@@ -10,7 +10,7 @@ mk{
                 "&ԃ<ѓ<<<Ѓ"\r
                 "&ћ<ќ<<<Ќ"\r
             }\r
-            Version{"33.1"}\r
+            Version{"34"}\r
         }\r
     }\r
 }\r
index 059a03093fd6e1161e6125b1c0823878a7089034..a9a6aae7a9f14c6994fe339116aab815a1bc3c65 100644 (file)
@@ -17,7 +17,7 @@ ml{
                 "&മ്<<ം"\r
                 "&ന്<<<ൻ്"\r
             }\r
-            Version{"33.1"}\r
+            Version{"34"}\r
         }\r
     }\r
 }\r
index 71e36d9e31f9a5e409d74ea3b192f13bccd60043..6386c438733b6426ca1b174d676664995739fae7 100644 (file)
@@ -5,7 +5,7 @@ mn{
     collations{\r
         standard{\r
             Sequence{"[reorder Cyrl Mong]"}\r
-            Version{"33.1"}\r
+            Version{"34"}\r
         }\r
     }\r
 }\r
index 5a5dfca2794a6c73450efcf94328b8520c347ad3..54dca97cbb6989430eab217d463355827627a100 100644 (file)
@@ -12,7 +12,7 @@ mr{
                 "<क्ष"\r
                 "<ज्ञ"\r
             }\r
-            Version{"33.1"}\r
+            Version{"34"}\r
         }\r
     }\r
 }\r
index 290c6c3372457704990e5eabc34e1fd9b2297379..a66d7cb97812b8fccac733ceb6d3a01d4e597f01 100644 (file)
@@ -12,7 +12,7 @@ mt{
                 "&[before 1]i<ħ<<<Ħ"\r
                 "&[before 1]z<ż<<<Ż"\r
             }\r
-            Version{"33.1"}\r
+            Version{"34"}\r
         }\r
     }\r
 }\r
index 56266dd0a1c38b7766c8085adbd91f79e739b4c3..ffa806b9bea26ddf8f3139b16b14e64ae64a8489 100644 (file)
@@ -373,7 +373,7 @@ my{
                 "&ထမင်း=ထ္မင်း"\r
                 "&လက်ဘက်=လ္ဘက်"\r
             }\r
-            Version{"33.1"}\r
+            Version{"34"}\r
         }\r
     }\r
 }\r
index 15893837f2dbcde6dafcd3e450ce4bdf9b9bb0de..478c94904829fe401f08ac9bd5894fd9b2e55131 100644 (file)
@@ -8,7 +8,7 @@ nb{
                 "[import und-u-co-search]"\r
                 "[import nb-u-co-standard]"\r
             }\r
-            Version{"33.1"}\r
+            Version{"34"}\r
         }\r
         standard{\r
             Sequence{\r
@@ -18,7 +18,7 @@ nb{
                 "&Y<<ü<<<Ü<<ű<<<Ű"\r
                 "&[before 1]ǀ<æ<<<Æ<<ä<<<Ä<<ę<<<Ę<ø<<<Ø<<ö<<<Ö<<ő<<<Ő<<œ<<<Œ<å<<<Å<<aa<<<Aa<<<AA"\r
             }\r
-            Version{"33.1"}\r
+            Version{"34"}\r
         }\r
     }\r
 }\r
index 7871061f546f6693ffce67a6cb2b4495c90bf93c..958daacca195186e0e687519a94b843cfd624cee 100644 (file)
@@ -5,7 +5,7 @@ ne{
     collations{\r
         standard{\r
             Sequence{"[reorder Deva]"}\r
-            Version{"33.1"}\r
+            Version{"34"}\r
         }\r
     }\r
 }\r
index 0d7cfdb89515af321c1b4e9a9f7bad0a69fc3a11..cbaa718f6de6ea9b31a108128faac4ed25dd51bb 100644 (file)
@@ -5,11 +5,11 @@ nn{
     collations{\r
         search{\r
             Sequence{"[import nb-u-co-search]"}\r
-            Version{"33.1"}\r
+            Version{"34"}\r
         }\r
         standard{\r
             Sequence{"[import nb-u-co-standard]"}\r
-            Version{"33.1"}\r
+            Version{"34"}\r
         }\r
     }\r
 }\r
index 0ff04ed596ffb77b91bd1e574529ee1de6ef290d..28b5cfefade1ce18b98eab7c7788abaa12e0f6a3 100644 (file)
@@ -8,7 +8,7 @@ om{
                 "&Z<ch<<<Ch<<<CH<dh<<<Dh<<<DH<kh<<<Kh<<<KH<ny<<<Ny<<<NY<ph<<<Ph<<<PH<"\r
                 "sh<<<Sh"\r
             }\r
-            Version{"33.1"}\r
+            Version{"34"}\r
         }\r
     }\r
 }\r
index 4585dbcdef6b3d41a2a87893b7a4a0c7aeee9e47..a79c51cbfaec8225009da8aea80d05374445aff0 100644 (file)
@@ -11,7 +11,7 @@ or{
                 "&ହ<କ୍ଷ"\r
                 "&ଯ<<ୟ"\r
             }\r
-            Version{"33.1"}\r
+            Version{"34"}\r
         }\r
     }\r
 }\r
index 3b7eb1403b8a91f4876be836961748ea02919f4e..8ea77700336b870ad615f286e3efd840f2035446 100644 (file)
@@ -10,7 +10,7 @@ pa{
                 "&ੱ<<ੰ<<ਂ<<ਁ<<਼"\r
                 "&ੜ<੍"\r
             }\r
-            Version{"33.1"}\r
+            Version{"34"}\r
         }\r
     }\r
 }\r
index 32d9732d11ed539def6cdf991374bc1bb1327ae2..a2c4cb047be7545f53fbb25a6ced6039daa4afad 100644 (file)
@@ -14,7 +14,7 @@ pl{
                 "&S<ś<<<Ś"\r
                 "&Z<ź<<<Ź<ż<<<Ż"\r
             }\r
-            Version{"33.1"}\r
+            Version{"34"}\r
         }\r
     }\r
 }\r
index 37498a6b23e1d368d3f4fe0bda2587155e1a6fbf..b1667d2542823c6f868c0f2200d15eba503ecba9 100644 (file)
@@ -24,7 +24,7 @@ ps{
                 "&ی<<*ىےيېۍ<<یٔ<<<ىٔ<<<ئ"\r
                 "&\u00A0<<\u200C<<\u200D"\r
             }\r
-            Version{"33.1"}\r
+            Version{"34"}\r
         }\r
     }\r
 }\r
index 05cb73b47575c0b3aaa2ab8e0fe993b153c8d207..d21ad4f16783e314d77ea4862aa3e84d045767f5 100644 (file)
@@ -10,7 +10,7 @@ ro{
                 "&S<ş=ș<<<Ş=Ș"\r
                 "&T<ţ=ț<<<Ţ=Ț"\r
             }\r
-            Version{"33.1"}\r
+            Version{"34"}\r
         }\r
     }\r
 }\r
index b0099faea1ed9e113be927aa0aa97ce7e5169c20..9a83d0e54ec87451702ad81a1cd0d7b6c562dcfe 100644 (file)
@@ -5,29 +5,70 @@
  */\r
 root{\r
     UCARules:process(uca_rules){"../unidata/UCARules.txt"}\r
-    Version{"2.1.41.72"}\r
+    Version{"2.1.44.66"}\r
     collations{\r
         default{"standard"}\r
         emoji{\r
             Sequence{\r
-                "& [last primary ignorable]<<*ð\9f\8f»ð\9f\8f¼ð\9f\8f½ð\9f\8f¾ð\9f\8f¿ð\9f¦°ð\9f¦±ð\9f¦³ð\9f¦²"\r
+                "& [last primary ignorable]<<*ð\9f¦°ð\9f¦±ð\9f¦³ð\9f¦²ð\9f\8f»ð\9f\8f¼ð\9f\8f½ð\9f\8f¾ð\9f\8f¿"\r
                 "& [before 1]﷑€"\r
-                "<*😀😁😂🤣😃😄😅😆😉😊😋😎😍😘🥰😗😙😚☺🙂🤗🤩"\r
-                "<*🤔🤨😐😑😶🙄😏😣😥😮🤐😯😪😫😴😌😛😜😝🤤😒😓😔😕🙃🤑😲"\r
-                "<*☹🙁😖😞😟😤😢😭😦😧😨😩🤯😬😰😱🥵🥶😳🤪😵😡😠🤬"\r
-                "<*😷🤒🤕🤢🤮🤧"\r
-                "<*😇🤠🥳🥴🥺🤥🤫🤭🧐🤓"\r
-                "<*😈👿🤡👹👺💀☠👻👽👾🤖💩"\r
+                "<*😀😃😄😁😆😅🤣😂🙂🙃😉😊😇"\r
+                "<*🥰😍🤩😘😗☺😚😙"\r
+                "<*😋😛😜🤪😝🤑"\r
+                "<*🤗🤭🤫🤔"\r
+                "<*🤐🤨😐😑😶😏😒🙄😬🤥"\r
+                "<*😌😔😪🤤😴"\r
+                "<*😷🤒🤕🤢🤮🤧🥵🥶🥴😵🤯"\r
+                "<*🤠🥳"\r
+                "<*😎🤓🧐"\r
+                "<*😕😟🙁☹😮😯😲😳🥺😦😧😨😰😥😢😭😱😖😣😞😓😩😫"\r
+                "<*😤😡😠🤬😈👿💀☠"\r
+                "<*💩🤡👹👺👻👽👾🤖"\r
                 "<*😺😸😹😻😼😽🙀😿😾"\r
                 "<*🙈🙉🙊"\r
-                "<*👶🧒👦👧🧑"\r
-                "<<👱"\r
+                "<*💋💌💘💝💖💗💓💞💕💟❣💔❤🧡💛💚💙💜🖤💯💢💥💫💦💨🕳💣💬"\r
+                "< 👁‍🗨 = 👁️‍🗨"\r
+                "<*🗨🗯💭💤"\r
+                "<*👋🤚🖐✋🖖"\r
+                "<*👌✌🤞🤟🤘🤙"\r
+                "<*👈👉👆🖕👇☝"\r
+                "<*👍👎✊👊🤛🤜"\r
+                "<*👏🙌👐🤲🤝🙏"\r
+                "<*✍💅🤳"\r
+                "<*💪🦵🦶👂👃🧠🦷🦴👀👁👅👄"\r
+                "<*👶🧒👦👧🧑 <<👱"\r
                 "<*👨"\r
-                "< 👱‍♂ << 👱🏻‍♂ << 👱🏼‍♂ << 👱🏽‍♂ << 👱🏾‍♂ << 👱🏿‍♂"\r
-                "<<🧔"\r
+                "< 👱‍♂ << 👱🏻‍♂ << 👱🏼‍♂ << 👱🏽‍♂ << 👱🏾‍♂ << 👱🏿‍♂ <<🧔"\r
                 "<*👩"\r
                 "< 👱‍♀ << 👱🏻‍♀ << 👱🏼‍♀ << 👱🏽‍♀ << 👱🏾‍♀ << 👱🏿‍♀"\r
                 "<*🧓👴👵"\r
+                "<*🙍"\r
+                "< 🙍‍♂ << 🙍🏻‍♂ << 🙍🏼‍♂ << 🙍🏽‍♂ << 🙍🏾‍♂ << 🙍🏿‍♂"\r
+                "< 🙍‍♀ << 🙍🏻‍♀ << 🙍🏼‍♀ << 🙍🏽‍♀ << 🙍🏾‍♀ << 🙍🏿‍♀"\r
+                "<*🙎"\r
+                "< 🙎‍♂ << 🙎🏻‍♂ << 🙎🏼‍♂ << 🙎🏽‍♂ << 🙎🏾‍♂ << 🙎🏿‍♂"\r
+                "< 🙎‍♀ << 🙎🏻‍♀ << 🙎🏼‍♀ << 🙎🏽‍♀ << 🙎🏾‍♀ << 🙎🏿‍♀"\r
+                "<*🙅"\r
+                "< 🙅‍♂ << 🙅🏻‍♂ << 🙅🏼‍♂ << 🙅🏽‍♂ << 🙅🏾‍♂ << 🙅🏿‍♂"\r
+                "< 🙅‍♀ << 🙅🏻‍♀ << 🙅🏼‍♀ << 🙅🏽‍♀ << 🙅🏾‍♀ << 🙅🏿‍♀"\r
+                "<*🙆"\r
+                "< 🙆‍♂ << 🙆🏻‍♂ << 🙆🏼‍♂ << 🙆🏽‍♂ << 🙆🏾‍♂ << 🙆🏿‍♂"\r
+                "< 🙆‍♀ << 🙆🏻‍♀ << 🙆🏼‍♀ << 🙆🏽‍♀ << 🙆🏾‍♀ << 🙆🏿‍♀"\r
+                "<*💁"\r
+                "< 💁‍♂ << 💁🏻‍♂ << 💁🏼‍♂ << 💁🏽‍♂ << 💁🏾‍♂ << 💁🏿‍♂"\r
+                "< 💁‍♀ << 💁🏻‍♀ << 💁🏼‍♀ << 💁🏽‍♀ << 💁🏾‍♀ << 💁🏿‍♀"\r
+                "<*🙋"\r
+                "< 🙋‍♂ << 🙋🏻‍♂ << 🙋🏼‍♂ << 🙋🏽‍♂ << 🙋🏾‍♂ << 🙋🏿‍♂"\r
+                "< 🙋‍♀ << 🙋🏻‍♀ << 🙋🏼‍♀ << 🙋🏽‍♀ << 🙋🏾‍♀ << 🙋🏿‍♀"\r
+                "<*🙇"\r
+                "< 🙇‍♂ << 🙇🏻‍♂ << 🙇🏼‍♂ << 🙇🏽‍♂ << 🙇🏾‍♂ << 🙇🏿‍♂"\r
+                "< 🙇‍♀ << 🙇🏻‍♀ << 🙇🏼‍♀ << 🙇🏽‍♀ << 🙇🏾‍♀ << 🙇🏿‍♀"\r
+                "<*🤦"\r
+                "< 🤦‍♂ << 🤦🏻‍♂ << 🤦🏼‍♂ << 🤦🏽‍♂ << 🤦🏾‍♂ << 🤦🏿‍♂"\r
+                "< 🤦‍♀ << 🤦🏻‍♀ << 🤦🏼‍♀ << 🤦🏽‍♀ << 🤦🏾‍♀ << 🤦🏿‍♀"\r
+                "<*🤷"\r
+                "< 🤷‍♂ << 🤷🏻‍♂ << 🤷🏼‍♂ << 🤷🏽‍♂ << 🤷🏾‍♂ << 🤷🏿‍♂"\r
+                "< 🤷‍♀ << 🤷🏻‍♀ << 🤷🏼‍♀ << 🤷🏽‍♀ << 🤷🏾‍♀ << 🤷🏿‍♀"\r
                 "< 🧑‍⚕ << 🧑🏻‍⚕ << 🧑🏼‍⚕ << 🧑🏽‍⚕ << 🧑🏾‍⚕ << 🧑🏿‍⚕"\r
                 "< 👨‍⚕ << 👨🏻‍⚕ << 👨🏼‍⚕ << 👨🏽‍⚕ << 👨🏾‍⚕ << 👨🏿‍⚕"\r
                 "< 👩‍⚕ << 👩🏻‍⚕ << 👩🏼‍⚕ << 👩🏽‍⚕ << 👩🏾‍⚕ << 👩🏿‍⚕"\r
@@ -93,59 +134,32 @@ root{
                 "< 👳‍♀ << 👳🏻‍♀ << 👳🏼‍♀ << 👳🏽‍♀ << 👳🏾‍♀ << 👳🏿‍♀"\r
                 "<*👲🧕🤵👰🤰🤱"\r
                 "<*👼🎅🤶🦸"\r
-                "< 🦸‍♀ << 🦸🏻‍♀ << 🦸🏼‍♀ << 🦸🏽‍♀ << 🦸🏾‍♀ << 🦸🏿‍♀"\r
                 "< 🦸‍♂ << 🦸🏻‍♂ << 🦸🏼‍♂ << 🦸🏽‍♂ << 🦸🏾‍♂ << 🦸🏿‍♂"\r
+                "< 🦸‍♀ << 🦸🏻‍♀ << 🦸🏼‍♀ << 🦸🏽‍♀ << 🦸🏾‍♀ << 🦸🏿‍♀"\r
                 "<*🦹"\r
-                "< 🦹‍♀ << 🦹🏻‍♀ << 🦹🏼‍♀ << 🦹🏽‍♀ << 🦹🏾‍♀ << 🦹🏿‍♀"\r
                 "< 🦹‍♂ << 🦹🏻‍♂ << 🦹🏼‍♂ << 🦹🏽‍♂ << 🦹🏾‍♂ << 🦹🏿‍♂"\r
+                "< 🦹‍♀ << 🦹🏻‍♀ << 🦹🏼‍♀ << 🦹🏽‍♀ << 🦹🏾‍♀ << 🦹🏿‍♀"\r
                 "<*🧙"\r
-                "< 🧙‍♀ << 🧙🏻‍♀ << 🧙🏼‍♀ << 🧙🏽‍♀ << 🧙🏾‍♀ << 🧙🏿‍♀"\r
                 "< 🧙‍♂ << 🧙🏻‍♂ << 🧙🏼‍♂ << 🧙🏽‍♂ << 🧙🏾‍♂ << 🧙🏿‍♂"\r
+                "< 🧙‍♀ << 🧙🏻‍♀ << 🧙🏼‍♀ << 🧙🏽‍♀ << 🧙🏾‍♀ << 🧙🏿‍♀"\r
                 "<*🧚"\r
-                "< 🧚‍♀ << 🧚🏻‍♀ << 🧚🏼‍♀ << 🧚🏽‍♀ << 🧚🏾‍♀ << 🧚🏿‍♀"\r
                 "< 🧚‍♂ << 🧚🏻‍♂ << 🧚🏼‍♂ << 🧚🏽‍♂ << 🧚🏾‍♂ << 🧚🏿‍♂"\r
+                "< 🧚‍♀ << 🧚🏻‍♀ << 🧚🏼‍♀ << 🧚🏽‍♀ << 🧚🏾‍♀ << 🧚🏿‍♀"\r
                 "<*🧛"\r
-                "< 🧛‍♀ << 🧛🏻‍♀ << 🧛🏼‍♀ << 🧛🏽‍♀ << 🧛🏾‍♀ << 🧛🏿‍♀"\r
                 "< 🧛‍♂ << 🧛🏻‍♂ << 🧛🏼‍♂ << 🧛🏽‍♂ << 🧛🏾‍♂ << 🧛🏿‍♂"\r
+                "< 🧛‍♀ << 🧛🏻‍♀ << 🧛🏼‍♀ << 🧛🏽‍♀ << 🧛🏾‍♀ << 🧛🏿‍♀"\r
                 "<*🧜"\r
-                "< 🧜‍♀ << 🧜🏻‍♀ << 🧜🏼‍♀ << 🧜🏽‍♀ << 🧜🏾‍♀ << 🧜🏿‍♀"\r
                 "< 🧜‍♂ << 🧜🏻‍♂ << 🧜🏼‍♂ << 🧜🏽‍♂ << 🧜🏾‍♂ << 🧜🏿‍♂"\r
+                "< 🧜‍♀ << 🧜🏻‍♀ << 🧜🏼‍♀ << 🧜🏽‍♀ << 🧜🏾‍♀ << 🧜🏿‍♀"\r
                 "<*🧝"\r
-                "< 🧝‍♀ << 🧝🏻‍♀ << 🧝🏼‍♀ << 🧝🏽‍♀ << 🧝🏾‍♀ << 🧝🏿‍♀"\r
                 "< 🧝‍♂ << 🧝🏻‍♂ << 🧝🏼‍♂ << 🧝🏽‍♂ << 🧝🏾‍♂ << 🧝🏿‍♂"\r
+                "< 🧝‍♀ << 🧝🏻‍♀ << 🧝🏼‍♀ << 🧝🏽‍♀ << 🧝🏾‍♀ << 🧝🏿‍♀"\r
                 "<*🧞"\r
-                "< 🧞‍♀"\r
                 "< 🧞‍♂"\r
+                "< 🧞‍♀"\r
                 "<*🧟"\r
-                "< 🧟‍♀"\r
                 "< 🧟‍♂"\r
-                "<*🙍"\r
-                "< 🙍‍♂ << 🙍🏻‍♂ << 🙍🏼‍♂ << 🙍🏽‍♂ << 🙍🏾‍♂ << 🙍🏿‍♂"\r
-                "< 🙍‍♀ << 🙍🏻‍♀ << 🙍🏼‍♀ << 🙍🏽‍♀ << 🙍🏾‍♀ << 🙍🏿‍♀"\r
-                "<*🙎"\r
-                "< 🙎‍♂ << 🙎🏻‍♂ << 🙎🏼‍♂ << 🙎🏽‍♂ << 🙎🏾‍♂ << 🙎🏿‍♂"\r
-                "< 🙎‍♀ << 🙎🏻‍♀ << 🙎🏼‍♀ << 🙎🏽‍♀ << 🙎🏾‍♀ << 🙎🏿‍♀"\r
-                "<*🙅"\r
-                "< 🙅‍♂ << 🙅🏻‍♂ << 🙅🏼‍♂ << 🙅🏽‍♂ << 🙅🏾‍♂ << 🙅🏿‍♂"\r
-                "< 🙅‍♀ << 🙅🏻‍♀ << 🙅🏼‍♀ << 🙅🏽‍♀ << 🙅🏾‍♀ << 🙅🏿‍♀"\r
-                "<*🙆"\r
-                "< 🙆‍♂ << 🙆🏻‍♂ << 🙆🏼‍♂ << 🙆🏽‍♂ << 🙆🏾‍♂ << 🙆🏿‍♂"\r
-                "< 🙆‍♀ << 🙆🏻‍♀ << 🙆🏼‍♀ << 🙆🏽‍♀ << 🙆🏾‍♀ << 🙆🏿‍♀"\r
-                "<*💁"\r
-                "< 💁‍♂ << 💁🏻‍♂ << 💁🏼‍♂ << 💁🏽‍♂ << 💁🏾‍♂ << 💁🏿‍♂"\r
-                "< 💁‍♀ << 💁🏻‍♀ << 💁🏼‍♀ << 💁🏽‍♀ << 💁🏾‍♀ << 💁🏿‍♀"\r
-                "<*🙋"\r
-                "< 🙋‍♂ << 🙋🏻‍♂ << 🙋🏼‍♂ << 🙋🏽‍♂ << 🙋🏾‍♂ << 🙋🏿‍♂"\r
-                "< 🙋‍♀ << 🙋🏻‍♀ << 🙋🏼‍♀ << 🙋🏽‍♀ << 🙋🏾‍♀ << 🙋🏿‍♀"\r
-                "<*🙇"\r
-                "< 🙇‍♂ << 🙇🏻‍♂ << 🙇🏼‍♂ << 🙇🏽‍♂ << 🙇🏾‍♂ << 🙇🏿‍♂"\r
-                "< 🙇‍♀ << 🙇🏻‍♀ << 🙇🏼‍♀ << 🙇🏽‍♀ << 🙇🏾‍♀ << 🙇🏿‍♀"\r
-                "<*🤦"\r
-                "< 🤦‍♂ << 🤦🏻‍♂ << 🤦🏼‍♂ << 🤦🏽‍♂ << 🤦🏾‍♂ << 🤦🏿‍♂"\r
-                "< 🤦‍♀ << 🤦🏻‍♀ << 🤦🏼‍♀ << 🤦🏽‍♀ << 🤦🏾‍♀ << 🤦🏿‍♀"\r
-                "<*🤷"\r
-                "< 🤷‍♂ << 🤷🏻‍♂ << 🤷🏼‍♂ << 🤷🏽‍♂ << 🤷🏾‍♂ << 🤷🏿‍♂"\r
-                "< 🤷‍♀ << 🤷🏻‍♀ << 🤷🏼‍♀ << 🤷🏽‍♀ << 🤷🏾‍♀ << 🤷🏿‍♀"\r
+                "< 🧟‍♀"\r
                 "<*💆"\r
                 "< 💆‍♂ << 💆🏻‍♂ << 💆🏼‍♂ << 💆🏽‍♂ << 💆🏾‍♂ << 💆🏿‍♂"\r
                 "< 💆‍♀ << 💆🏻‍♀ << 💆🏼‍♀ << 💆🏽‍♀ << 💆🏾‍♀ << 💆🏿‍♀"\r
@@ -158,19 +172,15 @@ root{
                 "<*🏃"\r
                 "< 🏃‍♂ << 🏃🏻‍♂ << 🏃🏼‍♂ << 🏃🏽‍♂ << 🏃🏾‍♂ << 🏃🏿‍♂"\r
                 "< 🏃‍♀ << 🏃🏻‍♀ << 🏃🏼‍♀ << 🏃🏽‍♀ << 🏃🏾‍♀ << 🏃🏿‍♀"\r
-                "<*💃🕺👯"\r
+                "<*ð\9f\92\83ð\9f\95ºð\9f\95´ð\9f\91¯"\r
                 "< 👯‍♂"\r
                 "< 👯‍♀"\r
                 "<*🧖"\r
-                "< 🧖‍♀ << 🧖🏻‍♀ << 🧖🏼‍♀ << 🧖🏽‍♀ << 🧖🏾‍♀ << 🧖🏿‍♀"\r
                 "< 🧖‍♂ << 🧖🏻‍♂ << 🧖🏼‍♂ << 🧖🏽‍♂ << 🧖🏾‍♂ << 🧖🏿‍♂"\r
+                "< 🧖‍♀ << 🧖🏻‍♀ << 🧖🏼‍♀ << 🧖🏽‍♀ << 🧖🏾‍♀ << 🧖🏿‍♀"\r
                 "<*🧗"\r
-                "< 🧗‍♀ << 🧗🏻‍♀ << 🧗🏼‍♀ << 🧗🏽‍♀ << 🧗🏾‍♀ << 🧗🏿‍♀"\r
                 "< 🧗‍♂ << 🧗🏻‍♂ << 🧗🏼‍♂ << 🧗🏽‍♂ << 🧗🏾‍♂ << 🧗🏿‍♂"\r
-                "<*🧘"\r
-                "< 🧘‍♀ << 🧘🏻‍♀ << 🧘🏼‍♀ << 🧘🏽‍♀ << 🧘🏾‍♀ << 🧘🏿‍♀"\r
-                "< 🧘‍♂ << 🧘🏻‍♂ << 🧘🏼‍♂ << 🧘🏽‍♂ << 🧘🏾‍♂ << 🧘🏿‍♂"\r
-                "<*🛀🛌🕴🗣👤👥"\r
+                "< 🧗‍♀ << 🧗🏻‍♀ << 🧗🏼‍♀ << 🧗🏽‍♀ << 🧗🏾‍♀ << 🧗🏿‍♀"\r
                 "<*🤺🏇⛷🏂🏌"\r
                 "< 🏌‍♂ = 🏌️‍♂ << 🏌🏻‍♂ << 🏌🏼‍♂ << 🏌🏽‍♂ << 🏌🏾‍♂ << 🏌🏿‍♂"\r
                 "< 🏌‍♀ = 🏌️‍♀ << 🏌🏻‍♀ << 🏌🏼‍♀ << 🏌🏽‍♀ << 🏌🏾‍♀ << 🏌🏿‍♀"\r
@@ -195,7 +205,7 @@ root{
                 "<*🚵"\r
                 "< 🚵‍♂ << 🚵🏻‍♂ << 🚵🏼‍♂ << 🚵🏽‍♂ << 🚵🏾‍♂ << 🚵🏿‍♂"\r
                 "< 🚵‍♀ << 🚵🏻‍♀ << 🚵🏼‍♀ << 🚵🏽‍♀ << 🚵🏾‍♀ << 🚵🏿‍♀"\r
-                "<*ð\9f\8f\8eð\9f\8f\8dð\9f¤¸"\r
+                "<*🤸"\r
                 "< 🤸‍♂ << 🤸🏻‍♂ << 🤸🏼‍♂ << 🤸🏽‍♂ << 🤸🏾‍♂ << 🤸🏿‍♂"\r
                 "< 🤸‍♀ << 🤸🏻‍♀ << 🤸🏼‍♀ << 🤸🏽‍♀ << 🤸🏾‍♀ << 🤸🏿‍♀"\r
                 "<*🤼"\r
@@ -210,6 +220,10 @@ root{
                 "<*🤹"\r
                 "< 🤹‍♂ << 🤹🏻‍♂ << 🤹🏼‍♂ << 🤹🏽‍♂ << 🤹🏾‍♂ << 🤹🏿‍♂"\r
                 "< 🤹‍♀ << 🤹🏻‍♀ << 🤹🏼‍♀ << 🤹🏽‍♀ << 🤹🏾‍♀ << 🤹🏿‍♀"\r
+                "<*🧘"\r
+                "< 🧘‍♂ << 🧘🏻‍♂ << 🧘🏼‍♂ << 🧘🏽‍♂ << 🧘🏾‍♂ << 🧘🏿‍♂"\r
+                "< 🧘‍♀ << 🧘🏻‍♀ << 🧘🏼‍♀ << 🧘🏽‍♀ << 🧘🏾‍♀ << 🧘🏿‍♀"\r
+                "<*🛀🛌"\r
                 "<*👫👬👭💏"\r
                 "< 👩‍❤‍💋‍👨 = 👩‍❤️‍💋‍👨"\r
                 "< 👨‍❤‍💋‍👨 = 👨‍❤️‍💋‍👨"\r
@@ -244,17 +258,14 @@ root{
                 "< 👩‍👧"\r
                 "< 👩‍👧‍👦"\r
                 "< 👩‍👧‍👧"\r
-                "<*🤳💪🦵🦶👈👉☝👆🖕👇✌🤞🖖🤘🤙🖐✋👌👍👎✊👊🤛🤜🤚👋🤟✍👏👐🙌🤲🙏🤝💅👂👃👣👀👁"\r
-                "< 👁‍🗨 = 👁️‍🗨"\r
-                "<*🧠🦴🦷👅👄"\r
+                "<*🗣👤👥👣"\r
                 "<*🦰🦱🦳🦲"\r
-                "<*💋💘💝💖💗💓💞💕💌❣💔❤🧡💛💚💙💜🖤💟💤💢💣💥💦💨💫💬🗨🗯💭🕳"\r
-                "<*👓🕶🥽🥼👔👕👖🧣🧤🧥🧦👗👘👙👚👛👜👝🛍🎒👞👟🥾🥿👠👡👢👑👒🎩🎓🧢⛑📿💄💍💎"\r
-                "<*🐵🐒🦍🐶🐕🐩🐺🦊🦝🐱🐈🦁🐯🐅🐆🐴🐎🦄🦓🦌🐮🐂🐃🐄🐷🐖🐗🐽🐏🐑🐐🐪🐫🦙🦒🐘🦏🦛🐭🐁🐀🐹🐰🐇🐿🦔🦇🐻🐨🐼🦘🦡🐾"\r
+                "<*♀♂"\r
+                "<*🐵🐒🦍🐶🐕🐩🐺🦊🦝🐱🐈🦁🐯🐅🐆🐴🐎🦄🦓🦌🐮🐂🐃🐄🐷🐖🐗🐽🐏🐑🐐🐪🐫🦙🦒🐘🦏🦛🐭🐁🐀🐹🐰🐇🐿🦔🦇🐻🐨🐼🦘🦡"\r
                 "<*🦃🐔🐓🐣🐤🐥🐦🐧🕊🦅🦆🦢🦉🦚🦜"\r
                 "<*🐸"\r
                 "<*🐊🐢🦎🐍🐲🐉🦕🦖"\r
-                "<*🐳🐋🐬🐟🐠🐡🦈🐙🐚🦀🦞🦐🦑"\r
+                "<*🐳🐋🐬🐟🐠🐡🦈🐙🐚"\r
                 "<*🐌🦋🐛🐜🐝🐞🦗🕷🕸🦂🦟🦠"\r
                 "<*💐🌸💮🏵🌹🥀🌺🌻🌼🌷"\r
                 "<*🌱🌲🌳🌴🌵🌾🌿☘🍀🍁🍂🍃"\r
@@ -262,6 +273,7 @@ root{
                 "<*🥑🍆🥔🥕🌽🌶🥒🥬🥦🍄🥜🌰"\r
                 "<*🍞🥐🥖🥨🥯🥞🧀🍖🍗🥩🥓🍔🍟🍕🌭🥪🌮🌯🥙🥚🍳🥘🍲🥣🥗🍿🧂🥫"\r
                 "<*🍱🍘🍙🍚🍛🍜🍝🍠🍢🍣🍤🍥🥮🍡🥟🥠🥡"\r
+                "<*🦀🦞🦐🦑"\r
                 "<*🍦🍧🍨🍩🍪🎂🍰🧁🥧🍫🍬🍭🍮🍯"\r
                 "<*🍼🥛☕🍵🍶🍾🍷🍸🍹🍺🍻🥂🥃🥤"\r
                 "<*🥢🍽🍴🥄🔪🏺"\r
@@ -270,7 +282,7 @@ root{
                 "<*🏟🏛🏗🧱🏘🏚🏠🏡🏢🏣🏤🏥🏦🏨🏩🏪🏫🏬🏭🏯🏰💒🗼🗽"\r
                 "<*⛪🕌🕍⛩🕋"\r
                 "<*⛲⛺🌁🌃🏙🌄🌅🌆🌇🌉♨🌌🎠🎡🎢💈🎪"\r
-                "<*ð\9f\9a\82ð\9f\9a\83ð\9f\9a\84ð\9f\9a\85ð\9f\9a\86ð\9f\9a\87ð\9f\9a\88ð\9f\9a\89ð\9f\9a\8að\9f\9a\9dð\9f\9a\9eð\9f\9a\8bð\9f\9a\8cð\9f\9a\8dð\9f\9a\8eð\9f\9a\90ð\9f\9a\91ð\9f\9a\92ð\9f\9a\93ð\9f\9a\94ð\9f\9a\95ð\9f\9a\96ð\9f\9a\97ð\9f\9a\98ð\9f\9a\99ð\9f\9a\9að\9f\9a\9bð\9f\9a\9cð\9f\9a²ð\9f\9b´ð\9f\9b¹ð\9f\9bµ🚏🛣🛤🛢⛽🚨🚥🚦🛑🚧"\r
+                "<*ð\9f\9a\82ð\9f\9a\83ð\9f\9a\84ð\9f\9a\85ð\9f\9a\86ð\9f\9a\87ð\9f\9a\88ð\9f\9a\89ð\9f\9a\8að\9f\9a\9dð\9f\9a\9eð\9f\9a\8bð\9f\9a\8cð\9f\9a\8dð\9f\9a\8eð\9f\9a\90ð\9f\9a\91ð\9f\9a\92ð\9f\9a\93ð\9f\9a\94ð\9f\9a\95ð\9f\9a\96ð\9f\9a\97ð\9f\9a\98ð\9f\9a\99ð\9f\9a\9að\9f\9a\9bð\9f\9a\9cð\9f\8f\8eð\9f\8f\8dð\9f\9bµð\9f\9a²ð\9f\9b´ð\9f\9b¹🚏🛣🛤🛢⛽🚨🚥🚦🛑🚧"\r
                 "<*⚓⛵🛶🚤🛳⛴🛥🚢"\r
                 "<*✈🛩🛫🛬💺🚁🚟🚠🚡🛰🚀🛸"\r
                 "<*🛎🧳"\r
@@ -281,6 +293,7 @@ root{
                 "<*⚽⚾🥎🏀🏐🏈🏉🎾🥏🎳🏏🏑🏒🥍🏓🏸🥊🥋🥅⛳⛸🎣🎽🎿🛷🥌"\r
                 "<*🎯🎱🔮🧿🎮🕹🎰🎲🧩🧸♠♥♦♣♟🃏🀄🎴"\r
                 "<*🎭🖼🎨🧵🧶"\r
+                "<*👓🕶🥽🥼👔👕👖🧣🧤🧥🧦👗👘👙👚👛👜👝🛍🎒👞👟🥾🥿👠👡👢👑👒🎩🎓🧢⛑📿💄💍💎"\r
                 "<*🔇🔈🔉🔊📢📣📯🔔🔕"\r
                 "<*🎼🎵🎶🎙🎚🎛🎤🎧📻"\r
                 "<*🎷🎸🎹🎺🎻🥁"\r
@@ -304,7 +317,7 @@ root{
                 "<*🛐⚛🕉✡☸☯✝☦☪☮🕎🔯"\r
                 "<*♈♉♊♋♌♍♎♏♐♑♒♓⛎"\r
                 "<*🔀🔁🔂▶⏩⏭⏯◀⏪⏮🔼⏫🔽⏬⏸⏹⏺⏏🎦🔅🔆📶📳📴"\r
-                "<*â\99\80â\99\82â\9a\95â\99¾â\99»â\9a\9cð\9f\94±ð\9f\93\9bð\9f\94°â­\95â\9c\85â\98\91â\9c\94â\9c\96â\9d\8câ\9d\8eâ\9e\95â\9e\96â\9e\97â\9e°â\9e¿ã\80½â\9c³â\9c´â\9d\87â\80¼â\81\89â\9d\93â\9d\94â\9d\95â\9d\97ã\80°Â©Â®â\84¢"\r
+                "<*⚕♾♻⚜🔱📛🔰⭕✅☑✔✖❌❎➕➖➗➰➿〽✳✴❇‼⁉❓❔❕❗〰©®™"\r
                 "< '#⃣' = '#️⃣'"\r
                 "< '*⃣' = '*️⃣'"\r
                 "< 0⃣ = 0️⃣"\r
@@ -318,7 +331,7 @@ root{
                 "< 8⃣ = 8️⃣"\r
                 "< 9⃣ = 9️⃣"\r
                 "<*🔟"\r
-                "<*ð\9f\92¯ð\9f\94 ð\9f\94¡ð\9f\94¢ð\9f\94£ð\9f\94¤ð\9f\85°ð\9f\86\8eð\9f\85±ð\9f\86\91ð\9f\86\92ð\9f\86\93â\84¹ð\9f\86\94â\93\82ð\9f\86\95ð\9f\86\96ð\9f\85¾ð\9f\86\97ð\9f\85¿ð\9f\86\98ð\9f\86\99ð\9f\86\9að\9f\88\81ð\9f\88\82ð\9f\88·ð\9f\88¶ð\9f\88¯ð\9f\89\90ð\9f\88¹ð\9f\88\9að\9f\88²ð\9f\89\91ð\9f\88¸ð\9f\88´ð\9f\88³ã\8a\97ã\8a\99ð\9f\88ºð\9f\88µ"\r
+                "<*🔠🔡🔢🔣🔤🅰🆎🅱🆑🆒🆓ℹ🆔Ⓜ🆕🆖🅾🆗🅿🆘🆙🆚🈁🈂🈷🈶🈯🉐🈹🈚🈲🉑🈸🈴🈳㊗㊙🈺🈵"\r
                 "<*🔴🔵⚪⚫⬜⬛◼◻◽◾▫▪🔶🔷🔸🔹🔺🔻💠🔘🔲🔳"\r
                 "<*🏁🚩🎌🏴🏳"\r
                 "< 🏳‍🌈 = 🏳️‍🌈"\r
@@ -328,7 +341,7 @@ root{
                 "< 🏴󠁧󠁢󠁳󠁣󠁴󠁿"\r
                 "< 🏴󠁧󠁢󠁷󠁬󠁳󠁿"\r
             }\r
-            Version{"33.1"}\r
+            Version{"34"}\r
         }\r
         eor{\r
             Sequence{\r
@@ -868,7 +881,7 @@ root{
                 "&ք"\r
                 "<և"\r
             }\r
-            Version{"33.1"}\r
+            Version{"34"}\r
         }\r
         private-unihan{\r
             Sequence{\r
@@ -1111,7 +1124,7 @@ root{
                 "&龟=\uFDD0龟"\r
                 "&龠=\uFDD0龠"\r
             }\r
-            Version{"33.1"}\r
+            Version{"34"}\r
         }\r
         search{\r
             Sequence{\r
@@ -1230,11 +1243,11 @@ root{
                 "&ᅳᅵ"\r
                 "=ᅴ"\r
             }\r
-            Version{"33.1"}\r
+            Version{"34"}\r
         }\r
         standard{\r
             Sequence{""}\r
-            Version{"33.1"}\r
+            Version{"34"}\r
         }\r
     }\r
     depends:process(dependency){"ucadata.icu"}\r
index e23b56941e8e57b6b6241d3b47263beb0baab7b5..5d036044892f52cedb02f4bb44bd90359c1fbef2 100644 (file)
@@ -5,7 +5,7 @@ ru{
     collations{\r
         standard{\r
             Sequence{"[reorder Cyrl]"}\r
-            Version{"33.1"}\r
+            Version{"34"}\r
         }\r
     }\r
 }\r
index 5a02ae27b71abe29c3b58e4837ff565da8498039..777393813f7adc9ebff7ff9d5bc8c37103e002e5 100644 (file)
@@ -8,7 +8,7 @@ se{
                 "[import und-u-co-search]"\r
                 "[import se-u-co-standard]"\r
             }\r
-            Version{"33.1"}\r
+            Version{"34"}\r
         }\r
         standard{\r
             Sequence{\r
@@ -53,7 +53,7 @@ se{
                 "<<<Ô<<ǫ"\r
                 "<<<Ǫ"\r
             }\r
-            Version{"33.1"}\r
+            Version{"34"}\r
         }\r
     }\r
 }\r
index 5fa37c7b118fa8e897da1a084340a96bcbd46a65..fff4135856818db6e6d454200727e437e721ad29 100644 (file)
@@ -10,7 +10,7 @@ si{
                 "&ඖ<ං<ඃ"\r
                 "&ජ්ඤ<<ඥ"\r
             }\r
-            Version{"33.1"}\r
+            Version{"34"}\r
         }\r
         standard{\r
             Sequence{\r
@@ -19,7 +19,7 @@ si{
                 "&ඖ<ං<ඃ"\r
                 "&ඥ<ඤ"\r
             }\r
-            Version{"33.1"}\r
+            Version{"34"}\r
         }\r
     }\r
 }\r
index 282b9e72af168cbc596c4369648b5a0c895f57b2..7268da6288aeb97fdb777d3f4707a8c5b9725cf3 100644 (file)
@@ -21,7 +21,7 @@ sk{
                 "&Y<ý<<<Ý"\r
                 "&Z<ž<<<Ž"\r
             }\r
-            Version{"33.1"}\r
+            Version{"34"}\r
         }\r
         standard{\r
             Sequence{\r
@@ -33,7 +33,7 @@ sk{
                 "&S<š<<<Š"\r
                 "&Z<ž<<<Ž"\r
             }\r
-            Version{"33.1"}\r
+            Version{"34"}\r
         }\r
     }\r
 }\r
index ff193a1db30ad5403ce840a278a9591d19352784..e86643c389be17b4ed4b521bc8ebafb5116e9e3c 100644 (file)
@@ -10,7 +10,7 @@ sl{
                 "&S<š<<<Š"\r
                 "&Z<ž<<<Ž"\r
             }\r
-            Version{"33.1"}\r
+            Version{"34"}\r
         }\r
     }\r
 }\r
index db317dedc7138a345018d87bb474e3198e5a6651..26f33f4ead3bbf2cdeb39b091f1d5b16252a5f9d 100644 (file)
@@ -8,7 +8,7 @@ smn{
                 "[import und-u-co-search]"\r
                 "[import smn-u-co-standard]"\r
             }\r
-            Version{"33.1"}\r
+            Version{"34"}\r
         }\r
         standard{\r
             Sequence{\r
@@ -19,7 +19,7 @@ smn{
                 "&S<š<<<Š"\r
                 "&Z<ž<<<Ž<æ<<<Æ<ø<<<Ø<å<<<Å<ã<<<Ã<ä<<<Ä<á<<<Á<ö<<<Ö"\r
             }\r
-            Version{"33.1"}\r
+            Version{"34"}\r
         }\r
     }\r
 }\r
index 910324a19fdbb8e8095f456b4a9effc4efc684f9..bcf3c39adddcccc37efe4e82997033bf83090f5f 100644 (file)
@@ -17,7 +17,7 @@ sq{
                 "&[before 1]Y<xh<<<Xh<<<XH"\r
                 "&[before 1]Ʒ<zh<<<Zh<<<ZH"\r
             }\r
-            Version{"33.1"}\r
+            Version{"34"}\r
         }\r
     }\r
 }\r
index 2d281a8de97c1e0f8143c7e050e7603f6c30d8f4..1638b9a188f5e083ceae6d4168a7882d6d9f3f88 100644 (file)
@@ -8,7 +8,7 @@ sr{
                 "[reorder Cyrl]"\r
                 "[suppressContractions [Ии]]"\r
             }\r
-            Version{"33.1"}\r
+            Version{"34"}\r
         }\r
     }\r
 }\r
index 162c1a78d6863143cbc95ff260f86f8bd17da573..3b2e78edf13d291ce0d0d63450e9cde704882b65 100644 (file)
@@ -5,11 +5,11 @@ sr_Latn{
     collations{\r
         search{\r
             Sequence{"[import hr-u-co-search]"}\r
-            Version{"33.1"}\r
+            Version{"34"}\r
         }\r
         standard{\r
             Sequence{"[import hr]"}\r
-            Version{"33.1"}\r
+            Version{"34"}\r
         }\r
     }\r
 }\r
index aa1ff57c6e4d716829b4f89860633be4daf91719..4014f6da624b39b42ba5931785b8c49aac2592a6 100644 (file)
@@ -12,14 +12,14 @@ sv{
                 "&Y<<ü<<<Ü<<ű<<<Ű"\r
                 "&[before 1]ǀ<å<<<Å<ä<<<Ä<<æ<<<Æ<<ę<<<Ę<ö<<<Ö<<ø<<<Ø<<ő<<<Ő<<œ<<<Œ<<ô<<<Ô"\r
             }\r
-            Version{"33.1"}\r
+            Version{"34"}\r
         }\r
         search{\r
             Sequence{\r
                 "[import und-u-co-search]"\r
                 "[import sv-u-co-standard]"\r
             }\r
-            Version{"33.1"}\r
+            Version{"34"}\r
         }\r
         standard{\r
             Sequence{\r
@@ -30,7 +30,7 @@ sv{
                 "&Y<<ü<<<Ü<<ű<<<Ű"\r
                 "&[before 1]ǀ<å<<<Å<ä<<<Ä<<æ<<<Æ<<ę<<<Ę<ö<<<Ö<<ø<<<Ø<<ő<<<Ő<<œ<<<Œ<<ô<<<Ô"\r
             }\r
-            Version{"33.1"}\r
+            Version{"34"}\r
         }\r
     }\r
 }\r
index 0828bffc4e19ffe3a41eba221d69d549a02da735..22eecca0327731d6be1cb5658c308b4eb4297af0 100644 (file)
@@ -34,7 +34,7 @@ ta{
                 "&[before 1]ஹ<ஹ்"\r
                 "&[before 1]க்ஷ<க்ஷ்"\r
             }\r
-            Version{"33.1"}\r
+            Version{"34"}\r
         }\r
     }\r
 }\r
index 675106b6e8ff3c0053bd8f156838f8eb216b0789..3050a7d2741058d7ba33f6766d8379f762179c6a 100644 (file)
@@ -9,7 +9,7 @@ te{
                 "[reorder Telu Deva Beng Guru Gujr Orya Taml Knda Mlym Sinh]"\r
                 "&ఔ<ఁ<ం<ః"\r
             }\r
-            Version{"33.1"}\r
+            Version{"34"}\r
         }\r
     }\r
 }\r
index c6a2010a73d06e2a7ed2e5d0e2806730731fd92a..b1969fd521dd356bcadaeac43373aac8defc21c5 100644 (file)
@@ -17,7 +17,7 @@ th{
                 "&ๅํ<<<ํๅ"\r
                 "&ไ<ฺ"\r
             }\r
-            Version{"33.1"}\r
+            Version{"34"}\r
         }\r
     }\r
 }\r
diff --git a/source/data/coll/tk.txt b/source/data/coll/tk.txt
new file mode 100644 (file)
index 0000000..55d0903
--- /dev/null
@@ -0,0 +1,20 @@
+// © 2016 and later: Unicode, Inc. and others.\r
+// License & terms of use: http://www.unicode.org/copyright.html#License\r
+tk{\r
+    Version{"2.1.19.14"}\r
+    collations{\r
+        standard{\r
+            Sequence{\r
+                "&C<ç<<<Ç"\r
+                "&E<ä<<<Ä"\r
+                "&J<ž<<<Ž"\r
+                "&N<ň<<<Ň"\r
+                "&O<ö<<<Ö"\r
+                "&S<ş<<<Ş"\r
+                "&U<ü<<<Ü"\r
+                "&Y<ý<<<Ý"\r
+            }\r
+            Version{"34"}\r
+        }\r
+    }\r
+}\r
index 66269f02b35f0aa521b3ed2af4a5ae8f29e1930d..a1a15154f306c3c17915783d2e5bf1e49e44dc2f 100644 (file)
@@ -13,7 +13,7 @@ to{
                 "&o<<ó<<<Ó<<ō<<<Ō"\r
                 "&u<<ú<<<Ú<<ū<<<Ū"\r
             }\r
-            Version{"33.1"}\r
+            Version{"34"}\r
         }\r
     }\r
 }\r
index 336df1e1b4e90674291e03cfbf704373980881eb..dc08f0a63e786cd788ffc45e87ad796765055221 100644 (file)
@@ -8,7 +8,7 @@ tr{
                 "[import und-u-co-search]"\r
                 "[import tr-u-co-standard]"\r
             }\r
-            Version{"33.1"}\r
+            Version{"34"}\r
         }\r
         standard{\r
             Sequence{\r
@@ -20,7 +20,7 @@ tr{
                 "&S<ş<<<Ş"\r
                 "&U<ü<<<Ü"\r
             }\r
-            Version{"33.1"}\r
+            Version{"34"}\r
         }\r
     }\r
 }\r
index 6f67786a8af0290e9d0a5a780be4e52d438ead44..dd98db922b5d57210c8df0e69f054f79f3cef89d 100644 (file)
@@ -10,7 +10,7 @@ ug{
                 "&ك<گ<ڭ<ل"\r
                 "&ھ<و<ۇ<ۆ<ۈ<ۋ<ې<ى<ي"\r
             }\r
-            Version{"33.1"}\r
+            Version{"34"}\r
         }\r
     }\r
 }\r
index 24e2e310bf45b92b6bd909733e2018b46871831f..5a85fe8da7862e6fec5deced45cf53ac533ac1e7 100644 (file)
@@ -9,7 +9,7 @@ uk{
                 "&Г<ґ<<<Ґ"\r
                 "&ꙇ<ї<<<\uA676<<<Ї"\r
             }\r
-            Version{"33.1"}\r
+            Version{"34"}\r
         }\r
     }\r
 }\r
index 6d6e58b71a4bdd79d60e2ebf4509b00ab7fb944d..27d9006b860fdacd70f4e53c687691bea8667e46 100644 (file)
@@ -12,7 +12,7 @@ ur{
                 "<<\u0651<<\u0658<<\u0653"\r
                 "&[last tertiary ignorable]<<<\u0610<<<\u0611<<<\u0613<<<\u0612<<<\u0614"\r
             }\r
-            Version{"33.1"}\r
+            Version{"34"}\r
         }\r
     }\r
 }\r
index 7621ef76bf3c8cffb58ed45bd277fbb17ee816e3..08fe06c687368d564b36fe35ba43fe2ddcb9fef5 100644 (file)
@@ -10,7 +10,7 @@ uz{
                 "<sh<<<Sh<<<SH"\r
                 "<ch<<<Ch<<<CH"\r
             }\r
-            Version{"33.1"}\r
+            Version{"34"}\r
         }\r
     }\r
 }\r
index 941a82259e3aaee859692667326c4298a2c389bd..534f9018a9f156774b7ed6e07e3348e7de08a5c9 100644 (file)
@@ -13,7 +13,7 @@ vi{
                 "&o<ô<<<Ô<ơ<<<Ơ"\r
                 "&u<ư<<<Ư"\r
             }\r
-            Version{"33.1"}\r
+            Version{"34"}\r
         }\r
         traditional{\r
             Sequence{\r
@@ -32,7 +32,7 @@ vi{
                 "&T<th<<<Th<<<TH<tr<<<Tr<<<TR"\r
                 "&u<ư<<<Ư"\r
             }\r
-            Version{"33.1"}\r
+            Version{"34"}\r
         }\r
     }\r
 }\r
index 544b45c822445dd926b24f7ad355beae4bdf8bb8..b57105622bbab72b11f6e482a307b22601d70d91 100644 (file)
@@ -11,7 +11,7 @@ wo{
                 "&N<ñ<<<Ñ<ŋ<<<Ŋ"\r
                 "&O<ó<<<Ó"\r
             }\r
-            Version{"33.1"}\r
+            Version{"34"}\r
         }\r
     }\r
 }\r
diff --git a/source/data/coll/xh.txt b/source/data/coll/xh.txt
new file mode 100644 (file)
index 0000000..4a9ae19
--- /dev/null
@@ -0,0 +1,5 @@
+// © 2016 and later: Unicode, Inc. and others.\r
+// License & terms of use: http://www.unicode.org/copyright.html#License\r
+xh{\r
+    Version{"2.1.44.82"}\r
+}\r
index 74f7de9ebfab076b7ff3876e7c7ef5c089c8435f..b041a630195bc65c76c202097243d0c4c86b3c76 100644 (file)
@@ -11,7 +11,7 @@ yi{
                 "‎&״"\r
                 "<<'\u0022'"\r
             }\r
-            Version{"33.1"}\r
+            Version{"34"}\r
         }\r
         standard{\r
             Sequence{\r
@@ -28,7 +28,7 @@ yi{
                 "&ש<שׂ"\r
                 "&[before 1]ת<תּ"\r
             }\r
-            Version{"33.1"}\r
+            Version{"34"}\r
         }\r
     }\r
 }\r
index 2f78011f8e355ec39d9d38d34ef95e89feae70b1..5f1f73fa27466f6405ed31d9bd35d0620e8c3539 100644 (file)
@@ -11,7 +11,7 @@ yo{
                 "&O<ọ<<<Ọ"\r
                 "&S<ṣ<<<Ṣ"\r
             }\r
-            Version{"33.1"}\r
+            Version{"34"}\r
         }\r
     }\r
 }\r
index 14ca956170a1d51c7e9f101a5ae45cd5b353e8c9..e48c8ad14df309f0b8e8a627c41e714c00121769 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 zh{\r
-    Version{"2.1.41.48"}\r
+    Version{"2.1.41.30"}\r
     collations{\r
         big5han{\r
             Sequence{\r
@@ -9,7 +9,7 @@ zh{
                 "[reorder Latn Hani Bopo]"\r
                 "&[last regular]<*兙兛兞兝兡兣嗧瓩糎一乙丁七乃九了二人儿入八几刀刁力匕十卜又三下丈上丫丸凡久么也乞于亡兀刃勺千叉口土士夕大女子孑孓寸小尢尸山川工己已巳巾干廾弋弓才丑丐不中丰丹之尹予云井互五亢仁什仃仆仇仍今介仄元允內六兮公冗凶分切刈勻勾勿化匹午升卅卞厄友及反壬天夫太夭孔少尤尺屯巴幻廿弔引心戈戶手扎支文斗斤方日曰月木欠止歹毋比毛氏水火爪父爻片牙牛犬王丙世丕且丘主乍乏乎以付仔仕他仗代令仙仞充兄冉冊冬凹出凸刊加功包匆北匝仟半卉卡占卯卮去可古右召叮叩叨叼司叵叫另只史叱台句叭叻四囚外央失奴奶孕它尼巨巧左市布平幼弁弘弗必戊打扔扒扑斥旦朮本未末札正母民氐永汁汀氾犯玄玉瓜瓦甘生用甩田由甲申疋白皮皿目矛矢石示禾穴立丞丟乒乓乩亙交亦亥仿伉伙伊伕伍伐休伏仲件任仰仳份企伋光兇兆先全共再冰列刑划刎刖劣匈匡匠印危吉吏同吊吐吁吋各向名合吃后吆吒因回囝圳地在圭圬圯圩夙多夷夸妄奸妃好她如妁字存宇守宅安寺尖屹州帆并年式弛忙忖戎戌戍成扣扛托收早旨旬旭曲曳有朽朴朱朵次此死氖汝汗汙江池汐汕污汛汍汎灰牟牝百竹米糸缶羊羽老考而耒耳聿肉肋肌臣自至臼舌舛舟艮色艾虫血行衣西阡串亨位住佇佗佞伴佛何估佐佑伽伺伸佃佔似但佣作你伯低伶余佝佈佚兌克免兵冶冷別判利刪刨劫助努劬匣即卵吝吭吞吾否呎吧呆呃吳呈呂君吩告吹吻吸吮吵吶吠吼呀吱含吟听囪困囤囫坊坑址坍均坎圾坐坏圻壯夾妝妒妨妞妣妙妖妍妤妓妊妥孝孜孚孛完宋宏尬局屁尿尾岐岑岔岌巫希序庇床廷弄弟彤形彷役忘忌志忍忱快忸忪戒我抄抗抖技扶抉扭把扼找批扳抒扯折扮投抓抑抆改攻攸旱更束李杏材村杜杖杞杉杆杠杓杗步每求汞沙沁沈沉沅沛汪決沐汰沌汨沖沒汽沃汲汾汴沆汶沍沔沘沂灶灼災灸牢牡牠狄狂玖甬甫男甸皂盯矣私秀禿究系罕肖肓肝肘肛肚育良芒芋芍見角言谷豆豕貝赤走足身車辛辰迂迆迅迄巡邑邢邪邦那酉釆里防阮阱阪阬並乖乳事些亞享京佯依侍佳使佬供例來侃佰併侈佩佻侖佾侏侑佺兔兒兕兩具其典冽函刻券刷刺到刮制剁劾劻卒協卓卑卦卷卸卹取叔受味呵咖呸咕咀呻呷咄咒咆呼咐呱呶和咚呢周咋命咎固垃坷坪坩坡坦坤坼夜奉奇奈奄奔妾妻委妹妮姑姆姐姍始姓姊妯妳姒姅孟孤季宗定官宜宙宛尚屈居屆岷岡岸岩岫岱岳帘帚帖帕帛帑幸庚店府底庖延弦弧弩往征彿彼忝忠忽念忿怏怔怯怵怖怪怕怡性怩怫怛或戕房戾所承拉拌拄抿拂抹拒招披拓拔拋拈抨抽押拐拙拇拍抵拚抱拘拖拗拆抬拎放斧於旺昔易昌昆昂明昀昏昕昊昇服朋杭枋枕東果杳杷枇枝林杯杰板枉松析杵枚枓杼杪杲欣武歧歿氓氛泣注泳沱泌泥河沽沾沼波沫法泓沸泄油況沮泗泅泱沿治泡泛泊沬泯泜泖泠炕炎炒炊炙爬爭爸版牧物狀狎狙狗狐玩玨玟玫玥甽疝疙疚的盂盲直知矽社祀祁秉秈空穹竺糾罔羌羋者肺肥肢肱股肫肩肴肪肯臥臾舍芳芝芙芭芽芟芹花芬芥芯芸芣芰芾芷虎虱初表軋迎返近邵邸邱邶采金長門阜陀阿阻附陂隹雨青非亟亭亮信侵侯便俠俑俏保促侶俘俟俊俗侮俐俄係俚俎俞侷兗冒冑冠剎剃削前剌剋則勇勉勃勁匍南卻厚叛咬哀咨哎哉咸咦咳哇哂咽咪品哄哈咯咫咱咻咩咧咿囿垂型垠垣垢城垮垓奕契奏奎奐姜姘姿姣姨娃姥姪姚姦威姻孩宣宦室客宥封屎屏屍屋峙峒巷帝帥帟幽庠度建弈弭彥很待徊律徇後徉怒思怠急怎怨恍恰恨恢恆恃恬恫恪恤扁拜挖按拼拭持拮拽指拱拷拯括拾拴挑挂政故斫施既春昭映昧是星昨昱昤曷柿染柱柔某柬架枯柵柩柯柄柑枴柚查枸柏柞柳枰柙柢柝柒歪殃殆段毒毗氟泉洋洲洪流津洌洱洞洗活洽派洶洛泵洹洧洸洩洮洵洎洫炫為炳炬炯炭炸炮炤爰牲牯牴狩狠狡玷珊玻玲珍珀玳甚甭畏界畎畋疫疤疥疢疣癸皆皇皈盈盆盃盅省盹相眉看盾盼眇矜砂研砌砍祆祉祈祇禹禺科秒秋穿突竿竽籽紂紅紀紉紇約紆缸美羿耄耐耍耑耶胖胥胚胃胄背胡胛胎胞胤胝致舢苧范茅苣苛苦茄若茂茉苒苗英茁苜苔苑苞苓苟苯茆虐虹虻虺衍衫要觔計訂訃貞負赴赳趴軍軌述迦迢迪迥迭迫迤迨郊郎郁郃酋酊重閂限陋陌降面革韋韭音頁風飛食首香乘亳倌倍倣俯倦倥俸倩倖倆值借倚倒們俺倀倔倨俱倡個候倘俳修倭倪俾倫倉兼冤冥冢凍凌准凋剖剜剔剛剝匪卿原厝叟哨唐唁唷哼哥哲唆哺唔哩哭員唉哮哪哦唧唇哽唏圃圄埂埔埋埃堉夏套奘奚娑娘娜娟娛娓姬娠娣娩娥娌娉孫屘宰害家宴宮宵容宸射屑展屐峭峽峻峪峨峰島崁峴差席師庫庭座弱徒徑徐恙恣恥恐恕恭恩息悄悟悚悍悔悌悅悖扇拳挈拿捎挾振捕捂捆捏捉挺捐挽挪挫挨捍捌效敉料旁旅時晉晏晃晒晌晅晁書朔朕朗校核案框桓根桂桔栩梳栗桌桑栽柴桐桀格桃株桅栓栘桁殊殉殷氣氧氨氦氤泰浪涕消涇浦浸海浙涓浬涉浮浚浴浩涌涊浹涅浥涔烊烘烤烙烈烏爹特狼狹狽狸狷玆班琉珮珠珪珞畔畝畜畚留疾病症疲疳疽疼疹痂疸皋皰益盍盎眩真眠眨矩砰砧砸砝破砷砥砭砠砟砲祕祐祠祟祖神祝祗祚秤秣秧租秦秩秘窄窈站笆笑粉紡紗紋紊素索純紐紕級紜納紙紛缺罟羔翅翁耆耘耕耙耗耽耿胱脂胰脅胭胴脆胸胳脈能脊胼胯臭臬舀舐航舫舨般芻茫荒荔荊茸荐草茵茴荏茲茹茶茗荀茱茨荃虔蚊蚪蚓蚤蚩蚌蚣蚜衰衷袁袂衽衹記訐討訌訕訊託訓訖訏訑豈豺豹財貢起躬軒軔軏辱送逆迷退迺迴逃追逅迸邕郡郝郢酒配酌釘針釗釜釙閃院陣陡陛陝除陘陞隻飢馬骨高鬥鬲鬼乾偺偽停假偃偌做偉健偶偎偕偵側偷偏倏偯偭兜冕凰剪副勒務勘動匐匏匙匿區匾參曼商啪啦啄啞啡啃啊唱啖問啕唯啤唸售啜唬啣唳啁啗圈國圉域堅堊堆埠埤基堂堵執培夠奢娶婁婉婦婪婀娼婢婚婆婊孰寇寅寄寂宿密尉專將屠屜屝崇崆崎崛崖崢崑崩崔崙崤崧崗巢常帶帳帷康庸庶庵庾張強彗彬彩彫得徙從徘御徠徜恿患悉悠您惋悴惦悽情悻悵惜悼惘惕惆惟悸惚惇戚戛扈掠控捲掖探接捷捧掘措捱掩掉掃掛捫推掄授掙採掬排掏掀捻捩捨捺敝敖救教敗啟敏敘敕敔斜斛斬族旋旌旎晝晚晤晨晦晞曹勗望梁梯梢梓梵桿桶梱梧梗械梃棄梭梆梅梔條梨梟梡梂欲殺毫毬氫涎涼淳淙液淡淌淤添淺清淇淋涯淑涮淞淹涸混淵淅淒渚涵淚淫淘淪深淮淨淆淄涪淬涿淦烹焉焊烽烯爽牽犁猜猛猖猓猙率琅琊球理現琍瓠瓶瓷甜產略畦畢異疏痔痕疵痊痍皎盔盒盛眷眾眼眶眸眺硫硃硎祥票祭移窒窕笠笨笛第符笙笞笮粒粗粕絆絃統紮紹紼絀細紳組累終紲紱缽羞羚翌翎習耜聊聆脯脖脣脫脩脰脤舂舵舷舶船莎莞莘荸莢莖莽莫莒莊莓莉莠荷荻荼莆莧處彪蛇蛀蚶蛄蚵蛆蛋蚱蚯蛉術袞袈被袒袖袍袋覓規訪訝訣訥許設訟訛訢豉豚販責貫貨貪貧赧赦趾趺軛軟這逍通逗連速逝逐逕逞造透逢逖逛途部郭都酗野釵釦釣釧釭釩閉陪陵陳陸陰陴陶陷陬雀雪雩章竟頂頃魚鳥鹵鹿麥麻傢傍傅備傑傀傖傘傚最凱割剴創剩勞勝勛博厥啻喀喧啼喊喝喘喂喜喪喔喇喋喃喳單喟唾喲喚喻喬喱啾喉喫喙圍堯堪場堤堰報堡堝堠壹壺奠婷媚婿媒媛媧孳孱寒富寓寐尊尋就嵌嵐崴嵇巽幅帽幀幃幾廊廁廂廄弼彭復循徨惑惡悲悶惠愜愣惺愕惰惻惴慨惱愎惶愉愀愒戟扉掣掌描揀揩揉揆揍插揣提握揖揭揮捶援揪換摒揚揹敞敦敢散斑斐斯普晰晴晶景暑智晾晷曾替期朝棺棕棠棘棗椅棟棵森棧棹棒棲棣棋棍植椒椎棉棚楮棻款欺欽殘殖殼毯氮氯氬港游湔渡渲湧湊渠渥渣減湛湘渤湖湮渭渦湯渴湍渺測湃渝渾滋溉渙湎湣湄湲湩湟焙焚焦焰無然煮焜牌犄犀猶猥猴猩琺琪琳琢琥琵琶琴琯琛琦琨甥甦畫番痢痛痣痙痘痞痠登發皖皓皴盜睏短硝硬硯稍稈程稅稀窘窗窖童竣等策筆筐筒答筍筋筏筑粟粥絞結絨絕紫絮絲絡給絢絰絳善翔翕耋聒肅腕腔腋腑腎脹腆脾腌腓腴舒舜菩萃菸萍菠菅萋菁華菱菴著萊菰萌菌菽菲菊萸萎萄菜萇菔菟虛蛟蛙蛭蛔蛛蛤蛐蛞街裁裂袱覃視註詠評詞証詁詔詛詐詆訴診訶詖象貂貯貼貳貽賁費賀貴買貶貿貸越超趁跎距跋跚跑跌跛跆軻軸軼辜逮逵週逸進逶鄂郵鄉郾酣酥量鈔鈕鈣鈉鈞鈍鈐鈇鈑閔閏開閑間閒閎隊階隋陽隅隆隍陲隄雁雅雄集雇雯雲韌項順須飧飪飯飩飲飭馮馭黃黍黑亂傭債傲傳僅傾催傷傻傯僇剿剷剽募勦勤勢勣匯嗟嗨嗓嗦嗎嗜嗇嗑嗣嗤嗯嗚嗡嗅嗆嗥嗉園圓塞塑塘塗塚塔填塌塭塊塢塒塋奧嫁嫉嫌媾媽媼媳嫂媲嵩嵯幌幹廉廈弒彙徬微愚意慈感想愛惹愁愈慎慌慄慍愾愴愧愍愆愷戡戢搓搾搞搪搭搽搬搏搜搔損搶搖搗搆敬斟新暗暉暇暈暖暄暘暍會榔業楚楷楠楔極椰概楊楨楫楞楓楹榆楝楣楛歇歲毀殿毓毽溢溯滓溶滂源溝滇滅溥溘溼溺溫滑準溜滄滔溪溧溴煎煙煩煤煉照煜煬煦煌煥煞煆煨煖爺牒猷獅猿猾瑯瑚瑕瑟瑞瑁琿瑙瑛瑜當畸瘀痰瘁痲痱痺痿痴痳盞盟睛睫睦睞督睹睪睬睜睥睨睢矮碎碰碗碘碌碉硼碑碓硿祺祿禁萬禽稜稚稠稔稟稞窟窠筷節筠筮筧粱粳粵經絹綑綁綏絛置罩罪署義羨群聖聘肆肄腱腰腸腥腮腳腫腹腺腦舅艇蒂葷落萱葵葦葫葉葬葛萼萵葡董葩葭葆虞虜號蛹蜓蜈蜇蜀蛾蛻蜂蜃蜆蜊衙裟裔裙補裘裝裡裊裕裒覜解詫該詳試詩詰誇詼詣誠話誅詭詢詮詬詹詻訾詨豢貊貉賊資賈賄貲賃賂賅跡跟跨路跳跺跪跤跦躲較載軾輊辟農運遊道遂達逼違遐遇遏過遍遑逾遁鄒鄗酬酪酩釉鈷鉗鈸鈽鉀鈾鉛鉋鉤鉑鈴鉉鉍鉅鈹鈿鉚閘隘隔隕雍雋雉雊雷電雹零靖靴靶預頑頓頊頒頌飼飴飽飾馳馱馴髡鳩麂鼎鼓鼠僧僮僥僖僭僚僕像僑僱僎僩兢凳劃劂匱厭嗾嘀嘛嘗嗽嘔嘆嘉嘍嘎嗷嘖嘟嘈嘐嗶團圖塵塾境墓墊塹墅塽壽夥夢夤奪奩嫡嫦嫩嫗嫖嫘嫣孵寞寧寡寥實寨寢寤察對屢嶄嶇幛幣幕幗幔廓廖弊彆彰徹慇愿態慷慢慣慟慚慘慵截撇摘摔撤摸摟摺摑摧搴摭摻敲斡旗旖暢暨暝榜榨榕槁榮槓構榛榷榻榫榴槐槍榭槌榦槃榣歉歌氳漳演滾漓滴漩漾漠漬漏漂漢滿滯漆漱漸漲漣漕漫漯澈漪滬漁滲滌滷熔熙煽熊熄熒爾犒犖獄獐瑤瑣瑪瑰瑭甄疑瘧瘍瘋瘉瘓盡監瞄睽睿睡磁碟碧碳碩碣禎福禍種稱窪窩竭端管箕箋筵算箝箔箏箸箇箄粹粽精綻綰綜綽綾綠緊綴網綱綺綢綿綵綸維緒緇綬罰翠翡翟聞聚肇腐膀膏膈膊腿膂臧臺與舔舞艋蓉蒿蓆蓄蒙蒞蒲蒜蓋蒸蓀蓓蒐蒼蓑蓊蜿蜜蜻蜢蜥蜴蜘蝕蜷蜩裳褂裴裹裸製裨褚裯誦誌語誣認誡誓誤說誥誨誘誑誚誧豪貍貌賓賑賒赫趙趕跼輔輒輕輓辣遠遘遜遣遙遞遢遝遛鄙鄘鄞酵酸酷酴鉸銀銅銘銖鉻銓銜銨鉼銑閡閨閩閣閥閤隙障際雌雒需靼鞅韶頗領颯颱餃餅餌餉駁骯骰髦魁魂鳴鳶鳳麼鼻齊億儀僻僵價儂儈儉儅凜劇劈劉劍劊勰厲嘮嘻嘹嘲嘿嘴嘩噓噎噗噴嘶嘯嘰墀墟增墳墜墮墩墦奭嬉嫻嬋嫵嬌嬈寮寬審寫層履嶝嶔幢幟幡廢廚廟廝廣廠彈影德徵慶慧慮慝慕憂慼慰慫慾憧憐憫憎憬憚憤憔憮戮摩摯摹撞撲撈撐撰撥撓撕撩撒撮播撫撚撬撙撢撳敵敷數暮暫暴暱樣樟槨樁樞標槽模樓樊槳樂樅槭樑歐歎殤毅毆漿潼澄潑潦潔澆潭潛潸潮澎潺潰潤澗潘滕潯潠潟熟熬熱熨牖犛獎獗瑩璋璃瑾璀畿瘠瘩瘟瘤瘦瘡瘢皚皺盤瞎瞇瞌瞑瞋磋磅確磊碾磕碼磐稿稼穀稽稷稻窯窮箭箱範箴篆篇篁箠篌糊締練緯緻緘緬緝編緣線緞緩綞緙緲緹罵罷羯翩耦膛膜膝膠膚膘蔗蔽蔚蓮蔬蔭蔓蔑蔣蔡蔔蓬蔥蓿蔆螂蝴蝶蝠蝦蝸蝨蝙蝗蝌蝓衛衝褐複褒褓褕褊誼諒談諄誕請諸課諉諂調誰論諍誶誹諛豌豎豬賠賞賦賤賬賭賢賣賜質賡赭趟趣踫踐踝踢踏踩踟踡踞躺輝輛輟輩輦輪輜輞輥適遮遨遭遷鄰鄭鄧鄱醇醉醋醃鋅銻銷鋪銬鋤鋁銳銼鋒鋇鋰銲閭閱霄霆震霉靠鞍鞋鞏頡頫頜颳養餓餒餘駝駐駟駛駑駕駒駙骷髮髯鬧魅魄魷魯鴆鴉鴃麩麾黎墨齒儒儘儔儐儕冀冪凝劑劓勳噙噫噹噩噤噸噪器噥噱噯噬噢噶壁墾壇壅奮嬝嬴學寰導彊憲憑憩憊懍憶憾懊懈戰擅擁擋撻撼據擄擇擂操撿擒擔撾整曆曉暹曄曇暸樽樸樺橙橫橘樹橄橢橡橋橇樵機橈歙歷氅濂澱澡濃澤濁澧澳激澹澶澦澠澴熾燉燐燒燈燕熹燎燙燜燃燄獨璜璣璘璟璞瓢甌甍瘴瘸瘺盧盥瞠瞞瞟瞥磨磚磬磧禦積穎穆穌穋窺篙簑築篤篛篡篩篦糕糖縊縑縈縛縣縞縝縉縐罹羲翰翱翮耨膳膩膨臻興艘艙蕊蕙蕈蕨蕩蕃蕉蕭蕪蕞螃螟螞螢融衡褪褲褥褫褡親覦諦諺諫諱謀諜諧諮諾謁謂諷諭諳諶諼豫豭貓賴蹄踱踴蹂踹踵輻輯輸輳辨辦遵遴選遲遼遺鄴醒錠錶鋸錳錯錢鋼錫錄錚錐錦錡錕錮錙閻隧隨險雕霎霑霖霍霓霏靛靜靦鞘頰頸頻頷頭頹頤餐館餞餛餡餚駭駢駱骸骼髻髭鬨鮑鴕鴣鴦鴨鴒鴛默黔龍龜優償儡儲勵嚎嚀嚐嚅嚇嚏壕壓壑壎嬰嬪嬤孺尷屨嶼嶺嶽嶸幫彌徽應懂懇懦懋戲戴擎擊擘擠擰擦擬擱擢擭斂斃曙曖檀檔檄檢檜櫛檣橾檗檐檠歜殮毚氈濘濱濟濠濛濤濫濯澀濬濡濩濕濮濰燧營燮燦燥燭燬燴燠爵牆獰獲璩環璦璨癆療癌盪瞳瞪瞰瞬瞧瞭矯磷磺磴磯礁禧禪穗窿簇簍篾篷簌篠糠糜糞糢糟糙糝縮績繆縷縲繃縫總縱繅繁縴縹繈縵縿縯罄翳翼聱聲聰聯聳臆臃膺臂臀膿膽臉膾臨舉艱薪薄蕾薜薑薔薯薛薇薨薊虧蟀蟑螳蟒蟆螫螻螺蟈蟋褻褶襄褸褽覬謎謗謙講謊謠謝謄謐豁谿豳賺賽購賸賻趨蹉蹋蹈蹊轄輾轂轅輿避遽還邁邂邀鄹醣醞醜鍍鎂錨鍵鍊鍥鍋錘鍾鍬鍛鍰鍚鍔闊闋闌闈闆隱隸雖霜霞鞠韓顆颶餵騁駿鮮鮫鮪鮭鴻鴿麋黏點黜黝黛鼾齋叢嚕嚮壙壘嬸彝懣戳擴擲擾攆擺擻擷斷曜朦檳檬櫃檻檸櫂檮檯歟歸殯瀉瀋濾瀆濺瀑瀏燻燼燾燸獷獵璧璿甕癖癘癒瞽瞿瞻瞼礎禮穡穢穠竄竅簫簧簪簞簣簡糧織繕繞繚繡繒繙罈翹翻職聶臍臏舊藏薩藍藐藉薰薺薹薦蟯蟬蟲蟠覆覲觴謨謹謬謫豐贅蹙蹣蹦蹤蹟蹕軀轉轍邇邃邈醫醬釐鎔鎊鎖鎢鎳鎮鎬鎰鎘鎚鎗闔闖闐闕離雜雙雛雞霤鞣鞦鞭韹額顏題顎顓颺餾餿餽餮馥騎髁鬃鬆魏魎魍鯊鯉鯽鯈鯀鵑鵝鵠黠鼕鼬儳嚥壞壟壢寵龐廬懲懷懶懵攀攏曠曝櫥櫝櫚櫓瀛瀟瀨瀚瀝瀕瀘爆爍牘犢獸獺璽瓊瓣疇疆癟癡矇礙禱穫穩簾簿簸簽簷籀繫繭繹繩繪羅繳羶羹羸臘藩藝藪藕藤藥藷蟻蠅蠍蟹蟾襠襟襖襞譁譜識證譚譎譏譆譙贈贊蹼蹲躇蹶蹬蹺蹴轔轎辭邊邋醱醮鏡鏑鏟鏃鏈鏜鏝鏖鏢鏍鏘鏤鏗鏨關隴難霪霧靡韜韻類願顛颼饅饉騖騙鬍鯨鯧鯖鯛鶉鵡鵲鵪鵬麒麗麓麴勸嚨嚷嚶嚴嚼壤孀孃孽寶巉懸懺攘攔攙曦朧櫬瀾瀰瀲爐獻瓏癢癥礦礪礬礫竇競籌籃籍糯糰辮繽繼纂罌耀臚艦藻藹蘑藺蘆蘋蘇蘊蠔蠕襤覺觸議譬警譯譟譫贏贍躉躁躅躂醴釋鐘鐃鏽闡霰飄饒饑馨騫騰騷騵鰓鰍鹹麵黨鼯齟齣齡儷儸囁囀囂夔屬巍懼懾攝攜斕曩櫻欄櫺殲灌爛犧瓖瓔癩矓籐纏續羼蘗蘭蘚蠣蠢蠡蠟襪襬覽譴護譽贓躊躍躋轟辯醺鐮鐳鐵鐺鐸鐲鐫闢霸霹露響顧顥饗驅驃驀騾髏魔魑鰭鰥鶯鶴鷂鶸麝黯鼙齜齦齧儼儻囈囊囉孿巔巒彎懿攤權歡灑灘玀瓤疊癮癬禳籠籟聾聽臟襲襯觼讀贖贗躑躓轡酈鑄鑑鑒霽霾韃韁顫饕驕驍髒鬚鱉鰱鰾鰻鷓鷗鼴齬齪龔囌巖戀攣攫攪曬欐瓚竊籤籣籥纓纖纔臢蘸蘿蠱變邐邏鑣鑠鑤靨顯饜驚驛驗髓體髑鱔鱗鱖鷥麟黴囑壩攬灞癱癲矗罐羈蠶蠹衢讓讒讖艷贛釀鑪靂靈靄韆顰驟鬢魘鱟鷹鷺鹼鹽鼇齷齲廳欖灣籬籮蠻觀躡釁鑲鑰顱饞髖鬣黌灤矚讚鑷韉驢驥纜讜躪釅鑽鑾鑼鱷鱸黷豔鑿鸚爨驪鬱鸛鸞籲乂乜凵匚厂万丌乇亍囗屮彳丏冇与丮亓仂仉仈冘勼卬厹圠夃夬尐巿旡殳毌气爿丱丼仨仜仩仡仝仚刌匜卌圢圣夗夯宁宄尒尻屴屳帄庀庂忉戉扐氕氶汃氿氻犮犰玊禸肊阞伎优伬仵伔仱伀价伈伝伂伅伢伓伄仴伒冱刓刉刐劦匢匟卍厊吇囡囟圮圪圴夼妀奼妅奻奾奷奿孖尕尥屼屺屻屾巟幵庄异弚彴忕忔忏扜扞扤扡扦扢扙扠扚扥旯旮朾朹朸朻机朿朼朳氘汆汒汜汏汊汔汋汌灱牞犴犵玎甪癿穵网艸艼芀艽艿虍襾邙邗邘邛邔阢阤阠阣佖伻佢佉体佤伾佧佒佟佁佘伭伳伿佡冏冹刜刞刡劭劮匉卣卲厎厏吰吷吪呔呅吙吜吥吘吽呏呁吨吤呇囮囧囥坁坅坌坉坋坒夆奀妦妘妠妗妎妢妐妏妧妡宎宒尨尪岍岏岈岋岉岒岊岆岓岕巠帊帎庋庉庌庈庍弅弝彸彶忒忑忐忭忨忮忳忡忤忣忺忯忷忻怀忴戺抃抌抎抏抔抇扱扻扺扰抁抈扷扽扲扴攷旰旴旳旲旵杅杇杙杕杌杈杝杍杚杋毐氙氚汸汧汫沄沋沏汱汯汩沚汭沇沕沜汦汳汥汻沎灴灺牣犿犽狃狆狁犺狅玕玗玓玔玒町甹疔疕皁礽耴肕肙肐肒肜芐芏芅芎芑芓芊芃芄豸迉辿邟邡邥邞邧邠阰阨阯阭丳侘佼侅佽侀侇佶佴侉侄佷佌侗佪侚佹侁佸侐侜侔侞侒侂侕佫佮冞冼冾刵刲刳剆刱劼匊匋匼厒厔咇呿咁咑咂咈呫呺呾呥呬呴呦咍呯呡呠咘呣呧呤囷囹坯坲坭坫坱坰坶垀坵坻坳坴坢坨坽夌奅妵妺姏姎妲姌姁妶妼姃姖妱妽姀姈妴姇孢孥宓宕屄屇岮岤岠岵岯岨岬岟岣岭岢岪岧岝岥岶岰岦帗帔帙弨弢弣弤彔徂彾彽忞忥怭怦怙怲怋怴怊怗怳怚怞怬怢怍怐怮怓怑怌怉怜戔戽抭抴拑抾抪抶拊抮抳抯抻抩抰抸攽斨斻昉旼昄昒昈旻昃昋昍昅旽昑昐曶朊枅杬枎枒杶杻枘枆构杴枍枌杺枟枑枙枃杽极杸杹枔欥殀歾毞氝沓泬泫泮泙沶泔沭泧沷泐泂沺泃泆泭泲泒泝沴沊沝沀泞泀洰泍泇沰泹泏泩泑炔炘炅炓炆炄炑炖炂炚炃牪狖狋狘狉狜狒狔狚狌狑玤玡玭玦玢玠玬玝瓝瓨甿畀甾疌疘皯盳盱盰盵矸矼矹矻矺矷祂礿秅穸穻竻籵糽耵肏肮肣肸肵肭舠芠苀芫芚芘芛芵芧芮芼芞芺芴芨芡芩苂芤苃芶芢虰虯虭虮豖迒迋迓迍迖迕迗邲邴邯邳邰阹阽阼阺陃俍俅俓侲俉俋俁俔俜俙侻侳俛俇俖侺俀侹俬剄剉勀勂匽卼厗厖厙厘咺咡咭咥哏哃茍咷咮哖咶哅哆咠呰咼咢咾呲哞咰垵垞垟垤垌垗垝垛垔垘垏垙垥垚垕壴复奓姡姞姮娀姱姝姺姽姼姶姤姲姷姛姩姳姵姠姾姴姭宨屌峐峘峌峗峋峛峞峚峉峇峊峖峓峔峏峈峆峎峟峸巹帡帢帣帠帤庰庤庢庛庣庥弇弮彖徆怷怹恔恲恞恅恓恇恉恛恌恀恂恟怤恄恘恦恮扂扃拏挍挋拵挎挃拫拹挏挌拸拶挀挓挔拺挕拻拰敁敃斪斿昶昡昲昵昜昦昢昳昫昺昝昴昹昮朏朐柁柲柈枺柜枻柸柘柀枷柅柫柤柟枵柍枳柷柶柮柣柂枹柎柧柰枲柼柆柭柌枮柦柛柺柉柊柃柪柋欨殂殄殶毖毘毠氠氡洨洴洭洟洼洿洒洊泚洳洄洙洺洚洑洀洝浂洁洘洷洃洏浀洇洠洬洈洢洉洐炷炟炾炱炰炡炴炵炩牁牉牊牬牰牳牮狊狤狨狫狟狪狦狣玅珌珂珈珅玹玶玵玴珫玿珇玾珃珆玸珋瓬瓮甮畇畈疧疪癹盄眈眃眄眅眊盷盻盺矧矨砆砑砒砅砐砏砎砉砃砓祊祌祋祅祄秕种秏秖秎窀穾竑笀笁籺籸籹籿粀粁紃紈紁罘羑羍羾耇耎耏耔耷胘胇胠胑胈胂胐胅胣胙胜胊胕胉胏胗胦胍臿舡芔苙苾苹茇苨茀苕茺苫苖苴苬苡苲苵茌苻苶苰苪苤苠苺苳苭虷虴虼虳衁衎衧衪衩觓訄訇赲迣迡迮迠郱邽邿郕郅邾郇郋郈釔釓陔陏陑陓陊陎倞倅倇倓倢倰倛俵俴倳倷倬俶俷倗倜倠倧倵倯倱倎党冔冓凊凄凅凈凎剡剚剒剞剟剕剢勍匎厞唦哢唗唒哧哳哤唚哿唄唈哫唑唅哱唊哻哷哸哠唎唃唋圁圂埌堲埕埒垺埆垽垼垸垶垿埇埐垹埁夎奊娙娖娭娮娕娏娗娊娞娳孬宧宭宬尃屖屔峬峿峮峱峷崀峹帩帨庨庮庪庬弳弰彧恝恚恧恁悢悈悀悒悁悝悃悕悛悗悇悜悎戙扆拲挐捖挬捄捅挶捃揤挹捋捊挼挩捁挴捘捔捙挭捇挳捚捑挸捗捀捈敊敆旆旃旄旂晊晟晇晑朒朓栟栚桉栲栳栻桋桏栖栱栜栵栫栭栯桎桄栴栝栒栔栦栨栮桍栺栥栠欬欯欭欱欴歭肂殈毦毤毨毣毢毧氥浺浣浤浶洍浡涒浘浢浭浯涑涍淯浿涆浞浧浠涗浰浼浟涂涘洯浨涋浾涀涄洖涃浻浽浵涐烜烓烑烝烋缹烢烗烒烞烠烔烍烅烆烇烚烎烡牂牸牷牶猀狺狴狾狶狳狻猁珓珙珥珖玼珧珣珩珜珒珛珔珝珚珗珘珨瓞瓟瓴瓵甡畛畟疰痁疻痄痀疿疶疺皊盉眝眛眐眓眒眣眑眕眙眚眢眧砣砬砢砵砯砨砮砫砡砩砳砪砱祔祛祏祜祓祒祑秫秬秠秮秭秪秜秞秝窆窉窅窋窌窊窇竘笐笄笓笅笏笈笊笎笉笒粄粑粊粌粈粍粅紞紝紑紎紘紖紓紟紒紏紌罜罡罞罠罝罛羖羒翃翂翀耖耾耹胺胲胹胵脁胻脀舁舯舥茳茭荄茙荑茥荖茿荁茦茜茢荂荎茛茪茈茼荍茖茤茠茷茯茩荇荅荌荓茞茬荋茧荈虓虒蚢蚨蚖蚍蚑蚞蚇蚗蚆蚋蚚蚅蚥蚙蚡蚧蚕蚘蚎蚝蚐蚔衃衄衭衵衶衲袀衱衿衯袃衾衴衼訒豇豗豻貤貣赶赸趵趷趶軑軓迾迵适迿迻逄迼迶郖郠郙郚郣郟郥郘郛郗郜郤酐酎酏釕釢釚陜陟隼飣髟鬯乿偰偪偡偞偠偓偋偝偲偈偍偁偛偊偢倕偅偟偩偫偣偤偆偀偮偳偗偑凐剫剭剬剮勖勓匭厜啵啶唼啍啐唴唪啑啢唶唵唰啒啅唌唲啥啎唹啈唭唻啀啋圊圇埻堔埢埶埜埴堀埭埽堈埸堋埳埏堇埮埣埲埥埬埡堎埼堐埧堁堌埱埩埰堍堄奜婠婘婕婧婞娸娵婭婐婟婥婬婓婤婗婃婝婒婄婛婈媎娾婍娹婌婰婩婇婑婖婂婜孲孮寁寀屙崞崋崝崚崠崌崨崍崦崥崏崰崒崣崟崮帾帴庱庴庹庲庳弶弸徛徖徟悊悐悆悾悰悺惓惔惏惤惙惝惈悱惛悷惊悿惃惍惀挲捥掊掂捽掽掞掭掝掗掫掎捯掇掐据掯捵掜捭掮捼掤挻掟捸掅掁掑掍捰敓旍晥晡晛晙晜晢朘桹梇梐梜桭桮梮梫楖桯梣梬梩桵桴梲梏桷梒桼桫桲梪梀桱桾梛梖梋梠梉梤桸桻梑梌梊桽欶欳欷欸殑殏殍殎殌氪淀涫涴涳湴涬淩淢涷淶淔渀淈淠淟淖涾淥淜淝淛淴淊涽淭淰涺淕淂淏淉淐淲淓淽淗淍淣涻烺焍烷焗烴焌烰焄烳焐烼烿焆焓焀烸烶焋焂焎牾牻牼牿猝猗猇猑猘猊猈狿猏猞玈珶珸珵琄琁珽琇琀珺珼珿琌琋珴琈畤畣痎痒痏痋痌痑痐皏皉盓眹眯眭眱眲眴眳眽眥眻眵硈硒硉硍硊硌砦硅硐祤祧祩祪祣祫祡离秺秸秶秷窏窔窐笵筇笴笥笰笢笤笳笘笪笝笱笫笭笯笲笸笚笣粔粘粖粣紵紽紸紶紺絅紬紩絁絇紾紿絊紻紨罣羕羜羝羛翊翋翍翐翑翇翏翉耟耞耛聇聃聈脘脥脙脛脭脟脬脞脡脕脧脝脢舑舸舳舺舴舲艴莐莣莨莍荺荳莤荴莏莁莕莙荵莔莩荽莃莌莝莛莪莋荾莥莯莈莗莰荿莦莇莮荶莚虙虖蚿蚷蛂蛁蛅蚺蚰蛈蚹蚳蚸蛌蚴蚻蚼蛃蚽蚾衒袉袕袨袢袪袚袑袡袟袘袧袙袛袗袤袬袌袓袎覂觖觙觕訰訧訬訞谹谻豜豝豽貥赽赻赹趼跂趹趿跁軘軞軝軜軗軠軡逤逋逑逜逌逡郯郪郰郴郲郳郔郫郬郩酖酘酚酓酕釬釴釱釳釸釤釹釪釫釷釨釮镺閆閈陼陭陫陱陯隿靪頄飥馗傛傕傔傞傋傣傃傌傎傝偨傜傒傂傇兟凔匒匑厤厧喑喨喥喭啷噅喢喓喈喏喵喁喣喒喤啽喌喦啿喕喡喎圌堩堷堙堞堧堣堨埵塈堥堜堛堳堿堶堮堹堸堭堬堻奡媯媔媟婺媢媞婸媦婼媥媬媕媮娷媄媊媗媃媋媩婻婽媌媜媏媓媝寪寍寋寔寑寊寎尌尰崷嵃嵫嵁嵋崿崵嵑嵎嵕崳崺嵒崽崱嵙嵂崹嵉崸崼崲崶嵀嵅幄幁彘徦徥徫惉悹惌惢惎惄愔惲愊愖愅惵愓惸惼惾惁愃愘愝愐惿愄愋扊掔掱掰揎揥揨揯揃撝揳揊揠揶揕揲揵摡揟掾揝揜揄揘揓揂揇揌揋揈揰揗揙攲敧敪敤敜敨敥斌斝斞斮旐旒晼晬晻暀晱晹晪晲朁椌棓椄棜椪棬棪棱椏棖棷棫棤棶椓椐棳棡椇棌椈楰梴椑棯棆椔棸棐棽棼棨椋椊椗棎棈棝棞棦棴棑椆棔棩椕椥棇欹欻欿欼殔殗殙殕殽毰毲毳氰淼湆湇渟湉溈渼渽湅湢渫渿湁湝湳渜渳湋湀湑渻渃渮湞湨湜湡渱渨湠湱湫渹渢渰湓湥渧湸湤湷湕湹湒湦渵渶湚焠焞焯烻焮焱焣焥焢焲焟焨焺焛牋牚犈犉犆犅犋猒猋猰猢猱猳猧猲猭猦猣猵猌琮琬琰琫琖琚琡琭琱琤琣琝琩琠琲瓻甯畯畬痧痚痡痦痝痟痤痗皕皒盚睆睇睄睍睅睊睎睋睌矞矬硠硤硥硜硭硱硪确硰硩硨硞硢祴祳祲祰稂稊稃稌稄窙竦竤筊笻筄筈筌筎筀筘筅粢粞粨粡絘絯絣絓絖絧絪絏絭絜絫絒絔絩絑絟絎缾缿罥罦羢羠羡翗聑聏聐胾胔腃腊腒腏腇脽腍脺臦臮臷臸臹舄舼舽舿艵茻菏菹萣菀菨萒菧菤菼菶萐菆菈菫菣莿萁菝菥菘菿菡菋菎菖菵菉萉萏菞萑萆菂菳菕菺菇菑菪萓菃菬菮菄菻菗菢萛菛菾蛘蛢蛦蛓蛣蛚蛪蛝蛫蛜蛬蛩蛗蛨蛑衈衖衕袺裗袹袸裀袾袶袼袷袽袲褁裉覕覘覗觝觚觛詎詍訹詙詀詗詘詄詅詒詈詑詊詌詏豟貁貀貺貾貰貹貵趄趀趉跘跓跍跇跖跜跏跕跙跈跗跅軯軷軺軹軦軮軥軵軧軨軶軫軱軬軴軩逭逴逯鄆鄬鄄郿郼鄈郹郻鄁鄀鄇鄅鄃酡酤酟酢酠鈁鈊鈥鈃鈚鈦鈏鈌鈀鈒釿釽鈆鈄鈧鈂鈜鈤鈙鈗鈅鈖镻閍閌閐隇陾隈隉隃隀雂雈雃雱雰靬靰靮頇颩飫鳦黹亃亄亶傽傿僆傮僄僊傴僈僂傰僁傺傱僋僉傶傸凗剺剸剻剼嗃嗛嗌嗐嗋嗊嗝嗀嗔嗄嗩喿嗒喍嗏嗕嗢嗖嗈嗲嗍嗙嗂圔塓塨塤塏塍塉塯塕塎塝塙塥塛堽塣塱壼嫇嫄嫋媺媸媱媵媰媿嫈媻嫆媷嫀嫊媴媶嫍媹媐寖寘寙尟尳嵱嵣嵊嵥嵲嵬嵞嵨嵧嵢巰幏幎幊幍幋廅廌廆廋廇彀徯徭惷慉慊愫慅愶愲愮慆愯慏愩慀戠酨戣戥戤揅揱揫搐搒搉搠搤搳摃搟搕搘搹搷搢搣搌搦搰搨摁搵搯搊搚摀搥搧搋揧搛搮搡搎敯斒旓暆暌暕暐暋暊暙暔晸朠楦楟椸楎楢楱椿楅楪椹楂楗楙楺楈楉椵楬椳椽楥棰楸椴楩楀楯楄楶楘楁楴楌椻楋椷楜楏楑椲楒椯楻椼歆歅歃歂歈歁殛毻毼毹毷毸溛滖滈溏滀溟溓溔溠溱溹滆滒溽滁溞滉溷溰滍溦滏溲溾滃滜滘溙溒溎溍溤溡溿溳滐滊溗溮溣煇煔煒煣煠煁煝煢煲煸煪煡煂煘煃煋煰煟煐煓煄煍煚牏犍犌犑犐犎猼獂猻猺獀獊獉瑄瑊瑋瑒瑑瑗瑀瑏瑐瑎瑂瑆瑍瑔瓡瓿瓾瓽甝畹畷榃痯瘏瘃痷痾痼痹痸瘐痻痶痭痵痽皙皵盝睕睟睠睒睖睚睩睧睔睙睭矠碇碚碔碏碄碕碅碆碡碃硹碙碀碖硻祼禂祽祹稑稘稙稒稗稕稢稓稛稐窣窢窞竫筦筤筭筴筩筲筥筳筱筰筡筸筶筣粲粴粯綈綆綀綍絿綅絺綎絻綃絼綌綔綄絽綒罭罫罧罨罬羦羥羧翛翜耡腤腠腷腜腩腛腢腲朡腞腶腧腯腄腡舝艉艄艀艂艅蓱萿葖葶葹蒏蒍葥葑葀蒆葧萰葍葽葚葙葴葳葝蔇葞萷萺萴葺葃葸萲葅萩菙葋萯葂萭葟葰萹葎葌葒葯蓅蒎萻葇萶萳葨葾葄萫葠葔葮葐蜋蜄蛷蜌蛺蛖蛵蝍蛸蜎蜉蜁蛶蜍蜅裖裋裍裎裞裛裚裌裐覅覛觟觥觤觡觠觢觜触詶誆詿詡訿詷誂誄詵誃誁詴詺谼豋豊豥豤豦貆貄貅賌赨赩趑趌趎趏趍趓趔趐趒跰跠跬跱跮跐跩跣跢跧跲跫跴輆軿輁輀輅輇輈輂輋遒逿遄遉逽鄐鄍鄏鄑鄖鄔鄋鄎酮酯鉈鉒鈰鈺鉦鈳鉥鉞銃鈮鉊鉆鉭鉬鉏鉠鉧鉯鈶鉡鉰鈱鉔鉣鉐鉲鉎鉓鉌鉖鈲閟閜閞閛隒隓隑隗雎雺雽雸雵靳靷靸靲頏頍頎颬飶飹馯馲馰馵骭骫魛鳪鳭鳧麀黽僦僔僗僨僳僛僪僝僤僓僬僰僯僣僠凘劀劁勩勫匰厬嘧嘕嘌嘒嗼嘏嘜嘁嘓嘂嗺嘝嘄嗿嗹墉塼墐墘墆墁塿塴墋塺墇墑墎塶墂墈塻墔墏壾奫嫜嫮嫥嫕嫪嫚嫭嫫嫳嫢嫠嫛嫬嫞嫝嫙嫨嫟孷寠寣屣嶂嶀嵽嶆嵺嶁嵷嶊嶉嶈嵾嵼嶍嵹嵿幘幙幓廘廑廗廎廜廕廙廒廔彄彃彯徶愬愨慁慞慱慳慒慓慲慬憀慴慔慺慛慥愻慪慡慖戩戧戫搫摍摛摝摴摶摲摳摽摵摦撦摎撂摞摜摋摓摠摐摿搿摬摫摙摥摷敳斠暡暠暟朅朄朢榱榶槉榠槎榖榰榬榼榑榙榎榧榍榩榾榯榿槄榽榤槔榹槊榚槏榳榓榪榡榞槙榗榐槂榵榥槆歊歍歋殞殟殠毃毄毾滎滵滱漃漥滸漷滻漮漉潎漙漚漧漘漻漒滭漊漶潳滹滮漭潀漰漼漵滫漇漎潃漅滽滶漹漜滼漺漟漍漞漈漡熇熐熉熀熅熂熏煻熆熁熗牄牓犗犕犓獃獍獑獌瑢瑳瑱瑵瑲瑧瑮甀甂甃畽疐瘖瘈瘌瘕瘑瘊瘔皸瞁睼瞅瞂睮瞀睯睾瞃碲碪碴碭碨硾碫碞碥碠碬碢碤禘禊禋禖禕禔禓禗禈禒禐稫穊稰稯稨稦窨窫窬竮箈箜箊箑箐箖箍箌箛箎箅箘劄箙箤箂粻粿粼粺綧綷緂綣綪緁緀緅綝緎緄緆緋緌綯綹綖綼綟綦綮綩綡緉罳翢翣翥翞耤聝聜膉膆膃膇膍膌膋舕蒗蒤蒡蒟蒺蓎蓂蒬蒮蒫蒹蒴蓁蓍蒪蒚蒱蓐蒝蒧蒻蒢蒔蓇蓌蒛蒩蒯蒨蓖蒘蒶蓏蒠蓗蓔蓒蓛蒰蒑虡蜳蜣蜨蝫蝀蜮蜞蜡蜙蜛蝃蜬蝁蜾蝆蜠蜲蜪蜭蜼蜒蜺蜱蜵蝂蜦蜧蜸蜤蜚蜰蜑裷裧裱裲裺裾裮裼裶裻裰裬裫覝覡覟覞觩觫觨誫誙誋誒誏誖谽豨豩賕賏賗趖踉踂跿踍跽踊踃踇踆踅跾踀踄輐輑輎輍鄣鄜鄠鄢鄟鄝鄚鄤鄡鄛酺酲酹酳銥銤鉶銛鉺銠銔銪銍銦銚銫鉹銗鉿銣鋮銎銂銕銢鉽銈銡銊銆銌銙銧鉾銇銩銝銋鈭隞隡雿靘靽靺靾鞃鞀鞂靻鞄鞁靿韎韍頖颭颮餂餀餇馝馜駃馹馻馺駂馽駇骱髣髧鬾鬿魠魡魟鳱鳲鳵麧僿儃儰僸儆儇僶僾儋儌僽儊劋劌勱勯噈噂噌嘵噁噊噉噆噘噚噀嘳嘽嘬嘾嘸嘪嘺圚墫墝墱墠墣墯墬墥墡壿嫿嫴嫽嫷嫶嬃嫸嬂嫹嬁嬇嬅嬏屧嶙嶗嶟嶒嶢嶓嶕嶠嶜嶡嶚嶞幩幝幠幜緳廛廞廡彉徲憋憃慹憱憰憢憉憛憓憯憭憟憒憪憡憍慦憳戭摮摰撖撠撅撗撜撏撋撊撌撣撟摨撱撘敶敺敹敻斲斳暵暰暩暲暷暪暯樀樆樗槥槸樕槱槤樠槿槬槢樛樝槾樧槲槮樔槷槧橀樈槦槻樍槼槫樉樄樘樥樏槶樦樇槴樖歑殥殣殢殦氁氀毿氂潁漦潾澇濆澒澍澉澌潢潏澅潚澖潶潬澂潕潲潒潐潗澔澓潝漀潡潫潽潧澐潓澋潩潿澕潣潷潪潻熲熯熛熰熠熚熩熵熝熥熞熤熡熪熜熧熳犘犚獘獒獞獟獠獝獛獡獚獙獢璇璉璊璆璁瑽璅璈瑼瑹甈甇畾瘥瘞瘙瘝瘜瘣瘚瘨瘛皜皝皞皛瞍瞏瞉瞈磍碻磏磌磑磎磔磈磃磄磉禚禡禠禜禢禛歶稹窲窴窳箷篋箾箬篎箯箹篊箵糅糈糌糋緷緛緪緧緗緡縃緺緦緶緱緰緮緟罶羬羰羭翭翫翪翬翦翨聤聧膣膟膞膕膢膙膗舖艏艓艒艐艎艑蔤蔻蔏蔀蔩蔎蔉蔍蔟蔊蔧蔜蓻蔫蓺蔈蔌蓴蔪蓲蔕蓷蓫蓳蓼蔒蓪蓩蔖蓾蔨蔝蔮蔂蓽蔞蓶蔱蔦蓧蓨蓰蓯蓹蔘蔠蔰蔋蔙蔯虢蝖蝣蝤蝷蟡蝳蝘蝔蝛蝒蝡蝚蝑蝞蝭蝪蝐蝎蝟蝝蝯蝬蝺蝮蝜蝥蝏蝻蝵蝢蝧蝩衚褅褌褔褋褗褘褙褆褖褑褎褉覢覤覣觭觰觬諏諆誸諓諑諔諕誻諗誾諀諅諘諃誺誽諙谾豍貏賥賟賙賨賚賝賧趠趜趡趛踠踣踥踤踮踕踛踖踑踙踦踧踔踒踘踓踜踗踚輬輤輘輚輠輣輖輗遳遰遯遧遫鄯鄫鄩鄪鄲鄦鄮醅醆醊醁醂醄醀鋐鋃鋄鋀鋙銶鋏鋱鋟鋘鋩鋗鋝鋌鋯鋂鋨鋊鋈鋎鋦鋍鋕鋉鋠鋞鋧鋑鋓銵鋡鋆銴镼閬閫閮閰隤隢雓霅霈霂靚鞊鞎鞈韐韏頞頝頦頩頨頠頛頧颲餈飺餑餔餖餗餕駜駍駏駓駔駎駉駖駘駋駗駌骳髬髫髳髲髱魆魃魧魴魱魦魶魵魰魨魤魬鳼鳺鳽鳿鳷鴇鴀鳹鳻鴈鴅鴄麃黓鼏鼐儜儓儗儚儑凞匴叡噰噠噮噳噦噣噭噲噞噷圜圛壈墽壉墿墺壂墼壆嬗嬙嬛嬡嬔嬓嬐嬖嬨嬚嬠嬞寯嶬嶱嶩嶧嶵嶰嶮嶪嶨嶲嶭嶯嶴幧幨幦幯廩廧廦廨廥彋徼憝憨憖懅憴懆懁懌憺憿憸憌擗擖擐擏擉撽撉擃擛擳擙攳敿敼斢曈暾曀曊曋曏暽暻暺曌朣樴橦橉橧樲橨樾橝橭橶橛橑樨橚樻樿橁橪橤橐橏橔橯橩橠樼橞橖橕橍橎橆歕歔歖殧殪殫毈毇氄氃氆澭濋澣濇澼濎濈潞濄澽澞濊澨瀄澥澮澺澬澪濏澿澸澢濉澫濍澯澲澰燅燂熿熸燖燀燁燋燔燊燇燏熽燘熼燆燚燛犝犞獩獦獧獬獥獫獪瑿璚璠璔璒璕璡甋疀瘯瘭瘱瘽瘳瘼瘵瘲瘰皻盦瞚瞝瞡瞜瞛瞢瞣瞕瞙瞗磝磩磥磪磞磣磛磡磢磭磟磠禤穄穈穇窶窸窵窱窷篞篣篧篝篕篥篚篨篹篔篪篢篜篫篘篟糒糔糗糐糑縒縡縗縌縟縠縓縎縜縕縚縢縋縏縖縍縔縥縤罃罻罼罺羱翯耪耩聬膱膦膮膹膵膫膰膬膴膲膷膧臲艕艖艗蕖蕅蕫蕍蕓蕡蕘蕀蕆蕤蕁蕢蕄蕑蕇蕣蔾蕛蕱蕎蕮蕵蕕蕧蕠薌蕦蕝蕔蕥蕬虣虥虤螛螏螗螓螒螈螁螖螘蝹螇螣螅螐螑螝螄螔螜螚螉褞褦褰褭褮褧褱褢褩褣褯褬褟觱諠諢諲諴諵諝謔諤諟諰諈諞諡諨諿諯諻貑貒貐賵賮賱賰賳赬赮趥趧踳踾踸蹀蹅踶踼踽蹁踰踿躽輶輮輵輲輹輷輴遶遹遻邆郺鄳鄵鄶醓醐醑醍醏錧錞錈錟錆錏鍺錸錼錛錣錒錁鍆錭錎錍鋋錝鋺錥錓鋹鋷錴錂錤鋿錩錹錵錪錔錌錋鋾錉錀鋻錖閼闍閾閹閺閶閿閵閽隩雔霋霒霐鞙鞗鞔韰韸頵頯頲餤餟餧餩馞駮駬駥駤駰駣駪駩駧骹骿骴骻髶髺髹髷鬳鮀鮅鮇魼魾魻鮂鮓鮒鮐魺鮕魽鮈鴥鴗鴠鴞鴔鴩鴝鴘鴢鴐鴙鴟麈麆麇麮麭黕黖黺鼒鼽儦儥儢儤儠儩勴嚓嚌嚍嚆嚄嚃噾嚂噿嚁壖壔壏壒嬭嬥嬲嬣嬬嬧嬦嬯嬮孻寱寲嶷幬幪徾徻懃憵憼懧懠懥懤懨懞擯擩擣擫擤擨斁斀斶旚曒檍檖檁檥檉檟檛檡檞檇檓檎檕檃檨檤檑橿檦檚檅檌檒歛殭氉濌澩濴濔濣濜濭濧濦濞濲濝濢濨燡燱燨燲燤燰燢獳獮獯璗璲璫璐璪璭璱璥璯甐甑甒甏疄癃癈癉癇皤盩瞵瞫瞲瞷瞶瞴瞱瞨矰磳磽礂磻磼磲礅磹磾礄禫禨穜穛穖穘穔穚窾竀竁簅簏篲簀篿篻簎篴簋篳簂簉簃簁篸篽簆篰篱簐簊糨縭縼繂縳顈縸縪繉繀繇縩繌縰縻縶繄縺罅罿罾罽翴翲耬膻臄臌臊臅臇膼臩艛艚艜薃薀薏薧薕薠薋薣蕻薤薚薞蕷蕼薉薡蕺蕸蕗薎薖薆薍薙薝薁薢薂薈薅蕹蕶薘薐薟虨螾螪螭蟅螰螬螹螵螼螮蟉蟃蟂蟌螷螯蟄蟊螴螶螿螸螽蟞螲褵褳褼褾襁襒褷襂覭覯覮觲觳謞謘謖謑謅謋謢謏謒謕謇謍謈謆謜謓謚豏豰豲豱豯貕貔賹赯蹎蹍蹓蹐蹌蹇轃轀邅遾鄸醚醢醛醙醟醡醝醠鎡鎃鎯鍤鍖鍇鍼鍘鍜鍶鍉鍐鍑鍠鍭鎏鍌鍪鍹鍗鍕鍒鍏鍱鍷鍻鍡鍞鍣鍧鎀鍎鍙闇闀闉闃闅閷隮隰隬霠霟霘霝霙鞚鞡鞜鞞鞝韕韔韱顁顄顊顉顅顃餥餫餬餪餳餲餯餭餱餰馘馣馡騂駺駴駷駹駸駶駻駽駾駼騃骾髾髽鬁髼魈鮚鮨鮞鮛鮦鮡鮥鮤鮆鮢鮠鮯鴳鵁鵧鴶鴮鴯鴱鴸鴰鵅鵂鵃鴾鴷鵀鴽翵鴭麊麉麍麰黈黚黻黿鼤鼣鼢齔龠儱儭儮嚘嚜嚗嚚嚝嚙奰嬼屩屪巀幭幮懘懟懭懮懱懪懰懫懖懩擿攄擽擸攁攃擼斔旛曚曛曘櫅檹檽櫡櫆檺檶檷櫇檴檭歞毉氋瀇瀌瀍瀁瀅瀔瀎濿瀀濻瀦濼濷瀊爁燿燹爃燽獶璸瓀璵瓁璾璶璻瓂甔甓癜癤癙癐癓癗癚皦皽盬矂瞺磿礌礓礔礉礐礒礑禭禬穟簜簩簙簠簟簭簝簦簨簢簥簰繜繐繖繣繘繢繟繑繠繗繓羵羳翷翸聵臑臒臐艟艞薴藆藀藃藂薳薵薽藇藄薿藋藎藈藅薱薶藒蘤薸薷薾虩蟧蟦蟢蟛蟫蟪蟥蟟蟳蟤蟔蟜蟓蟭蟘蟣螤蟗蟙蠁蟴蟨蟝襓襋襏襌襆襐襑襉謪謧謣謳謰謵譇謯謼謾謱謥謷謦謶謮謤謻謽謺豂豵貙貘貗賾贄贂贀蹜蹢蹠蹗蹖蹞蹥蹧蹛蹚蹡蹝蹩蹔轆轇轈轋鄨鄺鄻鄾醨醥醧醯醪鎵鎌鎒鎷鎛鎝鎉鎧鎎鎪鎞鎦鎕鎈鎙鎟鎍鎱鎑鎲鎤鎨鎴鎣鎥闒闓闑隳雗雚巂雟雘雝霣霢霥鞬鞮鞨鞫鞤鞪鞢鞥韗韙韖韘韺顐顑顒颸饁餼餺騏騋騉騍騄騑騊騅騇騆髀髜鬈鬄鬅鬩鬵魊魌魋鯇鯆鯃鮿鯁鮵鮸鯓鮶鯄鮹鮽鵜鵓鵏鵊鵛鵋鵙鵖鵌鵗鵒鵔鵟鵘鵚麎麌黟鼁鼀鼖鼥鼫鼪鼩鼨齌齕儴儵劖勷厴嚫嚭嚦嚧嚪嚬壚壝壛夒嬽嬾嬿巃幰徿懻攇攐攍攉攌攎斄旞旝曞櫧櫠櫌櫑櫙櫋櫟櫜櫐櫫櫏櫍櫞歠殰氌瀙瀧瀠瀖瀫瀡瀢瀣瀩瀗瀤瀜瀪爌爊爇爂爅犥犦犤犣犡瓋瓅璷瓃甖癠矉矊矄矱礝礛礡礜礗礞禰穧穨簳簼簹簬簻糬糪繶繵繸繰繷繯繺繲繴繨罋罊羃羆羷翽翾聸臗臕艤艡艣藫藱藭藙藡藨藚藗藬藲藸藘藟藣藜藑藰藦藯藞藢蠀蟺蠃蟶蟷蠉蠌蠋蠆蟼蠈蟿蠊蠂襢襚襛襗襡襜襘襝襙覈覷覶觶譐譈譊譀譓譖譔譋譕譑譂譒譗豃豷豶貚贆贇贉趬趪趭趫蹭蹸蹳蹪蹯蹻軂轒轑轏轐轓辴酀鄿醰醭鏞鏇鏏鏂鏚鏐鏹鏬鏌鏙鎩鏦鏊鏔鏮鏣鏕鏄鏎鏀鏒鏧镽闚闛雡霩霫霬霨霦鞳鞷鞶韝韞韟顜顙顝顗颿颽颻颾饈饇饃馦馧騚騕騥騝騤騛騢騠騧騣騞騜騔髂鬋鬊鬎鬌鬷鯪鯫鯠鯞鯤鯦鯢鯰鯔鯗鯬鯜鯙鯥鯕鯡鯚鵷鶁鶊鶄鶈鵱鶀鵸鶆鶋鶌鵽鵫鵴鵵鵰鵩鶅鵳鵻鶂鵯鵹鵿鶇鵨麔麑黀黼鼭齀齁齍齖齗齘匷嚲嚵嚳壣孅巆巇廮廯忀忁懹攗攖攕攓旟曨曣曤櫳櫰櫪櫨櫹櫱櫮櫯瀼瀵瀯瀷瀴瀱灂瀸瀿瀺瀹灀瀻瀳灁爓爔犨獽獼璺皫皪皾盭矌矎矏矍矲礥礣礧礨礤礩禲穮穬穭竷籉籈籊籇籅糮繻繾纁纀羺翿聹臛臙舋艨艩蘢藿蘁藾蘛蘀藶蘄蘉蘅蘌藽蠙蠐蠑蠗蠓蠖襣襦覹觷譠譪譝譨譣譥譧譭趮躆躈躄轙轖轗轕轘轚邍酃酁醷醵醲醳鐋鐓鏻鐠鐏鐔鏾鐕鐐鐨鐙鐍鏵鐀鏷鐇鐎鐖鐒鏺鐉鏸鐊鏿鏼鐌鏶鐑鐆闞闠闟霮霯鞹鞻韽韾顠顢顣顟飁飂饐饎饙饌饋饓騲騴騱騬騪騶騩騮騸騭髇髊髆鬐鬒鬑鰋鰈鯷鰅鰒鯸鱀鰇鰎鰆鰗鰔鰉鶟鶙鶤鶝鶒鶘鶐鶛鶠鶔鶜鶪鶗鶡鶚鶢鶨鶞鶣鶿鶩鶖鶦鶧麙麛麚黥黤黧黦鼰鼮齛齠齞齝齙龑儺儹劘劗囃嚽嚾孈孇巋巏廱懽攛欂櫼欃櫸欀灃灄灊灈灉灅灆爝爚爙獾甗癪矐礭礱礯籔籓糲纊纇纈纋纆纍罍羻耰臝蘘蘪蘦蘟蘣蘜蘙蘧蘮蘡蘠蘩蘞蘥蠩蠝蠛蠠蠤蠜蠫衊襭襩襮襫觺譹譸譅譺譻贐贔趯躎躌轞轛轝酆酄酅醹鐿鐻鐶鐩鐽鐼鐰鐹鐪鐷鐬鑀鐱闥闤闣霵霺鞿韡顤飉飆飀饘饖騹騽驆驄驂驁騺騿髍鬕鬗鬘鬖鬺魒鰫鰝鰜鰬鰣鰨鰩鰤鰡鶷鶶鶼鷁鷇鷊鷏鶾鷅鷃鶻鶵鷎鶹鶺鶬鷈鶱鶭鷌鶳鷍鶲鹺麜黫黮黭鼛鼘鼚鼱齎齥齤龒亹囆囅囋奱孋孌巕巑廲攡攠攦攢欋欈欉氍灕灖灗灒爞爟犩獿瓘瓕瓙瓗癭皭礵禴穰穱籗籜籙籛籚糴糱纑罏羇臞艫蘴蘵蘳蘬蘲蘶蠬蠨蠦蠪蠥襱覿覾觻譾讄讂讆讅譿贕躕躔躚躒躐躖躗轠轢酇鑌鑐鑊鑋鑏鑇鑅鑈鑉鑆霿韣顪顩飋饔饛驎驓驔驌驏驈驊驉驒驐髐鬙鬫鬻魖魕鱆鱈鰿鱄鰹鰳鱁鰼鰷鰴鰲鰽鰶鷛鷒鷞鷚鷋鷐鷜鷑鷟鷩鷙鷘鷖鷵鷕鷝麶黰鼵鼳鼲齂齫龕龢儽劙壨壧奲孍巘蠯彏戁戃戄攩攥斖曫欑欒欏毊灛灚爢玂玁玃癰矔籧籦纕艬蘺虀蘹蘼蘱蘻蘾蠰蠲蠮蠳襶襴襳觾讌讎讋讈豅贙躘轤轣醼鑢鑕鑝鑗鑞韄韅頀驖驙鬞鬟鬠鱒鱘鱐鱊鱍鱋鱕鱙鱌鱎鷻鷷鷯鷣鷫鷸鷤鷶鷡鷮鷦鷲鷰鷢鷬鷴鷳鷨鷭黂黐黲黳鼆鼜鼸鼷鼶齃齏齱齰齮齯囓囍孎屭攭曭曮欓灟灡灝灠爣瓛瓥矕礸禷禶籪纗羉艭虃蠸蠷蠵衋讔讕躞躟躠躝醾醽釂鑫鑨鑩雥靆靃靇韇韥驞髕魙鱣鱧鱦鱢鱞鱠鸂鷾鸇鸃鸆鸅鸀鸁鸉鷿鷽鸄麠鼞齆齴齵齶囔攮斸欘欙欗欚灢爦犪矘矙礹籩籫糶纚纘纛纙臠臡虆虇虈襹襺襼襻觿讘讙躥躤躣鑮鑭鑯鑱鑳靉顲饟鱨鱮鱭鸋鸍鸐鸏鸒鸑麡黵鼉齇齸齻齺齹圞灦籯蠼趲躦釃鑴鑸鑶鑵驠鱴鱳鱱鱵鸔鸓黶鼊龤灨灥糷虪蠾蠽蠿讞貜躩軉靋顳顴飌饡馫驤驦驧鬤鸕鸗齈戇欞爧虌躨钂钀钁驩驨鬮鸙爩虋讟钃鱹麷癵驫鱺鸝灩灪麤齾齉龘"\r
             }\r
-            Version{"33.1"}\r
+            Version{"34"}\r
         }\r
         default{"pinyin"}\r
         gb2312han{\r
@@ -18,7 +18,7 @@ zh{
                 "[reorder Latn Hani]"\r
                 "&[last regular]<*啊阿埃挨哎唉哀皑癌蔼矮艾碍爱隘鞍氨安俺按暗岸胺案肮昂盎凹敖熬翱袄傲奥懊澳芭捌扒叭吧笆八疤巴拔跋靶把耙坝霸罢爸白柏百摆佰败拜稗斑班搬扳般颁板版扮拌伴瓣半办绊邦帮梆榜膀绑棒磅蚌镑傍谤苞胞包褒剥薄雹保堡饱宝抱报暴豹鲍爆杯碑悲卑北辈背贝钡倍狈备惫焙被奔苯本笨崩绷甭泵蹦迸逼鼻比鄙笔彼碧蓖蔽毕毙毖币庇痹闭敝弊必辟壁臂避陛鞭边编贬扁便变卞辨辩辫遍标彪膘表鳖憋别瘪彬斌濒滨宾摈兵冰柄丙秉饼炳病并玻菠播拨钵波博勃搏铂箔伯帛舶脖膊渤泊驳捕卜哺补埠不布步簿部怖擦猜裁材才财睬踩采彩菜蔡餐参蚕残惭惨灿苍舱仓沧藏操糙槽曹草厕策侧册测层蹭插叉茬茶查碴搽察岔差诧拆柴豺搀掺蝉馋谗缠铲产阐颤昌猖场尝常长偿肠厂敞畅唱倡超抄钞朝嘲潮巢吵炒车扯撤掣彻澈郴臣辰尘晨忱沉陈趁衬撑称城橙成呈乘程惩澄诚承逞骋秤吃痴持匙池迟弛驰耻齿侈尺赤翅斥炽充冲虫崇宠抽酬畴踌稠愁筹仇绸瞅丑臭初出橱厨躇锄雏滁除楚础储矗搐触处揣川穿椽传船喘串疮窗幢床闯创吹炊捶锤垂春椿醇唇淳纯蠢戳绰疵茨磁雌辞慈瓷词此刺赐次聪葱囱匆从丛凑粗醋簇促蹿篡窜摧崔催脆瘁粹淬翠村存寸磋撮搓措挫错搭达答瘩打大呆歹傣戴带殆代贷袋待逮怠耽担丹单郸掸胆旦氮但惮淡诞弹蛋当挡党荡档刀捣蹈倒岛祷导到稻悼道盗德得的蹬灯登等瞪凳邓堤低滴迪敌笛狄涤翟嫡抵底地蒂第帝弟递缔颠掂滇碘点典靛垫电佃甸店惦奠淀殿碉叼雕凋刁掉吊钓调跌爹碟蝶迭谍叠丁盯叮钉顶鼎锭定订丢东冬董懂动栋侗恫冻洞兜抖斗陡豆逗痘都督毒犊独读堵睹赌杜镀肚度渡妒端短锻段断缎堆兑队对墩吨蹲敦顿囤钝盾遁掇哆多夺垛躲朵跺舵剁惰堕蛾峨鹅俄额讹娥恶厄扼遏鄂饿恩而儿耳尔饵洱二贰发罚筏伐乏阀法珐藩帆番翻樊矾钒繁凡烦反返范贩犯饭泛坊芳方肪房防妨仿访纺放菲非啡飞肥匪诽吠肺废沸费芬酚吩氛分纷坟焚汾粉奋份忿愤粪丰封枫蜂峰锋风疯烽逢冯缝讽奉凤佛否夫敷肤孵扶拂辐幅氟符伏俘服浮涪福袱弗甫抚辅俯釜斧脯腑府腐赴副覆赋复傅付阜父腹负富讣附妇缚咐噶嘎该改概钙盖溉干甘杆柑竿肝赶感秆敢赣冈刚钢缸肛纲岗港杠篙皋高膏羔糕搞镐稿告哥歌搁戈鸽胳疙割革葛格蛤阁隔铬个各给根跟耕更庚羹埂耿梗工攻功恭龚供躬公宫弓巩汞拱贡共钩勾沟苟狗垢构购够辜菇咕箍估沽孤姑鼓古蛊骨谷股故顾固雇刮瓜剐寡挂褂乖拐怪棺关官冠观管馆罐惯灌贯光广逛瑰规圭硅归龟闺轨鬼诡癸桂柜跪贵刽辊滚棍锅郭国果裹过哈骸孩海氦亥害骇酣憨邯韩含涵寒函喊罕翰撼捍旱憾悍焊汗汉夯杭航壕嚎豪毫郝好耗号浩呵喝荷菏核禾和何合盒貉阂河涸赫褐鹤贺嘿黑痕很狠恨哼亨横衡恒轰哄烘虹鸿洪宏弘红喉侯猴吼厚候后呼乎忽瑚壶葫胡蝴狐糊湖弧虎唬护互沪户花哗华猾滑画划化话槐徊怀淮坏欢环桓还缓换患唤痪豢焕涣宦幻荒慌黄磺蝗簧皇凰惶煌晃幌恍谎灰挥辉徽恢蛔回毁悔慧卉惠晦贿秽会烩汇讳诲绘荤昏婚魂浑混豁活伙火获或惑霍货祸击圾基机畸稽积箕肌饥迹激讥鸡姬绩缉吉极棘辑籍集及急疾汲即嫉级挤几脊己蓟技冀季伎祭剂悸济寄寂计记既忌际妓继纪嘉枷夹佳家加荚颊贾甲钾假稼价架驾嫁歼监坚尖笺间煎兼肩艰奸缄茧检柬碱硷拣捡简俭剪减荐槛鉴践贱见键箭件健舰剑饯渐溅涧建僵姜将浆江疆蒋桨奖讲匠酱降蕉椒礁焦胶交郊浇骄娇嚼搅铰矫侥脚狡角饺缴绞剿教酵轿较叫窖揭接皆秸街阶截劫节桔杰捷睫竭洁结解姐戒藉芥界借介疥诫届巾筋斤金今津襟紧锦仅谨进靳晋禁近烬浸尽劲荆兢茎睛晶鲸京惊精粳经井警景颈静境敬镜径痉靖竟竞净炯窘揪究纠玖韭久灸九酒厩救旧臼舅咎就疚鞠拘狙疽居驹菊局咀矩举沮聚拒据巨具距踞锯俱句惧炬剧捐鹃娟倦眷卷绢撅攫抉掘倔爵觉决诀绝均菌钧军君峻俊竣浚郡骏喀咖卡咯开揩楷凯慨刊堪勘坎砍看康慷糠扛抗亢炕考拷烤靠坷苛柯棵磕颗科壳咳可渴克刻客课肯啃垦恳坑吭空恐孔控抠口扣寇枯哭窟苦酷库裤夸垮挎跨胯块筷侩快宽款匡筐狂框矿眶旷况亏盔岿窥葵奎魁傀馈愧溃坤昆捆困括扩廓阔垃拉喇蜡腊辣啦莱来赖蓝婪栏拦篮阑兰澜谰揽览懒缆烂滥琅榔狼廊郎朗浪捞劳牢老佬姥酪烙涝勒乐雷镭蕾磊累儡垒擂肋类泪棱楞冷厘梨犁黎篱狸离漓理李里鲤礼莉荔吏栗丽厉励砾历利傈例俐痢立粒沥隶力璃哩俩联莲连镰廉怜涟帘敛脸链恋炼练粮凉梁粱良两辆量晾亮谅撩聊僚疗燎寥辽潦了撂镣廖料列裂烈劣猎琳林磷霖临邻鳞淋凛赁吝拎玲菱零龄铃伶羚凌灵陵岭领另令溜琉榴硫馏留刘瘤流柳六龙聋咙笼窿隆垄拢陇楼娄搂篓漏陋芦卢颅庐炉掳卤虏鲁麓碌露路赂鹿潞禄录陆戮驴吕铝侣旅履屡缕虑氯律率滤绿峦挛孪滦卵乱掠略抡轮伦仑沦纶论萝螺罗逻锣箩骡裸落洛骆络妈麻玛码蚂马骂嘛吗埋买麦卖迈脉瞒馒蛮满蔓曼慢漫谩芒茫盲氓忙莽猫茅锚毛矛铆卯茂冒帽貌贸么玫枚梅酶霉煤没眉媒镁每美昧寐妹媚门闷们萌蒙檬盟锰猛梦孟眯醚靡糜迷谜弥米秘觅泌蜜密幂棉眠绵冕免勉娩缅面苗描瞄藐秒渺庙妙蔑灭民抿皿敏悯闽明螟鸣铭名命谬摸摹蘑模膜磨摩魔抹末莫墨默沫漠寞陌谋牟某拇牡亩姆母墓暮幕募慕木目睦牧穆拿哪呐钠那娜纳氖乃奶耐奈南男难囊挠脑恼闹淖呢馁内嫩能妮霓倪泥尼拟你匿腻逆溺蔫拈年碾撵捻念娘酿鸟尿捏聂孽啮镊镍涅您柠狞凝宁拧泞牛扭钮纽脓浓农弄奴努怒女暖虐疟挪懦糯诺哦欧鸥殴藕呕偶沤啪趴爬帕怕琶拍排牌徘湃派攀潘盘磐盼畔判叛乓庞旁耪胖抛咆刨炮袍跑泡呸胚培裴赔陪配佩沛喷盆砰抨烹澎彭蓬棚硼篷膨朋鹏捧碰坯砒霹批披劈琵毗啤脾疲皮匹痞僻屁譬篇偏片骗飘漂瓢票撇瞥拼频贫品聘乒坪苹萍平凭瓶评屏坡泼颇婆破魄迫粕剖扑铺仆莆葡菩蒲埔朴圃普浦谱曝瀑期欺栖戚妻七凄漆柒沏其棋奇歧畦崎脐齐旗祈祁骑起岂乞企启契砌器气迄弃汽泣讫掐恰洽牵扦钎铅千迁签仟谦乾黔钱钳前潜遣浅谴堑嵌欠歉枪呛腔羌墙蔷强抢橇锹敲悄桥瞧乔侨巧鞘撬翘峭俏窍切茄且怯窃钦侵亲秦琴勤芹擒禽寝沁青轻氢倾卿清擎晴氰情顷请庆琼穷秋丘邱球求囚酋泅趋区蛆曲躯屈驱渠取娶龋趣去圈颧权醛泉全痊拳犬券劝缺炔瘸却鹊榷确雀裙群然燃冉染瓤壤攘嚷让饶扰绕惹热壬仁人忍韧任认刃妊纫扔仍日戎茸蓉荣融熔溶容绒冗揉柔肉茹蠕儒孺如辱乳汝入褥软阮蕊瑞锐闰润若弱撒洒萨腮鳃塞赛三叁伞散桑嗓丧搔骚扫嫂瑟色涩森僧莎砂杀刹沙纱傻啥煞筛晒珊苫杉山删煽衫闪陕擅赡膳善汕扇缮墒伤商赏晌上尚裳梢捎稍烧芍勺韶少哨邵绍奢赊蛇舌舍赦摄射慑涉社设砷申呻伸身深娠绅神沈审婶甚肾慎渗声生甥牲升绳省盛剩胜圣师失狮施湿诗尸虱十石拾时什食蚀实识史矢使屎驶始式示士世柿事拭誓逝势是嗜噬适仕侍释饰氏市恃室视试收手首守寿授售受瘦兽蔬枢梳殊抒输叔舒淑疏书赎孰熟薯暑曙署蜀黍鼠属术述树束戍竖墅庶数漱恕刷耍摔衰甩帅栓拴霜双爽谁水睡税吮瞬顺舜说硕朔烁斯撕嘶思私司丝死肆寺嗣四伺似饲巳松耸怂颂送宋讼诵搜艘擞嗽苏酥俗素速粟僳塑溯宿诉肃酸蒜算虽隋随绥髓碎岁穗遂隧祟孙损笋蓑梭唆缩琐索锁所塌他它她塔獭挞蹋踏胎苔抬台泰酞太态汰坍摊贪瘫滩坛檀痰潭谭谈坦毯袒碳探叹炭汤塘搪堂棠膛唐糖倘躺淌趟烫掏涛滔绦萄桃逃淘陶讨套特藤腾疼誊梯剔踢锑提题蹄啼体替嚏惕涕剃屉天添填田甜恬舔腆挑条迢眺跳贴铁帖厅听烃汀廷停亭庭挺艇通桐酮瞳同铜彤童桶捅筒统痛偷投头透凸秃突图徒途涂屠土吐兔湍团推颓腿蜕褪退吞屯臀拖托脱鸵陀驮驼椭妥拓唾挖哇蛙洼娃瓦袜歪外豌弯湾玩顽丸烷完碗挽晚皖惋宛婉万腕汪王亡枉网往旺望忘妄威巍微危韦违桅围唯惟为潍维苇萎委伟伪尾纬未蔚味畏胃喂魏位渭谓尉慰卫瘟温蚊文闻纹吻稳紊问嗡翁瓮挝蜗涡窝我斡卧握沃巫呜钨乌污诬屋无芜梧吾吴毋武五捂午舞伍侮坞戊雾晤物勿务悟误昔熙析西硒矽晰嘻吸锡牺稀息希悉膝夕惜熄烯溪汐犀檄袭席习媳喜铣洗系隙戏细瞎虾匣霞辖暇峡侠狭下厦夏吓掀锨先仙鲜纤咸贤衔舷闲涎弦嫌显险现献县腺馅羡宪陷限线相厢镶香箱襄湘乡翔祥详想响享项巷橡像向象萧硝霄削哮嚣销消宵淆晓小孝校肖啸笑效楔些歇蝎鞋协挟携邪斜胁谐写械卸蟹懈泄泻谢屑薪芯锌欣辛新忻心信衅星腥猩惺兴刑型形邢行醒幸杏性姓兄凶胸匈汹雄熊休修羞朽嗅锈秀袖绣墟戌需虚嘘须徐许蓄酗叙旭序畜恤絮婿绪续轩喧宣悬旋玄选癣眩绚靴薛学穴雪血勋熏循旬询寻驯巡殉汛训讯逊迅压押鸦鸭呀丫芽牙蚜崖衙涯雅哑亚讶焉咽阉烟淹盐严研蜒岩延言颜阎炎沿奄掩眼衍演艳堰燕厌砚雁唁彦焰宴谚验殃央鸯秧杨扬佯疡羊洋阳氧仰痒养样漾邀腰妖瑶摇尧遥窑谣姚咬舀药要耀椰噎耶爷野冶也页掖业叶曳腋夜液一壹医揖铱依伊衣颐夷遗移仪胰疑沂宜姨彝椅蚁倚已乙矣以艺抑易邑屹亿役臆逸肄疫亦裔意毅忆义益溢诣议谊译异翼翌绎茵荫因殷音阴姻吟银淫寅饮尹引隐印英樱婴鹰应缨莹萤营荧蝇迎赢盈影颖硬映哟拥佣臃痈庸雍踊蛹咏泳涌永恿勇用幽优悠忧尤由邮铀犹油游酉有友右佑釉诱又幼迂淤于盂榆虞愚舆余俞逾鱼愉渝渔隅予娱雨与屿禹宇语羽玉域芋郁吁遇喻峪御愈欲狱育誉浴寓裕预豫驭鸳渊冤元垣袁原援辕园员圆猿源缘远苑愿怨院曰约越跃钥岳粤月悦阅耘云郧匀陨允运蕴酝晕韵孕匝砸杂栽哉灾宰载再在咱攒暂赞赃脏葬遭糟凿藻枣早澡蚤躁噪造皂灶燥责择则泽贼怎增憎曾赠扎喳渣札轧铡闸眨栅榨咋乍炸诈摘斋宅窄债寨瞻毡詹粘沾盏斩辗崭展蘸栈占战站湛绽樟章彰漳张掌涨杖丈帐账仗胀瘴障招昭找沼赵照罩兆肇召遮折哲蛰辙者锗蔗这浙珍斟真甄砧臻贞针侦枕疹诊震振镇阵蒸挣睁征狰争怔整拯正政帧症郑证芝枝支吱蜘知肢脂汁之织职直植殖执值侄址指止趾只旨纸志挚掷至致置帜峙制智秩稚质炙痔滞治窒中盅忠钟衷终种肿重仲众舟周州洲诌粥轴肘帚咒皱宙昼骤珠株蛛朱猪诸诛逐竹烛煮拄瞩嘱主著柱助蛀贮铸筑住注祝驻抓爪拽专砖转撰赚篆桩庄装妆撞壮状椎锥追赘坠缀谆准捉拙卓桌琢茁酌啄着灼浊兹咨资姿滋淄孜紫仔籽滓子自渍字鬃棕踪宗综总纵邹走奏揍租足卒族祖诅阻组钻纂嘴醉最罪尊遵昨左佐柞做作坐座亍丌兀丐廿卅丕亘丞鬲孬噩丨禺丿匕乇夭爻卮氐囟胤馗毓睾鼗丶亟鼐乜乩亓芈孛啬嘏仄厍厝厣厥厮靥赝匚叵匦匮匾赜卦卣刂刈刎刭刳刿剀剌剞剡剜蒯剽劂劁劐劓冂罔亻仃仉仂仨仡仫仞伛仳伢佤仵伥伧伉伫佞佧攸佚佝佟佗伲伽佶佴侑侉侃侏佾佻侪佼侬侔俦俨俪俅俚俣俜俑俟俸倩偌俳倬倏倮倭俾倜倌倥倨偾偃偕偈偎偬偻傥傧傩傺僖儆僭僬僦僮儇儋仝氽佘佥俎龠汆籴兮巽黉馘冁夔勹匍訇匐凫夙兕亠兖亳衮袤亵脔裒禀嬴蠃羸冫冱冽冼凇冖冢冥讠讦讧讪讴讵讷诂诃诋诏诎诒诓诔诖诘诙诜诟诠诤诨诩诮诰诳诶诹诼诿谀谂谄谇谌谏谑谒谔谕谖谙谛谘谝谟谠谡谥谧谪谫谮谯谲谳谵谶卩卺阝阢阡阱阪阽阼陂陉陔陟陧陬陲陴隈隍隗隰邗邛邝邙邬邡邴邳邶邺邸邰郏郅邾郐郄郇郓郦郢郜郗郛郫郯郾鄄鄢鄞鄣鄱鄯鄹酃酆刍奂劢劬劭劾哿勐勖勰叟燮矍廴凵凼鬯厶弁畚巯坌垩垡塾墼壅壑圩圬圪圳圹圮圯坜圻坂坩垅坫垆坼坻坨坭坶坳垭垤垌垲埏垧垴垓垠埕埘埚埙埒垸埴埯埸埤埝堋堍埽埭堀堞堙塄堠塥塬墁墉墚墀馨鼙懿艹艽艿芏芊芨芄芎芑芗芙芫芸芾芰苈苊苣芘芷芮苋苌苁芩芴芡芪芟苄苎芤苡茉苷苤茏茇苜苴苒苘茌苻苓茑茚茆茔茕苠苕茜荑荛荜茈莒茼茴茱莛荞茯荏荇荃荟荀茗荠茭茺茳荦荥荨茛荩荬荪荭荮莰荸莳莴莠莪莓莜莅荼莶莩荽莸荻莘莞莨莺莼菁萁菥菘堇萘萋菝菽菖萜萸萑萆菔菟萏萃菸菹菪菅菀萦菰菡葜葑葚葙葳蒇蒈葺蒉葸萼葆葩葶蒌蒎萱葭蓁蓍蓐蓦蒽蓓蓊蒿蒺蓠蒡蒹蒴蒗蓥蓣蔌甍蔸蓰蔹蔟蔺蕖蔻蓿蓼蕙蕈蕨蕤蕞蕺瞢蕃蕲蕻薤薨薇薏蕹薮薜薅薹薷薰藓藁藜藿蘧蘅蘩蘖蘼廾弈夼奁耷奕奚奘匏尢尥尬尴扌扪抟抻拊拚拗拮挢拶挹捋捃掭揶捱捺掎掴捭掬掊捩掮掼揲揸揠揿揄揞揎摒揆掾摅摁搋搛搠搌搦搡摞撄摭撖摺撷撸撙撺擀擐擗擤擢攉攥攮弋忒甙弑卟叱叽叩叨叻吒吖吆呋呒呓呔呖呃吡呗呙吣吲咂咔呷呱呤咚咛咄呶呦咝哐咭哂咴哒咧咦哓哔呲咣哕咻咿哌哙哚哜咩咪咤哝哏哞唛哧唠哽唔哳唢唣唏唑唧唪啧喏喵啉啭啁啕唿啐唼唷啖啵啶啷唳唰啜喋嗒喃喱喹喈喁喟啾嗖喑啻嗟喽喾喔喙嗪嗷嗉嘟嗑嗫嗬嗔嗦嗝嗄嗯嗥嗲嗳嗌嗍嗨嗵嗤辔嘞嘈嘌嘁嘤嘣嗾嘀嘧嘭噘嘹噗嘬噍噢噙噜噌噔嚆噤噱噫噻噼嚅嚓嚯囔囗囝囡囵囫囹囿圄圊圉圜帏帙帔帑帱帻帼帷幄幔幛幞幡岌屺岍岐岖岈岘岙岑岚岜岵岢岽岬岫岱岣峁岷峄峒峤峋峥崂崃崧崦崮崤崞崆崛嵘崾崴崽嵬嵛嵯嵝嵫嵋嵊嵩嵴嶂嶙嶝豳嶷巅彳彷徂徇徉後徕徙徜徨徭徵徼衢彡犭犰犴犷犸狃狁狎狍狒狨狯狩狲狴狷猁狳猃狺狻猗猓猡猊猞猝猕猢猹猥猬猸猱獐獍獗獠獬獯獾舛夥飧夤夂饣饧饨饩饪饫饬饴饷饽馀馄馇馊馍馐馑馓馔馕庀庑庋庖庥庠庹庵庾庳赓廒廑廛廨廪膺忄忉忖忏怃忮怄忡忤忾怅怆忪忭忸怙怵怦怛怏怍怩怫怊怿怡恸恹恻恺恂恪恽悖悚悭悝悃悒悌悛惬悻悱惝惘惆惚悴愠愦愕愣惴愀愎愫慊慵憬憔憧憷懔懵忝隳闩闫闱闳闵闶闼闾阃阄阆阈阊阋阌阍阏阒阕阖阗阙阚丬爿戕氵汔汜汊沣沅沐沔沌汨汩汴汶沆沩泐泔沭泷泸泱泗沲泠泖泺泫泮沱泓泯泾洹洧洌浃浈洇洄洙洎洫浍洮洵洚浏浒浔洳涑浯涞涠浞涓涔浜浠浼浣渚淇淅淞渎涿淠渑淦淝淙渖涫渌涮渫湮湎湫溲湟溆湓湔渲渥湄滟溱溘滠漭滢溥溧溽溻溷滗溴滏溏滂溟潢潆潇漤漕滹漯漶潋潴漪漉漩澉澍澌潸潲潼潺濑濉澧澹澶濂濡濮濞濠濯瀚瀣瀛瀹瀵灏灞宀宄宕宓宥宸甯骞搴寤寮褰寰蹇謇辶迓迕迥迮迤迩迦迳迨逅逄逋逦逑逍逖逡逵逶逭逯遄遑遒遐遨遘遢遛暹遴遽邂邈邃邋彐彗彖彘尻咫屐屙孱屣屦羼弪弩弭艴弼鬻屮妁妃妍妩妪妣妗姊妫妞妤姒妲妯姗妾娅娆姝娈姣姘姹娌娉娲娴娑娣娓婀婧婊婕娼婢婵胬媪媛婷婺媾嫫媲嫒嫔媸嫠嫣嫱嫖嫦嫘嫜嬉嬗嬖嬲嬷孀尕尜孚孥孳孑孓孢驵驷驸驺驿驽骀骁骅骈骊骐骒骓骖骘骛骜骝骟骠骢骣骥骧纟纡纣纥纨纩纭纰纾绀绁绂绉绋绌绐绔绗绛绠绡绨绫绮绯绱绲缍绶绺绻绾缁缂缃缇缈缋缌缏缑缒缗缙缜缛缟缡缢缣缤缥缦缧缪缫缬缭缯缰缱缲缳缵幺畿巛甾邕玎玑玮玢玟珏珂珑玷玳珀珉珈珥珙顼琊珩珧珞玺珲琏琪瑛琦琥琨琰琮琬琛琚瑁瑜瑗瑕瑙瑷瑭瑾璜璎璀璁璇璋璞璨璩璐璧瓒璺韪韫韬杌杓杞杈杩枥枇杪杳枘枧杵枨枞枭枋杷杼柰栉柘栊柩枰栌柙枵柚枳柝栀柃枸柢栎柁柽栲栳桠桡桎桢桄桤梃栝桕桦桁桧桀栾桊桉栩梵梏桴桷梓桫棂楮棼椟椠棹椤棰椋椁楗棣椐楱椹楠楂楝榄楫榀榘楸椴槌榇榈槎榉楦楣楹榛榧榻榫榭槔榱槁槊槟榕槠榍槿樯槭樗樘橥槲橄樾檠橐橛樵檎橹樽樨橘橼檑檐檩檗檫猷獒殁殂殇殄殒殓殍殚殛殡殪轫轭轱轲轳轵轶轸轷轹轺轼轾辁辂辄辇辋辍辎辏辘辚軎戋戗戛戟戢戡戥戤戬臧瓯瓴瓿甏甑甓攴旮旯旰昊昙杲昃昕昀炅曷昝昴昱昶昵耆晟晔晁晏晖晡晗晷暄暌暧暝暾曛曜曦曩贲贳贶贻贽赀赅赆赈赉赇赍赕赙觇觊觋觌觎觏觐觑牮犟牝牦牯牾牿犄犋犍犏犒挈挲掰搿擘耄毪毳毽毵毹氅氇氆氍氕氘氙氚氡氩氤氪氲攵敕敫牍牒牖爰虢刖肟肜肓肼朊肽肱肫肭肴肷胧胨胩胪胛胂胄胙胍胗朐胝胫胱胴胭脍脎胲胼朕脒豚脶脞脬脘脲腈腌腓腴腙腚腱腠腩腼腽腭腧塍媵膈膂膑滕膣膪臌朦臊膻臁膦欤欷欹歃歆歙飑飒飓飕飙飚殳彀毂觳斐齑斓於旆旄旃旌旎旒旖炀炜炖炝炻烀炷炫炱烨烊焐焓焖焯焱煳煜煨煅煲煊煸煺熘熳熵熨熠燠燔燧燹爝爨灬焘煦熹戾戽扃扈扉礻祀祆祉祛祜祓祚祢祗祠祯祧祺禅禊禚禧禳忑忐怼恝恚恧恁恙恣悫愆愍慝憩憝懋懑戆肀聿沓泶淼矶矸砀砉砗砘砑斫砭砜砝砹砺砻砟砼砥砬砣砩硎硭硖硗砦硐硇硌硪碛碓碚碇碜碡碣碲碹碥磔磙磉磬磲礅磴礓礤礞礴龛黹黻黼盱眄眍盹眇眈眚眢眙眭眦眵眸睐睑睇睃睚睨睢睥睿瞍睽瞀瞌瞑瞟瞠瞰瞵瞽町畀畎畋畈畛畲畹疃罘罡罟詈罨罴罱罹羁罾盍盥蠲钅钆钇钋钊钌钍钏钐钔钗钕钚钛钜钣钤钫钪钭钬钯钰钲钴钶钷钸钹钺钼钽钿铄铈铉铊铋铌铍铎铐铑铒铕铖铗铙铘铛铞铟铠铢铤铥铧铨铪铩铫铮铯铳铴铵铷铹铼铽铿锃锂锆锇锉锊锍锎锏锒锓锔锕锖锘锛锝锞锟锢锪锫锩锬锱锲锴锶锷锸锼锾锿镂锵镄镅镆镉镌镎镏镒镓镔镖镗镘镙镛镞镟镝镡镢镤镥镦镧镨镩镪镫镬镯镱镲镳锺矧矬雉秕秭秣秫稆嵇稃稂稞稔稹稷穑黏馥穰皈皎皓皙皤瓞瓠甬鸠鸢鸨鸩鸪鸫鸬鸲鸱鸶鸸鸷鸹鸺鸾鹁鹂鹄鹆鹇鹈鹉鹋鹌鹎鹑鹕鹗鹚鹛鹜鹞鹣鹦鹧鹨鹩鹪鹫鹬鹱鹭鹳疒疔疖疠疝疬疣疳疴疸痄疱疰痃痂痖痍痣痨痦痤痫痧瘃痱痼痿瘐瘀瘅瘌瘗瘊瘥瘘瘕瘙瘛瘼瘢瘠癀瘭瘰瘿瘵癃瘾瘳癍癞癔癜癖癫癯翊竦穸穹窀窆窈窕窦窠窬窨窭窳衤衩衲衽衿袂袢裆袷袼裉裢裎裣裥裱褚裼裨裾裰褡褙褓褛褊褴褫褶襁襦襻疋胥皲皴矜耒耔耖耜耠耢耥耦耧耩耨耱耋耵聃聆聍聒聩聱覃顸颀颃颉颌颍颏颔颚颛颞颟颡颢颥颦虍虔虬虮虿虺虼虻蚨蚍蚋蚬蚝蚧蚣蚪蚓蚩蚶蛄蚵蛎蚰蚺蚱蚯蛉蛏蚴蛩蛱蛲蛭蛳蛐蜓蛞蛴蛟蛘蛑蜃蜇蛸蜈蜊蜍蜉蜣蜻蜞蜥蜮蜚蜾蝈蜴蜱蜩蜷蜿螂蜢蝽蝾蝻蝠蝰蝌蝮螋蝓蝣蝼蝤蝙蝥螓螯螨蟒蟆螈螅螭螗螃螫蟥螬螵螳蟋蟓螽蟑蟀蟊蟛蟪蟠蟮蠖蠓蟾蠊蠛蠡蠹蠼缶罂罄罅舐竺竽笈笃笄笕笊笫笏筇笸笪笙笮笱笠笥笤笳笾笞筘筚筅筵筌筝筠筮筻筢筲筱箐箦箧箸箬箝箨箅箪箜箢箫箴篑篁篌篝篚篥篦篪簌篾篼簏簖簋簟簪簦簸籁籀臾舁舂舄臬衄舡舢舣舭舯舨舫舸舻舳舴舾艄艉艋艏艚艟艨衾袅袈裘裟襞羝羟羧羯羰羲籼敉粑粝粜粞粢粲粼粽糁糇糌糍糈糅糗糨艮暨羿翎翕翥翡翦翩翮翳糸絷綦綮繇纛麸麴赳趄趔趑趱赧赭豇豉酊酐酎酏酤酢酡酰酩酯酽酾酲酴酹醌醅醐醍醑醢醣醪醭醮醯醵醴醺豕鹾趸跫踅蹙蹩趵趿趼趺跄跖跗跚跞跎跏跛跆跬跷跸跣跹跻跤踉跽踔踝踟踬踮踣踯踺蹀踹踵踽踱蹉蹁蹂蹑蹒蹊蹰蹶蹼蹯蹴躅躏躔躐躜躞豸貂貊貅貘貔斛觖觞觚觜觥觫觯訾謦靓雩雳雯霆霁霈霏霎霪霭霰霾龀龃龅龆龇龈龉龊龌黾鼋鼍隹隼隽雎雒瞿雠銎銮鋈錾鍪鏊鎏鐾鑫鱿鲂鲅鲆鲇鲈稣鲋鲎鲐鲑鲒鲔鲕鲚鲛鲞鲟鲠鲡鲢鲣鲥鲦鲧鲨鲩鲫鲭鲮鲰鲱鲲鲳鲴鲵鲶鲷鲺鲻鲼鲽鳄鳅鳆鳇鳊鳋鳌鳍鳎鳏鳐鳓鳔鳕鳗鳘鳙鳜鳝鳟鳢靼鞅鞑鞒鞔鞯鞫鞣鞲鞴骱骰骷鹘骶骺骼髁髀髅髂髋髌髑魅魃魇魉魈魍魑飨餍餮饕饔髟髡髦髯髫髻髭髹鬈鬏鬓鬟鬣麽麾縻麂麇麈麋麒鏖麝麟黛黜黝黠黟黢黩黧黥黪黯鼢鼬鼯鼹鼷鼽鼾齄"\r
             }\r
-            Version{"33.1"}\r
+            Version{"34"}\r
         }\r
         pinyin{\r
             Sequence{\r
@@ -1888,7 +1888,7 @@ zh{
                 "&弞<沈阳/阳"\r
                 "&銺<藏文/文"\r
             }\r
-            Version{"33.1"}\r
+            Version{"34"}\r
         }\r
         private-pinyin{\r
             Sequence{\r
@@ -1902,7 +1902,7 @@ zh{
                 "&[before 2]u<<ū<<<Ū<<ú<<<Ú<<ǔ<<<Ǔ<<ù<<<Ù"\r
                 "&U<<ǖ<<<Ǖ<<ǘ<<<Ǘ<<ǚ<<<Ǚ<<ǜ<<<Ǜ<<ü<<<Ü"\r
             }\r
-            Version{"33.1"}\r
+            Version{"34"}\r
         }\r
         stroke{\r
             Sequence{\r
@@ -2604,7 +2604,7 @@ zh{
                 "&龟<<<⻳"\r
                 "&龠<<<⿕"\r
             }\r
-            Version{"33.1"}\r
+            Version{"34"}\r
         }\r
         unihan{\r
             Sequence{\r
@@ -2612,7 +2612,7 @@ zh{
                 "[import zh-u-co-private-pinyin]"\r
                 "[reorder Hani Bopo]"\r
             }\r
-            Version{"33.1"}\r
+            Version{"34"}\r
         }\r
         zhuyin{\r
             Sequence{\r
@@ -4638,7 +4638,7 @@ zh{
                 "&龟<<<⻳"\r
                 "&龠<<<⿕"\r
             }\r
-            Version{"33.1"}\r
+            Version{"34"}\r
         }\r
     }\r
 }\r
index e36b44de525f7afffcc0a017d36cabbea2494e61..3d6bc2a05feccccfdbdcb540c3092dcebe1a1360 100644 (file)
@@ -184,7 +184,7 @@ af{
         }\r
         EUR{\r
             "€",\r
-            "Euro",\r
+            "euro",\r
         }\r
         FJD{\r
             "FJD",\r
@@ -630,6 +630,10 @@ af{
             "VEF",\r
             "Venezolaanse bolivar",\r
         }\r
+        VES{\r
+            "VES",\r
+            "Venezolaanse Bolívar",\r
+        }\r
         VND{\r
             "₫",\r
             "Viëtnamese dong",\r
@@ -659,8 +663,8 @@ af{
             "CFP-frank",\r
         }\r
         XXX{\r
-            "XXX",\r
-            "Onbekende geldeenheid",\r
+            "¤",\r
+            "onbekende geldeenheid",\r
         }\r
         YER{\r
             "YER",\r
@@ -1378,8 +1382,12 @@ af{
             other{"Oezbekiese som"}\r
         }\r
         VEF{\r
-            one{"Venezolaanse bolivar"}\r
-            other{"Venezolaanse bolivar"}\r
+            one{"Venezolaanse bolívar (2008–2018)"}\r
+            other{"Venezolaanse bolívare (2008–2018)"}\r
+        }\r
+        VES{\r
+            one{"Venezolaanse bolívar"}\r
+            other{"Venezolaanse bolívare"}\r
         }\r
         VND{\r
             one{"Viëtnamese dong"}\r
@@ -1430,5 +1438,5 @@ af{
         one{"{0} {1}"}\r
         other{"{0} {1}"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.65"}\r
 }\r
index 7ecb03432fa1120d2d432731671acf7b1b7522b8..34991c195f0794832703ee0520334c7a3f7e407e 100644 (file)
@@ -504,11 +504,11 @@ am{
         }\r
         SDG{\r
             "SDG",\r
-            "á\8b¨á\88±á\8b³á\8a\95 á\8b²á\8a\93á\88­",\r
+            "á\8b¨á\88±á\8b³á\8a\95 á\8d\93á\8b\8dá\8a\95á\8bµ",\r
         }\r
         SDP{\r
             "SDP",\r
-            "የሱዳን ፓውንድ",\r
+            "የሱዳን ፓውንድ (1957–1998)",\r
         }\r
         SEK{\r
             "SEK",\r
@@ -612,7 +612,11 @@ am{
         }\r
         VEF{\r
             "VEF",\r
-            "የቬንዝዌላ ቦሊቫር",\r
+            "የቬንዝዌላ ቦሊቫር (2008–2018)",\r
+        }\r
+        VES{\r
+            "VES",\r
+            "የቬንዝዌላ-ቦሊቫር",\r
         }\r
         VND{\r
             "₫",\r
@@ -643,7 +647,7 @@ am{
             "ሲ ኤፍ ፒ ፍራንክ",\r
         }\r
         XXX{\r
-            "XXX",\r
+            "¤",\r
             "ያልታወቀ ገንዘብ",\r
         }\r
         YER{\r
@@ -1261,8 +1265,12 @@ am{
             other{"የሲሼል ሩፒ"}\r
         }\r
         SDG{\r
-            one{"የሱዳን ዲናር"}\r
-            other{"የሱዳን ዲናር"}\r
+            one{"የሱዳን ፓውንድ"}\r
+            other{"የሱዳን ፓውንድ"}\r
+        }\r
+        SDP{\r
+            one{"የሱዳን ፓውንድ (1957–1998)"}\r
+            other{"የሱዳን ፓውንድ (1957–1998)"}\r
         }\r
         SEK{\r
             one{"የስዊድን ክሮና"}\r
@@ -1365,8 +1373,12 @@ am{
             other{"የኡዝፔኪስታን ሶም"}\r
         }\r
         VEF{\r
-            one{"የቬንዝዌላ ቦሊቫር"}\r
-            other{"የቬንዝዌላ ቦሊቫር"}\r
+            one{"የቬንዝዌላ ቦሊቫር (2008–2018)"}\r
+            other{"የቬንዝዌላ ቦሊቫር (2008–2018)"}\r
+        }\r
+        VES{\r
+            one{"የቬንዝዌላ-ቦሊቫር"}\r
+            other{"የቬንዝዌላ-ቦሊቫር"}\r
         }\r
         VND{\r
             one{"የቭየትናም ዶንግ"}\r
@@ -1421,5 +1433,5 @@ am{
         one{"{0} {1}"}\r
         other{"{0} {1}"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.65"}\r
 }\r
index f2affb7461cf18a63344797d654479a2d3d5393a..06687bf3fcc9f095006ffaad786dad48c3f54b7a 100644 (file)
@@ -236,7 +236,7 @@ ar{
         }\r
         CVE{\r
             "CVE",\r
-            "اسÙ\83Ù\88دÙ\88 Ø§Ù\84رأس Ø§Ù\84خضراء",\r
+            "اسÙ\83Ù\88دÙ\88 Ø§Ù\84رأس Ø§Ù\84أخضر",\r
         }\r
         CYP{\r
             "CYP",\r
@@ -567,11 +567,11 @@ ar{
             "باتاكا ماكاوي",\r
         }\r
         MRO{\r
-            "أ.م.‏",\r
+            "MRO",\r
             "أوقية موريتانية - 1973-2017",\r
         }\r
         MRU{\r
-            "MRU",\r
+            "أ.م.",\r
             "أوقية موريتانية",\r
         }\r
         MTL{\r
@@ -900,6 +900,10 @@ ar{
         }\r
         VEF{\r
             "VEF",\r
+            "بوليفار فنزويلي - 2008–2018",\r
+        }\r
+        VES{\r
+            "VES",\r
             "بوليفار فنزويلي",\r
         }\r
         VND{\r
@@ -1425,12 +1429,12 @@ ar{
             zero{"بيزو كوبي"}\r
         }\r
         CVE{\r
-            few{"اسÙ\83Ù\88دÙ\88 Ø§Ù\84رأس Ø§Ù\84خضراء"}\r
-            many{"اسÙ\83Ù\88دÙ\88 Ø§Ù\84رأس Ø§Ù\84خضراء"}\r
-            one{"اسÙ\83Ù\88دÙ\88 Ø§Ù\84رأس Ø§Ù\84خضراء"}\r
-            other{"اسÙ\83Ù\88دÙ\88 Ø§Ù\84رأس Ø§Ù\84خضراء"}\r
-            two{"اسÙ\83Ù\88دÙ\88 Ø§Ù\84رأس Ø§Ù\84خضراء"}\r
-            zero{"اسÙ\83Ù\88دÙ\88 Ø§Ù\84رأس Ø§Ù\84خضراء"}\r
+            few{"اسÙ\83Ù\88دÙ\88 Ø§Ù\84رأس Ø§Ù\84أخضر"}\r
+            many{"اسÙ\83Ù\88دÙ\88 Ø§Ù\84رأس Ø§Ù\84أخضر"}\r
+            one{"اسÙ\83Ù\88دÙ\88 Ø§Ù\84رأس Ø§Ù\84أخضر"}\r
+            other{"اسÙ\83Ù\88دÙ\88 Ø§Ù\84رأس Ø§Ù\84أخضر"}\r
+            two{"اسÙ\83Ù\88دÙ\88 Ø§Ù\84رأس Ø§Ù\84أخضر"}\r
+            zero{"اسÙ\83Ù\88دÙ\88 Ø§Ù\84رأس Ø§Ù\84أخضر"}\r
         }\r
         CZK{\r
             few{"كرونة تشيكية"}\r
@@ -2329,6 +2333,14 @@ ar{
             zero{"سوم أوزبكستاني"}\r
         }\r
         VEF{\r
+            few{"بوليفار فنزويلي - 2008–2018"}\r
+            many{"بوليفار فنزويلي - 2008–2018"}\r
+            one{"بوليفار فنزويلي - 2008–2018"}\r
+            other{"بوليفار فنزويلي - 2008–2018"}\r
+            two{"بوليفار فنزويلي - 2008–2018"}\r
+            zero{"بوليفار فنزويلي - 2008–2018"}\r
+        }\r
+        VES{\r
             few{"بوليفار فنزويلي"}\r
             many{"بوليفار فنزويلي"}\r
             one{"بوليفار فنزويلي"}\r
@@ -2441,5 +2453,5 @@ ar{
         two{"{0} {1}"}\r
         zero{"{0} {1}"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.50"}\r
 }\r
index d5fda93783f6b83fbc85fa9f7cec89b32f762e29..7d9f27bb4fa1175fec201c5b931013445ee49a4f 100644 (file)
@@ -586,8 +586,16 @@ as{
             "UZS",\r
             "উজবেকিস্তানী ছোম",\r
         }\r
+        VEB{\r
+            "VEB",\r
+            "ভেনিজুৱেলান বলিভাৰ (1871–2008)",\r
+        }\r
         VEF{\r
             "VEF",\r
+            "ভেনিজুৱেলান বলিভাৰ (2008–2018)",\r
+        }\r
+        VES{\r
+            "VES",\r
             "ভেনিজুৱেলান বলিভাৰ",\r
         }\r
         VND{\r
@@ -619,7 +627,7 @@ as{
             "CFP ফ্ৰেংক",\r
         }\r
         XXX{\r
-            "XXX",\r
+            "¤",\r
             "অজ্ঞাত মুদ্ৰা",\r
         }\r
         YER{\r
@@ -1319,9 +1327,17 @@ as{
             one{"উজবেকিস্তানী ছোম"}\r
             other{"উজবেকিস্তানী ছোম"}\r
         }\r
+        VEB{\r
+            one{"ভেনিজুৱেলান বলিভাৰ (1871–2008)"}\r
+            other{"ভেনিজুৱেলান বলিভাৰ (1871–2008)"}\r
+        }\r
         VEF{\r
-            one{"ভেনিজুৱেলান বলিভাৰ"}\r
-            other{"ভেনিজুৱেলান বলিভাৰ"}\r
+            one{"ভেনিজুৱেলান বলিভাৰ (2008–2018)"}\r
+            other{"ভেনিজুৱেলান বলিভাৰ (2008–2018)"}\r
+        }\r
+        VES{\r
+            one{"ভেনিজুৱেলান ব’লিভাৰ"}\r
+            other{"ভেনিজুৱেলান ব’লিভাৰছ্"}\r
         }\r
         VND{\r
             one{"ভিয়েটনামীজ ডং"}\r
@@ -1368,5 +1384,5 @@ as{
             other{"জাম্বিয়ান কোৱাচা"}\r
         }\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.94"}\r
 }\r
index f7c52420eb68e025465f6a4904a2c6275a4c883b..dce9e1d22ac58b4d546ce953518c2e717fc0034b 100644 (file)
@@ -1040,6 +1040,10 @@ ast{
         }\r
         VEF{\r
             "VEF",\r
+            "bolívar venezolanu (2008–2018)",\r
+        }\r
+        VES{\r
+            "VES",\r
             "bolívar venezolanu",\r
         }\r
         VND{\r
@@ -2344,6 +2348,10 @@ ast{
             other{"bolívares venezolanos (1871–2008)"}\r
         }\r
         VEF{\r
+            one{"bolívar venezolanu (2008–2018)"}\r
+            other{"bolívares venezolanos (2008–2018)"}\r
+        }\r
+        VES{\r
             one{"bolívar venezolanu"}\r
             other{"bolívares venezolanos"}\r
         }\r
@@ -2512,5 +2520,5 @@ ast{
         one{"{0} {1}"}\r
         other{"{0} {1}"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.91"}\r
 }\r
index 825858dc5ebd44d46fab67a07ce2ca45805182dd..a7cb6806b6841fdb6f2a7e8f2254db39547aa18a 100644 (file)
@@ -956,6 +956,10 @@ az{
         }\r
         VEF{\r
             "VEF",\r
+            "Venesuela Bolivarı (2008–2018)",\r
+        }\r
+        VES{\r
+            "VES",\r
             "Venesuela Bolivarı",\r
         }\r
         VND{\r
@@ -1015,7 +1019,7 @@ az{
             "Platinum",\r
         }\r
         XXX{\r
-            "XXX",\r
+            "¤",\r
             "Naməlum Valyuta",\r
         }\r
         YDD{\r
@@ -2129,6 +2133,10 @@ az{
             other{"Venesuela bolivarı (1871–2008)"}\r
         }\r
         VEF{\r
+            one{"Venesuela bolivarı (2008–2018)"}\r
+            other{"Venesuela bolivarı (2008–2018)"}\r
+        }\r
+        VES{\r
             one{"Venesuela bolivarı"}\r
             other{"Venesuela bolivarı"}\r
         }\r
@@ -2253,5 +2261,5 @@ az{
         one{"{0} {1}"}\r
         other{"{0} {1}"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.53"}\r
 }\r
index 29fda1747ed0103ce8b28c8619e459b8d5c3676b..9c5cd0a9481cb54c5ea2b7a8223fe55d25e7e459 100644 (file)
@@ -11,5 +11,5 @@ az_Cyrl{
     Currencies%variant{\r
         AZN{"ман."}\r
     }\r
-    Version{"2.1.38.69"}\r
+    Version{"2.1.44.53"}\r
 }\r
index ff63bd6172db8f6ff7d0e7130d7875e42b020695..617347f6a1e8760310d8ded8eb8053fa991f1467 100644 (file)
@@ -592,6 +592,10 @@ be{
         }\r
         VEF{\r
             "VEF",\r
+            "венесуальскі балівар (2008–2018)",\r
+        }\r
+        VES{\r
+            "VES",\r
             "венесуальскі балівар",\r
         }\r
         VND{\r
@@ -623,7 +627,7 @@ be{
             "французскі ціхаакіянскі франк",\r
         }\r
         XXX{\r
-            "XXX",\r
+            "¤",\r
             "невядомая валюта",\r
         }\r
         YER{\r
@@ -1623,6 +1627,12 @@ be{
             other{"узбекскага сума"}\r
         }\r
         VEF{\r
+            few{"венесуальскія балівары (2008–2018)"}\r
+            many{"венесуальскіх балівараў (2008–2018)"}\r
+            one{"венесуальскі балівар (2008–2018)"}\r
+            other{"венесуальскага балівара (2008–2018)"}\r
+        }\r
+        VES{\r
             few{"венесуальскія балівары"}\r
             many{"венесуальскіх балівараў"}\r
             one{"венесуальскі балівар"}\r
@@ -1701,5 +1711,5 @@ be{
         one{"{0} {1}"}\r
         other{"{0} {1}"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.65"}\r
 }\r
index 616a37a8b4730b11b07a92883359f9e048b2a90a..a3f47467c676073eb8c505dc4abd9583c26fc698 100644 (file)
@@ -950,6 +950,10 @@ bg{
             "VEF",\r
             "Венецуелски боливар",\r
         }\r
+        VES{\r
+            "VES",\r
+            "Венецуелски боливар (VES)",\r
+        }\r
         VND{\r
             "VND",\r
             "Виетнамски донг",\r
@@ -1027,7 +1031,7 @@ bg{
             "Код резервиран за целите на тестване",\r
         }\r
         XXX{\r
-            "XXX",\r
+            "¤",\r
             "Непозната валута",\r
         }\r
         YDD{\r
@@ -2031,6 +2035,10 @@ bg{
             one{"венецуелски боливар"}\r
             other{"венецуелски боливара"}\r
         }\r
+        VES{\r
+            one{"венецуелски боливар (VES)"}\r
+            other{"венецуелски боливара (VES)"}\r
+        }\r
         VND{\r
             one{"виетнамски донг"}\r
             other{"виетнамски донга"}\r
@@ -2120,5 +2128,5 @@ bg{
         one{"{0} {1}"}\r
         other{"{0} {1}"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.94"}\r
 }\r
index ef3099c8bce3ab583dd6146c226015831bf74c70..45d5a4e1cb160b8c9e297b7f8fc415c6d29a9fb1 100644 (file)
@@ -972,6 +972,10 @@ bn{
         }\r
         VEF{\r
             "VEF",\r
+            "ভেনিজুয়েলীয় বলিভার (২০০৮–২০১৮)",\r
+        }\r
+        VES{\r
+            "VES",\r
             "ভেনিজুয়েলীয় বলিভার",\r
         }\r
         VND{\r
@@ -1035,7 +1039,7 @@ bn{
             "প্লাটিনাম",\r
         }\r
         XXX{\r
-            "XXX",\r
+            "¤",\r
             "অজানা মুদ্রা",\r
         }\r
         YDD{\r
@@ -1797,6 +1801,10 @@ bn{
             other{"উজবেকিস্তানি সোম"}\r
         }\r
         VEF{\r
+            one{"ভেনিজুয়েলীয় বলিভার (২০০৮–২০১৮)"}\r
+            other{"ভেনিজুয়েলীয় বলিভার (২০০৮–২০১৮)"}\r
+        }\r
+        VES{\r
             one{"ভেনিজুয়েলীয় বলিভার"}\r
             other{"ভেনিজুয়েলীয় বলিভার"}\r
         }\r
@@ -1845,5 +1853,5 @@ bn{
             other{"জাম্বিয়ান কওয়াচা"}\r
         }\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.91"}\r
 }\r
index 199b64f726338a0a6003b45ea4e94885065a4933..e4cf5076b5b10e536ac207b328518d1ca69989a5 100644 (file)
@@ -15,7 +15,7 @@ bo{
             "ཨ་རིའི་སྒོར་",\r
         }\r
         XXX{\r
-            "XXX",\r
+            "¤",\r
             "མ་རྟོགས་པའི་ནུས་མེད་དངུལ་ལོར",\r
         }\r
     }\r
index 208ccefbfe23f8a71e9432da988dc2b14fbff9f8..39d94a3aa7685caf23198e9a3cb060e47459dfac 100644 (file)
@@ -1040,6 +1040,10 @@ br{
         }\r
         VEF{\r
             "VEF",\r
+            "bolivar Venezuela (2008–2018)",\r
+        }\r
+        VES{\r
+            "VES",\r
             "bolivar Venezuela",\r
         }\r
         VND{\r
@@ -2910,6 +2914,13 @@ br{
             two{"volivar Venezuela (1871–2008)"}\r
         }\r
         VEF{\r
+            few{"bolivar Venezuela (2008–2018)"}\r
+            many{"a volivaroù Venezuela (2008–2018)"}\r
+            one{"bolivar Venezuela (2008–2018)"}\r
+            other{"bolivar Venezuela (2008–2018)"}\r
+            two{"volivar Venezuela (2008–2018)"}\r
+        }\r
+        VES{\r
             few{"bolivar Venezuela"}\r
             many{"a volivaroù Venezuela"}\r
             one{"bolivar Venezuela"}\r
@@ -3127,5 +3138,5 @@ br{
         other{"{0} {1}"}\r
         two{"{0} {1}"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.91"}\r
 }\r
index 9f3958100bedbc4d695b883db2d3091713758a8f..b77c9040df9c5e348b7261d45e5e58a7788952e0 100644 (file)
@@ -948,6 +948,10 @@ brx{
         }\r
         VEF{\r
             "VEF",\r
+            "वेनेज़ुएलाई बोलिवार (2008–2018)",\r
+        }\r
+        VES{\r
+            "VES",\r
             "वेनेज़ुएलाई बोलिवार",\r
         }\r
         VND{\r
@@ -1035,7 +1039,7 @@ brx{
             "टेस्टींग करनसी कोड",\r
         }\r
         XXX{\r
-            "XXX",\r
+            "¤",\r
             "अज्ञात या अवैध मुद्रा",\r
         }\r
         YDD{\r
@@ -1083,5 +1087,5 @@ brx{
             "ज़ीम्बाबवेई डॉलर",\r
         }\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.41.34"}\r
 }\r
index 024c9b54f89a512fbfa96dff7585989550b06f49..11ae47bfc8ac336948e125d575a3d8989bd6f803 100644 (file)
@@ -1004,7 +1004,11 @@ bs{
         }\r
         VEF{\r
             "VEF",\r
-            "Venecuelanski bolivar",\r
+            "venecuelanski bolivar (2008–2018)",\r
+        }\r
+        VES{\r
+            "VES",\r
+            "venecuelanski bolivar",\r
         }\r
         VND{\r
             "₫",\r
@@ -1095,7 +1099,7 @@ bs{
             "Kod testirane valute",\r
         }\r
         XXX{\r
-            "XXX",\r
+            "¤",\r
             "Nepoznata valuta",\r
         }\r
         YDD{\r
@@ -2506,8 +2510,13 @@ bs{
             other{"venecuelskih bolivara (1871–2008)"}\r
         }\r
         VEF{\r
+            few{"venecuelanska bolivara (2008–2018)"}\r
+            one{"venecuelanski bolivar (2008–2018)"}\r
+            other{"venecuelanskih bolivara (2008–2018)"}\r
+        }\r
+        VES{\r
             few{"venecuelanska bolivara"}\r
-            one{"venecuelanski bolivar"}\r
+            one{"venecuelanskih bolivara"}\r
             other{"venecuelanskih bolivara"}\r
         }\r
         VND{\r
@@ -2701,5 +2710,5 @@ bs{
         one{"{0} {1}"}\r
         other{"{0} {1}"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.88"}\r
 }\r
index da0d1ca57a2983804d6e4dbe1a861dc29f5294f9..414ca4cf56caeee11ea31e8111a2aa91977f487d 100644 (file)
@@ -973,6 +973,10 @@ bs_Cyrl{
         }\r
         VEF{\r
             "VEF",\r
+            "Венецуелански боливар (2008–2018)",\r
+        }\r
+        VES{\r
+            "VES",\r
             "Венецуелански боливар",\r
         }\r
         VND{\r
@@ -1060,7 +1064,7 @@ bs_Cyrl{
             "Код тестиране валуте",\r
         }\r
         XXX{\r
-            "XXX",\r
+            "¤",\r
             "Непозната или неважећа валута",\r
         }\r
         YDD{\r
@@ -2332,6 +2336,11 @@ bs_Cyrl{
             other{"венецуеланских боливара (1871–2008)"}\r
         }\r
         VEF{\r
+            few{"венецуеланска боливара (2008–2018)"}\r
+            one{"венецуелански боливар (2008–2018)"}\r
+            other{"венецуеланских боливара (2008–2018)"}\r
+        }\r
+        VES{\r
             few{"венецуеланска боливара"}\r
             one{"венецуелански боливар"}\r
             other{"венецуеланских боливара"}\r
@@ -2512,5 +2521,5 @@ bs_Cyrl{
         one{"{0} {1}"}\r
         other{"{0} {1}"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.41.34"}\r
 }\r
index 8fbe46a4eb83e4b2486899dc55c7187dad08f370..55c7cd604600c0c7bda4f3f35a3a58056b028b32 100644 (file)
@@ -267,7 +267,7 @@ ca{
             "iuan xinès extracontinental",\r
         }\r
         CNY{\r
-            "¥",\r
+            "CNY",\r
             "iuan xinès",\r
         }\r
         COP{\r
@@ -280,7 +280,7 @@ ca{
         }\r
         CRC{\r
             "CRC",\r
-            "colón costa-riqueny",\r
+            "colon costa-riqueny",\r
         }\r
         CSD{\r
             "CSD",\r
@@ -753,7 +753,7 @@ ca{
         }\r
         NIO{\r
             "NIO",\r
-            "córdoba oro nicaragüenca",\r
+            "córdoba nicaragüenc",\r
         }\r
         NLG{\r
             "NLG",\r
@@ -929,7 +929,7 @@ ca{
         }\r
         SVC{\r
             "SVC",\r
-            "colón salvadorenc",\r
+            "colon salvadorenc",\r
         }\r
         SYP{\r
             "SYP",\r
@@ -1041,6 +1041,10 @@ ca{
         }\r
         VEF{\r
             "VEF",\r
+            "bolívar veneçolà (2008–2018)",\r
+        }\r
+        VES{\r
+            "VES",\r
             "bolívar veneçolà",\r
         }\r
         VND{\r
@@ -1286,7 +1290,7 @@ ca{
         UAH{"₴"}\r
         USD{"$"}\r
         UYU{"$"}\r
-        VEF{"VEF"}\r
+        VEF{"Bs F"}\r
         VND{"₫"}\r
         XCD{"$"}\r
         ZAR{"R"}\r
@@ -1559,7 +1563,7 @@ ca{
         }\r
         CNH{\r
             one{"iuan xinès extracontinental"}\r
-            other{"iuan xinès extracontinental"}\r
+            other{"iuans xinesos extracontinentals"}\r
         }\r
         CNX{\r
             one{"dòlar del Banc Popular Xinès"}\r
@@ -1567,7 +1571,7 @@ ca{
         }\r
         CNY{\r
             one{"iuan xinès"}\r
-            other{"iuan xinesos"}\r
+            other{"iuans xinesos"}\r
         }\r
         COP{\r
             one{"peso colombià"}\r
@@ -1578,8 +1582,8 @@ ca{
             other{"unidades de valor real colombianes"}\r
         }\r
         CRC{\r
-            one{"colón costa-riqueny"}\r
-            other{"colones costa-riquenys"}\r
+            one{"colon costa-riqueny"}\r
+            other{"colons costa-riquenys"}\r
         }\r
         CSD{\r
             one{"dinar serbi antic"}\r
@@ -2003,7 +2007,7 @@ ca{
         }\r
         MWK{\r
             one{"kwacha malawià"}\r
-            other{"kwachas malawians"}\r
+            other{"kwacha malawians"}\r
         }\r
         MXN{\r
             one{"peso mexicà"}\r
@@ -2046,8 +2050,8 @@ ca{
             other{"córdobas nicaragüenques"}\r
         }\r
         NIO{\r
-            one{"córdoba oro nicaragüenca"}\r
-            other{"córdobas oro nicaragüenques"}\r
+            one{"córdoba nicaragüenc"}\r
+            other{"córdobas nicaragüencs"}\r
         }\r
         NLG{\r
             one{"florí neerlandès"}\r
@@ -2115,7 +2119,7 @@ ca{
         }\r
         QAR{\r
             one{"rial de Qatar"}\r
-            other{"rials qatarians"}\r
+            other{"rials de Qatar"}\r
         }\r
         RHD{\r
             one{"dòlar rhodesià"}\r
@@ -2334,6 +2338,10 @@ ca{
             other{"bolívars veneçolans (1871–2008)"}\r
         }\r
         VEF{\r
+            one{"bolívar veneçolà (2008–2018)"}\r
+            other{"bolívars veneçolans (2008–2018)"}\r
+        }\r
+        VES{\r
             one{"bolívar veneçolà"}\r
             other{"bolívars veneçolans"}\r
         }\r
@@ -2494,5 +2502,5 @@ ca{
         one{"{0} {1}"}\r
         other{"{0} {1}"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.65"}\r
 }\r
index 3de837036665c6c5f3a33b0a5ba03b4361385a67..e3081472d66b8fcc4827474cfbf2e70ca44fc2c1 100644 (file)
@@ -960,6 +960,10 @@ ccp{
         }\r
         VEF{\r
             "VEF",\r
+            "𑄞𑄬𑄚𑄨𑄎𑄪𑄔𑄮𑄣𑄚𑄴 𑄝𑄧𑄣𑄨𑄞𑄢𑄴 (2008–2018)",\r
+        }\r
+        VES{\r
+            "VES",\r
             "𑄞𑄬𑄚𑄨𑄎𑄪𑄔𑄮𑄣𑄚𑄴 𑄝𑄧𑄣𑄨𑄞𑄢𑄴",\r
         }\r
         VND{\r
@@ -1019,7 +1023,7 @@ ccp{
             "𑄛𑄳𑄣𑄑𑄨𑄚𑄟𑄴",\r
         }\r
         XXX{\r
-            "XXX",\r
+            "¤",\r
             "𑄦𑄧𑄝𑄢𑄴 𑄚𑄧𑄛𑄬𑄠𑄬 𑄑𑄬𑄋",\r
         }\r
         YDD{\r
@@ -1776,6 +1780,10 @@ ccp{
             other{"𑄃𑄪𑄌𑄴𑄝𑄬𑄇𑄨𑄌𑄴𑄖𑄚𑄨 𑄥𑄮𑄟𑄴"}\r
         }\r
         VEF{\r
+            one{"𑄞𑄬𑄚𑄨𑄎𑄪𑄔𑄮𑄣𑄚𑄴 𑄝𑄧𑄣𑄨𑄞𑄢𑄴 (2008–2018)"}\r
+            other{"𑄞𑄬𑄚𑄨𑄎𑄪𑄔𑄮𑄣𑄚𑄴 𑄝𑄧𑄣𑄨𑄞𑄢𑄴 (2008–2018)"}\r
+        }\r
+        VES{\r
             one{"𑄞𑄬𑄚𑄨𑄎𑄪𑄔𑄮𑄣𑄚𑄴 𑄝𑄧𑄣𑄨𑄞𑄢𑄴"}\r
             other{"𑄞𑄬𑄚𑄨𑄎𑄪𑄔𑄮𑄣𑄚𑄴 𑄝𑄧𑄣𑄨𑄞𑄢𑄴"}\r
         }\r
@@ -1824,5 +1832,5 @@ ccp{
             other{"𑄎𑄟𑄴𑄝𑄨𑄠𑄚𑄴 𑄇𑄧𑄤𑄌"}\r
         }\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.50"}\r
 }\r
index 6be8f606a501148d2111f0a3b3fe4585420aa5f6..3620c873a5043ef7dd728e92da98cb8f854e195a 100644 (file)
@@ -588,6 +588,10 @@ ce{
         }\r
         VEF{\r
             "VEF",\r
+            "Венесуэлан боливар (2008–2018)",\r
+        }\r
+        VES{\r
+            "VES",\r
             "Венесуэлан боливар",\r
         }\r
         VND{\r
@@ -619,7 +623,7 @@ ce{
             "Французийн Тийна океанан франк",\r
         }\r
         XXX{\r
-            "XXX",\r
+            "¤",\r
             "девзаш доцу я лелаш доцу ахча",\r
         }\r
         YER{\r
@@ -1319,6 +1323,10 @@ ce{
             other{"Узбекистанан сомаш"}\r
         }\r
         VEF{\r
+            one{"Венесуэлан боливар (2008–2018)"}\r
+            other{"Венесуэлан боливарш (2008–2018)"}\r
+        }\r
+        VES{\r
             one{"Венесуэлан боливар"}\r
             other{"Венесуэлан боливарш"}\r
         }\r
@@ -1371,5 +1379,5 @@ ce{
         one{"{0} {1}"}\r
         other{"{0} {1}"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.41.34"}\r
 }\r
index 6cce482591713ab3d00c0a973c9e8f561ad56a9f..66f3512cd32790ecfd09a74184a6ce4c72a2666c 100644 (file)
@@ -44,7 +44,7 @@ chr{
         }\r
         BAM{\r
             "BAM",\r
-            "ᏉᏏᏂᎠ ᎠᎴ ᎲᏤᎪᏫ ᎦᏁᏟᏴᏍᏔᏅ ᎠᏕᎳ",\r
+            "ᏉᏏᏂᎠ-ᎲᏤᎪᏫ ᎦᏁᏟᏴᏍᏔᏅ ᎠᏕᎳ",\r
         }\r
         BBD{\r
             "BBD",\r
@@ -328,7 +328,7 @@ chr{
         }\r
         LKR{\r
             "LKR",\r
-            "ᏍᎵᎳᏂᎧ ᎠᏕᎳ",\r
+            "ᏍᎵ ᎳᏂᎧ ᎠᏕᎳ",\r
         }\r
         LRD{\r
             "LRD",\r
@@ -368,11 +368,11 @@ chr{
         }\r
         MRO{\r
             "MRO",\r
-            "á\8e¼á\8eµá\8f\8fá\8e¥á\8f\8d ᎠᏕᎳ (1973–2017)",\r
+            "á\8e¹á\8f\88á\8f\94á\8f\82á\8e  ᎠᏕᎳ (1973–2017)",\r
         }\r
         MRU{\r
             "MRU",\r
-            "á\8e¼á\8eµá\8f\8fá\8e¥á\8f\8d ᎠᏕᎳ",\r
+            "á\8e¹á\8f\88á\8f\94á\8f\82á\8e  ᎠᏕᎳ",\r
         }\r
         MUR{\r
             "MUR",\r
@@ -524,7 +524,7 @@ chr{
         }\r
         STN{\r
             "STN",\r
-            "ᏌᎣᏙᎺ ᎠᎴ ᏈᏂᏏᏇ ᎠᏕᎳ",\r
+            "ᏌᎣᏙᎺ & ᏈᏂᏏᏇ ᎠᏕᎳ",\r
         }\r
         SYP{\r
             "SYP",\r
@@ -560,7 +560,7 @@ chr{
         }\r
         TTD{\r
             "TTD",\r
-            "ᏟᏂᏕᏗ ᎠᎴ ᏙᏆᎪ ᎠᏕᎳ",\r
+            "ᏟᏂᏕᏗ & ᏙᏆᎪ ᎠᏕᎳ",\r
         }\r
         TWD{\r
             "NT$",\r
@@ -592,7 +592,11 @@ chr{
         }\r
         VEF{\r
             "VEF",\r
-            "ᏪᏁᏑᏪᎳ ᎠᏕᎳ",\r
+            "ᏪᏁᏑᏪ ᎠᏕᎳ (2008–2018)",\r
+        }\r
+        VES{\r
+            "VES",\r
+            "ᏪᏁᏑᏪ ᎠᏕᎳ",\r
         }\r
         VND{\r
             "₫",\r
@@ -623,7 +627,7 @@ chr{
             "CFP ᎠᏕᎳ",\r
         }\r
         XXX{\r
-            "XXX",\r
+            "¤",\r
             "ᏄᏬᎵᏍᏛᎾ ᎠᏕᎳ",\r
         }\r
         YER{\r
@@ -740,8 +744,8 @@ chr{
     }\r
     CurrencyPlurals{\r
         AED{\r
-            one{"ᏌᏊ ᎢᏳᎾᎵᏍᏔᏅ ᎡᎳᏈ ᎢᎹᎵᏘᏏ ᎠᏕᎳ"}\r
-            other{"ᏌᏊ ᎢᏳᎾᎵᏍᏔᏅ ᎡᎳᏈ ᎢᎹᎵᏘᏏ ᎠᏕᎳ"}\r
+            one{"UAE ᎠᏕᎳ"}\r
+            other{"UAE ᎠᏕᎳ"}\r
         }\r
         AFN{\r
             one{"ᎠᏫᎨᏂᏍᏖᏂ ᎠᏕᎳ"}\r
@@ -780,8 +784,8 @@ chr{
             other{"ᎠᏏᎵᏆᏌᏂ ᎠᏕᎳ"}\r
         }\r
         BAM{\r
-            one{"ᏉᏏᏂᎠ ᎠᎴ ᎲᏤᎪᏫ ᎦᏁᏟᏴᏍᏔᏅ ᎠᏕᎳ"}\r
-            other{"ᏉᏏᏂᎠ ᎠᎴ ᎲᏤᎪᏫ ᎦᏁᏟᏴᏍᏔᏅ ᎠᏕᎳ"}\r
+            one{"ᏉᏏᏂᎠ-ᎲᏤᎪᏫ ᎦᏁᏟᏴᏍᏔᏅ ᎠᏕᎳ"}\r
+            other{"ᏉᏏᏂᎠ-ᎲᏤᎪᏫ ᎦᏁᏟᏴᏍᏔᏅ ᎠᏕᎳ"}\r
         }\r
         BBD{\r
             one{"ᏆᏇᏙᏍ ᎠᏕᎳ"}\r
@@ -1064,8 +1068,8 @@ chr{
             other{"ᎴᏆᎾᏂ ᎠᏕᎳ"}\r
         }\r
         LKR{\r
-            one{"ᏍᎵᎳᏂᎧ ᎠᏕᎳ"}\r
-            other{"ᏍᎵᎳᏂᎧ ᎠᏕᎳ"}\r
+            one{"ᏍᎵ ᎳᏂᎧ ᎠᏕᎳ"}\r
+            other{"ᏍᎵ ᎳᏂᎧ ᎠᏕᎳ"}\r
         }\r
         LRD{\r
             one{"ᎳᏈᎵᏯ ᎠᏕᎳ"}\r
@@ -1104,12 +1108,12 @@ chr{
             other{"ᎹᎧᎣ ᎠᏕᎳ"}\r
         }\r
         MRO{\r
-            one{"á\8e¼á\8eµá\8f\8fá\8e¥á\8f\8d ᎠᏕᎳ (1973–2017)"}\r
-            other{"á\8e¼á\8eµá\8f\8fá\8e¥á\8f\8d ᎠᏕᎳ (1973–2017)"}\r
+            one{"á\8e¹á\8f\88á\8f\94á\8f\82á\8e  ᎠᏕᎳ (1973–2017)"}\r
+            other{"á\8e¹á\8f\88á\8f\94á\8f\82á\8e  ᎠᏕᎳ (1973–2017)"}\r
         }\r
         MRU{\r
-            one{"á\8e¼á\8eµá\8f\8fá\8e¥á\8f\8d ᎠᏕᎳ"}\r
-            other{"á\8e¼á\8eµá\8f\8fá\8e¥á\8f\8d ᎠᏕᎳ"}\r
+            one{"á\8e¹á\8f\88á\8f\94á\8f\82á\8e  ᎠᏕᎳ"}\r
+            other{"á\8e¹á\8f\88á\8f\94á\8f\82á\8e  ᎠᏕᎳ"}\r
         }\r
         MUR{\r
             one{"ᎹᏘᎢᏯ ᎠᏕᎳ"}\r
@@ -1260,8 +1264,8 @@ chr{
             other{"ᏌᎣᏙᎺ ᎠᎴ ᏈᏂᏏᏇ ᎠᏕᎳ (1977–2017)"}\r
         }\r
         STN{\r
-            one{"ᏌᎣᏙᎺ ᎠᎴ ᏈᏂᏏᏇ ᎠᏕᎳ"}\r
-            other{"ᏌᎣᏙᎺ ᎠᎴ ᏈᏂᏏᏇ ᎠᏕᎳ"}\r
+            one{"ᏌᎣᏙᎺ & ᏈᏂᏏᏇ ᎠᏕᎳ"}\r
+            other{"ᏌᎣᏙᎺ & ᏈᏂᏏᏇ ᎠᏕᎳ"}\r
         }\r
         SYP{\r
             one{"ᏏᎵᎠ ᎠᏕᎳ"}\r
@@ -1296,8 +1300,8 @@ chr{
             other{"ᎬᏃ ᎠᏕᎳ"}\r
         }\r
         TTD{\r
-            one{"ᏟᏂᏕᏗ ᎠᎴ ᏙᏆᎪ ᎠᏕᎳ"}\r
-            other{"ᏟᏂᏕᏗ ᎠᎴ ᏙᏆᎪ ᎠᏕᎳ"}\r
+            one{"ᏟᏂᏕᏗ & ᏙᏆᎪ ᎠᏕᎳ"}\r
+            other{"ᏟᏂᏕᏗ & ᏙᏆᎪ ᎠᏕᎳ"}\r
         }\r
         TWD{\r
             one{"ᎢᏤ ᏔᎢᏩᏂ ᎠᏕᎳ"}\r
@@ -1331,6 +1335,10 @@ chr{
             one{"ᏪᏁᏑᏪᎳ ᎠᏕᎳ"}\r
             other{"ᏪᏁᏑᏪᎳ ᎠᏕᎳ"}\r
         }\r
+        VES{\r
+            one{"ᏪᏁᏑᏪ ᎠᏕᎳ"}\r
+            other{"ᏪᏁᏑᏪ ᎠᏕᎳ"}\r
+        }\r
         VND{\r
             one{"ᏫᎡᏘᎾᎻᏍ ᎠᏕᎳ"}\r
             other{"ᏫᎡᏘᎾᎻᏍ ᎠᏕᎳ"}\r
@@ -1380,5 +1388,5 @@ chr{
         one{"{0} {1}"}\r
         other{"{0} {1}"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.2"}\r
 }\r
index 2cc91530b06c6488027b59294394f736ea72fbda..226447c65b770b93dad4babc29a4f1fe8cdd2641 100644 (file)
@@ -7,5 +7,5 @@ ckb{
             "IQD",\r
         }\r
     }\r
-    Version{"2.1.38.71"}\r
+    Version{"2.1.44.88"}\r
 }\r
index 443f4ee3a8cc7fd204b9d057f6c704769bcb4c6c..87216cd3b5dfcc97042bdc723eacc2ffcf6bb935 100644 (file)
@@ -1044,6 +1044,10 @@ cs{
         }\r
         VEF{\r
             "VEF",\r
+            "venezuelský bolívar (2008–2018)",\r
+        }\r
+        VES{\r
+            "VES",\r
             "venezuelský bolívar",\r
         }\r
         VND{\r
@@ -2873,6 +2877,12 @@ cs{
             other{"venezuelských bolívarů (1871–2008)"}\r
         }\r
         VEF{\r
+            few{"venezuelské bolívary (2008–2018)"}\r
+            many{"venezuelského bolívaru (2008–2018)"}\r
+            one{"venezuelský bolívar (2008–2018)"}\r
+            other{"venezuelských bolívarů (2008–2018)"}\r
+        }\r
+        VES{\r
             few{"venezuelské bolívary"}\r
             many{"venezuelského bolívaru"}\r
             one{"venezuelský bolívar"}\r
@@ -3113,5 +3123,5 @@ cs{
         one{"{0} {1}"}\r
         other{"{0} {1}"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.91"}\r
 }\r
index abcfbcb3ccb9b3a9c7e7cb66a788dbecb2dd5418..36cd3fb32d8ed3de07a4df2a496ea124ac9f5944 100644 (file)
@@ -980,6 +980,10 @@ cy{
         }\r
         VEF{\r
             "VEF",\r
+            "Bolívar Venezuela (2008–2018)",\r
+        }\r
+        VES{\r
+            "VES",\r
             "Bolívar Venezuela",\r
         }\r
         VND{\r
@@ -3053,6 +3057,14 @@ cy{
             zero{"bolívar Venezuela (1871–2008)"}\r
         }\r
         VEF{\r
+            few{"bolívar Venezuela (2008–2018)"}\r
+            many{"bolívar Venezuela (2008–2018)"}\r
+            one{"bolívar Venezuela (2008–2018)"}\r
+            other{"bolívar Venezuela (2008–2018)"}\r
+            two{"bolívar Venezuela (2008–2018)"}\r
+            zero{"bolívar Venezuela (2008–2018)"}\r
+        }\r
+        VES{\r
             few{"bolívar Venezuela"}\r
             many{"bolívar Venezuela"}\r
             one{"bolívar Venezuela"}\r
@@ -3261,5 +3273,5 @@ cy{
         two{"{0} {1}"}\r
         zero{"{0} {1}"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.91"}\r
 }\r
index 6549a82076dfefcfed5c94e277d88d965022eada..c7e249c6ba999147ffc1921b117f641802506741 100644 (file)
@@ -700,7 +700,7 @@ da{
         }\r
         PEN{\r
             "PEN",\r
-            "peruviansk sol",\r
+            "peruansk sol",\r
         }\r
         PES{\r
             "PES",\r
@@ -948,6 +948,10 @@ da{
         }\r
         VEF{\r
             "VEF",\r
+            "venezuelansk bolivar (2008–2018)",\r
+        }\r
+        VES{\r
+            "VES",\r
             "venezuelansk bolivar",\r
         }\r
         VND{\r
@@ -1027,7 +1031,7 @@ da{
             "testvalutakode",\r
         }\r
         XXX{\r
-            "XXX",\r
+            "¤",\r
             "ukendt valuta",\r
         }\r
         YDD{\r
@@ -1885,8 +1889,8 @@ da{
             other{"peruvianske inti"}\r
         }\r
         PEN{\r
-            one{"peruviansk sol"}\r
-            other{"peruvianske soles"}\r
+            one{"peruansk sol"}\r
+            other{"peruanske soles"}\r
         }\r
         PES{\r
             one{"peruviansk sol (1863–1965)"}\r
@@ -2133,8 +2137,12 @@ da{
             other{"Venezuelanske bolivar (1871–2008)"}\r
         }\r
         VEF{\r
+            one{"venezuelansk bolivar (2008–2018)"}\r
+            other{"venezuelanske bolivarer (2008–2018)"}\r
+        }\r
+        VES{\r
             one{"venezuelansk bolivar"}\r
-            other{"venezuelanske bolivar"}\r
+            other{"venezuelanske bolivarer"}\r
         }\r
         VND{\r
             one{"vietnamesisk dong"}\r
@@ -2241,5 +2249,5 @@ da{
         one{"{0} {1}"}\r
         other{"{0} {1}"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.65"}\r
 }\r
index a7d1018b36cf7641ae47c4fa100541f97ed8fe6d..4c00a1dea91734226f8f8ad97fed63baf531ef6c 100644 (file)
@@ -1044,6 +1044,10 @@ de{
         }\r
         VEF{\r
             "VEF",\r
+            "Venezolanischer Bolívar (2008–2018)",\r
+        }\r
+        VES{\r
+            "VES",\r
             "Venezolanischer Bolívar",\r
         }\r
         VND{\r
@@ -2232,7 +2236,7 @@ de{
         }\r
         STN{\r
             one{"São-toméischer Dobra"}\r
-            other{"São-toméische Dobra"}\r
+            other{"São-toméische Dobras"}\r
         }\r
         SUR{\r
             one{"Sowjetische Rubel"}\r
@@ -2351,6 +2355,10 @@ de{
             other{"Venezolanische Bolívares (1871–2008)"}\r
         }\r
         VEF{\r
+            one{"Venezolanischer Bolívar (2008–2018)"}\r
+            other{"Venezolanische Bolívares (2008–2018)"}\r
+        }\r
+        VES{\r
             one{"Venezolanischer Bolívar"}\r
             other{"Venezolanische Bolívares"}\r
         }\r
@@ -2519,5 +2527,5 @@ de{
         one{"{0} {1}"}\r
         other{"{0} {1}"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.91"}\r
 }\r
index 7497234c18508daeec1798bfba159e871fc07c23..d262b5cb6e6825fa0b4a1f771a209c27ef2393c5 100644 (file)
@@ -14,14 +14,18 @@ de_CH{
             "EUR",\r
             "Euro",\r
         }\r
-        PEN{\r
-            "PEN",\r
-            "Peruanischer Neuer Sol",\r
-        }\r
         STN{\r
             "STN",\r
             "São-toméischer Dobra (2018)",\r
         }\r
+        VEF{\r
+            "VEF",\r
+            "Venezolanischer Bolívar",\r
+        }\r
+        VES{\r
+            "VES",\r
+            "VES",\r
+        }\r
     }\r
     Currencies%narrow{\r
         EUR{"EUR"}\r
@@ -35,13 +39,18 @@ de_CH{
             one{"Weissrussischer Rubel (2000–2016)"}\r
             other{"Weissrussische Rubel (2000–2016)"}\r
         }\r
-        PEN{\r
-            one{"Peruanischer Neuer Sol"}\r
-        }\r
         STN{\r
             one{"São-toméischer Dobra (2018)"}\r
             other{"São-toméischer Dobra (2018)"}\r
         }\r
+        VEF{\r
+            one{"Venezolanischer Bolívar"}\r
+            other{"Venezolanische Bolívares"}\r
+        }\r
+        VES{\r
+            one{"VES"}\r
+            other{"VES"}\r
+        }\r
     }\r
-    Version{"2.1.39.37"}\r
+    Version{"2.1.44.50"}\r
 }\r
index 993d8a056aaca45249fb590ae74809581134e5b2..d5aa5e89b8634f72f775961139a9aff1aa2d505f 100644 (file)
@@ -700,6 +700,10 @@ dsb{
         }\r
         VEF{\r
             "VEF",\r
+            "venezuelski bolívar (2008–2018)",\r
+        }\r
+        VES{\r
+            "VES",\r
             "venezuelski bolívar",\r
         }\r
         VND{\r
@@ -731,7 +735,7 @@ dsb{
             "CFP-frank",\r
         }\r
         XXX{\r
-            "XXX",\r
+            "¤",\r
             "njeznate pjenjeze",\r
         }\r
         YER{\r
@@ -1796,6 +1800,12 @@ dsb{
             two{"usbekiskej suma"}\r
         }\r
         VEF{\r
+            few{"venezuelske bolívary (2008–2018)"}\r
+            one{"venezuelski bolívar (2008–2018)"}\r
+            other{"venezuelskich bolívarow (2008–2018)"}\r
+            two{"venezuelskej bolívara (2008–2018)"}\r
+        }\r
+        VES{\r
             few{"venezuelske bolívary"}\r
             one{"venezuelski bolívar"}\r
             other{"venezuelskich bolívarow"}\r
@@ -1874,5 +1884,5 @@ dsb{
         other{"{0} {1}"}\r
         two{"{0} {1}"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.41.34"}\r
 }\r
index 3597fdb90edd616c587d6ed7397cd7e97072517a..b204812b97738905fbc5cf5cde1efe918345d3c5 100644 (file)
@@ -284,6 +284,10 @@ dz{
         }\r
         VEF{\r
             "VEF",\r
+            "བེ་ནི་ཛུ་ཝེ་ལ་གི་དངུལ་ བོ་ལི་བར (2008–2018)",\r
+        }\r
+        VES{\r
+            "VES",\r
             "བེ་ནི་ཛུ་ཝེ་ལ་གི་དངུལ་ བོ་ལི་བར",\r
         }\r
         VND{\r
@@ -295,7 +299,7 @@ dz{
             "XAF",\r
         }\r
         XXX{\r
-            "XXX",\r
+            "¤",\r
             "མ་ཤེས་པའི་དངུལ",\r
         }\r
         ZAR{\r
@@ -303,5 +307,5 @@ dz{
             "སཱའུཐ་ ཨཕ་རི་ཀ་གི་དངུལ་ རཱནད",\r
         }\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.41.34"}\r
 }\r
index ada515333e8fcb27c2d8f5a2bb96d9314a121a94..ddae4f76337f11dc8d3d2d0d6b09c4e452a16400 100644 (file)
@@ -1004,6 +1004,10 @@ ee{
         }\r
         VEF{\r
             "VEF",\r
+            "venezuelaga bolívar (2008–2018)",\r
+        }\r
+        VES{\r
+            "VES",\r
             "venezuelaga bolívar",\r
         }\r
         VND{\r
@@ -1095,7 +1099,7 @@ ee{
             "gaɖuɖu dodokpɔ dzesi xts",\r
         }\r
         XXX{\r
-            "XXX",\r
+            "¤",\r
             "gaɖuɖu manya",\r
         }\r
         YDD{\r
@@ -2222,6 +2226,10 @@ ee{
             other{"venezuelaga bolívar (1871–2008)"}\r
         }\r
         VEF{\r
+            one{"venezuelaga bolívar (2008–2018)"}\r
+            other{"venezuelaga bolívar (2008–2018)"}\r
+        }\r
+        VES{\r
             one{"venezuelaga bolívar"}\r
             other{"venezuelaga bolívar"}\r
         }\r
@@ -2382,5 +2390,5 @@ ee{
         one{"{1} {0}"}\r
         other{"{1} {0}"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.88"}\r
 }\r
index 77382244652b1b5fe4b0145f92f789774ed36033..7edab2f22f2420caee6201ce497c57bd63f55dc6 100644 (file)
@@ -965,6 +965,10 @@ el{
         }\r
         VEF{\r
             "VEF",\r
+            "Μπολιβάρ Βενεζουέλας (2008–2018)",\r
+        }\r
+        VES{\r
+            "VES",\r
             "Μπολιβάρ Βενεζουέλας",\r
         }\r
         VND{\r
@@ -1028,7 +1032,7 @@ el{
             "Φράγκο CFP",\r
         }\r
         XXX{\r
-            "XXX",\r
+            "¤",\r
             "Άγνωστο νόμισμα",\r
         }\r
         YDD{\r
@@ -1199,7 +1203,7 @@ el{
         }\r
         AFN{\r
             one{"αφγάνι Αφγανιστάν"}\r
-            other{"αφγάνι Αφγανιστάν"}\r
+            other{"αφγάνια Αφγανιστάν"}\r
         }\r
         ALL{\r
             one{"λεκ Αλβανίας"}\r
@@ -1215,7 +1219,7 @@ el{
         }\r
         AOA{\r
             one{"κουάνζα Ανγκόλας"}\r
-            other{"κοÏ\85άνζεÏ\82 Ανγκόλας"}\r
+            other{"κοÏ\85άνζα Ανγκόλας"}\r
         }\r
         AOK{\r
             one{"κουάνζα Ανγκόλας (AOK)"}\r
@@ -1807,7 +1811,7 @@ el{
         }\r
         MVR{\r
             one{"ρουφίγια Μαλδίβων"}\r
-            other{"Ï\81οÏ\85Ï\86ίγια Μαλδίβων"}\r
+            other{"Ï\81οÏ\85Ï\86ίγιεÏ\82 Μαλδίβων"}\r
         }\r
         MWK{\r
             one{"κουάτσα Μαλάουι"}\r
@@ -2134,6 +2138,10 @@ el{
             other{"μπολιβάρ Βενεζουέλας (1871–2008)"}\r
         }\r
         VEF{\r
+            one{"μπολιβάρ Βενεζουέλας (2008–2018)"}\r
+            other{"μπολιβάρ Βενεζουέλας (2008–2018)"}\r
+        }\r
+        VES{\r
             one{"μπολιβάρ Βενεζουέλας"}\r
             other{"μπολιβάρ Βενεζουέλας"}\r
         }\r
@@ -2258,5 +2266,5 @@ el{
         one{"{0} {1}"}\r
         other{"{0} {1}"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.65"}\r
 }\r
index 99310c5c641cc7361462951ce503344304bb2045..cccaac8c9bfc41438dcff3d516c8d461a7c81864 100644 (file)
@@ -1034,6 +1034,10 @@ en{
             "UYU",\r
             "Uruguayan Peso",\r
         }\r
+        UYW{\r
+            "UYW",\r
+            "Uruguayan Nominal Wage Index Unit",\r
+        }\r
         UZS{\r
             "UZS",\r
             "Uzbekistani Som",\r
@@ -1044,6 +1048,10 @@ en{
         }\r
         VEF{\r
             "VEF",\r
+            "Venezuelan Bolívar (2008–2018)",\r
+        }\r
+        VES{\r
+            "VES",\r
             "Venezuelan Bolívar",\r
         }\r
         VND{\r
@@ -1143,7 +1151,7 @@ en{
             "ADB Unit of Account",\r
         }\r
         XXX{\r
-            "XXX",\r
+            "¤",\r
             "Unknown Currency",\r
         }\r
         YDD{\r
@@ -2240,6 +2248,10 @@ en{
             one{"Uruguayan peso"}\r
             other{"Uruguayan pesos"}\r
         }\r
+        UYW{\r
+            one{"Uruguayan nominal wage index unit"}\r
+            other{"Uruguayan nominal wage index units"}\r
+        }\r
         UZS{\r
             one{"Uzbekistani som"}\r
             other{"Uzbekistani som"}\r
@@ -2249,6 +2261,10 @@ en{
             other{"Venezuelan bolívars (1871–2008)"}\r
         }\r
         VEF{\r
+            one{"Venezuelan bolívar (2008–2018)"}\r
+            other{"Venezuelan bolívars (2008–2018)"}\r
+        }\r
+        VES{\r
             one{"Venezuelan bolívar"}\r
             other{"Venezuelan bolívars"}\r
         }\r
@@ -2417,5 +2433,5 @@ en{
         one{"{0} {1}"}\r
         other{"{0} {1}"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.91"}\r
 }\r
index 5d54d855c2bf04c1d5cf32007936e8dce1227df2..1e1cd0910583a22300f2c8c94fe8b22ac7cec041 100644 (file)
@@ -69,5 +69,5 @@ en_001{
             other{"Tajikistani roubles"}\r
         }\r
     }\r
-    Version{"2.1.38.69"}\r
+    Version{"2.1.44.18"}\r
 }\r
index 247d117d21058586585b43e9092bc346b435e321..52245d6b6f986fcd8d102e11e8e71b0bd749fd10 100644 (file)
@@ -130,10 +130,6 @@ en_AU{
         SEK{"Kr"}\r
         UYU{"$U"}\r
     }\r
-    Currencies%variant{\r
-        GEL{"GEL"}\r
-        TRY{"TRY"}\r
-    }\r
     CurrencyPlurals{\r
         BAM{\r
             one{"Bosnia-Herzegovina convertible marka"}\r
@@ -175,6 +171,9 @@ en_AU{
             one{"Laotian kip"}\r
             other{"Laotian kip"}\r
         }\r
+        MGA{\r
+            one{"Malagasy ariary"}\r
+        }\r
         MKD{\r
             one{"Macedonian denar"}\r
             other{"Macedonian denar"}\r
@@ -199,6 +198,10 @@ en_AU{
             one{"Uzbekistani som"}\r
             other{"Uzbekistani soms"}\r
         }\r
+        VEF{\r
+            one{"Venezuelan bolívar"}\r
+            other{"Venezuelan bolívars"}\r
+        }\r
         VND{\r
             one{"Vietnamese dong"}\r
             other{"Vietnamese dongs"}\r
@@ -208,5 +211,5 @@ en_AU{
             other{"Samoan talas"}\r
         }\r
     }\r
-    Version{"2.1.38.73"}\r
+    Version{"2.1.44.18"}\r
 }\r
index 79bbbecd2ccb6e50aed016ac4e504e2056c52ae1..c9f5e1b4bfffdd6c677b54b4045abf45e05ab534 100644 (file)
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 en_BE{\r
     %%Parent{"en_001"}\r
-    Version{"2.1.38.69"}\r
+    Version{"2.1.44.18"}\r
 }\r
index fd6ba68c0dadf6a6b403643861a95d895c4712e0..5b30d9be6a86a22252f015bafa585e9dfa12ab08 100644 (file)
@@ -14,5 +14,5 @@ en_CA{
             other{"Israeli new sheqels"}\r
         }\r
     }\r
-    Version{"2.1.38.73"}\r
+    Version{"2.1.44.88"}\r
 }\r
index e028e10a013caf222182ac61c6a119795ae5e96c..8b082d8561a96d75c38a70c12fa159f1114aabe4 100644 (file)
@@ -9,16 +9,10 @@ en_GB{
         }\r
     }\r
     CurrencyPlurals{\r
-        MKD{\r
-            other{"Macedonian denari"}\r
-        }\r
         SHP{\r
             one{"St Helena pound"}\r
             other{"St Helena pounds"}\r
         }\r
-        XOF{\r
-            other{"West African CFA francs"}\r
-        }\r
     }\r
-    Version{"2.1.38.73"}\r
+    Version{"2.1.44.18"}\r
 }\r
index e057509da41e0ec6ff27336478410f6d0a4d1789..422f3b6a6dad757046e1ffd6b04e8f7a3951cfac 100644 (file)
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 en_HK{\r
     %%Parent{"en_001"}\r
-    Version{"2.1.38.69"}\r
+    Version{"2.1.43.65"}\r
 }\r
index 56507ab1caec75b84a939d098c498d4e37c06c11..1b0d83feb5be8a292a2db02cdfb58ff8ef3942f7 100644 (file)
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 en_IE{\r
     %%Parent{"en_001"}\r
-    Version{"2.1.38.69"}\r
+    Version{"2.1.44.18"}\r
 }\r
index 55ab3729b7206a5d3596f644eaf101d6b4dd8488..f8d3fc5c0a2f5c89bf1f08c79fd11bd9ac04cf84 100644 (file)
@@ -2,5 +2,25 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 en_IN{\r
     %%Parent{"en_001"}\r
-    Version{"2.1.38.73"}\r
+    Currencies{\r
+        VEF{\r
+            "VEF",\r
+            "Venezuelan Bolívar",\r
+        }\r
+        VES{\r
+            "VES",\r
+            "VES",\r
+        }\r
+    }\r
+    CurrencyPlurals{\r
+        VEF{\r
+            one{"Venezuelan bolívar"}\r
+            other{"Venezuelan bolívars"}\r
+        }\r
+        VES{\r
+            one{"VES"}\r
+            other{"VES"}\r
+        }\r
+    }\r
+    Version{"2.1.44.18"}\r
 }\r
index 4ae9e3e599ea12d344ecbeedcda45d0750a7c672..429d89ae5fdd2b4511a81f6958c6289c1f5391ee 100644 (file)
@@ -8,5 +8,5 @@ en_JM{
             "Jamaican Dollar",\r
         }\r
     }\r
-    Version{"2.1.38.69"}\r
+    Version{"2.1.44.18"}\r
 }\r
index e2a9edc6cdc9cf39506660af193dd71f87371513..45a21bcbf802a53cb2875fab4fd497485227c4be 100644 (file)
@@ -8,5 +8,5 @@ en_NZ{
             "New Zealand Dollar",\r
         }\r
     }\r
-    Version{"2.1.38.73"}\r
+    Version{"2.1.44.88"}\r
 }\r
index 3c7e040a21a1efab7e5594476f58671bd11db200..14f8030a146afd6f117b5a8dbbd3b94ddf5c110f 100644 (file)
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 en_ZW{\r
     %%Parent{"en_001"}\r
-    Version{"2.1.38.69"}\r
+    Version{"2.1.44.18"}\r
 }\r
index a94cd5f01b663953cc9363e7e22f35b0aede0832..96c3586cfea636d459f19d2a7f47cb42eb8cab23 100644 (file)
@@ -962,6 +962,10 @@ es{
             "UYU",\r
             "peso uruguayo",\r
         }\r
+        UYW{\r
+            "UYW",\r
+            "unidad previsional uruguayo",\r
+        }\r
         UZS{\r
             "UZS",\r
             "sum",\r
@@ -972,6 +976,10 @@ es{
         }\r
         VEF{\r
             "VEF",\r
+            "bolívar venezolano (2008–2018)",\r
+        }\r
+        VES{\r
+            "VES",\r
             "bolívar venezolano",\r
         }\r
         VND{\r
@@ -1059,7 +1067,7 @@ es{
             "código reservado para pruebas",\r
         }\r
         XXX{\r
-            "XXX",\r
+            "¤",\r
             "moneda desconocida",\r
         }\r
         YDD{\r
@@ -2100,6 +2108,10 @@ es{
             one{"peso uruguayo"}\r
             other{"pesos uruguayos"}\r
         }\r
+        UYW{\r
+            one{"unidad previsional uruguayo"}\r
+            other{"unidades previsionales uruguayos"}\r
+        }\r
         UZS{\r
             one{"sum"}\r
             other{"sums"}\r
@@ -2109,6 +2121,10 @@ es{
             other{"bolívares venezolanos (1871–2008)"}\r
         }\r
         VEF{\r
+            one{"bolívar venezolano (2008–2018)"}\r
+            other{"bolívares venezolanos (2008–2018)"}\r
+        }\r
+        VES{\r
             one{"bolívar venezolano"}\r
             other{"bolívares venezolanos"}\r
         }\r
@@ -2213,5 +2229,5 @@ es{
         one{"{0} {1}"}\r
         other{"{0} {1}"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.88"}\r
 }\r
index 81bddb88a67ed4f420fb648b530bd70a9f61ed15..3f6a815862cc46a1e6e331a389f7993d2bfe250e 100644 (file)
@@ -18,18 +18,46 @@ es_419{
             "EUR",\r
             "euro",\r
         }\r
+        MYR{\r
+            "MYR",\r
+            "ringgit malayo",\r
+        }\r
         THB{\r
             "THB",\r
-            "bat",\r
+            "baht tailandes",\r
         }\r
         USD{\r
             "USD",\r
             "dólar estadounidense",\r
         }\r
+        UZS{\r
+            "UZS",\r
+            "som uzbeko",\r
+        }\r
+        VEF{\r
+            "VEF",\r
+            "bolívar venezolano",\r
+        }\r
+        VES{\r
+            "VES",\r
+            "VES",\r
+        }\r
         VND{\r
             "VND",\r
             "dong",\r
         }\r
+        XAF{\r
+            "XAF",\r
+            "franco CFA BEAC",\r
+        }\r
+        XOF{\r
+            "XOF",\r
+            "franco CFA BCEAO",\r
+        }\r
+        ZMW{\r
+            "ZMW",\r
+            "kuacha zambiano",\r
+        }\r
     }\r
     Currencies%narrow{\r
         EGP{"E£"}\r
@@ -46,10 +74,42 @@ es_419{
         LVL{\r
             one{"lats letón"}\r
         }\r
+        MYR{\r
+            one{"ringgit malayo"}\r
+            other{"ringgits malayos"}\r
+        }\r
+        THB{\r
+            one{"baht tailandes"}\r
+            other{"bahts tailandeses"}\r
+        }\r
+        UZS{\r
+            one{"som uzbeko"}\r
+            other{"soms uzbekos"}\r
+        }\r
+        VEF{\r
+            one{"bolívar venezolano"}\r
+            other{"bolívares venezolanos"}\r
+        }\r
+        VES{\r
+            one{"VES"}\r
+            other{"VES"}\r
+        }\r
+        XAF{\r
+            one{"franco CFA BEAC"}\r
+            other{"francos CFA BEAC"}\r
+        }\r
+        XOF{\r
+            one{"franco CFA BCEAO"}\r
+            other{"francos CFA BCEAO"}\r
+        }\r
         XXX{\r
             one{"(unidad de moneda desconocida)"}\r
             other{"(moneda desconocida)"}\r
         }\r
+        ZMW{\r
+            one{"kuacha zambiano"}\r
+            other{"kuachas zambianos"}\r
+        }\r
     }\r
-    Version{"2.1.38.39"}\r
+    Version{"2.1.43.65"}\r
 }\r
index 88a916963a7e09e97cb6bda2123e4bb1dab2c337..fb1e92e6e2756e1ad23ce9407d762f54b8d6837b 100644 (file)
@@ -15,5 +15,5 @@ es_AR{
     Currencies%variant{\r
         GEL{"GEL"}\r
     }\r
-    Version{"2.1.38.39"}\r
+    Version{"2.1.43.65"}\r
 }\r
index 5ce0385892d27dff95e26654c27f24b4d2567bd6..3246c3e2fe32e2c15901e4537600e76b01e641e5 100644 (file)
@@ -12,5 +12,5 @@ es_CO{
             "dólar estadounidense",\r
         }\r
     }\r
-    Version{"2.1.38.39"}\r
+    Version{"2.1.43.65"}\r
 }\r
index 6f9e6e4aa6099fc103697a3a3062e501e1e510ad..96015e2399c45c24e7ee4eca089f2f3b34f8d832 100644 (file)
@@ -3,6 +3,14 @@
 es_MX{\r
     %%Parent{"es_419"}\r
     Currencies{\r
+        BDT{\r
+            "BDT",\r
+            "taka bangladesí",\r
+        }\r
+        BTN{\r
+            "BTN",\r
+            "ngultrum butanés",\r
+        }\r
         CNH{\r
             "CNH",\r
             "CNH",\r
@@ -11,6 +19,30 @@ es_MX{
             "ERN",\r
             "nakfa",\r
         }\r
+        KGS{\r
+            "KGS",\r
+            "som kirguís",\r
+        }\r
+        KHR{\r
+            "KHR",\r
+            "riel camboyano",\r
+        }\r
+        LAK{\r
+            "LAK",\r
+            "kip laosiano",\r
+        }\r
+        MRO{\r
+            "MRU",\r
+            "uguiya (1973–2017)",\r
+        }\r
+        MRU{\r
+            "UM",\r
+            "uguiya",\r
+        }\r
+        MVR{\r
+            "MVR",\r
+            "rupia de Maldivas",\r
+        }\r
         MXN{\r
             "$",\r
             "peso mexicano",\r
@@ -31,6 +63,18 @@ es_MX{
             "UZS",\r
             "sum",\r
         }\r
+        VEF{\r
+            "VEF",\r
+            "bolívar venezolano (2008–2018)",\r
+        }\r
+        VES{\r
+            "VES",\r
+            "bolívar venezolano",\r
+        }\r
+        VND{\r
+            "VND",\r
+            "dong vietnamita",\r
+        }\r
         ZMW{\r
             "ZMW",\r
             "kwacha zambiano",\r
@@ -42,35 +86,81 @@ es_MX{
         RON{"lei"}\r
         SSP{"£"}\r
         SYP{"£"}\r
+        VEF{"Bs"}\r
     }\r
     CurrencyPlurals{\r
+        AMD{\r
+            one{"dram armenio"}\r
+            other{"drams armenios"}\r
+        }\r
+        BDT{\r
+            one{"taka bangladesí"}\r
+            other{"takas bangladesíes"}\r
+        }\r
         BGN{\r
             other{"levas búlgaras"}\r
         }\r
+        BTN{\r
+            one{"ngultrum butanés"}\r
+            other{"gultrums bultaneses"}\r
+        }\r
         CNH{\r
             one{"CNH"}\r
             other{"CNH"}\r
         }\r
+        KGS{\r
+            one{"som kirguís"}\r
+            other{"soms kirguises"}\r
+        }\r
+        KHR{\r
+            one{"riel camboyano"}\r
+            other{"rieles camboyanos"}\r
+        }\r
+        LAK{\r
+            one{"kip laosiano"}\r
+            other{"kips laosianos"}\r
+        }\r
         LVL{\r
             one{"lats letón"}\r
             other{"lats letones"}\r
         }\r
+        MVR{\r
+            one{"rupia de Maldivas"}\r
+            other{"rupias de Maldivas"}\r
+        }\r
+        MWK{\r
+            one{"kwacha malauí"}\r
+        }\r
         MYR{\r
             one{"ringit"}\r
             other{"ringits"}\r
         }\r
         STN{\r
             one{"dobra santotomense"}\r
-            other{"dobra santotomense"}\r
+            other{"dobras santotomenses"}\r
         }\r
         THB{\r
             one{"baht tailandés"}\r
-            other{"bats"}\r
+        }\r
+        TMT{\r
+            other{"manats turcomanos"}\r
         }\r
         UZS{\r
             one{"sum"}\r
             other{"sums"}\r
         }\r
+        VEF{\r
+            one{"bolívar venezolano (2008–2018)"}\r
+            other{"bolívares venezolanos (2008–2018)"}\r
+        }\r
+        VES{\r
+            one{"bolívar venezolano"}\r
+            other{"bolivares venezolanos"}\r
+        }\r
+        VND{\r
+            one{"dong vietnamita"}\r
+            other{"dongs vietnamitas"}\r
+        }\r
         XXX{\r
             one{"(moneda desconocida)"}\r
         }\r
@@ -79,5 +169,5 @@ es_MX{
             other{"kwachas zambianos"}\r
         }\r
     }\r
-    Version{"2.1.38.73"}\r
+    Version{"2.1.44.5"}\r
 }\r
index 20d9c46b08badb24944e5e3e0ab2ab773b240e7b..8b3216f03cf54d93ed1f7613759e8d4f2e7a7059 100644 (file)
@@ -8,5 +8,5 @@ es_PY{
             "guaraní paraguayo",\r
         }\r
     }\r
-    Version{"2.1.38.39"}\r
+    Version{"2.1.43.65"}\r
 }\r
index b4cf93920587f639b21efc90c861e8ce038c0068..143bbc0a59aa26daf6113e097238fdc7fa591caf 100644 (file)
@@ -3,6 +3,10 @@
 es_US{\r
     %%Parent{"es_419"}\r
     Currencies{\r
+        AMD{\r
+            "AMD",\r
+            "dram",\r
+        }\r
         JPY{\r
             "¥",\r
             "yen",\r
@@ -41,21 +45,16 @@ es_US{
         RON{"lei"}\r
         SSP{"£"}\r
         SYP{"£"}\r
+        VEF{"Bs"}\r
     }\r
     CurrencyPlurals{\r
         KGS{\r
             one{"som"}\r
         }\r
-        MWK{\r
-            one{"kwacha malauí"}\r
-        }\r
         MYR{\r
             one{"ringit"}\r
             other{"ringits"}\r
         }\r
-        RON{\r
-            one{"leu rumano"}\r
-        }\r
         STN{\r
             one{"dobra santotomense"}\r
             other{"dobra santotomense"}\r
@@ -77,5 +76,5 @@ es_US{
             other{"francos CFA de África Occidental"}\r
         }\r
     }\r
-    Version{"2.1.38.73"}\r
+    Version{"2.1.43.65"}\r
 }\r
index b3fe54e732c95d674ce4b160acac31876f017de3..0f2faa90f83d97ef46f6fd7c281f177b0515d9d4 100644 (file)
@@ -11,6 +11,10 @@ es_UY{
             "$",\r
             "peso uruguayo",\r
         }\r
+        UYW{\r
+            "UP",\r
+            "unidad previsional uruguayo",\r
+        }\r
     }\r
-    Version{"2.1.38.39"}\r
+    Version{"2.1.44.79"}\r
 }\r
index 923d2eb62dfb4f1abb5b9a51099618c08020ad9f..6e45aa0819201906af5a6f9f7a8e4db0bafd16c3 100644 (file)
@@ -7,9 +7,20 @@ es_VE{
             "Bs.",\r
             "bolívar venezolano",\r
         }\r
+        VES{\r
+            "Bs.S",\r
+            "bolívar soberano",\r
+        }\r
     }\r
     Currencies%narrow{\r
         VEF{"Bs."}\r
+        VES{"Bs.S"}\r
+    }\r
+    CurrencyPlurals{\r
+        VES{\r
+            one{"bolívar soberano"}\r
+            other{"bolívares soberanos"}\r
+        }\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.41.45"}\r
 }\r
index d1edb2c944d2cd9bdc837b917a95152bb8fc45a4..98de3daabe91c486d0bf454dd0c2f55ad4501371 100644 (file)
@@ -965,6 +965,10 @@ et{
         }\r
         VEF{\r
             "VEF",\r
+            "Venezuela boliivar (2008–2018)",\r
+        }\r
+        VES{\r
+            "VES",\r
             "Venezuela boliivar",\r
         }\r
         VND{\r
@@ -1052,7 +1056,7 @@ et{
             "vääringute testkood",\r
         }\r
         XXX{\r
-            "XXX",\r
+            "¤",\r
             "määramata rahaühik",\r
         }\r
         YDD{\r
@@ -1101,14 +1105,18 @@ et{
         }\r
     }\r
     Currencies%narrow{\r
+        AOA{"Kz"}\r
         ARS{"$"}\r
         AUD{"$"}\r
+        BAM{"KM"}\r
         BBD{"$"}\r
         BDT{"৳"}\r
         BMD{"$"}\r
         BND{"$"}\r
+        BOB{"Bs"}\r
         BRL{"R$"}\r
         BSD{"$"}\r
+        BWP{"P"}\r
         BYN{"р."}\r
         BZD{"$"}\r
         CAD{"$"}\r
@@ -1116,45 +1124,84 @@ et{
         CNY{"¥"}\r
         COP{"$"}\r
         CRC{"₡"}\r
+        CUC{"$"}\r
         CUP{"$"}\r
+        CZK{"Kč"}\r
         DKK{"kr"}\r
         DOP{"$"}\r
+        EGP{"E£"}\r
         EUR{"€"}\r
         FJD{"$"}\r
+        FKP{"£"}\r
         GBP{"£"}\r
+        GEL{"₾"}\r
         GIP{"£"}\r
+        GNF{"FG"}\r
+        GTQ{"Q"}\r
         GYD{"$"}\r
         HKD{"$"}\r
+        HNL{"L"}\r
+        HRK{"kn"}\r
+        HUF{"Ft"}\r
+        IDR{"Rp"}\r
         ILS{"₪"}\r
         INR{"₹"}\r
         ISK{"kr"}\r
         JMD{"$"}\r
         JPY{"¥"}\r
         KHR{"៛"}\r
+        KMF{"CF"}\r
+        KPW{"₩"}\r
         KRW{"₩"}\r
         KYD{"$"}\r
         KZT{"₸"}\r
         LAK{"₭"}\r
+        LBP{"L£"}\r
+        LKR{"Rs"}\r
         LRD{"$"}\r
+        MGA{"Ar"}\r
+        MMK{"K"}\r
         MNT{"₮"}\r
+        MUR{"Rs"}\r
         MXN{"$"}\r
+        MYR{"RM"}\r
         NAD{"$"}\r
         NGN{"₦"}\r
+        NIO{"C$"}\r
+        NOK{"kr"}\r
+        NPR{"Rs"}\r
         NZD{"$"}\r
         PHP{"₱"}\r
+        PKR{"Rs"}\r
+        PLN{"zł"}\r
         PYG{"₲"}\r
+        RON{"lei"}\r
+        RUB{"₽"}\r
+        RWF{"RF"}\r
         SBD{"$"}\r
+        SEK{"kr"}\r
         SGD{"$"}\r
+        SHP{"£"}\r
         SRD{"$"}\r
         SSP{"£"}\r
+        STN{"Db"}\r
+        SYP{"£"}\r
         THB{"฿"}\r
+        TOP{"T$"}\r
         TRY{"₺"}\r
         TTD{"$"}\r
         TWD{"NT$"}\r
         UAH{"₴"}\r
         USD{"$"}\r
         UYU{"$"}\r
+        VEF{"Bs"}\r
         VND{"₫"}\r
+        XCD{"$"}\r
+        ZAR{"R"}\r
+        ZMW{"ZK"}\r
+    }\r
+    Currencies%variant{\r
+        TRY{"TL"}\r
     }\r
     CurrencyPlurals{\r
         ADP{\r
@@ -2066,6 +2113,10 @@ et{
             other{"Venezuela boliivarit (1871–2008)"}\r
         }\r
         VEF{\r
+            one{"Venezuela boliivar (2008–2018)"}\r
+            other{"Venezuela boliivarit (2008–2018)"}\r
+        }\r
+        VES{\r
             one{"Venezuela boliivar"}\r
             other{"Venezuela boliivarit"}\r
         }\r
@@ -2174,5 +2225,5 @@ et{
         one{"{0} {1}"}\r
         other{"{0} {1}"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.91"}\r
 }\r
index 3075f08ecaffabffdf051712a1e74b115fe27aaf..8e3bdc15eeabd2eb91f59ec9a81e919e46a8eff5 100644 (file)
@@ -545,7 +545,7 @@ eu{
         }\r
         STN{\r
             "STN",\r
-            "Sao Tomeko eta Principeko dobra",\r
+            "Sao Tome eta Principeko dobra",\r
         }\r
         SYP{\r
             "SYP",\r
@@ -613,6 +613,10 @@ eu{
         }\r
         VEF{\r
             "VEF",\r
+            "Venezuelako bolivarra (2008–2018)",\r
+        }\r
+        VES{\r
+            "VES",\r
             "Venezuelako bolivarra",\r
         }\r
         VND{\r
@@ -644,7 +648,7 @@ eu{
             "CFP frankoa",\r
         }\r
         XXX{\r
-            "XXX",\r
+            "¤",\r
             "Moneta ezezaguna",\r
         }\r
         YER{\r
@@ -1292,8 +1296,8 @@ eu{
             other{"Sao Tomeko eta Principeko dobra (1977–2017)"}\r
         }\r
         STN{\r
-            one{"Sao Tomeko eta Principeko dobra"}\r
-            other{"Sao Tomeko eta Principeko dobra"}\r
+            one{"Sao Tome eta Principeko dobra"}\r
+            other{"Sao Tome eta Principeko dobra"}\r
         }\r
         SYP{\r
             one{"Siriako libera"}\r
@@ -1360,6 +1364,10 @@ eu{
             other{"Uzbekistango som"}\r
         }\r
         VEF{\r
+            one{"Venezuelako bolivar (2008–2018)"}\r
+            other{"Venezuelako bolivar (2008–2018)"}\r
+        }\r
+        VES{\r
             one{"Venezuelako bolivar"}\r
             other{"Venezuelako bolivar"}\r
         }\r
@@ -1412,5 +1420,5 @@ eu{
         one{"{0} {1}"}\r
         other{"{0} {1}"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.65"}\r
 }\r
index 3e129f2857ae10c4bdb0b37bfc6d5dc638f664b5..2a5dc007e92a783e82ee1a7a3f1983ea6dd1f234 100644 (file)
@@ -788,6 +788,10 @@ fa{
         }\r
         VEF{\r
             "VEF",\r
+            "بولیوار ونزوئلا (۲۰۰۸ تا ۲۰۱۸)",\r
+        }\r
+        VES{\r
+            "VES",\r
             "بولیوار ونزوئلا",\r
         }\r
         VND{\r
@@ -839,7 +843,7 @@ fa{
             "پلاتین",\r
         }\r
         XXX{\r
-            "XXX",\r
+            "¤",\r
             "ارز نامشخص",\r
         }\r
         YDD{\r
@@ -1614,6 +1618,10 @@ fa{
             other{"بولیوار ونزوئلا (۱۸۷۱ تا ۲۰۰۸)"}\r
         }\r
         VEF{\r
+            one{"بولیوار ونزوئلا (۲۰۰۸ تا ۲۰۱۸)"}\r
+            other{"بولیوار ونزوئلا (۲۰۰۸ تا ۲۰۱۸)"}\r
+        }\r
+        VES{\r
             one{"بولیوار ونزوئلا"}\r
             other{"بولیوار ونزوئلا"}\r
         }\r
@@ -1662,5 +1670,5 @@ fa{
             other{"کواچای زامبیا"}\r
         }\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.65"}\r
 }\r
index d859a3e0468852f082679962412fe1ff20120c76..aecfec4a027afcd1d5f56cedc19fc267617efd82 100644 (file)
@@ -63,5 +63,5 @@ fa_AF{
             "دالر امریکا",\r
         }\r
     }\r
-    Version{"2.1.38.39"}\r
+    Version{"2.1.43.65"}\r
 }\r
diff --git a/source/data/curr/ff_GN.txt b/source/data/curr/ff_GN.txt
deleted file mode 100644 (file)
index 52bc068..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
-// © 2016 and later: Unicode, Inc. and others.\r
-// License & terms of use: http://www.unicode.org/copyright.html#License\r
-ff_GN{\r
-    Currencies{\r
-        GNF{\r
-            "FG",\r
-            "GNF",\r
-        }\r
-    }\r
-    Version{"2.1.38.69"}\r
-}\r
diff --git a/source/data/curr/ff_MR.txt b/source/data/curr/ff_MR.txt
deleted file mode 100644 (file)
index ac97c49..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
-// © 2016 and later: Unicode, Inc. and others.\r
-// License & terms of use: http://www.unicode.org/copyright.html#License\r
-ff_MR{\r
-    Currencies{\r
-        MRU{\r
-            "UM",\r
-            "Ugiyya Muritani",\r
-        }\r
-    }\r
-    Version{"2.1.39.11"}\r
-}\r
index 1ac0cb1215421aa636d01243c4fb9e29be8fd443..4c8da82aa996819b8b44801f830d50c3ec7d7122 100644 (file)
@@ -1040,11 +1040,15 @@ fi{
         }\r
         VEB{\r
             "VEB",\r
-            "Venezuelan bolivar (1871–2008)",\r
+            "Venezuelan bolívar (1871–2008)",\r
         }\r
         VEF{\r
             "VEF",\r
-            "Venezuelan bolivar",\r
+            "Venezuelan bolívar (2008–2018)",\r
+        }\r
+        VES{\r
+            "VES",\r
+            "Venezuelan suvereeni bolívar",\r
         }\r
         VND{\r
             "VND",\r
@@ -2352,8 +2356,12 @@ fi{
             other{"Venezuelan bolivaria (1871–2008)"}\r
         }\r
         VEF{\r
-            one{"Venezuelan bolivar"}\r
-            other{"Venezuelan bolivaria"}\r
+            one{"Venezuelan bolívar (2008–2018)"}\r
+            other{"Venezuelan bolívaria (2008–2018)"}\r
+        }\r
+        VES{\r
+            one{"Venezuelan suvereeni bolívar"}\r
+            other{"Venezuelan suvereenia bolívaria"}\r
         }\r
         VND{\r
             one{"Vietnamin dong"}\r
@@ -2520,5 +2528,5 @@ fi{
         one{"{0} {1}"}\r
         other{"{0} {1}"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.91"}\r
 }\r
index 5c95accd69e879ab830812e4dc2ac5306cdff4e3..38e112eda110d17040b8788e3e2d54216b69603b 100644 (file)
@@ -396,7 +396,7 @@ fil{
         }\r
         MRU{\r
             "MRU",\r
-            "Mauritanian Ouguiya",\r
+            "Ouguiya ng Mauritania",\r
         }\r
         MUR{\r
             "MUR",\r
@@ -556,7 +556,7 @@ fil{
         }\r
         STN{\r
             "STN",\r
-            "São Tomé & Príncipe Dobra",\r
+            "São Tomé & Príncipe Dobra (2018)",\r
         }\r
         SYP{\r
             "SYP",\r
@@ -628,6 +628,10 @@ fil{
         }\r
         VEF{\r
             "VEF",\r
+            "Bolívar ng Venezuela (2008–2018)",\r
+        }\r
+        VES{\r
+            "VES",\r
             "Bolívar ng Venezuela",\r
         }\r
         VND{\r
@@ -659,7 +663,7 @@ fil{
             "CFP Franc",\r
         }\r
         XXX{\r
-            "XXX",\r
+            "¤",\r
             "Hindi Kilalang Pera",\r
         }\r
         YER{\r
@@ -1377,6 +1381,10 @@ fil{
             other{"Uzbekistan som"}\r
         }\r
         VEF{\r
+            one{"bolívar ng Venezuela (2008–2018)"}\r
+            other{"bolívars ng Venezuela (2008–2018)"}\r
+        }\r
+        VES{\r
             one{"bolívar ng Venezuela"}\r
             other{"bolívars ng Venezuela"}\r
         }\r
@@ -1429,5 +1437,5 @@ fil{
         one{"{0} {1}"}\r
         other{"{0} {1}"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.91"}\r
 }\r
index 1132fdabfa91c85a416d39bfa253c0996b6c5f39..5c32b09627ca3cd49ed2dd39a48a45125a9f1104 100644 (file)
@@ -592,6 +592,10 @@ fo{
         }\r
         VEF{\r
             "VEF",\r
+            "Venesuela bolívar (2008–2018)",\r
+        }\r
+        VES{\r
+            "VES",\r
             "Venesuela bolívar",\r
         }\r
         VND{\r
@@ -639,7 +643,7 @@ fo{
             "unse platin",\r
         }\r
         XXX{\r
-            "XXX",\r
+            "¤",\r
             "ókent gjaldoyra",\r
         }\r
         YER{\r
@@ -1344,6 +1348,10 @@ fo{
             other{"Usbekistan som"}\r
         }\r
         VEF{\r
+            one{"Venesuela bolívar (2008–2018)"}\r
+            other{"Venesuela bolívar (2008–2018)"}\r
+        }\r
+        VES{\r
             one{"Venesuela bolívar"}\r
             other{"Venesuela bolívar"}\r
         }\r
@@ -1412,5 +1420,5 @@ fo{
         one{"{0} {1}"}\r
         other{"{0} {1}"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.41.34"}\r
 }\r
index f7618b814a7445b1964f59004b8aada1111fe812..2bdfa53b7bccd9d635c82f0f1a92df6a29335562 100644 (file)
@@ -171,7 +171,7 @@ fr{
             "cruzeiro",\r
         }\r
         BSD{\r
-            "$BS",\r
+            "BSD",\r
             "dollar bahaméen",\r
         }\r
         BTN{\r
@@ -976,6 +976,10 @@ fr{
         }\r
         VEF{\r
             "VEF",\r
+            "bolivar vénézuélien (2008–2018)",\r
+        }\r
+        VES{\r
+            "VES",\r
             "bolivar vénézuélien",\r
         }\r
         VND{\r
@@ -1063,7 +1067,7 @@ fr{
             "(devise de test)",\r
         }\r
         XXX{\r
-            "XXX",\r
+            "¤",\r
             "devise inconnue ou non valide",\r
         }\r
         YDD{\r
@@ -2197,6 +2201,10 @@ fr{
             other{"bolivar vénézuélien (1871–2008)"}\r
         }\r
         VEF{\r
+            one{"bolivar vénézuélien (2008–2018)"}\r
+            other{"bolivars vénézuéliens (2008–2018)"}\r
+        }\r
+        VES{\r
             one{"bolivar vénézuélien"}\r
             other{"bolivars vénézuéliens"}\r
         }\r
@@ -2345,5 +2353,5 @@ fr{
         one{"{0} {1}"}\r
         other{"{0} {1}"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.91"}\r
 }\r
index b0db6167416fb361cdb9b93d94db5cc7fdfa44f6..83fc1d7dfcc49ea45a14b34c6a19cab33b564897 100644 (file)
@@ -10,6 +10,10 @@ fr_CA{
             "$ AU",\r
             "dollar australien",\r
         }\r
+        AZN{\r
+            "AZN",\r
+            "manat azerbaïdjanais",\r
+        }\r
         BMD{\r
             "BMD",\r
             "dollar bermudien",\r
@@ -18,10 +22,6 @@ fr_CA{
             "BND",\r
             "dollar brunéien",\r
         }\r
-        BSD{\r
-            "BSD",\r
-            "dollar bahaméen",\r
-        }\r
         BZD{\r
             "BZD",\r
             "dollar bélizéen",\r
@@ -42,6 +42,10 @@ fr_CA{
             "COP",\r
             "peso colombien",\r
         }\r
+        CVE{\r
+            "CVE",\r
+            "escudo cap-verdien",\r
+        }\r
         FJD{\r
             "FJD",\r
             "dollar fidjien",\r
@@ -82,6 +86,10 @@ fr_CA{
             "KRW",\r
             "won sud-coréen",\r
         }\r
+        LAK{\r
+            "LAK",\r
+            "kip laotien",\r
+        }\r
         LBP{\r
             "LBP",\r
             "livre libanaise",\r
@@ -102,6 +110,18 @@ fr_CA{
             "OMR",\r
             "rial omanais",\r
         }\r
+        PEN{\r
+            "PEN",\r
+            "nouveau sol péruvien",\r
+        }\r
+        PGK{\r
+            "PGK",\r
+            "kina papou-néo-guinéen",\r
+        }\r
+        QAR{\r
+            "QAR",\r
+            "riyal du Qatar",\r
+        }\r
         SAR{\r
             "SAR",\r
             "rial saoudien",\r
@@ -116,7 +136,7 @@ fr_CA{
         }\r
         SRD{\r
             "SRD",\r
-            "dollar surinamais",\r
+            "dollar du Suriname",\r
         }\r
         TOP{\r
             "TOP",\r
@@ -138,6 +158,14 @@ fr_CA{
             "VND",\r
             "dông vietnamien",\r
         }\r
+        VUV{\r
+            "VUV",\r
+            "vatu",\r
+        }\r
+        WST{\r
+            "WST",\r
+            "tala",\r
+        }\r
         XAF{\r
             "XAF",\r
             "franc CFA (BEAC)",\r
@@ -151,7 +179,7 @@ fr_CA{
             "franc CFP",\r
         }\r
         XXX{\r
-            "XXX",\r
+            "¤",\r
             "Devise inconnue",\r
         }\r
         YER{\r
@@ -170,26 +198,69 @@ fr_CA{
         TRY{"TL"}\r
     }\r
     CurrencyPlurals{\r
+        AZN{\r
+            one{"manat azerbaïdjanais"}\r
+            other{"manats azerbaïdjanais"}\r
+        }\r
+        CVE{\r
+            one{"escudo cap-verdien"}\r
+            other{"escudos cap-verdiens"}\r
+        }\r
         FKP{\r
             one{"livre des Îles Malouines"}\r
             other{"livres des Îles Malouines"}\r
         }\r
+        GEL{\r
+            one{"lari géorgien"}\r
+        }\r
+        GYD{\r
+            one{"dollar guyanien"}\r
+            other{"dollars guyaniens"}\r
+        }\r
         IRR{\r
             one{"rial iranien"}\r
             other{"rials iraniens"}\r
         }\r
+        LAK{\r
+            one{"kip laotien"}\r
+            other{"kips laotiens"}\r
+        }\r
         OMR{\r
             one{"rial omanais"}\r
             other{"rials omanis"}\r
         }\r
+        PEN{\r
+            one{"nouveau sol péruvien"}\r
+            other{"nouveaux sols péruviens"}\r
+        }\r
+        PGK{\r
+            one{"kina papou-néo-guinéen"}\r
+            other{"kinas papou-néo-guinéens"}\r
+        }\r
+        QAR{\r
+            one{"riyal du Qatar"}\r
+            other{"riyals du Qatar"}\r
+        }\r
         SAR{\r
             one{"rial saoudien"}\r
             other{"rials saoudiens"}\r
         }\r
+        SRD{\r
+            one{"dollar du Suriname"}\r
+            other{"dollars du Suriname"}\r
+        }\r
         TOP{\r
             one{"pa’anga"}\r
             other{"pa’angas"}\r
         }\r
+        VUV{\r
+            one{"vatu"}\r
+            other{"vatus"}\r
+        }\r
+        WST{\r
+            one{"tala"}\r
+            other{"talas"}\r
+        }\r
         XXX{\r
             one{"(devise inconnue)"}\r
             other{"(devise inconnue)"}\r
@@ -199,5 +270,5 @@ fr_CA{
             other{"rials yéménites"}\r
         }\r
     }\r
-    Version{"2.1.38.73"}\r
+    Version{"2.1.43.65"}\r
 }\r
index 749bfb244c5bbfc5c19d9884b8956bd8a2c3e32b..4eaff78f6c23f35083fb85d70c4566070c5bf558 100644 (file)
@@ -263,7 +263,7 @@ fur{
             "codiç di verifiche de monede",\r
         }\r
         XXX{\r
-            "XXX",\r
+            "¤",\r
             "Monede no valide o no cognossude",\r
         }\r
         ZAR{\r
index 876bad7b48307eff78a3a44e55ffe17af77716e0..faf3c332979a6ed5aaad07a25bc1609e8471f3b4 100644 (file)
@@ -1020,6 +1020,10 @@ fy{
         }\r
         VEF{\r
             "VEF",\r
+            "Fenezolaanske bolivar (2008–2018)",\r
+        }\r
+        VES{\r
+            "VES",\r
             "Fenezolaanske bolivar",\r
         }\r
         VND{\r
@@ -1119,7 +1123,7 @@ fy{
             "ADB-rekkenienheid",\r
         }\r
         XXX{\r
-            "XXX",\r
+            "¤",\r
             "Unbekende muntienheid",\r
         }\r
         YDD{\r
@@ -2201,6 +2205,10 @@ fy{
             other{"Fenezolaanske bolivar (1871–2008)"}\r
         }\r
         VEF{\r
+            one{"Fenezolaanske bolivar (2008–2018)"}\r
+            other{"Fenezolaanske bolivar (2008–2018)"}\r
+        }\r
+        VES{\r
             one{"Fenezolaanske bolivar"}\r
             other{"Fenezolaanske bolivar"}\r
         }\r
@@ -2369,5 +2377,5 @@ fy{
         one{"{0} {1}"}\r
         other{"{0} {1}"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.41.34"}\r
 }\r
index fcd7a3d614a674d057256960f8367ac00118e264..d463d86706ebe51e46d05ffdffcf0b0fc9609910 100644 (file)
@@ -1000,6 +1000,10 @@ ga{
         }\r
         VEF{\r
             "VEF",\r
+            "Bolívar Veiniséala (2008–2018)",\r
+        }\r
+        VES{\r
+            "VES",\r
             "Bolívar Veiniséala",\r
         }\r
         VND{\r
@@ -2932,6 +2936,13 @@ ga{
             two{"bholívar Veiniséala (1871–2008)"}\r
         }\r
         VEF{\r
+            few{"bholívar Veiniséala (2008–2018)"}\r
+            many{"mbolívar Veiniséala (2008–2018)"}\r
+            one{"bholívar Veiniséala (2008–2018)"}\r
+            other{"bolívar Veiniséala (2008–2018)"}\r
+            two{"bholívar Veiniséala (2008–2018)"}\r
+        }\r
+        VES{\r
             few{"bholívar Veiniséala"}\r
             many{"mbolívar Veiniséala"}\r
             one{"bholívar Veiniséala"}\r
@@ -3177,5 +3188,5 @@ ga{
         other{"{0} {1}"}\r
         two{"{0} {1}"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.91"}\r
 }\r
index b924b2ffb6c5d53cbbde3b70d47bc971721b5f4f..baae2332768e133cdba22b00f6145189f0b94809 100644 (file)
@@ -262,6 +262,10 @@ gd{
             "CLP",\r
             "Peso Sileach",\r
         }\r
+        CNH{\r
+            "CNH",\r
+            "Yuan Sìneach (far-thìreach)",\r
+        }\r
         CNX{\r
             "CNX",\r
             "Dolar an t-sluagh-bhanca Shìnich",\r
@@ -1040,6 +1044,10 @@ gd{
         }\r
         VEF{\r
             "VEF",\r
+            "Bolívar Bheinisealach (2008–2018)",\r
+        }\r
+        VES{\r
+            "VES",\r
             "Bolívar Bheinisealach",\r
         }\r
         VND{\r
@@ -1697,6 +1705,12 @@ gd{
             other{"peso Sileach"}\r
             two{"pheso Sileach"}\r
         }\r
+        CNH{\r
+            few{"yuan Sìneach (far-thìreach)"}\r
+            one{"yuan Sìneach (far-thìreach)"}\r
+            other{"yuan Sìneach (far-thìreach)"}\r
+            two{"yuan Sìneach (far-thìreach)"}\r
+        }\r
         CNX{\r
             few{"dolaran an t-sluagh-bhanca Shìnich"}\r
             one{"dolar an t-sluagh-bhanca Shìnich"}\r
@@ -2862,6 +2876,12 @@ gd{
             two{"bholívar Bheinisealach (1871–2008)"}\r
         }\r
         VEF{\r
+            few{"bolívar Bheinisealach (2008–2018)"}\r
+            one{"bholívar Bheinisealach (2008–2018)"}\r
+            other{"bolívar Bheinisealach (2008–2018)"}\r
+            two{"bholívar Bheinisealach (2008–2018)"}\r
+        }\r
+        VES{\r
             few{"bolívar Bheinisealach"}\r
             one{"bholívar Bheinisealach"}\r
             other{"bolívar Bheinisealach"}\r
@@ -3114,5 +3134,5 @@ gd{
         other{"{0} {1}"}\r
         two{"{0} {1}"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.91"}\r
 }\r
index ed99de1daf5cfdc1e52361a4c21719e7d7f149c1..29bd6384d2431076bb71e759ce0e36c568ab7b4c 100644 (file)
@@ -293,7 +293,7 @@ gl{
         }\r
         GIP{\r
             "GIP",\r
-            "libra xibraltareña",\r
+            "Libra xibraltareña",\r
         }\r
         GMD{\r
             "GMD",\r
@@ -777,6 +777,10 @@ gl{
         }\r
         VEF{\r
             "VEF",\r
+            "Bolívar venezolano (2008–2018)",\r
+        }\r
+        VES{\r
+            "VES",\r
             "Bolívar venezolano",\r
         }\r
         VND{\r
@@ -824,7 +828,7 @@ gl{
             "Platino",\r
         }\r
         XXX{\r
-            "XXX",\r
+            "¤",\r
             "Moeda descoñecida",\r
         }\r
         YER{\r
@@ -1630,6 +1634,10 @@ gl{
             other{"bolívares venezolanos (1871–2008)"}\r
         }\r
         VEF{\r
+            one{"bolívar venezolano (2008–2018)"}\r
+            other{"bolívares venezolanos (2008–2018)"}\r
+        }\r
+        VES{\r
             one{"bolívar venezolano"}\r
             other{"bolívares venezolanos"}\r
         }\r
@@ -1682,5 +1690,5 @@ gl{
         one{"{0} {1}"}\r
         other{"{0} {1}"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.94"}\r
 }\r
index 8114b5666106a7754d145603d12566ffa4b805fc..0814024a33a345cb4ce39a46ae620c4a5d0df834 100644 (file)
@@ -956,6 +956,10 @@ gsw{
         }\r
         VEF{\r
             "VEF",\r
+            "Bolivar (2008–2018)",\r
+        }\r
+        VES{\r
+            "VES",\r
             "Bolivar",\r
         }\r
         VND{\r
@@ -1043,7 +1047,7 @@ gsw{
             "Teschtwährig",\r
         }\r
         XXX{\r
-            "XXX",\r
+            "¤",\r
             "Unbekannti Währig",\r
         }\r
         YDD{\r
@@ -2017,6 +2021,10 @@ gsw{
             other{"Bolivar (1871–2008)"}\r
         }\r
         VEF{\r
+            one{"Bolivar (2008–2018)"}\r
+            other{"Bolivar (2008–2018)"}\r
+        }\r
+        VES{\r
             one{"Bolivar"}\r
             other{"Bolivar"}\r
         }\r
@@ -2153,5 +2161,5 @@ gsw{
         one{"{0} {1}"}\r
         other{"{0} {1}"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.41.34"}\r
 }\r
index c6ba285aaa9aac56b423416930629ed93404d625..4607ec3ad69fba1b746e2a9da097883b1d9fe448 100644 (file)
@@ -604,6 +604,10 @@ gu{
         }\r
         VEF{\r
             "VEF",\r
+            "વેનેઝુએલન બોલિવર (2008–2018)",\r
+        }\r
+        VES{\r
+            "VES",\r
             "વેનેઝુએલન બોલિવર",\r
         }\r
         VND{\r
@@ -635,7 +639,7 @@ gu{
             "[CFP] ફ્રેંક",\r
         }\r
         XXX{\r
-            "XXX",\r
+            "¤",\r
             "અજ્ઞાત ચલણ",\r
         }\r
         YER{\r
@@ -1353,6 +1357,10 @@ gu{
             other{"ઉઝ્બેકિસ્તાન સોમ"}\r
         }\r
         VEF{\r
+            one{"વેનેઝુએલન બોલિવર (2008–2018)"}\r
+            other{"વેનેઝુએલન બોલિવર (2008–2018)"}\r
+        }\r
+        VES{\r
             one{"વેનેઝુએલન બોલિવર"}\r
             other{"વેનેઝુએલન બોલિવર"}\r
         }\r
@@ -1405,5 +1413,5 @@ gu{
         one{"{0} {1}"}\r
         other{"{0} {1}"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.2"}\r
 }\r
index 327e8161c0f6346136b957442b7947581b0751ad..4cae229c9ed10291236a2b0dd04fab846e99d56c 100644 (file)
@@ -231,5 +231,5 @@ ha{
             "Dalar zimbabuwe",\r
         }\r
     }\r
-    Version{"2.1.39.11"}\r
+    Version{"2.1.43.2"}\r
 }\r
index acb7f3636dcdbe6ab27300cd093ef3d82b472ff6..c835f12e8bc7c5a66b7f68b0d92cf3a65c35e31b 100644 (file)
@@ -11,5 +11,5 @@ haw{
         one{"{0} {1}"}\r
         other{"{0} {1}"}\r
     }\r
-    Version{"2.1.38.69"}\r
+    Version{"2.1.43.94"}\r
 }\r
index 2407bb342c3866db3f8001268de5f469326b25a4..375438f2a348ec6b807636c49a25fddd00960be2 100644 (file)
@@ -812,6 +812,10 @@ he{
         }\r
         VEF{\r
             "VEF",\r
+            "בוליבר ונצואלי (2008–2018)",\r
+        }\r
+        VES{\r
+            "VES",\r
             "בוליבר ונצואלי",\r
         }\r
         VND{\r
@@ -871,7 +875,7 @@ he{
             "סימון למטרות בדיקה",\r
         }\r
         XXX{\r
-            "XXX",\r
+            "¤",\r
             "מטבע שאינו ידוע",\r
         }\r
         YDD{\r
@@ -1910,6 +1914,12 @@ he{
             two{"סום אוזבקי"}\r
         }\r
         VEF{\r
+            many{"בוליבר ונצואלי (2008–2018)"}\r
+            one{"בוליבר ונצואלי (2008–2018)"}\r
+            other{"בוליבר ונצואלי (2008–2018)"}\r
+            two{"בוליבר ונצואלי (2008–2018)"}\r
+        }\r
+        VES{\r
             many{"בוליבר ונצואלי"}\r
             one{"בוליבר ונצואלי"}\r
             other{"בוליבר ונצואלי"}\r
@@ -1988,5 +1998,5 @@ he{
         other{"{0} {1}"}\r
         two{"{0} {1}"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.94"}\r
 }\r
index e71abf608cf2612fa182f1ca030c4d50d2c0a553..4aebd0c87e9eaccfbc429dd282966c4ef10fd1ed 100644 (file)
@@ -596,7 +596,7 @@ hi{
         }\r
         STN{\r
             "STN",\r
-            "साà¤\93 à¤¤ोम और प्रिंसिपे डोबरा",\r
+            "साà¤\93 à¤\9fोम और प्रिंसिपे डोबरा",\r
         }\r
         SUR{\r
             "SUR",\r
@@ -688,6 +688,10 @@ hi{
         }\r
         VEF{\r
             "VEF",\r
+            "वेनेज़ुएला बोलिवर (2008–2018)",\r
+        }\r
+        VES{\r
+            "VES",\r
             "वेनेज़ुएला बोलिवर",\r
         }\r
         VND{\r
@@ -719,7 +723,7 @@ hi{
             "[CFP] फ़्रैंक",\r
         }\r
         XXX{\r
-            "XXX",\r
+            "¤",\r
             "अज्ञात मुद्रा",\r
         }\r
         YER{\r
@@ -1369,8 +1373,8 @@ hi{
             other{"साओ तोम और प्रिंसिपे डोबरा (1977–2017)"}\r
         }\r
         STN{\r
-            one{"साà¤\93 à¤¤ोम और प्रिंसिपे डोबरा"}\r
-            other{"साà¤\93 à¤¤ोम और प्रिंसिपे डोबरा"}\r
+            one{"साà¤\93 à¤\9fोम और प्रिंसिपे डोबरा"}\r
+            other{"साà¤\93 à¤\9fोम और प्रिंसिपे डोबरा"}\r
         }\r
         SYP{\r
             one{"सीरियाई पाउंड"}\r
@@ -1437,6 +1441,10 @@ hi{
             other{"उज़्बेकिस्तान सोम"}\r
         }\r
         VEF{\r
+            one{"वेनेज़ुएला बोलिवर (2008–2018)"}\r
+            other{"वेनेज़ुएला बोलिवर (2008–2018)"}\r
+        }\r
+        VES{\r
             one{"वेनेज़ुएला बोलिवर"}\r
             other{"वेनेज़ुएला बोलिवर"}\r
         }\r
@@ -1489,5 +1497,5 @@ hi{
         one{"{0} {1}"}\r
         other{"{0} {1}"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.50"}\r
 }\r
index ca9ee7b2628941fe4680336aa762e6704f8a1a3e..b95d75038493fbebbfdfa8647679c4c8a072233b 100644 (file)
@@ -684,7 +684,7 @@ hr{
         }\r
         MRO{\r
             "MRO",\r
-            "mauritanijska ouguja (1973–2017)",\r
+            "mauritanijska ouguja (1973. – 2017.)",\r
         }\r
         MRU{\r
             "MRU",\r
@@ -1044,6 +1044,10 @@ hr{
         }\r
         VEF{\r
             "VEF",\r
+            "venezuelanski bolivar (2008. – 2018.)",\r
+        }\r
+        VES{\r
+            "VES",\r
             "venezuelanski bolivar",\r
         }\r
         VND{\r
@@ -2151,9 +2155,9 @@ hr{
             other{"makaoških pataka"}\r
         }\r
         MRO{\r
-            few{"mauritanijske ouguje (1973–2017)"}\r
-            one{"mauritanijska ouguja (1973–2017)"}\r
-            other{"mauritanijskih ouguja (1973–2017)"}\r
+            few{"mauritanijske ouguje (1973. – 2017.)"}\r
+            one{"mauritanijska ouguja (1973. – 2017.)"}\r
+            other{"mauritanijskih ouguja (1973. – 2017.)"}\r
         }\r
         MRU{\r
             few{"mauritanijske ouguje"}\r
@@ -2601,6 +2605,11 @@ hr{
             other{"venezuelanskih bolivara (1871.–2008.)"}\r
         }\r
         VEF{\r
+            few{"venezuelanska bolivara (2008. – 2018.)"}\r
+            one{"venezuelanski bolivar (2008. – 2018.)"}\r
+            other{"venezuelanskih bolivara (2008. – 2018.)"}\r
+        }\r
+        VES{\r
             few{"venezuelanska bolivara"}\r
             one{"venezuelanski bolivar"}\r
             other{"venezuelanskih bolivara"}\r
@@ -2811,5 +2820,5 @@ hr{
         one{"{0} {1}"}\r
         other{"{0} {1}"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.50"}\r
 }\r
index cdaf4c4d0e879ae529aec4ce8530274b5a43170e..5ee3e00aafa5bd9eb6dba55f4f7191befcdaaf04 100644 (file)
@@ -700,6 +700,10 @@ hsb{
         }\r
         VEF{\r
             "VEF",\r
+            "venezuelski bolívar (2008–2018)",\r
+        }\r
+        VES{\r
+            "VES",\r
             "venezuelski bolívar",\r
         }\r
         VND{\r
@@ -731,7 +735,7 @@ hsb{
             "CFP-frank",\r
         }\r
         XXX{\r
-            "XXX",\r
+            "¤",\r
             "njeznata měna",\r
         }\r
         YER{\r
@@ -1796,6 +1800,12 @@ hsb{
             two{"uzbekskej sumaj"}\r
         }\r
         VEF{\r
+            few{"venezuelske bolívary (2008–2018)"}\r
+            one{"venezuelski bolívar (2008–2018)"}\r
+            other{"venezuelskich bolívarow (2008–2018)"}\r
+            two{"venezuelskej bolívaraj (2008–2018)"}\r
+        }\r
+        VES{\r
             few{"venezuelske bolívary"}\r
             one{"venezuelski bolívar"}\r
             other{"venezuelskich bolívarow"}\r
@@ -1874,5 +1884,5 @@ hsb{
         other{"{0} {1}"}\r
         two{"{0} {1}"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.41.34"}\r
 }\r
index 22b69d32ac13ce77dfa9bfdd49a3c803369b34b1..bd76bc4ae252fe6adf54b269f9c06741efc6e7d4 100644 (file)
@@ -356,7 +356,7 @@ hu{
         }\r
         GBP{\r
             "GBP",\r
-            "brit font",\r
+            "angol font",\r
         }\r
         GEK{\r
             "GEK",\r
@@ -972,6 +972,10 @@ hu{
         }\r
         VEF{\r
             "VEF",\r
+            "venezuelai bolivar (2008–2018)",\r
+        }\r
+        VES{\r
+            "VES",\r
             "venezuelai bolivar",\r
         }\r
         VND{\r
@@ -1059,7 +1063,7 @@ hu{
             "Tesztelési pénznemkód",\r
         }\r
         XXX{\r
-            "XXX",\r
+            "¤",\r
             "ismeretlen pénznem",\r
         }\r
         YDD{\r
@@ -1497,8 +1501,8 @@ hu{
             other{"falkland-szigeteki font"}\r
         }\r
         GBP{\r
-            one{"brit font"}\r
-            other{"brit font"}\r
+            one{"angol font"}\r
+            other{"angol font"}\r
         }\r
         GEL{\r
             one{"grúz lari"}\r
@@ -1949,6 +1953,10 @@ hu{
             other{"Venezuelai bolivar (1871–2008)"}\r
         }\r
         VEF{\r
+            one{"venezuelai bolivar (2008–2018)"}\r
+            other{"venezuelai bolivar (2008–2018)"}\r
+        }\r
+        VES{\r
             one{"venezuelai bolivar"}\r
             other{"venezuelai bolivar"}\r
         }\r
@@ -2037,5 +2045,5 @@ hu{
         one{"{0} {1}"}\r
         other{"{0} {1}"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.65"}\r
 }\r
index 620ca2e9c2bc46efd83501b5916bf06dffc38655..df513b2779a5c091e84050a027eaf3eb48b9d6d1 100644 (file)
@@ -240,7 +240,7 @@ hy{
         }\r
         HTG{\r
             "HTG",\r
-            "հաիթյան գուրդ",\r
+            "Õ°Õ¡ÕµÕ«Õ©ÕµÕ¡Õ¶ Õ£Õ¸Ö\82Ö\80Õ¤",\r
         }\r
         HUF{\r
             "HUF",\r
@@ -600,6 +600,10 @@ hy{
         }\r
         VEF{\r
             "VEF",\r
+            "վենեսուելական բոլիվար (2008–2018)",\r
+        }\r
+        VES{\r
+            "VES",\r
             "վենեսուելական բոլիվար",\r
         }\r
         VND{\r
@@ -631,7 +635,7 @@ hy{
             "ԿՊՖ ֆրանկ",\r
         }\r
         XXX{\r
-            "XXX",\r
+            "¤",\r
             "անհայտ արժույթ",\r
         }\r
         YER{\r
@@ -989,8 +993,8 @@ hy{
             other{"խորվաթական կունա"}\r
         }\r
         HTG{\r
-            one{"հաիթյան գուրդ"}\r
-            other{"հաիթյան գուրդ"}\r
+            one{"Õ°Õ¡ÕµÕ«Õ©ÕµÕ¡Õ¶ Õ£Õ¸Ö\82Ö\80Õ¤"}\r
+            other{"Õ°Õ¡ÕµÕ«Õ©ÕµÕ¡Õ¶ Õ£Õ¸Ö\82Ö\80Õ¤"}\r
         }\r
         HUF{\r
             one{"հունգարական ֆորինտ"}\r
@@ -1349,6 +1353,10 @@ hy{
             other{"ուզբեկական սոմ"}\r
         }\r
         VEF{\r
+            one{"վենեսուելական բոլիվար (2008–2018)"}\r
+            other{"վենեսուելական բոլիվար (2008–2018)"}\r
+        }\r
+        VES{\r
             one{"վենեսուելական բոլիվար"}\r
             other{"վենեսուելական բոլիվար"}\r
         }\r
@@ -1405,5 +1413,5 @@ hy{
         one{"{0} {1}"}\r
         other{"{0} {1}"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.50"}\r
 }\r
diff --git a/source/data/curr/ia.txt b/source/data/curr/ia.txt
new file mode 100644 (file)
index 0000000..068adcd
--- /dev/null
@@ -0,0 +1,482 @@
+// © 2016 and later: Unicode, Inc. and others.\r
+// License & terms of use: http://www.unicode.org/copyright.html#License\r
+ia{\r
+    Currencies{\r
+        ALL{\r
+            "ALL",\r
+            "lek albanese",\r
+        }\r
+        ANG{\r
+            "ANG",\r
+            "florino antillan",\r
+        }\r
+        AOA{\r
+            "AOA",\r
+            "kwanza angolan",\r
+        }\r
+        ARS{\r
+            "ARS",\r
+            "peso argentin",\r
+        }\r
+        AUD{\r
+            "A$",\r
+            "dollar australian",\r
+        }\r
+        AWG{\r
+            "AWG",\r
+            "florino aruban",\r
+        }\r
+        BAM{\r
+            "BAM",\r
+            "marco convertibile de Bosnia-Herzegovina",\r
+        }\r
+        BBD{\r
+            "BBD",\r
+            "dollar barbadian",\r
+        }\r
+        BGN{\r
+            "BGN",\r
+            "lev bulgare",\r
+        }\r
+        BIF{\r
+            "BIF",\r
+            "franco burundese",\r
+        }\r
+        BMD{\r
+            "BMD",\r
+            "dollar bermudan",\r
+        }\r
+        BOB{\r
+            "BOB",\r
+            "boliviano bolivian",\r
+        }\r
+        BRL{\r
+            "R$",\r
+            "real brasilian",\r
+        }\r
+        BSD{\r
+            "BSD",\r
+            "dollar bahamian",\r
+        }\r
+        BWP{\r
+            "BWP",\r
+            "pula botswanese",\r
+        }\r
+        BYN{\r
+            "BYN",\r
+            "rublo bielorusse",\r
+        }\r
+        BZD{\r
+            "BZD",\r
+            "dollar belizan",\r
+        }\r
+        CAD{\r
+            "CA$",\r
+            "dollar canadian",\r
+        }\r
+        CDF{\r
+            "CDF",\r
+            "franco congolese",\r
+        }\r
+        CHF{\r
+            "CHF",\r
+            "franco suisse",\r
+        }\r
+        CLP{\r
+            "CLP",\r
+            "peso chilen",\r
+        }\r
+        CNY{\r
+            "CN¥",\r
+            "yuan chinese",\r
+        }\r
+        COP{\r
+            "COP",\r
+            "peso colombian",\r
+        }\r
+        CRC{\r
+            "CRC",\r
+            "colon costarican",\r
+        }\r
+        CUC{\r
+            "CUC",\r
+            "peso cuban convertibile",\r
+        }\r
+        CUP{\r
+            "CUP",\r
+            "peso cuban",\r
+        }\r
+        CVE{\r
+            "CVE",\r
+            "escudo capoverdian",\r
+        }\r
+        CZK{\r
+            "CZK",\r
+            "corona chec",\r
+        }\r
+        DEM{\r
+            "DEM",\r
+            "Marco geman",\r
+        }\r
+        DJF{\r
+            "DJF",\r
+            "franco djibutian",\r
+        }\r
+        DKK{\r
+            "DKK",\r
+            "corona danese",\r
+        }\r
+        DOP{\r
+            "DOP",\r
+            "peso dominican",\r
+        }\r
+        DZD{\r
+            "DZD",\r
+            "dinar algerin",\r
+        }\r
+        EEK{\r
+            "EEK",\r
+            "Corona estonian",\r
+        }\r
+        EGP{\r
+            "EGP",\r
+            "libra egyptie",\r
+        }\r
+        ERN{\r
+            "ERN",\r
+            "nakfa eritree",\r
+        }\r
+        ETB{\r
+            "ETB",\r
+            "birr ethiope",\r
+        }\r
+        EUR{\r
+            "€",\r
+            "euro",\r
+        }\r
+        FIM{\r
+            "FIM",\r
+            "Marco finnese",\r
+        }\r
+        FJD{\r
+            "FJD",\r
+            "dollar fijian",\r
+        }\r
+        FKP{\r
+            "FKP",\r
+            "libra falklandese",\r
+        }\r
+        FRF{\r
+            "FRF",\r
+            "Franco francese",\r
+        }\r
+        GBP{\r
+            "£",\r
+            "libra sterling",\r
+        }\r
+        GHS{\r
+            "GHS",\r
+            "cedi ghanese",\r
+        }\r
+        GIP{\r
+            "GIP",\r
+            "libra de Gibraltar",\r
+        }\r
+        GMD{\r
+            "GMD",\r
+            "dalasi gambian",\r
+        }\r
+        GNF{\r
+            "GNF",\r
+            "franco guinean",\r
+        }\r
+        GTQ{\r
+            "GTQ",\r
+            "quetzal guatemaltec",\r
+        }\r
+        GYD{\r
+            "GYD",\r
+            "dollar guyanese",\r
+        }\r
+        HNL{\r
+            "HNL",\r
+            "lempira hondurese",\r
+        }\r
+        HRK{\r
+            "HRK",\r
+            "kuna croate",\r
+        }\r
+        HTG{\r
+            "HTG",\r
+            "gourde haitian",\r
+        }\r
+        HUF{\r
+            "HUF",\r
+            "forint hungare",\r
+        }\r
+        IEP{\r
+            "IEP",\r
+            "Libra irlandese",\r
+        }\r
+        INR{\r
+            "₹",\r
+            "rupia indian",\r
+        }\r
+        ISK{\r
+            "ISK",\r
+            "corona islandese",\r
+        }\r
+        JMD{\r
+            "JMD",\r
+            "dollar jamaican",\r
+        }\r
+        JPY{\r
+            "JP¥",\r
+            "yen japonese",\r
+        }\r
+        KES{\r
+            "KES",\r
+            "shilling kenyan",\r
+        }\r
+        KMF{\r
+            "KMF",\r
+            "franco comorian",\r
+        }\r
+        KYD{\r
+            "KYD",\r
+            "dollar del Insulas Caiman",\r
+        }\r
+        LRD{\r
+            "LRD",\r
+            "dollar liberian",\r
+        }\r
+        LYD{\r
+            "LYD",\r
+            "dinar libyc",\r
+        }\r
+        MAD{\r
+            "MAD",\r
+            "dirham marocchin",\r
+        }\r
+        MDL{\r
+            "MDL",\r
+            "leu moldave",\r
+        }\r
+        MGA{\r
+            "MGA",\r
+            "ariary malgache",\r
+        }\r
+        MKD{\r
+            "MKD",\r
+            "denar macedonie",\r
+        }\r
+        MRO{\r
+            "MRO",\r
+            "ouguiya mauritan (1973–2017)",\r
+        }\r
+        MRU{\r
+            "MRU",\r
+            "ouguiya mauritan",\r
+        }\r
+        MUR{\r
+            "MUR",\r
+            "rupia mauritian",\r
+        }\r
+        MWK{\r
+            "MWK",\r
+            "kwacha malawian",\r
+        }\r
+        MXN{\r
+            "MX$",\r
+            "peso mexican",\r
+        }\r
+        MZN{\r
+            "MZN",\r
+            "metical mozambican",\r
+        }\r
+        NAD{\r
+            "NAD",\r
+            "dollar namibian",\r
+        }\r
+        NGN{\r
+            "NGN",\r
+            "naira nigerian",\r
+        }\r
+        NIO{\r
+            "NIO",\r
+            "cordoba nicaraguan",\r
+        }\r
+        NLG{\r
+            "ƒ",\r
+            "Florino nederlandese",\r
+        }\r
+        NOK{\r
+            "NOK",\r
+            "corona norvegian",\r
+        }\r
+        NZD{\r
+            "NZ$",\r
+            "dollar neozelandese",\r
+        }\r
+        PAB{\r
+            "PAB",\r
+            "balboa panamen",\r
+        }\r
+        PEN{\r
+            "PEN",\r
+            "sol peruvian",\r
+        }\r
+        PGK{\r
+            "PGK",\r
+            "kina papuan",\r
+        }\r
+        PLN{\r
+            "PLN",\r
+            "zloty polonese",\r
+        }\r
+        PYG{\r
+            "PYG",\r
+            "guarani paraguayan",\r
+        }\r
+        RON{\r
+            "RON",\r
+            "leu romanian",\r
+        }\r
+        RSD{\r
+            "RSD",\r
+            "dinar serbe",\r
+        }\r
+        RUB{\r
+            "₽",\r
+            "rublo russe",\r
+        }\r
+        RWF{\r
+            "RWF",\r
+            "franco ruandese",\r
+        }\r
+        SBD{\r
+            "SBD",\r
+            "dollar del insulas Salomon",\r
+        }\r
+        SCR{\r
+            "SCR",\r
+            "rupia seychellese",\r
+        }\r
+        SDG{\r
+            "SDG",\r
+            "libra sudanese",\r
+        }\r
+        SEK{\r
+            "SEK",\r
+            "corona svedese",\r
+        }\r
+        SHP{\r
+            "SHP",\r
+            "libra de St. Helena",\r
+        }\r
+        SLL{\r
+            "SLL",\r
+            "leone sierraleonese",\r
+        }\r
+        SOS{\r
+            "SOS",\r
+            "shilling somali",\r
+        }\r
+        SRD{\r
+            "SRD",\r
+            "dollar surinamese",\r
+        }\r
+        SSP{\r
+            "SSP",\r
+            "libra sud-sudanese",\r
+        }\r
+        STN{\r
+            "STN",\r
+            "dobra de São Tomé e Príncipe",\r
+        }\r
+        SZL{\r
+            "SZL",\r
+            "lilangeni swazilandese",\r
+        }\r
+        TND{\r
+            "TND",\r
+            "dinar tunisian",\r
+        }\r
+        TOP{\r
+            "TOP",\r
+            "paʻanga tongan",\r
+        }\r
+        TTD{\r
+            "TTD",\r
+            "dollar de Trinidad e Tobago",\r
+        }\r
+        TZS{\r
+            "TZS",\r
+            "shilling tanzanian",\r
+        }\r
+        UAH{\r
+            "UAH",\r
+            "hryvnia ukrainian",\r
+        }\r
+        UGX{\r
+            "UGX",\r
+            "shilling ugandese",\r
+        }\r
+        USD{\r
+            "US$",\r
+            "dollar statounitese",\r
+        }\r
+        UYU{\r
+            "UYU",\r
+            "peso uruguayan",\r
+        }\r
+        VEF{\r
+            "VEF",\r
+            "bolivar venezuelan (2008–2018)",\r
+        }\r
+        VES{\r
+            "VES",\r
+            "bolivar venezuelan",\r
+        }\r
+        VUV{\r
+            "VUV",\r
+            "vatu vanuatuan",\r
+        }\r
+        WST{\r
+            "WST",\r
+            "tala samoan",\r
+        }\r
+        XAF{\r
+            "FCFA",\r
+            "franco CFA de Africa Central",\r
+        }\r
+        XCD{\r
+            "EC$",\r
+            "dollar del Caribes Oriental",\r
+        }\r
+        XOF{\r
+            "CFA",\r
+            "franco CFA de Africa Occidental",\r
+        }\r
+        XPF{\r
+            "CFPF",\r
+            "franco CFP",\r
+        }\r
+        XXX{\r
+            "¤",\r
+            "moneta incognite",\r
+        }\r
+        ZAR{\r
+            "ZAR",\r
+            "rand sudafrican",\r
+        }\r
+        ZMW{\r
+            "ZMW",\r
+            "kwacha zambian",\r
+        }\r
+    }\r
+    Currencies%narrow{\r
+        RUB{"₽"}\r
+    }\r
+    Version{"2.1.44.15"}\r
+}\r
index 6eef626d41cc97bf6ccd92a90c534d8e76308a5a..332fc80b8b1a46162329458d3b77a1366726c9f1 100644 (file)
@@ -1036,6 +1036,10 @@ id{
         }\r
         VEF{\r
             "VEF",\r
+            "Bolivar Venezuela (2008–2018)",\r
+        }\r
+        VES{\r
+            "VES",\r
             "Bolivar Venezuela",\r
         }\r
         VND{\r
@@ -1862,6 +1866,9 @@ id{
             other{"Bolivar Venezuela (1871–2008)"}\r
         }\r
         VEF{\r
+            other{"Bolivar Venezuela (2008–2018)"}\r
+        }\r
+        VES{\r
             other{"Bolivar Venezuela"}\r
         }\r
         VND{\r
@@ -1928,5 +1935,5 @@ id{
     CurrencyUnitPatterns{\r
         other{"{0} {1}"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.20"}\r
 }\r
index 3585802fe95ebbad682cb92f1878dd8b5fda5c59..cebb84dfb91877601724721ee7948578d522cfdc 100644 (file)
@@ -14,5 +14,5 @@ ig{
     CurrencyUnitPatterns{\r
         other{"{0} {1}"}\r
     }\r
-    Version{"2.1.38.69"}\r
+    Version{"2.1.44.88"}\r
 }\r
index d09c9349a7c77af14e423147ab83d6b9147d406b..53ece25e011cf985c8a14fa24adbe1db88305ea0 100644 (file)
@@ -7,7 +7,7 @@ ii{
             "CNY",\r
         }\r
         XXX{\r
-            "XXX",\r
+            "¤",\r
             "ꅉꀋꐚꌠꌋꆀꎆꃀꀋꈁꀐꌠ",\r
         }\r
     }\r
index 885a93476f86dbf506390e80aaebb8da52f1f7fa..36b6b577b5a9f3664455c423f031296ea4d528e1 100644 (file)
@@ -824,6 +824,10 @@ is{
         }\r
         VEF{\r
             "VEF",\r
+            "venesúelskur bólívari (2008–2018)",\r
+        }\r
+        VES{\r
+            "VES",\r
             "venesúelskur bólívari",\r
         }\r
         VND{\r
@@ -867,7 +871,7 @@ is{
             "pólinesískur franki",\r
         }\r
         XXX{\r
-            "XXX",\r
+            "¤",\r
             "óþekktur gjaldmiðill",\r
         }\r
         YDD{\r
@@ -1617,6 +1621,10 @@ is{
             other{"úsbeksk súm"}\r
         }\r
         VEF{\r
+            one{"venesúelskur bólívari (2008–2018)"}\r
+            other{"venesúelskir bólívarar (2008–2018)"}\r
+        }\r
+        VES{\r
             one{"venesúelskur bólívari"}\r
             other{"venesúelskir bólívarar"}\r
         }\r
@@ -1669,5 +1677,5 @@ is{
         one{"{0} {1}"}\r
         other{"{0} {1}"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.91"}\r
 }\r
index 5228a2afcd24566ab540337198bea08c2d6c8b20..2fb01d2fecab551c9f81a600c057923df7295a5d 100644 (file)
@@ -837,7 +837,7 @@ it{
         }\r
         STN{\r
             "STN",\r
-            "dobra di Sao Tomé e Principe",\r
+            "dobra di Sao Tomé e Príncipe",\r
         }\r
         SUR{\r
             "SUR",\r
@@ -957,6 +957,10 @@ it{
         }\r
         VEF{\r
             "VEF",\r
+            "bolívar venezuelano (2008–2018)",\r
+        }\r
+        VES{\r
+            "VES",\r
             "bolívar venezuelano",\r
         }\r
         VND{\r
@@ -1040,7 +1044,7 @@ it{
             "codice di verifica della valuta",\r
         }\r
         XXX{\r
-            "XXX",\r
+            "¤",\r
             "valuta sconosciuta",\r
         }\r
         YDD{\r
@@ -1738,8 +1742,8 @@ it{
             other{"dobra di Sao Tomé e Principe (1977–2017)"}\r
         }\r
         STN{\r
-            one{"dobra di Sao Tomé e Principe"}\r
-            other{"dobra di Sao Tomé e Principe"}\r
+            one{"dobra di Sao Tomé e Príncipe"}\r
+            other{"dobra di Sao Tomé e Príncipe"}\r
         }\r
         SYP{\r
             one{"lira siriana"}\r
@@ -1814,6 +1818,10 @@ it{
             other{"bolivares venezuelani (1871–2008)"}\r
         }\r
         VEF{\r
+            one{"bolívar venezuelano (2008–2018)"}\r
+            other{"bolívares venezuelani (2008–2018)"}\r
+        }\r
+        VES{\r
             one{"bolívar venezuelano"}\r
             other{"bolívares venezuelani"}\r
         }\r
@@ -1870,5 +1878,5 @@ it{
         one{"{0} {1}"}\r
         other{"{0} {1}"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.86"}\r
 }\r
index ad8715276f694df20548fbe60bf527dca0c69c2d..a8d5491603e1cca34ad72384ae1e09407cf7afd6 100644 (file)
@@ -1044,6 +1044,10 @@ ja{
         }\r
         VEF{\r
             "VEF",\r
+            "ベネズエラ ボリバル (2008–2018)",\r
+        }\r
+        VES{\r
+            "VES",\r
             "ベネズエラ ボリバル",\r
         }\r
         VND{\r
@@ -2090,6 +2094,9 @@ ja{
             other{"ベネズエラ ボリバル (1871–2008)"}\r
         }\r
         VEF{\r
+            other{"ベネズエラ ボリバル (2008–2018)"}\r
+        }\r
+        VES{\r
             other{"ベネズエラ ボリバル"}\r
         }\r
         VND{\r
@@ -2216,5 +2223,5 @@ ja{
     CurrencyUnitPatterns{\r
         other{"{0}{1}"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.91"}\r
 }\r
index d9d031ad293ce2fdadf9aa581f54623795570012..7d2f981ad496ee86039e9d52b39835921ac410d0 100644 (file)
@@ -19,7 +19,7 @@ jgo{
             "Fɛlâŋ",\r
         }\r
         XXX{\r
-            "XXX",\r
+            "¤",\r
             "ntɛ-ŋkáp yi pɛ́ ká kɛ́ jínɛ",\r
         }\r
     }\r
diff --git a/source/data/curr/jv.txt b/source/data/curr/jv.txt
new file mode 100644 (file)
index 0000000..52d3e3b
--- /dev/null
@@ -0,0 +1,1217 @@
+// © 2016 and later: Unicode, Inc. and others.\r
+// License & terms of use: http://www.unicode.org/copyright.html#License\r
+jv{\r
+    Currencies{\r
+        AED{\r
+            "AED",\r
+            "Dirham Uni Emirat Arab",\r
+        }\r
+        AFN{\r
+            "AFN",\r
+            "Afghani Afganistan",\r
+        }\r
+        ALL{\r
+            "ALL",\r
+            "Lek Albania",\r
+        }\r
+        AMD{\r
+            "AMD",\r
+            "Dram Armenia",\r
+        }\r
+        ANG{\r
+            "ANG",\r
+            "Guilder Antilla Walanda",\r
+        }\r
+        AOA{\r
+            "AOA",\r
+            "Kwanza Angola",\r
+        }\r
+        ARS{\r
+            "ARS",\r
+            "Peso Argentina",\r
+        }\r
+        AUD{\r
+            "A$",\r
+            "Dolar Australia",\r
+        }\r
+        AWG{\r
+            "AWG",\r
+            "Florin Aruban",\r
+        }\r
+        AZN{\r
+            "AZN",\r
+            "Manat Azerbaijan",\r
+        }\r
+        BAM{\r
+            "BAM",\r
+            "Mark Konvertibel Bosnia-Herzegovina",\r
+        }\r
+        BBD{\r
+            "BBD",\r
+            "Dolar Barbadian",\r
+        }\r
+        BDT{\r
+            "BDT",\r
+            "Taka Bangladesh",\r
+        }\r
+        BGN{\r
+            "BGN",\r
+            "Lev Bulgaria",\r
+        }\r
+        BHD{\r
+            "BHD",\r
+            "Bahrain Dinar",\r
+        }\r
+        BIF{\r
+            "BIF",\r
+            "Franc Burundi",\r
+        }\r
+        BMD{\r
+            "BMD",\r
+            "Dolar Bermuda",\r
+        }\r
+        BND{\r
+            "BND",\r
+            "Dolar Brunai",\r
+        }\r
+        BOB{\r
+            "BOB",\r
+            "Boliviano Bolivia",\r
+        }\r
+        BRL{\r
+            "R$",\r
+            "Real Brasil",\r
+        }\r
+        BSD{\r
+            "BSD",\r
+            "Dolar Bahamian",\r
+        }\r
+        BTN{\r
+            "BTN",\r
+            "Ngultrum Bhutan",\r
+        }\r
+        BWP{\r
+            "BWP",\r
+            "Pula Botswana",\r
+        }\r
+        BYN{\r
+            "BYN",\r
+            "Ruble Belarusia",\r
+        }\r
+        BZD{\r
+            "BZD",\r
+            "Dolar Belise",\r
+        }\r
+        CAD{\r
+            "CA$",\r
+            "Dolar Kanada",\r
+        }\r
+        CDF{\r
+            "CDF",\r
+            "Franc Kongo",\r
+        }\r
+        CHF{\r
+            "CHF",\r
+            "Franc Swiss",\r
+        }\r
+        CLP{\r
+            "CLP",\r
+            "Peso Chili",\r
+        }\r
+        CNH{\r
+            "CNH",\r
+            "Yuan Cina (Jaban Rangkah)",\r
+        }\r
+        CNY{\r
+            "CN¥",\r
+            "Yuan Cina",\r
+        }\r
+        COP{\r
+            "COP",\r
+            "Peso Kolumbia",\r
+        }\r
+        CRC{\r
+            "CRC",\r
+            "Colon Kosta Rika",\r
+        }\r
+        CUC{\r
+            "CUC",\r
+            "Peso Konvertibel Kuba",\r
+        }\r
+        CUP{\r
+            "CUP",\r
+            "Peso Kuba",\r
+        }\r
+        CVE{\r
+            "CVE",\r
+            "Escudo Tanjung Verde",\r
+        }\r
+        CZK{\r
+            "CZK",\r
+            "Koruna Czech",\r
+        }\r
+        DJF{\r
+            "DJF",\r
+            "Franc Djibouti",\r
+        }\r
+        DKK{\r
+            "DKK",\r
+            "Krone Denmark",\r
+        }\r
+        DOP{\r
+            "DOP",\r
+            "Peso Dominika",\r
+        }\r
+        DZD{\r
+            "DZD",\r
+            "Dinar Algeria",\r
+        }\r
+        EGP{\r
+            "EGP",\r
+            "Pound Mesir",\r
+        }\r
+        ERN{\r
+            "ERN",\r
+            "Nakfa Eritrea",\r
+        }\r
+        ETB{\r
+            "ETB",\r
+            "Birr Ethiopia",\r
+        }\r
+        EUR{\r
+            "€",\r
+            "Euro",\r
+        }\r
+        FJD{\r
+            "FJD",\r
+            "Dolar Fiji",\r
+        }\r
+        FKP{\r
+            "FKP",\r
+            "Pound Kepuloan Falkland",\r
+        }\r
+        GBP{\r
+            "£",\r
+            "Pound Inggris",\r
+        }\r
+        GEL{\r
+            "GEL",\r
+            "Lari Georgia",\r
+        }\r
+        GHS{\r
+            "GHS",\r
+            "Cedi Ghana",\r
+        }\r
+        GIP{\r
+            "GIP",\r
+            "Pound Gibraltar",\r
+        }\r
+        GMD{\r
+            "GMD",\r
+            "Dalasi Gambia",\r
+        }\r
+        GNF{\r
+            "GNF",\r
+            "Franc Guinea",\r
+        }\r
+        GTQ{\r
+            "GTQ",\r
+            "Quetzal Guatemala",\r
+        }\r
+        GYD{\r
+            "GYD",\r
+            "Dolar Guyana",\r
+        }\r
+        HKD{\r
+            "HK$",\r
+            "Dolar Hong Kong",\r
+        }\r
+        HNL{\r
+            "HNL",\r
+            "Lempira Honduras",\r
+        }\r
+        HRK{\r
+            "HRK",\r
+            "Kuna Kroasia",\r
+        }\r
+        HTG{\r
+            "HTG",\r
+            "Gourde Haiti",\r
+        }\r
+        HUF{\r
+            "HUF",\r
+            "Forint Hungaria",\r
+        }\r
+        IDR{\r
+            "Rp",\r
+            "Rupiah Indonesia",\r
+        }\r
+        ILS{\r
+            "₪",\r
+            "Shekel Anyar Israel",\r
+        }\r
+        INR{\r
+            "₹",\r
+            "Rupee India",\r
+        }\r
+        IQD{\r
+            "IQD",\r
+            "Dinar Irak",\r
+        }\r
+        IRR{\r
+            "IRR",\r
+            "Rial Iran",\r
+        }\r
+        ISK{\r
+            "ISK",\r
+            "Krona Islandia",\r
+        }\r
+        JMD{\r
+            "JMD",\r
+            "Dolar Jamaika",\r
+        }\r
+        JOD{\r
+            "JOD",\r
+            "Dinar Yordania",\r
+        }\r
+        JPY{\r
+            "JP¥",\r
+            "Yen Jepang",\r
+        }\r
+        KES{\r
+            "KES",\r
+            "Shilling Kenya",\r
+        }\r
+        KGS{\r
+            "KGS",\r
+            "Som Kirgistan",\r
+        }\r
+        KHR{\r
+            "KHR",\r
+            "Riel Kamboja",\r
+        }\r
+        KMF{\r
+            "KMF",\r
+            "Franc Komoro",\r
+        }\r
+        KPW{\r
+            "KPW",\r
+            "Won Korea Lor",\r
+        }\r
+        KRW{\r
+            "₩",\r
+            "Won Korea Kidul",\r
+        }\r
+        KWD{\r
+            "KWD",\r
+            "Dinar Kuwait",\r
+        }\r
+        KYD{\r
+            "KYD",\r
+            "Dolar Kepuloan Caiman",\r
+        }\r
+        KZT{\r
+            "KZT",\r
+            "Tenge Kasakhstan",\r
+        }\r
+        LAK{\r
+            "LAK",\r
+            "Kip Laos",\r
+        }\r
+        LBP{\r
+            "LBP",\r
+            "Pound Libanon",\r
+        }\r
+        LKR{\r
+            "LKR",\r
+            "Rupee Sri Lanka",\r
+        }\r
+        LRD{\r
+            "LRD",\r
+            "Dolar Liberia",\r
+        }\r
+        LYD{\r
+            "LYD",\r
+            "Dinar Libya",\r
+        }\r
+        MAD{\r
+            "MAD",\r
+            "Dirham Maroko",\r
+        }\r
+        MDL{\r
+            "MDL",\r
+            "Leu Moldova",\r
+        }\r
+        MGA{\r
+            "MGA",\r
+            "Ariary Malagasi",\r
+        }\r
+        MKD{\r
+            "MKD",\r
+            "Denar Masedonia",\r
+        }\r
+        MMK{\r
+            "MMK",\r
+            "Kyat Myanmar",\r
+        }\r
+        MNT{\r
+            "MNT",\r
+            "Tugrik Mongol",\r
+        }\r
+        MOP{\r
+            "MOP",\r
+            "Pataca Macau",\r
+        }\r
+        MRO{\r
+            "MRO",\r
+            "Ouguiya Mauritania (1973 - 2017)",\r
+        }\r
+        MRU{\r
+            "MRU",\r
+            "Ouguiya Mauritania",\r
+        }\r
+        MUR{\r
+            "MUR",\r
+            "Rupee Mauritius",\r
+        }\r
+        MVR{\r
+            "MVR",\r
+            "Rufiyaa Maladewa",\r
+        }\r
+        MWK{\r
+            "MWK",\r
+            "Kwacha Malawi",\r
+        }\r
+        MXN{\r
+            "MX$",\r
+            "Peso Meksiko",\r
+        }\r
+        MYR{\r
+            "MYR",\r
+            "Ringgit Malaysia",\r
+        }\r
+        MZN{\r
+            "MZN",\r
+            "Metical Mosambik",\r
+        }\r
+        NAD{\r
+            "NAD",\r
+            "Dolar Namibia",\r
+        }\r
+        NGN{\r
+            "NGN",\r
+            "Naira Nigeria",\r
+        }\r
+        NIO{\r
+            "NIO",\r
+            "Cordoba Nikaragua",\r
+        }\r
+        NOK{\r
+            "NOK",\r
+            "Krone Norwegia",\r
+        }\r
+        NPR{\r
+            "NPR",\r
+            "Rupee Nepal",\r
+        }\r
+        NZD{\r
+            "NZ$",\r
+            "Dolar Selandia Anyar",\r
+        }\r
+        OMR{\r
+            "OMR",\r
+            "Rial Oman",\r
+        }\r
+        PAB{\r
+            "PAB",\r
+            "Balboa Panama",\r
+        }\r
+        PEN{\r
+            "PEN",\r
+            "Sol Peru",\r
+        }\r
+        PGK{\r
+            "PGK",\r
+            "Kina Papua Nugini",\r
+        }\r
+        PHP{\r
+            "PHP",\r
+            "Piso Filipina",\r
+        }\r
+        PKR{\r
+            "PKR",\r
+            "Rupee Pakistan",\r
+        }\r
+        PLN{\r
+            "PLN",\r
+            "Zloty Polandia",\r
+        }\r
+        PYG{\r
+            "PYG",\r
+            "Guarani Paraguay",\r
+        }\r
+        QAR{\r
+            "QAR",\r
+            "Rial Qatar",\r
+        }\r
+        RON{\r
+            "RON",\r
+            "Leu Rumania",\r
+        }\r
+        RSD{\r
+            "RSD",\r
+            "Dinar Serbia",\r
+        }\r
+        RUB{\r
+            "RUB",\r
+            "Rubel Rusia",\r
+        }\r
+        RWF{\r
+            "RWF",\r
+            "Franc Rwanda",\r
+        }\r
+        SAR{\r
+            "SAR",\r
+            "Riyal Saudi",\r
+        }\r
+        SBD{\r
+            "SBD",\r
+            "Dolar Kepuloan Solomon",\r
+        }\r
+        SCR{\r
+            "SCR",\r
+            "Rupee Seichelles",\r
+        }\r
+        SDG{\r
+            "SDG",\r
+            "Pound Sudan",\r
+        }\r
+        SEK{\r
+            "SEK",\r
+            "Krona Swedia",\r
+        }\r
+        SGD{\r
+            "SGD",\r
+            "Dolar Singapura",\r
+        }\r
+        SHP{\r
+            "SHP",\r
+            "Pound Santa Helena",\r
+        }\r
+        SLL{\r
+            "SLL",\r
+            "Leone Sierra Leone",\r
+        }\r
+        SOS{\r
+            "SOS",\r
+            "Shilling Somalia",\r
+        }\r
+        SRD{\r
+            "SRD",\r
+            "Dolar Suriname",\r
+        }\r
+        SSP{\r
+            "SSP",\r
+            "Pound Sudan Kidul",\r
+        }\r
+        STN{\r
+            "STN",\r
+            "Dobra Sao Tome lan Principe",\r
+        }\r
+        SYP{\r
+            "SYP",\r
+            "Pound Siria",\r
+        }\r
+        SZL{\r
+            "SZL",\r
+            "Lilangeni Swasi",\r
+        }\r
+        THB{\r
+            "THB",\r
+            "Baht Thai",\r
+        }\r
+        TJS{\r
+            "TJS",\r
+            "Somoni Tajikistan",\r
+        }\r
+        TMT{\r
+            "TMT",\r
+            "Manat Turmenistan",\r
+        }\r
+        TND{\r
+            "TND",\r
+            "Dinar Tunisia",\r
+        }\r
+        TOP{\r
+            "TOP",\r
+            "Paʻanga Tonga",\r
+        }\r
+        TRY{\r
+            "TRY",\r
+            "Lira Turki",\r
+        }\r
+        TTD{\r
+            "TTD",\r
+            "Dolar Trinidad lan Tobago",\r
+        }\r
+        TWD{\r
+            "NT$",\r
+            "Dolar Anyar Taiwan",\r
+        }\r
+        TZS{\r
+            "TZS",\r
+            "Shilling Tansania",\r
+        }\r
+        UAH{\r
+            "UAH",\r
+            "Hryvnia Ukrania",\r
+        }\r
+        UGX{\r
+            "UGX",\r
+            "Shilling Uganda",\r
+        }\r
+        USD{\r
+            "US$",\r
+            "Dolar Amerika Serikat",\r
+        }\r
+        UYU{\r
+            "UYU",\r
+            "Peso Uruguay",\r
+        }\r
+        UZS{\r
+            "UZS",\r
+            "Som Usbekistan",\r
+        }\r
+        VEF{\r
+            "VEF",\r
+            "Bolivar Venezuela (2008 - 2018)",\r
+        }\r
+        VES{\r
+            "VES",\r
+            "Bolivar Venezuela",\r
+        }\r
+        VND{\r
+            "₫",\r
+            "Dong Vietnam",\r
+        }\r
+        VUV{\r
+            "VUV",\r
+            "Vatu Vanuatu",\r
+        }\r
+        WST{\r
+            "WST",\r
+            "Tala Samoa",\r
+        }\r
+        XAF{\r
+            "FCFA",\r
+            "CFA Franc Afrika Tengah",\r
+        }\r
+        XCD{\r
+            "EC$",\r
+            "Dolar Karibia Wetan",\r
+        }\r
+        XOF{\r
+            "CFA",\r
+            "CFA Franc Afrika Kulon",\r
+        }\r
+        XPF{\r
+            "CFPF",\r
+            "Franc CFP",\r
+        }\r
+        XXX{\r
+            "¤",\r
+            "Dhuwit Ora Dikenali",\r
+        }\r
+        YER{\r
+            "YER",\r
+            "Rial Yaman",\r
+        }\r
+        ZAR{\r
+            "ZAR",\r
+            "Rand Afrika Kidul",\r
+        }\r
+        ZMW{\r
+            "ZMW",\r
+            "Kwacha Sambia",\r
+        }\r
+    }\r
+    Currencies%narrow{\r
+        AOA{"Kz"}\r
+        ARS{"$"}\r
+        AUD{"$"}\r
+        BAM{"KM"}\r
+        BBD{"$"}\r
+        BDT{"৳"}\r
+        BMD{"$"}\r
+        BND{"$"}\r
+        BOB{"Bs"}\r
+        BRL{"R$"}\r
+        BSD{"$"}\r
+        BWP{"P"}\r
+        BYN{"р."}\r
+        BZD{"$"}\r
+        CAD{"$"}\r
+        CLP{"$"}\r
+        CNY{"¥"}\r
+        COP{"$"}\r
+        CRC{"₡"}\r
+        CUC{"$"}\r
+        CUP{"$"}\r
+        CZK{"Kč"}\r
+        DKK{"kr"}\r
+        DOP{"$"}\r
+        EGP{"E£"}\r
+        EUR{"€"}\r
+        FJD{"$"}\r
+        FKP{"£"}\r
+        GBP{"£"}\r
+        GEL{"₾"}\r
+        GIP{"£"}\r
+        GNF{"FG"}\r
+        GTQ{"Q"}\r
+        GYD{"$"}\r
+        HKD{"$"}\r
+        HNL{"L"}\r
+        HRK{"kn"}\r
+        HUF{"Ft"}\r
+        IDR{"Rp"}\r
+        ILS{"₪"}\r
+        INR{"₹"}\r
+        ISK{"kr"}\r
+        JMD{"$"}\r
+        JPY{"¥"}\r
+        KHR{"៛"}\r
+        KMF{"CF"}\r
+        KPW{"₩"}\r
+        KRW{"₩"}\r
+        KYD{"$"}\r
+        KZT{"₸"}\r
+        LAK{"₭"}\r
+        LBP{"L£"}\r
+        LKR{"Rs"}\r
+        LRD{"$"}\r
+        MGA{"Ar"}\r
+        MMK{"K"}\r
+        MNT{"₮"}\r
+        MUR{"Rs"}\r
+        MXN{"$"}\r
+        MYR{"RM"}\r
+        NAD{"$"}\r
+        NGN{"₦"}\r
+        NIO{"C$"}\r
+        NOK{"kr"}\r
+        NPR{"Rs"}\r
+        NZD{"$"}\r
+        PHP{"₱"}\r
+        PKR{"Rs"}\r
+        PLN{"zł"}\r
+        PYG{"₲"}\r
+        RON{"lei"}\r
+        RUB{"₽"}\r
+        RWF{"RF"}\r
+        SBD{"$"}\r
+        SEK{"kr"}\r
+        SGD{"$"}\r
+        SHP{"£"}\r
+        SRD{"$"}\r
+        SSP{"£"}\r
+        STN{"Db"}\r
+        SYP{"£"}\r
+        THB{"฿"}\r
+        TOP{"T$"}\r
+        TRY{"₺"}\r
+        TTD{"$"}\r
+        TWD{"$"}\r
+        UAH{"₴"}\r
+        USD{"$"}\r
+        UYU{"$"}\r
+        VEF{"Bs"}\r
+        VND{"₫"}\r
+        XCD{"$"}\r
+        ZAR{"R"}\r
+        ZMW{"ZK"}\r
+    }\r
+    Currencies%variant{\r
+        TRY{"TL"}\r
+    }\r
+    CurrencyPlurals{\r
+        AED{\r
+            other{"Dirham Uni Emirat Arab"}\r
+        }\r
+        AFN{\r
+            other{"Afghani Afganistan"}\r
+        }\r
+        ALL{\r
+            other{"Lek Albania"}\r
+        }\r
+        AMD{\r
+            other{"Dram Armenia"}\r
+        }\r
+        ANG{\r
+            other{"Guilder Antilla Walanda"}\r
+        }\r
+        AOA{\r
+            other{"Kwanza Angola"}\r
+        }\r
+        ARS{\r
+            other{"Peso Argentina"}\r
+        }\r
+        AUD{\r
+            other{"Dolar Australia"}\r
+        }\r
+        AWG{\r
+            other{"Florin Aruban"}\r
+        }\r
+        AZN{\r
+            other{"Manat Azerbaijan"}\r
+        }\r
+        BAM{\r
+            other{"Mark Konvertibel Bosnia-Herzegovina"}\r
+        }\r
+        BBD{\r
+            other{"Dolar Barbadian"}\r
+        }\r
+        BDT{\r
+            other{"Taka Bangladesh"}\r
+        }\r
+        BGN{\r
+            other{"Lev Bulgaria"}\r
+        }\r
+        BHD{\r
+            other{"Bahrain Dinar"}\r
+        }\r
+        BIF{\r
+            other{"Franc Burundi"}\r
+        }\r
+        BMD{\r
+            other{"Dolar Bermuda"}\r
+        }\r
+        BND{\r
+            other{"Dolar Brunai"}\r
+        }\r
+        BOB{\r
+            other{"Boliviano Bolivia"}\r
+        }\r
+        BRL{\r
+            other{"Real Brasil"}\r
+        }\r
+        BSD{\r
+            other{"Dolar Bahamian"}\r
+        }\r
+        BTN{\r
+            other{"Ngultrum Bhutan"}\r
+        }\r
+        BWP{\r
+            other{"Pula Botswana"}\r
+        }\r
+        BYN{\r
+            other{"Ruble Belarusia"}\r
+        }\r
+        BZD{\r
+            other{"Dolar Belise"}\r
+        }\r
+        CAD{\r
+            other{"Dolar Kanada"}\r
+        }\r
+        CDF{\r
+            other{"Franc Kongo"}\r
+        }\r
+        CHF{\r
+            other{"Franc Swiss"}\r
+        }\r
+        CLP{\r
+            other{"Peso Chili"}\r
+        }\r
+        CNH{\r
+            other{"Yuan Cina (Jaban Rangkah)"}\r
+        }\r
+        CNY{\r
+            other{"Yuan Cina"}\r
+        }\r
+        COP{\r
+            other{"Peso Kolumbia"}\r
+        }\r
+        CRC{\r
+            other{"Colon Kosta Rika"}\r
+        }\r
+        CUC{\r
+            other{"Peso Konvertibel Kuba"}\r
+        }\r
+        CUP{\r
+            other{"Peso Kuba"}\r
+        }\r
+        CVE{\r
+            other{"Escudo Tanjung Verde"}\r
+        }\r
+        CZK{\r
+            other{"Koruna Czech"}\r
+        }\r
+        DJF{\r
+            other{"Franc Djibouti"}\r
+        }\r
+        DKK{\r
+            other{"Krone Denmark"}\r
+        }\r
+        DOP{\r
+            other{"Peso Dominika"}\r
+        }\r
+        DZD{\r
+            other{"Dinar Algeria"}\r
+        }\r
+        EGP{\r
+            other{"Pound Mesir"}\r
+        }\r
+        ERN{\r
+            other{"Nakfa Eritrea"}\r
+        }\r
+        ETB{\r
+            other{"Birr Ethiopia"}\r
+        }\r
+        EUR{\r
+            other{"Euro"}\r
+        }\r
+        FJD{\r
+            other{"Dolar Fiji"}\r
+        }\r
+        FKP{\r
+            other{"Pound Kepuloan Falkland"}\r
+        }\r
+        GBP{\r
+            other{"Pound Inggris"}\r
+        }\r
+        GEL{\r
+            other{"Lari Georgia"}\r
+        }\r
+        GHS{\r
+            other{"Cedi Ghana"}\r
+        }\r
+        GIP{\r
+            other{"Pound Gibraltar"}\r
+        }\r
+        GMD{\r
+            other{"Dalasi Gambia"}\r
+        }\r
+        GNF{\r
+            other{"Franc Guinea"}\r
+        }\r
+        GTQ{\r
+            other{"Quetzal Guatemala"}\r
+        }\r
+        GYD{\r
+            other{"Dolar Guyana"}\r
+        }\r
+        HKD{\r
+            other{"Dolar Hong Kong"}\r
+        }\r
+        HNL{\r
+            other{"Lempira Honduras"}\r
+        }\r
+        HRK{\r
+            other{"Kuna Kroasia"}\r
+        }\r
+        HTG{\r
+            other{"Gourde Haiti"}\r
+        }\r
+        HUF{\r
+            other{"Forint Hungaria"}\r
+        }\r
+        IDR{\r
+            other{"Rupiah Indonesia"}\r
+        }\r
+        ILS{\r
+            other{"Shekel Anyar Israel"}\r
+        }\r
+        INR{\r
+            other{"Rupee India"}\r
+        }\r
+        IQD{\r
+            other{"Dinar Irak"}\r
+        }\r
+        IRR{\r
+            other{"Rial Iran"}\r
+        }\r
+        ISK{\r
+            other{"Krona Islandia"}\r
+        }\r
+        JMD{\r
+            other{"Dolar Jamaika"}\r
+        }\r
+        JOD{\r
+            other{"Dinar Yordania"}\r
+        }\r
+        JPY{\r
+            other{"Yen Jepang"}\r
+        }\r
+        KES{\r
+            other{"Shilling Kenya"}\r
+        }\r
+        KGS{\r
+            other{"Som Kirgistan"}\r
+        }\r
+        KHR{\r
+            other{"Riel Kamboja"}\r
+        }\r
+        KMF{\r
+            other{"Franc Komoro"}\r
+        }\r
+        KPW{\r
+            other{"Won Korea Lor"}\r
+        }\r
+        KRW{\r
+            other{"Won Korea Kidul"}\r
+        }\r
+        KWD{\r
+            other{"Dinar Kuwait"}\r
+        }\r
+        KYD{\r
+            other{"Dolar Kepuloan Caiman"}\r
+        }\r
+        KZT{\r
+            other{"Tenge Kasakhstan"}\r
+        }\r
+        LAK{\r
+            other{"Kip Laos"}\r
+        }\r
+        LBP{\r
+            other{"Pound Libanon"}\r
+        }\r
+        LKR{\r
+            other{"Rupee Sri Lanka"}\r
+        }\r
+        LRD{\r
+            other{"Dolar Liberia"}\r
+        }\r
+        LYD{\r
+            other{"Dinar Libya"}\r
+        }\r
+        MAD{\r
+            other{"Dirham Moroko"}\r
+        }\r
+        MDL{\r
+            other{"Leu Moldova"}\r
+        }\r
+        MGA{\r
+            other{"Ariary Malagasi"}\r
+        }\r
+        MKD{\r
+            other{"Denar Masedonia"}\r
+        }\r
+        MMK{\r
+            other{"Kyat Myanmar"}\r
+        }\r
+        MNT{\r
+            other{"Tugrik Mongol"}\r
+        }\r
+        MOP{\r
+            other{"MOP"}\r
+        }\r
+        MRO{\r
+            other{"Ouguiya Mauritania (1973 - 2017)"}\r
+        }\r
+        MRU{\r
+            other{"Ouguiya Mauritania"}\r
+        }\r
+        MUR{\r
+            other{"Rupee Mauritius"}\r
+        }\r
+        MVR{\r
+            other{"Rufiyaa Maladewa"}\r
+        }\r
+        MWK{\r
+            other{"Kwacha Malawi"}\r
+        }\r
+        MXN{\r
+            other{"Peso Meksiko"}\r
+        }\r
+        MYR{\r
+            other{"Ringgit Malaysia"}\r
+        }\r
+        MZN{\r
+            other{"Metical Mosambik"}\r
+        }\r
+        NAD{\r
+            other{"Dolar Namibia"}\r
+        }\r
+        NGN{\r
+            other{"Naira Nigeria"}\r
+        }\r
+        NIO{\r
+            other{"Cordoba Nikaragua"}\r
+        }\r
+        NOK{\r
+            other{"Krone Norwegia"}\r
+        }\r
+        NPR{\r
+            other{"Rupee Nepal"}\r
+        }\r
+        NZD{\r
+            other{"Dolar Selandia Anyar"}\r
+        }\r
+        OMR{\r
+            other{"Rial Oman"}\r
+        }\r
+        PAB{\r
+            other{"Balboa Panama"}\r
+        }\r
+        PEN{\r
+            other{"Sol Peru"}\r
+        }\r
+        PGK{\r
+            other{"Kina Papua Nugini"}\r
+        }\r
+        PHP{\r
+            other{"Piso Filipina"}\r
+        }\r
+        PKR{\r
+            other{"Rupee Pakistan"}\r
+        }\r
+        PLN{\r
+            other{"Zloty Polandia"}\r
+        }\r
+        PYG{\r
+            other{"Guarani Paraguay"}\r
+        }\r
+        QAR{\r
+            other{"Rial Qatar"}\r
+        }\r
+        RON{\r
+            other{"Leu Rumania"}\r
+        }\r
+        RSD{\r
+            other{"Dinar Serbia"}\r
+        }\r
+        RUB{\r
+            other{"Rubel Rusia"}\r
+        }\r
+        RWF{\r
+            other{"Franc Rwanda"}\r
+        }\r
+        SAR{\r
+            other{"Riyal Saudi"}\r
+        }\r
+        SBD{\r
+            other{"Dolar Kepuloan Solomon"}\r
+        }\r
+        SCR{\r
+            other{"Rupee Seichelles"}\r
+        }\r
+        SDG{\r
+            other{"Pound Sudan"}\r
+        }\r
+        SEK{\r
+            other{"Krona Swedia"}\r
+        }\r
+        SGD{\r
+            other{"Dolar Singapura"}\r
+        }\r
+        SHP{\r
+            other{"Pound Santa Helena"}\r
+        }\r
+        SLL{\r
+            other{"Leone Sierra Leone"}\r
+        }\r
+        SOS{\r
+            other{"Shilling Somalia"}\r
+        }\r
+        SRD{\r
+            other{"Dolar Suriname"}\r
+        }\r
+        SSP{\r
+            other{"Pound Sudan Kidul"}\r
+        }\r
+        STN{\r
+            other{"Dobra Sao Tome lan Principe"}\r
+        }\r
+        SYP{\r
+            other{"Pound Siria"}\r
+        }\r
+        SZL{\r
+            other{"Lilangeni Swasi"}\r
+        }\r
+        THB{\r
+            other{"Baht Thai"}\r
+        }\r
+        TJS{\r
+            other{"Somoni Tajikistan"}\r
+        }\r
+        TMT{\r
+            other{"Manat Turmenistan"}\r
+        }\r
+        TND{\r
+            other{"Dinar Tunisia"}\r
+        }\r
+        TOP{\r
+            other{"Paʻanga Tonga"}\r
+        }\r
+        TRY{\r
+            other{"Lira Turki"}\r
+        }\r
+        TTD{\r
+            other{"Dolar Trinidad lan Tobago"}\r
+        }\r
+        TWD{\r
+            other{"Dolar Anyar Taiwan"}\r
+        }\r
+        TZS{\r
+            other{"Shilling Tansania"}\r
+        }\r
+        UAH{\r
+            other{"Hryvnia Ukrania"}\r
+        }\r
+        UGX{\r
+            other{"Shilling Uganda"}\r
+        }\r
+        USD{\r
+            other{"Dolar Amerika Serikat"}\r
+        }\r
+        UYU{\r
+            other{"Peso Uruguay"}\r
+        }\r
+        UZS{\r
+            other{"Som Usbekistan"}\r
+        }\r
+        VEF{\r
+            other{"Bolivar Venezuela (2008 - 2018)"}\r
+        }\r
+        VES{\r
+            other{"Bolivar Venezuela"}\r
+        }\r
+        VND{\r
+            other{"Dong Vietnam"}\r
+        }\r
+        VUV{\r
+            other{"Vatu Vanuatu"}\r
+        }\r
+        WST{\r
+            other{"Tala Samoa"}\r
+        }\r
+        XAF{\r
+            other{"CFA Franc Afrika Tengah"}\r
+        }\r
+        XCD{\r
+            other{"Dolar Karibia Wetan"}\r
+        }\r
+        XOF{\r
+            other{"CFA Franc Afrika Kulon"}\r
+        }\r
+        XPF{\r
+            other{"Franc CFP"}\r
+        }\r
+        XXX{\r
+            other{"Dhuwit Ora Dikenali"}\r
+        }\r
+        YER{\r
+            other{"Rial Yaman"}\r
+        }\r
+        ZAR{\r
+            other{"Rand Afrika Kidul"}\r
+        }\r
+        ZMW{\r
+            other{"Kwacha Sambia"}\r
+        }\r
+    }\r
+    CurrencyUnitPatterns{\r
+        other{"{0} {1}"}\r
+    }\r
+    Version{"2.1.44.15"}\r
+}\r
index 3a0a17df7df33c73b706c3aa35209b662a227b79..d8e84aebebc2d953cac37c5d5badf32bb93c68b7 100644 (file)
@@ -884,6 +884,10 @@ ka{
         }\r
         VEF{\r
             "VEF",\r
+            "ვენესუელის ბოლივარი (2008–2018)",\r
+        }\r
+        VES{\r
+            "VES",\r
             "ვენესუელის ბოლივარი",\r
         }\r
         VND{\r
@@ -928,14 +932,14 @@ ka{
         }\r
         XOF{\r
             "CFA",\r
-            "(CFA) ფრანკი (BCEAO)",\r
+            "დასავლეთ აფრიკული CFA ფრანკი",\r
         }\r
         XPF{\r
             "CFPF",\r
             "CFP ფრანკი",\r
         }\r
         XXX{\r
-            "XXX",\r
+            "¤",\r
             "უცნობი ვალუტა",\r
         }\r
         YDD{\r
@@ -1277,7 +1281,7 @@ ka{
         }\r
         GBP{\r
             one{"ბრიტანული გირვანქა სტერლინგი"}\r
-            other{"á\83\98á\83\9cá\83\92á\83\9aá\83\98á\83¡á\83£á\83 ი გირვანქა სტერლინგი"}\r
+            other{"á\83\91á\83 á\83\98á\83¢á\83\90á\83\9cá\83£á\83\9aი გირვანქა სტერლინგი"}\r
         }\r
         GEL{\r
             one{"ქართული ლარი"}\r
@@ -1684,6 +1688,10 @@ ka{
             other{"უზბეკური სუმი"}\r
         }\r
         VEF{\r
+            one{"ვენესუელის ბოლივარი (2008–2018)"}\r
+            other{"ვენესუელის ბოლივარი (2008–2018)"}\r
+        }\r
+        VES{\r
             one{"ვენესუელის ბოლივარი"}\r
             other{"ვენესუელის ბოლივარი"}\r
         }\r
@@ -1740,5 +1748,5 @@ ka{
         one{"{0} {1}"}\r
         other{"{0} {1}"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.50"}\r
 }\r
index 6d0ff792d23a54bdc409a5871fa65df17dd5b5f9..840296c1b0ca25b3a46cee212eed8170cb6b07b7 100644 (file)
@@ -231,5 +231,5 @@ kab{
             "Adular Azimbabwi",\r
         }\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.94"}\r
 }\r
index 4c4570f082e7fb1da4c2290ff2c9cc6e2f896d1a..a4105f1dd225bdd8bd4bbba543860b3ac6703ffb 100644 (file)
@@ -141,7 +141,7 @@ kea{
         }\r
         GHC{\r
             "GHC",\r
-            "Sedi di Gana",\r
+            "Sedi di Gana (1979–2007)",\r
         }\r
         GMD{\r
             "GMD",\r
@@ -397,7 +397,7 @@ kea{
         }\r
         SDP{\r
             "SDP",\r
-            "Libra sudanes antigu",\r
+            "Libra sudanes antigu (1957–1998)",\r
         }\r
         SEK{\r
             "SEK",\r
@@ -508,7 +508,7 @@ kea{
             "XPF",\r
         }\r
         XXX{\r
-            "XXX",\r
+            "¤",\r
             "Mueda diskonxedu",\r
         }\r
         YER{\r
@@ -529,7 +529,7 @@ kea{
         }\r
         ZWD{\r
             "ZWD",\r
-            "Dola di Zimbabue",\r
+            "Dola di Zimbabue (1980–2008)",\r
         }\r
     }\r
     Currencies%narrow{\r
@@ -757,5 +757,5 @@ kea{
     CurrencyUnitPatterns{\r
         other{"{0} {1}"}\r
     }\r
-    Version{"2.1.39.11"}\r
+    Version{"2.1.43.65"}\r
 }\r
index 756f86b654b9342deacc1035aed76988e6093116..18bbe508ed93f3a2c730935a0bea11f4bb932a4f 100644 (file)
@@ -600,6 +600,10 @@ kk{
         }\r
         VEF{\r
             "VEF",\r
+            "Венесуэла боливары (2008–2018)",\r
+        }\r
+        VES{\r
+            "VES",\r
             "Венесуэла боливары",\r
         }\r
         VND{\r
@@ -631,7 +635,7 @@ kk{
             "КФП франкі",\r
         }\r
         XXX{\r
-            "XXX",\r
+            "¤",\r
             "Белгісіз валюта",\r
         }\r
         YER{\r
@@ -1343,6 +1347,10 @@ kk{
             other{"Өзбекстан сомы"}\r
         }\r
         VEF{\r
+            one{"Венесуэла боливары (2008–2018)"}\r
+            other{"Венесуэла боливары (2008–2018)"}\r
+        }\r
+        VES{\r
             one{"Венесуэла боливары"}\r
             other{"Венесуэла боливары"}\r
         }\r
@@ -1395,5 +1403,5 @@ kk{
         one{"{0} {1}"}\r
         other{"{0} {1}"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.88"}\r
 }\r
index 78613938847fd0ed926acacfb71d8afa88fce4f7..136fdb1e420efde5ae99770e5cb8b4d2dd49aac0 100644 (file)
@@ -17,5 +17,5 @@ kl{
             other{"euro"}\r
         }\r
     }\r
-    Version{"2.1.38.69"}\r
+    Version{"2.1.45.12"}\r
 }\r
index 85c43fec1da5c445d1a2101255d720a9b277335c..4f6955deab4aa2c9a20888321003220b5dc7896a 100644 (file)
@@ -600,6 +600,10 @@ km{
         }\r
         VEF{\r
             "VEF",\r
+            "ប៊ូលីវ៉ា​វ៉េណេស៊ុយអេឡា (2008–2018)",\r
+        }\r
+        VES{\r
+            "VES",\r
             "ប៊ូលីវ៉ា​វ៉េណេស៊ុយអេឡា",\r
         }\r
         VND{\r
@@ -631,7 +635,7 @@ km{
             "ហ្វ្រង់ CFP",\r
         }\r
         XXX{\r
-            "XXX",\r
+            "¤",\r
             "រូបិយប័ណ្ណ​មិនស្គាល់",\r
         }\r
         YER{\r
@@ -1196,6 +1200,9 @@ km{
             other{"សុមអ៊ូបេគីស្ថាន"}\r
         }\r
         VEF{\r
+            other{"ប៊ូលីវ៉ា​វ៉េណេស៊ុយអេឡា (2008–2018)"}\r
+        }\r
+        VES{\r
             other{"ប៊ូលីវ៉ា​វ៉េណេស៊ុយអេឡា"}\r
         }\r
         VND{\r
@@ -1235,5 +1242,5 @@ km{
     CurrencyUnitPatterns{\r
         other{"{0} {1}"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.88"}\r
 }\r
index 84c93716dacf4543fa75ae895e7a07c785d91b76..223bfddb1eb8868a79623d730ab3fb00171069e0 100644 (file)
@@ -604,6 +604,10 @@ kn{
         }\r
         VEF{\r
             "VEF",\r
+            "ವೆನಿಜುಲಿಯನ್ ಬೊಲಿವರ್ (2008–2018)",\r
+        }\r
+        VES{\r
+            "VES",\r
             "ವೆನಿಜುಲಿಯನ್ ಬೊಲಿವರ್",\r
         }\r
         VND{\r
@@ -635,7 +639,7 @@ kn{
             "[CFP] ಫ್ರಾಂಕ್",\r
         }\r
         XXX{\r
-            "XXX",\r
+            "¤",\r
             "ಅಪರಿಚಿತ ಕರೆನ್ಸಿ",\r
         }\r
         YER{\r
@@ -1353,6 +1357,10 @@ kn{
             other{"ಉಜ್ಬೇಕಿಸ್ತಾನ್ ಸೊಮ್"}\r
         }\r
         VEF{\r
+            one{"ವೆನಿಜುಲಿಯನ್ ಬೊಲಿವರ್ (2008–2018)"}\r
+            other{"ವೆನಿಜುಲಿಯನ್ ಬೊಲಿವರ್‌ಗಳು (2008–2018)"}\r
+        }\r
+        VES{\r
             one{"ವೆನಿಜುಲಿಯನ್ ಬೊಲಿವರ್"}\r
             other{"ವೆನಿಜುಲಿಯನ್ ಬೊಲಿವರ್‌ಗಳು"}\r
         }\r
@@ -1405,5 +1413,5 @@ kn{
         one{"{0} {1}"}\r
         other{"{0} {1}"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.88"}\r
 }\r
index 2e1ba53869da75fc983ca99149775f6679f01bb1..cfa2169c221c2a35486f52508680ff49861add9d 100644 (file)
@@ -1016,6 +1016,10 @@ ko{
         }\r
         VEF{\r
             "VEF",\r
+            "베네수엘라 볼리바르 (2008–2018)",\r
+        }\r
+        VES{\r
+            "VES",\r
             "베네수엘라 볼리바르",\r
         }\r
         VND{\r
@@ -1107,7 +1111,7 @@ ko{
             "테스트 통화 코드",\r
         }\r
         XXX{\r
-            "XXX",\r
+            "¤",\r
             "알 수 없는 통화 단위",\r
         }\r
         YDD{\r
@@ -1716,6 +1720,9 @@ ko{
             other{"우즈베키스탄 숨"}\r
         }\r
         VEF{\r
+            other{"베네수엘라 볼리바르 (2008–2018)"}\r
+        }\r
+        VES{\r
             other{"베네수엘라 볼리바르"}\r
         }\r
         VND{\r
@@ -1755,5 +1762,5 @@ ko{
     CurrencyUnitPatterns{\r
         other{"{0} {1}"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.91"}\r
 }\r
index e5f87b3ba61a276159f2de3e3a44aa7eb1bde5d0..3a6f14f551de56016abdd4d3429944a4df1fa867 100644 (file)
@@ -35,7 +35,7 @@ kok{
             "USD",\r
         }\r
         XXX{\r
-            "XXX",\r
+            "¤",\r
             "XXX",\r
         }\r
     }\r
@@ -81,5 +81,5 @@ kok{
     CurrencyUnitPatterns{\r
         other{"{0} {1}"}\r
     }\r
-    Version{"2.1.38.69"}\r
+    Version{"2.1.44.88"}\r
 }\r
index b7c5d1ad6f3429cfdfb2c3c419e08227d4596513..9242479d00099ca930c7ded3ebca10c7df128420 100644 (file)
@@ -880,6 +880,10 @@ ks{
         }\r
         VEF{\r
             "VEF",\r
+            "وینٕزوٗلیُک بولِوَر (2008–2018)",\r
+        }\r
+        VES{\r
+            "VES",\r
             "وینٕزوٗلیُک بولِوَر",\r
         }\r
         VND{\r
@@ -967,7 +971,7 @@ ks{
             "ٹیٚسٹِنٛگ کَرَنسی کوڈ",\r
         }\r
         XXX{\r
-            "XXX",\r
+            "¤",\r
             "اَنزٲنۍ یا نالَگہٕ ہار سِکہٕ",\r
         }\r
         YDD{\r
@@ -1015,5 +1019,5 @@ ks{
             "زِمبابِیُک ڈالَر",\r
         }\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.41.34"}\r
 }\r
index 91255352a63bec7a15ebf07c7de177997f000915..795644d6aafaa3140a46f0520adc2a5d388e0e97 100644 (file)
@@ -628,6 +628,10 @@ ksh{
         }\r
         VEF{\r
             "VEF",\r
+            "venezuelaanesche Bolívar (2008–2018)",\r
+        }\r
+        VES{\r
+            "VES",\r
             "venezuelaanesche Bolívar",\r
         }\r
         VND{\r
@@ -683,7 +687,7 @@ ksh{
             "Währong zum Prööfe",\r
         }\r
         XXX{\r
-            "XXX",\r
+            "¤",\r
             "onbikannte Währong",\r
         }\r
         YER{\r
@@ -908,5 +912,5 @@ ksh{
         other{"{0} {1}"}\r
         zero{"{0} {1}"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.41.34"}\r
 }\r
diff --git a/source/data/curr/ku.txt b/source/data/curr/ku.txt
new file mode 100644 (file)
index 0000000..11142f1
--- /dev/null
@@ -0,0 +1,37 @@
+// © 2016 and later: Unicode, Inc. and others.\r
+// License & terms of use: http://www.unicode.org/copyright.html#License\r
+ku{\r
+    Currencies{\r
+        EUR{\r
+            "€",\r
+            "ewro",\r
+        }\r
+        TRY{\r
+            "₺",\r
+            "TRY",\r
+            {\r
+                "¤#,##0.00",\r
+                ",",\r
+                ".",\r
+            }\r
+        }\r
+    }\r
+    Currencies%narrow{\r
+        EUR{"€"}\r
+        TRY{"₺"}\r
+    }\r
+    Currencies%variant{\r
+        TRY{"TL"}\r
+    }\r
+    CurrencyPlurals{\r
+        EUR{\r
+            one{"ewro"}\r
+            other{"ewro"}\r
+        }\r
+    }\r
+    CurrencyUnitPatterns{\r
+        one{"{0} {1}"}\r
+        other{"{0} {1}"}\r
+    }\r
+    Version{"2.1.44.82"}\r
+}\r
index dd763abe88eabb38ba01ad51fdad640ec8baef1c..9fa7cddb58169e05580f69952f1b1e64d960e52f 100644 (file)
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 kw{\r
-    Version{"2.1.38.69"}\r
+    Version{"2.1.43.65"}\r
 }\r
index a9e1e00f42a5a2d5fe9c14698660113283f850ec..23d3b3caa77437c4e16e6e09a22033a8d280c68e 100644 (file)
@@ -316,7 +316,7 @@ ky{
         }\r
         KZT{\r
             "KZT",\r
-            "Казакстан теӊгеси",\r
+            "Казакстан теңгеси",\r
         }\r
         LAK{\r
             "LAK",\r
@@ -428,7 +428,7 @@ ky{
         }\r
         NZD{\r
             "NZD",\r
-            "Жаӊы Зеландия доллары",\r
+            "Жаңы Зеландия доллары",\r
         }\r
         OMR{\r
             "OMR",\r
@@ -444,7 +444,7 @@ ky{
         }\r
         PGK{\r
             "PGK",\r
-            "Папуа Жаӊы Гвинея кинасы",\r
+            "Папуа Жаңы Гвинея кинасы",\r
         }\r
         PHP{\r
             "PHP",\r
@@ -572,7 +572,7 @@ ky{
         }\r
         TWD{\r
             "TWD",\r
-            "Тайвань жаӊы доллары",\r
+            "Тайвань жаңы доллары",\r
         }\r
         TZS{\r
             "TZS",\r
@@ -600,11 +600,15 @@ ky{
         }\r
         VEF{\r
             "VEF",\r
-            "венесуэла боливары",\r
+            "венесуэла боливары (2008–2018)",\r
+        }\r
+        VES{\r
+            "VES",\r
+            "VES",\r
         }\r
         VND{\r
             "₫",\r
-            "Вьетнам доӊу",\r
+            "Вьетнам доңу",\r
         }\r
         VUV{\r
             "VUV",\r
@@ -631,7 +635,7 @@ ky{
             "КФП франкы",\r
         }\r
         XXX{\r
-            "XXX",\r
+            "¤",\r
             "Белгисиз акча",\r
         }\r
         YER{\r
@@ -1061,8 +1065,8 @@ ky{
             other{"кайман доллары"}\r
         }\r
         KZT{\r
-            one{"Казакстан теӊгеси"}\r
-            other{"Казакстан теӊгеси"}\r
+            one{"Казакстан теңгеси"}\r
+            other{"Казакстан теңгеси"}\r
         }\r
         LAK{\r
             one{"Лаос киби"}\r
@@ -1173,8 +1177,8 @@ ky{
             other{"Непал руписи"}\r
         }\r
         NZD{\r
-            one{"Жаӊы Зеландия доллары"}\r
-            other{"Жаӊы Зеландия доллары"}\r
+            one{"Жаңы Зеландия доллары"}\r
+            other{"Жаңы Зеландия доллары"}\r
         }\r
         OMR{\r
             one{"Оман риалы"}\r
@@ -1189,8 +1193,8 @@ ky{
             other{"перу солу"}\r
         }\r
         PGK{\r
-            one{"Папуа Жаӊы Гвинея кинасы"}\r
-            other{"Папуа Жаӊы Гвинея кинасы"}\r
+            one{"Папуа Жаңы Гвинея кинасы"}\r
+            other{"Папуа Жаңы Гвинея кинасы"}\r
         }\r
         PHP{\r
             one{"Филиппин песосу"}\r
@@ -1317,8 +1321,8 @@ ky{
             other{"тринидад жана тобаго доллары"}\r
         }\r
         TWD{\r
-            one{"Тайвань жаӊы доллары"}\r
-            other{"Тайвань жаӊы доллары"}\r
+            one{"Тайвань жаңы доллары"}\r
+            other{"Тайвань жаңы доллары"}\r
         }\r
         TZS{\r
             one{"Танзания шиллинги"}\r
@@ -1345,12 +1349,16 @@ ky{
             other{"Өзбекстан суму"}\r
         }\r
         VEF{\r
-            one{"венесуэла боливары"}\r
-            other{"венесуэла боливары"}\r
+            one{"венесуэла боливары (2008–2018)"}\r
+            other{"венесуэла боливары (2008–2018)"}\r
+        }\r
+        VES{\r
+            one{"VES"}\r
+            other{"VES"}\r
         }\r
         VND{\r
-            one{"Вьетнам доӊу"}\r
-            other{"Вьетнам доӊу"}\r
+            one{"Вьетнам доңу"}\r
+            other{"Вьетнам доңу"}\r
         }\r
         VUV{\r
             one{"Вануату ватусу"}\r
@@ -1397,5 +1405,5 @@ ky{
         one{"{0} {1}"}\r
         other{"{0} {1}"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.65"}\r
 }\r
index 8be2304b68c827bd790e2aa09d0745ea6f812d6d..ba6fec1423e34f662c812a4422b1ac5adf216330 100644 (file)
@@ -964,6 +964,10 @@ lb{
         }\r
         VEF{\r
             "VEF",\r
+            "Venezolanesche Bolívar (2008–2018)",\r
+        }\r
+        VES{\r
+            "VES",\r
             "Venezolanesche Bolívar",\r
         }\r
         VND{\r
@@ -1051,7 +1055,7 @@ lb{
             "Testwährung",\r
         }\r
         XXX{\r
-            "XXX",\r
+            "¤",\r
             "Onbekannt Währung",\r
         }\r
         YDD{\r
@@ -2089,6 +2093,10 @@ lb{
             other{"Venezolanesch Bolívares (1871–2008)"}\r
         }\r
         VEF{\r
+            one{"Venezolanesche Bolívar (2008–2018)"}\r
+            other{"Venezolanesch Bolívares (2008–2018)"}\r
+        }\r
+        VES{\r
             one{"Venezolanesche Bolívar"}\r
             other{"Venezolanesch Bolívares"}\r
         }\r
@@ -2241,5 +2249,5 @@ lb{
         one{"{0} {1}"}\r
         other{"{0} {1}"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.91"}\r
 }\r
index 23882c4aec43150b1358386881437c6314d8a958..06c00674e0fe1c56a6d710ca96a92c40f2b29542 100644 (file)
@@ -1024,6 +1024,10 @@ lo{
         }\r
         VEF{\r
             "VEF",\r
+            "ເວ​ເນ​ຊູ​ເອ​ລັນ ໂບ​ລິ​ວາ (2008–2018)",\r
+        }\r
+        VES{\r
+            "VES",\r
             "ເວ​ເນ​ຊູ​ເອ​ລັນ ໂບ​ລິ​ວາ",\r
         }\r
         VND{\r
@@ -1115,7 +1119,7 @@ lo{
             "ລະຫັດທົດສອບສະກຸນເງິນ",\r
         }\r
         XXX{\r
-            "XXX",\r
+            "¤",\r
             "ສະກຸນເງິນທີ່ບໍ່ຮູ້ຈັກ",\r
         }\r
         YDD{\r
@@ -1727,6 +1731,9 @@ lo{
             other{"ອຸສເບກິສຖານິ ໂຊມ"}\r
         }\r
         VEF{\r
+            other{"ເວເນຊູເອລັນ ໂບລິວາສ໌"}\r
+        }\r
+        VES{\r
             other{"ເວ​ເນ​ຊູ​ເອ​ລັນ ໂບ​ລິ​ວາ"}\r
         }\r
         VND{\r
@@ -1766,5 +1773,5 @@ lo{
     CurrencyUnitPatterns{\r
         other{"{0} {1}"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.50"}\r
 }\r
index 1785e833180743b63220685c47f4b588e58f5cde..c20dab9c88d17a67900e5a18fa725c572f122685 100644 (file)
@@ -39,7 +39,7 @@ lrc{
             "USD",\r
         }\r
         XXX{\r
-            "XXX",\r
+            "¤",\r
             "پیل نادیار",\r
         }\r
     }\r
@@ -82,5 +82,5 @@ lrc{
             other{"پیل نادیار"}\r
         }\r
     }\r
-    Version{"2.1.38.69"}\r
+    Version{"2.1.43.65"}\r
 }\r
index aea695292d55e65145590d20408c2bb5aa80c91f..289882151c6987df3a7c121d1c18acebb6fe4485 100644 (file)
@@ -1044,6 +1044,10 @@ lt{
         }\r
         VEF{\r
             "VEF",\r
+            "Venesuelos bolivaras (2008–2018)",\r
+        }\r
+        VES{\r
+            "VES",\r
             "Venesuelos bolivaras",\r
         }\r
         VND{\r
@@ -1143,7 +1147,7 @@ lt{
             "Azijos plėtros banko apskaitos vienetas",\r
         }\r
         XXX{\r
-            "XXX",\r
+            "¤",\r
             "nežinoma valiuta",\r
         }\r
         YDD{\r
@@ -2870,6 +2874,12 @@ lt{
             other{"Venesuelos bolivarų (1871–2008)"}\r
         }\r
         VEF{\r
+            few{"Venesuelos bolivarai (2008–2018)"}\r
+            many{"Venesuelos bolivaro (2008–2018)"}\r
+            one{"Venesuelos bolivaras (2008–2018)"}\r
+            other{"Venesuelos bolivarų (2008–2018)"}\r
+        }\r
+        VES{\r
             few{"Venesuelos bolivarai"}\r
             many{"Venesuelos bolivaro"}\r
             one{"Venesuelos bolivaras"}\r
@@ -3116,5 +3126,5 @@ lt{
         one{"{0} {1}"}\r
         other{"{0} {1}"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.91"}\r
 }\r
index c99379d3e0aea74c6d96687a17b456b32e95abe5..ac367848c9c61e539a910724c319548321ef143f 100644 (file)
@@ -580,7 +580,7 @@ lv{
         }\r
         SAR{\r
             "SAR",\r
-            "Saūda riāls",\r
+            "Saūda Arābijas riāls",\r
         }\r
         SBD{\r
             "SBD",\r
@@ -724,6 +724,10 @@ lv{
         }\r
         VEF{\r
             "VEF",\r
+            "Venecuēlas bolivārs (2008–2018)",\r
+        }\r
+        VES{\r
+            "VES",\r
             "Venecuēlas bolivārs",\r
         }\r
         VND{\r
@@ -807,7 +811,7 @@ lv{
             "Testa valūtas kods",\r
         }\r
         XXX{\r
-            "XXX",\r
+            "¤",\r
             "Nezināma valūta",\r
         }\r
         YER{\r
@@ -1717,6 +1721,11 @@ lv{
             zero{"Venecuēlas bolivāri (1871–2008)"}\r
         }\r
         VEF{\r
+            one{"Venecuēlas bolivārs (2008–2018)"}\r
+            other{"Venecuēlas bolivāri (2008–2018)"}\r
+            zero{"Venecuēlas bolivāri (2008–2018)"}\r
+        }\r
+        VES{\r
             one{"Venecuēlas bolivārs"}\r
             other{"Venecuēlas bolivāri"}\r
             zero{"Venecuēlas bolivāri"}\r
@@ -1812,5 +1821,5 @@ lv{
         other{"{0} {1}"}\r
         zero{"{0} {1}"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.91"}\r
 }\r
index 8eea9d8516fb7f1e7d4878cd1337009a3ac33bda..e021310b2217085cbfe0244cd366c3c2ea970a4e 100644 (file)
@@ -239,5 +239,5 @@ mg{
         one{"{0} {1}"}\r
         other{"{0} {1}"}\r
     }\r
-    Version{"2.1.39.11"}\r
+    Version{"2.1.43.94"}\r
 }\r
index a12f9c826f5efa925f3c1e78567bc24efbf631cb..0f901459b1aa4fb6786d90df7a5a3e0e6fbd41bc 100644 (file)
@@ -7,7 +7,7 @@ mgo{
             "shirè",\r
         }\r
         XXX{\r
-            "XXX",\r
+            "¤",\r
             "iku ikap mɔʼɔ",\r
         }\r
     }\r
diff --git a/source/data/curr/mi.txt b/source/data/curr/mi.txt
new file mode 100644 (file)
index 0000000..01f8134
--- /dev/null
@@ -0,0 +1,264 @@
+// © 2016 and later: Unicode, Inc. and others.\r
+// License & terms of use: http://www.unicode.org/copyright.html#License\r
+mi{\r
+    Currencies{\r
+        ANG{\r
+            "ANG",\r
+            "ANG",\r
+        }\r
+        ARS{\r
+            "ARS",\r
+            "ARS",\r
+        }\r
+        AWG{\r
+            "AWG",\r
+            "AWG",\r
+        }\r
+        BBD{\r
+            "BBD",\r
+            "BBD",\r
+        }\r
+        BMD{\r
+            "BMD",\r
+            "BMD",\r
+        }\r
+        BRL{\r
+            "R$",\r
+            "Real Parahi",\r
+        }\r
+        BSD{\r
+            "BSD",\r
+            "BSD",\r
+        }\r
+        BZD{\r
+            "BZD",\r
+            "BZD",\r
+        }\r
+        CAD{\r
+            "CA$",\r
+            "CAD",\r
+        }\r
+        CNY{\r
+            "CN¥",\r
+            "Yuan Haina",\r
+        }\r
+        CRC{\r
+            "CRC",\r
+            "CRC",\r
+        }\r
+        CUC{\r
+            "CUC",\r
+            "CUC",\r
+        }\r
+        CUP{\r
+            "CUP",\r
+            "CUP",\r
+        }\r
+        DOP{\r
+            "DOP",\r
+            "DOP",\r
+        }\r
+        EUR{\r
+            "€",\r
+            "Euro",\r
+        }\r
+        GBP{\r
+            "£",\r
+            "Pāuna Piritene",\r
+        }\r
+        GTQ{\r
+            "GTQ",\r
+            "GTQ",\r
+        }\r
+        HNL{\r
+            "HNL",\r
+            "HNL",\r
+        }\r
+        HTG{\r
+            "HTG",\r
+            "HTG",\r
+        }\r
+        INR{\r
+            "₹",\r
+            "Rupee Iniana",\r
+        }\r
+        JMD{\r
+            "JMD",\r
+            "JMD",\r
+        }\r
+        JPY{\r
+            "¥",\r
+            "Yen Hapanihi",\r
+        }\r
+        KYD{\r
+            "KYD",\r
+            "KYD",\r
+        }\r
+        MXN{\r
+            "MX$",\r
+            "MXN",\r
+        }\r
+        NIO{\r
+            "NIO",\r
+            "NIO",\r
+        }\r
+        NZD{\r
+            "$",\r
+            "Tāra o Aotearoa",\r
+        }\r
+        PAB{\r
+            "PAB",\r
+            "PAB",\r
+        }\r
+        RUB{\r
+            "RUB",\r
+            "Rūpera Ruhiana",\r
+        }\r
+        TTD{\r
+            "TTD",\r
+            "TTD",\r
+        }\r
+        USD{\r
+            "US$",\r
+            "Tāra US",\r
+        }\r
+        XCD{\r
+            "EC$",\r
+            "XCD",\r
+        }\r
+        XXX{\r
+            "¤",\r
+            "Moni Tē Mōhiotia",\r
+        }\r
+    }\r
+    Currencies%narrow{\r
+        ARS{"$"}\r
+        BBD{"$"}\r
+        BMD{"$"}\r
+        BRL{"R$"}\r
+        BSD{"$"}\r
+        BZD{"$"}\r
+        CAD{"$"}\r
+        CNY{"¥"}\r
+        CRC{"₡"}\r
+        CUC{"$"}\r
+        CUP{"$"}\r
+        DOP{"$"}\r
+        EUR{"€"}\r
+        GBP{"£"}\r
+        GTQ{"Q"}\r
+        HNL{"L"}\r
+        INR{"₹"}\r
+        JMD{"$"}\r
+        JPY{"¥"}\r
+        KYD{"$"}\r
+        MXN{"$"}\r
+        NIO{"C$"}\r
+        RUB{"₽"}\r
+        TTD{"$"}\r
+        USD{"$"}\r
+        XCD{"$"}\r
+    }\r
+    CurrencyPlurals{\r
+        ANG{\r
+            other{"ANG"}\r
+        }\r
+        ARS{\r
+            other{"ARS"}\r
+        }\r
+        AWG{\r
+            other{"AWG"}\r
+        }\r
+        BBD{\r
+            other{"BBD"}\r
+        }\r
+        BMD{\r
+            other{"BMD"}\r
+        }\r
+        BRL{\r
+            other{"Ngā real Parahi"}\r
+        }\r
+        BSD{\r
+            other{"BSD"}\r
+        }\r
+        BZD{\r
+            other{"BZD"}\r
+        }\r
+        CAD{\r
+            other{"CAD"}\r
+        }\r
+        CNY{\r
+            other{"Yuan Haina"}\r
+        }\r
+        CRC{\r
+            other{"CRC"}\r
+        }\r
+        CUC{\r
+            other{"CUC"}\r
+        }\r
+        CUP{\r
+            other{"CUP"}\r
+        }\r
+        DOP{\r
+            other{"DOP"}\r
+        }\r
+        EUR{\r
+            other{"euros"}\r
+        }\r
+        GBP{\r
+            other{"Ngā pāuna Piritene"}\r
+        }\r
+        GTQ{\r
+            other{"GTQ"}\r
+        }\r
+        HNL{\r
+            other{"HNL"}\r
+        }\r
+        HTG{\r
+            other{"HTG"}\r
+        }\r
+        INR{\r
+            other{"Ngā rupee Iniana"}\r
+        }\r
+        JMD{\r
+            other{"JMD"}\r
+        }\r
+        JPY{\r
+            other{"Yen Hapanihi"}\r
+        }\r
+        KYD{\r
+            other{"KYD"}\r
+        }\r
+        MXN{\r
+            other{"MXN"}\r
+        }\r
+        NIO{\r
+            other{"NIO"}\r
+        }\r
+        NZD{\r
+            other{"Ngā tāra o Aotearoa"}\r
+        }\r
+        PAB{\r
+            other{"PAB"}\r
+        }\r
+        RUB{\r
+            other{"Ngā rūpera Ruhiana"}\r
+        }\r
+        TTD{\r
+            other{"TTD"}\r
+        }\r
+        USD{\r
+            other{"Ngā tāra US"}\r
+        }\r
+        XCD{\r
+            other{"XCD"}\r
+        }\r
+        XXX{\r
+            other{"(moni tē mōhiotia)"}\r
+        }\r
+    }\r
+    CurrencyUnitPatterns{\r
+        other{"{0} {1}"}\r
+    }\r
+    Version{"2.1.44.15"}\r
+}\r
index 7ca4c7adf9deb03e43b2ad012f5c778eecf72992..7000c77d02aa40966fd850b9f2cf92c81d29455b 100644 (file)
@@ -164,7 +164,7 @@ mk{
         }\r
         CHF{\r
             "CHF",\r
-            "Швајцарски Франк",\r
+            "Швајцарски франк",\r
         }\r
         CLP{\r
             "CLP",\r
@@ -268,7 +268,7 @@ mk{
         }\r
         GBP{\r
             "GBP",\r
-            "Британска Фунта",\r
+            "Британска фунта",\r
         }\r
         GEL{\r
             "GEL",\r
@@ -464,7 +464,7 @@ mk{
         }\r
         MAD{\r
             "MAD",\r
-            "Ð\9cаÑ\80оканÑ\81ки Ð\94ирхам",\r
+            "Ð\9cаÑ\80оканÑ\81ки Ð´ирхам",\r
         }\r
         MAF{\r
             "MAF",\r
@@ -836,6 +836,10 @@ mk{
         }\r
         VEF{\r
             "VEF",\r
+            "Венецуелски боливар (2008–2018)",\r
+        }\r
+        VES{\r
+            "VES",\r
             "Венецуелски боливар",\r
         }\r
         VND{\r
@@ -867,7 +871,7 @@ mk{
             "ЦФП франк",\r
         }\r
         XXX{\r
-            "XXX",\r
+            "¤",\r
             "Непозната валута",\r
         }\r
         YDD{\r
@@ -1089,7 +1093,7 @@ mk{
             other{"Брунејски долар"}\r
         }\r
         BOB{\r
-            one{"Ð\91оливиÑ\81ки Ð±Ð¾Ð»Ð¸Ð²Ð¸Ð°Ð½Ð¸"}\r
+            one{"Ð\91оливиÑ\81ки Ð±Ð¾Ð»Ð¸Ð²Ð¸Ð°Ð½Ð¾"}\r
             other{"Боливиски боливиани"}\r
         }\r
         BRL{\r
@@ -1129,7 +1133,7 @@ mk{
             other{"Конголски франци"}\r
         }\r
         CHF{\r
-            one{"Швајцарски Франк"}\r
+            one{"Швајцарски франк"}\r
             other{"Швајцарски франци"}\r
         }\r
         CLP{\r
@@ -1174,7 +1178,7 @@ mk{
         }\r
         DKK{\r
             one{"Данска круна"}\r
-            other{"Ð\94анÑ\81ка ÐºÑ\80Ñ\83на"}\r
+            other{"Ð\94анÑ\81ки ÐºÑ\80Ñ\83ни"}\r
         }\r
         DOP{\r
             one{"Доминикански Пезос"}\r
@@ -1205,11 +1209,11 @@ mk{
             other{"Фиџиски долари"}\r
         }\r
         FKP{\r
-            one{"ФолкландÑ\81ки Ñ\84Ñ\83нÑ\82и"}\r
+            one{"ФолкландÑ\81ка Ñ\84Ñ\83нÑ\82а"}\r
             other{"Фолкландски фунти"}\r
         }\r
         GBP{\r
-            one{"Британска Фунта"}\r
+            one{"Британска фунта"}\r
             other{"Британски фунти"}\r
         }\r
         GEL{\r
@@ -1361,7 +1365,7 @@ mk{
             other{"Либијски динари"}\r
         }\r
         MAD{\r
-            one{"Ð\9cаÑ\80оканÑ\81ки Ð\94ирхам"}\r
+            one{"Ð\9cаÑ\80оканÑ\81ки Ð´ирхам"}\r
             other{"Марокански дирхами"}\r
         }\r
         MDL{\r
@@ -1458,7 +1462,7 @@ mk{
         }\r
         PEN{\r
             one{"Перуански сол"}\r
-            other{"Перуански сол"}\r
+            other{"Перуански соли"}\r
         }\r
         PGK{\r
             one{"Папуа новогвинејска кина"}\r
@@ -1478,7 +1482,7 @@ mk{
         }\r
         PYG{\r
             one{"Парагвајска гуарана"}\r
-            other{"Ð\9fаÑ\80агваÑ\98Ñ\81ка Ð³Ñ\83аÑ\80ана"}\r
+            other{"Ð\9fаÑ\80агваÑ\98Ñ\81ки Ð³Ñ\83аÑ\80ани"}\r
         }\r
         QAR{\r
             one{"Катарски риал"}\r
@@ -1617,7 +1621,7 @@ mk{
             other{"Американски долари"}\r
         }\r
         UYU{\r
-            one{"Уругвајски пезоси"}\r
+            one{"Уругвајски пезос"}\r
             other{"Уругвајски пезоси"}\r
         }\r
         UZS{\r
@@ -1629,6 +1633,10 @@ mk{
             other{"Венецуелски боливар (1871–2008)"}\r
         }\r
         VEF{\r
+            one{"Венецуелски боливар (2008–2018)"}\r
+            other{"Венецуелски боливари (2008–2018)"}\r
+        }\r
+        VES{\r
             one{"Венецуелски боливар"}\r
             other{"Венецуелски боливари"}\r
         }\r
@@ -1681,5 +1689,5 @@ mk{
         one{"{0} {1}"}\r
         other{"{0} {1}"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.65"}\r
 }\r
index 90e644bb5da5a49141cef6dbbb7dab89c34cb5aa..4f8e252d3ccaeb942165038ee6d333f181fbd5ea 100644 (file)
@@ -972,6 +972,10 @@ ml{
         }\r
         VEF{\r
             "VEF",\r
+            "വെനിസ്വേലൻ ബൊളീവർ (2008–2018)",\r
+        }\r
+        VES{\r
+            "VES",\r
             "വെനിസ്വേലൻ ബൊളീവർ",\r
         }\r
         VND{\r
@@ -1059,7 +1063,7 @@ ml{
             "ടെസ്റ്റിംഗിനുള്ള കറൻസി കോഡ്",\r
         }\r
         XXX{\r
-            "XXX",\r
+            "¤",\r
             "അജ്ഞാത നാണയം",\r
         }\r
         YDD{\r
@@ -1474,7 +1478,7 @@ ml{
         }\r
         CVE{\r
             one{"കേപ് വെർദിയൻ എസ്‌ക്യുഡോ"}\r
-            other{"കേപ് വെർദിയൻ എസ്‌ക്യുഡോ"}\r
+            other{"കേപ് വെർദിയൻ എസ്‌ക്യുഡോസ്"}\r
         }\r
         CYP{\r
             one{"സൈപ്രസ് പൌണ്ട്"}\r
@@ -1590,11 +1594,11 @@ ml{
         }\r
         GMD{\r
             one{"ഗാംബിയൻ ദലാസി"}\r
-            other{"ഗാംബിയൻ ദലാസി"}\r
+            other{"ഗാംബിയൻ ദലാസിസ്"}\r
         }\r
         GNF{\r
             one{"ഗിനിയൻ ഫ്രാങ്ക്"}\r
-            other{"ഗിനിയൻ ഫ്രാങ്ക്"}\r
+            other{"ഗിനിയൻ ഫ്രാങ്ക്സ്"}\r
         }\r
         GNS{\r
             one{"ഗിനിയ സൈലി"}\r
@@ -1814,11 +1818,11 @@ ml{
         }\r
         MRO{\r
             one{"മൗറിറ്റേനിയൻ ഔഗിയ (1973–2017)"}\r
-            other{"മൗറിറ്റേനിയൻ ഔഗിയ (1973–2017)"}\r
+            other{"മൗറിറ്റേനിയൻ ഔഗിയസ് (1973–2017)"}\r
         }\r
         MRU{\r
             one{"മൗറിറ്റേനിയൻ ഔഗിയ"}\r
-            other{"മൗറിറ്റേനിയൻ ഔഗിയ"}\r
+            other{"മൗറിറ്റേനിയൻ ഔഗിയസ്"}\r
         }\r
         MUR{\r
             one{"മൗറീഷ്യൻ റുപ്പീ"}\r
@@ -1970,7 +1974,7 @@ ml{
         }\r
         SLL{\r
             one{"സിയെറ ലിയോണിയൻ ലിയോൺ"}\r
-            other{"സിയàµ\86à´± à´²à´¿à´¯àµ\8bണിയൻ à´²à´¿à´¯àµ\8bൺ"}\r
+            other{"സിയàµ\86à´± à´²à´¿à´¯àµ\8bണിയൻ à´²à´¿à´¯àµ\8bണസàµ\8d"}\r
         }\r
         SOS{\r
             one{"സോമാലി ഷില്ലിംഗ്"}\r
@@ -2093,6 +2097,10 @@ ml{
             other{"വെനസ്വേലൻ ബോലിവർസ് (1871–2008)"}\r
         }\r
         VEF{\r
+            one{"വെനിസ്വേലൻ ബൊളീവർ (2008–2018)"}\r
+            other{"വെനിസ്വേലൻ ബൊളീവർ (2008–2018)"}\r
+        }\r
+        VES{\r
             one{"വെനിസ്വേലൻ ബൊളീവർ"}\r
             other{"വെനിസ്വേലൻ ബൊളീവർ"}\r
         }\r
@@ -2237,5 +2245,5 @@ ml{
         one{"{0} {1}"}\r
         other{"{0} {1}"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.50"}\r
 }\r
index 11e4a5a791fa084f809b8b83750c3013915b2f8f..f7e9c5bc12e5a0bb02daeb884d18314408960f00 100644 (file)
@@ -600,6 +600,10 @@ mn{
         }\r
         VEF{\r
             "VEF",\r
+            "венесуэлийн боливар (2008–2018)",\r
+        }\r
+        VES{\r
+            "VES",\r
             "венесуэлийн боливар",\r
         }\r
         VND{\r
@@ -631,7 +635,7 @@ mn{
             "францын колоний франк",\r
         }\r
         XXX{\r
-            "XXX",\r
+            "¤",\r
             "тодорхойгүй мөнгөн тэмдэгт",\r
         }\r
         YER{\r
@@ -1349,6 +1353,10 @@ mn{
             other{"узбекийн сом"}\r
         }\r
         VEF{\r
+            one{"венесуэлийн боливар (2008–2018)"}\r
+            other{"венесуэлийн боливар (2008–2018)"}\r
+        }\r
+        VES{\r
             one{"венесуэлийн боливар"}\r
             other{"венесуэлийн боливар"}\r
         }\r
@@ -1405,5 +1413,5 @@ mn{
         one{"{0} {1}"}\r
         other{"{0} {1}"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.94"}\r
 }\r
index 4cac4e985e37d8983306929f35f6469a51820fc0..1f5140ff5b84078be07ea7272f6c0c50714ea0e7 100644 (file)
@@ -604,6 +604,10 @@ mr{
         }\r
         VEF{\r
             "VEF",\r
+            "व्हेनेझुएला बोलिव्हार (2008–2018)",\r
+        }\r
+        VES{\r
+            "VES",\r
             "व्हेनेझुएला बोलिव्हार",\r
         }\r
         VND{\r
@@ -635,7 +639,7 @@ mr{
             "[CFP] फ्रँक",\r
         }\r
         XXX{\r
-            "XXX",\r
+            "¤",\r
             "अज्ञात चलन",\r
         }\r
         YER{\r
@@ -914,7 +918,7 @@ mr{
         }\r
         DKK{\r
             one{"डॅनिश क्रोन"}\r
-            other{"डॅनिश क्रोन"}\r
+            other{"डॅनिश क्रोन"}\r
         }\r
         DOP{\r
             one{"डोमिनिकन पेसो"}\r
@@ -1353,6 +1357,10 @@ mr{
             other{"उझबेकिस्तानी सोम"}\r
         }\r
         VEF{\r
+            one{"व्हेनेझुएला बोलिव्हार (2008–2018)"}\r
+            other{"व्हेनेझुएला बोलिव्हार्स (2008–2018)"}\r
+        }\r
+        VES{\r
             one{"व्हेनेझुएला बोलिव्हार"}\r
             other{"व्हेनेझुएला बोलिव्हार्स"}\r
         }\r
@@ -1401,5 +1409,5 @@ mr{
             other{"झांबियन क्वाचास"}\r
         }\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.65"}\r
 }\r
index 1c60f377eadde6e2c61e7403f4486aabb1cddf3c..8efecaa0adcb330a7a3cbb449ff770ae1d670808 100644 (file)
@@ -604,6 +604,10 @@ ms{
         }\r
         VEF{\r
             "VEF",\r
+            "Bolivar Venezuela (2008–2018)",\r
+        }\r
+        VES{\r
+            "VES",\r
             "Bolivar Venezuela",\r
         }\r
         VND{\r
@@ -635,7 +639,7 @@ ms{
             "Franc CFP",\r
         }\r
         XXX{\r
-            "XXX",\r
+            "¤",\r
             "Mata Wang Tidak Diketahui",\r
         }\r
         YER{\r
@@ -1203,6 +1207,9 @@ ms{
             other{"Som Uzbekistan"}\r
         }\r
         VEF{\r
+            other{"Bolivar Venezuela (2008–2018)"}\r
+        }\r
+        VES{\r
             other{"Bolivar Venezuela"}\r
         }\r
         VND{\r
@@ -1242,5 +1249,5 @@ ms{
     CurrencyUnitPatterns{\r
         other{"{0} {1}"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.91"}\r
 }\r
index 4a462d6705a706e9f9bbbf0e02d08460932b8803..16e16458549a07feb5daebeb97c8e119ad9e57b6 100644 (file)
@@ -566,6 +566,10 @@ mt{
             "VEF",\r
             "VEF",\r
         }\r
+        VES{\r
+            "VES",\r
+            "VES",\r
+        }\r
         VND{\r
             "₫",\r
             "VND",\r
@@ -595,7 +599,7 @@ mt{
             "XPF",\r
         }\r
         XXX{\r
-            "XXX",\r
+            "¤",\r
             "Munita Mhix Magħrufa jew Mhix Valida",\r
         }\r
         YER{\r
@@ -1534,6 +1538,12 @@ mt{
             one{"VEF"}\r
             other{"VEF"}\r
         }\r
+        VES{\r
+            few{"VES"}\r
+            many{"VES"}\r
+            one{"VES"}\r
+            other{"VES"}\r
+        }\r
         VND{\r
             few{"VND"}\r
             many{"VND"}\r
@@ -1607,5 +1617,5 @@ mt{
         one{"{0} {1}"}\r
         other{"{0} {1}"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.94"}\r
 }\r
index 785f0664fd9d42b69a281dcb71c767b7664f10d5..9aa323fd17489e6e5ba7a6a768a85b17ac733bd1 100644 (file)
@@ -416,11 +416,11 @@ my{
         }\r
         MRO{\r
             "MRO",\r
-            "မော်ရီတေးနီးယား အူဂီးယာ (1973–2017)",\r
+            "မော်ရီတေးနီးယား အူဂီးယာ (၁၉၇၃–၂၀၁၇)",\r
         }\r
         MRU{\r
             "MRU",\r
-            "á\80\99á\80±á\80¬á\80ºá\80\9bá\80®á\80\90á\80±á\80¸á\80\94á\80®á\80¸á\80\9aá\80¬း အူဂီးယာ",\r
+            "á\80\99á\80±á\80¬á\80ºá\80\9bá\80®á\80\90á\80±á\80¸á\80\94á\80®á\80¸á\80\9aá\80\94á\80ºး အူဂီးယာ",\r
         }\r
         MUR{\r
             "MUR",\r
@@ -436,7 +436,7 @@ my{
         }\r
         MXN{\r
             "MX$",\r
-            "á\80\99á\80\80á\80¹ကဆီကို ပီဆို",\r
+            "á\80\99á\80\80á\80ºကဆီကို ပီဆို",\r
         }\r
         MYR{\r
             "MYR",\r
@@ -476,7 +476,7 @@ my{
         }\r
         PAB{\r
             "B/.",\r
-            "á\80\95á\80\94á\80¬á\80¸á\80\99á\80¬á\80¸ á\80\98á\80\9cá\80ºဘိုးအာ",\r
+            "á\80\95á\80\94á\80¬á\80¸á\80\99á\80¬á\80¸ á\80\98á\80\9cá\80»ဘိုးအာ",\r
         }\r
         PEN{\r
             "PEN",\r
@@ -576,11 +576,11 @@ my{
         }\r
         STD{\r
             "STD",\r
-            "ဆောင်တူမေးနှင့် ပရင်စီပီ ဒိုဘရာ (1977–2017)",\r
+            "ဆောင်တူမေးနှင့် ပရင်စီပီ ဒိုဘရာ",\r
         }\r
         STN{\r
             "STN",\r
-            "ဆောင်တူမေးနှင့် ပရင်စီပီ ဒိုဘရာ",\r
+            "ဆောင်တူမေးနှင့် ပရင်စီပီ ဒိုဘရာ (၂၀၁၈)",\r
         }\r
         SUR{\r
             "SUR",\r
@@ -664,7 +664,11 @@ my{
         }\r
         VEF{\r
             "VEF",\r
-            "ဗင်နီဇွဲလား ဘိုလီဗာ",\r
+            "ဗင်နီဇွဲလား ဘိုလီဗာ (၂၀၀၈–၂၀၁၈)",\r
+        }\r
+        VES{\r
+            "VES",\r
+            "ဗင်နီဇွဲလန်း ဘိုလီဗာ",\r
         }\r
         VND{\r
             "₫",\r
@@ -719,7 +723,7 @@ my{
             "စမ်းသပ် ငွေကြေး ကုဒ်",\r
         }\r
         XXX{\r
-            "XXX",\r
+            "¤",\r
             "မသိသို့မဟုတ်မရှိသောငွေကြေး",\r
         }\r
         YER{\r
@@ -1119,10 +1123,10 @@ my{
             other{"မကာအို ပါတားကား"}\r
         }\r
         MRO{\r
-            other{"မော်ရီတေးနီးယား အူဂီးယာ (1973–2017)"}\r
+            other{"မော်ရီတေးနီးယား အူဂီးယာ (၁၉၇၃–၂၀၁၇)"}\r
         }\r
         MRU{\r
-            other{"á\80\99á\80±á\80¬á\80ºá\80\9bá\80®á\80\90á\80±á\80¸á\80\94á\80®á\80¸á\80\9aá\80¬း အူဂီးယာ"}\r
+            other{"á\80\99á\80±á\80¬á\80ºá\80\9bá\80®á\80\90á\80±á\80¸á\80\94á\80®á\80¸á\80\9aá\80\94á\80ºး အူဂီးယာ"}\r
         }\r
         MUR{\r
             other{"မောရစ်ရှ ရူပီး"}\r
@@ -1134,7 +1138,7 @@ my{
             other{"မာလာဝီ ခွါးချာ"}\r
         }\r
         MXN{\r
-            other{"á\80\99á\80\80á\80¹ကဆီကို ပီဆို"}\r
+            other{"á\80\99á\80\80á\80ºကဆီကို ပီဆို"}\r
         }\r
         MYR{\r
             other{"မလေးရှား ရင်းဂစ်"}\r
@@ -1164,7 +1168,7 @@ my{
             other{"အိုမန်နီ ရီရယ်"}\r
         }\r
         PAB{\r
-            other{"á\80\95á\80\94á\80¬á\80¸á\80\99á\80¬á\80¸ á\80\98á\80\9cá\80ºဘိုးအာ"}\r
+            other{"á\80\95á\80\94á\80¬á\80¸á\80\99á\80¬á\80¸ á\80\98á\80\9cá\80»ဘိုးအာ"}\r
         }\r
         PEN{\r
             other{"ပီရူး ဆိုးလ်"}\r
@@ -1233,10 +1237,10 @@ my{
             other{"တောင်ဆူဒန် ပေါင်"}\r
         }\r
         STD{\r
-            other{"ဆောင်တူမေးနှင့် ပရင်စီပီ ဒိုဘရာ (1977–2017)"}\r
+            other{"ဆောင်တူမေးနှင့် ပရင်စီပီ ဒိုဘရာ"}\r
         }\r
         STN{\r
-            other{"ဆောင်တူမေးနှင့် ပရင်စီပီ ဒိုဘရာ"}\r
+            other{"ဆောင်တူမေးနှင့် ပရင်စီပီ ဒိုဘရာစ် (၂၀၁၈)"}\r
         }\r
         SYP{\r
             other{"ဆီးရီးယား ပေါင်"}\r
@@ -1287,7 +1291,10 @@ my{
             other{"ဥဇဘက်ကစ္စတန် ဆော်မ်"}\r
         }\r
         VEF{\r
-            other{"ဗင်နီဇွဲလား ဘိုလီဗာ"}\r
+            other{"ဗင်နီဇွဲလား ဘိုလီဗာ (၂၀၀၈–၂၀၁၈)"}\r
+        }\r
+        VES{\r
+            other{"ဗင်နီဇွဲလန်း ဘိုလီဗာ"}\r
         }\r
         VND{\r
             other{"ဗီယက်နမ် ဒေါင်"}\r
@@ -1323,5 +1330,5 @@ my{
             other{"ဇင်ဘာဘွေ ခွါးချာ"}\r
         }\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.88"}\r
 }\r
index 7f0bc81c9d385694a20db79fda3d81fa87e91944..a3477b73c0ece1fdd7c501de7959eb893951154e 100644 (file)
@@ -564,6 +564,10 @@ mzn{
         }\r
         VEF{\r
             "VEF",\r
+            "ونزوئلایِ بولیوار (2008–2018)",\r
+        }\r
+        VES{\r
+            "VES",\r
             "ونزوئلایِ بولیوار",\r
         }\r
         VND{\r
@@ -1110,6 +1114,9 @@ mzn{
             other{"ازبکستون ِسام"}\r
         }\r
         VEF{\r
+            other{"ونزوئلایِ بولیوار (2008–2018)"}\r
+        }\r
+        VES{\r
             other{"ونزوئلایِ بولیوار"}\r
         }\r
         VND{\r
@@ -1134,5 +1141,5 @@ mzn{
             other{"زامبیای ِکواچا"}\r
         }\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.41.34"}\r
 }\r
index e202436f31e77e4eea8ba2ba81edd3edacbb0d82..68c3c229ab040b6ab705bd5eb5dfd93141cd6dae 100644 (file)
@@ -1044,6 +1044,10 @@ nb{
         }\r
         VEF{\r
             "VEF",\r
+            "venezuelanske bolivar (2008–2018)",\r
+        }\r
+        VES{\r
+            "VES",\r
             "venezuelanske bolivar",\r
         }\r
         VND{\r
@@ -2343,6 +2347,10 @@ nb{
             other{"venezuelanske bolivar (1871–2008)"}\r
         }\r
         VEF{\r
+            one{"venezuelansk bolivar (2008–2018)"}\r
+            other{"venezuelanske bolivar (2008–2018)"}\r
+        }\r
+        VES{\r
             one{"venezuelansk bolivar"}\r
             other{"venezuelanske bolivar"}\r
         }\r
@@ -2507,5 +2515,5 @@ nb{
         one{"{0} {1}"}\r
         other{"{0} {1}"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.2"}\r
 }\r
index c4183ed535a220a49a425b509e45b377a1d5bc88..62b228e384637acf4f935476acf04b515253ea21 100644 (file)
@@ -604,7 +604,11 @@ ne{
         }\r
         VEF{\r
             "VEF",\r
-            "भेनेजुएलन बोलिभर",\r
+            "भेनेजुएलन बोलिभर (२००८–२०१८)",\r
+        }\r
+        VES{\r
+            "VES",\r
+            "भेनेजुएलन बोलिभर-2",\r
         }\r
         VND{\r
             "₫",\r
@@ -635,7 +639,7 @@ ne{
             "सीएफ्‌पी फ्रान्क",\r
         }\r
         XXX{\r
-            "XXX",\r
+            "¤",\r
             "अज्ञात मुद्रा",\r
         }\r
         YER{\r
@@ -1357,6 +1361,10 @@ ne{
             one{"भेनेजुएलन बोलिभर"}\r
             other{"भेनेजुएलन बोलिभर"}\r
         }\r
+        VES{\r
+            one{"भेनेजुएलन बोलिभर मुद्रा"}\r
+            other{"भेनेजुएलन बोलिभर-3"}\r
+        }\r
         VND{\r
             one{"भियतनामी डङ्"}\r
             other{"भियतनामी डङ्"}\r
@@ -1406,5 +1414,5 @@ ne{
             other{"जाम्बियाली क्वाचा"}\r
         }\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.50"}\r
 }\r
index a8cdaad72eeb70953b0824dd51cbf8b8fd5c2a41..5c6f7d5ac009c5c3227b72128ce1cb899873e2a7 100644 (file)
@@ -1044,6 +1044,10 @@ nl{
         }\r
         VEF{\r
             "VEF",\r
+            "Venezolaanse bolivar (2008–2018)",\r
+        }\r
+        VES{\r
+            "VES",\r
             "Venezolaanse bolivar",\r
         }\r
         VND{\r
@@ -1263,6 +1267,8 @@ nl{
         LBP{"L£"}\r
         LKR{"Rs"}\r
         LRD{"$"}\r
+        LTL{"Lt"}\r
+        LVL{"Ls"}\r
         MGA{"Ar"}\r
         MMK{"K"}\r
         MNT{"₮"}\r
@@ -2351,6 +2357,10 @@ nl{
             other{"Venezolaanse bolivar (1871–2008)"}\r
         }\r
         VEF{\r
+            one{"Venezolaanse bolivar (2008–2018)"}\r
+            other{"Venezolaanse bolivar (2008–2018)"}\r
+        }\r
+        VES{\r
             one{"Venezolaanse bolivar"}\r
             other{"Venezolaanse bolivar"}\r
         }\r
@@ -2519,5 +2529,5 @@ nl{
         one{"{0} {1}"}\r
         other{"{0} {1}"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.45.14"}\r
 }\r
index e5c9301235dd9ec4af4d2016d14f835c48d10dee..fd6c322992a5314286a96ab990cd536eb5d5dd88 100644 (file)
@@ -968,6 +968,10 @@ nn{
         }\r
         VEF{\r
             "VEF",\r
+            "venezuelanske bolivar (2008–2018)",\r
+        }\r
+        VES{\r
+            "VES",\r
             "venezuelanske bolivar",\r
         }\r
         VND{\r
@@ -1055,7 +1059,7 @@ nn{
             "testvalutakode",\r
         }\r
         XXX{\r
-            "XXX",\r
+            "¤",\r
             "ukjend valuta",\r
         }\r
         YDD{\r
@@ -2080,6 +2084,10 @@ nn{
             other{"venezuelanske bolivar (1871–2008)"}\r
         }\r
         VEF{\r
+            one{"venezuelansk bolivar (2008–2018)"}\r
+            other{"venezuelanske bolivar (2008–2018)"}\r
+        }\r
+        VES{\r
             one{"venezuelansk bolivar"}\r
             other{"venezuelanske bolivar"}\r
         }\r
@@ -2204,5 +2212,5 @@ nn{
         one{"{0} {1}"}\r
         other{"{0} {1}"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.94"}\r
 }\r
index 58a3f8e082afd5e7abff3ce61455ae2d40ad37ef..a6e0cc586a99c7c7d7e5fc8f7e36f984e4a24081 100644 (file)
@@ -43,5 +43,5 @@ om{
         one{"{0} {1}"}\r
         other{"{0} {1}"}\r
     }\r
-    Version{"2.1.38.69"}\r
+    Version{"2.1.43.94"}\r
 }\r
index bde600b1aa6fe31720b952539f7dc5c1f9075777..087d1e2d2b35eb70ebb3af9ae84bd526170b9de9 100644 (file)
@@ -588,6 +588,10 @@ or{
         }\r
         VEF{\r
             "VEF",\r
+            "ଭେନେଜୁଏଲାନ୍ ବୋଲିଭାର୍ (2008–2018)",\r
+        }\r
+        VES{\r
+            "VES",\r
             "ଭେନେଜୁଏଲାନ୍ ବୋଲିଭାର୍",\r
         }\r
         VND{\r
@@ -619,7 +623,7 @@ or{
             "CFP ଫ୍ରାଙ୍କ୍",\r
         }\r
         XXX{\r
-            "XXX",\r
+            "¤",\r
             "ଅଜଣା ମୁଦ୍ରା",\r
         }\r
         YER{\r
@@ -1320,6 +1324,10 @@ or{
             other{"ଉଜବେକିସ୍ତାନୀ ସୋମ୍"}\r
         }\r
         VEF{\r
+            one{"ଭେନେଜୁଏଲାନ୍ ବୋଲିଭାର୍ (2008–2018)"}\r
+            other{"ଭେନେଜୁଏଲାନ୍ ବୋଲିଭାର୍ (2008–2018)"}\r
+        }\r
+        VES{\r
             one{"ଭେନେଜୁଏଲାନ୍ ବୋଲିଭାର୍"}\r
             other{"ଭେନେଜୁଏଲାନ୍ ବୋଲିଭାର୍"}\r
         }\r
@@ -1372,5 +1380,5 @@ or{
         one{"{0} {1}"}\r
         other{"{0} {1}"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.65"}\r
 }\r
index ca255d134ce4fbe1087cd064c5de53ecf57af9da..c3e884e1a0efc0b1e9024be31c1d9a0896be2247 100644 (file)
@@ -27,7 +27,7 @@ os{
             "АИШ-ы Доллар",\r
         }\r
         XXX{\r
-            "XXX",\r
+            "¤",\r
             "Нӕзонгӕ валютӕ",\r
         }\r
     }\r
index f43a4f22bfac0af6c454308b948463417c60638e..7b4e27a02c82fc09f127ce63e2dae7b73084d137 100644 (file)
@@ -680,6 +680,10 @@ pa{
         }\r
         VEF{\r
             "VEF",\r
+            "ਵੇਨੇਜ਼ੂਏਲਨ ਬੋਲੀਵਰ (2008–2018)",\r
+        }\r
+        VES{\r
+            "VES",\r
             "ਵੇਨੇਜ਼ੂਏਲਨ ਬੋਲੀਵਰ",\r
         }\r
         VND{\r
@@ -1454,7 +1458,7 @@ pa{
             other{"ਸਾਉ ਟੋਮੀ ਐਂਡ ਪ੍ਰਿੰਸਪੀ ਡੋਬਰਾ (1977–2017)"}\r
         }\r
         STN{\r
-            one{"ਸਾà¨\89 à¨\9fà©\8bਮà©\80 à¨\90à¨\82ਡ ਪ੍ਰਿੰਸਪੀ ਡੋਬਰਾ"}\r
+            one{"ਸਾà¨\89 à¨\9fà©\8bਮà©\80 à¨\85ਤà©\87 ਪ੍ਰਿੰਸਪੀ ਡੋਬਰਾ"}\r
             other{"ਸਾਉ ਟੋਮੀ ਐਂਡ ਪ੍ਰਿੰਸਪੀ ਡੋਬਰਾ"}\r
         }\r
         SUR{\r
@@ -1534,6 +1538,10 @@ pa{
             other{"ਵੇਨੇਜ਼ੂਏਲਨ ਬੋਲੀਵਰ (1871–2008)"}\r
         }\r
         VEF{\r
+            one{"ਵੇਨੇਜ਼ੂਏਲਨ ਬੋਲੀਵਰ (2008–2018)"}\r
+            other{"ਵੇਨੇਜ਼ੂਏਲਨ ਬੋਲੀਵਰ (2008–2018)"}\r
+        }\r
+        VES{\r
             one{"ਵੇਨੇਜ਼ੂਏਲਨ ਬੋਲੀਵਰ"}\r
             other{"ਵੇਨੇਜ਼ੂਏਲਨ ਬੋਲੀਵਰ"}\r
         }\r
@@ -1606,5 +1614,5 @@ pa{
         one{"{0} {1}"}\r
         other{"{0} {1}"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.65"}\r
 }\r
index bc1af4cee6039f7ddc868f11a5eca26498670dde..f00024a019e51f38f31094936fb6b163905dbebc 100644 (file)
@@ -936,6 +936,10 @@ pl{
         }\r
         VEF{\r
             "VEF",\r
+            "boliwar wenezuelski (2008–2018)",\r
+        }\r
+        VES{\r
+            "VES",\r
             "boliwar wenezuelski",\r
         }\r
         VND{\r
@@ -1011,7 +1015,7 @@ pl{
             "testowy kod waluty",\r
         }\r
         XXX{\r
-            "XXX",\r
+            "¤",\r
             "nieznana waluta",\r
         }\r
         YDD{\r
@@ -2237,6 +2241,12 @@ pl{
             other{"boliwary wenezuelskiego (1871–2008)"}\r
         }\r
         VEF{\r
+            few{"boliwary wenezuelskie (2008–2018)"}\r
+            many{"boliwarów wenezuelskich (2008–2018)"}\r
+            one{"boliwar wenezuelski (2008–2018)"}\r
+            other{"boliwara wenezuelskiego (2008–2018)"}\r
+        }\r
+        VES{\r
             few{"boliwary wenezuelskie"}\r
             many{"boliwarów wenezuelskich"}\r
             one{"boliwar wenezuelski"}\r
@@ -2321,5 +2331,5 @@ pl{
         one{"{0} {1}"}\r
         other{"{0} {1}"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.50"}\r
 }\r
index 3001bd995cb6b12147b737627405f9bc84884042..20658a7a45331c1775a68f236705dee8642f0406 100644 (file)
Binary files a/source/data/curr/pool.res and b/source/data/curr/pool.res differ
index c38ad3283f5fb38f46da0f779ac4c203df8d7e77..2df84f8e6e4c337fb302856033a7e45eee2573ca 100644 (file)
@@ -592,7 +592,11 @@ ps{
         }\r
         VEF{\r
             "VEF",\r
-            "VEF",\r
+            "VEF (2008–2018)",\r
+        }\r
+        VES{\r
+            "VES",\r
+            "VES",\r
         }\r
         VND{\r
             "₫",\r
@@ -623,8 +627,8 @@ ps{
             "XPF",\r
         }\r
         XXX{\r
-            "XXX",\r
-            "نامعلوم د اسعارو له",\r
+            "¤",\r
+            "نامعلومه مروجه پېسې",\r
         }\r
         YER{\r
             "YER",\r
@@ -1104,8 +1108,8 @@ ps{
             other{"MOP"}\r
         }\r
         MRO{\r
-            one{"MRO"}\r
-            other{"MRO"}\r
+            one{"MRO (1973–2017)"}\r
+            other{"MRO (1973–2017)"}\r
         }\r
         MRU{\r
             one{"MRU"}\r
@@ -1328,8 +1332,12 @@ ps{
             other{"UZS"}\r
         }\r
         VEF{\r
-            one{"VEF"}\r
-            other{"VEF"}\r
+            one{"VEF (2008–2018)"}\r
+            other{"VEF (2008–2018)"}\r
+        }\r
+        VES{\r
+            one{"VES"}\r
+            other{"VES"}\r
         }\r
         VND{\r
             one{"VND"}\r
@@ -1360,8 +1368,8 @@ ps{
             other{"XPF"}\r
         }\r
         XXX{\r
-            one{"د اسعارو د نامعلومو واحد"}\r
-            other{"نامعلوم د اسعارو له"}\r
+            one{"(د نامعلومه مروجه پېسو واحد)"}\r
+            other{"(نامعلومه مروجه پېسې)"}\r
         }\r
         YER{\r
             one{"YER"}\r
@@ -1376,5 +1384,5 @@ ps{
             other{"ZMW"}\r
         }\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.94"}\r
 }\r
index c76960ca524dbb9dbc351192547e815ab8d4a470..7da17fb8ee3af07e334a7cfe9f5f0720793cad66 100644 (file)
@@ -8,7 +8,7 @@ pt{
         }\r
         AED{\r
             "AED",\r
-            "Dir dos Emirados Árabes Unidos",\r
+            "Dirham dos Emirados Árabes Unidos",\r
         }\r
         AFA{\r
             "AFA",\r
@@ -108,7 +108,7 @@ pt{
         }\r
         BDT{\r
             "BDT",\r
-            "Taka bengalesa",\r
+            "Taka bengali",\r
         }\r
         BEC{\r
             "BEC",\r
@@ -156,7 +156,7 @@ pt{
         }\r
         BOB{\r
             "BOB",\r
-            "Boliviano",\r
+            "Boliviano da Bolívia",\r
         }\r
         BOL{\r
             "BOL",\r
@@ -264,7 +264,7 @@ pt{
         }\r
         CNH{\r
             "CNH",\r
-            "Yuan (offshore)",\r
+            "Renminbi chinês (offshore)",\r
         }\r
         CNX{\r
             "CNX",\r
@@ -272,7 +272,7 @@ pt{
         }\r
         CNY{\r
             "CN¥",\r
-            "Yuan chinês",\r
+            "Renminbi chinês",\r
         }\r
         COP{\r
             "COP",\r
@@ -496,7 +496,7 @@ pt{
         }\r
         ILS{\r
             "₪",\r
-            "Sheqel novo israelita",\r
+            "Novo shekel israelense",\r
         }\r
         INR{\r
             "₹",\r
@@ -588,7 +588,7 @@ pt{
         }\r
         LKR{\r
             "LKR",\r
-            "Rupia ceilandesa",\r
+            "Rupia do Sri Lanka",\r
         }\r
         LRD{\r
             "LRD",\r
@@ -672,7 +672,7 @@ pt{
         }\r
         MMK{\r
             "MMK",\r
-            "Kyat mianmarense",\r
+            "Quiat de Myanmar",\r
         }\r
         MNT{\r
             "MNT",\r
@@ -680,7 +680,7 @@ pt{
         }\r
         MOP{\r
             "MOP",\r
-            "Pataca macaense",\r
+            "Pataca de Macau",\r
         }\r
         MRO{\r
             "MRO",\r
@@ -704,7 +704,7 @@ pt{
         }\r
         MVR{\r
             "MVR",\r
-            "Rupia maldiva",\r
+            "Rupia maldivana",\r
         }\r
         MWK{\r
             "MWK",\r
@@ -784,7 +784,7 @@ pt{
         }\r
         PEN{\r
             "PEN",\r
-            "Sol peruano",\r
+            "Novo sol peruano",\r
         }\r
         PES{\r
             "PES",\r
@@ -804,7 +804,7 @@ pt{
         }\r
         PLN{\r
             "PLN",\r
-            "Zloti polonês",\r
+            "Zloty polonês",\r
         }\r
         PLZ{\r
             "PLZ",\r
@@ -900,7 +900,7 @@ pt{
         }\r
         SOS{\r
             "SOS",\r
-            "Xelim somaliano",\r
+            "Xelim somali",\r
         }\r
         SRD{\r
             "SRD",\r
@@ -1040,6 +1040,10 @@ pt{
         }\r
         VEF{\r
             "VEF",\r
+            "Bolívar venezuelano (2008–2018)",\r
+        }\r
+        VES{\r
+            "VES",\r
             "Bolívar venezuelano",\r
         }\r
         VND{\r
@@ -1052,7 +1056,7 @@ pt{
         }\r
         VUV{\r
             "VUV",\r
-            "Vatu vanuatuense",\r
+            "Vatu de Vanuatu",\r
         }\r
         WST{\r
             "WST",\r
@@ -1131,7 +1135,7 @@ pt{
             "Código de Moeda de Teste",\r
         }\r
         XXX{\r
-            "XXX",\r
+            "¤",\r
             "Moeda desconhecida",\r
         }\r
         YDD{\r
@@ -1276,7 +1280,7 @@ pt{
         SRD{"$"}\r
         SSP{"£"}\r
         STN{"Db"}\r
-        SYP{"£"}\r
+        SYP{"S£"}\r
         THB{"฿"}\r
         TOP{"T$"}\r
         TRY{"₺"}\r
@@ -1301,8 +1305,8 @@ pt{
             other{"Pesetas de Andorra"}\r
         }\r
         AED{\r
-            one{"Dirrã dos Emirados Árabes Unidos"}\r
-            other{"Dirrãs dos Emirados Árabes Unidos"}\r
+            one{"Dirham dos EAU"}\r
+            other{"Dirhams dos EAU"}\r
         }\r
         AFA{\r
             one{"Afegane do Afeganistão (AFA)"}\r
@@ -1401,8 +1405,8 @@ pt{
             other{"Dólares barbadenses"}\r
         }\r
         BDT{\r
-            one{"Taka bengalesa"}\r
-            other{"Takas bengalesas"}\r
+            one{"Taka bengali"}\r
+            other{"Takas bengalis"}\r
         }\r
         BEC{\r
             one{"Franco belga (conversível)"}\r
@@ -1449,8 +1453,8 @@ pt{
             other{"Dólares bruneanos"}\r
         }\r
         BOB{\r
-            one{"Boliviano"}\r
-            other{"Bolivianos"}\r
+            one{"Boliviano da Bolívia"}\r
+            other{"Bolivianos da Bolívia"}\r
         }\r
         BOL{\r
             one{"Boliviano (1863–1963)"}\r
@@ -1557,8 +1561,8 @@ pt{
             other{"Pesos chilenos"}\r
         }\r
         CNH{\r
-            one{"Yuan (offshore)"}\r
-            other{"Yuans (offshore)"}\r
+            one{"Yuan chinês (offshore)"}\r
+            other{"Yuans chineses (offshore)"}\r
         }\r
         CNX{\r
             one{"Dólar do Banco Popular da China"}\r
@@ -1789,8 +1793,8 @@ pt{
             other{"Sheqels antigos israelitas"}\r
         }\r
         ILS{\r
-            one{"Sheqel novo israelita"}\r
-            other{"Sheqels novos israelita"}\r
+            one{"Novo shekel israelense"}\r
+            other{"Novos shekels israelenses"}\r
         }\r
         INR{\r
             one{"Rupia indiana"}\r
@@ -1881,8 +1885,8 @@ pt{
             other{"Libras libanesas"}\r
         }\r
         LKR{\r
-            one{"Rupia ceilandesa"}\r
-            other{"Rupias ceilandesas"}\r
+            one{"Rupia do Sri Lanka"}\r
+            other{"Rupias do Sri Lanka"}\r
         }\r
         LRD{\r
             one{"Dólar liberiano"}\r
@@ -1965,16 +1969,16 @@ pt{
             other{"Francos de Mali"}\r
         }\r
         MMK{\r
-            one{"Kyat mianmarense"}\r
-            other{"Kyats mianmarenses"}\r
+            one{"Quiat de Myanmar"}\r
+            other{"Quiat de Myanmar"}\r
         }\r
         MNT{\r
             one{"Tugrik mongol"}\r
             other{"Tugriks mongóis"}\r
         }\r
         MOP{\r
-            one{"Pataca macaense"}\r
-            other{"Patacas macaenses"}\r
+            one{"Pataca de Macau"}\r
+            other{"Patacas de Macau"}\r
         }\r
         MRO{\r
             one{"Ouguiya mauritana (1973–2017)"}\r
@@ -1997,8 +2001,8 @@ pt{
             other{"Rupias mauricianas"}\r
         }\r
         MVR{\r
-            one{"Rupia maldiva"}\r
-            other{"Rupias maldivas"}\r
+            one{"Rupia maldivana"}\r
+            other{"Rupias maldivanas"}\r
         }\r
         MWK{\r
             one{"Kwacha malauiana"}\r
@@ -2077,8 +2081,8 @@ pt{
             other{"Intis peruanos"}\r
         }\r
         PEN{\r
-            one{"Sol peruano"}\r
-            other{"Sóis peruanos"}\r
+            one{"Novo sol peruano"}\r
+            other{"Novos sóis peruanos"}\r
         }\r
         PES{\r
             one{"Sol peruano (1863–1965)"}\r
@@ -2097,8 +2101,8 @@ pt{
             other{"Rupias paquistanesas"}\r
         }\r
         PLN{\r
-            one{"Zloti polonês"}\r
-            other{"Zlotis poloneses"}\r
+            one{"Zloty polonês"}\r
+            other{"Zlotys poloneses"}\r
         }\r
         PLZ{\r
             one{"Zloti polonês (1950–1995)"}\r
@@ -2193,8 +2197,8 @@ pt{
             other{"Leones de Serra Leoa"}\r
         }\r
         SOS{\r
-            one{"Xelim somaliano"}\r
-            other{"Xelins somalianos"}\r
+            one{"Xelim somali"}\r
+            other{"Xelins somalis"}\r
         }\r
         SRD{\r
             one{"Dólar surinamês"}\r
@@ -2333,6 +2337,10 @@ pt{
             other{"Bolívares venezuelanos (1871–2008)"}\r
         }\r
         VEF{\r
+            one{"Bolívar venezuelano (2008–2018)"}\r
+            other{"Bolívares venezuelanos (2008–2018)"}\r
+        }\r
+        VES{\r
             one{"Bolívar venezuelano"}\r
             other{"Bolívares venezuelanos"}\r
         }\r
@@ -2345,8 +2353,8 @@ pt{
             other{"Dong vietnamita (1978–1985)"}\r
         }\r
         VUV{\r
-            one{"Vatu vanuatuense"}\r
-            other{"Vatus vanuatuenses"}\r
+            one{"Vatu de Vanuatu"}\r
+            other{"Vatus de Vanuatu"}\r
         }\r
         WST{\r
             one{"Tala samoano"}\r
@@ -2425,7 +2433,7 @@ pt{
             other{"Códigos de moeda de teste"}\r
         }\r
         XXX{\r
-            one{"(moeda desconhecida)"}\r
+            one{"(unidade monetária desconhecida)"}\r
             other{"(moedas desconhecidas)"}\r
         }\r
         YDD{\r
@@ -2493,5 +2501,5 @@ pt{
         one{"{0} {1}"}\r
         other{"{0} {1}"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.65"}\r
 }\r
index 8bc1b6ac9ce4ee507e8008a49a66048af272fc54..3c344f17c30576596ffdd75fa3b8228e1b686a7c 100644 (file)
@@ -5,7 +5,7 @@ pt_AO{
     Currencies{\r
         AOA{\r
             "Kz",\r
-            "Kwanza angolano",\r
+            "kwanza angolano",\r
         }\r
     }\r
     Version{"2.1.38.39"}\r
index dab5ae51e2b8b877234e59172a9948d3199f3f83..71b6157952a0909fc86824cce2717b8b89451087 100644 (file)
@@ -5,7 +5,7 @@ pt_MZ{
     Currencies{\r
         MZN{\r
             "MTn",\r
-            "Metical de Moçambique",\r
+            "metical moçambicano",\r
         }\r
     }\r
     Version{"2.1.38.39"}\r
index d99149d8b7beb23eddb9b837571bb9c6e297d5ea..c29d57cda856379dd415dde8407c869429844dc6 100644 (file)
@@ -2,10 +2,6 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 pt_PT{\r
     Currencies{\r
-        AED{\r
-            "AED",\r
-            "Dirham dos Emirados Árabes Unidos",\r
-        }\r
         AFA{\r
             "AFA",\r
             "Afeghani (1927–2002)",\r
@@ -22,6 +18,10 @@ pt_PT{
             "AMD",\r
             "Dram arménio",\r
         }\r
+        AOA{\r
+            "AOA",\r
+            "kwanza angolano",\r
+        }\r
         ARS{\r
             "ARS",\r
             "peso argentino",\r
@@ -62,6 +62,10 @@ pt_PT{
             "BHD",\r
             "Dinar baremita",\r
         }\r
+        BIF{\r
+            "BIF",\r
+            "franco burundiano",\r
+        }\r
         BMD{\r
             "BMD",\r
             "dólar bermudense",\r
@@ -106,6 +110,10 @@ pt_PT{
             "CA$",\r
             "dólar canadiano",\r
         }\r
+        CDF{\r
+            "CDF",\r
+            "franco congolês",\r
+        }\r
         CHF{\r
             "CHF",\r
             "franco suíço",\r
@@ -152,7 +160,7 @@ pt_PT{
         }\r
         DJF{\r
             "DJF",\r
-            "Franco jibutiano",\r
+            "franco jibutiano",\r
         }\r
         DKK{\r
             "DKK",\r
@@ -170,6 +178,14 @@ pt_PT{
             "EGP",\r
             "libra egípcia",\r
         }\r
+        ERN{\r
+            "ERN",\r
+            "nakfa eritreia",\r
+        }\r
+        ETB{\r
+            "ETB",\r
+            "birr etíope",\r
+        }\r
         EUR{\r
             "€",\r
             "euro",\r
@@ -188,7 +204,7 @@ pt_PT{
         }\r
         GHS{\r
             "GHS",\r
-            "Cedi de Gana",\r
+            "cedi ganês",\r
         }\r
         GIP{\r
             "GIP",\r
@@ -196,11 +212,11 @@ pt_PT{
         }\r
         GMD{\r
             "GMD",\r
-            "Dalasi da Gâmbia",\r
+            "dalasi gambiano",\r
         }\r
         GNF{\r
             "GNF",\r
-            "Franco guineense",\r
+            "franco guineense",\r
         }\r
         GTQ{\r
             "GTQ",\r
@@ -222,14 +238,26 @@ pt_PT{
             "HUF",\r
             "forint húngaro",\r
         }\r
+        ILS{\r
+            "₪",\r
+            "Sheqel novo israelita",\r
+        }\r
         ISK{\r
             "ISK",\r
             "coroa islandesa",\r
         }\r
+        KES{\r
+            "KES",\r
+            "xelim queniano",\r
+        }\r
         KGS{\r
             "KGS",\r
             "Som do Quirguistão",\r
         }\r
+        KMF{\r
+            "KMF",\r
+            "franco comoriano",\r
+        }\r
         KYD{\r
             "KYD",\r
             "Dólar das Ilhas Caimão",\r
@@ -242,9 +270,9 @@ pt_PT{
             "LAK",\r
             "Kip de Laos",\r
         }\r
-        LKR{\r
-            "LKR",\r
-            "Rupia do Sri Lanka",\r
+        LRD{\r
+            "LRD",\r
+            "dólar liberiano",\r
         }\r
         LTL{\r
             "LTL",\r
@@ -268,7 +296,7 @@ pt_PT{
         }\r
         MGA{\r
             "MGA",\r
-            "Ariari de Madagáscar",\r
+            "ariari malgaxe",\r
         }\r
         MKD{\r
             "MKD",\r
@@ -282,17 +310,17 @@ pt_PT{
             "MNT",\r
             "Tugrik da Mongólia",\r
         }\r
-        MOP{\r
-            "MOP",\r
-            "Pataca de Macau",\r
-        }\r
         MRO{\r
             "MRO",\r
-            "Ouguiya da Mauritânia (1973–2017)",\r
+            "ouguiya mauritana (1973–2017)",\r
         }\r
         MRU{\r
             "MRU",\r
-            "Ouguiya da Mauritânia",\r
+            "ouguiya mauritana",\r
+        }\r
+        MUR{\r
+            "MUR",\r
+            "rupia mauriciana",\r
         }\r
         MVR{\r
             "MVR",\r
@@ -300,7 +328,7 @@ pt_PT{
         }\r
         MWK{\r
             "MWK",\r
-            "Kwacha do Malawi",\r
+            "kwacha malauiano",\r
         }\r
         MXN{\r
             "MX$",\r
@@ -316,7 +344,7 @@ pt_PT{
         }\r
         MZN{\r
             "MZN",\r
-            "Metical de Moçambique",\r
+            "metical moçambicano",\r
         }\r
         NAD{\r
             "NAD",\r
@@ -383,10 +411,18 @@ pt_PT{
             "RUB",\r
             "rublo russo",\r
         }\r
+        RWF{\r
+            "RWF",\r
+            "franco ruandês",\r
+        }\r
         SAR{\r
             "SAR",\r
             "Rial saudita",\r
         }\r
+        SCR{\r
+            "SCR",\r
+            "rupia seichelense",\r
+        }\r
         SDG{\r
             "SDG",\r
             "libra sudanesa",\r
@@ -399,17 +435,25 @@ pt_PT{
             "SGD",\r
             "Dólar de Singapura",\r
         }\r
+        SHP{\r
+            "SHP",\r
+            "libra santa-helenense",\r
+        }\r
         SOS{\r
             "SOS",\r
-            "Xelim somali",\r
+            "xelim somali",\r
         }\r
         SRD{\r
             "SRD",\r
             "dólar do Suriname",\r
         }\r
+        SSP{\r
+            "SSP",\r
+            "libra sul-sudanesa",\r
+        }\r
         STN{\r
             "STN",\r
-            "São Tomé & Príncipe Dobra (2018)",\r
+            "dobra de São Tomé e Príncipe",\r
         }\r
         SZL{\r
             "SZL",\r
@@ -457,15 +501,15 @@ pt_PT{
         }\r
         VEF{\r
             "VEF",\r
-            "bolívar",\r
+            "bolívar (2008–2018)",\r
         }\r
-        VUV{\r
-            "VUV",\r
-            "Vatu de Vanuatu",\r
+        VES{\r
+            "VES",\r
+            "bolívar",\r
         }\r
         XAF{\r
             "FCFA",\r
-            "Franco CFA (BEAC)",\r
+            "franco CFA (BEAC)",\r
         }\r
         XCD{\r
             "EC$",\r
@@ -476,7 +520,7 @@ pt_PT{
             "franco CFA (BCEAO)",\r
         }\r
         XXX{\r
-            "XXX",\r
+            "¤",\r
             "moeda desconhecida",\r
         }\r
         ZMK{\r
@@ -484,6 +528,9 @@ pt_PT{
             "Kwacha zambiano (1968–2012)",\r
         }\r
     }\r
+    Currencies%narrow{\r
+        SYP{"£"}\r
+    }\r
     CurrencyPlurals{\r
         AED{\r
             one{"Dirham dos Emirados Árabes Unidos"}\r
@@ -501,6 +548,10 @@ pt_PT{
             one{"Dram arménio"}\r
             other{"Drams arménios"}\r
         }\r
+        AOA{\r
+            one{"kwanza angolano"}\r
+            other{"kwanzas angolanos"}\r
+        }\r
         ARS{\r
             one{"peso argentino"}\r
             other{"pesos argentinos"}\r
@@ -533,6 +584,10 @@ pt_PT{
             one{"Dinar baremita"}\r
             other{"Dinares baremitas"}\r
         }\r
+        BIF{\r
+            one{"franco burundiano"}\r
+            other{"francos burundianos"}\r
+        }\r
         BMD{\r
             one{"dólar bermudense"}\r
             other{"dólares bermudense"}\r
@@ -573,6 +628,10 @@ pt_PT{
             one{"dólar canadiano"}\r
             other{"dólares canadianos"}\r
         }\r
+        CDF{\r
+            one{"franco congolês"}\r
+            other{"francos congoleses"}\r
+        }\r
         CHF{\r
             one{"franco suíço"}\r
             other{"francos suíços"}\r
@@ -614,8 +673,8 @@ pt_PT{
             other{"coroas checas"}\r
         }\r
         DJF{\r
-            one{"Franco jibutiano"}\r
-            other{"Francos jibutianos"}\r
+            one{"franco jibutiano"}\r
+            other{"francos jibutianos"}\r
         }\r
         DKK{\r
             one{"coroa dinamarquesa"}\r
@@ -629,6 +688,14 @@ pt_PT{
             one{"libra egípcia"}\r
             other{"libras egípcias"}\r
         }\r
+        ERN{\r
+            one{"nakfa eritreia"}\r
+            other{"nakfas eritreias"}\r
+        }\r
+        ETB{\r
+            one{"birr etíope"}\r
+            other{"birres etíopes"}\r
+        }\r
         EUR{\r
             one{"euro"}\r
             other{"euros"}\r
@@ -646,20 +713,20 @@ pt_PT{
             other{"libras esterlinas britânicas"}\r
         }\r
         GHS{\r
-            one{"Cedi de Gana"}\r
-            other{"Cedis de Gana"}\r
+            one{"cedi ganês"}\r
+            other{"cedis ganeses"}\r
         }\r
         GIP{\r
             one{"libra de Gibraltar"}\r
             other{"libras de Gibraltar"}\r
         }\r
         GMD{\r
-            one{"Dalasi da Gâmbia"}\r
-            other{"Dalasis da Gâmbia"}\r
+            one{"dalasi gambiano"}\r
+            other{"dalasis gambianos"}\r
         }\r
         GNF{\r
-            one{"Franco guineense"}\r
-            other{"Francos guineenses"}\r
+            one{"franco guineense"}\r
+            other{"francos guineenses"}\r
         }\r
         GTQ{\r
             one{"quetzal da Guatemala"}\r
@@ -693,10 +760,18 @@ pt_PT{
             one{"coroa islandesa"}\r
             other{"coroas islandesas"}\r
         }\r
+        KES{\r
+            one{"xelim queniano"}\r
+            other{"xelins quenianos"}\r
+        }\r
         KGS{\r
             one{"Som do Quirguistão"}\r
             other{"Sons do Quirguistão"}\r
         }\r
+        KMF{\r
+            one{"franco comoriano"}\r
+            other{"francos comorianos"}\r
+        }\r
         KYD{\r
             one{"Dólar das Ilhas Caimão"}\r
             other{"Dólares das Ilhas Caimão"}\r
@@ -709,9 +784,9 @@ pt_PT{
             one{"Kip de Laos"}\r
             other{"Kips de Laos"}\r
         }\r
-        LKR{\r
-            one{"Rupia do Sri Lanka"}\r
-            other{"Rupias do Sri Lanka"}\r
+        LRD{\r
+            one{"dólar liberiano"}\r
+            other{"dólares liberianos"}\r
         }\r
         LTL{\r
             one{"Litas da Lituânia"}\r
@@ -734,8 +809,8 @@ pt_PT{
             other{"leus moldavos"}\r
         }\r
         MGA{\r
-            one{"Ariari de Madagáscar"}\r
-            other{"Ariaris de Madagáscar"}\r
+            one{"ariari malgaxe"}\r
+            other{"ariaris malgaxes"}\r
         }\r
         MKD{\r
             one{"dinar macedónio"}\r
@@ -749,33 +824,33 @@ pt_PT{
             one{"Tugrik da Mongólia"}\r
             other{"Tugriks da Mongólia"}\r
         }\r
-        MOP{\r
-            one{"Pataca de Macau"}\r
-            other{"Patacas de Macau"}\r
-        }\r
         MRO{\r
-            one{"Ouguiya da Mauritânia (1973–2017)"}\r
-            other{"Ouguiyas da Mauritânia (1973–2017)"}\r
+            one{"ouguiya mauritana (1973–2017)"}\r
+            other{"ouguiyas mauritanas (1973–2017)"}\r
         }\r
         MRU{\r
-            one{"Ouguiya da Mauritânia"}\r
-            other{"Ouguiyas da Mauritânia"}\r
+            one{"ouguiya mauritana"}\r
+            other{"ouguiyas mauritanas"}\r
+        }\r
+        MUR{\r
+            one{"rupia mauriciana"}\r
+            other{"rupias mauricianas"}\r
         }\r
         MVR{\r
             one{"Rupia das Ilhas Maldivas"}\r
             other{"Rupias das Ilhas Maldivas"}\r
         }\r
         MWK{\r
-            one{"Kwacha do Malawi"}\r
-            other{"Kwachas do Malawi"}\r
+            one{"kwacha malauiano"}\r
+            other{"kwachas malauianos"}\r
         }\r
         MXN{\r
             one{"peso mexicano"}\r
             other{"pesos mexicanos"}\r
         }\r
         MZN{\r
-            one{"Metical de Moçambique"}\r
-            other{"Meticales de Moçambique"}\r
+            one{"metical moçambicano"}\r
+            other{"meticais moçambicanos"}\r
         }\r
         NAD{\r
             one{"Dólar da Namíbia"}\r
@@ -837,10 +912,18 @@ pt_PT{
             one{"rublo russo"}\r
             other{"rublos russos"}\r
         }\r
+        RWF{\r
+            one{"franco ruandês"}\r
+            other{"francos ruandeses"}\r
+        }\r
         SAR{\r
             one{"Rial saudita"}\r
             other{"Riais sauditas"}\r
         }\r
+        SCR{\r
+            one{"rupia seichelense"}\r
+            other{"rupias seichelenses"}\r
+        }\r
         SDG{\r
             one{"libra sudanesa"}\r
             other{"libras sudanesas"}\r
@@ -854,16 +937,20 @@ pt_PT{
             other{"Dólares de Singapura"}\r
         }\r
         SOS{\r
-            one{"Xelim somali"}\r
-            other{"Xelins somalis"}\r
+            one{"xelim somali"}\r
+            other{"xelins somalis"}\r
         }\r
         SRD{\r
             one{"dólar do Suriname"}\r
             other{"dólares do Suriname"}\r
         }\r
+        SSP{\r
+            one{"libra sul-sudanesa"}\r
+            other{"libras sul-sudanesas"}\r
+        }\r
         STN{\r
-            one{"São Tomé & Príncipe dobra (2018)"}\r
-            other{"São Tomé & Príncipe dobras (2018)"}\r
+            one{"dobra de São Tomé e Príncipe"}\r
+            other{"dobras de São Tomé e Príncipe"}\r
         }\r
         SZL{\r
             one{"Lilangeni da Suazilândia"}\r
@@ -910,16 +997,16 @@ pt_PT{
             other{"Sons do Uzbequistão"}\r
         }\r
         VEF{\r
+            one{"bolívar (2008–2018)"}\r
+            other{"bolívares (2008–2018)"}\r
+        }\r
+        VES{\r
             one{"bolívar"}\r
             other{"bolívares"}\r
         }\r
-        VUV{\r
-            one{"Vatu de Vanuatu"}\r
-            other{"Vatus de Vanuatu"}\r
-        }\r
         XAF{\r
-            one{"Franco CFA (BEAC)"}\r
-            other{"Francos CFA (BEAC)"}\r
+            one{"franco CFA (BEAC)"}\r
+            other{"francos CFA (BEAC)"}\r
         }\r
         XCD{\r
             one{"Dólar das Caraíbas Orientais"}\r
@@ -929,6 +1016,10 @@ pt_PT{
             one{"franco CFA (BCEAO)"}\r
             other{"francos CFA (BCEAO)"}\r
         }\r
+        XXX{\r
+            one{"(moeda desconhecida)"}\r
+            other{"(moedas desconhecidas)"}\r
+        }\r
         YER{\r
             one{"Rial iemenita"}\r
             other{"Riais iemenitas"}\r
@@ -938,5 +1029,5 @@ pt_PT{
             other{"Kwachas zambianos (1968–2012)"}\r
         }\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.9"}\r
 }\r
index 49f4bf9d07cd86ae2a314d62684cb5ced9bc3e89..1a3fc4964ab77ce9cc1a7a2a42836d114031da2d 100644 (file)
@@ -5,7 +5,7 @@ pt_ST{
     Currencies{\r
         STN{\r
             "Db",\r
-            "São Tomé & Príncipe Dobra (2018)",\r
+            "dobra de São Tomé e Príncipe",\r
         }\r
     }\r
     Version{"2.1.39.11"}\r
index a60557727aa33e8f60307f478a113b30a2c15811..a08b435fa8d56b1aa38b1e76e8862f0e6933e887 100644 (file)
@@ -10,5 +10,5 @@ qu{
     CurrencyUnitPatterns{\r
         other{"{0} {1}"}\r
     }\r
-    Version{"2.1.38.72"}\r
+    Version{"2.1.43.94"}\r
 }\r
index c56afcaac0458cb84f76a9ab08656b529d171de2..827351c8b98933f2cbc64a94d7cdcc6edb739a2c 100644 (file)
@@ -1,6 +1,6 @@
 # © 2016 and later: Unicode, Inc. and others.\r
 # License & terms of use: http://www.unicode.org/copyright.html#License\r
-CURR_CLDR_VERSION = 33.1\r
+CURR_CLDR_VERSION = 34\r
 # A list of txt's to build\r
 # Note:\r
 #\r
@@ -85,50 +85,51 @@ CURR_SOURCE = af.txt af_NA.txt agq.txt ak.txt\
  es_MX.txt es_NI.txt es_PA.txt es_PE.txt es_PH.txt\\r
  es_PR.txt es_PY.txt es_SV.txt es_US.txt es_UY.txt\\r
  es_VE.txt et.txt eu.txt ewo.txt fa.txt\\r
- fa_AF.txt ff.txt ff_GN.txt ff_MR.txt fi.txt\\r
- fil.txt fo.txt fo_DK.txt fr.txt fr_BI.txt\\r
- fr_CA.txt fr_CD.txt fr_DJ.txt fr_DZ.txt fr_GN.txt\\r
- fr_HT.txt fr_KM.txt fr_LU.txt fr_MG.txt fr_MR.txt\\r
- fr_MU.txt fr_RW.txt fr_SC.txt fr_SY.txt fr_TN.txt\\r
- fr_VU.txt fur.txt fy.txt ga.txt gd.txt\\r
- gl.txt gsw.txt gu.txt guz.txt gv.txt\\r
- ha.txt ha_GH.txt haw.txt he.txt hi.txt\\r
- hr.txt hr_BA.txt hsb.txt hu.txt hy.txt\\r
- id.txt ig.txt ii.txt is.txt it.txt\\r
- ja.txt jgo.txt jmc.txt ka.txt kab.txt\\r
+ fa_AF.txt ff.txt fi.txt fil.txt fo.txt\\r
+ fo_DK.txt fr.txt fr_BI.txt fr_CA.txt fr_CD.txt\\r
+ fr_DJ.txt fr_DZ.txt fr_GN.txt fr_HT.txt fr_KM.txt\\r
+ fr_LU.txt fr_MG.txt fr_MR.txt fr_MU.txt fr_RW.txt\\r
+ fr_SC.txt fr_SY.txt fr_TN.txt fr_VU.txt fur.txt\\r
+ fy.txt ga.txt gd.txt gl.txt gsw.txt\\r
+ gu.txt guz.txt gv.txt ha.txt ha_GH.txt\\r
+ haw.txt he.txt hi.txt hr.txt hr_BA.txt\\r
+ hsb.txt hu.txt hy.txt ia.txt id.txt\\r
+ ig.txt ii.txt is.txt it.txt ja.txt\\r
+ jgo.txt jmc.txt jv.txt ka.txt kab.txt\\r
  kam.txt kde.txt kea.txt khq.txt ki.txt\\r
  kk.txt kkj.txt kl.txt kln.txt km.txt\\r
  kn.txt ko.txt kok.txt ks.txt ksb.txt\\r
- ksf.txt ksh.txt kw.txt ky.txt lag.txt\\r
- lb.txt lg.txt lkt.txt ln.txt ln_AO.txt\\r
- lo.txt lrc.txt lt.txt lu.txt luo.txt\\r
- luy.txt lv.txt mas.txt mas_TZ.txt mer.txt\\r
- mfe.txt mg.txt mgh.txt mgo.txt mk.txt\\r
- ml.txt mn.txt mr.txt ms.txt ms_BN.txt\\r
- ms_SG.txt mt.txt mua.txt my.txt mzn.txt\\r
- naq.txt nb.txt nd.txt nds.txt ne.txt\\r
- nl.txt nl_AW.txt nl_BQ.txt nl_CW.txt nl_SR.txt\\r
- nl_SX.txt nmg.txt nn.txt nnh.txt nus.txt\\r
- nyn.txt om.txt om_KE.txt or.txt os.txt\\r
- os_RU.txt pa.txt pa_Arab.txt pa_Guru.txt pl.txt\\r
- ps.txt pt.txt pt_AO.txt pt_CH.txt pt_CV.txt\\r
- pt_GQ.txt pt_GW.txt pt_LU.txt pt_MO.txt pt_MZ.txt\\r
- pt_PT.txt pt_ST.txt pt_TL.txt qu.txt qu_BO.txt\\r
- qu_EC.txt rm.txt rn.txt ro.txt ro_MD.txt\\r
- rof.txt ru.txt ru_BY.txt ru_KG.txt ru_KZ.txt\\r
- ru_MD.txt rw.txt rwk.txt sah.txt saq.txt\\r
- sbp.txt se.txt se_SE.txt seh.txt ses.txt\\r
- sg.txt shi.txt shi_Latn.txt shi_Tfng.txt si.txt\\r
- sk.txt sl.txt smn.txt sn.txt so.txt\\r
- so_DJ.txt so_ET.txt so_KE.txt sq.txt sq_MK.txt\\r
- sr.txt sr_Cyrl.txt sr_Latn.txt sv.txt sw.txt\\r
- sw_CD.txt sw_UG.txt ta.txt ta_LK.txt ta_MY.txt\\r
- ta_SG.txt te.txt teo.txt teo_KE.txt tg.txt\\r
- th.txt ti.txt ti_ER.txt to.txt tr.txt\\r
- tt.txt twq.txt tzm.txt ug.txt uk.txt\\r
- ur.txt ur_IN.txt uz.txt uz_Arab.txt uz_Cyrl.txt\\r
- uz_Latn.txt vai.txt vai_Latn.txt vai_Vaii.txt vi.txt\\r
- vun.txt wae.txt wo.txt xog.txt yav.txt\\r
+ ksf.txt ksh.txt ku.txt kw.txt ky.txt\\r
+ lag.txt lb.txt lg.txt lkt.txt ln.txt\\r
+ ln_AO.txt lo.txt lrc.txt lt.txt lu.txt\\r
+ luo.txt luy.txt lv.txt mas.txt mas_TZ.txt\\r
+ mer.txt mfe.txt mg.txt mgh.txt mgo.txt\\r
+ mi.txt mk.txt ml.txt mn.txt mr.txt\\r
+ ms.txt ms_BN.txt ms_SG.txt mt.txt mua.txt\\r
+ my.txt mzn.txt naq.txt nb.txt nd.txt\\r
+ nds.txt ne.txt nl.txt nl_AW.txt nl_BQ.txt\\r
+ nl_CW.txt nl_SR.txt nl_SX.txt nmg.txt nn.txt\\r
+ nnh.txt nus.txt nyn.txt om.txt om_KE.txt\\r
+ or.txt os.txt os_RU.txt pa.txt pa_Arab.txt\\r
+ pa_Guru.txt pl.txt ps.txt pt.txt pt_AO.txt\\r
+ pt_CH.txt pt_CV.txt pt_GQ.txt pt_GW.txt pt_LU.txt\\r
+ pt_MO.txt pt_MZ.txt pt_PT.txt pt_ST.txt pt_TL.txt\\r
+ qu.txt qu_BO.txt qu_EC.txt rm.txt rn.txt\\r
+ ro.txt ro_MD.txt rof.txt ru.txt ru_BY.txt\\r
+ ru_KG.txt ru_KZ.txt ru_MD.txt rw.txt rwk.txt\\r
+ sah.txt saq.txt sbp.txt sd.txt se.txt\\r
+ se_SE.txt seh.txt ses.txt sg.txt shi.txt\\r
+ shi_Latn.txt shi_Tfng.txt si.txt sk.txt sl.txt\\r
+ smn.txt sn.txt so.txt so_DJ.txt so_ET.txt\\r
+ so_KE.txt sq.txt sq_MK.txt sr.txt sr_Cyrl.txt\\r
+ sr_Latn.txt sv.txt sw.txt sw_CD.txt sw_UG.txt\\r
+ ta.txt ta_LK.txt ta_MY.txt ta_SG.txt te.txt\\r
+ teo.txt teo_KE.txt tg.txt th.txt ti.txt\\r
+ ti_ER.txt tk.txt to.txt tr.txt tt.txt\\r
+ twq.txt tzm.txt ug.txt uk.txt ur.txt\\r
+ ur_IN.txt uz.txt uz_Arab.txt uz_Cyrl.txt uz_Latn.txt\\r
+ vai.txt vai_Latn.txt vai_Vaii.txt vi.txt vun.txt\\r
+ wae.txt wo.txt xh.txt xog.txt yav.txt\\r
  yi.txt yo.txt yo_BJ.txt yue.txt yue_Hans.txt\\r
  yue_Hant.txt zgh.txt zh.txt zh_Hans.txt zh_Hans_HK.txt\\r
  zh_Hans_MO.txt zh_Hans_SG.txt zh_Hant.txt zh_Hant_HK.txt zh_Hant_MO.txt\\r
index e6839b43290c1d84a725e80ed90ab565e65bf09d..dcbc0d49f6b1e9e22bd3989373ce88bed502f38b 100644 (file)
@@ -1024,6 +1024,10 @@ rm{
         }\r
         VEF{\r
             "VEF",\r
+            "bolivar venezuelan (2008–2018)",\r
+        }\r
+        VES{\r
+            "VES",\r
             "bolivar venezuelan",\r
         }\r
         VND{\r
@@ -1107,7 +1111,7 @@ rm{
             "code per verifitgar la valuta",\r
         }\r
         XXX{\r
-            "XXX",\r
+            "¤",\r
             "valuta nunenconuschenta",\r
         }\r
         YDD{\r
@@ -1273,5 +1277,5 @@ rm{
         one{"{0} {1}"}\r
         other{"{0} {1}"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.94"}\r
 }\r
index f8e1ac8bf5020eff40e07c5ba91dfa63cac09f76..ff6e555e8f41a0a9a6dca64d674b8b18623d582b 100644 (file)
@@ -864,6 +864,10 @@ ro{
         }\r
         VEF{\r
             "VEF",\r
+            "bolivar venezuelean (2008–2018)",\r
+        }\r
+        VES{\r
+            "VES",\r
             "bolivar venezuelean",\r
         }\r
         VND{\r
@@ -947,7 +951,7 @@ ro{
             "cod monetar de test",\r
         }\r
         XXX{\r
-            "XXX",\r
+            "¤",\r
             "monedă necunoscută",\r
         }\r
         YDD{\r
@@ -2110,6 +2114,11 @@ ro{
             other{"bolivari Venezuela (1871–2008)"}\r
         }\r
         VEF{\r
+            few{"bolivari venezueleni (2008–2018)"}\r
+            one{"bolivar venezuelean (2008–2018)"}\r
+            other{"bolivari venezueleni (2008–2018)"}\r
+        }\r
+        VES{\r
             few{"bolivari venezueleni"}\r
             one{"bolivar venezuelean"}\r
             other{"bolivari venezueleni"}\r
@@ -2215,5 +2224,5 @@ ro{
         one{"{0} {1}"}\r
         other{"{0} de {1}"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.94"}\r
 }\r
index e2b556d1b0bc3b51bea2978a7eddbe7ff28e8591..6be77651bfb54d3bd56ab0b3b356478432f45282 100644 (file)
@@ -85,6 +85,10 @@ root{
             "CFPF",\r
             "XPF",\r
         }\r
+        XXX{\r
+            "¤",\r
+            "XXX",\r
+        }\r
     }\r
     Currencies%narrow{\r
         AOA{"Kz"}\r
@@ -192,7 +196,7 @@ root{
     CurrencyUnitPatterns{\r
         other{"{0} {1}"}\r
     }\r
-    Version{"2.1.41.58"}\r
+    Version{"2.1.44.91"}\r
     currencySpacing{\r
         afterCurrency{\r
             currencyMatch{"[:^S:]"}\r
index e57708cf4484b52278aa1f65b81d6a63dd896a34..3e596f383bdbdfb0ec7a06dbdfd5e4f2a3e8e1e0 100644 (file)
@@ -56,7 +56,7 @@ ru{
         }\r
         ARS{\r
             "ARS",\r
-            "аÑ\80генÑ\82инÑ\81кое песо",\r
+            "аÑ\80генÑ\82инÑ\81кий песо",\r
         }\r
         ATS{\r
             "ATS",\r
@@ -224,7 +224,7 @@ ru{
         }\r
         CLP{\r
             "CLP",\r
-            "Ñ\87илийÑ\81кое песо",\r
+            "Ñ\87илийÑ\81кий песо",\r
         }\r
         CNH{\r
             "CNH",\r
@@ -236,7 +236,7 @@ ru{
         }\r
         COP{\r
             "COP",\r
-            "колÑ\83мбийÑ\81кое песо",\r
+            "колÑ\83мбийÑ\81кий песо",\r
         }\r
         COU{\r
             "COU",\r
@@ -256,11 +256,11 @@ ru{
         }\r
         CUC{\r
             "CUC",\r
-            "кÑ\83бинÑ\81кое ÐºÐ¾Ð½Ð²ÐµÑ\80Ñ\82иÑ\80Ñ\83емое песо",\r
+            "кÑ\83бинÑ\81кий ÐºÐ¾Ð½Ð²ÐµÑ\80Ñ\82иÑ\80Ñ\83емÑ\8bй песо",\r
         }\r
         CUP{\r
             "CUP",\r
-            "кÑ\83бинÑ\81кое песо",\r
+            "кÑ\83бинÑ\81кий песо",\r
         }\r
         CVE{\r
             "CVE",\r
@@ -292,7 +292,7 @@ ru{
         }\r
         DOP{\r
             "DOP",\r
-            "доминиканÑ\81кое песо",\r
+            "доминиканÑ\81кий песо",\r
         }\r
         DZD{\r
             "DZD",\r
@@ -500,7 +500,7 @@ ru{
         }\r
         KMF{\r
             "KMF",\r
-            "франк Коморских островов",\r
+            "коморский франк",\r
         }\r
         KPW{\r
             "KPW",\r
@@ -516,7 +516,7 @@ ru{
         }\r
         KYD{\r
             "KYD",\r
-            "доллаÑ\80 Ð\9aаймановÑ\8bÑ\85 Ð¾Ñ\81Ñ\82Ñ\80овов",\r
+            "доллаÑ\80 Ð\9eÑ\81Ñ\82Ñ\80овов Ð\9aайман",\r
         }\r
         KZT{\r
             "KZT",\r
@@ -644,7 +644,7 @@ ru{
         }\r
         MXN{\r
             "MX$",\r
-            "мекÑ\81иканÑ\81кое песо",\r
+            "мекÑ\81иканÑ\81кий песо",\r
         }\r
         MXP{\r
             "MXP",\r
@@ -728,7 +728,7 @@ ru{
         }\r
         PHP{\r
             "PHP",\r
-            "Ñ\84илиппинÑ\81кое песо",\r
+            "Ñ\84илиппинÑ\81кий песо",\r
         }\r
         PKR{\r
             "PKR",\r
@@ -788,7 +788,7 @@ ru{
         }\r
         SBD{\r
             "SBD",\r
-            "доллаÑ\80 Ð¡Ð¾Ð»Ð¾Ð¼Ð¾Ð½Ð¾Ð²Ñ\8bÑ\85 Ð¾стровов",\r
+            "доллаÑ\80 Ð¡Ð¾Ð»Ð¾Ð¼Ð¾Ð½Ð¾Ð²Ñ\8bÑ\85 Ð\9eстровов",\r
         }\r
         SCR{\r
             "SCR",\r
@@ -960,7 +960,7 @@ ru{
         }\r
         UYU{\r
             "UYU",\r
-            "Ñ\83Ñ\80Ñ\83гвайÑ\81кое песо",\r
+            "Ñ\83Ñ\80Ñ\83гвайÑ\81кий песо",\r
         }\r
         UZS{\r
             "UZS",\r
@@ -972,6 +972,10 @@ ru{
         }\r
         VEF{\r
             "VEF",\r
+            "венесуэльский боливар (2008–2018)",\r
+        }\r
+        VES{\r
+            "VES",\r
             "венесуэльский боливар",\r
         }\r
         VND{\r
@@ -1274,7 +1278,7 @@ ru{
         ARS{\r
             few{"аргентинских песо"}\r
             many{"аргентинских песо"}\r
-            one{"аÑ\80генÑ\82инÑ\81кое песо"}\r
+            one{"аÑ\80генÑ\82инÑ\81кий песо"}\r
             other{"аргентинского песо"}\r
         }\r
         AUD{\r
@@ -1412,7 +1416,7 @@ ru{
         CLP{\r
             few{"чилийских песо"}\r
             many{"чилийских песо"}\r
-            one{"Ñ\87илийÑ\81кое песо"}\r
+            one{"Ñ\87илийÑ\81кий песо"}\r
             other{"чилийского песо"}\r
         }\r
         CNH{\r
@@ -1430,7 +1434,7 @@ ru{
         COP{\r
             few{"колумбийских песо"}\r
             many{"колумбийских песо"}\r
-            one{"колÑ\83мбийÑ\81кое песо"}\r
+            one{"колÑ\83мбийÑ\81кий песо"}\r
             other{"колумбийского песо"}\r
         }\r
         CRC{\r
@@ -1442,13 +1446,13 @@ ru{
         CUC{\r
             few{"кубинских конвертируемых песо"}\r
             many{"кубинских конвертируемых песо"}\r
-            one{"кÑ\83бинÑ\81кое ÐºÐ¾Ð½Ð²ÐµÑ\80Ñ\82иÑ\80Ñ\83емое песо"}\r
+            one{"кÑ\83бинÑ\81кий ÐºÐ¾Ð½Ð²ÐµÑ\80Ñ\82иÑ\80Ñ\83емÑ\8bй песо"}\r
             other{"кубинского конвертируемого песо"}\r
         }\r
         CUP{\r
             few{"кубинских песо"}\r
             many{"кубинских песо"}\r
-            one{"кÑ\83бинÑ\81кое песо"}\r
+            one{"кÑ\83бинÑ\81кий песо"}\r
             other{"кубинского песо"}\r
         }\r
         CVE{\r
@@ -1478,7 +1482,7 @@ ru{
         DOP{\r
             few{"доминиканских песо"}\r
             many{"доминиканских песо"}\r
-            one{"доминиканÑ\81кое песо"}\r
+            one{"доминиканÑ\81кий песо"}\r
             other{"доминиканского песо"}\r
         }\r
         DZD{\r
@@ -1674,10 +1678,10 @@ ru{
             other{"камбоджийского риеля"}\r
         }\r
         KMF{\r
-            few{"франка Коморских островов"}\r
-            many{"франков Коморских островов"}\r
-            one{"франк Коморских островов"}\r
-            other{"франка Коморских островов"}\r
+            few{"коморских франка"}\r
+            many{"коморских франков"}\r
+            one{"коморский франк"}\r
+            other{"коморского франка"}\r
         }\r
         KPW{\r
             few{"северокорейские воны"}\r
@@ -1698,10 +1702,10 @@ ru{
             other{"кувейтского динара"}\r
         }\r
         KYD{\r
-            few{"доллаÑ\80а Ð\9aаймановÑ\8bÑ\85 Ð¾Ñ\81Ñ\82Ñ\80овов"}\r
-            many{"доллаÑ\80ов Ð\9aаймановÑ\8bÑ\85 Ð¾Ñ\81Ñ\82Ñ\80овов"}\r
-            one{"доллаÑ\80 Ð\9aаймановÑ\8bÑ\85 Ð¾Ñ\81Ñ\82Ñ\80овов"}\r
-            other{"доллаÑ\80а Ð\9aаймановÑ\8bÑ\85 Ð¾Ñ\81Ñ\82Ñ\80овов"}\r
+            few{"доллаÑ\80а Ð\9eÑ\81Ñ\82Ñ\80овов Ð\9aайман"}\r
+            many{"доллаÑ\80ов Ð\9eÑ\81Ñ\82Ñ\80овов Ð\9aайман"}\r
+            one{"доллаÑ\80 Ð\9eÑ\81Ñ\82Ñ\80овов Ð\9aайман"}\r
+            other{"доллаÑ\80а Ð\9eÑ\81Ñ\82Ñ\80овов Ð\9aайман"}\r
         }\r
         KZT{\r
             few{"казахских тенге"}\r
@@ -1826,7 +1830,7 @@ ru{
         MXN{\r
             few{"мексиканских песо"}\r
             many{"мексиканских песо"}\r
-            one{"мекÑ\81иканÑ\81кое песо"}\r
+            one{"мекÑ\81иканÑ\81кий песо"}\r
             other{"мексиканского песо"}\r
         }\r
         MYR{\r
@@ -1910,7 +1914,7 @@ ru{
         PHP{\r
             few{"филиппинских песо"}\r
             many{"филиппинских песо"}\r
-            one{"Ñ\84илиппинÑ\81кое песо"}\r
+            one{"Ñ\84илиппинÑ\81кий песо"}\r
             other{"филиппинского песо"}\r
         }\r
         PKR{\r
@@ -1968,10 +1972,10 @@ ru{
             other{"саудовского рияла"}\r
         }\r
         SBD{\r
-            few{"доллаÑ\80а Ð¡Ð¾Ð»Ð¾Ð¼Ð¾Ð½Ð¾Ð²Ñ\8bÑ\85 Ð¾стровов"}\r
-            many{"доллаÑ\80ов Ð¡Ð¾Ð»Ð¾Ð¼Ð¾Ð½Ð¾Ð²Ñ\8bÑ\85 Ð¾стровов"}\r
-            one{"доллаÑ\80 Ð¡Ð¾Ð»Ð¾Ð¼Ð¾Ð½Ð¾Ð²Ñ\8bÑ\85 Ð¾стровов"}\r
-            other{"доллаÑ\80а Ð¡Ð¾Ð»Ð¾Ð¼Ð¾Ð½Ð¾Ð²Ñ\8bÑ\85 Ð¾стровов"}\r
+            few{"доллаÑ\80а Ð¡Ð¾Ð»Ð¾Ð¼Ð¾Ð½Ð¾Ð²Ñ\8bÑ\85 Ð\9eстровов"}\r
+            many{"доллаÑ\80ов Ð¡Ð¾Ð»Ð¾Ð¼Ð¾Ð½Ð¾Ð²Ñ\8bÑ\85 Ð\9eстровов"}\r
+            one{"доллаÑ\80 Ð¡Ð¾Ð»Ð¾Ð¼Ð¾Ð½Ð¾Ð²Ñ\8bÑ\85 Ð\9eстровов"}\r
+            other{"доллаÑ\80а Ð¡Ð¾Ð»Ð¾Ð¼Ð¾Ð½Ð¾Ð²Ñ\8bÑ\85 Ð\9eстровов"}\r
         }\r
         SCR{\r
             few{"сейшельские рупии"}\r
@@ -2132,7 +2136,7 @@ ru{
         UYU{\r
             few{"уругвайских песо"}\r
             many{"уругвайских песо"}\r
-            one{"Ñ\83Ñ\80Ñ\83гвайÑ\81кое песо"}\r
+            one{"Ñ\83Ñ\80Ñ\83гвайÑ\81кий песо"}\r
             other{"уругвайского песо"}\r
         }\r
         UZS{\r
@@ -2142,6 +2146,12 @@ ru{
             other{"узбекского сума"}\r
         }\r
         VEF{\r
+            few{"венесуэльских боливара (2008–2018)"}\r
+            many{"венесуэльских боливаров (2008–2018)"}\r
+            one{"венесуэльский боливар (2008–2018)"}\r
+            other{"венесуэльского боливара (2008–2018)"}\r
+        }\r
+        VES{\r
             few{"венесуэльских боливара"}\r
             many{"венесуэльских боливаров"}\r
             one{"венесуэльский боливар"}\r
@@ -2226,5 +2236,5 @@ ru{
         one{"{0} {1}"}\r
         other{"{0} {1}"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.45.15"}\r
 }\r
index 813c60f8a4d5dbba01cdae202dcacd5a133f2d50..282269d31fe32212b51f0e22992141d2d9130b29 100644 (file)
@@ -10,5 +10,5 @@ rw{
     CurrencyUnitPatterns{\r
         other{"{0} {1}"}\r
     }\r
-    Version{"2.1.38.72"}\r
+    Version{"2.1.44.88"}\r
 }\r
index 41870a840fabad639dd929bb237fdb774bae7d90..c20455a90672b61980b7673b4d99dcecf0735f38 100644 (file)
@@ -25,5 +25,5 @@ sah{
     CurrencyUnitPatterns{\r
         other{"{0} {1}"}\r
     }\r
-    Version{"2.1.38.69"}\r
+    Version{"2.1.43.94"}\r
 }\r
diff --git a/source/data/curr/sd.txt b/source/data/curr/sd.txt
new file mode 100644 (file)
index 0000000..13ff38e
--- /dev/null
@@ -0,0 +1,1388 @@
+// © 2016 and later: Unicode, Inc. and others.\r
+// License & terms of use: http://www.unicode.org/copyright.html#License\r
+sd{\r
+    Currencies{\r
+        AED{\r
+            "AED",\r
+            "گڏيل عرب امارات درهم",\r
+        }\r
+        AFN{\r
+            "AFN",\r
+            "افغاني افغاني",\r
+        }\r
+        ALL{\r
+            "ALL",\r
+            "الباني ليڪ",\r
+        }\r
+        AMD{\r
+            "AMD",\r
+            "ارماني ڊرم",\r
+        }\r
+        ANG{\r
+            "ANG",\r
+            "نيڌرلينڊ انٽليئن گلڊر",\r
+        }\r
+        AOA{\r
+            "AOA",\r
+            "انگوليائي ڪوانزا",\r
+        }\r
+        ARS{\r
+            "ARS",\r
+            "ارجنٽائن پيسو",\r
+        }\r
+        AUD{\r
+            "A$",\r
+            "آسٽريلوي ڊالر",\r
+        }\r
+        AWG{\r
+            "AWG",\r
+            "اروبن فلورن",\r
+        }\r
+        AZN{\r
+            "AZN",\r
+            "آذربائيجاني منت",\r
+        }\r
+        BAM{\r
+            "BAM",\r
+            "بوسنيا هرزگوينا ڪنورٽبل مارڪ",\r
+        }\r
+        BBD{\r
+            "BBD",\r
+            "باربيڊين ڊالر",\r
+        }\r
+        BDT{\r
+            "BDT",\r
+            "بنگلاديشي ٽڪا",\r
+        }\r
+        BGN{\r
+            "BGN",\r
+            "بلغارین لیو",\r
+        }\r
+        BHD{\r
+            "BHD",\r
+            "بحريني دينار",\r
+        }\r
+        BIF{\r
+            "BIF",\r
+            "برونڊي فرينڪ",\r
+        }\r
+        BMD{\r
+            "BMD",\r
+            "برمودي ڊالر",\r
+        }\r
+        BND{\r
+            "BND",\r
+            "برونائي ڊالر",\r
+        }\r
+        BOB{\r
+            "BOB",\r
+            "بولیوین بولیویانو",\r
+        }\r
+        BRL{\r
+            "R$",\r
+            "برازيلي ريل",\r
+        }\r
+        BSD{\r
+            "BSD",\r
+            "بهاماني ڊادلر",\r
+        }\r
+        BTN{\r
+            "BTN",\r
+            "ڀوٽاني گلٽرم",\r
+        }\r
+        BWP{\r
+            "BWP",\r
+            "بوستواني پولا",\r
+        }\r
+        BYN{\r
+            "BYN",\r
+            "بیلاروسی ربل",\r
+        }\r
+        BYR{\r
+            "BYR",\r
+            "BYR",\r
+        }\r
+        BZD{\r
+            "BZD",\r
+            "بيليز ڊالر",\r
+        }\r
+        CAD{\r
+            "CA$",\r
+            "ڪئينڊيائي ڊالر",\r
+        }\r
+        CDF{\r
+            "CDF",\r
+            "ڪانگو فرينڪ",\r
+        }\r
+        CHF{\r
+            "CHF",\r
+            "سوئس فرينڪ",\r
+        }\r
+        CLP{\r
+            "CLP",\r
+            "چلي پيسو",\r
+        }\r
+        CNH{\r
+            "CNH",\r
+            "چيني يوآن (غير ملڪي)",\r
+        }\r
+        CNY{\r
+            "CN¥",\r
+            "چيني يوآن",\r
+        }\r
+        COP{\r
+            "COP",\r
+            "ڪولمبيائي پيسو",\r
+        }\r
+        CRC{\r
+            "CRC",\r
+            "ڪوسٽا ريڪا ڪولن",\r
+        }\r
+        CUC{\r
+            "CUC",\r
+            "ڪيوبن ڪنورٽيبل پيسو",\r
+        }\r
+        CUP{\r
+            "CUP",\r
+            "ڪيوبن پيسو",\r
+        }\r
+        CVE{\r
+            "CVE",\r
+            "ڪيپ وردي ايسڪوڊو",\r
+        }\r
+        CZK{\r
+            "CZK",\r
+            "چيڪ ڪرونا",\r
+        }\r
+        DJF{\r
+            "DJF",\r
+            "جبوتي فرينڪ",\r
+        }\r
+        DKK{\r
+            "DKK",\r
+            "دانش ڪرون",\r
+        }\r
+        DOP{\r
+            "DOP",\r
+            "ڊومينيڪن پيسو",\r
+        }\r
+        DZD{\r
+            "DZD",\r
+            "الجيريائي دينار",\r
+        }\r
+        EGP{\r
+            "EGP",\r
+            "مصري پائونڊ",\r
+        }\r
+        ERN{\r
+            "ERN",\r
+            "ايريٽيريائي ناڪفا",\r
+        }\r
+        ETB{\r
+            "ETB",\r
+            "ايٿوپيائي بر",\r
+        }\r
+        EUR{\r
+            "€",\r
+            "يورو",\r
+        }\r
+        FJD{\r
+            "FJD",\r
+            "فجي ڊالر",\r
+        }\r
+        FKP{\r
+            "FKP",\r
+            "فاڪلينڊ ٻيٽ پائونڊ",\r
+        }\r
+        GBP{\r
+            "£",\r
+            "برطانوي پائونڊ",\r
+        }\r
+        GEL{\r
+            "GEL",\r
+            "جارجيائي لاري",\r
+        }\r
+        GHS{\r
+            "GHS",\r
+            "گهانين سيدي",\r
+        }\r
+        GIP{\r
+            "GIP",\r
+            "جبرالٽر پائونڊ",\r
+        }\r
+        GMD{\r
+            "GMD",\r
+            "گيمبيا دلاسائي",\r
+        }\r
+        GNF{\r
+            "GNF",\r
+            "گني فرينڪ",\r
+        }\r
+        GTQ{\r
+            "GTQ",\r
+            "گوئٽي مالا ڪٽزل",\r
+        }\r
+        GYD{\r
+            "GYD",\r
+            "گيانا ڊالر",\r
+        }\r
+        HKD{\r
+            "HK$",\r
+            "هانگ ڪانگ ڊالر",\r
+        }\r
+        HNL{\r
+            "HNL",\r
+            "هونڊوراس ليمپرا",\r
+        }\r
+        HRK{\r
+            "HRK",\r
+            "ڪروشيائي ڪونا",\r
+        }\r
+        HTG{\r
+            "HTG",\r
+            "هيٽي گورڊي",\r
+        }\r
+        HUF{\r
+            "HUF",\r
+            "هنگيرين فورنٽ",\r
+        }\r
+        IDR{\r
+            "IDR",\r
+            "انڊونيشيائي رپيه",\r
+        }\r
+        ILS{\r
+            "₪",\r
+            "اسرائيلي نيو شيڪل",\r
+        }\r
+        INR{\r
+            "₹",\r
+            "انڊين رپي",\r
+        }\r
+        IQD{\r
+            "IQD",\r
+            "عراقي دينار",\r
+        }\r
+        IRR{\r
+            "IRR",\r
+            "ايراني ريال",\r
+        }\r
+        ISK{\r
+            "ISK",\r
+            "آئيس لينڊي ڪرونا",\r
+        }\r
+        JMD{\r
+            "JMD",\r
+            "جميڪائي ڊالر",\r
+        }\r
+        JOD{\r
+            "JOD",\r
+            "اردني دينار",\r
+        }\r
+        JPY{\r
+            "JP¥",\r
+            "جاپاني يين",\r
+        }\r
+        KES{\r
+            "KES",\r
+            "ڪينيائي سلنگ",\r
+        }\r
+        KGS{\r
+            "KGS",\r
+            "ڪرغزستاني سوم",\r
+        }\r
+        KHR{\r
+            "KHR",\r
+            "ڪمبوڊيائي ريال",\r
+        }\r
+        KMF{\r
+            "KMF",\r
+            "ڪوموريائي فرينڪ",\r
+        }\r
+        KPW{\r
+            "KPW",\r
+            "اتر ڪوريائي ون",\r
+        }\r
+        KRW{\r
+            "₩",\r
+            "ڏکڻ ڪوريائي ون",\r
+        }\r
+        KWD{\r
+            "KWD",\r
+            "ڪويتي دينار",\r
+        }\r
+        KYD{\r
+            "KYD",\r
+            "ڪيمين ٻيٽ ڊالر",\r
+        }\r
+        KZT{\r
+            "KZT",\r
+            "قازقستان ٽينگا",\r
+        }\r
+        LAK{\r
+            "LAK",\r
+            "لائوشيائي ڪپ",\r
+        }\r
+        LBP{\r
+            "LBP",\r
+            "لبناني پائونڊ",\r
+        }\r
+        LKR{\r
+            "LKR",\r
+            "سري لنڪن رپي",\r
+        }\r
+        LRD{\r
+            "LRD",\r
+            "لائبیریائی ڊالر",\r
+        }\r
+        LYD{\r
+            "LYD",\r
+            "لبيائي دينار",\r
+        }\r
+        MAD{\r
+            "MAD",\r
+            "موروڪيائي درهم",\r
+        }\r
+        MDL{\r
+            "MDL",\r
+            "مالديپ ليو",\r
+        }\r
+        MGA{\r
+            "MGA",\r
+            "ملاگاسي اریاری",\r
+        }\r
+        MKD{\r
+            "MKD",\r
+            "ميسي ڊوني دينار",\r
+        }\r
+        MMK{\r
+            "MMK",\r
+            "ميانمار ڪياٽ",\r
+        }\r
+        MNT{\r
+            "MNT",\r
+            "منگولي تجرڪ",\r
+        }\r
+        MOP{\r
+            "MOP",\r
+            "ميڪانيز پٽاڪا",\r
+        }\r
+        MRO{\r
+            "MRO",\r
+            "موريشيائي اوگوئیا (1973–2017)",\r
+        }\r
+        MRU{\r
+            "MRU",\r
+            "موريشيائي اوگوئیا",\r
+        }\r
+        MUR{\r
+            "MUR",\r
+            "ماريشيائي رپي",\r
+        }\r
+        MVR{\r
+            "MVR",\r
+            "مالديپ روفيا",\r
+        }\r
+        MWK{\r
+            "MWK",\r
+            "ملاوي ڪواچا",\r
+        }\r
+        MXN{\r
+            "MX$",\r
+            "ميڪسيڪو پيسو",\r
+        }\r
+        MYR{\r
+            "MYR",\r
+            "ملائيشيائي رنگٽ",\r
+        }\r
+        MZN{\r
+            "MZN",\r
+            "موزمبيق ميٽيڪل",\r
+        }\r
+        NAD{\r
+            "NAD",\r
+            "نميبائي ڊالر",\r
+        }\r
+        NGN{\r
+            "NGN",\r
+            "نائجريائي نائرا",\r
+        }\r
+        NIO{\r
+            "NIO",\r
+            "نڪارا گوا ڪارڊوبا",\r
+        }\r
+        NOK{\r
+            "NOK",\r
+            "نارويائي ڪرون",\r
+        }\r
+        NPR{\r
+            "NPR",\r
+            "نيپالي رپي",\r
+        }\r
+        NZD{\r
+            "NZ$",\r
+            "نيوزي لينڊي ڊالر",\r
+        }\r
+        OMR{\r
+            "OMR",\r
+            "عماني ريال",\r
+        }\r
+        PAB{\r
+            "PAB",\r
+            "پاناما پالبوا",\r
+        }\r
+        PEN{\r
+            "PEN",\r
+            "پيرو سول",\r
+        }\r
+        PGK{\r
+            "PGK",\r
+            "پاپوا نيو گني ڪنا",\r
+        }\r
+        PHP{\r
+            "PHP",\r
+            "فلپائني پيسو",\r
+        }\r
+        PKR{\r
+            "Rs",\r
+            "پاڪستاني رپي",\r
+        }\r
+        PLN{\r
+            "PLN",\r
+            "پولش زلاٽي",\r
+        }\r
+        PYG{\r
+            "PYG",\r
+            "پيراگوئي گاراني",\r
+        }\r
+        QAR{\r
+            "QAR",\r
+            "قطري ريال",\r
+        }\r
+        RON{\r
+            "RON",\r
+            "رومانیائي لیو",\r
+        }\r
+        RSD{\r
+            "RSD",\r
+            "سربيا دينار",\r
+        }\r
+        RUB{\r
+            "RUB",\r
+            "روسي ربل",\r
+        }\r
+        RWF{\r
+            "RWF",\r
+            "روانڊا فرينڪ",\r
+        }\r
+        SAR{\r
+            "SAR",\r
+            "سعودي ريال",\r
+        }\r
+        SBD{\r
+            "SBD",\r
+            "سولومان ٻيٽ ڊالر",\r
+        }\r
+        SCR{\r
+            "SCR",\r
+            "سشلي رپي",\r
+        }\r
+        SDG{\r
+            "SDG",\r
+            "سوڊاني پائونڊ",\r
+        }\r
+        SEK{\r
+            "SEK",\r
+            "سويڊني ڪرونا",\r
+        }\r
+        SGD{\r
+            "SGD",\r
+            "سنگاپوري ڊالر",\r
+        }\r
+        SHP{\r
+            "SHP",\r
+            "سينٽ هيلنا پائونڊ",\r
+        }\r
+        SLL{\r
+            "SLL",\r
+            "سیرا لیونيائي لیون",\r
+        }\r
+        SOS{\r
+            "SOS",\r
+            "سومالي شلنگ",\r
+        }\r
+        SRD{\r
+            "SRD",\r
+            "سرينامي ڊالر",\r
+        }\r
+        SSP{\r
+            "SSP",\r
+            "ڏکڻ سوڊاني پائونڊ",\r
+        }\r
+        STD{\r
+            "STD",\r
+            "سائو ٽوم ۽ پرنسپي دوبرا (1977–2017)",\r
+        }\r
+        STN{\r
+            "STN",\r
+            "سائو ٽوم ۽ پرنسپي دوبرا",\r
+        }\r
+        SYP{\r
+            "SYP",\r
+            "سيريائي پائونڊ",\r
+        }\r
+        SZL{\r
+            "SZL",\r
+            "سوازي للانگيني",\r
+        }\r
+        THB{\r
+            "THB",\r
+            "ٿائي باهت",\r
+        }\r
+        TJS{\r
+            "TJS",\r
+            "تاجڪستاني سوموني",\r
+        }\r
+        TMT{\r
+            "TMT",\r
+            "ترڪمانستان منت",\r
+        }\r
+        TND{\r
+            "TND",\r
+            "تیونس دینار",\r
+        }\r
+        TOP{\r
+            "TOP",\r
+            "تونگن پانگا",\r
+        }\r
+        TRY{\r
+            "TRY",\r
+            "ترڪي لرا",\r
+        }\r
+        TTD{\r
+            "TTD",\r
+            "ٽرينڊيڊ ۽ ٽوباگو ڊالر",\r
+        }\r
+        TWD{\r
+            "NT$",\r
+            "نيو تائيوان ڊالر",\r
+        }\r
+        TZS{\r
+            "TZS",\r
+            "تنزانيائي شلنگ",\r
+        }\r
+        UAH{\r
+            "UAH",\r
+            "یوڪرائن هریونیا",\r
+        }\r
+        UGX{\r
+            "UGX",\r
+            "يگانڊا شلنگ",\r
+        }\r
+        USD{\r
+            "US$",\r
+            "آمريڪي ڊالر",\r
+        }\r
+        UYU{\r
+            "UYU",\r
+            "يوروگوئي پيسو",\r
+        }\r
+        UZS{\r
+            "UZS",\r
+            "ازبڪستاني سوم",\r
+        }\r
+        VEF{\r
+            "VEF",\r
+            "Venezuelan Bolívar (2008–2018)",\r
+        }\r
+        VES{\r
+            "VES",\r
+            "وینزویلا بولیور",\r
+        }\r
+        VND{\r
+            "₫",\r
+            "ويٽنامي ڊونگ",\r
+        }\r
+        VUV{\r
+            "VUV",\r
+            "وانواتو واتو",\r
+        }\r
+        WST{\r
+            "WST",\r
+            "ساموآن ٽالا",\r
+        }\r
+        XAF{\r
+            "FCFA",\r
+            "وچ آفريڪا فرينڪ",\r
+        }\r
+        XCD{\r
+            "EC$",\r
+            "اوڀر ڪيريبين ڊالر",\r
+        }\r
+        XOF{\r
+            "CFA",\r
+            "اولهه آفريڪا فرينڪ",\r
+        }\r
+        XPF{\r
+            "CFPF",\r
+            "CFP فرينڪ",\r
+        }\r
+        XXX{\r
+            "¤",\r
+            "اڻڄاتل سڪو",\r
+        }\r
+        YER{\r
+            "YER",\r
+            "يمني ريال",\r
+        }\r
+        ZAR{\r
+            "ZAR",\r
+            "ڏکڻ آفريقي رانڊ",\r
+        }\r
+        ZMW{\r
+            "ZMW",\r
+            "زمبائي ڪواچا",\r
+        }\r
+    }\r
+    Currencies%narrow{\r
+        AOA{"Kz"}\r
+        ARS{"$"}\r
+        AUD{"$"}\r
+        BAM{"KM"}\r
+        BBD{"$"}\r
+        BDT{"৳"}\r
+        BMD{"$"}\r
+        BND{"$"}\r
+        BOB{"Bs"}\r
+        BRL{"R$"}\r
+        BSD{"$"}\r
+        BWP{"P"}\r
+        BYN{"р."}\r
+        BZD{"$"}\r
+        CAD{"$"}\r
+        CLP{"$"}\r
+        CNY{"¥"}\r
+        COP{"$"}\r
+        CRC{"₡"}\r
+        CUC{"$"}\r
+        CUP{"$"}\r
+        CZK{"Kč"}\r
+        DKK{"kr"}\r
+        DOP{"$"}\r
+        EGP{"E£"}\r
+        EUR{"€"}\r
+        FJD{"$"}\r
+        FKP{"£"}\r
+        GBP{"£"}\r
+        GEL{"₾"}\r
+        GIP{"£"}\r
+        GNF{"FG"}\r
+        GTQ{"Q"}\r
+        GYD{"$"}\r
+        HKD{"$"}\r
+        HNL{"L"}\r
+        HRK{"kn"}\r
+        HUF{"Ft"}\r
+        IDR{"Rp"}\r
+        ILS{"₪"}\r
+        INR{"₹"}\r
+        ISK{"kr"}\r
+        JMD{"$"}\r
+        JPY{"¥"}\r
+        KHR{"៛"}\r
+        KMF{"CF"}\r
+        KPW{"₩"}\r
+        KRW{"₩"}\r
+        KYD{"$"}\r
+        KZT{"₸"}\r
+        LAK{"₭"}\r
+        LBP{"L£"}\r
+        LKR{"Rs"}\r
+        LRD{"$"}\r
+        MGA{"Ar"}\r
+        MMK{"K"}\r
+        MNT{"₮"}\r
+        MUR{"Rs"}\r
+        MXN{"$"}\r
+        MYR{"RM"}\r
+        NAD{"$"}\r
+        NGN{"₦"}\r
+        NIO{"C$"}\r
+        NOK{"kr"}\r
+        NPR{"Rs"}\r
+        NZD{"$"}\r
+        PHP{"₱"}\r
+        PKR{"Rs"}\r
+        PLN{"zł"}\r
+        PYG{"₲"}\r
+        RON{"lei"}\r
+        RUB{"₽"}\r
+        RWF{"RF"}\r
+        SBD{"$"}\r
+        SEK{"kr"}\r
+        SGD{"$"}\r
+        SHP{"£"}\r
+        SRD{"$"}\r
+        SSP{"£"}\r
+        STN{"Db"}\r
+        SYP{"£"}\r
+        THB{"฿"}\r
+        TOP{"T$"}\r
+        TRY{"₺"}\r
+        TTD{"$"}\r
+        TWD{"$"}\r
+        UAH{"₴"}\r
+        USD{"$"}\r
+        UYU{"$"}\r
+        VEF{"Bs"}\r
+        VND{"₫"}\r
+        XCD{"$"}\r
+        ZAR{"R"}\r
+        ZMW{"ZK"}\r
+    }\r
+    Currencies%variant{\r
+        TRY{"TL"}\r
+    }\r
+    CurrencyPlurals{\r
+        AED{\r
+            one{"گڏيل عرب امارات درهم"}\r
+            other{"گڏيل عرب امارات درهم"}\r
+        }\r
+        AFN{\r
+            one{"افغاني افغاني"}\r
+            other{"افغاني افغاني"}\r
+        }\r
+        ALL{\r
+            one{"الباني ليڪ"}\r
+            other{"الباني ليڪ"}\r
+        }\r
+        AMD{\r
+            one{"ارماني ڊرم"}\r
+            other{"ارماني ڊرم"}\r
+        }\r
+        ANG{\r
+            one{"نيڌرلينڊ انٽليئن گلڊر"}\r
+            other{"نيڌرلينڊ انٽليئن گلڊر"}\r
+        }\r
+        AOA{\r
+            one{"انگوليائي ڪوانزا"}\r
+            other{"انگوليائي ڪوانزا"}\r
+        }\r
+        ARS{\r
+            one{"ارجنٽائن پيسو"}\r
+            other{"ارجنٽائن پيسو"}\r
+        }\r
+        AUD{\r
+            one{"آسٽريلوي ڊالر"}\r
+            other{"آسٽريلوي ڊالر"}\r
+        }\r
+        AWG{\r
+            one{"اروبن فلورن"}\r
+            other{"اروبن فلورن"}\r
+        }\r
+        AZN{\r
+            one{"آذربائيجاني منت"}\r
+            other{"آذربائيجاني منت"}\r
+        }\r
+        BAM{\r
+            one{"بوسنيا هرزگوينا ڪنورٽبل مارڪ"}\r
+            other{"بوسنيا هرزگوينا ڪنورٽبل مارڪ"}\r
+        }\r
+        BBD{\r
+            one{"باربيڊين ڊالر"}\r
+            other{"باربيڊين ڊالر"}\r
+        }\r
+        BDT{\r
+            one{"بنگلاديشي ٽڪا"}\r
+            other{"بنگلاديشي ٽڪا"}\r
+        }\r
+        BGN{\r
+            one{"بلغارین لیو"}\r
+            other{"بلغارین لیو"}\r
+        }\r
+        BHD{\r
+            one{"بحريني دينار"}\r
+            other{"بحريني دينار"}\r
+        }\r
+        BIF{\r
+            one{"برونڊي فرينڪ"}\r
+            other{"برونڊي فرينڪ"}\r
+        }\r
+        BMD{\r
+            one{"برمودي ڊالر"}\r
+            other{"برمودي ڊالر"}\r
+        }\r
+        BND{\r
+            one{"برونائي ڊالر"}\r
+            other{"برونائي ڊالر"}\r
+        }\r
+        BOB{\r
+            one{"بولیوین بولیویانو"}\r
+            other{"بولیوین بولیویانو"}\r
+        }\r
+        BRL{\r
+            one{"برازيلي ريل"}\r
+            other{"برازيلي ريل"}\r
+        }\r
+        BSD{\r
+            one{"بهاماني ڊادلر"}\r
+            other{"بهاماني ڊادلر"}\r
+        }\r
+        BTN{\r
+            one{"ڀوٽاني گلٽرم"}\r
+            other{"ڀوٽاني گلٽرم"}\r
+        }\r
+        BWP{\r
+            one{"بوستواني پولا"}\r
+            other{"بوستواني پولا"}\r
+        }\r
+        BYN{\r
+            one{"بیلاروسی ربل"}\r
+            other{"بیلاروسی ربل"}\r
+        }\r
+        BYR{\r
+            one{"BYR"}\r
+            other{"BYR"}\r
+        }\r
+        BZD{\r
+            one{"بيليز ڊالر"}\r
+            other{"بيليز ڊالر"}\r
+        }\r
+        CAD{\r
+            one{"ڪئينڊيائي ڊالر"}\r
+            other{"ڪئينڊيائي ڊالر"}\r
+        }\r
+        CDF{\r
+            one{"ڪانگو فرينڪ"}\r
+            other{"ڪانگو فرينڪ"}\r
+        }\r
+        CHF{\r
+            one{"سوئس فرينڪ"}\r
+            other{"سوئس فرينڪ"}\r
+        }\r
+        CLP{\r
+            one{"چلي پيسو"}\r
+            other{"چلي پيسو"}\r
+        }\r
+        CNH{\r
+            one{"چيني يوآن (غير ملڪي)"}\r
+            other{"چيني يوآن (غير ملڪي)"}\r
+        }\r
+        CNY{\r
+            one{"چيني يوآن"}\r
+            other{"چيني يوآن"}\r
+        }\r
+        COP{\r
+            one{"ڪولمبيائي پيسو"}\r
+            other{"ڪولمبيائي پيسو"}\r
+        }\r
+        CRC{\r
+            one{"ڪوسٽا ريڪا ڪولن"}\r
+            other{"ڪوسٽا ريڪا ڪولن"}\r
+        }\r
+        CUC{\r
+            one{"ڪيوبن ڪنورٽيبل پيسو"}\r
+            other{"ڪيوبن ڪنورٽيبل پيسو"}\r
+        }\r
+        CUP{\r
+            one{"ڪيوبن پيسو"}\r
+            other{"ڪيوبن پيسو"}\r
+        }\r
+        CVE{\r
+            one{"ڪيپ وردي ايسڪوڊو"}\r
+            other{"ڪيپ وردي ايسڪوڊو"}\r
+        }\r
+        CZK{\r
+            one{"چيڪ ڪرونا"}\r
+            other{"چيڪ ڪرونا"}\r
+        }\r
+        DJF{\r
+            one{"جبوتي فرينڪ"}\r
+            other{"جبوتي فرينڪ"}\r
+        }\r
+        DKK{\r
+            one{"دانش ڪرون"}\r
+            other{"دانش ڪرون"}\r
+        }\r
+        DOP{\r
+            one{"ڊومينيڪن پيسو"}\r
+            other{"ڊومينيڪن پيسو"}\r
+        }\r
+        DZD{\r
+            one{"الجيريائي دينار"}\r
+            other{"الجيريائي دينار"}\r
+        }\r
+        EGP{\r
+            one{"مصري پائونڊ"}\r
+            other{"مصري پائونڊ"}\r
+        }\r
+        ERN{\r
+            one{"ايريٽيريائي ناڪفا"}\r
+            other{"ايريٽيريائي ناڪفا"}\r
+        }\r
+        ETB{\r
+            one{"ايٿوپيائي بر"}\r
+            other{"ايٿوپيائي بر"}\r
+        }\r
+        EUR{\r
+            one{"يورو"}\r
+            other{"يورو"}\r
+        }\r
+        FJD{\r
+            one{"فجي ڊالر"}\r
+            other{"فجي ڊالر"}\r
+        }\r
+        FKP{\r
+            one{"فاڪلينڊ ٻيٽ پائونڊ"}\r
+            other{"فاڪلينڊ ٻيٽ پائونڊ"}\r
+        }\r
+        GBP{\r
+            one{"برطانوي پائونڊ"}\r
+            other{"برطانوي پائونڊ"}\r
+        }\r
+        GEL{\r
+            one{"جارجيائي لاري"}\r
+            other{"جارجيائي لاري"}\r
+        }\r
+        GHS{\r
+            one{"گهانين سيدي"}\r
+            other{"گهانين سيدي"}\r
+        }\r
+        GIP{\r
+            one{"جبرالٽر پائونڊ"}\r
+            other{"جبرالٽر پائونڊ"}\r
+        }\r
+        GMD{\r
+            one{"گيمبيا دلاسائي"}\r
+            other{"گيمبيا دلاسائي"}\r
+        }\r
+        GNF{\r
+            one{"گني فرينڪ"}\r
+            other{"گني فرينڪ"}\r
+        }\r
+        GTQ{\r
+            one{"گوئٽي مالا ڪٽزل"}\r
+            other{"گوئٽي مالا ڪٽزل"}\r
+        }\r
+        GYD{\r
+            one{"گيانا ڊالر"}\r
+            other{"گيانا ڊالر"}\r
+        }\r
+        HKD{\r
+            one{"هانگ ڪانگ ڊالر"}\r
+            other{"هانگ ڪانگ ڊالر"}\r
+        }\r
+        HNL{\r
+            one{"هونڊوراس ليمپرا"}\r
+            other{"هونڊوراس ليمپرا"}\r
+        }\r
+        HRK{\r
+            one{"ڪروشيائي ڪونا"}\r
+            other{"ڪروشيائي ڪونا"}\r
+        }\r
+        HTG{\r
+            one{"هيٽي گورڊي"}\r
+            other{"هيٽي گورڊي"}\r
+        }\r
+        HUF{\r
+            one{"هنگيرين فورنٽ"}\r
+            other{"هنگيرين فورنٽ"}\r
+        }\r
+        IDR{\r
+            one{"انڊونيشيائي رپيه"}\r
+            other{"انڊونيشيائي رپيه"}\r
+        }\r
+        ILS{\r
+            one{"اسرائيلي نيو شيڪل"}\r
+            other{"اسرائيلي نيو شيڪل"}\r
+        }\r
+        INR{\r
+            one{"انڊين رپي"}\r
+            other{"انڊين رپي"}\r
+        }\r
+        IQD{\r
+            one{"عراقي دينار"}\r
+            other{"عراقي دينار"}\r
+        }\r
+        IRR{\r
+            one{"ايراني ريال"}\r
+            other{"ايراني ريال"}\r
+        }\r
+        ISK{\r
+            one{"آئيس لينڊي ڪرونا"}\r
+            other{"آئيس لينڊي ڪرونا"}\r
+        }\r
+        JMD{\r
+            one{"جميڪائي ڊالر"}\r
+            other{"جميڪائي ڊالر"}\r
+        }\r
+        JOD{\r
+            one{"اردني دينار"}\r
+            other{"اردني دينار"}\r
+        }\r
+        JPY{\r
+            one{"جاپاني يين"}\r
+            other{"جاپاني يين"}\r
+        }\r
+        KES{\r
+            one{"ڪينيائي سلنگ"}\r
+            other{"ڪينيائي سلنگ"}\r
+        }\r
+        KGS{\r
+            one{"ڪرغزستاني سوم"}\r
+            other{"ڪرغزستاني سوم"}\r
+        }\r
+        KHR{\r
+            one{"ڪمبوڊيائي ريال"}\r
+            other{"ڪمبوڊيائي ريال"}\r
+        }\r
+        KMF{\r
+            one{"ڪوموريائي فرينڪ"}\r
+            other{"ڪوموريائي فرينڪ"}\r
+        }\r
+        KPW{\r
+            one{"اتر ڪوريائي ون"}\r
+            other{"اتر ڪوريائي ون"}\r
+        }\r
+        KRW{\r
+            one{"ڏکڻ ڪوريائي ون"}\r
+            other{"ڏکڻ ڪوريائي ون"}\r
+        }\r
+        KWD{\r
+            one{"ڪويتي دينار"}\r
+            other{"ڪويتي دينار"}\r
+        }\r
+        KYD{\r
+            one{"ڪيمين ٻيٽ ڊالر"}\r
+            other{"ڪيمين ٻيٽ ڊالر"}\r
+        }\r
+        KZT{\r
+            one{"قازقستان ٽينگا"}\r
+            other{"قازقستان ٽينگا"}\r
+        }\r
+        LAK{\r
+            one{"لائوشيائي ڪپ"}\r
+            other{"لائوشيائي ڪپ"}\r
+        }\r
+        LBP{\r
+            one{"لبناني پائونڊ"}\r
+            other{"لبناني پائونڊ"}\r
+        }\r
+        LKR{\r
+            one{"سري لنڪن رپي"}\r
+            other{"سري لنڪن رپي"}\r
+        }\r
+        LRD{\r
+            one{"لائبیریائی ڊالر"}\r
+            other{"لائبیریائی ڊالر"}\r
+        }\r
+        LYD{\r
+            one{"لبيائي دينار"}\r
+            other{"لبيائي دينار"}\r
+        }\r
+        MAD{\r
+            one{"موروڪيائي درهم"}\r
+            other{"موروڪيائي درهم"}\r
+        }\r
+        MDL{\r
+            one{"مالديپ ليو"}\r
+            other{"مالديپ ليو"}\r
+        }\r
+        MGA{\r
+            one{"ملاگاسي اریاری"}\r
+            other{"ملاگاسي اریاری"}\r
+        }\r
+        MKD{\r
+            one{"ميسي ڊوني دينار"}\r
+            other{"ميسي ڊوني دينار"}\r
+        }\r
+        MMK{\r
+            one{"ميانمار ڪياٽ"}\r
+            other{"ميانمار ڪياٽ"}\r
+        }\r
+        MNT{\r
+            one{"منگولي تجرڪ"}\r
+            other{"منگولي تجرڪ"}\r
+        }\r
+        MOP{\r
+            one{"ميڪانيز پٽاڪا"}\r
+            other{"ميڪانيز پٽاڪا"}\r
+        }\r
+        MRO{\r
+            one{"موريشيائي اوگوئیا (1973–2017)"}\r
+            other{"موريشيائي اوگوئیا (1973–2017)"}\r
+        }\r
+        MRU{\r
+            one{"موريشيائي اوگوئیا"}\r
+            other{"موريشيائي اوگوئیا"}\r
+        }\r
+        MUR{\r
+            one{"ماريشين روپي"}\r
+            other{"ماريشيائي رپي"}\r
+        }\r
+        MVR{\r
+            one{"مالديپ روفيا"}\r
+            other{"مالديپ روفيا"}\r
+        }\r
+        MWK{\r
+            one{"ملاوي ڪواچا"}\r
+            other{"ملاوي ڪواچا"}\r
+        }\r
+        MXN{\r
+            one{"ميڪسيڪو پيسو"}\r
+            other{"ميڪسيڪو پيسو"}\r
+        }\r
+        MYR{\r
+            one{"ملائيشيائي رنگٽ"}\r
+            other{"ملائيشيائي رنگٽ"}\r
+        }\r
+        MZN{\r
+            one{"موزمبيق ميٽيڪل"}\r
+            other{"موزمبيق ميٽيڪل"}\r
+        }\r
+        NAD{\r
+            one{"نميبائي ڊالر"}\r
+            other{"نميبائي ڊالر"}\r
+        }\r
+        NGN{\r
+            one{"نائجريائي نائرا"}\r
+            other{"نائجريائي نائرا"}\r
+        }\r
+        NIO{\r
+            one{"نڪارا گوا ڪارڊوبا"}\r
+            other{"نڪارا گوا ڪارڊوبا"}\r
+        }\r
+        NOK{\r
+            one{"نارويائي ڪرون"}\r
+            other{"نارويائي ڪرون"}\r
+        }\r
+        NPR{\r
+            one{"نيپالي رپي"}\r
+            other{"نيپالي رپي"}\r
+        }\r
+        NZD{\r
+            one{"نيوزي لينڊي ڊالر"}\r
+            other{"نيوزي لينڊي ڊالر"}\r
+        }\r
+        OMR{\r
+            one{"عماني ريال"}\r
+            other{"عماني ريال"}\r
+        }\r
+        PAB{\r
+            one{"پاناما پالبوا"}\r
+            other{"پاناما پالبوا"}\r
+        }\r
+        PEN{\r
+            one{"پيرو سول"}\r
+            other{"پيرو سول"}\r
+        }\r
+        PGK{\r
+            one{"پاپوا نيو گني ڪنا"}\r
+            other{"پاپوا نيو گني ڪنا"}\r
+        }\r
+        PHP{\r
+            one{"فلپائني پيسو"}\r
+            other{"فلپائني پيسو"}\r
+        }\r
+        PKR{\r
+            one{"پاڪستاني رپي"}\r
+            other{"پاڪستاني رپي"}\r
+        }\r
+        PLN{\r
+            one{"پولش زلاٽي"}\r
+            other{"پولش زلاٽي"}\r
+        }\r
+        PYG{\r
+            one{"پيراگوئي گاراني"}\r
+            other{"پيراگوئي گاراني"}\r
+        }\r
+        QAR{\r
+            one{"قطري ريال"}\r
+            other{"قطري ريال"}\r
+        }\r
+        RON{\r
+            one{"رومانیائي لیو"}\r
+            other{"رومانیائي لیو"}\r
+        }\r
+        RSD{\r
+            one{"سربيا دينار"}\r
+            other{"سربيا دينار"}\r
+        }\r
+        RUB{\r
+            one{"روسي ربل"}\r
+            other{"روسي ربل"}\r
+        }\r
+        RWF{\r
+            one{"روانڊا فرينڪ"}\r
+            other{"روانڊا فرينڪ"}\r
+        }\r
+        SAR{\r
+            one{"سعودي ريال"}\r
+            other{"سعودي ريال"}\r
+        }\r
+        SBD{\r
+            one{"سولومان ٻيٽ ڊالر"}\r
+            other{"سولومان ٻيٽ ڊالر"}\r
+        }\r
+        SCR{\r
+            one{"سشلي رپي"}\r
+            other{"سشلي رپي"}\r
+        }\r
+        SDG{\r
+            one{"سوڊاني پائونڊ"}\r
+            other{"سوڊاني پائونڊ"}\r
+        }\r
+        SEK{\r
+            one{"سويڊني ڪرونا"}\r
+            other{"سويڊني ڪرونا"}\r
+        }\r
+        SGD{\r
+            one{"سنگاپوري ڊالر"}\r
+            other{"سنگاپوري ڊالر"}\r
+        }\r
+        SHP{\r
+            one{"سينٽ هيلنا پائونڊ"}\r
+            other{"سينٽ هيلنا پائونڊ"}\r
+        }\r
+        SLL{\r
+            one{"سیرا لیونيائي لیون"}\r
+            other{"سیرا لیونيائي لیون"}\r
+        }\r
+        SOS{\r
+            one{"سومالي شلنگ"}\r
+            other{"سومالي شلنگ"}\r
+        }\r
+        SRD{\r
+            one{"سرينامي ڊالر"}\r
+            other{"سرينامي ڊالر"}\r
+        }\r
+        SSP{\r
+            one{"ڏکڻ سوڊاني پائونڊ"}\r
+            other{"ڏکڻ سوڊاني پائونڊ"}\r
+        }\r
+        STD{\r
+            one{"سائو ٽوم ۽ پرنسپي دوبرا (1977–2017)"}\r
+            other{"سائو ٽوم ۽ پرنسپي دوبرا (1977–2017)"}\r
+        }\r
+        STN{\r
+            one{"سائو ٽوم ۽ پرنسپي دوبرا"}\r
+            other{"سائو ٽوم ۽ پرنسپي دوبرا"}\r
+        }\r
+        SYP{\r
+            one{"سيريائي پائونڊ"}\r
+            other{"سيريائي پائونڊ"}\r
+        }\r
+        SZL{\r
+            one{"سوازي للانگيني"}\r
+            other{"سوازي للانگيني"}\r
+        }\r
+        THB{\r
+            one{"ٿائي باهت"}\r
+            other{"ٿائي باهت"}\r
+        }\r
+        TJS{\r
+            one{"تاجڪستاني سوموني"}\r
+            other{"تاجڪستاني سوموني"}\r
+        }\r
+        TMT{\r
+            one{"ترڪمانستان منت"}\r
+            other{"ترڪمانستان منت"}\r
+        }\r
+        TND{\r
+            one{"تیونس دینار"}\r
+            other{"تیونس دینار"}\r
+        }\r
+        TOP{\r
+            one{"تونگن پانگا"}\r
+            other{"تونگن پانگا"}\r
+        }\r
+        TRY{\r
+            one{"ترڪي لرا"}\r
+            other{"ترڪي لرا"}\r
+        }\r
+        TTD{\r
+            one{"ٽرينڊيڊ ۽ ٽوباگو ڊالر"}\r
+            other{"ٽرينڊيڊ ۽ ٽوباگو ڊالر"}\r
+        }\r
+        TWD{\r
+            one{"نيو تائيوان ڊالر"}\r
+            other{"نيو تائيوان ڊالر"}\r
+        }\r
+        TZS{\r
+            one{"تنزانيائي شلنگ"}\r
+            other{"تنزانيائي شلنگ"}\r
+        }\r
+        UAH{\r
+            one{"یوڪرائن هریونیا"}\r
+            other{"یوڪرائن هریونیا"}\r
+        }\r
+        UGX{\r
+            one{"يگانڊا شلنگ"}\r
+            other{"يگانڊا شلنگ"}\r
+        }\r
+        USD{\r
+            one{"آمريڪي ڊالر"}\r
+            other{"آمريڪي ڊالر"}\r
+        }\r
+        UYU{\r
+            one{"يوروگوئي پيسو"}\r
+            other{"يوروگوئي پيسو"}\r
+        }\r
+        UZS{\r
+            one{"ازبڪستاني سوم"}\r
+            other{"ازبڪستاني سوم"}\r
+        }\r
+        VEF{\r
+            one{"وینزویلا بولیور (2008–2018)"}\r
+            other{"وینزویلا بولیور (2008–2018)"}\r
+        }\r
+        VES{\r
+            one{"وینزویلا بولیور"}\r
+            other{"وینزویلا بولیور"}\r
+        }\r
+        VND{\r
+            one{"ويٽنامي ڊونگ"}\r
+            other{"ويٽنامي ڊونگ"}\r
+        }\r
+        VUV{\r
+            one{"وانواتو واتو"}\r
+            other{"وانواتو واتو"}\r
+        }\r
+        WST{\r
+            one{"ساموآن ٽالا"}\r
+            other{"ساموآن ٽالا"}\r
+        }\r
+        XAF{\r
+            one{"وچ آفريڪا فرينڪ"}\r
+            other{"وچ آفريڪا فرينڪ"}\r
+        }\r
+        XCD{\r
+            one{"اوڀر ڪيريبين ڊالر"}\r
+            other{"اوڀر ڪيريبين ڊالر"}\r
+        }\r
+        XOF{\r
+            one{"اولهه آفريڪا فرينڪ"}\r
+            other{"اولهه آفريڪا فرينڪ"}\r
+        }\r
+        XPF{\r
+            one{"CFP فرينڪ"}\r
+            other{"CFP فرينڪ"}\r
+        }\r
+        XXX{\r
+            one{"اڻڄاتل سڪو"}\r
+            other{"اڻڄاتل سڪو"}\r
+        }\r
+        YER{\r
+            one{"يمني ريال"}\r
+            other{"يمني ريال"}\r
+        }\r
+        ZAR{\r
+            one{"ڏکڻ آفريقي رانڊ"}\r
+            other{"ڏکڻ آفريقي رانڊ"}\r
+        }\r
+        ZMW{\r
+            one{"زمبائي ڪواچا"}\r
+            other{"زمبائي ڪواچا"}\r
+        }\r
+    }\r
+    Version{"2.1.43.94"}\r
+}\r
index c35733e1d017baf2b0614a680f107c9aa6afcfc1..eae747052e93e0e5713cbc613ecf377826192d64 100644 (file)
@@ -73,5 +73,5 @@ se{
         other{"{0} {1}"}\r
         two{"{0} {1}"}\r
     }\r
-    Version{"2.1.38.69"}\r
+    Version{"2.1.43.94"}\r
 }\r
index 143ff9104a06dd8d3f986d2d4c3dd595dd6e2eff..27f3a09858a45474fcc9afa63c1e0402a17f59b8 100644 (file)
@@ -600,6 +600,10 @@ si{
         }\r
         VEF{\r
             "VEF",\r
+            "වෙනිසියුලානු බොලිවර් (2008–2018)",\r
+        }\r
+        VES{\r
+            "VES",\r
             "වෙනිසියුලානු බොලිවර්",\r
         }\r
         VND{\r
@@ -631,7 +635,7 @@ si{
             "ප්‍රංශ පොලිනීසියානු ෆ්‍රෑන්ක්",\r
         }\r
         XXX{\r
-            "XXX",\r
+            "¤",\r
             "නොදත් මුදල්",\r
         }\r
         YER{\r
@@ -1345,6 +1349,10 @@ si{
             other{"උස්බෙකිස්ථාන සම්"}\r
         }\r
         VEF{\r
+            one{"වෙනිසියුලානු බොලිවර් (2008–2018)"}\r
+            other{"වෙනිසියුලානු බොලිවර් (2008–2018)"}\r
+        }\r
+        VES{\r
             one{"වෙනිසියුලානු බොලිවර්"}\r
             other{"වෙනිසියුලානු බොලිවර්"}\r
         }\r
@@ -1397,5 +1405,5 @@ si{
         one{"{1}{0}"}\r
         other{"{1}{0}"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.50"}\r
 }\r
index 595740a8f26d153cbd1969153ee3adfd7f552988..4d6f3d72be3b2c3767538c81adea520a97f1ff6f 100644 (file)
@@ -1044,6 +1044,10 @@ sk{
         }\r
         VEF{\r
             "VEF",\r
+            "venezuelský bolívar (2008–2018)",\r
+        }\r
+        VES{\r
+            "VES",\r
             "venezuelský bolívar",\r
         }\r
         VND{\r
@@ -2874,6 +2878,12 @@ sk{
             other{"venezuelských bolívarov (1871 – 2008)"}\r
         }\r
         VEF{\r
+            few{"venezuelské bolívary (2008–2018)"}\r
+            many{"venezuelského bolívaru (2008–2018)"}\r
+            one{"venezuelský bolívar (2008–2018)"}\r
+            other{"venezuelských bolívarov (2008–2018)"}\r
+        }\r
+        VES{\r
             few{"venezuelské bolívary"}\r
             many{"venezuelského bolívaru"}\r
             one{"venezuelský bolívar"}\r
@@ -3126,5 +3136,5 @@ sk{
         one{"{0} {1}"}\r
         other{"{0} {1}"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.65"}\r
 }\r
index 8a36a19aeb49ca511d7cfccd84caf94e307504da..8f5a44f47d5f509d96343ace7e52e716ec58219f 100644 (file)
@@ -968,6 +968,10 @@ sl{
         }\r
         VEF{\r
             "VEF",\r
+            "venezuelski bolivar (2008–2018)",\r
+        }\r
+        VES{\r
+            "VES",\r
             "venezuelski bolivar",\r
         }\r
         VND{\r
@@ -1051,7 +1055,7 @@ sl{
             "koda za potrebe testiranja",\r
         }\r
         XXX{\r
-            "XXX",\r
+            "¤",\r
             "neznana valuta",\r
         }\r
         YDD{\r
@@ -2109,6 +2113,12 @@ sl{
             two{"uzbeška suma"}\r
         }\r
         VEF{\r
+            few{"venezuelski bolivarji (2008–2018)"}\r
+            one{"venezuelski bolivar (2008–2018)"}\r
+            other{"venezuelskih bolivarjev (2008–2018)"}\r
+            two{"venezuelska bolivarja (2008–2018)"}\r
+        }\r
+        VES{\r
             few{"venezuelski bolivarji"}\r
             one{"venezuelski bolivar"}\r
             other{"venezuelskih bolivarjev"}\r
@@ -2187,5 +2197,5 @@ sl{
         other{"{0} {1}"}\r
         two{"{0} {1}"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.91"}\r
 }\r
index f3bb8be8fc433d57454b96e8194a9683fb48f485..ff117a1e8c6ff27aa7909c85396aa3d3e9df8e3c 100644 (file)
@@ -239,5 +239,5 @@ sn{
         one{"{0} {1}"}\r
         other{"{0} {1}"}\r
     }\r
-    Version{"2.1.39.11"}\r
+    Version{"2.1.43.94"}\r
 }\r
index 94007038278b6b236f772e275fd90a270ee50acd..19966baaad07a28e075ae24e7c49327ec8a7565c 100644 (file)
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 so{\r
     Currencies{\r
+        AED{\r
+            "AED",\r
+            "Dirhamka Isutaga Imaaraatka Carabta",\r
+        }\r
+        AFN{\r
+            "AFN",\r
+            "Afgan Afgan",\r
+        }\r
+        ALL{\r
+            "ALL",\r
+            "Lek Albaniya",\r
+        }\r
+        AMD{\r
+            "AMD",\r
+            "Daraamka Armeniya",\r
+        }\r
+        ANG{\r
+            "ANG",\r
+            "Galdar Nadarland Antilean",\r
+        }\r
+        AOA{\r
+            "AOA",\r
+            "Kawansada Angola",\r
+        }\r
+        ARS{\r
+            "ARS",\r
+            "Beeso Arjentina",\r
+        }\r
+        AUD{\r
+            "A$",\r
+            "Doolarka Awstaraaliya",\r
+        }\r
+        AWG{\r
+            "AWG",\r
+            "Foloorin Aruban",\r
+        }\r
+        AZN{\r
+            "AZN",\r
+            "Manaatada Asarbeyjan",\r
+        }\r
+        BAM{\r
+            "BAM",\r
+            "Konfatibal Maak Bosnia-Hersogofina",\r
+        }\r
+        BBD{\r
+            "DBB",\r
+            "Doolarka Barbaadiyaanka",\r
+        }\r
+        BDT{\r
+            "BDT",\r
+            "Taka Bangledesh",\r
+        }\r
+        BGN{\r
+            "BGN",\r
+            "Lef Bulgariya",\r
+        }\r
+        BHD{\r
+            "BHD",\r
+            "Dinaarka Baxreyn",\r
+        }\r
+        BIF{\r
+            "BIF",\r
+            "Farank Burundi",\r
+        }\r
+        BMD{\r
+            "BMD",\r
+            "Doolarka Barmuuda",\r
+        }\r
+        BND{\r
+            "BND",\r
+            "Doollarka Burunel",\r
+        }\r
+        BOB{\r
+            "BOB",\r
+            "Bolifiano Bolifiya",\r
+        }\r
+        BRL{\r
+            "R$",\r
+            "Real Barasil",\r
+        }\r
+        BSD{\r
+            "DBS",\r
+            "Doolarka Bahamaas",\r
+        }\r
+        BTN{\r
+            "BTN",\r
+            "Ngultaram Butan",\r
+        }\r
+        BWP{\r
+            "BWP",\r
+            "Buulada Botswana",\r
+        }\r
+        BYN{\r
+            "BYN",\r
+            "Rubalka Belarus",\r
+        }\r
+        BZD{\r
+            "BZD",\r
+            "Doolarka Beelisa",\r
+        }\r
+        CAD{\r
+            "CA$",\r
+            "Doolarka Kanada",\r
+        }\r
+        CDF{\r
+            "CDF",\r
+            "Farank Kongo",\r
+        }\r
+        CHF{\r
+            "CHF",\r
+            "Farank Iswis",\r
+        }\r
+        CLP{\r
+            "CLP",\r
+            "Beeso Jili",\r
+        }\r
+        CNH{\r
+            "CNH",\r
+            "Yuanta Shiinaha (Offshore)",\r
+        }\r
+        CNY{\r
+            "CN¥",\r
+            "Yuanta Shiinaha",\r
+        }\r
+        COP{\r
+            "COP",\r
+            "Beeso Kolombiya",\r
+        }\r
+        CRC{\r
+            "KKR",\r
+            "Kolon Kosta Rika",\r
+        }\r
+        CUC{\r
+            "CUC",\r
+            "Beeso Kuuba Konfatibal",\r
+        }\r
+        CUP{\r
+            "CUP",\r
+            "Beeso Kuuba",\r
+        }\r
+        CVE{\r
+            "CVE",\r
+            "Eskudo Keyb Farde",\r
+        }\r
+        CZK{\r
+            "CZK",\r
+            "Korunada Jeek",\r
+        }\r
         DJF{\r
             "DJF",\r
             "Faran Jabbuuti",\r
         }\r
+        DKK{\r
+            "DKK",\r
+            "Koranka Danishka",\r
+        }\r
+        DOP{\r
+            "DOP",\r
+            "Beeso Dominika",\r
+        }\r
+        DZD{\r
+            "DZD",\r
+            "Dinaarka Aljeriya",\r
+        }\r
+        EGP{\r
+            "EGP",\r
+            "Bowndka Masar",\r
+        }\r
+        ERN{\r
+            "ERN",\r
+            "Nafkada Eritriya",\r
+        }\r
         ETB{\r
             "ETB",\r
             "Birta Itoobbiya",\r
@@ -14,26 +182,1187 @@ so{
             "€",\r
             "Yuuroo",\r
         }\r
+        FJD{\r
+            "FJD",\r
+            "Doolarka Fiji",\r
+        }\r
+        FKP{\r
+            "FKP",\r
+            "Bowndka Faalkland Island",\r
+        }\r
+        GBP{\r
+            "£",\r
+            "Bowndka Biritishka",\r
+        }\r
+        GEL{\r
+            "GEL",\r
+            "Laariga Joorjiya",\r
+        }\r
+        GHS{\r
+            "GHS",\r
+            "Sedi Gana",\r
+        }\r
+        GIP{\r
+            "GIP",\r
+            "Bowndka Gibraltar",\r
+        }\r
+        GMD{\r
+            "GMD",\r
+            "Dalasi Gambiya",\r
+        }\r
+        GNF{\r
+            "GNF",\r
+            "Faranka Gini",\r
+        }\r
+        GTQ{\r
+            "GTQ",\r
+            "Quetsal Guatemala",\r
+        }\r
+        GYD{\r
+            "GYD",\r
+            "Doolarka Guyanes",\r
+        }\r
+        HKD{\r
+            "HK$",\r
+            "Doollarka Hong Kong",\r
+        }\r
+        HNL{\r
+            "LHN",\r
+            "Lembira Hondura",\r
+        }\r
+        HRK{\r
+            "HRK",\r
+            "Kuna Korooshiya",\r
+        }\r
+        HTG{\r
+            "HTG",\r
+            "Goorde Haiti",\r
+        }\r
+        HUF{\r
+            "HUF",\r
+            "Forintiska Hangari",\r
+        }\r
+        IDR{\r
+            "IDR",\r
+            "Rubiah Indonesiya",\r
+        }\r
+        ILS{\r
+            "₪",\r
+            "Niyuu Shekelka Israaiil",\r
+        }\r
+        INR{\r
+            "₹",\r
+            "Rubiga Hindiya",\r
+        }\r
+        IQD{\r
+            "IQD",\r
+            "Dinaarka Ciraaq",\r
+        }\r
+        IRR{\r
+            "IRR",\r
+            "Riyaalka Iran",\r
+        }\r
+        ISK{\r
+            "ISK",\r
+            "Korona Eysland",\r
+        }\r
+        JMD{\r
+            "JMD",\r
+            "Doolarka Jamaaika",\r
+        }\r
+        JOD{\r
+            "JOD",\r
+            "Dinaarka Joordan",\r
+        }\r
+        JPY{\r
+            "JP¥",\r
+            "Yenta Jaban",\r
+        }\r
+        KES{\r
+            "KES",\r
+            "Shilingka Kenya",\r
+        }\r
+        KGS{\r
+            "KGS",\r
+            "Soom Kiyrgiystan",\r
+        }\r
+        KHR{\r
+            "KHR",\r
+            "Riyf Cambodiya",\r
+        }\r
+        KMF{\r
+            "KMF",\r
+            "Farank Komora",\r
+        }\r
+        KPW{\r
+            "KPW",\r
+            "Wonka Waqooyi Kuuriya",\r
+        }\r
+        KRW{\r
+            "₩",\r
+            "Wonka Koonfur Kuuriya",\r
+        }\r
+        KWD{\r
+            "KWD",\r
+            "Dinaarka Kuweyt",\r
+        }\r
+        KYD{\r
+            "KYD",\r
+            "Doolarka jasiiradaha Kayman",\r
+        }\r
+        KZT{\r
+            "KZT",\r
+            "Tenge Kasakhstan",\r
+        }\r
+        LAK{\r
+            "LAK",\r
+            "Kib Laoti",\r
+        }\r
+        LBP{\r
+            "LBP",\r
+            "Bowndka Lebanon",\r
+        }\r
+        LKR{\r
+            "LKR",\r
+            "Rubiga Siri lanka",\r
+        }\r
+        LRD{\r
+            "LRD",\r
+            "Doollarka Liberiya",\r
+        }\r
+        LYD{\r
+            "LYD",\r
+            "Dinaarka Libya",\r
+        }\r
+        MAD{\r
+            "MAD",\r
+            "Dirhamka Moroko",\r
+        }\r
+        MDL{\r
+            "MDL",\r
+            "Leeyuu Moldofa",\r
+        }\r
+        MGA{\r
+            "MGA",\r
+            "Ariari Malagasy",\r
+        }\r
+        MKD{\r
+            "MKD",\r
+            "Denaarka Masedoniya",\r
+        }\r
+        MMK{\r
+            "MMK",\r
+            "Kayat Mayanmaar",\r
+        }\r
+        MNT{\r
+            "MNT",\r
+            "Tugrik Mongoliya",\r
+        }\r
+        MOP{\r
+            "MOP",\r
+            "Bataka Makana",\r
+        }\r
+        MRO{\r
+            "MRO",\r
+            "Oogiya Mawritaniya (1973–2017)",\r
+        }\r
+        MRU{\r
+            "MRU",\r
+            "MRU",\r
+        }\r
+        MUR{\r
+            "MUR",\r
+            "Rubiga Mowrishiya",\r
+        }\r
+        MVR{\r
+            "MVR",\r
+            "Rufiya Maldifiya",\r
+        }\r
+        MWK{\r
+            "MWK",\r
+            "Kawajada Malawi",\r
+        }\r
+        MXN{\r
+            "MX$",\r
+            "Beeso Meksikaan",\r
+        }\r
+        MYR{\r
+            "MYR",\r
+            "Ringit Malayshiya",\r
+        }\r
+        MZN{\r
+            "MZN",\r
+            "Metikalka Mosambik",\r
+        }\r
+        NAD{\r
+            "NAD",\r
+            "Doollarka Namibiya",\r
+        }\r
+        NGN{\r
+            "NGN",\r
+            "Nairada Neyjeeriya",\r
+        }\r
+        NIO{\r
+            "NIO",\r
+            "Nikaragua Kordoba",\r
+        }\r
+        NOK{\r
+            "NOK",\r
+            "Koronka Norway",\r
+        }\r
+        NPR{\r
+            "NPR",\r
+            "Rubiga Nebal",\r
+        }\r
+        NZD{\r
+            "NZ$",\r
+            "Doolarka Niyuu Siyalaan",\r
+        }\r
+        OMR{\r
+            "OMR",\r
+            "Riyaalka Comaan",\r
+        }\r
+        PAB{\r
+            "PAB",\r
+            "Balboa Panama",\r
+        }\r
+        PEN{\r
+            "PEN",\r
+            "Sol Beeru",\r
+        }\r
+        PGK{\r
+            "PGK",\r
+            "Kinada Babua Niyuu Gini",\r
+        }\r
+        PHP{\r
+            "PHP",\r
+            "Biso Filibin",\r
+        }\r
+        PKR{\r
+            "PKR",\r
+            "Rubiga Bakistan",\r
+        }\r
+        PLN{\r
+            "PLN",\r
+            "Solotida Boland",\r
+        }\r
+        PYG{\r
+            "PYG",\r
+            "Guarani Baraguay",\r
+        }\r
+        QAR{\r
+            "QAR",\r
+            "Riyaalka Qatar",\r
+        }\r
+        RON{\r
+            "RON",\r
+            "Liyuu ROmaniya",\r
+        }\r
+        RSD{\r
+            "RSD",\r
+            "Dinaarka Serbiya",\r
+        }\r
+        RUB{\r
+            "RUB",\r
+            "Rubalka Ruush",\r
+        }\r
+        RWF{\r
+            "RWF",\r
+            "Farank Ruwanda",\r
+        }\r
         SAR{\r
             "SAR",\r
             "Riyaalka Sacuudiga",\r
         }\r
+        SBD{\r
+            "SBD",\r
+            "Doolarka Jasiiradaha Solomon",\r
+        }\r
+        SCR{\r
+            "SCR",\r
+            "Rubiga Siisalis",\r
+        }\r
+        SDG{\r
+            "SDG",\r
+            "Bowndka Suudaan",\r
+        }\r
+        SEK{\r
+            "SEK",\r
+            "Koronka Isweden",\r
+        }\r
+        SGD{\r
+            "SGD",\r
+            "Doollarka Singabuur",\r
+        }\r
+        SHP{\r
+            "SHP",\r
+            "Bowndka St Helen",\r
+        }\r
+        SLL{\r
+            "SLL",\r
+            "Leonka Sira Leon",\r
+        }\r
         SOS{\r
             "S",\r
-            "Shilin soomaali",\r
+            "Shilingka Soomaaliya",\r
+        }\r
+        SRD{\r
+            "SRD",\r
+            "Doolarka Surinamees",\r
+        }\r
+        SSP{\r
+            "SSP",\r
+            "Boownka Koonfurta Suudaan",\r
+        }\r
+        STN{\r
+            "STN",\r
+            "Dobra Sao Tome & Birinsibal",\r
+        }\r
+        SYP{\r
+            "SYP",\r
+            "Bowndka Suuriya",\r
+        }\r
+        SZL{\r
+            "SZL",\r
+            "Lilangeenida iswasi",\r
+        }\r
+        THB{\r
+            "THB",\r
+            "Baatka Tayland",\r
+        }\r
+        TJS{\r
+            "TJS",\r
+            "Somoon Tajikistan",\r
+        }\r
+        TMT{\r
+            "TMT",\r
+            "Manaat Turkmenistan",\r
+        }\r
+        TND{\r
+            "TND",\r
+            "Dinaarka Tunisiya",\r
+        }\r
+        TOP{\r
+            "TOP",\r
+            "Ba’anga Tonga",\r
+        }\r
+        TRY{\r
+            "TRY",\r
+            "Liirada Turkiga",\r
+        }\r
+        TTD{\r
+            "TTD",\r
+            "Doolarka Tirinad iyo Tobago",\r
+        }\r
+        TWD{\r
+            "NT$",\r
+            "Doollarka Taywaanta Cusubta",\r
         }\r
         TZS{\r
             "TZS",\r
-            "Shilin Tansaani",\r
+            "Shilingka Tansaaniya",\r
+        }\r
+        UAH{\r
+            "UAH",\r
+            "Hirfiniyada Yukreeyn",\r
+        }\r
+        UGX{\r
+            "UGX",\r
+            "Shilingka Uganda",\r
         }\r
         USD{\r
             "US$",\r
-            "Doollar maraykan",\r
+            "USD",\r
+        }\r
+        UYU{\r
+            "UYU",\r
+            "Beeso Uruguay",\r
+        }\r
+        UZS{\r
+            "UZS",\r
+            "Soom Usbekistan",\r
+        }\r
+        VEF{\r
+            "VEF",\r
+            "Bolifar Fenesuala (2008–2018)",\r
+        }\r
+        VES{\r
+            "VES",\r
+            "Bolifar Fenezuela",\r
+        }\r
+        VND{\r
+            "₫",\r
+            "Dong Fitnaam",\r
+        }\r
+        VUV{\r
+            "VUV",\r
+            "Fatu Fanuatu",\r
+        }\r
+        WST{\r
+            "WST",\r
+            "Tala Samao",\r
+        }\r
+        XAF{\r
+            "FCFA",\r
+            "Farank CFA ee Bartamaha Afrika",\r
+        }\r
+        XCD{\r
+            "EC$",\r
+            "Doolaraka Bariga Kaaribyan",\r
+        }\r
+        XOF{\r
+            "CFA",\r
+            "Faranka CFA Galbeedka Afrika",\r
+        }\r
+        XPF{\r
+            "CFPF",\r
+            "Farank CFP",\r
         }\r
         XXX{\r
-            "XXX",\r
+            "¤",\r
             "Lacag aan la qoon ama aan saxnayn",\r
         }\r
+        YER{\r
+            "YER",\r
+            "Riyaalka Yemen",\r
+        }\r
+        ZAR{\r
+            "ZAR",\r
+            "Randka Koonfur Afrika",\r
+        }\r
+        ZMW{\r
+            "ZMW",\r
+            "Kawajada Sambiya",\r
+        }\r
+    }\r
+    Currencies%narrow{\r
+        AOA{"Kz"}\r
+        ARS{"SAR$"}\r
+        AUD{"$"}\r
+        BAM{"KM"}\r
+        BBD{"DBB$"}\r
+        BDT{"৳"}\r
+        BMD{"$"}\r
+        BND{"$"}\r
+        BOB{"Bs"}\r
+        BRL{"R$"}\r
+        BSD{"$"}\r
+        BWP{"P"}\r
+        BYN{"р."}\r
+        BZD{"$"}\r
+        CAD{"$"}\r
+        CLP{"$"}\r
+        CNY{"¥"}\r
+        COP{"$"}\r
+        CRC{"₡"}\r
+        CUC{"$"}\r
+        CUP{"$"}\r
+        CZK{"Kč"}\r
+        DKK{"kr"}\r
+        DOP{"$"}\r
+        EGP{"E£"}\r
+        EUR{"€"}\r
+        FJD{"$"}\r
+        FKP{"£"}\r
+        GBP{"£"}\r
+        GEL{"₾"}\r
+        GIP{"£"}\r
+        GNF{"FG"}\r
+        GTQ{"Q"}\r
+        GYD{"$"}\r
+        HKD{"$"}\r
+        HNL{"L"}\r
+        HRK{"kn"}\r
+        HUF{"Ft"}\r
+        IDR{"Rp"}\r
+        ILS{"₪"}\r
+        INR{"₹"}\r
+        ISK{"kr"}\r
+        JMD{"$"}\r
+        JPY{"¥"}\r
+        KHR{"៛"}\r
+        KMF{"CF"}\r
+        KPW{"₩"}\r
+        KRW{"₩"}\r
+        KYD{"$"}\r
+        KZT{"₸"}\r
+        LAK{"₭"}\r
+        LBP{"L£"}\r
+        LKR{"Rs"}\r
+        LRD{"$"}\r
+        MGA{"Ar"}\r
+        MMK{"K"}\r
+        MNT{"₮"}\r
+        MUR{"Rs"}\r
+        MXN{"$"}\r
+        MYR{"RM"}\r
+        NAD{"$"}\r
+        NGN{"₦"}\r
+        NIO{"C$"}\r
+        NOK{"kr"}\r
+        NPR{"Rs"}\r
+        NZD{"$"}\r
+        PHP{"₱"}\r
+        PKR{"Rs"}\r
+        PLN{"zł"}\r
+        PYG{"₲"}\r
+        RON{"lei"}\r
+        RUB{"₽"}\r
+        RWF{"RF"}\r
+        SBD{"$"}\r
+        SEK{"kr"}\r
+        SGD{"$"}\r
+        SHP{"£"}\r
+        SRD{"$"}\r
+        SSP{"£"}\r
+        STN{"Db"}\r
+        SYP{"£"}\r
+        THB{"฿"}\r
+        TOP{"T$"}\r
+        TRY{"₺"}\r
+        TTD{"$"}\r
+        TWD{"$"}\r
+        UAH{"₴"}\r
+        USD{"$"}\r
+        UYU{"$"}\r
+        VEF{"Bs"}\r
+        VND{"₫"}\r
+        XCD{"$"}\r
+        ZAR{"R"}\r
+        ZMW{"ZK"}\r
+    }\r
+    Currencies%variant{\r
+        TRY{"TL"}\r
+    }\r
+    CurrencyPlurals{\r
+        AED{\r
+            one{"Dirham Isutaga Imaaraatka Carabta"}\r
+            other{"Dirhamka Isutaga Imaaraatka Carabta"}\r
+        }\r
+        AFN{\r
+            one{"Afgan Afgan"}\r
+            other{"Afgan Afgan"}\r
+        }\r
+        ALL{\r
+            one{"Lek Abaniya"}\r
+            other{"ALL"}\r
+        }\r
+        AMD{\r
+            one{"Daraam Armeniya"}\r
+            other{"Daraamka Armeniya"}\r
+        }\r
+        ANG{\r
+            one{"Galdar Nadarland Antilaan"}\r
+            other{"Galdar Nadarland Antilean"}\r
+        }\r
+        AOA{\r
+            one{"Kawansa Angola"}\r
+            other{"Kawansada Angola"}\r
+        }\r
+        ARS{\r
+            one{"Beeso Arjentiina"}\r
+            other{"Beeso Arjentina"}\r
+        }\r
+        AUD{\r
+            one{"Doolarka Awstaraaliya"}\r
+            other{"Doolarada Awstaraaliya"}\r
+        }\r
+        AWG{\r
+            one{"Foloorin Aruban"}\r
+            other{"Foloorin Aruban"}\r
+        }\r
+        AZN{\r
+            one{"Manaata Asarbeyjan"}\r
+            other{"Manaatada Asarbeyjan"}\r
+        }\r
+        BAM{\r
+            one{"Konfatibal Maak Bosni-Harsegofina"}\r
+            other{"Konfatibal Maak Bosnia-Hersogofina"}\r
+        }\r
+        BBD{\r
+            one{"Doolarka Barbaadiyaanka"}\r
+            other{"Doolarada Barbaadiyaanka"}\r
+        }\r
+        BDT{\r
+            one{"Taka Bangledesh"}\r
+            other{"Taka Bangledesh"}\r
+        }\r
+        BGN{\r
+            one{"Lef Bulgariya"}\r
+            other{"BGN"}\r
+        }\r
+        BHD{\r
+            one{"Dinaar Baxreyn"}\r
+            other{"Dinaarka Baxreyn"}\r
+        }\r
+        BIF{\r
+            one{"Farank Burundi"}\r
+            other{"Farank Burundi"}\r
+        }\r
+        BMD{\r
+            one{"Doolaraka Barmuuda"}\r
+            other{"Doolarada Barmuuda"}\r
+        }\r
+        BND{\r
+            one{"Doollar Burunel"}\r
+            other{"Doollarka Burunel"}\r
+        }\r
+        BOB{\r
+            one{"Bolifaano Bolifiya"}\r
+            other{"BOB"}\r
+        }\r
+        BRL{\r
+            one{"Real Barasil"}\r
+            other{"Real Barasil"}\r
+        }\r
+        BSD{\r
+            one{"Doolarka Bahamaas"}\r
+            other{"Doolarada Bahamaas"}\r
+        }\r
+        BTN{\r
+            one{"Ngultaram Butan"}\r
+            other{"Ngultaram Butan"}\r
+        }\r
+        BWP{\r
+            one{"Buulo Botswana"}\r
+            other{"Buulada Botswana"}\r
+        }\r
+        BYN{\r
+            one{"Rubal Belarus"}\r
+            other{"Rubalka Belarus"}\r
+        }\r
+        BZD{\r
+            one{"Doolarka Beelisa"}\r
+            other{"Doolarada Beelisa"}\r
+        }\r
+        CAD{\r
+            one{"Doolarka Kanada"}\r
+            other{"Doolarada Kanada"}\r
+        }\r
+        CDF{\r
+            one{"Farank Kongo"}\r
+            other{"Farank Kongo"}\r
+        }\r
+        CHF{\r
+            one{"Farank Iswis"}\r
+            other{"Farank Iswis"}\r
+        }\r
+        CLP{\r
+            one{"Beeso Jili"}\r
+            other{"Beeso Jili"}\r
+        }\r
+        CNH{\r
+            one{"Yuan Shiinaha (offshore)"}\r
+            other{"Yuanta Shiinaha (Offshore)"}\r
+        }\r
+        CNY{\r
+            one{"Yuanta Shiinaha"}\r
+            other{"CNY"}\r
+        }\r
+        COP{\r
+            one{"Beeso Kolombiya"}\r
+            other{"COP"}\r
+        }\r
+        CRC{\r
+            one{"Kolon Kosta Rika"}\r
+            other{"Kolon Kosta Rika"}\r
+        }\r
+        CUC{\r
+            one{"Beeso Kuuba Konfatibal"}\r
+            other{"Beeso Kuuba Konfatibal"}\r
+        }\r
+        CUP{\r
+            one{"Beeso Kuuba"}\r
+            other{"Beeso Kuuba"}\r
+        }\r
+        CVE{\r
+            one{"Eskudo Keyb Farde"}\r
+            other{"Eskudo Keyb Farde"}\r
+        }\r
+        CZK{\r
+            one{"Koruna Jeek"}\r
+            other{"Korunada Jeek"}\r
+        }\r
+        DJF{\r
+            one{"Farank Jabuuti"}\r
+            other{"Farank Jabuuti"}\r
+        }\r
+        DKK{\r
+            one{"Koran Danish"}\r
+            other{"Koranka Danishka"}\r
+        }\r
+        DOP{\r
+            one{"Beeso Dominika"}\r
+            other{"Beeso Dominika"}\r
+        }\r
+        DZD{\r
+            one{"Dinaar Aljeriya"}\r
+            other{"Dinaarka Aljeriya"}\r
+        }\r
+        EGP{\r
+            one{"Bownd Masar"}\r
+            other{"Bowndka Masar"}\r
+        }\r
+        ERN{\r
+            one{"Nakfa Eritriya"}\r
+            other{"Nafkada Eritriya"}\r
+        }\r
+        EUR{\r
+            one{"Yuuroo"}\r
+            other{"Yuuroo"}\r
+        }\r
+        FJD{\r
+            one{"Doolarka Fiji"}\r
+            other{"Doolarada Fiji"}\r
+        }\r
+        FKP{\r
+            one{"Bowndka Faalkland Island"}\r
+            other{"Bowndka Faalkland Island"}\r
+        }\r
+        GBP{\r
+            one{"Bownd Biritish"}\r
+            other{"Bowndka Biritishka"}\r
+        }\r
+        GEL{\r
+            one{"Laari Joorjiya"}\r
+            other{"Laariga Joorjiya"}\r
+        }\r
+        GHS{\r
+            one{"Sedi Gana"}\r
+            other{"Sedi Gana"}\r
+        }\r
+        GIP{\r
+            one{"Bownd Gibraltar"}\r
+            other{"Bowndka Gibraltar"}\r
+        }\r
+        GMD{\r
+            one{"Dalasi Gambiya"}\r
+            other{"Dalasi Gambiya"}\r
+        }\r
+        GNF{\r
+            one{"Farank Gini"}\r
+            other{"GNF"}\r
+        }\r
+        GTQ{\r
+            one{"Quetsal Guatemala"}\r
+            other{"Quetsal Guatemala"}\r
+        }\r
+        GYD{\r
+            one{"Doolarka Guyanes"}\r
+            other{"GYD"}\r
+        }\r
+        HKD{\r
+            one{"Doollar Hong Kong"}\r
+            other{"Doollarka Hong Kong"}\r
+        }\r
+        HNL{\r
+            one{"Lembira Hondura"}\r
+            other{"Lembira Hondura"}\r
+        }\r
+        HRK{\r
+            one{"Kuna Korooshiya"}\r
+            other{"HRK"}\r
+        }\r
+        HTG{\r
+            one{"Goorde Haiti"}\r
+            other{"Goorde Haiti"}\r
+        }\r
+        HUF{\r
+            one{"Forintis Hangari"}\r
+            other{"Forintiska Hangari"}\r
+        }\r
+        IDR{\r
+            one{"Rubiah Indonesiya"}\r
+            other{"Rubiah Indonesiya"}\r
+        }\r
+        ILS{\r
+            one{"Niyuu Shekel Israaiil"}\r
+            other{"Niyuu Shekelka Israaiil"}\r
+        }\r
+        INR{\r
+            one{"Rubi Hindiya"}\r
+            other{"INR"}\r
+        }\r
+        IQD{\r
+            one{"Dinaar Ciraaq"}\r
+            other{"Dinaarka Ciraaq"}\r
+        }\r
+        IRR{\r
+            one{"Riyaal Iran"}\r
+            other{"Riyaalka Iran"}\r
+        }\r
+        ISK{\r
+            one{"Korona Eysland"}\r
+            other{"Koronada Eysland"}\r
+        }\r
+        JMD{\r
+            one{"Doolarka Jamaaika"}\r
+            other{"Doolarada Jamaaika"}\r
+        }\r
+        JOD{\r
+            one{"Dinaar Joordan"}\r
+            other{"Dinaarka Joordan"}\r
+        }\r
+        JPY{\r
+            one{"Yen Jaban"}\r
+            other{"Yenta Jaban"}\r
+        }\r
+        KES{\r
+            one{"Shiling Kenya"}\r
+            other{"Shilingka Kenya"}\r
+        }\r
+        KGS{\r
+            one{"Soom Kiyriygstan"}\r
+            other{"KGS"}\r
+        }\r
+        KHR{\r
+            one{"Riyf Combodiya"}\r
+            other{"Riyf Cambodiya"}\r
+        }\r
+        KMF{\r
+            one{"Farank Komora"}\r
+            other{"Farank Komora"}\r
+        }\r
+        KPW{\r
+            one{"Won Waqooyi Kuuriya"}\r
+            other{"Wonka Waqooyi Kuuriya"}\r
+        }\r
+        KRW{\r
+            one{"Won Koonfur Kuuriya"}\r
+            other{"Wonka Koonfur Kuuriya"}\r
+        }\r
+        KWD{\r
+            one{"Dinaar Kuweyt"}\r
+            other{"Dinaarka Kuweyt"}\r
+        }\r
+        KYD{\r
+            one{"Doolarka jasiiradaha Kayman"}\r
+            other{"Doolarka Jasiiradaha Kayman"}\r
+        }\r
+        KZT{\r
+            one{"Tenge Kasakhstan"}\r
+            other{"Tenge Kasakhstan"}\r
+        }\r
+        LAK{\r
+            one{"Kib Laoti"}\r
+            other{"LAK"}\r
+        }\r
+        LBP{\r
+            one{"Bownd Lebanon"}\r
+            other{"Bowndka Lebanon"}\r
+        }\r
+        LKR{\r
+            one{"Rubiga Siri Lanka"}\r
+            other{"Rubiga Siri lanka"}\r
+        }\r
+        LRD{\r
+            one{"Doollar Liberiya"}\r
+            other{"Doollarka Liberiya"}\r
+        }\r
+        LYD{\r
+            one{"Dinaar Libya"}\r
+            other{"Dinaarka Libya"}\r
+        }\r
+        MAD{\r
+            one{"Dirham Moroko"}\r
+            other{"Dirhamka Moroko"}\r
+        }\r
+        MDL{\r
+            one{"Leeyuu Moldofa"}\r
+            other{"Leeyuu Moldofa"}\r
+        }\r
+        MGA{\r
+            one{"Ariari Malagasi"}\r
+            other{"Ariari Malagasy"}\r
+        }\r
+        MKD{\r
+            one{"Denaar Masedoniya"}\r
+            other{"MKD"}\r
+        }\r
+        MMK{\r
+            one{"Kayat Mayanmaar"}\r
+            other{"Kayat Mayanmaar"}\r
+        }\r
+        MNT{\r
+            one{"Tugrik Mongoliya"}\r
+            other{"Tugrik Mongoliya"}\r
+        }\r
+        MOP{\r
+            one{"Bataka Makana"}\r
+            other{"Bataka Makana"}\r
+        }\r
+        MRO{\r
+            one{"Oogiya Mawritaniya (1973–2017)"}\r
+            other{"Oogiya Mawritaniya (1973–2017)"}\r
+        }\r
+        MRU{\r
+            one{"Oogiya Mawritaniya"}\r
+            other{"Oogiya Mawritaniya"}\r
+        }\r
+        MUR{\r
+            one{"Rubi Mowrishiya"}\r
+            other{"Rubiga Mowrishiya"}\r
+        }\r
+        MVR{\r
+            one{"Rufiya Maldifiya"}\r
+            other{"Rufiya Maldifiya"}\r
+        }\r
+        MWK{\r
+            one{"Kawaja Malawi"}\r
+            other{"Kawajada Malawi"}\r
+        }\r
+        MXN{\r
+            one{"Beeso Meksikaan"}\r
+            other{"BMX"}\r
+        }\r
+        MYR{\r
+            one{"Ringit Malayshiya"}\r
+            other{"Ringit Malayshiya"}\r
+        }\r
+        MZN{\r
+            one{"Metikal Mosambik"}\r
+            other{"Metikalka Mosambik"}\r
+        }\r
+        NAD{\r
+            one{"Doollar Namibiya"}\r
+            other{"Doollarka Namibiya"}\r
+        }\r
+        NGN{\r
+            one{"Naira Neyjeeriya"}\r
+            other{"Nairada Neyjeeriya"}\r
+        }\r
+        NIO{\r
+            one{"Nakaragua Kordoba"}\r
+            other{"NIkaragua Kordoba"}\r
+        }\r
+        NOK{\r
+            one{"Koronka Norway"}\r
+            other{"Koronka Norway"}\r
+        }\r
+        NPR{\r
+            one{"Rubiga Nebal"}\r
+            other{"Rubiga Nebal"}\r
+        }\r
+        NZD{\r
+            one{"Doolarka Niyuu siyalaan"}\r
+            other{"Doolarada Niyuu Siya laan"}\r
+        }\r
+        OMR{\r
+            one{"Riyaal Comaan"}\r
+            other{"Riyaalka Comaan"}\r
+        }\r
+        PAB{\r
+            one{"Balbao Banaama"}\r
+            other{"Balboa Panama"}\r
+        }\r
+        PEN{\r
+            one{"Sol Beero"}\r
+            other{"PEN"}\r
+        }\r
+        PGK{\r
+            one{"Kina Babua Niyuu Gini"}\r
+            other{"Kinada Babua Niyuu Gini"}\r
+        }\r
+        PHP{\r
+            one{"Biso Filibin"}\r
+            other{"Biso Filibin"}\r
+        }\r
+        PKR{\r
+            one{"Rubi Bakistan"}\r
+            other{"Rubiga Bakistan"}\r
+        }\r
+        PLN{\r
+            one{"Sooti Boland"}\r
+            other{"Solotida Boland"}\r
+        }\r
+        PYG{\r
+            one{"Guarani Baraguay"}\r
+            other{"Guarani Baraguay"}\r
+        }\r
+        QAR{\r
+            one{"Riyaal Qatar"}\r
+            other{"Riyaalka Qatar"}\r
+        }\r
+        RON{\r
+            one{"Liyuu Romaniya"}\r
+            other{"Liyuu ROmaniya"}\r
+        }\r
+        RSD{\r
+            one{"Dinaar Serbiya"}\r
+            other{"RSD"}\r
+        }\r
+        RUB{\r
+            one{"Rubal Ruush"}\r
+            other{"Rubalka Ruush"}\r
+        }\r
+        RWF{\r
+            one{"Farank Ruwanda"}\r
+            other{"Farank Ruwanda"}\r
+        }\r
+        SAR{\r
+            one{"Riyaal Sacuudi"}\r
+            other{"Riyaalka Sacuudiga"}\r
+        }\r
+        SBD{\r
+            one{"Doolarka Jasiiradaha Solomon"}\r
+            other{"Doolarada Jasiiradaha Solomon"}\r
+        }\r
+        SCR{\r
+            one{"Rubi Siisalis"}\r
+            other{"SCR"}\r
+        }\r
+        SDG{\r
+            one{"SDG"}\r
+            other{"SDG"}\r
+        }\r
+        SEK{\r
+            one{"Koronka Isweden"}\r
+            other{"Koronka Isweden"}\r
+        }\r
+        SGD{\r
+            one{"Doollar Singabuur"}\r
+            other{"Doollarka Singabuur"}\r
+        }\r
+        SHP{\r
+            one{"Bownd St Helen"}\r
+            other{"SHP"}\r
+        }\r
+        SLL{\r
+            one{"Leon Sira Leo"}\r
+            other{"Leonka Sira Leon"}\r
+        }\r
+        SRD{\r
+            one{"Doolarka Surinamees"}\r
+            other{"Doolarada Surinamees"}\r
+        }\r
+        SSP{\r
+            one{"Boownka Koonfurta Suudaan"}\r
+            other{"Boownanka Koonfurta Suudaan"}\r
+        }\r
+        STN{\r
+            one{"Dobra Sao Tome Birinsibal"}\r
+            other{"STN"}\r
+        }\r
+        SYP{\r
+            one{"Bownd Suuriya"}\r
+            other{"Bowndka Suuriya"}\r
+        }\r
+        SZL{\r
+            one{"Lilengeeni Iswasi"}\r
+            other{"Lilangeenida iswasi"}\r
+        }\r
+        THB{\r
+            one{"Baat Tayland"}\r
+            other{"Baatka Tayland"}\r
+        }\r
+        TJS{\r
+            one{"Soomon Tajikistan"}\r
+            other{"Somoon Tajikistan"}\r
+        }\r
+        TMT{\r
+            one{"Manat Turkmenistan"}\r
+            other{"Manaat Turkmenistan"}\r
+        }\r
+        TND{\r
+            one{"Dinaarka Tunisiya"}\r
+            other{"Dinaarka Tunisiya"}\r
+        }\r
+        TOP{\r
+            one{"Ba’anga Tonga"}\r
+            other{"Ba’anga Tonga"}\r
+        }\r
+        TRY{\r
+            one{"Liira Turki"}\r
+            other{"Liirada Turkiga"}\r
+        }\r
+        TTD{\r
+            one{"Doolarka Tirinad iyo Tobago"}\r
+            other{"Doolarada Tirinad iyo Tobago"}\r
+        }\r
+        TWD{\r
+            one{"Doollar Taywaanta Cusub"}\r
+            other{"Doollarka Taywaanta Cusubta"}\r
+        }\r
+        TZS{\r
+            one{"Shilin Tansaaniya"}\r
+            other{"Shilingka Tansaaniya"}\r
+        }\r
+        UAH{\r
+            one{"Hirfiniya Yukreeyn"}\r
+            other{"Hirfiniyada Yukreeyn"}\r
+        }\r
+        UGX{\r
+            one{"Shiling Uganda"}\r
+            other{"Shilingka Uganda"}\r
+        }\r
+        USD{\r
+            one{"Doolarka Mareeykanka"}\r
+            other{"Doolarada Mareeykanka"}\r
+        }\r
+        UYU{\r
+            one{"Beeso Uruguay"}\r
+            other{"Beeso Uruguay"}\r
+        }\r
+        UZS{\r
+            one{"Soom Usbekistan"}\r
+            other{"Soom Usbekistan"}\r
+        }\r
+        VEF{\r
+            one{"Bolifar Fenesuala (2008–2018)"}\r
+            other{"Bolifar Fenesuala (2008–2018)"}\r
+        }\r
+        VES{\r
+            one{"Bolifar Fenesuala"}\r
+            other{"Bolifar Fenezuela"}\r
+        }\r
+        VND{\r
+            one{"Dong Fitnaam"}\r
+            other{"Dong Fitnaam"}\r
+        }\r
+        VUV{\r
+            one{"Fatu Fanuatu"}\r
+            other{"Fatu Fanuatu"}\r
+        }\r
+        WST{\r
+            one{"Tala Samao"}\r
+            other{"Tala Samao"}\r
+        }\r
+        XAF{\r
+            one{"Faranka CFA ee Bartamaha Afrika"}\r
+            other{"Farank CFA ee Bartamaha Afrika"}\r
+        }\r
+        XCD{\r
+            one{"Doolarka Bariga Kaaribyan"}\r
+            other{"Doolarada Bariga Kaaribyan"}\r
+        }\r
+        XOF{\r
+            one{"Farank CFA Galbeedka Afrika"}\r
+            other{"XOF"}\r
+        }\r
+        XPF{\r
+            one{"Farank CFP"}\r
+            other{"Farank CFP"}\r
+        }\r
+        XXX{\r
+            one{"Lacag aan la aqoon"}\r
+            other{"Lacag aan la aqoon"}\r
+        }\r
+        YER{\r
+            one{"Riyaal Yemen"}\r
+            other{"Riyaalka Yemen"}\r
+        }\r
+        ZAR{\r
+            one{"Rand Koonfur Afrika"}\r
+            other{"Randka Koonfur Afrika"}\r
+        }\r
+        ZMW{\r
+            one{"Kawaja Sambiya"}\r
+            other{"Kawajada Sambiya"}\r
+        }\r
+    }\r
+    CurrencyUnitPatterns{\r
+        one{"{0} {1}"}\r
+        other{"{0} {1}"}\r
     }\r
-    Version{"2.1.38.69"}\r
+    Version{"2.1.43.94"}\r
 }\r
index 0fa6a393d37803ec118c712d2d726f017448452e..b49b71050d2940201a537d7922c0d5fbd446c999 100644 (file)
@@ -4,7 +4,7 @@ so_KE{
     Currencies{\r
         KES{\r
             "Ksh",\r
-            "KES",\r
+            "Shilingka Kenya",\r
         }\r
     }\r
     Version{"2.1.38.69"}\r
index ce9975b3353109e81b4f3c9482db44034984dc66..4c6ba7439cdf75ce29e7fe74b6e557ba0083a52f 100644 (file)
@@ -600,7 +600,11 @@ sq{
         }\r
         VEF{\r
             "VEF",\r
-            "Bolivari venezuelian",\r
+            "Bolivari venezuelian (2008–2018)",\r
+        }\r
+        VES{\r
+            "VES",\r
+            "Bolivari venezuelas",\r
         }\r
         VND{\r
             "₫",\r
@@ -631,7 +635,7 @@ sq{
             "Franga franceze e Polinezisë",\r
         }\r
         XXX{\r
-            "XXX",\r
+            "¤",\r
             "Valutë e panjohur",\r
         }\r
         YER{\r
@@ -1249,8 +1253,12 @@ sq{
             other{"soma uzbeke"}\r
         }\r
         VEF{\r
-            one{"bolivar venezuelian"}\r
-            other{"bolivarë venezuelian"}\r
+            one{"bolivar venezuelian (2008–2018)"}\r
+            other{"bolivarë venezuelian (2008–2018)"}\r
+        }\r
+        VES{\r
+            one{"bolivar venezuelas"}\r
+            other{"bolivarë venezuelas"}\r
         }\r
         VND{\r
             one{"dongë vietnameze"}\r
@@ -1301,5 +1309,5 @@ sq{
         one{"{0} {1}"}\r
         other{"{0} {1}"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.50"}\r
 }\r
index 2c2b9a69115e1213f29fd8ec66f5926792a8cfe1..fd8aa18583ada09be0df22a09b9434b38d0a459d 100644 (file)
@@ -980,6 +980,10 @@ sr{
         }\r
         VEF{\r
             "VEF",\r
+            "Венецуелански боливар (2008–2018)",\r
+        }\r
+        VES{\r
+            "VES",\r
             "Венецуелански боливар",\r
         }\r
         VND{\r
@@ -1071,7 +1075,7 @@ sr{
             "Код тестиране валуте",\r
         }\r
         XXX{\r
-            "XXX",\r
+            "¤",\r
             "Непозната валута",\r
         }\r
         YDD{\r
@@ -2453,6 +2457,11 @@ sr{
             other{"венецуеланских боливара (1871–2008)"}\r
         }\r
         VEF{\r
+            few{"венецуеланска боливара (2008–2018)"}\r
+            one{"венецуелански боливар (2008–2018)"}\r
+            other{"венецуеланских боливара (2008–2018)"}\r
+        }\r
+        VES{\r
             few{"венецуеланска боливара"}\r
             one{"венецуелански боливар"}\r
             other{"венецуеланских боливара"}\r
@@ -2648,5 +2657,5 @@ sr{
         one{"{0} {1}"}\r
         other{"{0} {1}"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.94"}\r
 }\r
index 40bcb0ed91b39903f12e03c7edac0f38c291800d..53bf464ea5c6e26cc024d880d7c3d3250f99f839 100644 (file)
@@ -981,6 +981,10 @@ sr_Latn{
         }\r
         VEF{\r
             "VEF",\r
+            "Venecuelanski bolivar (2008–2018)",\r
+        }\r
+        VES{\r
+            "VES",\r
             "Venecuelanski bolivar",\r
         }\r
         VND{\r
@@ -1072,7 +1076,7 @@ sr_Latn{
             "Kod testirane valute",\r
         }\r
         XXX{\r
-            "XXX",\r
+            "¤",\r
             "Nepoznata valuta",\r
         }\r
         YDD{\r
@@ -2454,6 +2458,11 @@ sr_Latn{
             other{"venecuelanskih bolivara (1871–2008)"}\r
         }\r
         VEF{\r
+            few{"venecuelanska bolivara (2008–2018)"}\r
+            one{"venecuelanski bolivar (2008–2018)"}\r
+            other{"venecuelanskih bolivara (2008–2018)"}\r
+        }\r
+        VES{\r
             few{"venecuelanska bolivara"}\r
             one{"venecuelanski bolivar"}\r
             other{"venecuelanskih bolivara"}\r
@@ -2649,5 +2658,5 @@ sr_Latn{
         one{"{0} {1}"}\r
         other{"{0} {1}"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.50"}\r
 }\r
index ddbf0d217117e2b96c6be407a9054eb35750e990..a0d47293fe0158873e584dcf55a34a2724985751 100644 (file)
@@ -2939,6 +2939,17 @@ supplementalData:table(nofallback){
                 }\r
                 id{"MVR"}\r
             }\r
+            {\r
+                from:intvector{\r
+                    -169,\r
+                    3073024,\r
+                }\r
+                id{"MVP"}\r
+                to:intvector{\r
+                    84,\r
+                    2102747135,\r
+                }\r
+            }\r
         }\r
         MW{\r
             {\r
@@ -4306,6 +4317,9 @@ supplementalData:table(nofallback){
             {\r
                 id{"UYI"}\r
             }\r
+            {\r
+                id{"UYW"}\r
+            }\r
         }\r
         UZ{\r
             {\r
@@ -4346,12 +4360,23 @@ supplementalData:table(nofallback){
             }\r
         }\r
         VE{\r
+            {\r
+                from:intvector{\r
+                    357,\r
+                    1419875328,\r
+                }\r
+                id{"VES"}\r
+            }\r
             {\r
                 from:intvector{\r
                     279,\r
                     849724416,\r
                 }\r
                 id{"VEF"}\r
+                to:intvector{\r
+                    357,\r
+                    1506275327,\r
+                }\r
             }\r
             {\r
                 from:intvector{\r
@@ -4766,7 +4791,7 @@ supplementalData:table(nofallback){
             0,\r
         }\r
         AMD:intvector{\r
-            0,\r
+            2,\r
             0,\r
             0,\r
             0,\r
@@ -4820,7 +4845,7 @@ supplementalData:table(nofallback){
             0,\r
         }\r
         COP:intvector{\r
-            0,\r
+            2,\r
             0,\r
             0,\r
             0,\r
@@ -4868,7 +4893,7 @@ supplementalData:table(nofallback){
             0,\r
         }\r
         GYD:intvector{\r
-            0,\r
+            2,\r
             0,\r
             0,\r
             0,\r
@@ -4880,7 +4905,7 @@ supplementalData:table(nofallback){
             0,\r
         }\r
         IDR:intvector{\r
-            0,\r
+            2,\r
             0,\r
             0,\r
             0,\r
@@ -4988,7 +5013,7 @@ supplementalData:table(nofallback){
             0,\r
         }\r
         MNT:intvector{\r
-            0,\r
+            2,\r
             0,\r
             0,\r
             0,\r
@@ -5000,7 +5025,7 @@ supplementalData:table(nofallback){
             0,\r
         }\r
         MUR:intvector{\r
-            0,\r
+            2,\r
             0,\r
             0,\r
             0,\r
@@ -5018,7 +5043,7 @@ supplementalData:table(nofallback){
             0,\r
         }\r
         PKR:intvector{\r
-            0,\r
+            2,\r
             0,\r
             0,\r
             0,\r
@@ -5096,7 +5121,7 @@ supplementalData:table(nofallback){
             0,\r
         }\r
         TZS:intvector{\r
-            0,\r
+            2,\r
             0,\r
             0,\r
             0,\r
@@ -5113,8 +5138,14 @@ supplementalData:table(nofallback){
             0,\r
             0,\r
         }\r
-        UZS:intvector{\r
+        UYW:intvector{\r
+            4,\r
             0,\r
+            4,\r
+            0,\r
+        }\r
+        UZS:intvector{\r
+            2,\r
             0,\r
             0,\r
             0,\r
index 1131de1ad4a603b8c26743cc34dc63db0070a117..531e43f1141a8433803e941b701e57103bf8e056 100644 (file)
@@ -1044,6 +1044,10 @@ sv{
         }\r
         VEF{\r
             "VEF",\r
+            "venezuelansk bolívar (2008–2018)",\r
+        }\r
+        VES{\r
+            "VES",\r
             "venezuelansk bolívar",\r
         }\r
         VND{\r
@@ -1143,7 +1147,7 @@ sv{
             "afrikansk kontoenhet",\r
         }\r
         XXX{\r
-            "XXX",\r
+            "¤",\r
             "okänd valuta",\r
         }\r
         YDD{\r
@@ -2350,6 +2354,10 @@ sv{
             other{"venezuelanska bolivar (1871–2008)"}\r
         }\r
         VEF{\r
+            one{"venezuelansk bolívar (2008–2018)"}\r
+            other{"venezuelanska bolívar (2008–2018)"}\r
+        }\r
+        VES{\r
             one{"venezuelansk bolívar"}\r
             other{"venezuelanska bolívar"}\r
         }\r
@@ -2518,5 +2526,5 @@ sv{
         one{"{0} {1}"}\r
         other{"{0} {1}"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.94"}\r
 }\r
index 1bbcfe0461b537909c4b9d108fd1feda9a50d3bc..be45807d77919b6d780dc653f408537c417d8479 100644 (file)
@@ -168,7 +168,7 @@ sw{
         }\r
         DZD{\r
             "DZD",\r
-            "Dinar ya Algeria",\r
+            "Dinar ya Aljeria",\r
         }\r
         EGP{\r
             "EGP",\r
@@ -620,6 +620,10 @@ sw{
         }\r
         VEF{\r
             "VEF",\r
+            "Bolivar ya Venezuela (2008–2018)",\r
+        }\r
+        VES{\r
+            "VES",\r
             "Bolivar ya Venezuela",\r
         }\r
         VND{\r
@@ -651,7 +655,7 @@ sw{
             "Faranga ya CFP",\r
         }\r
         XXX{\r
-            "XXX",\r
+            "¤",\r
             "Sarafu isiyojulikana",\r
         }\r
         YER{\r
@@ -941,8 +945,8 @@ sw{
             other{"peso za Dominica"}\r
         }\r
         DZD{\r
-            one{"dinar ya Algeria"}\r
-            other{"dinar za Algeria"}\r
+            one{"dinar ya Aljeria"}\r
+            other{"dinar za Aljeria"}\r
         }\r
         EGP{\r
             one{"pauni ya Misri"}\r
@@ -1381,6 +1385,10 @@ sw{
             other{"som za Uzbekistan"}\r
         }\r
         VEF{\r
+            one{"Bolivar ya Venezuela (2008–2018)"}\r
+            other{"Bolivar za Venezuela (2008–2018)"}\r
+        }\r
+        VES{\r
             one{"Bolivar ya Venezuela"}\r
             other{"Bolivar za Venezuela"}\r
         }\r
@@ -1433,5 +1441,5 @@ sw{
         one{"{1} {0}"}\r
         other{"{1} {0}"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.65"}\r
 }\r
index 86ba63b1cffb27d30dbcf7b541267633e3ca7366..92f2e15043ae4eb688c967c0167cb8495f921199 100644 (file)
@@ -43,5 +43,5 @@ sw_CD{
             "Faranga CFA BCEAO",\r
         }\r
     }\r
-    Version{"2.1.39.11"}\r
+    Version{"2.1.43.65"}\r
 }\r
index ab9fdc8ec90572dee7a778413570c2cf40f61ce4..33f73de757cfc5b684fdc5198bacd513e758f290 100644 (file)
@@ -604,6 +604,10 @@ ta{
         }\r
         VEF{\r
             "VEF",\r
+            "வெனிசுலன் போலிவர் (2008–2018)",\r
+        }\r
+        VES{\r
+            "VES",\r
             "வெனிசுலன் போலிவர்",\r
         }\r
         VND{\r
@@ -635,7 +639,7 @@ ta{
             "ஃப்ராங்க் (CFP)",\r
         }\r
         XXX{\r
-            "XXX",\r
+            "¤",\r
             "தெரியாத நாணயம்",\r
         }\r
         YER{\r
@@ -1353,6 +1357,10 @@ ta{
             other{"உஸ்பெக்கிஸ்தானி சோம்"}\r
         }\r
         VEF{\r
+            one{"வெனிசுலன் போலிவர் (2008–2018)"}\r
+            other{"வெனிசுலன் போலிவர்கள் (2008–2018)"}\r
+        }\r
+        VES{\r
             one{"வெனிசுலன் போலிவர்"}\r
             other{"வெனிசுலன் போலிவர்கள்"}\r
         }\r
@@ -1405,5 +1413,5 @@ ta{
         one{"{0} {1}"}\r
         other{"{0} {1}"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.50"}\r
 }\r
index 3eab5bd1e63d3de07e03a4509aacc7511947ff41..a1433d319c4223e64ebadb6281f4bd4b3c3d8e21 100644 (file)
@@ -280,7 +280,7 @@ te{
         }\r
         JPY{\r
             "JP¥",\r
-            "à°\9cపానà±\81 à°¦à±\87à°¶ à°¯à±\86à°¸్",\r
+            "à°\9cపానà±\81 à°¦à±\87à°¶ à°¯à±\86à°¨్",\r
         }\r
         KES{\r
             "KES",\r
@@ -604,6 +604,10 @@ te{
         }\r
         VEF{\r
             "VEF",\r
+            "వెనుజులా బోలివర్ (2008–2018)",\r
+        }\r
+        VES{\r
+            "VES",\r
             "వెనుజులా బోలివర్",\r
         }\r
         VND{\r
@@ -635,7 +639,7 @@ te{
             "సిఎఫ్‌పి ఫ్రాంక్",\r
         }\r
         XXX{\r
-            "XXX",\r
+            "¤",\r
             "తెలియని కరెన్సీ",\r
         }\r
         YER{\r
@@ -1033,8 +1037,8 @@ te{
             other{"జోర్‌డానియన్ దీనార్‌లు"}\r
         }\r
         JPY{\r
-            one{"à°\9cపానà±\81 à°¦à±\87à°¶ à°¯à±\86à°¸్"}\r
-            other{"à°\9cపానà±\81 à°¦à±\87à°¶ à°¯à±\86à°¸్"}\r
+            one{"à°\9cపానà±\81 à°¦à±\87à°¶ à°¯à±\86à°¨్"}\r
+            other{"à°\9cపానà±\81 à°¦à±\87à°¶ à°¯à±\86à°¨్"}\r
         }\r
         KES{\r
             one{"కెన్యాన్ షిల్లింగ్"}\r
@@ -1353,6 +1357,10 @@ te{
             other{"ఉజ్‌బెకిస్తాన్ సౌమ్"}\r
         }\r
         VEF{\r
+            one{"వెనుజులా బోలివర్ (2008–2018)"}\r
+            other{"వెనుజులా బోలివర్‌లు (2008–2018)"}\r
+        }\r
+        VES{\r
             one{"వెనుజులా బోలివర్"}\r
             other{"వెనుజులా బోలివర్‌లు"}\r
         }\r
@@ -1405,5 +1413,5 @@ te{
         one{"{0} {1}"}\r
         other{"{0} {1}"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.50"}\r
 }\r
index f8d6a9b4b194cf5f40e29d82427959375f14c2ad..2a51ff6f75096e65c1ac7e6cbde7fe0fa70513dd 100644 (file)
@@ -39,7 +39,7 @@ tg{
             "Доллари ИМА",\r
         }\r
         XXX{\r
-            "XXX",\r
+            "¤",\r
             "Асъори номаълум",\r
         }\r
     }\r
@@ -88,5 +88,5 @@ tg{
     CurrencyUnitPatterns{\r
         other{"{0} {1}"}\r
     }\r
-    Version{"2.1.38.71"}\r
+    Version{"2.1.44.88"}\r
 }\r
index 22e5d99a3bea4e0c2e5c558e555a5f50120f67ff..56e1084ca75402eb7249c47d52772bba306fe688 100644 (file)
@@ -923,7 +923,7 @@ th{
             "ลิลันเจนีสวาซิ",\r
         }\r
         THB{\r
-            "THB",\r
+            "฿",\r
             "บาท",\r
         }\r
         TJR{\r
@@ -1026,6 +1026,10 @@ th{
             "VEF",\r
             "โบลิวาร์เวเนซุเอลา",\r
         }\r
+        VES{\r
+            "VES",\r
+            "โบลีวาร์เวเนซุเอลา",\r
+        }\r
         VND{\r
             "₫",\r
             "ดองเวียดนาม",\r
@@ -1124,7 +1128,7 @@ th{
         }\r
         XXX{\r
             "XXX",\r
-            "สà¸\81ุลà¹\80à¸\87ิà¸\99à¸\97ีà¹\88à¹\84มà¹\88รูà¹\89à¸\88ัà¸\81",\r
+            "à¹\84มà¹\88à¸\97ราà¸\9aà¸\8aืà¹\88อสà¸\81ุลà¹\80à¸\87ิà¸\99",\r
         }\r
         YDD{\r
             "YDD",\r
@@ -1269,7 +1273,6 @@ th{
         SSP{"£"}\r
         STN{"Db"}\r
         SYP{"£"}\r
-        THB{"฿"}\r
         TOP{"T$"}\r
         TRY{"₺"}\r
         TTD{"$"}\r
@@ -1748,6 +1751,9 @@ th{
         VEF{\r
             other{"โบลิวาร์เวเนซุเอลา"}\r
         }\r
+        VES{\r
+            other{"โบลีวาร์แห่งเวเนซุเอลา"}\r
+        }\r
         VND{\r
             other{"ดองเวียดนาม"}\r
         }\r
@@ -1770,7 +1776,7 @@ th{
             other{"ฟรังก์ซีเอฟพี"}\r
         }\r
         XXX{\r
-            other{"(สà¸\81ุลà¹\80à¸\87ิà¸\99à¸\97ีà¹\88à¹\84มà¹\88รูà¹\89à¸\88ัà¸\81)"}\r
+            other{"(à¹\84มà¹\88à¸\97ราà¸\9aà¸\8aืà¹\88อสà¸\81ุลà¹\80à¸\87ิà¸\99)"}\r
         }\r
         YER{\r
             other{"เรียลเยเมน"}\r
@@ -1785,5 +1791,5 @@ th{
     CurrencyUnitPatterns{\r
         other{"{0} {1}"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.89"}\r
 }\r
index 26a143592786fa108afc50ba67c23ab972bec4b7..5133a527cbd9de4c65084139fe46441c6b26b18e 100644 (file)
@@ -43,5 +43,5 @@ ti{
         one{"{0} {1}"}\r
         other{"{0} {1}"}\r
     }\r
-    Version{"2.1.38.72"}\r
+    Version{"2.1.44.88"}\r
 }\r
index 48d8378d5a22d18e45329d9867b91eedd2eea170..45520dd41519f1ea218d1ead8ccac73438ee6c9c 100644 (file)
@@ -7,5 +7,5 @@ ti_ER{
             "ERN",\r
         }\r
     }\r
-    Version{"2.1.38.73"}\r
+    Version{"2.1.43.65"}\r
 }\r
diff --git a/source/data/curr/tk.txt b/source/data/curr/tk.txt
new file mode 100644 (file)
index 0000000..1e64efe
--- /dev/null
@@ -0,0 +1,1393 @@
+// © 2016 and later: Unicode, Inc. and others.\r
+// License & terms of use: http://www.unicode.org/copyright.html#License\r
+tk{\r
+    Currencies{\r
+        AED{\r
+            "AED",\r
+            "BAE dirhemi",\r
+        }\r
+        AFN{\r
+            "AFN",\r
+            "Owgan afganisi",\r
+        }\r
+        ALL{\r
+            "ALL",\r
+            "Alban leki",\r
+        }\r
+        AMD{\r
+            "AMD",\r
+            "Ermeni dramy",\r
+        }\r
+        ANG{\r
+            "ANG",\r
+            "Niderland antil guldeni",\r
+        }\r
+        AOA{\r
+            "AOA",\r
+            "Angola kwanzasy",\r
+        }\r
+        ARS{\r
+            "ARS",\r
+            "Argentin pesosy",\r
+        }\r
+        AUD{\r
+            "A$",\r
+            "Awstraliýa dollary",\r
+        }\r
+        AWG{\r
+            "AWG",\r
+            "Aruba florini",\r
+        }\r
+        AZN{\r
+            "AZN",\r
+            "Azerbaýjan manady",\r
+        }\r
+        BAM{\r
+            "BAM",\r
+            "Konwertirlenýän Bosniýa we Gersegowina markasy",\r
+        }\r
+        BBD{\r
+            "BBD",\r
+            "Barbados dollary",\r
+        }\r
+        BDT{\r
+            "BDT",\r
+            "Bangladeş takasy",\r
+        }\r
+        BGN{\r
+            "BGN",\r
+            "Bolgar lewi",\r
+        }\r
+        BHD{\r
+            "BHD",\r
+            "Bahreýn dinary",\r
+        }\r
+        BIF{\r
+            "BIF",\r
+            "Burundi franky",\r
+        }\r
+        BMD{\r
+            "BMD",\r
+            "Bermuda dollary",\r
+        }\r
+        BND{\r
+            "BND",\r
+            "Bruneý dollary",\r
+        }\r
+        BOB{\r
+            "BOB",\r
+            "Boliwiýa boliwianosy",\r
+        }\r
+        BRL{\r
+            "R$",\r
+            "Brazil realy",\r
+        }\r
+        BSD{\r
+            "BSD",\r
+            "Bagama dollary",\r
+        }\r
+        BTN{\r
+            "BTN",\r
+            "Butan ngultrumy",\r
+        }\r
+        BWP{\r
+            "BWP",\r
+            "Botswana pulasy",\r
+        }\r
+        BYN{\r
+            "BYN",\r
+            "Belarus rubly",\r
+        }\r
+        BYR{\r
+            "BYR",\r
+            "Belorus rubly (2000–2016)",\r
+        }\r
+        BZD{\r
+            "BZD",\r
+            "Beliz dollary",\r
+        }\r
+        CAD{\r
+            "CA$",\r
+            "Kanada dollary",\r
+        }\r
+        CDF{\r
+            "CDF",\r
+            "Kongo franky",\r
+        }\r
+        CHF{\r
+            "CHF",\r
+            "Şweýsar franky",\r
+        }\r
+        CLP{\r
+            "CLP",\r
+            "Çili pesosy",\r
+        }\r
+        CNH{\r
+            "CNH",\r
+            "Hytaý ýuany (ofşor)",\r
+        }\r
+        CNY{\r
+            "CN¥",\r
+            "Hytaý ýuany",\r
+        }\r
+        COP{\r
+            "COP",\r
+            "Kolumbiýa pesosy",\r
+        }\r
+        CRC{\r
+            "CRC",\r
+            "Kosta-Rika kolony",\r
+        }\r
+        CUC{\r
+            "CUC",\r
+            "Konwertirlenýän kuba pesosy",\r
+        }\r
+        CUP{\r
+            "CUP",\r
+            "Kuba pesosy",\r
+        }\r
+        CVE{\r
+            "CVE",\r
+            "Kabo-Werde eskudosy",\r
+        }\r
+        CZK{\r
+            "CZK",\r
+            "Çeh kronasy",\r
+        }\r
+        DJF{\r
+            "DJF",\r
+            "Jibuti franky",\r
+        }\r
+        DKK{\r
+            "DKK",\r
+            "Daniýa kronasy",\r
+        }\r
+        DOP{\r
+            "DOP",\r
+            "Dominikan pesosy",\r
+        }\r
+        DZD{\r
+            "DZD",\r
+            "Alžir dinary",\r
+        }\r
+        EGP{\r
+            "EGP",\r
+            "Müsür funty",\r
+        }\r
+        ERN{\r
+            "ERN",\r
+            "Eritreýa nakfasy",\r
+        }\r
+        ETB{\r
+            "ETB",\r
+            "Efiopiýa byry",\r
+        }\r
+        EUR{\r
+            "EUR",\r
+            "Ýewro",\r
+        }\r
+        FJD{\r
+            "FJD",\r
+            "Fiji dollary",\r
+        }\r
+        FKP{\r
+            "FKP",\r
+            "Folklend adalarynyň funty",\r
+        }\r
+        GBP{\r
+            "GBP",\r
+            "Britan funt sterlingi",\r
+        }\r
+        GEL{\r
+            "GEL",\r
+            "Gruzin larisi",\r
+        }\r
+        GHS{\r
+            "GHS",\r
+            "Gano sedisi",\r
+        }\r
+        GIP{\r
+            "GIP",\r
+            "Gibraltar funty",\r
+        }\r
+        GMD{\r
+            "GMD",\r
+            "Gambiýa dalasisi",\r
+        }\r
+        GNF{\r
+            "GNF",\r
+            "Gwineý franky",\r
+        }\r
+        GTQ{\r
+            "GTQ",\r
+            "Gwatemala ketsaly",\r
+        }\r
+        GYD{\r
+            "GYD",\r
+            "Gaýana dollary",\r
+        }\r
+        HKD{\r
+            "HK$",\r
+            "Gonkong dollary",\r
+        }\r
+        HNL{\r
+            "HNL",\r
+            "Gonduras lempirasy",\r
+        }\r
+        HRK{\r
+            "HRK",\r
+            "Horwat kunasy",\r
+        }\r
+        HTG{\r
+            "HTG",\r
+            "Gaiti gurdy",\r
+        }\r
+        HUF{\r
+            "HUF",\r
+            "Wenger forinti",\r
+        }\r
+        IDR{\r
+            "IDR",\r
+            "Indoneziýa rupiýasy",\r
+        }\r
+        ILS{\r
+            "₪",\r
+            "Täze Ysraýyl şekeli",\r
+        }\r
+        INR{\r
+            "₹",\r
+            "Hindi rupiýasy",\r
+        }\r
+        IQD{\r
+            "IQD",\r
+            "Yrak dinary",\r
+        }\r
+        IRR{\r
+            "IRR",\r
+            "Eýran rialy",\r
+        }\r
+        ISK{\r
+            "ISK",\r
+            "Islandiýa kronasy",\r
+        }\r
+        JMD{\r
+            "JMD",\r
+            "Ýamaýka dollary",\r
+        }\r
+        JOD{\r
+            "JOD",\r
+            "Iordan dinary",\r
+        }\r
+        JPY{\r
+            "JP¥",\r
+            "Ýapon ýeni",\r
+        }\r
+        KES{\r
+            "KES",\r
+            "Keniýa şillingi",\r
+        }\r
+        KGS{\r
+            "KGS",\r
+            "Gyrgyz somy",\r
+        }\r
+        KHR{\r
+            "KHR",\r
+            "Kamboja riýeli",\r
+        }\r
+        KMF{\r
+            "KMF",\r
+            "Komor adalarynyň franky",\r
+        }\r
+        KPW{\r
+            "KPW",\r
+            "Demirgazyk Koreý wony",\r
+        }\r
+        KRW{\r
+            "₩",\r
+            "Günorta Koreý wony",\r
+        }\r
+        KWD{\r
+            "KWD",\r
+            "Kuweýt dinary",\r
+        }\r
+        KYD{\r
+            "KYD",\r
+            "Kaýman adalarynyň dollary",\r
+        }\r
+        KZT{\r
+            "KZT",\r
+            "Gazak teňňesi",\r
+        }\r
+        LAK{\r
+            "LAK",\r
+            "Laos kipi",\r
+        }\r
+        LBP{\r
+            "LBP",\r
+            "Liwan funty",\r
+        }\r
+        LKR{\r
+            "LKR",\r
+            "Şri-Lanka rupiýasy",\r
+        }\r
+        LRD{\r
+            "LRD",\r
+            "Liberiýa dollary",\r
+        }\r
+        LYD{\r
+            "LYD",\r
+            "Liwiýa dinary",\r
+        }\r
+        MAD{\r
+            "MAD",\r
+            "Marokko dirhamy",\r
+        }\r
+        MDL{\r
+            "MDL",\r
+            "Moldaw leýi",\r
+        }\r
+        MGA{\r
+            "MGA",\r
+            "Malagasiý ariarisi",\r
+        }\r
+        MKD{\r
+            "MKD",\r
+            "Makedon dinary",\r
+        }\r
+        MMK{\r
+            "MMK",\r
+            "Mýanma kýaty",\r
+        }\r
+        MNT{\r
+            "MNT",\r
+            "Mongol tugrigi",\r
+        }\r
+        MOP{\r
+            "MOP",\r
+            "Makao patakasy",\r
+        }\r
+        MRO{\r
+            "MRO",\r
+            "Mawritan ugiýasy (1973–2017)",\r
+        }\r
+        MRU{\r
+            "MRU",\r
+            "Mawritan ugiýasy",\r
+        }\r
+        MUR{\r
+            "MUR",\r
+            "Mawrikiý rupiýasy",\r
+        }\r
+        MVR{\r
+            "MVR",\r
+            "Maldiw rufiýasy",\r
+        }\r
+        MWK{\r
+            "MWK",\r
+            "Malawi kwaçasy",\r
+        }\r
+        MXN{\r
+            "MX$",\r
+            "Meksikan pesosy",\r
+        }\r
+        MYR{\r
+            "MYR",\r
+            "Malaýziýa ringgiti",\r
+        }\r
+        MZN{\r
+            "MZN",\r
+            "Mozambik metikaly",\r
+        }\r
+        NAD{\r
+            "NAD",\r
+            "Namibiýa dollary",\r
+        }\r
+        NGN{\r
+            "NGN",\r
+            "Nigeriýa naýrasy",\r
+        }\r
+        NIO{\r
+            "NIO",\r
+            "Nikaragua kordobasy",\r
+        }\r
+        NOK{\r
+            "NOK",\r
+            "Norwegiýa kronasy",\r
+        }\r
+        NPR{\r
+            "NPR",\r
+            "Nepal rupiýasy",\r
+        }\r
+        NZD{\r
+            "NZ$",\r
+            "Täze Zelandiýa dollary",\r
+        }\r
+        OMR{\r
+            "OMR",\r
+            "Oman rialy",\r
+        }\r
+        PAB{\r
+            "PAB",\r
+            "Panama balboasy",\r
+        }\r
+        PEN{\r
+            "PEN",\r
+            "Peru soly",\r
+        }\r
+        PGK{\r
+            "PGK",\r
+            "Papua - Täze Gwineýa kinasy",\r
+        }\r
+        PHP{\r
+            "PHP",\r
+            "Filippin pesosy",\r
+        }\r
+        PKR{\r
+            "PKR",\r
+            "Päkistan rupiýasy",\r
+        }\r
+        PLN{\r
+            "PLN",\r
+            "Polýak zlotysy",\r
+        }\r
+        PYG{\r
+            "PYG",\r
+            "Paragwaý guaranisi",\r
+        }\r
+        QAR{\r
+            "QAR",\r
+            "Katar rialy",\r
+        }\r
+        RON{\r
+            "RON",\r
+            "Rumyn leýi",\r
+        }\r
+        RSD{\r
+            "RSD",\r
+            "Serb dinary",\r
+        }\r
+        RUB{\r
+            "RUB",\r
+            "Rus rubly",\r
+        }\r
+        RWF{\r
+            "RWF",\r
+            "Ruanda franky",\r
+        }\r
+        SAR{\r
+            "SAR",\r
+            "Saud rialy",\r
+        }\r
+        SBD{\r
+            "SBD",\r
+            "Solomon adalarynyň dollary",\r
+        }\r
+        SCR{\r
+            "SCR",\r
+            "Seýşel rupiýasy",\r
+        }\r
+        SDG{\r
+            "SDG",\r
+            "Sudan funty",\r
+        }\r
+        SEK{\r
+            "SEK",\r
+            "Şwed kronasy",\r
+        }\r
+        SGD{\r
+            "SGD",\r
+            "Singapur dollary",\r
+        }\r
+        SHP{\r
+            "SHP",\r
+            "Keramatly Ýelena adasynyň funty",\r
+        }\r
+        SLL{\r
+            "SLL",\r
+            "Sýerra-Leone leony",\r
+        }\r
+        SOS{\r
+            "SOS",\r
+            "Somali şillingi",\r
+        }\r
+        SRD{\r
+            "SRD",\r
+            "Surinam dollary",\r
+        }\r
+        SSP{\r
+            "SSP",\r
+            "Günorta Sudan funty",\r
+        }\r
+        STD{\r
+            "STD",\r
+            "San-Tome we Prinsipi dobrasy (1977–2017)",\r
+        }\r
+        STN{\r
+            "STN",\r
+            "San-Tome we Prinsipi dobrasy",\r
+        }\r
+        SYP{\r
+            "SYP",\r
+            "Siriýa funty",\r
+        }\r
+        SZL{\r
+            "SZL",\r
+            "Swazi lilangeni",\r
+        }\r
+        THB{\r
+            "THB",\r
+            "Taýland baty",\r
+        }\r
+        TJS{\r
+            "TJS",\r
+            "Täjik somonisi",\r
+        }\r
+        TMT{\r
+            "TMT",\r
+            "Türkmen manady",\r
+        }\r
+        TND{\r
+            "TND",\r
+            "Tunis dinary",\r
+        }\r
+        TOP{\r
+            "TOP",\r
+            "Tonga paangasy",\r
+        }\r
+        TRY{\r
+            "TRY",\r
+            "Türk lirasy",\r
+        }\r
+        TTD{\r
+            "TTD",\r
+            "Trininad we Tobago dollary",\r
+        }\r
+        TWD{\r
+            "NT$",\r
+            "Täze Taýwan dollary",\r
+        }\r
+        TZS{\r
+            "TZS",\r
+            "Tanzaniýa şillingi",\r
+        }\r
+        UAH{\r
+            "UAH",\r
+            "Ukrain griwnasy",\r
+        }\r
+        UGX{\r
+            "UGX",\r
+            "Uganda şillingi",\r
+        }\r
+        USD{\r
+            "US$",\r
+            "ABŞ dollary",\r
+        }\r
+        UYU{\r
+            "UYU",\r
+            "Urugwaý pesosy",\r
+        }\r
+        UZS{\r
+            "UZS",\r
+            "Özbek somy",\r
+        }\r
+        VEF{\r
+            "VEF",\r
+            "Wenesuela boliwary (2008–2018)",\r
+        }\r
+        VES{\r
+            "VES",\r
+            "Wenesuela boliwary",\r
+        }\r
+        VND{\r
+            "₫",\r
+            "Wýetnam dongy",\r
+        }\r
+        VUV{\r
+            "VUV",\r
+            "Wanuatu watusy",\r
+        }\r
+        WST{\r
+            "WST",\r
+            "Samoa talasy",\r
+        }\r
+        XAF{\r
+            "FCFA",\r
+            "KFA BEAC franky",\r
+        }\r
+        XCD{\r
+            "EC$",\r
+            "Gündogar karib dollary",\r
+        }\r
+        XOF{\r
+            "CFA",\r
+            "KFA BCEAO franky",\r
+        }\r
+        XPF{\r
+            "CFPF",\r
+            "Fransuz ýuwaş umman franky",\r
+        }\r
+        XXX{\r
+            "¤",\r
+            "Näbelli pul birligi",\r
+        }\r
+        YER{\r
+            "YER",\r
+            "Ýemen rialy",\r
+        }\r
+        ZAR{\r
+            "ZAR",\r
+            "Günorta Afrika rendi",\r
+        }\r
+        ZMW{\r
+            "ZMW",\r
+            "Zambiýa kwaçasy",\r
+        }\r
+    }\r
+    Currencies%narrow{\r
+        AOA{"Kz"}\r
+        ARS{"$"}\r
+        AUD{"$"}\r
+        BAM{"KM"}\r
+        BBD{"$"}\r
+        BDT{"৳"}\r
+        BMD{"$"}\r
+        BND{"$"}\r
+        BOB{"Bs"}\r
+        BRL{"R$"}\r
+        BSD{"$"}\r
+        BWP{"P"}\r
+        BYN{"р."}\r
+        BZD{"$"}\r
+        CAD{"$"}\r
+        CLP{"$"}\r
+        CNY{"¥"}\r
+        COP{"$"}\r
+        CRC{"₡"}\r
+        CUC{"$"}\r
+        CUP{"$"}\r
+        CZK{"Kč"}\r
+        DKK{"kr"}\r
+        DOP{"$"}\r
+        EGP{"E£"}\r
+        EUR{"€"}\r
+        FJD{"$"}\r
+        FKP{"£"}\r
+        GBP{"£"}\r
+        GEL{"₾"}\r
+        GIP{"£"}\r
+        GNF{"FG"}\r
+        GTQ{"Q"}\r
+        GYD{"$"}\r
+        HKD{"$"}\r
+        HNL{"L"}\r
+        HRK{"kn"}\r
+        HUF{"Ft"}\r
+        IDR{"Rp"}\r
+        ILS{"₪"}\r
+        INR{"₹"}\r
+        ISK{"kr"}\r
+        JMD{"$"}\r
+        JPY{"¥"}\r
+        KHR{"៛"}\r
+        KMF{"CF"}\r
+        KPW{"₩"}\r
+        KRW{"₩"}\r
+        KYD{"$"}\r
+        KZT{"₸"}\r
+        LAK{"₭"}\r
+        LBP{"L£"}\r
+        LKR{"Rs"}\r
+        LRD{"$"}\r
+        MGA{"Ar"}\r
+        MMK{"K"}\r
+        MNT{"₮"}\r
+        MUR{"Rs"}\r
+        MXN{"$"}\r
+        MYR{"RM"}\r
+        NAD{"$"}\r
+        NGN{"₦"}\r
+        NIO{"C$"}\r
+        NOK{"kr"}\r
+        NPR{"Rs"}\r
+        NZD{"$"}\r
+        PHP{"₱"}\r
+        PKR{"Rs"}\r
+        PLN{"zł"}\r
+        PYG{"₲"}\r
+        RON{"lei"}\r
+        RUB{"₽"}\r
+        RWF{"RF"}\r
+        SBD{"$"}\r
+        SEK{"kr"}\r
+        SGD{"$"}\r
+        SHP{"£"}\r
+        SRD{"$"}\r
+        SSP{"£"}\r
+        STN{"Db"}\r
+        SYP{"£"}\r
+        THB{"฿"}\r
+        TOP{"T$"}\r
+        TRY{"₺"}\r
+        TTD{"$"}\r
+        TWD{"$"}\r
+        UAH{"₴"}\r
+        USD{"$"}\r
+        UYU{"$"}\r
+        VEF{"Bs"}\r
+        VND{"₫"}\r
+        XCD{"$"}\r
+        ZAR{"R"}\r
+        ZMW{"ZK"}\r
+    }\r
+    Currencies%variant{\r
+        GEL{"₾"}\r
+        TRY{"TL"}\r
+    }\r
+    CurrencyPlurals{\r
+        AED{\r
+            one{"BAE dirhemi"}\r
+            other{"BAE dirhemi"}\r
+        }\r
+        AFN{\r
+            one{"owgan afganisi"}\r
+            other{"owgan afganisi"}\r
+        }\r
+        ALL{\r
+            one{"alban leki"}\r
+            other{"alban leki"}\r
+        }\r
+        AMD{\r
+            one{"ermeni dramy"}\r
+            other{"ermeni dramy"}\r
+        }\r
+        ANG{\r
+            one{"niderland antil guldeni"}\r
+            other{"niderland antil guldeni"}\r
+        }\r
+        AOA{\r
+            one{"angola kwanzasy"}\r
+            other{"angola kwanzasy"}\r
+        }\r
+        ARS{\r
+            one{"argentin pesosy"}\r
+            other{"argentin pesosy"}\r
+        }\r
+        AUD{\r
+            one{"awstraliýa dollary"}\r
+            other{"awstraliýa dollary"}\r
+        }\r
+        AWG{\r
+            one{"aruba florini"}\r
+            other{"aruba florini"}\r
+        }\r
+        AZN{\r
+            one{"azerbaýjan manady"}\r
+            other{"azerbaýjan manady"}\r
+        }\r
+        BAM{\r
+            one{"konwertirlenýän bosniýa we gersegowina markasy"}\r
+            other{"konwertirlenýän bosniýa we gersegowina markasy"}\r
+        }\r
+        BBD{\r
+            one{"barbados dollary"}\r
+            other{"barbados dollary"}\r
+        }\r
+        BDT{\r
+            one{"bangladeş takasy"}\r
+            other{"bangladeş takasy"}\r
+        }\r
+        BGN{\r
+            one{"bolgar lewi"}\r
+            other{"bolgar lewi"}\r
+        }\r
+        BHD{\r
+            one{"bahreýn dinary"}\r
+            other{"bahreýn dinary"}\r
+        }\r
+        BIF{\r
+            one{"burundi franky"}\r
+            other{"burundi franky"}\r
+        }\r
+        BMD{\r
+            one{"bermuda dollary"}\r
+            other{"bermuda dollary"}\r
+        }\r
+        BND{\r
+            one{"bruneý dollary"}\r
+            other{"bruneý dollary"}\r
+        }\r
+        BOB{\r
+            one{"boliwiýa boliwianosy"}\r
+            other{"boliwiýa boliwianosy"}\r
+        }\r
+        BRL{\r
+            one{"brazil realy"}\r
+            other{"brazil realy"}\r
+        }\r
+        BSD{\r
+            one{"bagama dollary"}\r
+            other{"bagama dollary"}\r
+        }\r
+        BTN{\r
+            one{"butan ngultrumy"}\r
+            other{"butan ngultrumy"}\r
+        }\r
+        BWP{\r
+            one{"botswana pulasy"}\r
+            other{"botswana pulasy"}\r
+        }\r
+        BYN{\r
+            one{"belarus rubly"}\r
+            other{"belarus rubly"}\r
+        }\r
+        BYR{\r
+            one{"belorus rubly (2000–2016)"}\r
+            other{"belorus rubly (2000–2016)"}\r
+        }\r
+        BZD{\r
+            one{"beliz dollary"}\r
+            other{"beliz dollary"}\r
+        }\r
+        CAD{\r
+            one{"kanada dollary"}\r
+            other{"kanada dollary"}\r
+        }\r
+        CDF{\r
+            one{"kongo franky"}\r
+            other{"kongo franky"}\r
+        }\r
+        CHF{\r
+            one{"şweýsar franky"}\r
+            other{"şweýsar franky"}\r
+        }\r
+        CLP{\r
+            one{"çili pesosy"}\r
+            other{"çili pesosy"}\r
+        }\r
+        CNH{\r
+            one{"hytaý ýuany (ofşor)"}\r
+            other{"hytaý ýuany (ofşor)"}\r
+        }\r
+        CNY{\r
+            one{"hytaý ýuany"}\r
+            other{"hytaý ýuany"}\r
+        }\r
+        COP{\r
+            one{"kolumbiýa pesosy"}\r
+            other{"kolumbiýa pesosy"}\r
+        }\r
+        CRC{\r
+            one{"kosta-rika kolony"}\r
+            other{"kosta-rika kolony"}\r
+        }\r
+        CUC{\r
+            one{"konwertirlenýän kuba pesosy"}\r
+            other{"konwertirlenýän kuba pesosy"}\r
+        }\r
+        CUP{\r
+            one{"kuba pesosy"}\r
+            other{"kuba pesosy"}\r
+        }\r
+        CVE{\r
+            one{"kabo-werde eskudosy"}\r
+            other{"kabo-werde eskudosy"}\r
+        }\r
+        CZK{\r
+            one{"çeh kronasy"}\r
+            other{"çeh kronasy"}\r
+        }\r
+        DJF{\r
+            one{"jibuti franky"}\r
+            other{"jibuti franky"}\r
+        }\r
+        DKK{\r
+            one{"daniýa kronasy"}\r
+            other{"daniýa kronasy"}\r
+        }\r
+        DOP{\r
+            one{"dominikan pesosy"}\r
+            other{"dominikan pesosy"}\r
+        }\r
+        DZD{\r
+            one{"alžir dinary"}\r
+            other{"alžir dinary"}\r
+        }\r
+        EGP{\r
+            one{"müsür funty"}\r
+            other{"müsür funty"}\r
+        }\r
+        ERN{\r
+            one{"eritreýa nakfasy"}\r
+            other{"eritreýa nakfasy"}\r
+        }\r
+        ETB{\r
+            one{"efiopiýa byry"}\r
+            other{"efiopiýa byry"}\r
+        }\r
+        EUR{\r
+            one{"ýewro"}\r
+            other{"ýewro"}\r
+        }\r
+        FJD{\r
+            one{"fiji dollary"}\r
+            other{"fiji dollary"}\r
+        }\r
+        FKP{\r
+            one{"folklend adalarynyň funty"}\r
+            other{"folklend adalarynyň funty"}\r
+        }\r
+        GBP{\r
+            one{"britan funt sterlingi"}\r
+            other{"britan funt sterlingi"}\r
+        }\r
+        GEL{\r
+            one{"gruzin larisi"}\r
+            other{"gruzin larisi"}\r
+        }\r
+        GHS{\r
+            one{"gano sedisi"}\r
+            other{"gano sedisi"}\r
+        }\r
+        GIP{\r
+            one{"gibraltar funty"}\r
+            other{"gibraltar funty"}\r
+        }\r
+        GMD{\r
+            one{"gambiýa dalasisi"}\r
+            other{"gambiýa dalasisi"}\r
+        }\r
+        GNF{\r
+            one{"gwineý franky"}\r
+            other{"gwineý franky"}\r
+        }\r
+        GTQ{\r
+            one{"gwatemala ketsaly"}\r
+            other{"gwatemala ketsaly"}\r
+        }\r
+        GYD{\r
+            one{"gaýana dollary"}\r
+            other{"gaýana dollary"}\r
+        }\r
+        HKD{\r
+            one{"gonkong dollary"}\r
+            other{"gonkong dollary"}\r
+        }\r
+        HNL{\r
+            one{"gonduras lempirasy"}\r
+            other{"gonduras lempirasy"}\r
+        }\r
+        HRK{\r
+            one{"horwat kunasy"}\r
+            other{"horwat kunasy"}\r
+        }\r
+        HTG{\r
+            one{"gaiti gurdy"}\r
+            other{"gaiti gurdy"}\r
+        }\r
+        HUF{\r
+            one{"wenger forinti"}\r
+            other{"wenger forinti"}\r
+        }\r
+        IDR{\r
+            one{"indoneziýa rupiýasy"}\r
+            other{"indoneziýa rupiýasy"}\r
+        }\r
+        ILS{\r
+            one{"täze ysraýyl şekeli"}\r
+            other{"täze ysraýyl şekeli"}\r
+        }\r
+        INR{\r
+            one{"hindi rupiýasy"}\r
+            other{"hindi rupiýasy"}\r
+        }\r
+        IQD{\r
+            one{"yrak dinary"}\r
+            other{"yrak dinary"}\r
+        }\r
+        IRR{\r
+            one{"eýran rialy"}\r
+            other{"eýran rialy"}\r
+        }\r
+        ISK{\r
+            one{"islandiýa kronasy"}\r
+            other{"islandiýa kronasy"}\r
+        }\r
+        JMD{\r
+            one{"ýamaýka dollary"}\r
+            other{"ýamaýka dollary"}\r
+        }\r
+        JOD{\r
+            one{"iordan dinary"}\r
+            other{"iordan dinary"}\r
+        }\r
+        JPY{\r
+            one{"ýapon ýeni"}\r
+            other{"ýapon ýeni"}\r
+        }\r
+        KES{\r
+            one{"keniýa şillingi"}\r
+            other{"keniýa şillingi"}\r
+        }\r
+        KGS{\r
+            one{"gyrgyz somy"}\r
+            other{"gyrgyz somy"}\r
+        }\r
+        KHR{\r
+            one{"kamboja riýeli"}\r
+            other{"kamboja riýeli"}\r
+        }\r
+        KMF{\r
+            one{"komor adalarynyň franky"}\r
+            other{"komor adalarynyň franky"}\r
+        }\r
+        KPW{\r
+            one{"demirgazyk koreý wony"}\r
+            other{"demirgazyk koreý wony"}\r
+        }\r
+        KRW{\r
+            one{"günorta koreý wony"}\r
+            other{"günorta koreý wony"}\r
+        }\r
+        KWD{\r
+            one{"kuweýt dinary"}\r
+            other{"kuweýt dinary"}\r
+        }\r
+        KYD{\r
+            one{"kaýman adalarynyň dollary"}\r
+            other{"kaýman adalarynyň dollary"}\r
+        }\r
+        KZT{\r
+            one{"gazak teňňesi"}\r
+            other{"gazak teňňesi"}\r
+        }\r
+        LAK{\r
+            one{"laos kipi"}\r
+            other{"laos kipi"}\r
+        }\r
+        LBP{\r
+            one{"liwan funty"}\r
+            other{"liwan funty"}\r
+        }\r
+        LKR{\r
+            one{"şri-lanka rupiýasy"}\r
+            other{"şri-lanka rupiýasy"}\r
+        }\r
+        LRD{\r
+            one{"liberiýa dollary"}\r
+            other{"liberiýa dollary"}\r
+        }\r
+        LYD{\r
+            one{"liwiýa dinary"}\r
+            other{"liwiýa dinary"}\r
+        }\r
+        MAD{\r
+            one{"marokko dirhamy"}\r
+            other{"marokko dirhamy"}\r
+        }\r
+        MDL{\r
+            one{"moldaw leýi"}\r
+            other{"moldaw leýi"}\r
+        }\r
+        MGA{\r
+            one{"malagasiý ariarisi"}\r
+            other{"malagasiý ariarisi"}\r
+        }\r
+        MKD{\r
+            one{"makedon dinary"}\r
+            other{"makedon dinary"}\r
+        }\r
+        MMK{\r
+            one{"mýanma kýaty"}\r
+            other{"mýanma kýaty"}\r
+        }\r
+        MNT{\r
+            one{"mongol tugrigi"}\r
+            other{"mongol tugrigi"}\r
+        }\r
+        MOP{\r
+            one{"makao patakasy"}\r
+            other{"makao patakasy"}\r
+        }\r
+        MRO{\r
+            one{"mawritan ugiýasy (1973–2017)"}\r
+            other{"mawritan ugiýasy (1973–2017)"}\r
+        }\r
+        MRU{\r
+            one{"mawritan ugiýasy"}\r
+            other{"mawritan ugiýasy"}\r
+        }\r
+        MUR{\r
+            one{"mawrikiý rupiýasy"}\r
+            other{"mawrikiý rupiýasy"}\r
+        }\r
+        MVR{\r
+            one{"maldiw rufiýasy"}\r
+            other{"maldiw rufiýasy"}\r
+        }\r
+        MWK{\r
+            one{"malawi kwaçasy"}\r
+            other{"malawi kwaçasy"}\r
+        }\r
+        MXN{\r
+            one{"meksikan pesosy"}\r
+            other{"meksikan pesosy"}\r
+        }\r
+        MYR{\r
+            one{"malaýziýa ringgiti"}\r
+            other{"malaýziýa ringgiti"}\r
+        }\r
+        MZN{\r
+            one{"mozambik metikaly"}\r
+            other{"mozambik metikaly"}\r
+        }\r
+        NAD{\r
+            one{"namibiýa dollary"}\r
+            other{"namibiýa dollary"}\r
+        }\r
+        NGN{\r
+            one{"nigeriýa naýrasy"}\r
+            other{"nigeriýa naýrasy"}\r
+        }\r
+        NIO{\r
+            one{"nikaragua kordobasy"}\r
+            other{"nikaragua kordobasy"}\r
+        }\r
+        NOK{\r
+            one{"norwegiýa kronasy"}\r
+            other{"norwegiýa kronasy"}\r
+        }\r
+        NPR{\r
+            one{"nepal rupiýasy"}\r
+            other{"nepal rupiýasy"}\r
+        }\r
+        NZD{\r
+            one{"täze zelandiýa dollary"}\r
+            other{"täze zelandiýa dollary"}\r
+        }\r
+        OMR{\r
+            one{"oman rialy"}\r
+            other{"oman rialy"}\r
+        }\r
+        PAB{\r
+            one{"panama balboasy"}\r
+            other{"panama balboasy"}\r
+        }\r
+        PEN{\r
+            one{"peru soly"}\r
+            other{"peru soly"}\r
+        }\r
+        PGK{\r
+            one{"papua - täze gwineýa kinasy"}\r
+            other{"papua - täze gwineýa kinasy"}\r
+        }\r
+        PHP{\r
+            one{"filippin pesosy"}\r
+            other{"filippin pesosy"}\r
+        }\r
+        PKR{\r
+            one{"päkistan rupiýasy"}\r
+            other{"päkistan rupiýasy"}\r
+        }\r
+        PLN{\r
+            one{"polýak zlotysy"}\r
+            other{"polýak zlotysy"}\r
+        }\r
+        PYG{\r
+            one{"paragwaý guaranisi"}\r
+            other{"paragwaý guaranisi"}\r
+        }\r
+        QAR{\r
+            one{"katar rialy"}\r
+            other{"katar rialy"}\r
+        }\r
+        RON{\r
+            one{"rumyn leýi"}\r
+            other{"rumyn leýi"}\r
+        }\r
+        RSD{\r
+            one{"serb dinary"}\r
+            other{"serb dinary"}\r
+        }\r
+        RUB{\r
+            one{"rus rubly"}\r
+            other{"rus rubly"}\r
+        }\r
+        RWF{\r
+            one{"ruanda franky"}\r
+            other{"ruanda franky"}\r
+        }\r
+        SAR{\r
+            one{"saud rialy"}\r
+            other{"saud rialy"}\r
+        }\r
+        SBD{\r
+            one{"solomon adalarynyň dollary"}\r
+            other{"solomon adalarynyň dollary"}\r
+        }\r
+        SCR{\r
+            one{"seýşel rupiýasy"}\r
+            other{"seýşel rupiýasy"}\r
+        }\r
+        SDG{\r
+            one{"sudan funty"}\r
+            other{"sudan funty"}\r
+        }\r
+        SEK{\r
+            one{"şwed kronasy"}\r
+            other{"şwed kronasy"}\r
+        }\r
+        SGD{\r
+            one{"singapur dollary"}\r
+            other{"singapur dollary"}\r
+        }\r
+        SHP{\r
+            one{"keramatly ýelena adasynyň funty"}\r
+            other{"keramatly ýelena adasynyň funty"}\r
+        }\r
+        SLL{\r
+            one{"sýerra-leone leony"}\r
+            other{"sýerra-leone leony"}\r
+        }\r
+        SOS{\r
+            one{"somali şillingi"}\r
+            other{"somali şillingi"}\r
+        }\r
+        SRD{\r
+            one{"surinam dollary"}\r
+            other{"surinam dollary"}\r
+        }\r
+        SSP{\r
+            one{"günorta sudan funty"}\r
+            other{"günorta sudan funty"}\r
+        }\r
+        STD{\r
+            one{"san-tome we prinsipi dobrasy (1977–2017)"}\r
+            other{"san-tome we prinsipi dobrasy (1977–2017)"}\r
+        }\r
+        STN{\r
+            one{"san-tome we prinsipi dobrasy"}\r
+            other{"san-tome we prinsipi dobrasy"}\r
+        }\r
+        SYP{\r
+            one{"siriýa funty"}\r
+            other{"siriýa funty"}\r
+        }\r
+        SZL{\r
+            one{"swazi lilangeni"}\r
+            other{"swazi lilangeni"}\r
+        }\r
+        THB{\r
+            one{"taýland baty"}\r
+            other{"taýland baty"}\r
+        }\r
+        TJS{\r
+            one{"täjik somonisi"}\r
+            other{"täjik somonisi"}\r
+        }\r
+        TMT{\r
+            one{"türkmen manady"}\r
+            other{"türkmen manady"}\r
+        }\r
+        TND{\r
+            one{"tunis dinary"}\r
+            other{"tunis dinary"}\r
+        }\r
+        TOP{\r
+            one{"tonga paangasy"}\r
+            other{"tonga paangasy"}\r
+        }\r
+        TRY{\r
+            one{"türk lirasy"}\r
+            other{"türk lirasy"}\r
+        }\r
+        TTD{\r
+            one{"trininad we tobago dollary"}\r
+            other{"trininad we tobago dollary"}\r
+        }\r
+        TWD{\r
+            one{"täze taýwan dollary"}\r
+            other{"täze taýwan dollary"}\r
+        }\r
+        TZS{\r
+            one{"tanzaniýa şillingi"}\r
+            other{"tanzaniýa şillingi"}\r
+        }\r
+        UAH{\r
+            one{"ukrain griwnasy"}\r
+            other{"ukrain griwnasy"}\r
+        }\r
+        UGX{\r
+            one{"uganda şillingi"}\r
+            other{"uganda şillingi"}\r
+        }\r
+        USD{\r
+            one{"ABŞ dollary"}\r
+            other{"ABŞ dollary"}\r
+        }\r
+        UYU{\r
+            one{"urugwaý pesosy"}\r
+            other{"urugwaý pesosy"}\r
+        }\r
+        UZS{\r
+            one{"özbek somy"}\r
+            other{"özbek somy"}\r
+        }\r
+        VEF{\r
+            one{"wenesuela boliwary (2008–2018)"}\r
+            other{"wenesuela boliwary (2008–2018)"}\r
+        }\r
+        VES{\r
+            one{"wenesuela boliwary"}\r
+            other{"wenesuela boliwary"}\r
+        }\r
+        VND{\r
+            one{"wýetnam dongy"}\r
+            other{"wýetnam dongy"}\r
+        }\r
+        VUV{\r
+            one{"wanuatu watusy"}\r
+            other{"wanuatu watusy"}\r
+        }\r
+        WST{\r
+            one{"samoa talasy"}\r
+            other{"samoa talasy"}\r
+        }\r
+        XAF{\r
+            one{"KFA BEAC franky"}\r
+            other{"KFA BEAC franky"}\r
+        }\r
+        XCD{\r
+            one{"gündogar karib dollary"}\r
+            other{"gündogar karib dollary"}\r
+        }\r
+        XOF{\r
+            one{"KFA BCEAO franky"}\r
+            other{"KFA BCEAO franky"}\r
+        }\r
+        XPF{\r
+            one{"fransuz ýuwaş umman franky"}\r
+            other{"fransuz ýuwaş umman franky"}\r
+        }\r
+        XXX{\r
+            one{"näbelli pul birligi"}\r
+            other{"näbelli pul birligi"}\r
+        }\r
+        YER{\r
+            one{"ýemen rialy"}\r
+            other{"ýemen rialy"}\r
+        }\r
+        ZAR{\r
+            one{"günorta afrika rendi"}\r
+            other{"günorta afrika rendi"}\r
+        }\r
+        ZMW{\r
+            one{"zambiýa kwaçasy"}\r
+            other{"zambiýa kwaçasy"}\r
+        }\r
+    }\r
+    CurrencyUnitPatterns{\r
+        one{"{0} {1}"}\r
+        other{"{0} {1}"}\r
+    }\r
+    Version{"2.1.43.65"}\r
+}\r
index 49b059b6ed06fd778fdfbf1c900a5e5d788b86a5..f1fc835b53e1d62cc58e0fc59468787d88419d42 100644 (file)
@@ -43,7 +43,7 @@ to{
             "XPF",\r
         }\r
         XXX{\r
-            "XXX",\r
+            "¤",\r
             "Pa’anga Ta’e’ilo",\r
         }\r
     }\r
@@ -74,5 +74,5 @@ to{
     CurrencyUnitPatterns{\r
         other{"{1} {0}"}\r
     }\r
-    Version{"2.1.38.39"}\r
+    Version{"2.1.44.88"}\r
 }\r
index 775cd00288e7515a976e70cc3d4cdde51e3e14d6..729b89f8ed0924b0e308b5838311d7a8eb11d5b6 100644 (file)
@@ -684,11 +684,11 @@ tr{
         }\r
         MRO{\r
             "MRO",\r
-            "Moritanya Ouguiyası (1973–2017)",\r
+            "Moritanya Ugiyası (1973–2017)",\r
         }\r
         MRU{\r
             "MRU",\r
-            "Moritanya Ouguiyası",\r
+            "Moritanya Ugiyası",\r
         }\r
         MTL{\r
             "MTL",\r
@@ -1049,6 +1049,10 @@ tr{
         }\r
         VEF{\r
             "VEF",\r
+            "Venezuela Bolivarı (2008–2018)",\r
+        }\r
+        VES{\r
+            "VES",\r
             "Venezuela Bolivarı",\r
         }\r
         VND{\r
@@ -1148,7 +1152,7 @@ tr{
             "ADB Hesap Birimi",\r
         }\r
         XXX{\r
-            "XXX",\r
+            "¤",\r
             "Bilinmeyen Para Birimi",\r
         }\r
         YDD{\r
@@ -1948,12 +1952,12 @@ tr{
             other{"Makao patakası"}\r
         }\r
         MRO{\r
-            one{"Moritanya ouguiyası (1973–2017)"}\r
-            other{"Moritanya ouguiyası (1973–2017)"}\r
+            one{"Moritanya ugiyası (1973–2017)"}\r
+            other{"Moritanya ugiyası (1973–2017)"}\r
         }\r
         MRU{\r
-            one{"Moritanya ouguiyası"}\r
-            other{"Moritanya ouguiyası"}\r
+            one{"Moritanya ugiyası"}\r
+            other{"Moritanya ugiyası"}\r
         }\r
         MTL{\r
             one{"Malta Lirası"}\r
@@ -2284,6 +2288,10 @@ tr{
             other{"Venezuela Bolivarı (1871–2008)"}\r
         }\r
         VEF{\r
+            one{"Venezuela bolivarı (2008–2018)"}\r
+            other{"Venezuela bolivarı (2008–2018)"}\r
+        }\r
+        VES{\r
             one{"Venezuela bolivarı"}\r
             other{"Venezuela bolivarı"}\r
         }\r
@@ -2392,5 +2400,5 @@ tr{
         one{"{0} {1}"}\r
         other{"{0} {1}"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.91"}\r
 }\r
index e216e94b725b4276782d4ffef71a5bf9b7e7a9d5..bd4c32e37aa7a38009b60783e26760499b51332b 100644 (file)
@@ -8,7 +8,7 @@ tt{
         }\r
         CNY{\r
             "CN¥",\r
-            "кытай юане",\r
+            "Ð\9aытай юане",\r
         }\r
         EUR{\r
             "€",\r
@@ -24,7 +24,7 @@ tt{
         }\r
         JPY{\r
             "JP¥",\r
-            "япон иенасы",\r
+            "Япония иенасы",\r
         }\r
         RUB{\r
             "₽",\r
@@ -35,7 +35,7 @@ tt{
             "АКШ доллары",\r
         }\r
         XXX{\r
-            "XXX",\r
+            "¤",\r
             "билгесез валюта",\r
         }\r
     }\r
@@ -81,5 +81,5 @@ tt{
     CurrencyUnitPatterns{\r
         other{"{0} {1}"}\r
     }\r
-    Version{"2.1.38.72"}\r
+    Version{"2.1.44.88"}\r
 }\r
index d0b56676c09935ec8dea0b4e8bbd89077c2645b1..e0ced2708293151268423df7196bf134bdfaf381 100644 (file)
@@ -1040,6 +1040,10 @@ ug{
         }\r
         VEF{\r
             "VEF",\r
+            "ۋېنېزۇئېلا بولىۋارى (2008–2018)",\r
+        }\r
+        VES{\r
+            "VES",\r
             "ۋېنېزۇئېلا بولىۋارى",\r
         }\r
         VND{\r
@@ -1139,7 +1143,7 @@ ug{
             "ئاسىيا تەرەققىيات بانكىسى ھېسابات بىرلىكى",\r
         }\r
         XXX{\r
-            "XXX",\r
+            "¤",\r
             "يوچۇن پۇل",\r
         }\r
         YDD{\r
@@ -2241,6 +2245,10 @@ ug{
             other{"ۋېنېزۇئېلا بولىۋارى (1871–2008)"}\r
         }\r
         VEF{\r
+            one{"ۋېنېزۇئېلا بولىۋارى (2008–2018)"}\r
+            other{"ۋېنېزۇئېلا بولىۋارى (2008–2018)"}\r
+        }\r
+        VES{\r
             one{"ۋېنېزۇئېلا بولىۋارى"}\r
             other{"ۋېنېزۇئېلا بولىۋارى"}\r
         }\r
@@ -2409,5 +2417,5 @@ ug{
         one{"{0} {1}"}\r
         other{"{0} {1}"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.88"}\r
 }\r
index 21c1eeccbc4ac9180f4e278139382b4953087ea0..01d82fb0df12740ddd2077699c7d4af01b10e4e2 100644 (file)
@@ -972,6 +972,10 @@ uk{
         }\r
         VEF{\r
             "VEF",\r
+            "венесуельський болівар (2008–2018)",\r
+        }\r
+        VES{\r
+            "VES",\r
             "венесуельський болівар",\r
         }\r
         VND{\r
@@ -1059,7 +1063,7 @@ uk{
             "код тестування валюти",\r
         }\r
         XXX{\r
-            "XXX",\r
+            "¤",\r
             "невідома грошова одиниця",\r
         }\r
         YDD{\r
@@ -2208,6 +2212,12 @@ uk{
             other{"узбецького сума"}\r
         }\r
         VEF{\r
+            few{"венесуельські болівари (2008–2018)"}\r
+            many{"венесуельських боліварів (2008–2018)"}\r
+            one{"венесуельський болівар (2008–2018)"}\r
+            other{"венесуельського болівара (2008–2018)"}\r
+        }\r
+        VES{\r
             few{"венесуельські болівари"}\r
             many{"венесуельських боліварів"}\r
             one{"венесуельський болівар"}\r
@@ -2304,5 +2314,5 @@ uk{
         one{"{0} {1}"}\r
         other{"{0} {1}"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.65"}\r
 }\r
index 5a7d0ee59ba0505cdb48941bb2857752db2a91cf..d8ffe0c30b4ca9625fd4bac81eb5e18f404a31ba 100644 (file)
@@ -104,7 +104,7 @@ ur{
         }\r
         BZD{\r
             "BZD",\r
-            "بیلائز ڈالر",\r
+            "بیلیز ڈالر",\r
         }\r
         CAD{\r
             "CA$",\r
@@ -376,7 +376,7 @@ ur{
         }\r
         MMK{\r
             "MMK",\r
-            "میانما کیاٹ",\r
+            "میانمار کیاٹ",\r
         }\r
         MNT{\r
             "MNT",\r
@@ -624,6 +624,10 @@ ur{
         }\r
         VEF{\r
             "VEF",\r
+            "وینزویلا بولیور (2008–2018)",\r
+        }\r
+        VES{\r
+            "VES",\r
             "وینزویلا بولیور",\r
         }\r
         VND{\r
@@ -655,7 +659,7 @@ ur{
             "CFP فرانک",\r
         }\r
         XXX{\r
-            "XXX",\r
+            "¤",\r
             "نامعلوم کرنسی",\r
         }\r
         YER{\r
@@ -877,8 +881,8 @@ ur{
             other{"بیلاروسی روبل (۲۰۰۰–۲۰۱۶)"}\r
         }\r
         BZD{\r
-            one{"بیلائز ڈالر"}\r
-            other{"بیلائز ڈالر"}\r
+            one{"بیلیز ڈالر"}\r
+            other{"بیلیز ڈالرز"}\r
         }\r
         CAD{\r
             one{"کنیڈین ڈالر"}\r
@@ -1137,8 +1141,8 @@ ur{
             other{"مقدونیائی دینار"}\r
         }\r
         MMK{\r
-            one{"میانما کیاٹ"}\r
-            other{"میانما کیاٹ"}\r
+            one{"میانمار کیاٹ"}\r
+            other{"میانمار کیاٹ"}\r
         }\r
         MNT{\r
             one{"منگولیائی ٹگرِ"}\r
@@ -1373,6 +1377,10 @@ ur{
             other{"ازبکستان سوم"}\r
         }\r
         VEF{\r
+            one{"وینزویلا بولیور (2008–2018)"}\r
+            other{"وینزویلا بولیور (2008–2018)"}\r
+        }\r
+        VES{\r
             one{"وینزویلا بولیور"}\r
             other{"وینزویلا بولیور"}\r
         }\r
@@ -1425,5 +1433,5 @@ ur{
         one{"{0} {1}"}\r
         other{"{0} {1}"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.3"}\r
 }\r
index 56e1a67771de255c94a9f3d0b2a8fe78b71e4fec..095352a2a382b033e9b1aa6464c3de99b77b2f2f 100644 (file)
@@ -77,5 +77,5 @@ ur_IN{
             other{"ساموآئی ٹالا"}\r
         }\r
     }\r
-    Version{"2.1.38.39"}\r
+    Version{"2.1.43.65"}\r
 }\r
index 47efa6b7c4f7e9a660ce6135b86df31aefb2d440..1c470e137457703f1c6b955fc1484dac028e6c92 100644 (file)
@@ -600,6 +600,10 @@ uz{
         }\r
         VEF{\r
             "VEF",\r
+            "Venesuela bolivari (2008–2018)",\r
+        }\r
+        VES{\r
+            "VES",\r
             "Venesuela bolivari",\r
         }\r
         VND{\r
@@ -631,7 +635,7 @@ uz{
             "Fransuz Polineziyasi franki",\r
         }\r
         XXX{\r
-            "XXX",\r
+            "¤",\r
             "Noma’lum valyuta",\r
         }\r
         YER{\r
@@ -1345,6 +1349,10 @@ uz{
             other{"O‘zbekiston so‘mi"}\r
         }\r
         VEF{\r
+            one{"Venesuela bolivari (2008–2018)"}\r
+            other{"Venesuela bolivari (2008–2018)"}\r
+        }\r
+        VES{\r
             one{"Venesuela bolivari"}\r
             other{"Venesuela bolivari"}\r
         }\r
@@ -1397,5 +1405,5 @@ uz{
         one{"{0} {1}"}\r
         other{"{0} {1}"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.88"}\r
 }\r
index e45f6625f53c7522d0dbc8121eb139a882de8a1f..db5a2c0459549708fcc80684b58160f47bc678e6 100644 (file)
@@ -209,6 +209,10 @@ uz_Cyrl{
         }\r
         VEF{\r
             "VEF",\r
+            "Венесуэла боливари (2008–2018)",\r
+        }\r
+        VES{\r
+            "VES",\r
             "Венесуэла боливари",\r
         }\r
         VND{\r
@@ -402,6 +406,10 @@ uz_Cyrl{
             other{"Ўзбекистон сўм"}\r
         }\r
         VEF{\r
+            one{"Венесуэла боливари (2008–2018)"}\r
+            other{"Венесуэла боливари (2008–2018)"}\r
+        }\r
+        VES{\r
             one{"Венесуэла боливари"}\r
             other{"Венесуэла боливари"}\r
         }\r
@@ -414,5 +422,5 @@ uz_Cyrl{
         one{"{0} {1}"}\r
         other{"{0} {1}"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.2"}\r
 }\r
index c6c0c9ea876f0d1e266afbca1cb3cb265504cc6c..20c5bef0d87a3306486a344b673f82d9f1866488 100644 (file)
@@ -1024,6 +1024,10 @@ vi{
         }\r
         VEF{\r
             "VEF",\r
+            "Bolívar Venezuela (2008–2018)",\r
+        }\r
+        VES{\r
+            "VES",\r
             "Bolívar Venezuela",\r
         }\r
         VND{\r
@@ -1731,6 +1735,9 @@ vi{
             other{"Som Uzbekistan"}\r
         }\r
         VEF{\r
+            other{"Bolívar Venezuela (2008–2018)"}\r
+        }\r
+        VES{\r
             other{"Bolívar Venezuela"}\r
         }\r
         VND{\r
@@ -1770,5 +1777,5 @@ vi{
     CurrencyUnitPatterns{\r
         other{"{0} {1}"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.65"}\r
 }\r
index 1e61fe25b2e0c78452c4b12686214c06c2526edd..3b48caaada63603f964b7bda0d3be37d3067aaea 100644 (file)
@@ -35,7 +35,7 @@ wae{
             "Dollar",\r
         }\r
         XXX{\r
-            "XXX",\r
+            "¤",\r
             "Unbekannti Wãrig",\r
         }\r
     }\r
index 080abc6dbeb39f8ae5209e08c3ba94bc458bb545..10b9855ea2432f6bab9d882623aba368ecc5d029 100644 (file)
@@ -39,7 +39,7 @@ wo{
             "Franc CFA bu Afrik Sowwu-jant",\r
         }\r
         XXX{\r
-            "XXX",\r
+            "¤",\r
             "Xaalis buñ Xamul",\r
         }\r
     }\r
@@ -88,5 +88,5 @@ wo{
     CurrencyUnitPatterns{\r
         other{"{0} {1}"}\r
     }\r
-    Version{"2.1.38.71"}\r
+    Version{"2.1.43.94"}\r
 }\r
diff --git a/source/data/curr/xh.txt b/source/data/curr/xh.txt
new file mode 100644 (file)
index 0000000..8bfe359
--- /dev/null
@@ -0,0 +1,24 @@
+// © 2016 and later: Unicode, Inc. and others.\r
+// License & terms of use: http://www.unicode.org/copyright.html#License\r
+xh{\r
+    Currencies{\r
+        ZAR{\r
+            "R",\r
+            "iRandi yaseMzanzi Afrika",\r
+        }\r
+    }\r
+    Currencies%narrow{\r
+        ZAR{"R"}\r
+    }\r
+    CurrencyPlurals{\r
+        ZAR{\r
+            one{"iRandi YaseMzanzi Afrika"}\r
+            other{"iRandi yaseMzanzi Afrika"}\r
+        }\r
+    }\r
+    CurrencyUnitPatterns{\r
+        one{"{0} {1}"}\r
+        other{"{0} {1}"}\r
+    }\r
+    Version{"2.1.44.88"}\r
+}\r
index d47882bfbb149faccff061b643aa82ecb5ee0ac3..f778430233cc255a814bff430da4a3ae700da061 100644 (file)
@@ -55,7 +55,7 @@ yi{
             "גאלד",\r
         }\r
         XXX{\r
-            "XXX",\r
+            "¤",\r
             "אומבאַוואוסטע וואַלוטע",\r
         }\r
     }\r
index 7842b82df5d2e0d4bd955cd9dd47a3733ff3830c..ec2cc96e66ad7db1cc455a113bc406f946727742 100644 (file)
@@ -238,5 +238,5 @@ yo{
     CurrencyUnitPatterns{\r
         other{"{0} {1}"}\r
     }\r
-    Version{"2.1.39.11"}\r
+    Version{"2.1.44.88"}\r
 }\r
index 27416f575d0d2e0b6143bf32b657e5d4c3a958a2..284a50e8a95f6380793c9fdd34f6c4eca3c14937 100644 (file)
@@ -223,5 +223,5 @@ yo_BJ{
             "Dɔla ti Orílɛ́ède Siibabuwe",\r
         }\r
     }\r
-    Version{"2.1.39.11"}\r
+    Version{"2.1.44.53"}\r
 }\r
index 35b7f3e4e1c10425a69abb050d13643d12a04270..05e4218038aa56947f65d404e62040f42db1f6c9 100644 (file)
@@ -1044,6 +1044,10 @@ yue{
         }\r
         VEF{\r
             "VEF",\r
+            "委內瑞拉玻利瓦 (VEF)",\r
+        }\r
+        VES{\r
+            "VES",\r
             "委內瑞拉玻利瓦",\r
         }\r
         VND{\r
@@ -2088,6 +2092,9 @@ yue{
             other{"委內瑞拉玻利瓦 (1871–2008)"}\r
         }\r
         VEF{\r
+            other{"委內瑞拉玻利瓦 (VEF)"}\r
+        }\r
+        VES{\r
             other{"委內瑞拉玻利瓦"}\r
         }\r
         VND{\r
@@ -2214,5 +2221,5 @@ yue{
     CurrencyUnitPatterns{\r
         other{"{0} {1}"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.91"}\r
 }\r
index f19bd202d3eae61fc95c9571e61611d03f4f6d71..cf3e80eceb4f06b055c36e33ce30109bd811ded7 100644 (file)
@@ -1045,6 +1045,10 @@ yue_Hans{
         }\r
         VEF{\r
             "VEF",\r
+            "委内瑞拉玻利瓦 (2008–2018)",\r
+        }\r
+        VES{\r
+            "VES",\r
             "委内瑞拉玻利瓦",\r
         }\r
         VND{\r
@@ -2089,6 +2093,9 @@ yue_Hans{
             other{"委内瑞拉玻利瓦 (1871–2008)"}\r
         }\r
         VEF{\r
+            other{"委内瑞拉玻利瓦 (2008–2018)"}\r
+        }\r
+        VES{\r
             other{"委内瑞拉玻利瓦"}\r
         }\r
         VND{\r
@@ -2215,5 +2222,5 @@ yue_Hans{
     CurrencyUnitPatterns{\r
         other{"{0} {1}"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.91"}\r
 }\r
index c99e2b978b061f5df570b73deab7971c15e47a7e..a6ea3537804689f214d9ed68f16ab5e335ebe147 100644 (file)
@@ -242,5 +242,5 @@ zgh{
     CurrencyUnitPatterns{\r
         other{"{0} {1}"}\r
     }\r
-    Version{"2.1.39.11"}\r
+    Version{"2.1.43.94"}\r
 }\r
index 6c832a069da74efcd152c4e7bff7ddce77c53511..23d26ba40ed9964fc5ac00141c86c42ec07c4d8f 100644 (file)
@@ -1040,6 +1040,10 @@ zh{
         }\r
         VEF{\r
             "VEF",\r
+            "委内瑞拉玻利瓦尔 (2008–2018)",\r
+        }\r
+        VES{\r
+            "VES",\r
             "委内瑞拉玻利瓦尔",\r
         }\r
         VND{\r
@@ -2061,6 +2065,9 @@ zh{
             other{"委内瑞拉玻利瓦尔 (1871–2008)"}\r
         }\r
         VEF{\r
+            other{"委内瑞拉玻利瓦尔 (2008–2018)"}\r
+        }\r
+        VES{\r
             other{"委内瑞拉玻利瓦尔"}\r
         }\r
         VND{\r
@@ -2139,5 +2146,5 @@ zh{
     CurrencyUnitPatterns{\r
         other{"{0}{1}"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.76"}\r
 }\r
index cb6501a05bcc17c0f9070b2afda832118c4e751d..3ac74edbb76d5ca1c0b35811def45f689c53c22f 100644 (file)
@@ -1045,6 +1045,10 @@ zh_Hant{
         }\r
         VEF{\r
             "VEF",\r
+            "委內瑞拉玻利瓦 (2008–2018)",\r
+        }\r
+        VES{\r
+            "VES",\r
             "委內瑞拉玻利瓦",\r
         }\r
         VND{\r
@@ -1506,6 +1510,9 @@ zh_Hant{
         CLP{\r
             other{"智利披索"}\r
         }\r
+        CNH{\r
+            other{"人民幣(離岸)"}\r
+        }\r
         CNY{\r
             other{"人民幣"}\r
         }\r
@@ -2086,6 +2093,9 @@ zh_Hant{
             other{"委內瑞拉玻利瓦 (1871–2008)"}\r
         }\r
         VEF{\r
+            other{"委內瑞拉玻利瓦 (2008–2018)"}\r
+        }\r
+        VES{\r
             other{"委內瑞拉玻利瓦"}\r
         }\r
         VND{\r
@@ -2212,5 +2222,5 @@ zh_Hant{
     CurrencyUnitPatterns{\r
         other{"{0} {1}"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.91"}\r
 }\r
index 3bcdc59f3b99e06e73af975534700a38a13509d3..9add587df3049108ab080a1af4ccfeefc46b0d3b 100644 (file)
@@ -238,6 +238,10 @@ zh_Hant_HK{
             "TZS",\r
             "坦桑尼亞先令",\r
         }\r
+        VES{\r
+            "VES",\r
+            "VES",\r
+        }\r
         VUV{\r
             "VUV",\r
             "瓦努阿圖瓦圖",\r
@@ -461,5 +465,5 @@ zh_Hant_HK{
             other{"贊比亞克瓦查"}\r
         }\r
     }\r
-    Version{"2.1.39.11"}\r
+    Version{"2.1.43.65"}\r
 }\r
index 3012a7e12bb1f3216defbad47982d617b68acf8d..82013a75029b2d9ac35c4cf99aea6340e849f456 100644 (file)
@@ -8,5 +8,5 @@ zh_Hant_MO{
             "澳門元",\r
         }\r
     }\r
-    Version{"2.1.38.39"}\r
+    Version{"2.1.43.65"}\r
 }\r
index 1d7044cd44d960d6f5e4146b0a613fe339ab178a..bb8a4e6da67785bf4349b1f3fcca07397e410dea 100644 (file)
@@ -604,6 +604,10 @@ zu{
         }\r
         VEF{\r
             "VEF",\r
+            "i-Venezuelan Bolívar (2008–2018)",\r
+        }\r
+        VES{\r
+            "VES",\r
             "i-Venezuelan Bolívar",\r
         }\r
         VND{\r
@@ -635,7 +639,7 @@ zu{
             "i-CFP Franc",\r
         }\r
         XXX{\r
-            "XXX",\r
+            "¤",\r
             "imali engaziwa",\r
         }\r
         YER{\r
@@ -1344,6 +1348,10 @@ zu{
             other{"i-Uzbekistan Som"}\r
         }\r
         VEF{\r
+            one{"i-Venezuelan Bolívar (2008–2018)"}\r
+            other{"i-Venezuelan Bolívar (2008–2018)"}\r
+        }\r
+        VES{\r
             one{"i-Venezuelan Bolívar"}\r
             other{"i-Venezuelan Bolívar"}\r
         }\r
@@ -1396,5 +1404,5 @@ zu{
         one{"{0} {1}"}\r
         other{"{0} {1}"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.65"}\r
 }\r
index 3195734bad78b1c2613d50eff0f8d77fb3336881..f801384a365e4ee6236ecb09bbf6bf64ec984382 100644 (file)
                <include locales="hu_HU"/>\r
                <include locales="hy"/>\r
                <include locales="hy_AM"/>\r
+               <include locales="ia"/>\r
+               <include locales="ia_001"/>\r
                <include locales="id"/>\r
                <include locales="id_ID"/>\r
                <include locales="ig"/>\r
                <include locales="jgo_CM"/>\r
                <include locales="jmc"/>\r
                <include locales="jmc_TZ"/>\r
+               <include locales="jv"/>\r
+               <include locales="jv_ID"/>\r
                <include locales="ka"/>\r
                <include locales="ka_GE"/>\r
                <include locales="kab"/>\r
                <include locales="ksf_CM"/>\r
                <include locales="ksh"/>\r
                <include locales="ksh_DE"/>\r
+               <include locales="ku"/>\r
+               <include locales="ku_TR"/>\r
                <include locales="kw"/>\r
                <include locales="kw_GB"/>\r
                <include locales="ky"/>\r
                <include locales="mgh_MZ"/>\r
                <include locales="mgo"/>\r
                <include locales="mgo_CM"/>\r
+               <include locales="mi"/>\r
+               <include locales="mi_NZ"/>\r
                <include locales="mk"/>\r
                <include locales="mk_MK"/>\r
                <include locales="ml"/>\r
                <include locales="saq_KE"/>\r
                <include locales="sbp"/>\r
                <include locales="sbp_TZ"/>\r
+               <include locales="sd"/>\r
+               <include locales="sd_PK"/>\r
                <include locales="se"/>\r
                <include locales="se_FI"/>\r
                <include locales="se_NO"/>\r
                <include locales="ti"/>\r
                <include locales="ti_ER"/>\r
                <include locales="ti_ET"/>\r
+               <include locales="tk"/>\r
+               <include locales="tk_TM"/>\r
                <include locales="tl"/>\r
                <include locales="tl_PH"/>\r
                <include locales="to"/>\r
                <include locales="wae_CH"/>\r
                <include locales="wo"/>\r
                <include locales="wo_SN"/>\r
+               <include locales="xh"/>\r
+               <include locales="xh_ZA"/>\r
                <include locales="xog"/>\r
                <include locales="xog_UG"/>\r
                <include locales="yav"/>\r
index 1af4c217ce662be537ea501981f5c9e9d109108c..7eef744a13651d648d12eab2ed28b1f4422a18d0 100644 (file)
@@ -24,7 +24,7 @@ In the following,
 \r
     *NOTE* You should do a full rebuild after any data changes.\r
     \r
-1a.  If you didn't download from Subversion, you will also need the "icu4c-*-data.zip" file.  Unpack this file and replace the icu/source/data directory's contents with the contents of the data directory from the zip file.  \r
+1a.  If you didn't download from GitHub, you will also need the "icu4c-*-data.zip" file.  Unpack this file and replace the icu/source/data directory's contents with the contents of the data directory from the zip file.  \r
 \r
 \r
 2. Step 2 depends on whether you are on a Windows or a Unix-type\r
diff --git a/source/data/in/icudt62l.dat b/source/data/in/icudt62l.dat
deleted file mode 100644 (file)
index 7e82c91..0000000
Binary files a/source/data/in/icudt62l.dat and /dev/null differ
diff --git a/source/data/in/icudt63l.dat b/source/data/in/icudt63l.dat
new file mode 100644 (file)
index 0000000..142f0b4
Binary files /dev/null and b/source/data/in/icudt63l.dat differ
index c421baf0c8de2c963fd4f5542327bfcc2fd7606e..6566a2cd902f3f705e5c34d7298095c6ac210564 100644 (file)
Binary files a/source/data/in/nfc.nrm and b/source/data/in/nfc.nrm differ
index 6fa226ee31f7d7ed3ad5ecfebb7f19872d09cd90..4d1fe7d75cacc68184eafa55a809fddbdf81d321 100644 (file)
Binary files a/source/data/in/nfkc.nrm and b/source/data/in/nfkc.nrm differ
index afc69718579c054740583dbe403261d3b260ee52..e2180cfdd9f5015402f38cdccc64ddd187ced680 100644 (file)
Binary files a/source/data/in/nfkc_cf.nrm and b/source/data/in/nfkc_cf.nrm differ
index dec3a4be6474087d8f0a7fcd6cbc1a95139883d0..ca3998cb146f32e4e6102c363bbf0cf1cc6915ae 100644 (file)
Binary files a/source/data/in/pnames.icu and b/source/data/in/pnames.icu differ
index 52a89135b8b554810954bfb469132402a39ce898..4bae51640a71741ae550df72cd5d4bf44423b1eb 100644 (file)
Binary files a/source/data/in/uts46.nrm and b/source/data/in/uts46.nrm differ
index e20bf7c7b9d2724ea927b40efb97e2dcef0d008c..2e41396cc13794e2f7b1fbac4df2d213d0fba2e7 100644 (file)
@@ -11,11 +11,11 @@ af{
         colNormalization{"Genormaliseerde sortering"}\r
         colNumeric{"Numeriese sortering"}\r
         colStrength{"Sorteringssterkte"}\r
-        collation{"Sorteervolgorde"}\r
+        collation{"Rangskikvolgorde"}\r
         currency{"Geldeenheid"}\r
         hc{"Uursiklus (12 vs 24)"}\r
-        lb{"Reëlbreek-styl"}\r
-        ms{"Meetstelsel"}\r
+        lb{"Reëlafbreek-styl"}\r
+        ms{"Maatstelsel"}\r
         numbers{"Syfers"}\r
         timezone{"Tydsone"}\r
         va{"Lokaalvariant"}\r
@@ -95,7 +95,7 @@ af{
         de_CH{"Switserse hoog-Duits"}\r
         dgr{"Dogrib"}\r
         dje{"Zarma"}\r
-        dsb{"Lae Sorbies"}\r
+        dsb{"Benedesorbies"}\r
         dua{"Duala"}\r
         dv{"Divehi"}\r
         dyo{"Jola-Fonyi"}\r
@@ -144,7 +144,7 @@ af{
         gwi{"Gwichʼin"}\r
         ha{"Hausa"}\r
         hak{"Hakka-Sjinees"}\r
-        haw{"Hawaiies"}\r
+        haw{"Hawais"}\r
         he{"Hebreeus"}\r
         hi{"Hindi"}\r
         hil{"Hiligaynon"}\r
@@ -261,7 +261,7 @@ af{
         ms{"Maleis"}\r
         mt{"Maltees"}\r
         mua{"Mundang"}\r
-        mul{"Veelvuldige tale"}\r
+        mul{"Verskeie tale"}\r
         mus{"Kreek"}\r
         mwl{"Mirandees"}\r
         my{"Birmaans"}\r
@@ -271,7 +271,7 @@ af{
         nan{"Min Nan-Sjinees"}\r
         nap{"Neapolitaans"}\r
         naq{"Nama"}\r
-        nb{"Noorse Bokmål"}\r
+        nb{"Boeknoors"}\r
         nd{"Noord-Ndebele"}\r
         nds{"Lae Duits"}\r
         nds_NL{"Nedersaksies"}\r
@@ -283,7 +283,7 @@ af{
         nl{"Nederlands"}\r
         nl_BE{"Vlaams"}\r
         nmg{"Kwasio"}\r
-        nn{"Noorweegse Nynorsk"}\r
+        nn{"Nuwe Noors"}\r
         nnh{"Ngiemboon"}\r
         no{"Noors"}\r
         nog{"Nogai"}\r
@@ -316,7 +316,6 @@ af{
         rm{"Reto-Romaans"}\r
         rn{"Rundi"}\r
         ro{"Roemeens"}\r
-        ro_MD{"Moldawies"}\r
         rof{"Rombo"}\r
         root{"Root"}\r
         ru{"Russies"}\r
@@ -363,7 +362,6 @@ af{
         suk{"Sukuma"}\r
         sv{"Sweeds"}\r
         sw{"Swahili"}\r
-        sw_CD{"Swahili (Kongo)"}\r
         swb{"Comoraans"}\r
         syr{"Siries"}\r
         ta{"Tamil"}\r
@@ -371,7 +369,7 @@ af{
         tem{"Timne"}\r
         teo{"Teso"}\r
         tet{"Tetoem"}\r
-        tg{"Tadzjieks"}\r
+        tg{"Tadjiks"}\r
         th{"Thai"}\r
         ti{"Tigrinya"}\r
         tig{"Tigre"}\r
@@ -494,9 +492,9 @@ af{
             chinese{"Sjinese kalender"}\r
             coptic{"Koptiese kalender"}\r
             dangi{"Dangi-kalender"}\r
-            ethiopic{"Ethiopiese kalender"}\r
+            ethiopic{"Etiopiese kalender"}\r
             ethiopic-amete-alem{"Etiopiese Amete Alem-kalender"}\r
-            gregorian{"Gregoriese kalender"}\r
+            gregorian{"Gregoriaanse kalender"}\r
             hebrew{"Hebreeuse kalender"}\r
             indian{"Indiese nasionale kalender"}\r
             islamic{"Islamitiese kalender"}\r
@@ -508,7 +506,7 @@ af{
         }\r
         cf{\r
             account{"Rekeningkundige geldeenheidformaat"}\r
-            standard{"Standaard Geldeenheidformaat"}\r
+            standard{"Standaard geldeenheidformaat"}\r
         }\r
         colAlternate{\r
             non-ignorable{"Sorteer simbole"}\r
@@ -545,7 +543,7 @@ af{
         collation{\r
             big5han{"Tradisionele Chinese sorteervolgorde - Groot5"}\r
             dictionary{"Woordeboek-sorteervolgorde"}\r
-            ducet{"Verstek Unicode-sorteervolgorde"}\r
+            ducet{"Verstek Unicode-rangskikvolgorde"}\r
             gb2312han{"Vereenvoudigde Chinese sorteervolgorde - GB2312"}\r
             phonebook{"Foonboek-sorteervolgorde"}\r
             phonetic{"Fonetiese sorteerorde"}\r
@@ -553,14 +551,14 @@ af{
             reformed{"Gereformeerde sorteervolgorde"}\r
             search{"Algemenedoel-soektog"}\r
             searchjl{"Soek volgens Hangul-beginkonsonant"}\r
-            standard{"Standaard sorteervolgorde"}\r
+            standard{"Standaard rangskikvolgorde"}\r
             stroke{"Slag-sorteervolgorde"}\r
             traditional{"Tradisionele sorteervolgorde"}\r
             unihan{"Radikale-slag-sorteervolgorde"}\r
         }\r
         d0{\r
             fwidth{"Vollewydte"}\r
-            hwidth{"halfwydte"}\r
+            hwidth{"Halfwydte"}\r
             npinyin{"Numeries"}\r
         }\r
         hc{\r
@@ -570,18 +568,18 @@ af{
             h24{"24-uur-stelsel (1-24)"}\r
         }\r
         lb{\r
-            loose{"Los reëlbreek-styl"}\r
-            normal{"Normale reëlbreek-styl"}\r
-            strict{"Streng reëlbreek-styl"}\r
+            loose{"Losse reëlafbreek-styl"}\r
+            normal{"Normale reëlafbreek-styl"}\r
+            strict{"Streng reëlafbreek-styl"}\r
         }\r
         m0{\r
-            bgn{"BGN"}\r
-            ungegn{"UNGEGN"}\r
+            bgn{"BGN-transliterasie"}\r
+            ungegn{"UNGEGN-transliterasie"}\r
         }\r
         ms{\r
             metric{"Metrieke stelsel"}\r
-            uksystem{"Imperiale meetstelsel"}\r
-            ussystem{"VS-meetstelsel"}\r
+            uksystem{"Imperiale maatstelsel"}\r
+            ussystem{"VSA-maatstelsel"}\r
         }\r
         numbers{\r
             arab{"Arabies-Indiese syfers"}\r
@@ -590,7 +588,7 @@ af{
             armnlow{"Armeense kleinletter-syfers"}\r
             beng{"Bengaalse syfers"}\r
             deva{"Devanagari-syfers"}\r
-            ethi{"Ethiopiese syfers"}\r
+            ethi{"Etiopiese syfers"}\r
             finance{"Finansiële syfers"}\r
             fullwide{"Vollewydte-syfers"}\r
             geor{"Georgiese syfers"}\r
@@ -626,7 +624,7 @@ af{
             vaii{"Vai-syfers"}\r
         }\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.65"}\r
     characterLabelPattern{\r
         all{"{0} – Alle"}\r
         category-list{"{0}: {1}"}\r
index 7124e127e459312f20f533d6a02970820920a497..4434b2bffe415ae4030a372663d226095adf6ce7 100644 (file)
@@ -52,7 +52,7 @@ am{
         as{"አሳሜዛዊ"}\r
         asa{"አሱ"}\r
         ase{"የአሜሪካ የምልክት ቋንቋ"}\r
-        ast{"á\8a á\8b\8dá\88µá\89µሪያን"}\r
+        ast{"á\8a á\88µá\89±ሪያን"}\r
         av{"አቫሪክ"}\r
         awa{"አዋድሂ"}\r
         ay{"አያማርኛ"}\r
@@ -138,7 +138,7 @@ am{
         dsb{"የታችኛው ሰርቢያንኛ"}\r
         dtp{"ሴንተራል ዱሰን"}\r
         dua{"ዱዋላኛ"}\r
-        dv{"á\8b²á\89¬á\88\85"}\r
+        dv{"á\8b²á\89¬á\88\82"}\r
         dyo{"ጆላ ፎንያኛ"}\r
         dyu{"ድዩላ"}\r
         dz{"ድዞንግኻኛ"}\r
@@ -260,7 +260,7 @@ am{
         ks{"ካሽሚርኛ"}\r
         ksb{"ሻምባላ"}\r
         ksf{"ባፊያ"}\r
-        ksh{"á\8a®á\88\8eá\8a\9dá\8b«á\8a\95"}\r
+        ksh{"á\8a®á\88\8eá\8a\9dá\8a\9b"}\r
         ku{"ኩርድሽኛ"}\r
         kum{"ኩማይክ"}\r
         kv{"ኮሚ"}\r
@@ -304,7 +304,7 @@ am{
         min{"ሚናንግካባኡ"}\r
         mk{"ማሴዶንኛ"}\r
         ml{"ማላያላምኛ"}\r
-        mn{"á\88\9eá\8a\95á\8c\8eá\88\8bá\8b\8aኛ"}\r
+        mn{"á\88\9eá\8a\95á\8c\8eá\88\8aá\8b«ኛ"}\r
         mni{"ማኒፑሪ"}\r
         moh{"ሞሃውክ"}\r
         mos{"ሞሲ"}\r
@@ -327,7 +327,7 @@ am{
         nds{"የታችኛው ጀርመን"}\r
         nds_NL{"የታችኛው ሳክሰን"}\r
         ne{"ኔፓሊኛ"}\r
-        new{"á\8a\90á\8b\8bá\88ª"}\r
+        new{"á\8a\92á\8b\8bá\88ª(á\8a\94á\8d\93á\88\8d)"}\r
         ng{"ንዶንጋ"}\r
         nia{"ኒአስ"}\r
         niu{"ኒዩአንኛ"}\r
@@ -411,7 +411,7 @@ am{
         snk{"ሶኒንኬ"}\r
         so{"ሱማልኛ"}\r
         sq{"አልባንያንኛ"}\r
-        sr{"á\88°á\88­á\89¢ኛ"}\r
+        sr{"á\88°á\88­á\89¥á\8b«ኛ"}\r
         srn{"ስራናን ቶንጎ"}\r
         ss{"ስዋቲኛ"}\r
         ssy{"ሳሆኛ"}\r
@@ -449,7 +449,7 @@ am{
         twq{"ታሳዋቅ"}\r
         ty{"ታሂታንኛ"}\r
         tyv{"ቱቪንያንኛ"}\r
-        tzm{"መካከለኛ አትላስ ታማዚግት"}\r
+        tzm{"መካከለኛው አትላስ ታማዚኛ"}\r
         udm{"ኡድሙርት"}\r
         ug{"ኡዊግሁርኛ"}\r
         uk{"ዩክሬንኛ"}\r
@@ -561,7 +561,7 @@ am{
             gregorian{"የግሪጎሪያን የቀን አቆጣጠር"}\r
             hebrew{"የእብራዊያን የቀን አቆጣጠር"}\r
             indian{"የህንድ ብሔራዊ የቀን አቆጣጠር"}\r
-            islamic{"á\8b¨á\8a¥á\88µá\88\8bá\88\9bá\8b\8a á\8b¨á\88°á\8b\93á\89µ አቆጣጠር"}\r
+            islamic{"á\8a¥á\88µá\88\8bá\88\9bá\8b\8a á\8b¨á\89\80á\8a\95 አቆጣጠር"}\r
             islamic-civil{"የእስላም ህዝባዊ የቀን አቆጣጠር"}\r
             iso8601{"ISO-8601 የቀን አቆጣጠር"}\r
             japanese{"የጃፓን የቀን አቆጣጠር"}\r
@@ -622,7 +622,7 @@ am{
         }\r
         d0{\r
             fwidth{"ሙሉ ወርድ"}\r
-            hwidth{"á\88\83á\88\8dá\8d\8dá\8b\8aá\8bµá\8b\9d"}\r
+            hwidth{"á\8c\8dá\88\9bá\88½ á\8b\88á\88­á\8bµ"}\r
             npinyin{"አሃዛዊ"}\r
         }\r
         hc{\r
@@ -652,7 +652,7 @@ am{
             armnlow{"የአሜሪካን ንዑስ ሆሄ አሃዞች"}\r
             beng{"የቤንጋሊ አሃዞች"}\r
             deva{"የዴቫንጋሪ አሃዞች"}\r
-            ethi{"á\8b¨á\8a¢á\89µá\8b®á\8d\92á\8a­ ቁጥሮች"}\r
+            ethi{"á\8b¨á\8a¢á\89µá\8b®á\8cµá\8b« ቁጥሮች"}\r
             finance{"የፋይናንስ ቁጥሮች"}\r
             fullwide{"የሙሉ ወርድ አሃዞች"}\r
             geor{"የጆርጂያን ቁጥሮች"}\r
@@ -688,7 +688,7 @@ am{
             vaii{"የቫይ አሃዞች"}\r
         }\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.65"}\r
     characterLabelPattern{\r
         all{"{0} — ሁሉም"}\r
         category-list{"{0}: {1}"}\r
index 2bdb2c6a4385d1a29366da80fc3872eb1b926ca3..8a4d3bc49a1df2c3906c88aa1d0ece41d2bb38b3 100644 (file)
@@ -93,7 +93,7 @@ ar{
         cay{"الكايوجية"}\r
         cch{"الأتسام"}\r
         ce{"الشيشانية"}\r
-        ceb{"اÙ\84سÙ\8aبÙ\88نية"}\r
+        ceb{"اÙ\84سÙ\8aبÙ\8aÙ\88انية"}\r
         cgg{"تشيغا"}\r
         ch{"التشامورو"}\r
         chb{"التشيبشا"}\r
@@ -203,7 +203,7 @@ ar{
         ha{"الهوسا"}\r
         hai{"الهيدا"}\r
         hak{"الهاكا الصينية"}\r
-        haw{"لغة أهل الهاواي"}\r
+        haw{"لغة هاواي"}\r
         he{"العبرية"}\r
         hi{"الهندية"}\r
         hil{"الهيليجينون"}\r
@@ -321,7 +321,7 @@ ar{
         men{"الميند"}\r
         mer{"الميرو"}\r
         mfe{"المورسيانية"}\r
-        mg{"المالاغاشية"}\r
+        mg{"الملغاشي"}\r
         mga{"الأيرلندية الوسطى"}\r
         mgh{"ماخاوا-ميتو"}\r
         mgo{"ميتا"}\r
@@ -351,7 +351,7 @@ ar{
         nan{"مين-نان الصينية"}\r
         nap{"النابولية"}\r
         naq{"لغة الناما"}\r
-        nb{"بÙ\88Ù\83Ù\85Ù\88Ù\84 Ø§Ù\84Ù\86رÙ\88Ù\8aجÙ\8aØ©"}\r
+        nb{"اÙ\84Ù\86رÙ\88Ù\8aجÙ\8aØ© Ø¨Ù\88Ù\83Ù\85اÙ\84"}\r
         nd{"النديبيل الشمالية"}\r
         nds{"الألمانية السفلى"}\r
         nds_NL{"السكسونية السفلى"}\r
@@ -379,7 +379,7 @@ ar{
         nyn{"النيانكول"}\r
         nyo{"النيورو"}\r
         nzi{"النزيما"}\r
-        oc{"الأوكيتانية"}\r
+        oc{"الأوكسيتانية"}\r
         oj{"الأوجيبوا"}\r
         om{"الأورومية"}\r
         or{"الأورية"}\r
@@ -405,7 +405,7 @@ ar{
         pt_BR{"البرتغالية البرازيلية"}\r
         pt_PT{"البرتغالية الأوروبية"}\r
         qu{"الكويتشوا"}\r
-        quc{"كيشي"}\r
+        quc{"الكيشية"}\r
         raj{"الراجاسثانية"}\r
         rap{"الراباني"}\r
         rar{"الراروتونجاني"}\r
@@ -422,11 +422,11 @@ ar{
         rwk{"الروا"}\r
         sa{"السنسكريتية"}\r
         sad{"السانداوي"}\r
-        sah{"الساخية"}\r
+        sah{"الساخيّة"}\r
         sam{"الآرامية السامرية"}\r
         saq{"سامبورو"}\r
         sas{"الساساك"}\r
-        sat{"السانتالي"}\r
+        sat{"السانتالية"}\r
         sba{"نامبي"}\r
         sbp{"سانغو"}\r
         sc{"السردينية"}\r
@@ -852,7 +852,7 @@ ar{
         VALENCIA{"بلنسية"}\r
         WADEGILE{"المندرين باللاتينية - ويد–جيلز"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.50"}\r
     characterLabelPattern{\r
         all{"{0} - الكل"}\r
         category-list{"{0}: {1}"}\r
@@ -864,11 +864,11 @@ ar{
         other{"{0} - غير ذلك"}\r
         scripts{"أنظمة الكتابة - {0}"}\r
         strokes{\r
-            few{"{0} Ø¶ØºØ·Ø©"}\r
+            few{"{0} Ø¶ØºØ·Ø§Øª"}\r
             many{"{0} ضغطة"}\r
-            one{"{0} ضغطة"}\r
+            one{"ضغطة واحدة ({0})"}\r
             other{"{0} ضغطة"}\r
-            two{"{0} ضغطة"}\r
+            two{"ضغطتان ({0})"}\r
             zero{"{0} ضغطة"}\r
         }\r
     }\r
index d5475e4e967060ff8b599fdb2c5dcd440d39b926..7d59bd7750b77d61fe1299043d6d00b3a9054b56 100644 (file)
@@ -13,5 +13,5 @@ ar_SA{
         te{"التيلوجو"}\r
         ti{"التيغرينية"}\r
     }\r
-    Version{"2.1.38.80"}\r
+    Version{"2.1.43.65"}\r
 }\r
index 578859b3aeb276b996fdbc7115756c025a306123..9d9b9529267b089764735ad9deb9386c09b211ba 100644 (file)
@@ -542,7 +542,7 @@ as{
             tibt{"তিব্বতী অংক"}\r
         }\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.94"}\r
     characterLabelPattern{\r
         all{"{0} — সকলো"}\r
         category-list{"{0}: {1}"}\r
index 69a1f7e2785e2f724febf2a5e74749dbf27ee4de..35685a23e65c691b3bcd8891508ffef9fd4696bf 100644 (file)
@@ -758,54 +758,6 @@ ast{
         Phnx{"feniciu"}\r
         Plrd{"fonéticu de Pollard"}\r
         Prti{"partu d’inscripciones"}\r
-        Qaaa{"qaaa"}\r
-        Qaab{"qaab"}\r
-        Qaac{"qaac"}\r
-        Qaad{"qaad"}\r
-        Qaae{"qaae"}\r
-        Qaaf{"qaaf"}\r
-        Qaag{"qaag"}\r
-        Qaah{"qaah"}\r
-        Qaak{"qaak"}\r
-        Qaal{"qaal"}\r
-        Qaam{"qaam"}\r
-        Qaan{"qaan"}\r
-        Qaao{"qaao"}\r
-        Qaap{"qaap"}\r
-        Qaaq{"qaaq"}\r
-        Qaar{"qaar"}\r
-        Qaas{"qaas"}\r
-        Qaat{"qaat"}\r
-        Qaau{"qaau"}\r
-        Qaav{"qaav"}\r
-        Qaaw{"qaaw"}\r
-        Qaax{"qaax"}\r
-        Qaay{"qaay"}\r
-        Qaaz{"qaaz"}\r
-        Qaba{"qaba"}\r
-        Qabb{"qabb"}\r
-        Qabc{"qabc"}\r
-        Qabd{"qabd"}\r
-        Qabe{"qabe"}\r
-        Qabf{"qabf"}\r
-        Qabg{"qabg"}\r
-        Qabh{"qabh"}\r
-        Qabi{"qabi"}\r
-        Qabj{"qabj"}\r
-        Qabk{"qabk"}\r
-        Qabl{"qabl"}\r
-        Qabm{"qabm"}\r
-        Qabn{"qabn"}\r
-        Qabo{"qabo"}\r
-        Qabp{"qabp"}\r
-        Qabq{"qabq"}\r
-        Qabr{"qabr"}\r
-        Qabs{"qabs"}\r
-        Qabt{"qabt"}\r
-        Qabu{"qabu"}\r
-        Qabv{"qabv"}\r
-        Qabw{"qabw"}\r
-        Qabx{"qabx"}\r
         Rjng{"rejang"}\r
         Roro{"rongorongo"}\r
         Runr{"runes"}\r
@@ -1077,7 +1029,7 @@ ast{
         VALLADER{"VALLADER"}\r
         WADEGILE{"romanización de Wade-Giles"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.91"}\r
     characterLabelPattern{\r
         all{"{0} — too"}\r
         category-list{"{0}: {1}"}\r
index 36cf8ebd2649030f62245731b4261ff96c591d5c..6ba499bebc5111b3a93d5c266a52a2202fecddd4 100644 (file)
@@ -745,7 +745,7 @@ az{
             tibt{"Tibet Rəqəmləri"}\r
         }\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.53"}\r
     characterLabelPattern{\r
         all{"{0} — Bütün"}\r
         category-list{"{0}: {1}"}\r
index b15a7db45f9834dedab60c305a72efeb7be0a150..8f6eae91f375e551851910a637625ea5704477ce 100644 (file)
@@ -399,7 +399,7 @@ az_Cyrl{
     Scripts{\r
         Cyrl{"Кирил"}\r
     }\r
-    Version{"2.1.38.69"}\r
+    Version{"2.1.44.53"}\r
     codePatterns{\r
         language{"Дил: {0}"}\r
         script{"Скрипт: {0}"}\r
index 8c11917b890a1341412a140d3871bfc69d28a117..9ae9092a75dad4efba81042c48ea6e5247919290 100644 (file)
@@ -307,6 +307,7 @@ be{
         rm{"рэтараманская"}\r
         rn{"рундзі"}\r
         ro{"румынская"}\r
+        ro_MD{"малдаўская"}\r
         rof{"ромба"}\r
         root{"корань"}\r
         ru{"руская"}\r
@@ -550,7 +551,7 @@ be{
             tibt{"тыбецкія лічбы"}\r
         }\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.65"}\r
     characterLabelPattern{\r
         all{"{0} — Усё"}\r
         category-list{"{0}: {1}"}\r
index 5e62952647db6525c120c8a863bef903297fb5e6..1bf4847c599935b3f4cd11a470df2e3446c33e15 100644 (file)
@@ -64,7 +64,7 @@ bg{
         bez{"бена"}\r
         bg{"български"}\r
         bgn{"западен балочи"}\r
-        bho{"божпури"}\r
+        bho{"боджпÑ\83Ñ\80и"}\r
         bi{"бислама"}\r
         bik{"биколски"}\r
         bin{"бини"}\r
@@ -95,7 +95,7 @@ bg{
         cho{"чокто"}\r
         chp{"чиипувски"}\r
         chr{"черокски"}\r
-        chy{"Ñ\87ейенски"}\r
+        chy{"Ñ\88айенски"}\r
         ckb{"кюрдски (централен)"}\r
         co{"корсикански"}\r
         cop{"коптски"}\r
@@ -109,7 +109,7 @@ bg{
         cy{"уелски"}\r
         da{"датски"}\r
         dak{"дакотски"}\r
-        dar{"даÑ\80гва"}\r
+        dar{"даÑ\80гинÑ\81ки"}\r
         dav{"таита"}\r
         de{"немски"}\r
         del{"делауер"}\r
@@ -315,7 +315,7 @@ bg{
         mt{"малтийски"}\r
         mua{"мунданг"}\r
         mul{"многоезични"}\r
-        mus{"кÑ\80ик"}\r
+        mus{"мÑ\83Ñ\81когÑ\81ки"}\r
         mwl{"мирандийски"}\r
         mwr{"марвари"}\r
         my{"бирмански"}\r
@@ -828,7 +828,7 @@ bg{
         VALENCIA{"Валенсиански"}\r
         WADEGILE{"Уейд-Джайлс романизация"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.94"}\r
     characterLabelPattern{\r
         all{"{0} – всички"}\r
         category-list{"{0}: {1}"}\r
index 81e64cc50611b62005ac5d21f74f89fef26fc3ff..15184a197674e92cb3186cfc3d750f5eb633f765 100644 (file)
@@ -47,7 +47,7 @@ bn{
         arn{"মাপুচি"}\r
         arp{"আরাপাহো"}\r
         arw{"আরাওয়াক"}\r
-        as{"à¦\86সামি"}\r
+        as{"à¦\85সমà§\80য়া"}\r
         asa{"আসু"}\r
         ast{"আস্তুরিয়"}\r
         av{"আভেরিক"}\r
@@ -127,7 +127,7 @@ bn{
         dyo{"জোলা-ফনী"}\r
         dyu{"ডিউলা"}\r
         dz{"জোঙ্গা"}\r
-        dzg{"দাà¦\97াà¦\9cা"}\r
+        dzg{"দাà¦\9cাà¦\97া"}\r
         ebu{"এম্বু"}\r
         ee{"ইউয়ি"}\r
         efi{"এফিক"}\r
@@ -267,14 +267,14 @@ bn{
         ks{"কাশ্মীরি"}\r
         ksb{"শাম্বালা"}\r
         ksf{"বাফিয়া"}\r
-        ksh{"à¦\95লà§\8dশ"}\r
+        ksh{"à¦\95লà§\8bনিয়ান"}\r
         ku{"কুর্দিশ"}\r
         kum{"কুমিক"}\r
         kut{"কুটেনাই"}\r
         kv{"কোমি"}\r
         kw{"কর্ণিশ"}\r
         ky{"কির্গিজ"}\r
-        la{"লাà¦\9fিন"}\r
+        la{"লাতিন"}\r
         lad{"লাডিনো"}\r
         lag{"লাঙ্গি"}\r
         lah{"লান্ডা"}\r
@@ -317,7 +317,7 @@ bn{
         mh{"মার্শালিজ"}\r
         mi{"মাওরি"}\r
         mic{"মিকম্যাক"}\r
-        min{"মিনাà¦\99à§\8dà¦\97à§\8dâ\80\8cকাবাউ"}\r
+        min{"মিনাà¦\82কাবাউ"}\r
         mk{"ম্যাসিডোনীয়"}\r
         ml{"মালায়ালাম"}\r
         mn{"মঙ্গোলিয়"}\r
@@ -349,7 +349,7 @@ bn{
         ng{"এন্দোঙ্গা"}\r
         nia{"নিয়াস"}\r
         niu{"নিউয়ান"}\r
-        nl{"ডাà¦\9a"}\r
+        nl{"à¦\93লনà§\8dদাà¦\9c"}\r
         nl_BE{"ফ্লেমিশ"}\r
         nmg{"কোয়াসিও"}\r
         nn{"নরওয়েজীয়ান নিনর্স্ক"}\r
@@ -463,7 +463,7 @@ bn{
         syc{"প্রাচীন সিরিও"}\r
         syr{"সিরিয়াক"}\r
         ta{"তামিল"}\r
-        te{"তà§\87লà§\87গু"}\r
+        te{"তà§\87লà§\81গু"}\r
         tem{"টাইম্নে"}\r
         teo{"তেসো"}\r
         ter{"তেরেনো"}\r
@@ -678,7 +678,7 @@ bn{
         Zinh{"কাই"}\r
         Zmth{"গাণিতিক চিহ্ন"}\r
         Zsye{"ইমোজি"}\r
-        Zsym{"পà§\8dরতিকগুলি"}\r
+        Zsym{"পà§\8dরতà§\80কগুলি"}\r
         Zxxx{"অলিখিত"}\r
         Zyyy{"সাধারন"}\r
         Zzzz{"অজানা লিপি"}\r
@@ -872,7 +872,7 @@ bn{
             wara{"ওয়ারেং সিটি সংখ্যা"}\r
         }\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.91"}\r
     characterLabelPattern{\r
         all{"{0} — সমস্ত"}\r
         category-list{"{0}: {1}"}\r
index 3fca18286774220078df6b0eea916dd7874a3c0f..f7ed6fa321886c4f7904163206b13cb9c0faea52 100644 (file)
@@ -4,5 +4,5 @@ bn_IN{
     Languages{\r
         ksh{"কোলোনিয়ান"}\r
     }\r
-    Version{"2.1.38.69"}\r
+    Version{"2.1.43.65"}\r
 }\r
index 4797c47b28f6368437e22cdfc7988889f7def6f9..8b1f4a8d88490c4562017cbf829d76a88daf19fb 100644 (file)
@@ -591,6 +591,7 @@ br{
         Hira{"hiragana"}\r
         Hluw{"hieroglifoù Anatolia"}\r
         Hrkt{"silabennaouegoù japanek"}\r
+        Hung{"henhungarek"}\r
         Ital{"henitalek"}\r
         Jamo{"jamo"}\r
         Java{"javanek"}\r
@@ -602,13 +603,19 @@ br{
         Laoo{"laosek"}\r
         Latg{"latin gouezelek"}\r
         Latn{"latin"}\r
+        Lyci{"likiek"}\r
+        Lydi{"lidiek"}\r
+        Mani{"manikeek"}\r
         Maya{"hieroglifoù mayaek"}\r
         Mlym{"malayalam"}\r
         Mong{"mongolek"}\r
         Mymr{"myanmar"}\r
+        Narb{"henarabek an Norzh"}\r
         Ogam{"ogam"}\r
         Orya{"oriya"}\r
         Runr{"runek"}\r
+        Samr{"samaritek"}\r
+        Sarb{"henarabek ar Su"}\r
         Sinh{"singhalek"}\r
         Sund{"sundanek"}\r
         Syrc{"siriek"}\r
@@ -624,6 +631,7 @@ br{
         Ugar{"ougaritek"}\r
         Vaii{"vai"}\r
         Xpeo{"persek kozh"}\r
+        Xsux{"gennheñvel"}\r
         Zmth{"notadur jedoniel"}\r
         Zsye{"fromlunioù"}\r
         Zsym{"arouezioù"}\r
@@ -784,6 +792,7 @@ br{
         HSISTEMO{"esperanteg sistem H"}\r
         IJEKAVSK{"serbeg gant distagadur ijekavian"}\r
         ITIHASA{"sanskriteg itihâsa"}\r
+        IVANCHOV{"reizhskrivadur Ivanchov"}\r
         JAUER{"rannyezh romañchek Jauer"}\r
         JYUTPING{"romanekadur kantonek Jyutping"}\r
         KKCOR{"kerneveureg kumun"}\r
@@ -835,7 +844,7 @@ br{
         WADEGILE{"romanekadur Wade-Giles"}\r
         XSISTEMO{"esperanteg sistem X"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.91"}\r
     codePatterns{\r
         language{"{0}"}\r
         script{"{0}"}\r
index c8460ffa123cf08f51f232390263cabbe37e8b2b..5d5c883b6a1dc5401e352b1acca5617edaa08f5f 100644 (file)
@@ -609,7 +609,7 @@ brx{
         SOLBA{"श्टोलविज़्ज़ा या सोलबीका डायलेक्ट"}\r
         TARASK{"तारास्कीएवीचा वर्तनी"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.41.34"}\r
     codePatterns{\r
         script{"देवनागरी: {0}"}\r
         territory{"क्षेत्र:भारत {0}"}\r
index dae17f7e3b4917d1ab3521da47be91e9a0f6f257..2166d736426c794bbd92fba7f2cd2f751c9308ff 100644 (file)
@@ -205,7 +205,7 @@ bs{
         inh{"ingušetski"}\r
         io{"ido"}\r
         is{"islandski"}\r
-        it{"talijanski"}\r
+        it{"italijanski"}\r
         iu{"inuktitut"}\r
         ja{"japanski"}\r
         jbo{"lojban"}\r
@@ -796,7 +796,7 @@ bs{
         TARASK{"Taraskijevica ortografija"}\r
         VALENCIA{"Valencijski"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.88"}\r
     characterLabelPattern{\r
         all{"{0} — sve"}\r
         category-list{"{0}: {1}"}\r
index d82b3e3c288b50ae042382359c38671f50d14fe0..45e51604b32b091f59325807f831ed5a9769531f 100644 (file)
@@ -696,7 +696,7 @@ bs_Cyrl{
         TARASK{"Тараскијевичка ортографија"}\r
         VALENCIA{"Валенцијска"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.41.34"}\r
     characterLabelPattern{\r
         all{"{0} — све"}\r
         strokes{\r
index fa8778520cbc23029e58f2f92c49972a5ff16551..06ad57bd0f6fc5dc092a41895019341da9841f7d 100644 (file)
@@ -13,9 +13,9 @@ ca{
         colStrength{"Força de l’ordenació"}\r
         collation{"ordenació"}\r
         currency{"moneda"}\r
-        hc{"sistema horari (12h o 24h)"}\r
+        hc{"sistema horari (12 h o 24 h)"}\r
         lb{"estil de salt de línia"}\r
-        ms{"Sistema de mesures"}\r
+        ms{"sistema de mesures"}\r
         numbers{"xifres"}\r
         timezone{"Zona horària"}\r
         va{"Variant local"}\r
@@ -59,7 +59,7 @@ ca{
         av{"àvar"}\r
         awa{"awadhi"}\r
         ay{"aimara"}\r
-        az{"àzeri"}\r
+        az{"azerbaidjanès"}\r
         ba{"baixkir"}\r
         bal{"balutxi"}\r
         ban{"balinès"}\r
@@ -67,7 +67,7 @@ ca{
         bas{"basa"}\r
         bax{"bamum"}\r
         bbj{"ghomala"}\r
-        be{"bielorús"}\r
+        be{"belarús"}\r
         bej{"beja"}\r
         bem{"bemba"}\r
         bez{"bena"}\r
@@ -78,7 +78,7 @@ ca{
         bho{"bhojpuri"}\r
         bi{"bislama"}\r
         bik{"bicol"}\r
-        bin{"bini"}\r
+        bin{"edo"}\r
         bkm{"kom"}\r
         bla{"blackfoot"}\r
         bm{"bambara"}\r
@@ -92,7 +92,7 @@ ca{
         bss{"akoose"}\r
         bua{"buriat"}\r
         bug{"bugui"}\r
-        bum{"seki"}\r
+        bum{"bulu"}\r
         byn{"bilin"}\r
         byv{"medumba"}\r
         ca{"català"}\r
@@ -101,7 +101,7 @@ ca{
         cay{"cayuga"}\r
         cch{"atsam"}\r
         ce{"txetxè"}\r
-        ceb{"cebuano"}\r
+        ceb{"cebuà"}\r
         cgg{"chiga"}\r
         ch{"chamorro"}\r
         chb{"txibtxa"}\r
@@ -130,7 +130,7 @@ ca{
         dav{"taita"}\r
         de{"alemany"}\r
         de_AT{"alemany austríac"}\r
-        de_CH{"alt alemany suís"}\r
+        de_CH{"alemany estàndard suís"}\r
         del{"delaware"}\r
         den{"slavi"}\r
         dgr{"dogrib"}\r
@@ -353,12 +353,12 @@ ca{
         mic{"micmac"}\r
         min{"minangkabau"}\r
         mk{"macedoni"}\r
-        ml{"malaialam"}\r
+        ml{"malaiàlam"}\r
         mn{"mongol"}\r
         mnc{"manxú"}\r
         mni{"manipurí"}\r
         moh{"mohawk"}\r
-        mos{"mo"}\r
+        mos{"moore"}\r
         mr{"marathi"}\r
         mrj{"mari occidental"}\r
         ms{"malai"}\r
@@ -413,10 +413,10 @@ ca{
         osa{"osage"}\r
         ota{"turc otomà"}\r
         pa{"panjabi"}\r
-        pag{"pangasi"}\r
+        pag{"pangasinan"}\r
         pal{"pahlavi"}\r
         pam{"pampanga"}\r
-        pap{"papiamentu"}\r
+        pap{"papiament"}\r
         pau{"palauà"}\r
         pcd{"picard"}\r
         pcm{"pidgin de Nigèria"}\r
@@ -564,7 +564,7 @@ ca{
         vun{"vunjo"}\r
         wa{"való"}\r
         wae{"walser"}\r
-        wal{"ameto"}\r
+        wal{"wolaita"}\r
         war{"waray"}\r
         was{"washo"}\r
         wbp{"warlpiri"}\r
@@ -578,7 +578,7 @@ ca{
         yap{"yapeà"}\r
         yav{"yangben"}\r
         ybb{"yemba"}\r
-        yi{"jiddisch"}\r
+        yi{"ídix"}\r
         yo{"ioruba"}\r
         yue{"cantonès"}\r
         za{"zhuang"}\r
@@ -650,7 +650,7 @@ ca{
         Grek{"grec"}\r
         Gujr{"gujarati"}\r
         Guru{"gurmukhi"}\r
-        Hanb{"hanb"}\r
+        Hanb{"han amb bopomofo"}\r
         Hang{"hangul"}\r
         Hani{"han"}\r
         Hano{"hanunoo"}\r
@@ -875,8 +875,8 @@ ca{
             strict{"salt de línia estricte"}\r
         }\r
         m0{\r
-            bgn{"BGN"}\r
-            ungegn{"UNGEGN"}\r
+            bgn{"sistema de transliteració BGN"}\r
+            ungegn{"sistema de transliteració UNGEGN"}\r
         }\r
         ms{\r
             metric{"sistema mètric"}\r
@@ -902,13 +902,13 @@ ca{
             guru{"dígits gurmukhi"}\r
             hanidec{"nombres decimals xinesos"}\r
             hans{"nombres xinesos simplificats"}\r
-            hansfin{"numerals financers xinesos simplificats"}\r
-            hant{"numerals xinesos tradicionals"}\r
-            hantfin{"numerals financers xinesos tradicionals"}\r
-            hebr{"numerals hebreus"}\r
+            hansfin{"nombres financers xinesos simplificats"}\r
+            hant{"nombres xinesos tradicionals"}\r
+            hantfin{"nombres financers xinesos tradicionals"}\r
+            hebr{"nombres hebreus"}\r
             java{"dígits javanesos"}\r
-            jpan{"numerals japonesos"}\r
-            jpanfin{"numerals financers japonesos"}\r
+            jpan{"nombres japonesos"}\r
+            jpanfin{"nombres financers japonesos"}\r
             kali{"dígits kayah"}\r
             khmr{"dígits khmer"}\r
             knda{"dígits kannada"}\r
@@ -935,7 +935,7 @@ ca{
             taml{"nombres tamils tradicionals"}\r
             tamldec{"dígits tamils"}\r
             telu{"dígits telugu"}\r
-            thai{"dígits thai"}\r
+            thai{"dígits tai"}\r
             tibt{"dígits tibetans"}\r
             traditional{"Numerals tradicionals"}\r
             vaii{"dígits vai"}\r
@@ -999,7 +999,7 @@ ca{
         VALLADER{"baix engiadinès"}\r
         WADEGILE{"romanització Wade-Giles"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.65"}\r
     characterLabelPattern{\r
         all{"{0} — tot"}\r
         category-list{"{0}: {1}"}\r
index 8276e4956bfa8b1129ad16c938d08773d114730c..4f434b4da5d8cf9063aab4c6a9f66e3ab55273b2 100644 (file)
@@ -833,7 +833,7 @@ ccp{
             vaii{"𑄞𑄭 𑄚𑄘"}\r
         }\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.50"}\r
     characterLabelPattern{\r
         all{"{0} — 𑄗𑄪𑄟𑄴"}\r
         category-list{"{0}: {1}"}\r
index 82b3dd4f8eb6db5ce7b97564ea20f524e0d1570b..7794263653d30f766078cea6b1b5e3310c5c7a33 100644 (file)
@@ -465,7 +465,7 @@ ce{
             persian{"гӀажарийн"}\r
         }\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.41.34"}\r
     codePatterns{\r
         language{"Мотт: {0}"}\r
         script{"Скрипт: {0}"}\r
index 1afa605935ddb08e87e7005d8717d0a960420ff9..4130b3666ffd4d20e9417915bb9b5e9b2792298f 100644 (file)
@@ -424,7 +424,7 @@ chr{
         Grek{"ᎪᎢ"}\r
         Gujr{"ᎫᏣᎳᏘ"}\r
         Guru{"ᎬᎹᎩ"}\r
-        Hanb{"ᎭᏂ-ᏆᏉᎼᏬ"}\r
+        Hanb{"ᎭᏂ ᎾᎿ ᏆᏉᎼᏬ"}\r
         Hang{"ᎭᏂᎫᎵ"}\r
         Hani{"ᎭᏂ"}\r
         Hans{"ᎠᎯᏗᎨ"}\r
@@ -538,7 +538,7 @@ chr{
             tibt{"ᏘᏇᏔᏂ ᏗᏎᏍᏗ"}\r
         }\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.2"}\r
     characterLabelPattern{\r
         all{"{0} — ᏂᎦᏓ"}\r
         category-list{"{0}: {1}"}\r
@@ -560,7 +560,7 @@ chr{
         territory{"ᎢᎬᎾᏕᎾ: {0}"}\r
     }\r
     localeDisplayPattern{\r
-        keyTypePattern{"{0}, {1}"}\r
+        keyTypePattern{"{0}: {1}"}\r
         pattern{"{0} ({1})"}\r
         separator{"{0}, {1}"}\r
     }\r
index 7ea1cbcb5c9a4b713047adef43eb57ef75ed78fe..13d2b0c5540485b7392b160b1a3b97f0dad011c5 100644 (file)
@@ -2,22 +2,85 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 ckb{\r
     Languages{\r
-        am{"ئەمهەرینجی"}\r
+        aa{"ئەفار"}\r
+        ab{"ئەبخازی"}\r
+        ace{"ئاچەیی"}\r
+        ada{"دانگمێ"}\r
+        ady{"ئادیگی"}\r
+        af{"ئەفریکانس"}\r
+        agq{"ئاگێم"}\r
+        ain{"ئاینوو"}\r
+        ak{"ئاکان"}\r
+        ale{"ئالیوت"}\r
+        alt{"ئاڵتایی باشوور"}\r
+        am{"ئەمھەری"}\r
+        an{"ئاراگۆنی"}\r
+        anp{"ئەنگیکا"}\r
         ar{"عەرەبی"}\r
+        ar_001{"عەرەبیی ستاندارد"}\r
+        arn{"ماپووچە"}\r
+        arp{"ئاراپاهۆ"}\r
         as{"ئاسامی"}\r
+        asa{"ئاسوو"}\r
+        ast{"ئاستۆری"}\r
+        av{"ئەڤاری"}\r
+        awa{"ئاوادهی"}\r
+        ay{"ئایمارا"}\r
         az{"ئازەربایجانی"}\r
         az_Arab{"ئازەربایجانی باشووری"}\r
+        ba{"باشکیەر"}\r
+        ban{"بالی"}\r
+        bas{"باسا"}\r
         be{"بیلاڕووسی"}\r
+        bem{"بێمبا"}\r
+        bez{"بێنا"}\r
         bg{"بۆلگاری"}\r
+        bho{"بوجپووری"}\r
+        bi{"بیسلاما"}\r
+        bin{"بینی"}\r
+        bla{"سیکسیکا"}\r
+        bm{"بامبارا"}\r
         bn{"بەنگلادێشی"}\r
+        bo{"تەبەتی"}\r
         br{"برێتونی"}\r
+        brx{"بۆدۆ"}\r
         bs{"بۆسنی"}\r
+        bug{"بووگی"}\r
+        byn{"بلین"}\r
         ca{"كاتالۆنی"}\r
+        ce{"چیچانی"}\r
+        ceb{"سێبوانۆ"}\r
+        cgg{"کیگا"}\r
+        ch{"چامۆرۆ"}\r
+        chk{"چووکی"}\r
+        chm{"ماری"}\r
+        cho{"چۆکتاو"}\r
+        chr{"چێرۆکی"}\r
+        chy{"شایان"}\r
         ckb{"کوردیی ناوەندی"}\r
-        cs{"چەكی"}\r
+        co{"کۆرسیکی"}\r
+        crs{"فەرەنسیی سیشێلی"}\r
+        cs{"چێکی"}\r
+        cu{"سلاویی کلیسەیی"}\r
+        cv{"چووڤاشی"}\r
         cy{"وێلزی"}\r
         da{"دانماركی"}\r
-        de{"ئاڵمانی"}\r
+        dak{"داکۆتایی"}\r
+        dar{"دارگینی"}\r
+        dav{"تایتا"}\r
+        de{"ئەڵمانی"}\r
+        dgr{"دۆگریب"}\r
+        dje{"زارما"}\r
+        dsb{"سربیی خوارین"}\r
+        dua{"دووالا"}\r
+        dv{"دیڤێهی"}\r
+        dyo{"جۆلافۆنی"}\r
+        dz{"دزوونگخا"}\r
+        dzg{"دازا"}\r
+        ebu{"ئێمبوو"}\r
+        ee{"ئێوێیی"}\r
+        efi{"ئێفیک"}\r
+        eka{"ئێکاجووک"}\r
         el{"یۆنانی"}\r
         en{"ئینگلیزی"}\r
         en_AU{"ئینگلیزیی ئۆسترالیایی"}\r
@@ -28,78 +91,304 @@ ckb{
         es{"ئیسپانی"}\r
         et{"ئیستۆنی"}\r
         eu{"باسکی"}\r
+        ewo{"ئێوۆندۆ"}\r
         fa{"فارسی"}\r
+        ff{"فوولایی"}\r
         fi{"فینلەندی"}\r
-        fr{"فەرانسی"}\r
+        fil{"فیلیپینی"}\r
+        fj{"فیجی"}\r
+        fo{"فەرۆیی"}\r
+        fon{"فۆنی"}\r
+        fr{"فەرەنسی"}\r
+        fur{"فریئوولی"}\r
         fy{"فریسیی ڕۆژاوا"}\r
         ga{"ئیرلەندی"}\r
+        gaa{"گایی"}\r
+        gd{"گه‌لیكی سكۆتله‌ندی"}\r
+        gez{"گیزی"}\r
+        gil{"گیلبێرتی"}\r
         gl{"گالیسی"}\r
         gn{"گووارانی"}\r
+        gor{"گۆرۆنتالی"}\r
+        gsw{"ئەڵمانیی سویسڕا"}\r
         gu{"گوجاراتی"}\r
-        he{"هیبرێ"}\r
+        guz{"گووسی"}\r
+        gv{"مانکی"}\r
+        gwi{"گویچین"}\r
+        ha{"هائووسا"}\r
+        haw{"هاوایی"}\r
+        he{"عیبری"}\r
         hi{"هیندی"}\r
+        hil{"هیلیگاینۆن"}\r
+        hmn{"همۆنگ"}\r
         hr{"كرواتی"}\r
+        hsb{"سربیی سەروو"}\r
+        ht{"کریولی هائیتی"}\r
         hu{"هەنگاری (مەجاری)"}\r
+        hup{"هووپا"}\r
         hy{"ئەرمەنی"}\r
-        id{"ئێەندونیزی"}\r
+        hz{"هێرێرۆ"}\r
+        ia{"ئینترلینگووا"}\r
+        iba{"ئیبان"}\r
+        ibb{"ئیبیبۆ"}\r
+        id{"ئیندۆنیزی"}\r
+        ig{"ئیگبۆ"}\r
+        ii{"سیچوان یی"}\r
+        ilo{"ئیلۆکۆ"}\r
+        inh{"ئینگووش"}\r
+        io{"ئیدۆ"}\r
         is{"ئیسلەندی"}\r
         it{"ئیتالی"}\r
+        iu{"ئینوکتیتوت"}\r
         ja{"ژاپۆنی"}\r
-        jv{"جاڤانی"}\r
+        jbo{"لۆژبان"}\r
+        jgo{"نگۆمبا"}\r
+        jmc{"ماچامێ"}\r
+        jv{"جاڤایی"}\r
         ka{"گۆرجستانی"}\r
+        kab{"کبائیلی"}\r
+        kac{"کاچین"}\r
+        kaj{"کیجوو"}\r
+        kam{"کامبا"}\r
+        kbd{"کاباردی"}\r
+        kcg{"تیاپ"}\r
+        kde{"ماکۆندە"}\r
+        kea{"کابووڤێردیانۆ"}\r
+        kfo{"کۆرۆ"}\r
+        kha{"کهاسی"}\r
+        khq{"کۆیرا چینی"}\r
+        ki{"کیکوویوو"}\r
+        kj{"کوانیاما"}\r
         kk{"کازاخی"}\r
+        kkj{"کاکۆ"}\r
+        kl{"کالالیسووت"}\r
+        kln{"کالێنجین"}\r
+        km{"خمێر"}\r
+        kmb{"کیمبووندوو"}\r
+        kn{"کاننادا"}\r
+        ko{"كۆری"}\r
+        kok{"کۆنکانی"}\r
+        kpe{"کپێلێ"}\r
+        kr{"کانووری"}\r
+        krc{"کاراچای بالکار"}\r
+        krl{"کارێلی"}\r
+        kru{"کوورووخ"}\r
+        ks{"کەشمیری"}\r
+        ksb{"شامابالا"}\r
+        ksf{"بافیا"}\r
+        ksh{"کۆلۆنی"}\r
         ku{"کوردی"}\r
+        kum{"کوومیک"}\r
+        kv{"کۆمی"}\r
+        kw{"کۆڕنی"}\r
         ky{"كرگیزی"}\r
         la{"لاتینی"}\r
+        lad{"لادینۆ"}\r
+        lag{"لانگی"}\r
+        lb{"لوکسەمبورگی"}\r
+        lez{"لەزگی"}\r
+        lg{"گاندا"}\r
+        li{"لیمبورگی"}\r
+        lkt{"لاکۆتا"}\r
         ln{"لينگالا"}\r
-        lo{"لاوی"}\r
+        lo{"لائۆیی"}\r
+        loz{"لۆزی"}\r
+        lrc{"لوڕیی باکوور"}\r
         lt{"لیتوانی"}\r
+        lu{"لووبا کاتانگا"}\r
+        lua{"لووبا لوولووا"}\r
+        lun{"لووندا"}\r
+        luo{"لووئۆ"}\r
+        lus{"میزۆ"}\r
+        luy{"لوویا"}\r
         lv{"لێتۆنی"}\r
+        mad{"مادووری"}\r
+        mag{"ماگاهی"}\r
+        mai{"مائیتیلی"}\r
+        mak{"ماکاسار"}\r
+        mas{"ماسایی"}\r
+        mdf{"مۆکشا"}\r
+        men{"مێندێ"}\r
+        mer{"مێروو"}\r
+        mfe{"مۆریسی"}\r
+        mg{"مالاگاسی"}\r
+        mgh{"ماخوامیتۆ"}\r
+        mgo{"مێتە"}\r
+        mh{"مارشاڵی"}\r
+        mi{"مائۆری"}\r
+        mic{"میکماک"}\r
+        min{"مینانکاباو"}\r
         mk{"ماكێدۆنی"}\r
+        ml{"مالایالام"}\r
         mn{"مەنگۆلی"}\r
+        mni{"مانیپووری"}\r
+        moh{"مۆهاوک"}\r
+        mos{"مۆسی"}\r
         mr{"ماراتی"}\r
+        ms{"مالیزی"}\r
+        mt{"ماڵتی"}\r
+        mua{"موندانگ"}\r
+        mul{"چەند زمان"}\r
+        mus{"کریک"}\r
+        mwl{"میراندی"}\r
+        my{"میانماری"}\r
+        myv{"ئێرزیا"}\r
         mzn{"مازەندەرانی"}\r
+        na{"نائوروو"}\r
+        nap{"ناپۆلی"}\r
+        naq{"ناما"}\r
+        nb{"نەرویژیی بۆکمال"}\r
+        nd{"ئندێبێلێی باکوور"}\r
         ne{"نیپالی"}\r
+        new{"نێواری"}\r
+        ng{"ندۆنگا"}\r
+        nia{"نیاس"}\r
+        niu{"نیئوویی"}\r
         nl{"هۆڵەندی"}\r
+        nl_BE{"فلێمی"}\r
+        nmg{"کواسیۆ"}\r
+        nn{"نەرویژیی نینۆرسک"}\r
+        nnh{"نگیمبوون"}\r
         no{"نۆروێژی"}\r
-        or{"ئۆرییا"}\r
+        nog{"نۆگای"}\r
+        nqo{"نکۆ"}\r
+        nr{"ئندێبێلێی باشوور"}\r
+        nso{"سۆتۆی باکوور"}\r
+        nus{"نوێر"}\r
+        nv{"ناڤاجۆ"}\r
+        ny{"نیانجا"}\r
+        nyn{"نیانکۆلێ"}\r
+        oc{"ئۆکسیتانی"}\r
+        om{"ئۆرۆمۆ"}\r
+        or{"ئۆدیا"}\r
+        os{"ئۆسێتی"}\r
         pa{"پەنجابی"}\r
-        pl{"پۆڵۆنیایی (لەهستانی)"}\r
+        pag{"پانگاسینان"}\r
+        pam{"پامپانگا"}\r
+        pap{"پاپیامێنتۆ"}\r
+        pau{"پالائوویی"}\r
+        pcm{"پیجینی نیجریا"}\r
+        pl{"پۆڵەندی"}\r
+        prg{"پڕووسی"}\r
         ps{"پەشتوو"}\r
         pt{"پورتوگالی"}\r
+        qu{"کێچوا"}\r
+        quc{"کیچەیی"}\r
+        rap{"ڕاپانوویی"}\r
+        rar{"ڕاڕۆتۆنگان"}\r
+        rm{"ڕۆمانش"}\r
+        rn{"ڕووندی"}\r
         ro{"ڕۆمانی"}\r
+        ro_MD{"مۆڵداڤی"}\r
+        rof{"ڕۆمبۆ"}\r
+        root{"ڕووت"}\r
         ru{"ڕووسی"}\r
+        rup{"ئارمۆمانی"}\r
+        rw{"کینیارواندا"}\r
+        rwk{"ڕوا"}\r
         sa{"سانسکريت"}\r
+        sad{"سانداوێ"}\r
+        sah{"ساخا"}\r
+        saq{"سامبووروو"}\r
+        sat{"سانتالی"}\r
+        sba{"نگامبای"}\r
+        sbp{"سانگوو"}\r
+        sc{"ساردینی"}\r
+        scn{"سیسیلی"}\r
+        sco{"سکۆتس"}\r
         sd{"سيندی"}\r
         sdh{"کوردیی باشووری"}\r
-        si{"سینهەلی"}\r
+        se{"سامیی باکوور"}\r
+        seh{"سێنا"}\r
+        ses{"کۆیرابۆرۆ سێنی"}\r
+        sg{"سانگۆ"}\r
+        shi{"شیلها"}\r
+        shn{"شان"}\r
+        si{"سینهالی"}\r
         sk{"سلۆڤاكی"}\r
         sl{"سلۆڤێنی"}\r
-        sma{"سامی باشووری"}\r
+        sm{"سامۆیی"}\r
+        sma{"سامیی باشوور"}\r
+        smj{"لوولێ سامی"}\r
+        smn{"ئیناری سامی"}\r
+        sms{"سامیی سکۆڵت"}\r
+        sn{"شۆنا"}\r
+        snk{"سۆنینکێ"}\r
         so{"سۆمالی"}\r
         sq{"ئەڵبانی"}\r
-        sr{"سەربی"}\r
-        st{"سێسۆتۆ"}\r
-        su{"سودانی"}\r
+        sr{"سربی"}\r
+        srn{"سرانان تۆنگۆ"}\r
+        ss{"سواتی"}\r
+        ssy{"ساهۆ"}\r
+        st{"سۆتۆی باشوور"}\r
+        su{"سوندانی"}\r
+        suk{"سووکووما"}\r
         sv{"سویدی"}\r
+        sw{"سواهیلی"}\r
+        sw_CD{"سواهیلیی کۆنگۆ"}\r
+        swb{"کۆمۆری"}\r
+        syr{"سریانی"}\r
         ta{"تامیلی"}\r
-        te{"تەلۆگوی"}\r
+        te{"تێلووگوو"}\r
+        tem{"تیمنێ"}\r
+        teo{"تێسوو"}\r
+        tet{"تێتووم"}\r
         tg{"تاجیکی"}\r
         th{"تایلەندی"}\r
-        ti{"تیگرینیای"}\r
+        ti{"تیگرینیا"}\r
+        tig{"تیگرێ"}\r
         tk{"تورکمانی"}\r
+        tlh{"كلینگۆن"}\r
+        tn{"تسوانا"}\r
+        to{"تۆنگان"}\r
+        tpi{"تۆکپیسین"}\r
         tr{"تورکی"}\r
-        ug{"ئويخووری"}\r
+        trv{"تارۆکۆ"}\r
+        ts{"تسۆنگا"}\r
+        tt{"تاتاری"}\r
+        tum{"تومبووکا"}\r
+        tvl{"تووڤالوو"}\r
+        twq{"تاساواک"}\r
+        ty{"تاهیتی"}\r
+        tyv{"تووڤینی"}\r
+        tzm{"ئەمازیغی ناوەڕاست"}\r
+        udm{"ئوودموورت"}\r
+        ug{"ئۆیخۆری"}\r
         uk{"ئۆكراینی"}\r
+        umb{"ئومبووندوو"}\r
         und{"زمانی نەناسراو"}\r
         ur{"ئۆردوو"}\r
         uz{"ئوزبەکی"}\r
+        vai{"ڤایی"}\r
+        ve{"ڤێندا"}\r
         vi{"ڤیەتنامی"}\r
+        vo{"ڤۆلاپووک"}\r
+        vun{"ڤوونجوو"}\r
+        wa{"والوون"}\r
+        wae{"والسێر"}\r
+        wal{"وۆلایتا"}\r
+        war{"وارای"}\r
+        wo{"وۆلۆف"}\r
+        xal{"کالمیک"}\r
+        xh{"سسوسا"}\r
+        xog{"سۆگا"}\r
+        yav{"یانگبێن"}\r
+        ybb{"یێمبا"}\r
+        yi{"ییدیش"}\r
+        yo{"یۆرووبا"}\r
+        yue{"کانتۆنی"}\r
+        zgh{"ئەمازیغیی مەغریب"}\r
         zh{"چینی"}\r
-        zu{"زولو"}\r
+        zh_Hans{"چینی (چینیی ئاسانکراو)"}\r
+        zh_Hant{"چینی (چینیی دێرین)"}\r
+        zu{"زوولوو"}\r
+        zun{"زوونی"}\r
+        zxx{"هیچ ناوەرۆکی زمانی نیە"}\r
+        zza{"زازا"}\r
     }\r
     Languages%short{\r
         az{"ئازەربایجانی"}\r
+        en_GB{"ئینگلیزی (GB)"}\r
         en_US{"ئینگلیزیی ئەمەریکایی"}\r
     }\r
     Scripts{\r
@@ -115,25 +404,42 @@ ckb{
         Grek{"یۆنانی"}\r
         Gujr{"گوجەراتی"}\r
         Guru{"گورموکھی"}\r
+        Hanb{"هان لەگەڵ بۆپۆمۆفۆ"}\r
         Hang{"ھانگول"}\r
-        Hebr{"هیبرێ"}\r
+        Hani{"ھان"}\r
+        Hans{"ئاسانکراو"}\r
+        Hant{"دێرین"}\r
+        Hebr{"عیبری"}\r
         Hira{"ھیراگانا"}\r
+        Hrkt{"ژاپۆنیی بڕگەیی"}\r
+        Jamo{"جامۆ"}\r
         Jpan{"ژاپۆنی"}\r
         Kana{"کاتاکانا"}\r
-        Khmr{"خمێری"}\r
-        Knda{"کەنەدا"}\r
-        Kore{"کۆریایی"}\r
-        Laoo{"لاو"}\r
+        Khmr{"خمێر"}\r
+        Knda{"کاننادا"}\r
+        Kore{"کۆری"}\r
+        Laoo{"لائۆ"}\r
         Latn{"لاتینی"}\r
         Mlym{"مالایالام"}\r
         Mong{"مەنگۆلی"}\r
         Mymr{"میانمار"}\r
-        Orya{"ئÛ\86ریا"}\r
+        Orya{"ئÛ\86دیا"}\r
         Sinh{"سینھالا"}\r
         Taml{"تامیلی"}\r
-        Telu{"تÛ\8cÙ\84Ù\88Ú¯و"}\r
-        Thaa{"تانە"}\r
+        Telu{"تÛ\8eÙ\84Ù\88Ù\88Ú¯Ù\88و"}\r
+        Thaa{"تانا"}\r
         Thai{"تایلەندی"}\r
+        Tibt{"تەبەتی"}\r
+        Zmth{"نیشانەی بیرکاری"}\r
+        Zsye{"ئیمۆجی"}\r
+        Zsym{"هێماکان"}\r
+        Zxxx{"نەنووسراو"}\r
+        Zyyy{"باو"}\r
+        Zzzz{"خەتی نەناسراو"}\r
     }\r
-    Version{"2.1.38.71"}\r
+    Scripts%stand-alone{\r
+        Hans{"هانی ئاسانکراو"}\r
+        Hant{"هانی دێرین"}\r
+    }\r
+    Version{"2.1.44.88"}\r
 }\r
index 5adc192c0fdf7df245586ff96fed96116a3a8b8e..1d9e43923ac4c44203e2c00a8ac0c776433a5d65 100644 (file)
@@ -47,11 +47,11 @@ cs{
         ar{"arabština"}\r
         ar_001{"arabština (moderní standardní)"}\r
         arc{"aramejština"}\r
-        arn{"mapudungunština"}\r
+        arn{"mapudungun"}\r
         aro{"araonština"}\r
         arp{"arapažština"}\r
         arq{"arabština (alžírská)"}\r
-        ars{"arabština (nadžd)"}\r
+        ars{"arabština (Nadžd)"}\r
         arw{"arawacké jazyky"}\r
         ary{"arabština (marocká)"}\r
         arz{"arabština (egyptská)"}\r
@@ -961,7 +961,7 @@ cs{
         SCOTLAND{"angličtina (Skotsko)"}\r
         WADEGILE{"Wade-Giles"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.91"}\r
     characterLabelPattern{\r
         all{"{0} – vše"}\r
         category-list{"{0}: {1}"}\r
index 5924919d3d18e0c0750fa605b615bb6921dd3994..f9719d121b4c9fd1be70ad4bf253001841deefc5 100644 (file)
@@ -732,7 +732,7 @@ cy{
         VAIDIKA{"VAIDIKA"}\r
         VALLADER{"VALLADER"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.91"}\r
     characterLabelPattern{\r
         all{"{0} — y cwbl"}\r
         category-list{"{0}: {1}"}\r
index 4b37309f817cc5869490f75d5573df55a2b2458e..d29d57e90fc04dd2105f810b12ae5335d32ff8f0 100644 (file)
@@ -46,7 +46,7 @@ da{
         arc{"aramæisk"}\r
         arn{"mapudungun"}\r
         arp{"arapaho"}\r
-        ars{"najd-arabisk"}\r
+        ars{"Najd-arabisk"}\r
         arw{"arawak"}\r
         as{"assamesisk"}\r
         asa{"asu"}\r
@@ -176,7 +176,7 @@ da{
         frr{"nordfrisisk"}\r
         frs{"østfrisisk"}\r
         fur{"friulian"}\r
-        fy{"frisisk"}\r
+        fy{"vestfrisisk"}\r
         ga{"irsk"}\r
         gaa{"ga"}\r
         gag{"gagauzisk"}\r
@@ -557,7 +557,6 @@ da{
     Languages%short{\r
         az{"azeri"}\r
         en_GB{"engelsk (UK)"}\r
-        en_US{"en-US"}\r
     }\r
     Languages%variant{\r
         ps{"pushto"}\r
@@ -794,7 +793,7 @@ da{
             big5han{"sorteringsrækkefølge uforkortet kinesisk - Big5"}\r
             compat{"tidligere sorteringsrækkefølge, kompatibilitet"}\r
             dictionary{"sorteringsrækkefølge for ordbog"}\r
-            ducet{"Unicode-standardsortering"}\r
+            ducet{"Unicode-standardsorteringsrækkefølge"}\r
             eor{"europæisk sorteringsrækkefølge"}\r
             gb2312han{"sorteringsrækkefølge forkortet kinesisk - GB2312"}\r
             phonebook{"sorteringsrækkefølge i telefonbøger"}\r
@@ -838,7 +837,7 @@ da{
             arab{"hindu-arabiske tal"}\r
             arabext{"udvidede hindu-arabiske tal"}\r
             armn{"armenske tal"}\r
-            armnlow{"armenske tal i små bogstaver"}\r
+            armnlow{"armenske tal med små bogstaver"}\r
             bali{"Balinesiske tal"}\r
             beng{"bengali tal"}\r
             brah{"Brahmi-tal"}\r
@@ -850,7 +849,7 @@ da{
             fullwide{"tal i fuld bredde"}\r
             geor{"georgiske tal"}\r
             grek{"græske tal"}\r
-            greklow{"græske tal i små bogstaver"}\r
+            greklow{"græske tal med små bogstaver"}\r
             gujr{"gujarati tal"}\r
             guru{"gurmukhi tal"}\r
             hanidec{"kinesiske decimaltal"}\r
@@ -858,7 +857,7 @@ da{
             hansfin{"forenklede kinesiske finansielle tal"}\r
             hant{"traditionelle kinesiske tal"}\r
             hantfin{"traditionelle kinesiske finansielle tal"}\r
-            hebr{"hebræiske tal"}\r
+            hebr{"hebraiske tal"}\r
             java{"Javanesiske tal"}\r
             jpan{"japanske tal"}\r
             jpanfin{"japanske finansielle tal"}\r
@@ -874,12 +873,12 @@ da{
             mlym{"malayalamske tal"}\r
             mong{"Mongolske tal"}\r
             mtei{"Meetei Mayek-tal"}\r
-            mymr{"Myanmar tal"}\r
+            mymr{"Myanmar-tal"}\r
             mymrshan{"Myanmar Shan-tal"}\r
             native{"Nationale cifre"}\r
             nkoo{"N’Ko-tal"}\r
             olck{"Ol Chiki-tal"}\r
-            orya{"Oriya tal"}\r
+            orya{"oriya-tal"}\r
             osma{"Osmanya-tal"}\r
             roman{"romertal"}\r
             romanlow{"romertal med små bogstaver"}\r
@@ -929,6 +928,7 @@ da{
         KSCOR{"standardortografi"}\r
         LAUKIKA{"laukika"}\r
         LIPAW{"lipovaz"}\r
+        LUNA1918{"LUNA1918"}\r
         METELKO{"Metelko-alfabet"}\r
         MONOTON{"monotonisk"}\r
         NDYUKA{"Ndyuka-dialekt"}\r
@@ -937,15 +937,19 @@ da{
         NULIK{"moderne volapük"}\r
         OSOJS{"Oseacco-/Osojane-dialekt"}\r
         PAMAKA{"Pamaka-dialekt"}\r
+        PETR1708{"PETR1708"}\r
         PINYIN{"pinyin"}\r
         POLYTON{"polytonisk"}\r
         POSIX{"computer"}\r
+        PUTER{"PUTER"}\r
         REVISED{"revideret retskrivning"}\r
         RIGIK{"klassisk volapük"}\r
         ROZAJ{"Resi"}\r
+        RUMGR{"RUMGR"}\r
         SAAHO{"saho"}\r
         SCOTLAND{"skotsk standardengelsk"}\r
         SCOUSE{"scouse"}\r
+        SOLBA{"SOLBA"}\r
         SURMIRAN{"surmiran"}\r
         SURSILV{"sursilv"}\r
         SUTSILV{"sutsilv"}\r
@@ -958,7 +962,7 @@ da{
         VALLADER{"vallader"}\r
         WADEGILE{"Wade-Giles"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.65"}\r
     characterLabelPattern{\r
         all{"{0} – alle"}\r
         category-list{"{0}: {1}"}\r
index 5593714d88a6ef7038881a940d4b53db123c7b91..d3655d90d46b16ba1031826057ebfb54682c15f2 100644 (file)
@@ -51,7 +51,7 @@ de{
         aro{"Araona"}\r
         arp{"Arapaho"}\r
         arq{"Algerisches Arabisch"}\r
-        ars{"Nadschd-Arabisch"}\r
+        ars{"Arabisch (Nadschd)"}\r
         arw{"Arawak"}\r
         ary{"Marokkanisches Arabisch"}\r
         arz{"Ägyptisches Arabisch"}\r
@@ -165,16 +165,9 @@ de{
         el{"Griechisch"}\r
         elx{"Elamisch"}\r
         en{"Englisch"}\r
-        en_AU{"Australisches Englisch"}\r
-        en_CA{"Kanadisches Englisch"}\r
-        en_GB{"Britisches Englisch"}\r
-        en_US{"Amerikanisches Englisch"}\r
         enm{"Mittelenglisch"}\r
         eo{"Esperanto"}\r
         es{"Spanisch"}\r
-        es_419{"Lateinamerikanisches Spanisch"}\r
-        es_ES{"Europäisches Spanisch"}\r
-        es_MX{"Mexikanisches Spanisch"}\r
         esu{"Zentral-Alaska-Yupik"}\r
         et{"Estnisch"}\r
         eu{"Baskisch"}\r
@@ -191,8 +184,6 @@ de{
         fo{"Färöisch"}\r
         fon{"Fon"}\r
         fr{"Französisch"}\r
-        fr_CA{"Kanadisches Französisch"}\r
-        fr_CH{"Schweizer Französisch"}\r
         frc{"Cajun"}\r
         frm{"Mittelfranzösisch"}\r
         fro{"Altfranzösisch"}\r
@@ -214,7 +205,7 @@ de{
         gl{"Galicisch"}\r
         glk{"Gilaki"}\r
         gmh{"Mittelhochdeutsch"}\r
-        gn{"Guarani"}\r
+        gn{"Guaraní"}\r
         goh{"Althochdeutsch"}\r
         gom{"Goa-Konkani"}\r
         gon{"Gondi"}\r
@@ -460,8 +451,6 @@ de{
         pro{"Altprovenzalisch"}\r
         ps{"Paschtu"}\r
         pt{"Portugiesisch"}\r
-        pt_BR{"Brasilianisches Portugiesisch"}\r
-        pt_PT{"Europäisches Portugiesisch"}\r
         qu{"Quechua"}\r
         quc{"K’iche’"}\r
         qug{"Chimborazo Hochland-Quechua"}\r
@@ -641,8 +630,8 @@ de{
     }\r
     Languages%short{\r
         az{"Aserbaidschanisch"}\r
-        en_GB{"UK-Englisch"}\r
-        en_US{"US-Englisch"}\r
+        en_GB{"Englisch (GB)"}\r
+        en_US{"Englisch (USA)"}\r
     }\r
     Scripts{\r
         Afak{"Afaka"}\r
@@ -659,7 +648,7 @@ de{
         Blis{"Bliss-Symbole"}\r
         Bopo{"Bopomofo"}\r
         Brah{"Brahmi"}\r
-        Brai{"Blindenschrift"}\r
+        Brai{"Braille"}\r
         Bugi{"Buginesisch"}\r
         Buhd{"Buhid"}\r
         Cakm{"Chakma"}\r
@@ -1019,7 +1008,7 @@ de{
         VALENCIA{"Valencianisch"}\r
         WADEGILE{"Wade-Giles"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.91"}\r
     characterLabelPattern{\r
         all{"{0} — Alle"}\r
         category-list{"{0}: {1}"}\r
index 7c706847df1b33093f9ecfbfd6a389a875e59cba..44aa5949d2e43ccfce78b684359d1ff3d0ed2b58 100644 (file)
@@ -16,5 +16,5 @@ de_AT{
         sh{"Serbokroatisch"}\r
         szl{"Schlesisch"}\r
     }\r
-    Version{"2.1.38.39"}\r
+    Version{"2.1.43.65"}\r
 }\r
index 44f06205a1c4468426415acf96d9f55235f2566b..0438948eb1c5db266331631fd55ff1608ee9803f 100644 (file)
@@ -9,6 +9,7 @@ de_CH{
     Languages{\r
         ace{"Aceh-Sprache"}\r
         ach{"Acholi-Sprache"}\r
+        ars{"Nadschd-Arabisch"}\r
         bas{"Basaa-Sprache"}\r
         be{"Weissrussisch"}\r
         bik{"Bikol-Sprache"}\r
@@ -34,5 +35,5 @@ de_CH{
             ussystem{"US Mass-System"}\r
         }\r
     }\r
-    Version{"2.1.39.37"}\r
+    Version{"2.1.44.50"}\r
 }\r
index 4ffdab7fd6ab7966e1d503845f6910b71f045d5e..0850153d58d1df1b1b67c78e8e087077cd21254b 100644 (file)
@@ -378,7 +378,7 @@ dsb{
             tibt{"tibetske cyfry"}\r
         }\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.41.34"}\r
     codePatterns{\r
         language{"Rěc: {0}"}\r
         script{"Pismo: {0}"}\r
index a36b0e11621bfb7cd3818573a30a920ac68c9f9d..535dd5df5ab0ed74a2d70c36a960b147d36ee4f0 100644 (file)
@@ -234,7 +234,7 @@ dz{
             tibt{"ང་བཅས་ཀྱི་ཨང་ཡིག"}\r
         }\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.41.34"}\r
     codePatterns{\r
         language{"ཁ་སྐད་: {0}"}\r
         script{"ཡིག་གཟུགས་: {0}"}\r
index 01dd9a552f0c48fed72a61e2b7ff1f901cb7281c..3efdb55a01b0e90ea63cefdfe329e57a1ec11787 100644 (file)
@@ -299,7 +299,7 @@ ee{
             tibt{"tibet digitwo"}\r
         }\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.88"}\r
     codePatterns{\r
         language{"gbegbɔgblɔ {0}"}\r
         script{"gbeŋɔŋlɔ {0}"}\r
index 5a1db44eb41f99a581930e60bd719decefe4dcab..9af500dffd8cb2974766908b7b79d7e5090f8c9e 100644 (file)
@@ -24,7 +24,7 @@ el{
     Languages{\r
         aa{"Αφάρ"}\r
         ab{"Αμπχαζικά"}\r
-        ace{"Î\91Ï\87ινίζ"}\r
+        ace{"Î\91Ï\84Ï\83ινιζικά"}\r
         ach{"Ακολί"}\r
         ada{"Αντάνγκμε"}\r
         ady{"Αντιγκέα"}\r
@@ -68,7 +68,7 @@ el{
         bfd{"Μπαφούτ"}\r
         bg{"Βουλγαρικά"}\r
         bgn{"Δυτικά Μπαλοχικά"}\r
-        bho{"Μποζπούρι"}\r
+        bho{"Μπότζπουρι"}\r
         bi{"Μπισλάμα"}\r
         bik{"Μπικόλ"}\r
         bin{"Μπίνι"}\r
@@ -101,10 +101,10 @@ el{
         chk{"Τσουκίζι"}\r
         chm{"Μάρι"}\r
         chn{"Ιδιωματικά Σινούκ"}\r
-        cho{"Τσοκτάου"}\r
+        cho{"Τσόκτο"}\r
         chp{"Τσίπιουαν"}\r
         chr{"Τσερόκι"}\r
-        chy{"Σεγιέν"}\r
+        chy{"ΤÏ\83εγιέν"}\r
         ckb{"Κουρδικά Σοράνι"}\r
         co{"Κορσικανικά"}\r
         cop{"Κοπτικά"}\r
@@ -304,7 +304,7 @@ el{
         lun{"Λούντα"}\r
         luo{"Λούο"}\r
         lus{"Μίζο"}\r
-        luy{"Î\9bοÏ\85Ï\87ία"}\r
+        luy{"Î\9bοÏ\8dÏ\87ια"}\r
         lv{"Λετονικά"}\r
         mad{"Μαντουρίζ"}\r
         maf{"Μάφα"}\r
@@ -344,7 +344,7 @@ el{
         mwr{"Μαργουάρι"}\r
         my{"Βιρμανικά"}\r
         mye{"Μιένε"}\r
-        myv{"Έρζυα"}\r
+        myv{"Έρζια"}\r
         mzn{"Μαζαντεράνι"}\r
         na{"Ναούρου"}\r
         nap{"Ναπολιτανικά"}\r
@@ -620,7 +620,7 @@ el{
         Kore{"Κορεατικό"}\r
         Kthi{"Καϊθί"}\r
         Lana{"Λάννα"}\r
-        Laoo{"Î\9bάοÏ\82"}\r
+        Laoo{"Î\9bαοÏ\84ινÏ\8c"}\r
         Latf{"Φράκτουρ Λατινικό"}\r
         Latg{"Γαελικό Λατινικό"}\r
         Latn{"Λατινικό"}\r
@@ -882,7 +882,7 @@ el{
         VALENCIA{"Βαλενθιανά"}\r
         WADEGILE{"Εκλατινισμένα Γουάντ-Γκιλς"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.65"}\r
     characterLabelPattern{\r
         all{"{0} — όλα"}\r
         category-list{"{0}: {1}"}\r
index 95f7dfe3f12fec7ed27da6d2652d22517b6be3ee..e2bde6cd9b861683b3f7c30b579ec152168abf5b 100644 (file)
@@ -952,6 +952,7 @@ en{
             ascii{"To ASCII"}\r
             casefold{"To Casefolded"}\r
             charname{"To Unicode Character Names"}\r
+            digit{"To Digit Form Of Accent"}\r
             fcc{"To Unicode FCC"}\r
             fcd{"To Unicode FCD"}\r
             fwidth{"To Fullwidth"}\r
@@ -968,6 +969,7 @@ en{
             remove{"To Empty String"}\r
             title{"To Titlecase"}\r
             upper{"To Uppercase"}\r
+            zawgyi{"To Zawgyi Myanmar Encoding"}\r
         }\r
         em{\r
             default{"Use Default Presentation For Emoji Characters"}\r
@@ -1056,14 +1058,23 @@ en{
             alaloc{"US ALA-LOC Transliteration"}\r
             bgn{"US BGN Transliteration"}\r
             buckwalt{"Buckwalter Arabic Transliteration"}\r
+            c11{"Hex Transforms Using C11 Syntax"}\r
+            css{"Hex Transforms Using CSS Syntax"}\r
             din{"German DIN Transliteration"}\r
             gost{"CIS GOST Transliteration"}\r
             iso{"ISO Transliteration"}\r
+            java{"Hex Transforms Using Java Syntax"}\r
             mcst{"Korean MCST Transliteration"}\r
             mns{"Mongolian National Standard Transliteration"}\r
+            percent{"Hex Transforms Using Percent Syntax"}\r
+            perl{"Hex Transforms Using Perl Syntax"}\r
+            plain{"Hex Transforms With No Surrounding Syntax"}\r
             prprname{"Personal Name Transliteration Variant"}\r
             satts{"Standard Arabic Technical Transliteration"}\r
             ungegn{"UN GEGN Transliteration"}\r
+            unicode{"Hex Transforms Using Unicode Syntax"}\r
+            xml{"Hex Transforms Using XML Syntax"}\r
+            xml10{"Hex Transforms Using XML Decimal Syntax"}\r
         }\r
         ms{\r
             metric{"Metric System"}\r
@@ -1236,7 +1247,7 @@ en{
         VALENCIA{"Valencian"}\r
         WADEGILE{"Wade-Giles Romanization"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.91"}\r
     characterLabelPattern{\r
         all{"{0} — all"}\r
         category-list{"{0}: {1}"}\r
index f0bb1208f56fcb942194a968e1deb94d16d3f488..c03c097f13cb825c1f99c2f6d6bc0cc6bbea94e5 100644 (file)
@@ -2,6 +2,7 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 en_001{\r
     Keys{\r
+        colCaseLevel{"Case-Sensitive Sorting"}\r
         colNormalization{"Normalised Sorting"}\r
     }\r
     Types{\r
@@ -9,6 +10,22 @@ en_001{
             no{"Sort Without Normalisation"}\r
             yes{"Sort Unicode Normalised"}\r
         }\r
+        hc{\r
+            h11{"12-Hour System (0–11)"}\r
+            h12{"12-Hour System (1–12)"}\r
+            h23{"24-Hour System (0–23)"}\r
+            h24{"24-Hour System (1–24)"}\r
+        }\r
+    }\r
+    Version{"2.1.44.18"}\r
+    characterLabelPattern{\r
+        all{"{0} – all"}\r
+        compatibility{"{0} – compatibility"}\r
+        enclosed{"{0} – enclosed"}\r
+        extended{"{0} – extended"}\r
+        historic{"{0} – historic"}\r
+        miscellaneous{"{0} – miscellaneous"}\r
+        other{"{0} – other"}\r
+        scripts{"scripts – {0}"}\r
     }\r
-    Version{"2.1.38.69"}\r
 }\r
index 71b6b1d84ea68d0d02b0a2785df541622a5a3f57..aaa7a362c6365f5a032b8f30b32fdfb74b000198 100644 (file)
@@ -11,6 +11,9 @@ en_AU{
     }\r
     Scripts{\r
         Beng{"Bengali"}\r
+        Cham{"Cham"}\r
+        Modi{"Modi"}\r
+        Thai{"Thai"}\r
     }\r
     Types{\r
         calendar{\r
@@ -18,5 +21,5 @@ en_AU{
             ethiopic{"Ethiopian Calendar"}\r
         }\r
     }\r
-    Version{"2.1.38.73"}\r
+    Version{"2.1.44.18"}\r
 }\r
index 79bbbecd2ccb6e50aed016ac4e504e2056c52ae1..c9f5e1b4bfffdd6c677b54b4045abf45e05ab534 100644 (file)
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 en_BE{\r
     %%Parent{"en_001"}\r
-    Version{"2.1.38.69"}\r
+    Version{"2.1.44.18"}\r
 }\r
index 404bc9948188400bc767e9c26f86a3871892f861..5312e88a93c4152aaf29ed4af6ab2ff2a03ef6a2 100644 (file)
@@ -21,5 +21,5 @@ en_CA{
             upper{"To Upper Case"}\r
         }\r
     }\r
-    Version{"2.1.38.73"}\r
+    Version{"2.1.44.88"}\r
 }\r
index 763d7d8c40e0ac781791c4640f7551cf9f58c26a..d4a5ccada929b3e9419bf1a32756ede9788f6267 100644 (file)
@@ -2,32 +2,8 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 en_GB{\r
     %%Parent{"en_001"}\r
-    Keys{\r
-        colCaseLevel{"Case-Sensitive Sorting"}\r
-    }\r
     Languages{\r
         nds_NL{"West Low German"}\r
     }\r
-    Scripts{\r
-        Thai{"Thai"}\r
-    }\r
-    Types{\r
-        hc{\r
-            h11{"12-Hour System (0–11)"}\r
-            h12{"12-Hour System (1–12)"}\r
-            h23{"24-Hour System (0–23)"}\r
-            h24{"24-Hour System (1–24)"}\r
-        }\r
-    }\r
-    Version{"2.1.38.73"}\r
-    characterLabelPattern{\r
-        all{"{0} – all"}\r
-        compatibility{"{0} – compatibility"}\r
-        enclosed{"{0} – enclosed"}\r
-        extended{"{0} – extended"}\r
-        historic{"{0} – historic"}\r
-        miscellaneous{"{0} – miscellaneous"}\r
-        other{"{0} – other"}\r
-        scripts{"scripts – {0}"}\r
-    }\r
+    Version{"2.1.44.18"}\r
 }\r
index e057509da41e0ec6ff27336478410f6d0a4d1789..422f3b6a6dad757046e1ffd6b04e8f7a3951cfac 100644 (file)
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 en_HK{\r
     %%Parent{"en_001"}\r
-    Version{"2.1.38.69"}\r
+    Version{"2.1.43.65"}\r
 }\r
index 56507ab1caec75b84a939d098c498d4e37c06c11..1b0d83feb5be8a292a2db02cdfb58ff8ef3942f7 100644 (file)
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 en_IE{\r
     %%Parent{"en_001"}\r
-    Version{"2.1.38.69"}\r
+    Version{"2.1.44.18"}\r
 }\r
index a09576cddf4211f9c340ed63f1ba9245b96b45e4..94069123ea88ff41e0aeb870ee39accbe2d38ada 100644 (file)
@@ -15,5 +15,5 @@ en_IN{
             orya{"Oriya Digits"}\r
         }\r
     }\r
-    Version{"2.1.38.73"}\r
+    Version{"2.1.44.18"}\r
 }\r
index 47beda639122e92c68191e8de9aada265bbf52f3..275273173a875074ca80e8daeb04440c52d4bfd4 100644 (file)
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 en_JM{\r
     %%Parent{"en_001"}\r
-    Version{"2.1.38.69"}\r
+    Version{"2.1.44.18"}\r
 }\r
index 0f1eb7372c1919a75ed2af9096fb8b8809f602cc..9f3250ea57466fba3d33ae193ff3f6f0c3771ad8 100644 (file)
@@ -5,5 +5,5 @@ en_NZ{
     Languages{\r
         mi{"Māori"}\r
     }\r
-    Version{"2.1.38.73"}\r
+    Version{"2.1.44.88"}\r
 }\r
index 3c7e040a21a1efab7e5594476f58671bd11db200..14f8030a146afd6f117b5a8dbbd3b94ddf5c110f 100644 (file)
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 en_ZW{\r
     %%Parent{"en_001"}\r
-    Version{"2.1.38.69"}\r
+    Version{"2.1.44.18"}\r
 }\r
index 33aa528c783ab63e967f4cf3a7cfa2393aeeb02d..40a99505c93e87d0ff034b212e5d0f3c6856b0e9 100644 (file)
@@ -372,7 +372,7 @@ es{
         non{"nórdico antiguo"}\r
         nqo{"n’ko"}\r
         nr{"ndebele meridional"}\r
-        nso{"sesotho septentrional"}\r
+        nso{"sotho septentrional"}\r
         nus{"nuer"}\r
         nv{"navajo"}\r
         nwc{"newari clásico"}\r
@@ -466,7 +466,7 @@ es{
         srr{"serer"}\r
         ss{"suazi"}\r
         ssy{"saho"}\r
-        st{"sesotho meridional"}\r
+        st{"sotho meridional"}\r
         su{"sundanés"}\r
         suk{"sukuma"}\r
         sus{"susu"}\r
@@ -851,7 +851,7 @@ es{
         VALENCIA{"Valenciano"}\r
         WADEGILE{"Romanización Wade-Giles"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.88"}\r
     characterLabelPattern{\r
         all{"{0} — Todo"}\r
         category-list{"{0}: {1}"}\r
index 9e35f650a840c19a5afa0fb91908ad6c2ca36375..663a71d4ca6704883112bf9f92ef7b6d8e23e292 100644 (file)
@@ -23,9 +23,11 @@ es_419{
         gu{"gujarati"}\r
         ht{"haitiano"}\r
         kbd{"cabardiano"}\r
+        krc{"karachái-bálkaro"}\r
         lo{"laosiano"}\r
         luo{"luo"}\r
         nr{"ndebele del sur"}\r
+        nso{"sesotho del norte"}\r
         prg{"prusiano antiguo"}\r
         rm{"retorrománico"}\r
         shu{"árabe (Chad)"}\r
@@ -35,10 +37,12 @@ es_419{
         sw_CD{"swahili (Congo)"}\r
         syr{"siríaco"}\r
         tet{"tetun"}\r
+        tyv{"tuvano"}\r
         tzm{"tamazight del Marruecos Central"}\r
         vai{"vai"}\r
         wal{"walamo"}\r
         wuu{"wu"}\r
+        xal{"calmuco"}\r
         zun{"zuni"}\r
     }\r
     Languages%short{\r
@@ -96,7 +100,7 @@ es_419{
             wara{"dígitos en Warang Citi"}\r
         }\r
     }\r
-    Version{"2.1.38.39"}\r
+    Version{"2.1.43.65"}\r
     characterLabelPattern{\r
         enclosed{"{0} — Adjunto"}\r
         extended{"{0} — Extendido"}\r
index 69704618745daa30210c661df505937d80601c21..a9920dc3463117f492ecb8cb578d8750cd4b48d7 100644 (file)
@@ -18,5 +18,5 @@ es_AR{
         wo{"wolof"}\r
         zgh{"tamazight marroquí estándar"}\r
     }\r
-    Version{"2.1.38.39"}\r
+    Version{"2.1.43.65"}\r
 }\r
index 565c6004420e24a9ea269c5af681b68d5c8c0900..08dc805b26d53ea776330dc3636ab559e984973c 100644 (file)
@@ -18,5 +18,5 @@ es_CO{
         wo{"wolof"}\r
         zgh{"tamazight marroquí estándar"}\r
     }\r
-    Version{"2.1.38.39"}\r
+    Version{"2.1.43.65"}\r
 }\r
index 8071b6f755a3d4323c0690f2cd00fbb7526b1a21..8e77a178084cb71744f3bfd476f6cc24159653c6 100644 (file)
@@ -12,8 +12,10 @@ es_MX{
         arp{"arapaho"}\r
         bas{"basa"}\r
         bax{"bamun"}\r
-        bho{"bhojpuri"}\r
+        bho{"bhoshpuri"}\r
         bla{"siksika"}\r
+        bua{"buriat"}\r
+        de_AT{"alemán austriaco"}\r
         dum{"neerlandés medieval"}\r
         enm{"inglés medieval"}\r
         eu{"euskera"}\r
@@ -22,9 +24,12 @@ es_MX{
         gmh{"alemán de la alta edad media"}\r
         grc{"griego antiguo"}\r
         hak{"kejia (China)"}\r
+        hil{"hiligainón"}\r
         hsn{"xiang (China)"}\r
+        inh{"ingusetio"}\r
         kbd{"kabardiano"}\r
-        krc{"karachay-balkar"}\r
+        krc{"karachái bálkaro"}\r
+        kum{"cumuco"}\r
         lo{"lao"}\r
         lus{"lushai"}\r
         mga{"irlandés medieval"}\r
@@ -57,7 +62,7 @@ es_MX{
     Scripts{\r
         Hanb{"hanb"}\r
         Mlym{"malayálam"}\r
-        Telu{"telugú"}\r
+        Telu{"telegu"}\r
     }\r
     Types{\r
         calendar{\r
@@ -112,7 +117,7 @@ es_MX{
             tibt{"Dígitos en tibetano"}\r
         }\r
     }\r
-    Version{"2.1.38.73"}\r
+    Version{"2.1.44.5"}\r
     characterLabelPattern{\r
         historic{"{0} — Históricos"}\r
         miscellaneous{"{0} — Varios"}\r
index d210966776d0d2e5e2107f10336ca2bbdbc83b83..bc88377df1269bfa465c3f493ed2ddee4d8d11ab 100644 (file)
@@ -18,5 +18,5 @@ es_PY{
         wo{"wolof"}\r
         zgh{"tamazight marroquí estándar"}\r
     }\r
-    Version{"2.1.38.39"}\r
+    Version{"2.1.43.65"}\r
 }\r
index 1f207ebf27e54540e371f7e639018f67b314abad..e6b927e188c454eeba3ad858e5194d8fe6780c1e 100644 (file)
@@ -13,13 +13,18 @@ es_US{
         bua{"buriat"}\r
         dum{"neerlandés medieval"}\r
         enm{"inglés medieval"}\r
+        eu{"euskera"}\r
         frm{"francés medieval"}\r
+        gan{"gan (China)"}\r
         gmh{"alemán de la alta edad media"}\r
         grc{"griego antiguo"}\r
         gu{"gurayatí"}\r
         hak{"hak"}\r
+        hsn{"xiang (China)"}\r
+        ht{"criollo haitiano"}\r
         kbd{"kabardiano"}\r
         krc{"karachay-balkar"}\r
+        lo{"lao"}\r
         lus{"lushai"}\r
         mga{"irlandés medieval"}\r
         nan{"nan"}\r
@@ -37,6 +42,7 @@ es_US{
         tet{"tetún"}\r
         tn{"setchwana"}\r
         tyv{"tuviniano"}\r
+        tzm{"tamazight del Atlas Central"}\r
         wo{"wolof"}\r
         wuu{"wuu"}\r
         xal{"kalmyk"}\r
@@ -64,7 +70,7 @@ es_US{
             laoo{"números en lao"}\r
         }\r
     }\r
-    Version{"2.1.38.73"}\r
+    Version{"2.1.43.65"}\r
     characterLabelPattern{\r
         historic{"{0} — Históricos"}\r
         miscellaneous{"{0} — Varios"}\r
index 93c3e614731e6221cfc0e9167597c71f7c8af8d5..c68a77d63a3ad3040e20adea17a07b7e4fd0b086 100644 (file)
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 es_UY{\r
     %%Parent{"es_419"}\r
-    Version{"2.1.38.39"}\r
+    Version{"2.1.44.79"}\r
 }\r
index 6d5a29c271bdc3c8c836e663df0de5368e4abf8f..252dc33f79b38b7cef07d62011ad0fcdf63a0892 100644 (file)
@@ -18,5 +18,5 @@ es_VE{
         wo{"wolof"}\r
         zgh{"tamazight marroquí estándar"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.41.45"}\r
 }\r
index 2f64f84acaf0a59df60413b99da16b5be2da4421..f3a9148efe53c6ad69b500f503add893e78b9fda 100644 (file)
@@ -1036,7 +1036,7 @@ et{
         VALENCIA{"valentsia"}\r
         WADEGILE{"Wade’i-Gilesi latinisatsioon"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.91"}\r
     characterLabelPattern{\r
         all{"{0} – kõik"}\r
         category-list{"{0}: {1}"}\r
index ab8acae62b38de96dfe94ec388bcb3a9c021ac1c..282790cfdd9d048f5ae1cd3c0a8a3a724f77ecba 100644 (file)
@@ -28,7 +28,7 @@ eu{
         ach{"acholiera"}\r
         ada{"adangmera"}\r
         ady{"adigera"}\r
-        af{"afrikaansa"}\r
+        af{"afrikaans"}\r
         agq{"aghemera"}\r
         ain{"ainuera"}\r
         ak{"akanera"}\r
@@ -39,8 +39,8 @@ eu{
         anp{"angikera"}\r
         ar{"arabiera"}\r
         ar_001{"arabiera moderno estandarra"}\r
-        arn{"maputxea"}\r
-        arp{"arapahoa"}\r
+        arn{"maputxe"}\r
+        arp{"arapaho"}\r
         as{"assamera"}\r
         asa{"asua"}\r
         ast{"asturiera"}\r
@@ -48,7 +48,7 @@ eu{
         awa{"awadhiera"}\r
         ay{"aimara"}\r
         az{"azerbaijanera"}\r
-        ba{"bashkirrera"}\r
+        ba{"baxkirera"}\r
         ban{"baliera"}\r
         bas{"basaa"}\r
         be{"bielorrusiera"}\r
@@ -67,8 +67,8 @@ eu{
         bs{"bosniera"}\r
         bug{"buginera"}\r
         byn{"bilena"}\r
-        ca{"katalana"}\r
-        ce{"txetxeniera"}\r
+        ca{"katalan"}\r
+        ce{"txetxenera"}\r
         ceb{"cebuera"}\r
         cgg{"chigera"}\r
         ch{"chamorrera"}\r
@@ -79,18 +79,18 @@ eu{
         chy{"cheyennera"}\r
         ckb{"sorania"}\r
         co{"korsikera"}\r
-        crs{"seselwa frantses-kreolera"}\r
+        crs{"Seychelleetako kreolera"}\r
         cs{"txekiera"}\r
-        cu{"Elizako eslaviera"}\r
-        cv{"chuvashera"}\r
-        cy{"galesa"}\r
+        cu{"elizako eslaviera"}\r
+        cv{"txuvaxera"}\r
+        cy{"gales"}\r
         da{"daniera"}\r
         dak{"dakotera"}\r
         dar{"dargvera"}\r
         dav{"taitera"}\r
-        de{"alemana"}\r
-        de_AT{"Austriako alemana"}\r
-        de_CH{"aleman garaia (Suitza)"}\r
+        de{"aleman"}\r
+        de_AT{"Austriako aleman"}\r
+        de_CH{"Suitzako aleman garai"}\r
         dgr{"dogribera"}\r
         dje{"zarma"}\r
         dsb{"behe-sorabiera"}\r
@@ -104,12 +104,12 @@ eu{
         efi{"efikera"}\r
         eka{"akajuka"}\r
         el{"greziera"}\r
-        en{"ingelesa"}\r
-        en_AU{"Australiako ingelesa"}\r
-        en_CA{"Kanadako ingelesa"}\r
-        en_GB{"Britainia Handiko ingelesa"}\r
-        en_US{"AEBko ingelesa"}\r
-        eo{"esperantoa"}\r
+        en{"ingeles"}\r
+        en_AU{"Australiako ingeles"}\r
+        en_CA{"Kanadako ingeles"}\r
+        en_GB{"Britania Handiko ingeles"}\r
+        en_US{"AEBko ingeles"}\r
+        eo{"esperanto"}\r
         es{"espainiera"}\r
         es_419{"Latinoamerikako espainiera"}\r
         es_ES{"espainiera (Europa)"}\r
@@ -124,21 +124,21 @@ eu{
         fj{"fijiera"}\r
         fo{"faroera"}\r
         fon{"fona"}\r
-        fr{"frantsesa"}\r
-        fr_CA{"Kanadako frantsesa"}\r
-        fr_CH{"Suitzako frantsesa"}\r
+        fr{"frantses"}\r
+        fr_CA{"Kanadako frantses"}\r
+        fr_CH{"Suitzako frantses"}\r
         fur{"friuliera"}\r
         fy{"frisiera"}\r
-        ga{"gaelikoa"}\r
+        ga{"gaeliko"}\r
         gaa{"ga"}\r
         gag{"gagauzera"}\r
-        gd{"Eskoziako gaelikoa"}\r
+        gd{"Eskoziako gaeliko"}\r
         gez{"ge’ez"}\r
         gil{"gilbertera"}\r
         gl{"galiziera"}\r
         gn{"guaraniera"}\r
         gor{"gorontaloa"}\r
-        gsw{"alemana (Suitza)"}\r
+        gsw{"Suitzako aleman"}\r
         gu{"gujaratera"}\r
         guz{"gusiiera"}\r
         gv{"manxera"}\r
@@ -146,8 +146,8 @@ eu{
         ha{"hausa"}\r
         haw{"hawaiiera"}\r
         he{"hebreera"}\r
-        hi{"hindia"}\r
-        hil{"hiligainona"}\r
+        hi{"hindi"}\r
+        hil{"hiligainon"}\r
         hmn{"hmong"}\r
         hr{"kroaziera"}\r
         hsb{"goi-sorabiera"}\r
@@ -155,7 +155,7 @@ eu{
         hu{"hungariera"}\r
         hup{"hupera"}\r
         hy{"armeniera"}\r
-        hz{"herera"}\r
+        hz{"hereroera"}\r
         ia{"interlingua"}\r
         iba{"ibanera"}\r
         ibb{"ibibioera"}\r
@@ -168,7 +168,7 @@ eu{
         io{"ido"}\r
         is{"islandiera"}\r
         it{"italiera"}\r
-        iu{"inuitera"}\r
+        iu{"inuktitut"}\r
         ja{"japoniera"}\r
         jbo{"lojbanera"}\r
         jgo{"ngomba"}\r
@@ -182,7 +182,7 @@ eu{
         kbd{"kabardiera"}\r
         kcg{"kataba"}\r
         kde{"makondera"}\r
-        kea{"Cabo Verdeko kreola"}\r
+        kea{"Cabo Verdeko kreolera"}\r
         kfo{"koroa"}\r
         kg{"kikongoa"}\r
         kha{"kashia"}\r
@@ -213,8 +213,8 @@ eu{
         kv{"komiera"}\r
         kw{"kornubiera"}\r
         ky{"kirgizera"}\r
-        la{"latina"}\r
-        lad{"ladinera"}\r
+        la{"latin"}\r
+        lad{"ladino"}\r
         lag{"langiera"}\r
         lb{"luxenburgera"}\r
         lez{"lezgiera"}\r
@@ -242,7 +242,7 @@ eu{
         men{"mendeera"}\r
         mer{"meruera"}\r
         mfe{"Mauritaniako kreolera"}\r
-        mg{"malgaxea"}\r
+        mg{"malgaxe"}\r
         mgh{"makhuwa-meettoera"}\r
         mgo{"metera"}\r
         mh{"marshallera"}\r
@@ -268,18 +268,18 @@ eu{
         na{"nauruera"}\r
         nap{"napoliera"}\r
         naq{"namera"}\r
-        nb{"bokmala (Norvegia)"}\r
+        nb{"bokmål (norvegiera)"}\r
         nd{"iparraldeko ndebeleera"}\r
         nds_NL{"behe-saxoiera"}\r
         ne{"nepalera"}\r
         new{"newarera"}\r
         ng{"ndongera"}\r
-        nia{"niasa"}\r
-        niu{"niuera"}\r
+        nia{"niasera"}\r
+        niu{"niueera"}\r
         nl{"nederlandera"}\r
         nl_BE{"flandriera"}\r
         nmg{"kwasiera"}\r
-        nn{"nynorsk norvegiera"}\r
+        nn{"nynorsk (norvegiera)"}\r
         nnh{"ngiemboonera"}\r
         no{"norvegiera"}\r
         nog{"nogaiera"}\r
@@ -287,7 +287,7 @@ eu{
         nr{"hegoaldeko ndebelera"}\r
         nso{"pediera"}\r
         nus{"nuerera"}\r
-        nv{"navahoera"}\r
+        nv{"navajoera"}\r
         ny{"chewera"}\r
         nyn{"ankolera"}\r
         oc{"okzitaniera"}\r
@@ -297,15 +297,15 @@ eu{
         pa{"punjabera"}\r
         pag{"pangasinanera"}\r
         pam{"pampangera"}\r
-        pap{"papiamentoa"}\r
+        pap{"papiamento"}\r
         pau{"palauera"}\r
         pcm{"Nigeriako pidgina"}\r
         pl{"poloniera"}\r
         prg{"prusiera"}\r
         ps{"paxtuera"}\r
-        pt{"portugesa"}\r
-        pt_BR{"Brasilgo portugesa"}\r
-        pt_PT{"portugesa (Europa)"}\r
+        pt{"portuges"}\r
+        pt_BR{"Brasilgo portuges"}\r
+        pt_PT{"Europako portuges"}\r
         qu{"kitxua"}\r
         quc{"quicheera"}\r
         rap{"rapa nui"}\r
@@ -317,11 +317,11 @@ eu{
         rof{"romboera"}\r
         root{"erroa"}\r
         ru{"errusiera"}\r
-        rup{"aromania"}\r
+        rup{"aromaniera"}\r
         rw{"kinyaruanda"}\r
         rwk{"rwaera"}\r
-        sa{"sanskritoa"}\r
-        sad{"sandawea"}\r
+        sa{"sanskrito"}\r
+        sad{"sandaweera"}\r
         sah{"sakhera"}\r
         saq{"samburuera"}\r
         sat{"santalera"}\r
@@ -330,11 +330,11 @@ eu{
         sc{"sardiniera"}\r
         scn{"siziliera"}\r
         sco{"eskoziera"}\r
-        sd{"sindhia"}\r
+        sd{"sindhi"}\r
         se{"iparraldeko samiera"}\r
         seh{"senera"}\r
         ses{"koyraboro sennia"}\r
-        sg{"sangoa"}\r
+        sg{"sango"}\r
         sh{"serbokroaziera"}\r
         shi{"tachelhita"}\r
         shn{"shanera"}\r
@@ -343,8 +343,8 @@ eu{
         sl{"esloveniera"}\r
         sm{"samoera"}\r
         sma{"hegoaldeko samiera"}\r
-        smj{"lule samiera"}\r
-        smn{"inari-samiera"}\r
+        smj{"Luleko samiera"}\r
+        smn{"Inariko samiera"}\r
         sms{"skolten samiera"}\r
         sn{"shonera"}\r
         snk{"soninkera"}\r
@@ -361,22 +361,22 @@ eu{
         sw{"swahilia"}\r
         sw_CD{"Kongoko swahilia"}\r
         swb{"komoreera"}\r
-        syr{"asiriera"}\r
+        syr{"siriera"}\r
         ta{"tamilera"}\r
-        te{"telugua"}\r
+        te{"telugu"}\r
         tem{"temnea"}\r
         teo{"tesoera"}\r
-        tet{"tetuma"}\r
+        tet{"tetum"}\r
         tg{"tajikera"}\r
         th{"thailandiera"}\r
-        ti{"tigriñera"}\r
+        ti{"tigrinyera"}\r
         tig{"tigrea"}\r
         tk{"turkmenera"}\r
         tl{"tagalog"}\r
         tlh{"klingonera"}\r
         tn{"tswanera"}\r
         to{"tongera"}\r
-        tpi{"tok pisina"}\r
+        tpi{"tok pisin"}\r
         tr{"turkiera"}\r
         trv{"tarokoa"}\r
         ts{"tsongera"}\r
@@ -384,22 +384,22 @@ eu{
         tum{"tumbukera"}\r
         tvl{"tuvaluera"}\r
         tw{"twia"}\r
-        twq{"tasawaqa"}\r
+        twq{"tasawaq"}\r
         ty{"tahitiera"}\r
         tyv{"tuvera"}\r
         tzm{"Erdialdeko Atlaseko amazigera"}\r
         udm{"udmurtera"}\r
         ug{"uigurrera"}\r
         uk{"ukrainera"}\r
-        umb{"umbunduera"}\r
+        umb{"umbundu"}\r
         und{"hizkuntza ezezaguna"}\r
-        ur{"urdua"}\r
+        ur{"urdu"}\r
         uz{"uzbekera"}\r
         vai{"vaiera"}\r
         ve{"vendera"}\r
         vi{"vietnamera"}\r
-        vo{"volapüka"}\r
-        vun{"vunjoa"}\r
+        vo{"volapük"}\r
+        vun{"vunjo"}\r
         wa{"waloiera"}\r
         wae{"walserera"}\r
         wal{"welayta"}\r
@@ -410,7 +410,7 @@ eu{
         xog{"sogera"}\r
         yav{"jangbenera"}\r
         ybb{"yemba"}\r
-        yi{"yiddisha"}\r
+        yi{"yiddish"}\r
         yo{"jorubera"}\r
         yue{"kantonera"}\r
         zgh{"amazigera estandarra"}\r
@@ -420,34 +420,34 @@ eu{
         zu{"zuluera"}\r
         zun{"zuñia"}\r
         zxx{"ez dago eduki linguistikorik"}\r
-        zza{"zazakia"}\r
+        zza{"zazera"}\r
     }\r
     Languages%short{\r
         az{"azerbaijanera"}\r
-        en_GB{"Erresuma Batuko ingelesa"}\r
+        en_GB{"Erresuma Batuko ingeles"}\r
         en_US{"AEBko ingelesa"}\r
     }\r
     Scripts{\r
         Arab{"arabiarra"}\r
         Armn{"armeniarra"}\r
-        Beng{"bengaliarra"}\r
+        Beng{"bengalarra"}\r
         Bopo{"bopomofoa"}\r
         Brai{"braillea"}\r
         Cyrl{"zirilikoa"}\r
         Deva{"devanagaria"}\r
         Ethi{"etiopiarra"}\r
         Geor{"georgiarra"}\r
-        Grek{"greziarra"}\r
-        Gujr{"gujaratera"}\r
+        Grek{"grekoa"}\r
+        Gujr{"gujaratarra"}\r
         Guru{"gurmukhia"}\r
         Hanb{"hänera"}\r
         Hang{"hangula"}\r
         Hani{"idazkera txinatarra"}\r
         Hans{"sinplifikatua"}\r
         Hant{"tradizionala"}\r
-        Hebr{"hebreera"}\r
+        Hebr{"hebrearra"}\r
         Hira{"hiragana"}\r
-        Hrkt{"silaba japoniarrak"}\r
+        Hrkt{"silabario japoniarrak"}\r
         Jamo{"jamo-bihurketa"}\r
         Jpan{"japoniarra"}\r
         Kana{"katakana"}\r
@@ -455,8 +455,8 @@ eu{
         Knda{"kanadarra"}\r
         Kore{"korearra"}\r
         Laoo{"laosarra"}\r
-        Latn{"latina"}\r
-        Mlym{"malayalamera"}\r
+        Latn{"latinoa"}\r
+        Mlym{"malayalamarra"}\r
         Mong{"mongoliarra"}\r
         Mymr{"birmaniarra"}\r
         Orya{"oriyarra"}\r
@@ -567,8 +567,8 @@ eu{
             strict{"Lerro-jauziaren estilo zorrotza"}\r
         }\r
         m0{\r
-            bgn{"BGN bihurketa"}\r
-            ungegn{"UNGEGN bihurketa"}\r
+            bgn{"US BGN transliterazioa"}\r
+            ungegn{"UN GEGN transliterazioa"}\r
         }\r
         ms{\r
             metric{"Sistema metrikoa"}\r
@@ -580,7 +580,7 @@ eu{
             arabext{"Digitu arabiar-hindiko hedatuak"}\r
             armn{"Zenbaki armeniarrak"}\r
             armnlow{"Zenbaki armeniarrak minuskulaz"}\r
-            beng{"digitu bengalarrak"}\r
+            beng{"Digitu bengalarrak"}\r
             deva{"Digitu devanagariak"}\r
             ethi{"Zenbaki etiopiarrak"}\r
             finance{"Finantza-zenbakiak"}\r
@@ -625,7 +625,7 @@ eu{
         SCOTLAND{"ESKOZIAR INGELESA"}\r
         VALENCIA{"VALENTZIERA"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.65"}\r
     characterLabelPattern{\r
         all{"{0} — Guztiak"}\r
         category-list{"{0}: {1}"}\r
index 5b48af269d8dbb2a1d19c91c667f58336a4762c2..3ce3f34c28f717b23d276c2f88fc3f5618961dde 100644 (file)
@@ -60,7 +60,7 @@ fa{
         ay{"آیمارایی"}\r
         az{"ترکی آذربایجانی"}\r
         az_Arab{"ترکی آذری جنوبی"}\r
-        ba{"باشغیری"}\r
+        ba{"باشقیری"}\r
         bal{"بلوچی"}\r
         ban{"بالیایی"}\r
         bar{"باواریایی"}\r
@@ -133,7 +133,7 @@ fa{
         dv{"دیوهی"}\r
         dyo{"دیولا فونی"}\r
         dyu{"دایولایی"}\r
-        dz{"جÙ\88Ù\86خاÛ\8cÛ\8c"}\r
+        dz{"دزÙ\88Ù\86گخا"}\r
         dzg{"دازاگایی"}\r
         ebu{"امبو"}\r
         ee{"اوه‌ای"}\r
@@ -160,7 +160,7 @@ fa{
         fa_AF{"دری"}\r
         fan{"فانگی"}\r
         fat{"فانتیایی"}\r
-        ff{"فولایی"}\r
+        ff{"فولانی"}\r
         fi{"فنلاندی"}\r
         fil{"فیلیپینی"}\r
         fj{"فیجیایی"}\r
@@ -377,7 +377,7 @@ fa{
         nyn{"نیانکوله‌ای"}\r
         nyo{"نیورویی"}\r
         nzi{"نزیمایی"}\r
-        oc{"اوکیتایی"}\r
+        oc{"اکسیتان"}\r
         oj{"اوجیبوایی"}\r
         om{"اورومویی"}\r
         or{"اوریه‌ای"}\r
@@ -855,7 +855,7 @@ fa{
         SAAHO{"ساهویی"}\r
         SCOTLAND{"انگلیسی معیار اسکاتلند"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.65"}\r
     characterLabelPattern{\r
         all{"{0} — همه"}\r
         category-list{"{0}: {1}"}\r
index bba10ad1fee2e269ed80893582ed22c9fdd47b00..0dad3877d520e97c385e0351b286c61de73ce926 100644 (file)
@@ -3,9 +3,10 @@
 fa_AF{\r
     Languages{\r
         ab{"افریکانس"}\r
+        ar_001{"عربی فصیح"}\r
         as{"اسامی"}\r
+        ast{"اتریشی"}\r
         az{"آذربایجانی"}\r
-        ba{"باشقیری"}\r
         ckb{"کردی سورانی"}\r
         dv{"مالدیوی"}\r
         es{"هسپانوی"}\r
@@ -17,20 +18,33 @@ fa_AF{
         it{"ایتالوی"}\r
         ja{"جاپانی"}\r
         ko{"کوریایی"}\r
+        ksh{"کلنی"}\r
+        kw{"کورنی"}\r
         ky{"قرغزی"}\r
+        lus{"میزویی"}\r
+        mai{"مایتیلی"}\r
         mn{"مغلی"}\r
+        nb{"نروژی کتابی"}\r
         ne{"نیپالی"}\r
         nl{"هالندی"}\r
+        nl_BE{"فلمیش"}\r
+        nn{"نروژی نو"}\r
         no{"نارویژی"}\r
         pl{"پولندی"}\r
         pt{"پرتگالی"}\r
         sq{"البانیایی"}\r
+        srn{"زبان سرانان"}\r
         sv{"سویدنی"}\r
         sw{"سواحلی"}\r
         tg{"تاجکی"}\r
+        zh_Hans{"چینی ساده شده"}\r
+        zza{"زازاکی"}\r
+    }\r
+    Languages%variant{\r
+        ps{"پشتو"}\r
     }\r
     Scripts{\r
         Mong{"مغلی"}\r
     }\r
-    Version{"2.1.38.39"}\r
+    Version{"2.1.43.65"}\r
 }\r
index c079213c1cd7e9d445a20d5500fc404b640cde73..004029bb962f903958c217c0cbd45c0d544f1859 100644 (file)
@@ -1118,7 +1118,7 @@ fi{
     Variants%secondary{\r
         FONUPA{"suomalais-ugrilainen tarkekirjoitus"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.91"}\r
     characterLabelPattern{\r
         all{"{0} – kaikki"}\r
         category-list{"{0}: {1}"}\r
index 445a32093edc616a5c0553019fb3ec098bc44670..57dbbb553e92820459b5affd73a92b74f6b6a77d 100644 (file)
@@ -664,13 +664,13 @@ fil{
         PINYIN{"Pinyin Romanization"}\r
         WADEGILE{"Wade-Giles Romanization"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.91"}\r
     characterLabelPattern{\r
         all{"{0} — lahat"}\r
         category-list{"{0}: {1}"}\r
         compatibility{"{0} — pagiging nababagay"}\r
-        enclosed{"{0} — enclosed"}\r
-        extended{"{0} — extended"}\r
+        enclosed{"{0} — naka-enclose"}\r
+        extended{"{0} — pinahaba"}\r
         historic{"{0} — makasaysayan"}\r
         miscellaneous{"{0} — miscellaneous"}\r
         other{"{0} — iba pa"}\r
index 88c48408e7e85296c14443cdd1b0219ee8604729..b4e5924c32adca325f5e62f16db21d15ca2e859e 100644 (file)
@@ -550,7 +550,7 @@ fo{
         POLYTON{"polytonísk"}\r
         WADEGILE{"Wade-Giles"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.41.34"}\r
     characterLabelPattern{\r
         all{"{0} — Alt"}\r
         category-list{"{0}: {1}"}\r
index 61e1b7f2a8f6f375323b3526fc00b11df3735c68..c06a82f8a8b4da264d3c634937e6febd5c6e1bd7 100644 (file)
@@ -27,7 +27,7 @@ fr{
         ace{"aceh"}\r
         ach{"acoli"}\r
         ada{"adangme"}\r
-        ady{"adyghéen"}\r
+        ady{"adyguéen"}\r
         ae{"avestique"}\r
         aeb{"arabe tunisien"}\r
         af{"afrikaans"}\r
@@ -56,7 +56,7 @@ fr{
         ary{"arabe marocain"}\r
         arz{"arabe égyptien"}\r
         as{"assamais"}\r
-        asa{"assou"}\r
+        asa{"asu"}\r
         ase{"langue des signes américaine"}\r
         ast{"asturien"}\r
         av{"avar"}\r
@@ -71,7 +71,7 @@ fr{
         bas{"bassa"}\r
         bax{"bamoun"}\r
         bbc{"batak toba"}\r
-        bbj{"ghomala"}\r
+        bbj{"ghomalaʼ"}\r
         be{"biélorusse"}\r
         bej{"bedja"}\r
         bem{"bemba"}\r
@@ -81,7 +81,7 @@ fr{
         bfq{"badaga"}\r
         bg{"bulgare"}\r
         bgn{"baloutchi occidental"}\r
-        bho{"bhojpuri"}\r
+        bho{"bhodjpouri"}\r
         bi{"bichelamar"}\r
         bik{"bikol"}\r
         bin{"bini"}\r
@@ -172,6 +172,9 @@ fr{
         enm{"moyen anglais"}\r
         eo{"espéranto"}\r
         es{"espagnol"}\r
+        es_419{"espagnol d’Amérique latine"}\r
+        es_ES{"espagnol d’Espagne"}\r
+        es_MX{"espagnol du Mexique"}\r
         esu{"youpik central"}\r
         et{"estonien"}\r
         eu{"basque"}\r
@@ -216,7 +219,7 @@ fr{
         gom{"konkani de Goa"}\r
         gon{"gondi"}\r
         gor{"gorontalo"}\r
-        got{"gothique"}\r
+        got{"gotique"}\r
         grb{"grebo"}\r
         grc{"grec ancien"}\r
         gsw{"suisse allemand"}\r
@@ -253,7 +256,7 @@ fr{
         ig{"igbo"}\r
         ii{"yi du Sichuan"}\r
         ik{"inupiaq"}\r
-        ilo{"ilokano"}\r
+        ilo{"ilocano"}\r
         inh{"ingouche"}\r
         io{"ido"}\r
         is{"islandais"}\r
@@ -276,14 +279,14 @@ fr{
         kaj{"jju"}\r
         kam{"kamba"}\r
         kaw{"kawi"}\r
-        kbd{"kabardin"}\r
+        kbd{"kabarde"}\r
         kbl{"kanembou"}\r
         kcg{"tyap"}\r
         kde{"makondé"}\r
         kea{"capverdien"}\r
         ken{"kényang"}\r
         kfo{"koro"}\r
-        kg{"kongo"}\r
+        kg{"kikongo"}\r
         kgp{"caingangue"}\r
         kha{"khasi"}\r
         kho{"khotanais"}\r
@@ -291,7 +294,7 @@ fr{
         khw{"khowar"}\r
         ki{"kikuyu"}\r
         kiu{"kirmanjki"}\r
-        kj{"kouanyama"}\r
+        kj{"kuanyama"}\r
         kk{"kazakh"}\r
         kkj{"kako"}\r
         kl{"groenlandais"}\r
@@ -310,8 +313,8 @@ fr{
         krj{"kinaray-a"}\r
         krl{"carélien"}\r
         kru{"kouroukh"}\r
-        ks{"kashmiri"}\r
-        ksb{"chambala"}\r
+        ks{"cachemiri"}\r
+        ksb{"shambala"}\r
         ksf{"bafia"}\r
         ksh{"francique ripuaire"}\r
         ku{"kurde"}\r
@@ -342,33 +345,33 @@ fr{
         lrc{"lori du Nord"}\r
         lt{"lituanien"}\r
         ltg{"latgalien"}\r
-        lu{"luba-katanga"}\r
-        lua{"luba-lulua"}\r
+        lu{"luba-katanga (kiluba)"}\r
+        lua{"luba-kasaï (ciluba)"}\r
         lui{"luiseño"}\r
         lun{"lunda"}\r
         luo{"luo"}\r
         lus{"lushaï"}\r
-        luy{"luhya"}\r
+        luy{"luyia"}\r
         lv{"letton"}\r
         lzh{"chinois littéraire"}\r
         lzz{"laze"}\r
-        mad{"madourais"}\r
+        mad{"madurais"}\r
         maf{"mafa"}\r
         mag{"magahi"}\r
-        mai{"maithili"}\r
+        mai{"maïthili"}\r
         mak{"makassar"}\r
         man{"mandingue"}\r
-        mas{"massaï"}\r
+        mas{"maasaï"}\r
         mde{"maba"}\r
-        mdf{"moksa"}\r
+        mdf{"mokcha"}\r
         mdr{"mandar"}\r
         men{"mendé"}\r
-        mer{"mérou"}\r
+        mer{"meru"}\r
         mfe{"créole mauricien"}\r
         mg{"malgache"}\r
         mga{"moyen irlandais"}\r
-        mgh{"makhuwa-meetto"}\r
-        mgo{"méta’"}\r
+        mgh{"makua"}\r
+        mgo{"metaʼ"}\r
         mh{"marshallais"}\r
         mi{"maori"}\r
         mic{"micmac"}\r
@@ -380,7 +383,7 @@ fr{
         mni{"manipuri"}\r
         moh{"mohawk"}\r
         mos{"moré"}\r
-        mr{"marathe"}\r
+        mr{"marathi"}\r
         mrj{"mari occidental"}\r
         ms{"malais"}\r
         mt{"maltais"}\r
@@ -405,12 +408,12 @@ fr{
         ne{"népalais"}\r
         new{"newari"}\r
         ng{"ndonga"}\r
-        nia{"nias"}\r
+        nia{"niha"}\r
         niu{"niuéen"}\r
         njo{"Ao"}\r
         nl{"néerlandais"}\r
         nl_BE{"flamand"}\r
-        nmg{"kwasio"}\r
+        nmg{"ngoumba"}\r
         nn{"norvégien nynorsk"}\r
         nnh{"ngiemboon"}\r
         no{"norvégien"}\r
@@ -421,9 +424,9 @@ fr{
         nr{"ndébélé du Sud"}\r
         nso{"sotho du Nord"}\r
         nus{"nuer"}\r
-        nv{"navaho"}\r
+        nv{"navajo"}\r
         nwc{"newarî classique"}\r
-        ny{"nyanja"}\r
+        ny{"chewa"}\r
         nym{"nyamwezi"}\r
         nyn{"nyankolé"}\r
         nyo{"nyoro"}\r
@@ -431,7 +434,7 @@ fr{
         oc{"occitan"}\r
         oj{"ojibwa"}\r
         om{"oromo"}\r
-        or{"oriya"}\r
+        or{"odia"}\r
         os{"ossète"}\r
         osa{"osage"}\r
         ota{"turc ottoman"}\r
@@ -460,7 +463,7 @@ fr{
         pt_BR{"portugais brésilien"}\r
         pt_PT{"portugais européen"}\r
         qu{"quechua"}\r
-        quc{"k’iche’"}\r
+        quc{"quiché"}\r
         qug{"quichua du Haut-Chimborazo"}\r
         raj{"rajasthani"}\r
         rap{"rapanui"}\r
@@ -478,49 +481,49 @@ fr{
         ru{"russe"}\r
         rue{"ruthène"}\r
         rug{"roviana"}\r
-        rup{"valaque"}\r
-        rw{"rwanda"}\r
+        rup{"aroumain"}\r
+        rw{"kinyarwanda"}\r
         rwk{"rwa"}\r
         sa{"sanskrit"}\r
         sad{"sandawe"}\r
         sah{"iakoute"}\r
         sam{"araméen samaritain"}\r
-        saq{"sambourou"}\r
+        saq{"samburu"}\r
         sas{"sasak"}\r
-        sat{"santal"}\r
+        sat{"santali"}\r
         saz{"saurashtra"}\r
         sba{"ngambay"}\r
-        sbp{"sangu"}\r
+        sbp{"isangu"}\r
         sc{"sarde"}\r
         scn{"sicilien"}\r
         sco{"écossais"}\r
         sd{"sindhi"}\r
         sdc{"sarde sassarais"}\r
         sdh{"kurde du Sud"}\r
-        se{"sami du Nord"}\r
+        se{"same du Nord"}\r
         see{"seneca"}\r
         seh{"cisena"}\r
         sei{"séri"}\r
         sel{"selkoupe"}\r
         ses{"koyraboro senni"}\r
-        sg{"sangho"}\r
+        sg{"sango"}\r
         sga{"ancien irlandais"}\r
         sgs{"samogitien"}\r
         sh{"serbo-croate"}\r
         shi{"chleuh"}\r
         shn{"shan"}\r
         shu{"arabe tchadien"}\r
-        si{"cinghalais"}\r
+        si{"cingalais"}\r
         sid{"sidamo"}\r
         sk{"slovaque"}\r
         sl{"slovène"}\r
         sli{"bas-silésien"}\r
         sly{"sélayar"}\r
         sm{"samoan"}\r
-        sma{"sami du Sud"}\r
-        smj{"sami de Lule"}\r
-        smn{"sami d’Inari"}\r
-        sms{"sami skolt"}\r
+        sma{"same du Sud"}\r
+        smj{"same de Lule"}\r
+        smn{"same d’Inari"}\r
+        sms{"same skolt"}\r
         sn{"shona"}\r
         snk{"soninké"}\r
         so{"somali"}\r
@@ -547,10 +550,10 @@ fr{
         ta{"tamoul"}\r
         tcy{"toulou"}\r
         te{"télougou"}\r
-        tem{"temne"}\r
+        tem{"timné"}\r
         teo{"teso"}\r
         ter{"tereno"}\r
-        tet{"tetum"}\r
+        tet{"tétoum"}\r
         tg{"tadjik"}\r
         th{"thaï"}\r
         ti{"tigrigna"}\r
@@ -565,7 +568,7 @@ fr{
         tly{"talysh"}\r
         tmh{"tamacheq"}\r
         tn{"tswana"}\r
-        to{"tonguien"}\r
+        to{"tongien"}\r
         tog{"tonga nyasa"}\r
         tpi{"tok pisin"}\r
         tr{"turc"}\r
@@ -576,7 +579,7 @@ fr{
         tsi{"tsimshian"}\r
         tt{"tatar"}\r
         ttt{"tati caucasien"}\r
-        tum{"toumbouka"}\r
+        tum{"tumbuka"}\r
         tvl{"tuvalu"}\r
         tw{"twi"}\r
         twq{"tasawaq"}\r
@@ -587,7 +590,7 @@ fr{
         ug{"ouïghour"}\r
         uga{"ougaritique"}\r
         uk{"ukrainien"}\r
-        umb{"oumboundou"}\r
+        umb{"umbundu"}\r
         und{"langue indéterminée"}\r
         ur{"ourdou"}\r
         uz{"ouzbek"}\r
@@ -598,7 +601,7 @@ fr{
         vi{"vietnamien"}\r
         vls{"flamand occidental"}\r
         vmf{"franconien du Main"}\r
-        vo{"volapuk"}\r
+        vo{"volapük"}\r
         vot{"vote"}\r
         vro{"võro"}\r
         vun{"vunjo"}\r
@@ -669,7 +672,7 @@ fr{
         Cprt{"syllabaire chypriote"}\r
         Cyrl{"cyrillique"}\r
         Cyrs{"cyrillique (variante slavonne)"}\r
-        Deva{"dévanâgarî"}\r
+        Deva{"dévanagari"}\r
         Dsrt{"déséret"}\r
         Egyd{"démotique égyptien"}\r
         Egyh{"hiératique égyptien"}\r
@@ -729,7 +732,7 @@ fr{
         Ogam{"ogam"}\r
         Olck{"ol tchiki"}\r
         Orkh{"orkhon"}\r
-        Orya{"oriya"}\r
+        Orya{"odia"}\r
         Osma{"osmanais"}\r
         Perm{"ancien permien"}\r
         Phag{"phags pa"}\r
@@ -747,7 +750,7 @@ fr{
         Saur{"saurashtra"}\r
         Sgnw{"écriture des signes"}\r
         Shaw{"shavien"}\r
-        Sinh{"cinghalais"}\r
+        Sinh{"cingalais"}\r
         Sund{"sundanais"}\r
         Sylo{"sylotî nâgrî"}\r
         Syrc{"syriaque"}\r
@@ -869,8 +872,8 @@ fr{
             zhuyin{"ordre zhuyin"}\r
         }\r
         d0{\r
-            fwidth{"pleine chasse"}\r
-            hwidth{"demi-chasse"}\r
+            fwidth{"en pleine chasse"}\r
+            hwidth{"en demi-chasse"}\r
             npinyin{"Numérique"}\r
         }\r
         hc{\r
@@ -899,7 +902,7 @@ fr{
             armn{"chiffres arméniens"}\r
             armnlow{"chiffres arméniens minuscules"}\r
             beng{"chiffres bengalis"}\r
-            deva{"chiffres devanagaris"}\r
+            deva{"chiffres dévanagaris"}\r
             ethi{"chiffres éthiopiens"}\r
             finance{"Chiffres financiers"}\r
             fullwide{"chiffres pleine chasse"}\r
@@ -927,7 +930,7 @@ fr{
             orya{"chiffres oriyas"}\r
             roman{"chiffres romains"}\r
             romanlow{"chiffres romains minuscules"}\r
-            taml{"chiffres tamouls"}\r
+            taml{"chiffres tamouls traditionnels"}\r
             tamldec{"chiffres tamouls"}\r
             telu{"chiffres télougous"}\r
             thai{"chiffres thaïs"}\r
@@ -967,10 +970,10 @@ fr{
         VALENCIA{"valencien"}\r
         WADEGILE{"Wade-Giles"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.91"}\r
     characterLabelPattern{\r
         all{"{0} — tout"}\r
-        category-list{"{0} : {1}"}\r
+        category-list{"{0}: {1}"}\r
         compatibility{"{0} — compatibilité"}\r
         enclosed{"{0} — entouré"}\r
         extended{"{0} — étendu"}\r
@@ -984,12 +987,12 @@ fr{
         }\r
     }\r
     codePatterns{\r
-        language{"langue : {0}"}\r
-        script{"écriture : {0}"}\r
-        territory{"région : {0}"}\r
+        language{"langue: {0}"}\r
+        script{"écriture: {0}"}\r
+        territory{"région: {0}"}\r
     }\r
     localeDisplayPattern{\r
-        keyTypePattern{"{0} : {1}"}\r
+        keyTypePattern{"{0}: {1}"}\r
         pattern{"{0} ({1})"}\r
         separator{"{0}, {1}"}\r
     }\r
index 97db58291d4e9d5eeae66565d1e4a6aa6f33f4ef..45dfdfc8ca1919fc6d395eef02d18f2502c93a20 100644 (file)
@@ -4,14 +4,8 @@ fr_BE{
     Languages{\r
         frp{"franco-provençal"}\r
         goh{"ancien haut-allemand"}\r
-        got{"gotique"}\r
         gu{"gujarati"}\r
         njo{"ao"}\r
-        se{"same du Nord"}\r
-        sma{"same du Sud"}\r
-        smj{"same de Lule"}\r
-        smn{"same d’Inari"}\r
-        sms{"same skolt"}\r
     }\r
-    Version{"2.1.38.39"}\r
+    Version{"2.1.43.65"}\r
 }\r
index a60ed614491a72267edb66e02d101822c77425a2..e6ba747fe890a9384903c0000e328530842a14e7 100644 (file)
@@ -4,7 +4,9 @@ fr_CA{
     Languages{\r
         ady{"adygué"}\r
         ang{"vieil anglais"}\r
+        asa{"assou"}\r
         az{"azerbaïdjanais"}\r
+        bbj{"ghomala"}\r
         bez{"bena"}\r
         bik{"bicol"}\r
         byn{"bilen"}\r
@@ -21,53 +23,55 @@ fr_CA{
         goh{"vieux haut-allemand"}\r
         gu{"gujarati"}\r
         ii{"yi de Sichuan"}\r
-        ilo{"ilocano"}\r
-        kbd{"kabarde"}\r
         ken{"kenyang"}\r
-        kj{"kuanyama"}\r
+        kg{"kongo"}\r
         kl{"kalaallisut"}\r
+        ks{"kashmiri"}\r
+        ksb{"chambala"}\r
         ksh{"kölsch"}\r
         liv{"live"}\r
+        lu{"luba-katanga"}\r
         luo{"luo"}\r
         lzh{"chinois classique"}\r
+        mgh{"makhuwa-meetto"}\r
         mgo{"meta’"}\r
+        mr{"marathe"}\r
         mwr{"marwari"}\r
         mwv{"mentawai"}\r
         nds{"bas allemand"}\r
         nds_NL{"bas saxon"}\r
         njo{"ao naga"}\r
+        nmg{"kwasio"}\r
         nwc{"newari classique"}\r
         nyn{"nkole"}\r
-        or{"odia"}\r
         pau{"palauan"}\r
         pdc{"allemand de Pennsylvanie"}\r
         pdt{"bas allemand mennonite"}\r
         peo{"vieux perse"}\r
         pfl{"palatin"}\r
         pro{"ancien occitan"}\r
+        quc{"k’iche’"}\r
         rar{"rarotonga"}\r
-        rup{"aroumain"}\r
-        sat{"santali"}\r
+        sbp{"sangu"}\r
         sdh{"kurde méridional"}\r
-        se{"same du Nord"}\r
         sei{"seri"}\r
-        sg{"sango"}\r
         sga{"vieil irlandais"}\r
         sly{"selayar"}\r
-        sma{"same du Sud"}\r
-        smj{"same de Lule"}\r
-        sms{"same skolt"}\r
+        smn{"sami d’Inari"}\r
         sw_CD{"swahili congolais"}\r
         tru{"turoyo"}\r
         tzm{"tamazight"}\r
-        vo{"volapük"}\r
+    }\r
+    Languages%variant{\r
+        ug{"ouïghour"}\r
     }\r
     Scripts{\r
         Deva{"devanagari"}\r
         Gujr{"gujarati"}\r
         Hanb{"hanb"}\r
+        Hans{"idéogrammes han simplifiés"}\r
+        Hant{"idéogrammes han traditionnels"}\r
         Hrkt{"syllabaires japonais"}\r
-        Orya{"odia"}\r
         Zsye{"zsye"}\r
     }\r
     Scripts%stand-alone{\r
@@ -85,6 +89,10 @@ fr_CA{
             reformed{"Ordre de tri réformé"}\r
             searchjl{"Rechercher par consonne initiale en hangeul"}\r
         }\r
+        d0{\r
+            fwidth{"pleine chasse"}\r
+            hwidth{"demi-chasse"}\r
+        }\r
         m0{\r
             bgn{"BGN (commission de toponymie des États-Unis)"}\r
             ungegn{"GENUNG"}\r
@@ -92,11 +100,18 @@ fr_CA{
         numbers{\r
             gujr{"chiffres gujaratis"}\r
             mong{"Chiffres mongols"}\r
-            taml{"chiffres tamouls traditionnels"}\r
         }\r
     }\r
-    Version{"2.1.38.73"}\r
+    Version{"2.1.43.65"}\r
     characterLabelPattern{\r
         category-list{"{0} : {1}"}\r
     }\r
+    codePatterns{\r
+        language{"langue : {0}"}\r
+        script{"écriture : {0}"}\r
+        territory{"région : {0}"}\r
+    }\r
+    localeDisplayPattern{\r
+        keyTypePattern{"{0} : {1}"}\r
+    }\r
 }\r
index 1d0702a37cb969255c856ba0d1b747fa9a6bdf03..6155638f0894834b0e9970f467f7233fd5c2335a 100644 (file)
@@ -6,5 +6,5 @@ fr_CH{
         pdc{"allemand de Pennsylvanie"}\r
         sdh{"kurde méridional"}\r
     }\r
-    Version{"2.1.38.85"}\r
+    Version{"2.1.43.65"}\r
 }\r
index 336becf4b5e851a1dca6d4dd7cef4541b7822e3c..8bb47f55559afda46b8399ed8a085660115a0662 100644 (file)
@@ -886,7 +886,7 @@ fy{
         VALLADER{"Vallader"}\r
         WADEGILE{"Wade-Giles-romanisering"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.41.34"}\r
     codePatterns{\r
         language{"Taal: {0}"}\r
         script{"Skrift: {0}"}\r
index 3d697bbb1e6b3563b5cc4a8fd13302e9cce3df9c..ddde3c554892e5e300eb4186288ee8cb82bf079f 100644 (file)
@@ -853,7 +853,7 @@ ga{
         WADEGILE{"Rómhánú Wade-Giles"}\r
         XSISTEMO{"XSISTEMO"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.91"}\r
     characterLabelPattern{\r
         all{"{0} — Uile"}\r
         category-list{"{0}: {1}"}\r
index ea8bf79176877fc4b22c05dc46be366e8c329385..54bc766df5fc4259a1bd9f298b537c5db9a87b28 100644 (file)
@@ -323,6 +323,7 @@ gd{
         ln{"Lingala"}\r
         lo{"Làtho"}\r
         lol{"Mongo"}\r
+        lou{"Crìtheol Louisiana"}\r
         loz{"Lozi"}\r
         lrc{"Luri Thuathach"}\r
         lt{"Liotuainis"}\r
@@ -642,6 +643,7 @@ gd{
         Cyrl{"Cirilis"}\r
         Cyrs{"Cirilis Seann-Slàbhais na h-Eaglaise"}\r
         Deva{"Devanagari"}\r
+        Dogr{"Dogra"}\r
         Dsrt{"Deseret"}\r
         Dupl{"Gearr-sgrìobhadh Duployé"}\r
         Egyp{"Sealbh-sgrìobhadh Èipheiteach"}\r
@@ -649,6 +651,7 @@ gd{
         Ethi{"Ge’ez"}\r
         Geor{"Cairtbheilis"}\r
         Glag{"Glagoliticeach"}\r
+        Gong{"Gunjala Gondi"}\r
         Gonm{"Masaram Gondi"}\r
         Goth{"Gotais"}\r
         Gran{"Grantha"}\r
@@ -696,10 +699,12 @@ gd{
         Lyci{"Lycian"}\r
         Lydi{"Lydian"}\r
         Mahj{"Mahajani"}\r
+        Maka{"Makasar"}\r
         Mand{"Mandaean"}\r
         Mani{"Manichaean"}\r
         Marc{"Marchen"}\r
         Maya{"Dealbh-sgrìobhadh Mayach"}\r
+        Medf{"Medefaidrin"}\r
         Mend{"Mende"}\r
         Merc{"Meroiticeach ceangailte"}\r
         Mero{"Meroiticeach"}\r
@@ -731,8 +736,8 @@ gd{
         Phnx{"Pheniceach"}\r
         Plrd{"Miao Phollard"}\r
         Prti{"Partais snaidh-sgrìobhte"}\r
-        Qaac{"Qaac"}\r
         Rjng{"Rejang"}\r
+        Rohg{"Hanifi Rohingya"}\r
         Roro{"Rongorongo"}\r
         Runr{"Rùn-sgrìobhadh"}\r
         Samr{"Samaritanais"}\r
@@ -745,6 +750,8 @@ gd{
         Sidd{"Siddham"}\r
         Sind{"Khudawadi"}\r
         Sinh{"Sinhala"}\r
+        Sogd{"Sogdianais"}\r
+        Sogo{"Seann-Sogdianais"}\r
         Sora{"Sora Sompeng"}\r
         Soyo{"Soyombo"}\r
         Sund{"Sunda"}\r
@@ -857,6 +864,7 @@ gd{
             ussystem{"Tomhas nan Stàitean Aonaichte"}\r
         }\r
         numbers{\r
+            ahom{"Àireamhan Ahom"}\r
             arab{"Àireamhan Arabach-Innseanach"}\r
             arabext{"Àireamhan Arabach-Innseanach leudaichte"}\r
             armn{"Àireamhan na h-Airmeinise"}\r
@@ -866,10 +874,13 @@ gd{
             brah{"Àireamhan Brahmi"}\r
             cakm{"Àireamhan Chakma"}\r
             cham{"Àireamhan Cham"}\r
+            cyrl{"Àireamhan na Cirilise"}\r
             deva{"Àireamhan Devanagari"}\r
             ethi{"Àireamhan Itiopach"}\r
             fullwide{"Àireamhan làn-leud"}\r
             geor{"Àireamhan na Cairtbheilise"}\r
+            gong{"Àireamhan Gunjala Gondi"}\r
+            gonm{"Àireamhan Masaram Gondi"}\r
             grek{"Àireamhan na Greugaise"}\r
             greklow{"Àireamhan beaga na Greugaise"}\r
             gujr{"Àireamhan Gujarati"}\r
@@ -880,6 +891,7 @@ gd{
             hant{"Àireamhan na Sìnise Thradaiseanta"}\r
             hantfin{"Àireamhan ionmhasail na Sìnise Thradaiseanta"}\r
             hebr{"Àireamhan na h-Eabhra"}\r
+            hmng{"Àireamhan Pahawh Hmong"}\r
             java{"Àireamhan na Deàbhanaise"}\r
             jpan{"Àireamhan na Seapanaise"}\r
             jpanfin{"Àireamhan ionmhasail na Seapanaise"}\r
@@ -892,19 +904,30 @@ gd{
             latn{"Àireamhan Siarach"}\r
             lepc{"Àireamhan Lepcha"}\r
             limb{"Àireamhan Limbu"}\r
+            mathbold{"Àireamhan matamataig troma"}\r
+            mathdbl{"Àireamhan matamataig le loidhne dhùbailte"}\r
+            mathmono{"Àireamhan matamataig aon-leud"}\r
+            mathsanb{"Àireamhan matamataig sans-serif troma"}\r
+            mathsans{"Àireamhan matamataig sans-serif"}\r
             mlym{"Àireamhan Malayalam"}\r
+            modi{"Àireamhan Modi"}\r
             mong{"Àireamhan na Mongolaise"}\r
+            mroo{"Àireamhan Mro"}\r
             mtei{"Àireamhan Meetei Mayek"}\r
             mymr{"Àireamhan Miànmar"}\r
             mymrshan{"Àireamhan Shan Miànmar"}\r
+            mymrtlng{"Àireamhan Tai Laing Miànmar"}\r
             nkoo{"Àireamhan N’Ko"}\r
             olck{"Àireamhan Ol Chiki"}\r
             orya{"Àireamhan Odia"}\r
             osma{"Àireamhan Osmanya"}\r
+            rohg{"Àireamhan Hanifi Rohingya"}\r
             roman{"Àireamhan Ròmanach"}\r
             romanlow{"Àireamhan beaga Ròmanach"}\r
             saur{"Àireamhan Saurashtra"}\r
             shrd{"Àireamhan Sharada"}\r
+            sind{"Àireamhan Khudawadi"}\r
+            sinh{"Àireamhan Lith na Sinhala"}\r
             sora{"Àireamhan Sora Sompeng"}\r
             sund{"Àireamhan Sunda"}\r
             takr{"Àireamhan Takri"}\r
@@ -914,7 +937,9 @@ gd{
             telu{"Àireamhan Telugu"}\r
             thai{"Àireamhan Tàidh"}\r
             tibt{"Àireamhan na Tibeitise"}\r
+            tirh{"Àireamhan Tirhuta"}\r
             vaii{"Àireamhan Vai"}\r
+            wara{"Àireamhan Warang Citi"}\r
         }\r
     }\r
     Variants{\r
@@ -925,11 +950,13 @@ gd{
         1994{"Litreachadh stannardach dual-chainnt Resia"}\r
         1996{"Litreachadh na Gearmailtise 1996"}\r
         ABL1943{"Gnàthas-litreachaidh 1943"}\r
+        AKUAPEM{"AKUAPEM"}\r
         ALALC97{"Ròmanachadh ALA-LC 1997"}\r
         ALUKU{"Dual-chainnt Aluku"}\r
         AO1990{"Aonta litreachadh na Portagailise 1990"}\r
         AREVELA{"Airmeinis an Ear"}\r
         AREVMDA{"Airmeinis an Iar"}\r
+        ASANTE{"ASANTE"}\r
         BAKU1926{"Abidil Laideann aonaichte na Turcaise"}\r
         BALANKA{"Dual-chainnt Balanka de Anii"}\r
         BARLA{"Dual-chainntean Barlavento de Kabuverdianu"}\r
@@ -953,6 +980,7 @@ gd{
         HSISTEMO{"HSISTEMO"}\r
         IJEKAVSK{"Sèirbis le fuaimneachadh Ijekavia"}\r
         ITIHASA{"Itihasa"}\r
+        IVANCHOV{"IVANCHOV"}\r
         JAUER{"Jauer"}\r
         JYUTPING{"Jyutping"}\r
         KKCOR{"Litreachadh coitcheann"}\r
@@ -1004,7 +1032,7 @@ gd{
         WADEGILE{"Ròmanachadh Wade-Giles"}\r
         XSISTEMO{"XSISTEMO"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.91"}\r
     characterLabelPattern{\r
         all{"{0} – na h-uile"}\r
         category-list{"{0}: {1}"}\r
index e863bd64fc85b62a15c07e03a8b84808e53e4df9..4321e76437a2d74270f85c95418c12e22a5287ac 100644 (file)
@@ -11,7 +11,7 @@ gl{
         colNormalization{"Clasificación normalizada"}\r
         colNumeric{"Clasificación numérica"}\r
         colStrength{"Forza de clasificación"}\r
-        collation{"orde de clasificación"}\r
+        collation{"criterio de ordenación"}\r
         currency{"moeda"}\r
         hc{"ciclo horario (12 ou 24)"}\r
         lb{"estilo de quebra de liña"}\r
@@ -49,7 +49,7 @@ gl{
         awa{"awadhi"}\r
         ay{"aimará"}\r
         az{"acerbaixano"}\r
-        ba{"baskir"}\r
+        ba{"baxkir"}\r
         ban{"balinés"}\r
         bas{"basaa"}\r
         be{"bielorruso"}\r
@@ -61,7 +61,7 @@ gl{
         bi{"bislama"}\r
         bin{"bini"}\r
         bla{"siksiká"}\r
-        bm{"bambaro"}\r
+        bm{"bambara"}\r
         bn{"bengalí"}\r
         bo{"tibetano"}\r
         br{"bretón"}\r
@@ -74,7 +74,7 @@ gl{
         ceb{"cebuano"}\r
         cgg{"kiga"}\r
         ch{"chamorro"}\r
-        chk{"chuukese"}\r
+        chk{"chuuk"}\r
         chm{"mari"}\r
         cho{"choctaw"}\r
         chr{"cherokee"}\r
@@ -124,7 +124,7 @@ gl{
         ff{"fula"}\r
         fi{"finés"}\r
         fil{"filipino"}\r
-        fj{"fidxiano"}\r
+        fj{"fixiano"}\r
         fo{"feroés"}\r
         fon{"fon"}\r
         fr{"francés"}\r
@@ -143,7 +143,7 @@ gl{
         gor{"gorontalo"}\r
         grc{"grego antigo"}\r
         gsw{"alemán suízo"}\r
-        gu{"guxaratí"}\r
+        gu{"guxarati"}\r
         guz{"gusii"}\r
         gv{"manx"}\r
         gwi{"gwichʼin"}\r
@@ -164,7 +164,7 @@ gl{
         iba{"iban"}\r
         ibb{"ibibio"}\r
         id{"indonesio"}\r
-        ig{"ibo"}\r
+        ig{"igbo"}\r
         ii{"yi sichuanés"}\r
         ilo{"ilocano"}\r
         inh{"inguxo"}\r
@@ -198,16 +198,16 @@ gl{
         kln{"kalenjin"}\r
         km{"khmer"}\r
         kmb{"kimbundu"}\r
-        kn{"canarés"}\r
+        kn{"kannará"}\r
         ko{"coreano"}\r
         koi{"komi permio"}\r
         kok{"konkani"}\r
         kpe{"kpelle"}\r
-        kr{"canuri"}\r
+        kr{"kanuri"}\r
         krc{"carachaio-bálcara"}\r
         krl{"carelio"}\r
         kru{"kurukh"}\r
-        ks{"cachemir"}\r
+        ks{"caxemirés"}\r
         ksb{"shambala"}\r
         ksf{"bafia"}\r
         ksh{"kölsch"}\r
@@ -289,16 +289,16 @@ gl{
         nog{"nogai"}\r
         nqo{"n’ko"}\r
         nr{"ndebele meridional"}\r
-        nso{"sesotho sa leboa"}\r
+        nso{"sesotho do norte"}\r
         nus{"nuer"}\r
         nv{"navajo"}\r
         ny{"nyanja"}\r
         nyn{"nyankole"}\r
         oc{"occitano"}\r
         om{"oromo"}\r
-        or{"oriya"}\r
+        or{"odiá"}\r
         os{"ossetio"}\r
-        pa{"panxabiano"}\r
+        pa{"panxabí"}\r
         pag{"pangasinan"}\r
         pam{"pampanga"}\r
         pap{"papiamento"}\r
@@ -322,11 +322,11 @@ gl{
         root{"raíz"}\r
         ru{"ruso"}\r
         rup{"aromanés"}\r
-        rw{"ruandés"}\r
+        rw{"kiñaruanda"}\r
         rwk{"rwa"}\r
         sa{"sánscrito"}\r
         sad{"sandawe"}\r
-        sah{"sakha"}\r
+        sah{"iacuto"}\r
         saq{"samburu"}\r
         sat{"santali"}\r
         sba{"ngambay"}\r
@@ -357,7 +357,7 @@ gl{
         sq{"albanés"}\r
         sr{"serbio"}\r
         srn{"sranan tongo"}\r
-        ss{"swazi"}\r
+        ss{"suazi"}\r
         ssy{"saho"}\r
         st{"sesotho"}\r
         su{"sundanés"}\r
@@ -387,7 +387,7 @@ gl{
         ts{"tsonga"}\r
         tt{"tártaro"}\r
         tum{"tumbuka"}\r
-        tvl{"tuvaluano"}\r
+        tvl{"tuvalés"}\r
         tw{"twi"}\r
         twq{"tasawaq"}\r
         ty{"tahitiano"}\r
@@ -412,12 +412,12 @@ gl{
         wbp{"walrpiri"}\r
         wo{"wólof"}\r
         xal{"calmuco"}\r
-        xh{"xosa"}\r
+        xh{"xhosa"}\r
         xog{"soga"}\r
         yav{"yangben"}\r
         ybb{"yemba"}\r
         yi{"yiddish"}\r
-        yo{"yoruba"}\r
+        yo{"ioruba"}\r
         yue{"cantonés"}\r
         zgh{"tamazight marroquí estándar"}\r
         zh{"chinés"}\r
@@ -626,7 +626,7 @@ gl{
             vaii{"Díxitos Vai"}\r
         }\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.94"}\r
     characterLabelPattern{\r
         all{"{0} (todo)"}\r
         category-list{"{0}: {1}"}\r
index 3a720b877198b280743726f9c4cbb00183c2b975..5b1cd9cde6f49807c281e49b38a3bc39adafb2f9 100644 (file)
@@ -619,7 +619,7 @@ gsw{
         SOLBA{"Solbica-Mundart"}\r
         TARASK{"Taraskievica-Rächtschriibig"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.41.34"}\r
     codePatterns{\r
         language{"Schpraach: {0}"}\r
         script{"Schrift: {0}"}\r
index 016cee139ea454581dbcde1ad3857329ec7b436b..bd1fbe4b0504dc802e3af063572d200480d01609 100644 (file)
@@ -448,7 +448,7 @@ gu{
         sk{"સ્લોવૅક"}\r
         sl{"સ્લોવેનિયન"}\r
         sm{"સામોન"}\r
-        sma{"દક્ષિણ સામી"}\r
+        sma{"દક્ષિણ સામી"}\r
         smj{"લુલે સામી"}\r
         smn{"ઇનારી સામી"}\r
         sms{"સ્કોલ્ટ સામી"}\r
@@ -654,7 +654,6 @@ gu{
         Phnx{"ફોનિશિયન"}\r
         Plrd{"પોલાર્ડ ફોનેટિક"}\r
         Prti{"ઇન્સ્ક્રિપ્શનલ પાર્થિયન"}\r
-        Qaae{"Qaae"}\r
         Rjng{"રીજાંગ"}\r
         Roro{"રોંગોરોંગો"}\r
         Runr{"રૂનિક"}\r
@@ -706,7 +705,7 @@ gu{
     Types{\r
         calendar{\r
             buddhist{"બુદ્ધિસ્ટ કેલેન્ડર"}\r
-            chinese{"àª\9aાàª\87નિઝ કેલેન્ડર"}\r
+            chinese{"àª\9aાàª\87નà«\80ઝ કેલેન્ડર"}\r
             coptic{"કોપ્ટિક કેલેન્ડર"}\r
             dangi{"ડાંગી કેલેન્ડર"}\r
             ethiopic{"ઇથિઓપિક કેલેન્ડર"}\r
@@ -720,7 +719,7 @@ gu{
             islamic-tbla{"ઇસ્લામિક કેલેન્ડર (ટેબ્યુલર, ખગોળશાસ્ત્રીય યુગ)"}\r
             islamic-umalqura{"ઇસ્લામિક કેલેન્ડર (ઉમમ અલ-કુરા)"}\r
             iso8601{"ISO-8601 કેલેન્ડર"}\r
-            japanese{"àª\9cાપાનિઝ કેલેન્ડર"}\r
+            japanese{"àª\9cાપાનà«\80ઝ કેલેન્ડર"}\r
             persian{"પર્શિયન કેલેન્ડર"}\r
             roc{"મિંગુઓ કેલેન્ડર"}\r
         }\r
@@ -850,7 +849,7 @@ gu{
         PINYIN{"પિનયિન રોમનાઇઝેશન"}\r
         WADEGILE{"વેડ-ગિલ્સ રોમનાઇઝેશન"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.2"}\r
     characterLabelPattern{\r
         all{"{0} — તમામ"}\r
         category-list{"{0}: {1}"}\r
index 084accee4defc9c4ba6153a0ea00b2c2bf083029..d15f4e750fea59983f32b303578472d8bc4caf21 100644 (file)
@@ -47,5 +47,5 @@ ha{
         zh{"Harshen Sin"}\r
         zu{"Harshen Zulu"}\r
     }\r
-    Version{"2.1.39.11"}\r
+    Version{"2.1.43.2"}\r
 }\r
index 9006724a6b7f54c1f83ee8990c176eb79c5e6be7..635ee62dc364fbb1833aa04ccea49c2646459518 100644 (file)
@@ -40,5 +40,5 @@ haw{
         zh_Hans{"Pākē Hoʻomaʻalahi ʻia"}\r
         zh_Hant{"Pākē Kuʻuna"}\r
     }\r
-    Version{"2.1.38.69"}\r
+    Version{"2.1.43.94"}\r
 }\r
index 165b55d2f28dd26ac1959504a55c0355501da90a..491c0555c708feeb599d7175a953c38086e7a486 100644 (file)
@@ -57,7 +57,7 @@ he{
         az{"אזרית"}\r
         ba{"בשקירית"}\r
         bal{"באלוצ׳י"}\r
-        ban{"בלינזית"}\r
+        ban{"×\91×\90×\9c×\99× ×\96×\99ת"}\r
         bar{"בווארית"}\r
         bas{"בסאא"}\r
         bax{"במום"}\r
@@ -145,7 +145,6 @@ he{
         el{"יוונית"}\r
         elx{"עילמית"}\r
         en{"אנגלית"}\r
-        en_GB{"אנגלית (בריטניה)"}\r
         enm{"אנגלית תיכונה"}\r
         eo{"אספרנטו"}\r
         es{"ספרדית"}\r
@@ -548,7 +547,6 @@ he{
     }\r
     Languages%short{\r
         az{"אזרית"}\r
-        en_GB{"אנגלית (בריטניה)"}\r
         en_US{"אנגלית (ארה״ב)"}\r
     }\r
     Languages%variant{\r
@@ -783,7 +781,7 @@ he{
         SCOTLAND{"אנגלית סקוטית סטנדרטית"}\r
         WADEGILE{"ווייד-גיילס, שיטה לתעתוק סינית לאותיות לטיניות"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.94"}\r
     characterLabelPattern{\r
         all{"{0} - הכל"}\r
         category-list{"{0}: {1}"}\r
@@ -793,7 +791,7 @@ he{
         historic{"{0} - היסטורי"}\r
         miscellaneous{"{0} - שונות"}\r
         other{"{0} - אחר"}\r
-        scripts{"{0} - סקריפט"}\r
+        scripts{"כתב - {0}"}\r
         strokes{\r
             many{"{0} משיכות מכחול"}\r
             one{"משיכת מכחול {0}"}\r
index 5722fe5ba8b79fc8e235b615331dab5fc9325bbe..8b2a5928f9b467fa5368ce2cb8054bc049ad5e5a 100644 (file)
@@ -169,7 +169,7 @@ hi{
         frs{"पूर्वी फ़्रीसियाई"}\r
         fur{"फ्रीयुलीयान"}\r
         fy{"पश्चिमी फ़्रिसियाई"}\r
-        ga{"à¤\86à¤\87रिश"}\r
+        ga{"à¤\86यरिश"}\r
         gaa{"गा"}\r
         gag{"गागौज़"}\r
         gay{"गायो"}\r
@@ -494,7 +494,7 @@ hi{
         tyv{"तुवीनियन"}\r
         tzm{"मध्य एटलस तमाज़ित"}\r
         udm{"उदमुर्त"}\r
-        ug{"विà¤\98à¥\81र"}\r
+        ug{"à¤\89à¤\87à¤\97र"}\r
         uga{"युगैरिटिक"}\r
         uk{"यूक्रेनियाई"}\r
         umb{"उम्बुन्डु"}\r
@@ -840,9 +840,9 @@ hi{
         POSIX{"कम्प्यूटर"}\r
         REVISED{"संशोधित वर्तनी"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.50"}\r
     characterLabelPattern{\r
-        all{"{0} - सभी"}\r
+        all{"{0}  सभी"}\r
         category-list{"{0}: {1}"}\r
         compatibility{"{0} — संगतता"}\r
         enclosed{"{0} — संलग्न"}\r
@@ -850,7 +850,7 @@ hi{
         historic{"{0} — ऐतिहासिक"}\r
         miscellaneous{"{0} — विविध"}\r
         other{"{0} — अन्य"}\r
-        scripts{"सà¥\8dà¤\95à¥\8dरिपà¥\8dà¤\9f — {0}"}\r
+        scripts{"लिपियाà¤\81 — {0}"}\r
         strokes{\r
             one{"{0} स्ट्रोक"}\r
             other{"{0} स्ट्रोक"}\r
index 829bff707388dc5eabcb62782166ab6d2128333e..f0bd2d5d9141d932a0d5678c4429b81bf3e38170 100644 (file)
@@ -916,17 +916,17 @@ hr{
         VALENCIA{"valencijski"}\r
         WADEGILE{"Wade-Giles romanizacija"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.50"}\r
     characterLabelPattern{\r
-        all{"{0} â\80\94 Sve"}\r
+        all{"{0} â\80\93 sve"}\r
         category-list{"{0}: {1}"}\r
-        compatibility{"{0} â\80\94 Kompatibilnost"}\r
-        enclosed{"{0} â\80\94 Priloženo"}\r
-        extended{"{0} â\80\94 Prošireno"}\r
-        historic{"{0} â\80\94 Povijesno"}\r
-        miscellaneous{"{0} â\80\94 Razno"}\r
-        other{"{0} â\80\94 Ostalo"}\r
-        scripts{"Pisma — {0}"}\r
+        compatibility{"{0} â\80\93 kompatibilnost"}\r
+        enclosed{"{0} â\80\93 priloženo"}\r
+        extended{"{0} â\80\93 prošireno"}\r
+        historic{"{0} â\80\93 povijesno"}\r
+        miscellaneous{"{0} â\80\93 razno"}\r
+        other{"{0} â\80\93 ostalo"}\r
+        scripts{"pisma – {0}"}\r
         strokes{\r
             few{"{0} poteza"}\r
             one{"{0} potez"}\r
index a82e1bf9da3ff33e758504e0fd682938dd6e0e27..fb8f71d71ec0b5288f0b2aa2ad56fd8e20aa36dc 100644 (file)
@@ -378,7 +378,7 @@ hsb{
             tibt{"tibetske cyfry"}\r
         }\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.41.34"}\r
     codePatterns{\r
         language{"rěč: {0}"}\r
         script{"pismo: {0}"}\r
index 7d46315ca96855aca5a3f5d1c8da34e10c82fe70..8fd741d0ebcc6c1bd04553e910a953c8d78fdbf0 100644 (file)
@@ -833,7 +833,7 @@ hu{
             orya{"Orija számjegyek"}\r
             roman{"Római számok"}\r
             romanlow{"Római kisbetűs számok"}\r
-            taml{"Tamil hagyományos számok"}\r
+            taml{"Hagyományos tamil számjegyek"}\r
             tamldec{"Tamil számjegyek"}\r
             telu{"Telugu számjegyek"}\r
             thai{"Thai számjegyek"}\r
@@ -900,7 +900,7 @@ hu{
         VALLADER{"Vallader"}\r
         WADEGILE{"Wade-Giles átírás"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.65"}\r
     characterLabelPattern{\r
         all{"{0} – összes"}\r
         category-list{"{0}: {1}"}\r
index 72d4e59a1edf902400406f0130a09165ba80c23f..741ed9f98ef6fadb0625fc7a1b1d63df355754dd 100644 (file)
@@ -620,7 +620,7 @@ hy{
         AREVELA{"արևելահայերեն"}\r
         AREVMDA{"արեւմտահայերէն"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.50"}\r
     characterLabelPattern{\r
         all{"{0} — բոլորը"}\r
         category-list{"{0}՝ {1}"}\r
diff --git a/source/data/lang/ia.txt b/source/data/lang/ia.txt
new file mode 100644 (file)
index 0000000..6645d5f
--- /dev/null
@@ -0,0 +1,559 @@
+// © 2016 and later: Unicode, Inc. and others.\r
+// License & terms of use: http://www.unicode.org/copyright.html#License\r
+ia{\r
+    Keys{\r
+        calendar{"calendario"}\r
+        cf{"formato de moneta"}\r
+        collation{"ordinamento"}\r
+        currency{"moneta"}\r
+        hc{"cyclo horari (12 o 24)"}\r
+        lb{"stilo de salto de linea"}\r
+        ms{"systema de mesura"}\r
+        numbers{"numeros"}\r
+    }\r
+    Languages{\r
+        aa{"afar"}\r
+        ab{"abkhazo"}\r
+        ace{"acehnese"}\r
+        ada{"adangme"}\r
+        ady{"adygeano"}\r
+        af{"afrikaans"}\r
+        agq{"aghem"}\r
+        ain{"ainu"}\r
+        ak{"akan"}\r
+        ale{"aleuto"}\r
+        alt{"altai del sud"}\r
+        am{"amharico"}\r
+        an{"aragonese"}\r
+        anp{"angika"}\r
+        ar{"arabe"}\r
+        ar_001{"arabe standard moderne"}\r
+        arn{"mapuche"}\r
+        arp{"arapaho"}\r
+        as{"assamese"}\r
+        asa{"asu"}\r
+        ast{"asturiano"}\r
+        av{"avaro"}\r
+        awa{"awadhi"}\r
+        ay{"aymara"}\r
+        az{"azerbaidzhano"}\r
+        ba{"bashkir"}\r
+        ban{"balinese"}\r
+        bas{"basaa"}\r
+        be{"bielorusso"}\r
+        bem{"bemba"}\r
+        bez{"bena"}\r
+        bg{"bulgaro"}\r
+        bho{"bhojpuri"}\r
+        bi{"bislama"}\r
+        bin{"bini"}\r
+        bla{"siksika"}\r
+        bm{"bambara"}\r
+        bn{"bengalese"}\r
+        bo{"tibetano"}\r
+        br{"breton"}\r
+        brx{"bodo"}\r
+        bs{"bosniaco"}\r
+        bug{"buginese"}\r
+        byn{"blin"}\r
+        ca{"catalano"}\r
+        ce{"checheno"}\r
+        ceb{"cebuano"}\r
+        cgg{"chiga"}\r
+        ch{"chamorro"}\r
+        chk{"chuukese"}\r
+        chm{"mari"}\r
+        cho{"choctaw"}\r
+        chr{"cherokee"}\r
+        chy{"cheyenne"}\r
+        ckb{"kurdo central"}\r
+        co{"corso"}\r
+        crs{"creolo seychellese"}\r
+        cs{"checo"}\r
+        cu{"slavo ecclesiastic"}\r
+        cv{"chuvash"}\r
+        cy{"gallese"}\r
+        da{"danese"}\r
+        dak{"dakota"}\r
+        dar{"dargwa"}\r
+        dav{"taita"}\r
+        de{"germano"}\r
+        de_AT{"germano austriac"}\r
+        de_CH{"alte germano suisse"}\r
+        dgr{"dogrib"}\r
+        dje{"zarma"}\r
+        dsb{"basse sorabo"}\r
+        dua{"duala"}\r
+        dv{"divehi"}\r
+        dyo{"jola-fonyi"}\r
+        dz{"dzongkha"}\r
+        dzg{"dazaga"}\r
+        ebu{"embu"}\r
+        ee{"ewe"}\r
+        efi{"efik"}\r
+        eka{"ekajuk"}\r
+        el{"greco"}\r
+        en{"anglese"}\r
+        en_AU{"anglese australian"}\r
+        en_CA{"anglese canadian"}\r
+        en_GB{"anglese britannic"}\r
+        en_US{"anglese american"}\r
+        eo{"esperanto"}\r
+        es{"espaniol"}\r
+        es_419{"espaniol latinoamerican"}\r
+        es_ES{"espaniol europee"}\r
+        es_MX{"espaniol mexican"}\r
+        et{"estoniano"}\r
+        eu{"basco"}\r
+        ewo{"ewondo"}\r
+        fa{"persa"}\r
+        ff{"fula"}\r
+        fi{"finnese"}\r
+        fil{"filipino"}\r
+        fj{"fijiano"}\r
+        fo{"feroese"}\r
+        fon{"fon"}\r
+        fr{"francese"}\r
+        fr_CA{"francese canadian"}\r
+        fr_CH{"francese suisse"}\r
+        fur{"friulano"}\r
+        fy{"frison occidental"}\r
+        ga{"irlandese"}\r
+        gaa{"ga"}\r
+        gd{"gaelico scotese"}\r
+        gez{"ge’ez"}\r
+        gil{"gilbertese"}\r
+        gl{"galleco"}\r
+        gn{"guarani"}\r
+        gor{"gorontalo"}\r
+        gsw{"germano suisse"}\r
+        gu{"gujarati"}\r
+        guz{"gusii"}\r
+        gv{"mannese"}\r
+        gwi{"gwich’in"}\r
+        ha{"hausa"}\r
+        haw{"hawaiano"}\r
+        he{"hebreo"}\r
+        hi{"hindi"}\r
+        hil{"hiligaynon"}\r
+        hmn{"hmong"}\r
+        hr{"croato"}\r
+        hsb{"alte sorabo"}\r
+        ht{"creolo haitian"}\r
+        hu{"hungaro"}\r
+        hup{"hupa"}\r
+        hy{"armeniano"}\r
+        hz{"herero"}\r
+        ia{"interlingua"}\r
+        iba{"iban"}\r
+        ibb{"ibibio"}\r
+        id{"indonesiano"}\r
+        ig{"igbo"}\r
+        ii{"yi de Sichuan"}\r
+        ilo{"ilocano"}\r
+        inh{"ingush"}\r
+        io{"ido"}\r
+        is{"islandese"}\r
+        it{"italiano"}\r
+        iu{"inuktitut"}\r
+        ja{"japonese"}\r
+        jbo{"lojban"}\r
+        jgo{"ngomba"}\r
+        jmc{"machame"}\r
+        jv{"javanese"}\r
+        ka{"georgiano"}\r
+        kab{"kabylo"}\r
+        kac{"kachin"}\r
+        kaj{"jju"}\r
+        kam{"kamba"}\r
+        kbd{"cabardiano"}\r
+        kcg{"tyap"}\r
+        kde{"makonde"}\r
+        kea{"capoverdiano"}\r
+        kfo{"koro"}\r
+        kha{"khasi"}\r
+        khq{"koyra chiini"}\r
+        ki{"kikuyu"}\r
+        kj{"kuanyama"}\r
+        kk{"kazakh"}\r
+        kkj{"kako"}\r
+        kl{"groenlandese"}\r
+        kln{"kalenjin"}\r
+        km{"khmer"}\r
+        kmb{"kimbundu"}\r
+        kn{"kannada"}\r
+        ko{"coreano"}\r
+        kok{"konkani"}\r
+        kpe{"kpelle"}\r
+        kr{"kanuri"}\r
+        krc{"karachay-balkaro"}\r
+        krl{"careliano"}\r
+        kru{"kurukh"}\r
+        ks{"kashmiri"}\r
+        ksb{"shambala"}\r
+        ksf{"bafia"}\r
+        ksh{"coloniese"}\r
+        ku{"kurdo"}\r
+        kum{"kumyko"}\r
+        kv{"komi"}\r
+        kw{"cornico"}\r
+        ky{"kirghizo"}\r
+        la{"latino"}\r
+        lad{"ladino"}\r
+        lag{"langi"}\r
+        lb{"luxemburgese"}\r
+        lez{"lezghiano"}\r
+        lg{"luganda"}\r
+        li{"limburgese"}\r
+        lkt{"lakota"}\r
+        ln{"lingala"}\r
+        lo{"laotiano"}\r
+        loz{"lozi"}\r
+        lrc{"luri del nord"}\r
+        lt{"lithuano"}\r
+        lu{"luba-katanga"}\r
+        lua{"luba-lulua"}\r
+        lun{"lunda"}\r
+        luo{"luo"}\r
+        lus{"mizo"}\r
+        luy{"luyia"}\r
+        lv{"letton"}\r
+        mad{"madurese"}\r
+        mag{"magahi"}\r
+        mai{"maithili"}\r
+        mak{"macassarese"}\r
+        mas{"masai"}\r
+        mdf{"moksha"}\r
+        men{"mende"}\r
+        mer{"meri"}\r
+        mfe{"creolo mauritian"}\r
+        mg{"malgache"}\r
+        mgh{"makhuwa-meetto"}\r
+        mgo{"metaʼ"}\r
+        mh{"marshallese"}\r
+        mi{"maori"}\r
+        mic{"micmac"}\r
+        min{"minangkabau"}\r
+        mk{"macedone"}\r
+        ml{"malayalam"}\r
+        mn{"mongol"}\r
+        mni{"manipuri"}\r
+        moh{"mohawk"}\r
+        mos{"mossi"}\r
+        mr{"marathi"}\r
+        ms{"malay"}\r
+        mt{"maltese"}\r
+        mua{"mundang"}\r
+        mul{"plure linguas"}\r
+        mus{"creek"}\r
+        mwl{"mirandese"}\r
+        my{"birmano"}\r
+        myv{"erzya"}\r
+        mzn{"mazanderani"}\r
+        na{"nauru"}\r
+        nap{"napolitano"}\r
+        naq{"nama"}\r
+        nb{"norvegiano bokmål"}\r
+        nd{"ndebele del nord"}\r
+        ne{"nepalese"}\r
+        new{"newari"}\r
+        ng{"ndonga"}\r
+        nia{"nias"}\r
+        niu{"nieuano"}\r
+        nl{"nederlandese"}\r
+        nl_BE{"flamingo"}\r
+        nmg{"kwasio"}\r
+        nn{"norvegiano nynorsk"}\r
+        nnh{"ngiemboon"}\r
+        nog{"nogai"}\r
+        nqo{"n’ko"}\r
+        nr{"ndebele del sud"}\r
+        nso{"sotho del nord"}\r
+        nus{"nuer"}\r
+        nv{"navajo"}\r
+        ny{"nyanja"}\r
+        nyn{"nyankole"}\r
+        oc{"occitano"}\r
+        om{"oromo"}\r
+        or{"oriya"}\r
+        os{"osseto"}\r
+        pa{"punjabi"}\r
+        pag{"pangasinan"}\r
+        pam{"pampanga"}\r
+        pap{"papiamento"}\r
+        pau{"palauano"}\r
+        pcm{"pidgin nigerian"}\r
+        pl{"polonese"}\r
+        prg{"prussiano"}\r
+        ps{"pashto"}\r
+        pt{"portugese"}\r
+        pt_BR{"portugese de Brasil"}\r
+        pt_PT{"portugese de Portugal"}\r
+        qu{"quechua"}\r
+        quc{"kʼicheʼ"}\r
+        rap{"rapanui"}\r
+        rar{"rarotongano"}\r
+        rm{"romanche"}\r
+        rn{"rundi"}\r
+        ro{"romaniano"}\r
+        ro_MD{"moldavo"}\r
+        rof{"rombo"}\r
+        root{"radice"}\r
+        ru{"russo"}\r
+        rup{"aromaniano"}\r
+        rw{"kinyarwanda"}\r
+        rwk{"rwa"}\r
+        sa{"sanscrito"}\r
+        sad{"sandawe"}\r
+        sah{"yakuto"}\r
+        saq{"samburu"}\r
+        sat{"santali"}\r
+        sba{"ngambay"}\r
+        sbp{"sangu"}\r
+        sc{"sardo"}\r
+        scn{"siciliano"}\r
+        sco{"scotese"}\r
+        sd{"sindhi"}\r
+        se{"sami del nord"}\r
+        seh{"sena"}\r
+        ses{"koyraboro senni"}\r
+        sg{"sango"}\r
+        shi{"tachelhit"}\r
+        shn{"shan"}\r
+        si{"cingalese"}\r
+        sk{"slovaco"}\r
+        sl{"sloveno"}\r
+        sm{"samoano"}\r
+        sma{"sami del sud"}\r
+        smj{"sami de Lule"}\r
+        smn{"sami de Inari"}\r
+        sms{"sami skolt"}\r
+        sn{"shona"}\r
+        snk{"soninke"}\r
+        so{"somali"}\r
+        sq{"albanese"}\r
+        sr{"serbo"}\r
+        srn{"sranan tongo"}\r
+        ss{"swati"}\r
+        ssy{"saho"}\r
+        st{"sotho del sud"}\r
+        su{"sundanese"}\r
+        suk{"sukuma"}\r
+        sv{"svedese"}\r
+        sw{"swahili"}\r
+        sw_CD{"swahili del Congo"}\r
+        swb{"comoriano"}\r
+        syr{"syriaco"}\r
+        ta{"tamil"}\r
+        te{"telugu"}\r
+        tem{"temne"}\r
+        teo{"teso"}\r
+        tet{"tetum"}\r
+        tg{"tajiko"}\r
+        th{"thai"}\r
+        ti{"tigrinya"}\r
+        tig{"tigre"}\r
+        tk{"turkmeno"}\r
+        tlh{"klingon"}\r
+        tn{"tswana"}\r
+        to{"tongano"}\r
+        tpi{"tok pisin"}\r
+        tr{"turco"}\r
+        trv{"taroko"}\r
+        ts{"tsonga"}\r
+        tt{"tataro"}\r
+        tum{"tumbuka"}\r
+        tvl{"tuvaluano"}\r
+        twq{"tasawaq"}\r
+        ty{"tahitiano"}\r
+        tyv{"tuvano"}\r
+        tzm{"tamazight del Atlas Central"}\r
+        udm{"udmurto"}\r
+        ug{"uighur"}\r
+        uk{"ukrainiano"}\r
+        umb{"umbundu"}\r
+        und{"lingua incognite"}\r
+        ur{"urdu"}\r
+        uz{"uzbeko"}\r
+        vai{"vai"}\r
+        ve{"venda"}\r
+        vi{"vietnamese"}\r
+        vo{"volapük"}\r
+        vun{"vunjo"}\r
+        wa{"wallon"}\r
+        wae{"walser"}\r
+        wal{"wolaytta"}\r
+        war{"waray"}\r
+        wo{"wolof"}\r
+        xal{"calmuco"}\r
+        xh{"xhosa"}\r
+        xog{"soga"}\r
+        yav{"yangben"}\r
+        ybb{"yemba"}\r
+        yi{"yiddish"}\r
+        yo{"yoruba"}\r
+        yue{"cantonese"}\r
+        zgh{"tamazight marocchin standard"}\r
+        zh{"chinese"}\r
+        zh_Hans{"chinese simplificate"}\r
+        zh_Hant{"chinese traditional"}\r
+        zu{"zulu"}\r
+        zun{"zuni"}\r
+        zxx{"sin contento linguistic"}\r
+        zza{"zaza"}\r
+    }\r
+    Languages%short{\r
+        az{"azeri"}\r
+        en_GB{"anglese (GB)"}\r
+        en_US{"anglese (SUA)"}\r
+    }\r
+    Scripts{\r
+        Arab{"arabe"}\r
+        Armn{"armenian"}\r
+        Beng{"bengalese"}\r
+        Bopo{"bopomofo"}\r
+        Brai{"braille"}\r
+        Cyrl{"cyrillic"}\r
+        Deva{"devanagari"}\r
+        Ethi{"ethiope"}\r
+        Geor{"georgian"}\r
+        Grek{"grec"}\r
+        Gujr{"gujarati"}\r
+        Guru{"gurmukhi"}\r
+        Hanb{"han con bopomofo"}\r
+        Hang{"hangul"}\r
+        Hani{"han"}\r
+        Hans{"simplificate"}\r
+        Hant{"traditional"}\r
+        Hebr{"hebraic"}\r
+        Hira{"hiragana"}\r
+        Hrkt{"syllabarios japonese"}\r
+        Jamo{"jamo"}\r
+        Jpan{"japonese"}\r
+        Kana{"katakana"}\r
+        Khmr{"khmer"}\r
+        Knda{"kannada"}\r
+        Kore{"corean"}\r
+        Laoo{"lao"}\r
+        Latn{"latin"}\r
+        Mlym{"malayalam"}\r
+        Mong{"mongol"}\r
+        Mymr{"birman"}\r
+        Orya{"orya"}\r
+        Sinh{"cingalese"}\r
+        Taml{"tamil"}\r
+        Telu{"telugu"}\r
+        Thaa{"thaana"}\r
+        Thai{"thailandese"}\r
+        Tibt{"tibetano"}\r
+        Zmth{"notation mathematic"}\r
+        Zsye{"emoji"}\r
+        Zsym{"symbolos"}\r
+        Zxxx{"non scripte"}\r
+        Zyyy{"commun"}\r
+        Zzzz{"scriptura incognite"}\r
+    }\r
+    Scripts%stand-alone{\r
+        Hans{"han simplificate"}\r
+        Hant{"han traditional"}\r
+    }\r
+    Types{\r
+        calendar{\r
+            buddhist{"calendario buddhista"}\r
+            chinese{"calendario chinese"}\r
+            dangi{"calendario dangi"}\r
+            ethiopic{"calendario ethiope"}\r
+            gregorian{"calendario gregorian"}\r
+            hebrew{"calendario hebraic"}\r
+            islamic{"calendario islamic"}\r
+            iso8601{"calendario ISO-8601"}\r
+            japanese{"calendario japonese"}\r
+            persian{"calendario persa"}\r
+            roc{"calendario del Republica de China"}\r
+        }\r
+        cf{\r
+            account{"formato de moneta pro contabilitate"}\r
+            standard{"formato de moneta standard"}\r
+        }\r
+        collation{\r
+            ducet{"ordinamento Unicode predefinite"}\r
+            search{"recerca generic"}\r
+            standard{"ordinamento standard"}\r
+        }\r
+        hc{\r
+            h11{"systema de 12 horas (0–11)"}\r
+            h12{"systema de 12 horas (1–12)"}\r
+            h23{"systema de 24 horas (0–23)"}\r
+            h24{"systema de 24 horas (1–24)"}\r
+        }\r
+        lb{\r
+            loose{"stilo de salto de linea flexibile"}\r
+            normal{"stilo de salto de linea normal"}\r
+            strict{"stilo de salto de linea stricte"}\r
+        }\r
+        ms{\r
+            metric{"systema metric"}\r
+            uksystem{"systema de mesura imperial"}\r
+            ussystem{"systema de mesura statounitese"}\r
+        }\r
+        numbers{\r
+            arab{"cifras indo-arabe"}\r
+            arabext{"cifras indo-arabe extendite"}\r
+            armn{"cifras armenie"}\r
+            armnlow{"cifras armenie minuscule"}\r
+            beng{"cifras bengalese"}\r
+            deva{"cifras devanagari"}\r
+            ethi{"cifras ethiope"}\r
+            fullwide{"cifras a latitude integre"}\r
+            geor{"cifras georgian"}\r
+            grek{"cifras grec"}\r
+            greklow{"cifras grec minuscule"}\r
+            gujr{"cifras gujarati"}\r
+            guru{"cifras gurmukhi"}\r
+            hanidec{"cifras decimal chinese"}\r
+            hans{"cifras chinese simplificate"}\r
+            hansfin{"cifras financiari chinese simplificate"}\r
+            hant{"cifras chinese traditional"}\r
+            hantfin{"cifras financiari chinese traditional"}\r
+            hebr{"cifras hebraic"}\r
+            jpan{"cifras japonese"}\r
+            jpanfin{"cifras financiari japonese"}\r
+            khmr{"cifras khmer"}\r
+            knda{"cifras kannada"}\r
+            laoo{"cifras lao"}\r
+            latn{"cifras occidental"}\r
+            mlym{"cifras malayalam"}\r
+            mymr{"cifras birman"}\r
+            orya{"cifras oriya"}\r
+            roman{"cifras roman"}\r
+            romanlow{"cifras roman minuscule"}\r
+            taml{"cifras tamil traditional"}\r
+            tamldec{"cifras tamil"}\r
+            telu{"cifras telugu"}\r
+            thai{"cifras thailandese"}\r
+            tibt{"cifras tibetan"}\r
+        }\r
+    }\r
+    Version{"2.1.44.15"}\r
+    characterLabelPattern{\r
+        all{"{0} — toto"}\r
+        category-list{"{0}: {1}"}\r
+        compatibility{"{0} — compatibilitate"}\r
+        enclosed{"{0} — inquadrate"}\r
+        extended{"{0} — extendite"}\r
+        historic{"{0} — historic"}\r
+        miscellaneous{"{0} — miscellanee"}\r
+        other{"{0} — altere"}\r
+        scripts{"scripturas — {0}"}\r
+    }\r
+    codePatterns{\r
+        language{"Lingua: {0}"}\r
+        script{"Scriptura: {0}"}\r
+        territory{"Region: {0}"}\r
+    }\r
+    localeDisplayPattern{\r
+        keyTypePattern{"{0}: {1}"}\r
+        pattern{"{0} ({1})"}\r
+        separator{"{0}, {1}"}\r
+    }\r
+}\r
index fc133f487037f588b39fafc3c7a6e6c409a80b7e..29441afe31b35144a6c255063a5d2c049a6c2800 100644 (file)
@@ -619,7 +619,7 @@ id{
         Grek{"Yunani"}\r
         Gujr{"Gujarat"}\r
         Guru{"Gurmukhi"}\r
-        Hanb{"Hanb"}\r
+        Hanb{"Han dengan Bopomofo"}\r
         Hang{"Hangul"}\r
         Hani{"Han"}\r
         Hano{"Hanunoo"}\r
@@ -964,7 +964,7 @@ id{
         VALLADER{"VALLADER"}\r
         WADEGILE{"Wade-Giles Latin"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.20"}\r
     characterLabelPattern{\r
         all{"{0} — Semua"}\r
         category-list{"{0}: {1}"}\r
index 6ce40e1f027c547a6abc6e203b214009eab3c5b4..8a7d84a00d485264a76c75edf00a237c1cf6b56c 100644 (file)
@@ -47,5 +47,5 @@ ig{
         zh{"Mandarịịnị"}\r
         zu{"Zulu"}\r
     }\r
-    Version{"2.1.38.69"}\r
+    Version{"2.1.44.88"}\r
 }\r
index e4d6bac72471f397468019b7b1dd2a3b1762d44d..256aea36ce9d97ed1ece5cbf9ef083b1b8598541 100644 (file)
@@ -104,7 +104,7 @@ is{
         cop{"koptíska"}\r
         cr{"krí"}\r
         crh{"krímtyrkneska"}\r
-        crs{"Seselwa kreólsk franska"}\r
+        crs{"seychelles-kreólska"}\r
         cs{"tékkneska"}\r
         csb{"kasúbíska"}\r
         cu{"kirkjuslavneska"}\r
@@ -174,6 +174,7 @@ is{
         ga{"írska"}\r
         gaa{"ga"}\r
         gag{"gagás"}\r
+        gan{"gan"}\r
         gay{"gajó"}\r
         gba{"gbaja"}\r
         gd{"skosk gelíska"}\r
@@ -195,6 +196,7 @@ is{
         gwi{"gvísín"}\r
         ha{"hása"}\r
         hai{"haída"}\r
+        hak{"hak"}\r
         haw{"havaíska"}\r
         he{"hebreska"}\r
         hi{"hindí"}\r
@@ -204,6 +206,7 @@ is{
         ho{"hírímótú"}\r
         hr{"króatíska"}\r
         hsb{"hásorbneska"}\r
+        hsn{"hsn"}\r
         ht{"haítíska"}\r
         hu{"ungverska"}\r
         hup{"húpa"}\r
@@ -337,6 +340,7 @@ is{
         myv{"ersja"}\r
         mzn{"masanderaní"}\r
         na{"nárúska"}\r
+        nan{"nan"}\r
         nap{"napólíska"}\r
         naq{"nama"}\r
         nb{"norskt bókmál"}\r
@@ -457,7 +461,7 @@ is{
         sux{"súmerska"}\r
         sv{"sænska"}\r
         sw{"svahílí"}\r
-        sw_CD{"Kongó-svahílí"}\r
+        sw_CD{"kongósvahílí"}\r
         swb{"shimaoríska"}\r
         syc{"klassísk sýrlenska"}\r
         syr{"sýrlenska"}\r
@@ -515,6 +519,7 @@ is{
         was{"vasjó"}\r
         wbp{"varlpiri"}\r
         wo{"volof"}\r
+        wuu{"wuu"}\r
         xal{"kalmúkska"}\r
         xh{"sósa"}\r
         xog{"sóga"}\r
@@ -524,7 +529,7 @@ is{
         ybb{"yemba"}\r
         yi{"jiddíska"}\r
         yo{"jórúba"}\r
-        yue{"kantoneska"}\r
+        yue{"kantónska"}\r
         za{"súang"}\r
         zap{"sapótek"}\r
         zbl{"blisstákn"}\r
@@ -546,9 +551,13 @@ is{
     Scripts{\r
         Arab{"arabískt"}\r
         Armn{"armenskt"}\r
+        Bali{"balinesíska"}\r
+        Batk{"batakíska"}\r
         Beng{"bengalskt"}\r
         Bopo{"bopomofo"}\r
+        Brah{"brahmíska"}\r
         Brai{"blindraletur"}\r
+        Copt{"koptíska"}\r
         Cyrl{"kyrillískt"}\r
         Deva{"devanagari"}\r
         Ethi{"eþíópískt"}\r
@@ -565,6 +574,7 @@ is{
         Hira{"hiragana"}\r
         Hrkt{"japönsk samstöfuletur"}\r
         Jamo{"jamo"}\r
+        Java{"javanesíska"}\r
         Jpan{"japanskt"}\r
         Kana{"katakana"}\r
         Khmr{"kmer"}\r
@@ -572,11 +582,14 @@ is{
         Kore{"kóreskt"}\r
         Laoo{"lao"}\r
         Latn{"latneskt"}\r
+        Mand{"mandaíska"}\r
         Mlym{"malalajam"}\r
         Mong{"mongólskt"}\r
         Mymr{"mjanmarskt"}\r
+        Nkoo{"n-kó"}\r
         Orya{"oriya"}\r
         Sinh{"sinhala"}\r
+        Sund{"sundanesíska"}\r
         Taml{"tamílskt"}\r
         Telu{"telúgú"}\r
         Thaa{"thaana"}\r
@@ -738,7 +751,7 @@ is{
             vaii{"Vai-tölustafir"}\r
         }\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.91"}\r
     characterLabelPattern{\r
         all{"{0} — allt"}\r
         category-list{"{0}: {1}"}\r
index 0b30332b29469d42261af425ce68bd1d677a138f..17f5f732dace54ae28b24d03525f7bdf5c80cd8b 100644 (file)
@@ -51,7 +51,7 @@ it{
         aro{"araona"}\r
         arp{"arapaho"}\r
         arq{"arabo algerino"}\r
-        ars{"arabo, najd"}\r
+        ars{"arabo najd"}\r
         arw{"aruaco"}\r
         ary{"arabo marocchino"}\r
         arz{"arabo egiziano"}\r
@@ -318,7 +318,7 @@ it{
         kut{"kutenai"}\r
         kv{"komi"}\r
         kw{"cornico"}\r
-        ky{"chirghiso"}\r
+        ky{"kirghiso"}\r
         la{"latino"}\r
         lad{"giudeo-spagnolo"}\r
         lag{"langi"}\r
@@ -430,7 +430,7 @@ it{
         oc{"occitano"}\r
         oj{"ojibwa"}\r
         om{"oromo"}\r
-        or{"oriya"}\r
+        or{"odia"}\r
         os{"ossetico"}\r
         osa{"osage"}\r
         ota{"turco ottomano"}\r
@@ -985,6 +985,8 @@ it{
         AREVELA{"armeno orientale"}\r
         AREVMDA{"armeno occidentale"}\r
         BAKU1926{"alfabeto latino altaico unificato"}\r
+        BAUDDHA{"BAUDDHA"}\r
+        BISCAYAN{"BISCAYAN"}\r
         BISKE{"dialetto San Giorgio/Bila"}\r
         BOHORIC{"alfabeto bohorič"}\r
         BOONT{"boontling"}\r
@@ -992,10 +994,17 @@ it{
         EMODENG{"primo inglese moderno"}\r
         FONIPA{"alfabeto fonetico internazionale IPA"}\r
         FONUPA{"alfabeto fonetico uralico UPA"}\r
+        FONXSAMP{"FONXSAMP"}\r
         HEPBURN{"romanizzazione Hepburn"}\r
+        HOGNORSK{"HOGNORSK"}\r
+        ITIHASA{"ITIHASA"}\r
+        JAUER{"JAUER"}\r
+        JYUTPING{"JYUTPING"}\r
         KKCOR{"ortografia comune"}\r
         KSCOR{"ortografia standard"}\r
+        LAUKIKA{"LAUKIKA"}\r
         LIPAW{"dialetto resiano di Lipovaz"}\r
+        LUNA1918{"LUNA1918"}\r
         METELKO{"alfabeto Metelko"}\r
         MONOTON{"monotonico"}\r
         NDYUKA{"dialetto Ndyuka"}\r
@@ -1004,23 +1013,32 @@ it{
         NULIK{"volapük moderno"}\r
         OSOJS{"dialetto Oseacco/Osojane"}\r
         PAMAKA{"dialetto Pamaka"}\r
+        PETR1708{"PETR1708"}\r
         PINYIN{"romanizzazione Pinyin"}\r
         POLYTON{"politonico"}\r
         POSIX{"computer"}\r
+        PUTER{"PUTER"}\r
         REVISED{"ortografia revisionata"}\r
         RIGIK{"Volapük classico"}\r
         ROZAJ{"resiano"}\r
+        RUMGR{"RUMGR"}\r
         SAAHO{"saho"}\r
         SCOTLAND{"inglese scozzese standard"}\r
         SCOUSE{"scouse"}\r
         SOLBA{"dialetto Stolvizza/Solbica"}\r
+        SURMIRAN{"SURMIRAN"}\r
+        SURSILV{"SURSILV"}\r
+        SUTSILV{"SUTSILV"}\r
         TARASK{"ortografia taraskievica"}\r
         UCCOR{"ortografia unificata"}\r
         UCRCOR{"ortografia rivista unificata"}\r
+        ULSTER{"ULSTER"}\r
+        VAIDIKA{"VAIDIKA"}\r
         VALENCIA{"valenziano"}\r
+        VALLADER{"VALLADER"}\r
         WADEGILE{"romanizzazione Wade-Giles"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.86"}\r
     characterLabelPattern{\r
         all{"{0} — Tutto"}\r
         category-list{"{0}: {1}"}\r
index 667068d40037ed15fbdbcf92744541239f5bc508..298ab7580f19213fa66c790ae55707b74e108ad5 100644 (file)
@@ -136,7 +136,7 @@ ja{
         cy{"ウェールズ語"}\r
         da{"デンマーク語"}\r
         dak{"ダコタ語"}\r
-        dar{"ã\83\80ã\83«ã\82¬ã\83³語"}\r
+        dar{"ã\83\80ã\83«ã\82°ã\83¯語"}\r
         dav{"タイタ語"}\r
         de{"ドイツ語"}\r
         de_CH{"標準ドイツ語 (スイス)"}\r
@@ -256,7 +256,7 @@ ja{
         io{"イド語"}\r
         is{"アイスランド語"}\r
         it{"イタリア語"}\r
-        iu{"ã\82¤ã\83\8cã\82¯ã\82¦ã\83\86ã\82£ã\83\88ã\83\83ã\83\88èª\9e"}\r
+        iu{"イヌクティトット語"}\r
         izh{"イングリア語"}\r
         ja{"日本語"}\r
         jam{"ジャマイカ・クレオール語"}\r
@@ -428,7 +428,7 @@ ja{
         oc{"オック語"}\r
         oj{"オジブウェー語"}\r
         om{"オロモ語"}\r
-        or{"ã\82ªã\83ªã\83¤ã\83¼語"}\r
+        or{"ã\82ªã\83\87ã\82£ã\82¢語"}\r
         os{"オセット語"}\r
         osa{"オセージ語"}\r
         ota{"オスマントルコ語"}\r
@@ -1047,7 +1047,7 @@ ja{
         VALLADER{"ヴァラダー"}\r
         WADEGILE{"ウェード式ローマ字表記法"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.91"}\r
     characterLabelPattern{\r
         all{"{0} — すべて"}\r
         category-list{"{0}: {1}"}\r
diff --git a/source/data/lang/jv.txt b/source/data/lang/jv.txt
new file mode 100644 (file)
index 0000000..c6e0061
--- /dev/null
@@ -0,0 +1,78 @@
+// © 2016 and later: Unicode, Inc. and others.\r
+// License & terms of use: http://www.unicode.org/copyright.html#License\r
+jv{\r
+    Languages{\r
+        af{"af"}\r
+        ar{"Arab"}\r
+        ar_001{"Arab Standar Anyar"}\r
+        ban{"ban"}\r
+        be{"be"}\r
+        bn{"Bengali"}\r
+        bs{"bs"}\r
+        co{"Korsika"}\r
+        de{"Jérman"}\r
+        en{"Inggris"}\r
+        es{"Spanyol"}\r
+        es_419{"Spanyol (Amerika Latin)"}\r
+        es_ES{"Spanyol (Eropah)"}\r
+        es_MX{"Spanyol (Meksiko)"}\r
+        fr{"Prancis"}\r
+        hi{"India"}\r
+        id{"Indonesia"}\r
+        it{"Italia"}\r
+        ja{"Jepang"}\r
+        jv{"Jawa"}\r
+        ko{"Korea"}\r
+        nl{"Walanda"}\r
+        nl_BE{"Flemis"}\r
+        pl{"Polandia"}\r
+        pt{"Portugis"}\r
+        ru{"Rusia"}\r
+        th{"Thailand"}\r
+        tr{"Turki"}\r
+        und{"Basa Ora Dikenali"}\r
+        zh{"Tyonghwa"}\r
+        zh_Hant{"Tyonghwa (Tradisional)"}\r
+    }\r
+    Languages%short{\r
+        en_GB{"Inggris (Britania)"}\r
+        en_US{"Inggris (AS)"}\r
+    }\r
+    Scripts{\r
+        Arab{"Arab"}\r
+        Cyrl{"Sirilik"}\r
+        Hani{"Han"}\r
+        Hant{"Tradhisional"}\r
+        Jpan{"Jepang"}\r
+        Kore{"Korea"}\r
+        Latn{"Latin"}\r
+        Zxxx{"Ora Ketulis"}\r
+        Zzzz{"Skrip Ora Dikenali"}\r
+    }\r
+    Scripts%stand-alone{\r
+        Hant{"Han Tradhisional"}\r
+    }\r
+    Types{\r
+        calendar{\r
+            gregorian{"Tanggalan Gregorian"}\r
+            iso8601{"Tanggalan ISO-8601"}\r
+        }\r
+        collation{\r
+            standard{"Standar Ngurutke Urutan"}\r
+        }\r
+        numbers{\r
+            latn{"Digit Latin"}\r
+        }\r
+    }\r
+    Version{"2.1.44.15"}\r
+    codePatterns{\r
+        language{"Basa: {0}"}\r
+        script{"Skrip: {0}"}\r
+        territory{"Daerah: {0}"}\r
+    }\r
+    localeDisplayPattern{\r
+        keyTypePattern{"{0}: {1}"}\r
+        pattern{"{0} ({1})"}\r
+        separator{"{0}, {1}"}\r
+    }\r
+}\r
index 7a7fbb1ec7f39b34529943d09e774c4ef7c54863..0a41dab80dafeeb7841f3a4835a4c26770e0c57e 100644 (file)
@@ -261,7 +261,7 @@ ka{
         lol{"მონგო"}\r
         loz{"ლოზი"}\r
         lrc{"ჩრდილოეთ ლური"}\r
-        lt{"á\83\9aá\83\98á\83¢ვური"}\r
+        lt{"á\83\9aá\83\98á\83\94á\83¢á\83£ვური"}\r
         lu{"ლუბა-კატანგა"}\r
         lua{"ლუბა-ლულუა"}\r
         lui{"ლუისენიო"}\r
@@ -734,7 +734,7 @@ ka{
             tibt{"ტიბეტური ციფრები"}\r
         }\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.50"}\r
     characterLabelPattern{\r
         all{"{0} — ყველა"}\r
         category-list{"{0}: {1}"}\r
index e78bc049a1d4efa8164694bbe06b05387dcbe46b..b8fbfe2df84d16923ad592d48f21769fe494116f 100644 (file)
@@ -48,5 +48,5 @@ kab{
         zh{"Tacinwat, Tamundarint"}\r
         zu{"Tazulut"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.94"}\r
 }\r
index 12c19848faffcb6cd4ec3fd69359046da13039ab..8bca81f6302dcf4d5afde15b0fcf3d34f8b8a68b 100644 (file)
@@ -249,7 +249,7 @@ kea{
             latn{"Númerus Arábikus"}\r
         }\r
     }\r
-    Version{"2.1.39.11"}\r
+    Version{"2.1.43.65"}\r
     codePatterns{\r
         language{"Lingua: {0}"}\r
         script{"Skrita: {0}"}\r
index 2176239e75ec94eee0c8f62c1b57aa0dd3bd1436..f10d66cfaae032fe032e6772a484366d24b9b3f6 100644 (file)
@@ -3,10 +3,10 @@
 kk{\r
     Keys{\r
         calendar{"Күнтізбе"}\r
-        cf{"Валюта пішімі"}\r
+        cf{"Валюта форматы"}\r
         collation{"Сұрыптау реті"}\r
         currency{"Валюта"}\r
-        hc{"Уақыт пішімі (12 не 24)"}\r
+        hc{"Уақыт форматы (12 не 24)"}\r
         lb{"Жолды тасымалдау стилі"}\r
         ms{"Өлшемдер жүйесі"}\r
         numbers{"Сандар"}\r
@@ -422,11 +422,11 @@ kk{
         Arab{"араб жазуы"}\r
         Armn{"армян жазуы"}\r
         Beng{"бенгал жазуы"}\r
-        Bopo{"бопомофо жазу"}\r
+        Bopo{"бопомофо жазуы"}\r
         Brai{"Брайль жазуы"}\r
         Cyrl{"кирилл жазуы"}\r
         Deva{"деванагари жазуы"}\r
-        Ethi{"эфиоп жазу"}\r
+        Ethi{"эфиопиялық жазу"}\r
         Geor{"грузин жазуы"}\r
         Grek{"грек жазуы"}\r
         Gujr{"гуджарати жазуы"}\r
@@ -438,8 +438,8 @@ kk{
         Hant{"дәстүрлі қытай иероглифы"}\r
         Hebr{"иврит жазуы"}\r
         Hira{"хирагана жазуы"}\r
-        Hrkt{"жапон силлабарийі"}\r
-        Jamo{"чамо жазуы"}\r
+        Hrkt{"хирагана немесе катакана"}\r
+        Jamo{"джамо жазуы"}\r
         Jpan{"жапон жазуы"}\r
         Kana{"катакана жазуы"}\r
         Khmr{"кхмер жазуы"}\r
@@ -454,7 +454,7 @@ kk{
         Sinh{"сингаль жазуы"}\r
         Taml{"тамиль жазуы"}\r
         Telu{"телугу жазуы"}\r
-        Thaa{"Ñ\82аана Ð¶Ð°Ð·Ñ\83Ñ\8b"}\r
+        Thaa{"тана жазуы"}\r
         Thai{"тай жазуы"}\r
         Tibt{"тибет жазуы"}\r
         Zmth{"математикалық жазу"}\r
@@ -483,8 +483,8 @@ kk{
             roc{"Мингуо күнтізбесі"}\r
         }\r
         cf{\r
-            account{"Есептік валюта пішімі"}\r
-            standard{"Стандартты валюта пішімі"}\r
+            account{"Есептік валюта форматы"}\r
+            standard{"Стандартты валюта форматы"}\r
         }\r
         collation{\r
             ducet{"Әдепкі уникод сұрыптау реті"}\r
@@ -504,7 +504,7 @@ kk{
         }\r
         ms{\r
             metric{"Метрлік жүйе"}\r
-            uksystem{"Ð\98мпеÑ\80иялық өлшемдер жүйесі"}\r
+            uksystem{"Ð\91Ñ\80иÑ\82аниялық өлшемдер жүйесі"}\r
             ussystem{"Америкалық өлшемдер жүйесі"}\r
         }\r
         numbers{\r
@@ -515,7 +515,7 @@ kk{
             beng{"Бенгал сандары"}\r
             deva{"Деванагари сандары"}\r
             ethi{"Эфиопия сандары"}\r
-            fullwide{"СандаÑ\80дÑ\8bÒ£ Ñ\82олÑ\8bÒ\9b Ð¿Ñ\96Ñ\88Ñ\96мÑ\96"}\r
+            fullwide{"ТолÑ\8bÒ\9b ÐµÐ½Ð´Ñ\96 Ñ\86иÑ\84Ñ\80лаÑ\80"}\r
             geor{"Грузин сандары"}\r
             grek{"Грек сандары"}\r
             greklow{"Кіші әріппен берілген грек сандары"}\r
@@ -545,7 +545,7 @@ kk{
             tibt{"Тибет сандары"}\r
         }\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.88"}\r
     characterLabelPattern{\r
         all{"{0} — барлығы"}\r
         category-list{"{0}: {1}"}\r
@@ -555,7 +555,7 @@ kk{
         historic{"{0} — тарихи"}\r
         miscellaneous{"{0} — әр түрлі"}\r
         other{"{0} — басқа"}\r
-        scripts{"Ð\96азулар — {0}"}\r
+        scripts{"Ðазулар — {0}"}\r
         strokes{\r
             one{"{0} сызық"}\r
             other{"{0} сызық"}\r
index f8df3f1cad71cfb87ad00d6313878305efef3e8f..e370e8fb88918a33d41230092ffdf709225c2d70 100644 (file)
@@ -4,7 +4,7 @@ kl{
     Languages{\r
         kl{"kalaallisut"}\r
     }\r
-    Version{"2.1.38.69"}\r
+    Version{"2.1.45.12"}\r
     localeDisplayPattern{\r
         keyTypePattern{"{0}: {1}"}\r
         pattern{"{0} ({1})"}\r
index a8f573337b0414af9672f6ac0034bd3ad0d8f0a2..bbb9e02fd111304cce6ad036f9c6c9d2e910289b 100644 (file)
@@ -535,7 +535,7 @@ km{
             tibt{"លេខទីបេ"}\r
         }\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.88"}\r
     characterLabelPattern{\r
         all{"{0} — ទាំងអស់"}\r
         category-list{"{0}: {1}"}\r
index 184aede282026716347e0178eaee1d2575384c90..6cc0f7851750638930abbac41923f2f9a20d9f00 100644 (file)
@@ -832,7 +832,7 @@ kn{
             vaii{"ವಾಯ್ ಅಂಕೆಗಳು"}\r
         }\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.88"}\r
     characterLabelPattern{\r
         all{"{0} — ಎಲ್ಲ"}\r
         category-list{"{0}: {1}"}\r
index 96876585c02db716efe33a238617a23141709f43..bd58a367b4e16f50c2975118ec12d4a842eb9614 100644 (file)
@@ -45,10 +45,10 @@ ko{
         ar{"아랍어"}\r
         ar_001{"현대 표준 아랍어"}\r
         arc{"아람어"}\r
-        arn{"ë§\88í\91¸ë\91\94군어"}\r
+        arn{"ë§\88í\91¸ë\91¥군어"}\r
         arp{"아라파호어"}\r
         arq{"알제리 아랍어"}\r
-        ars{"나즈디 아랍어"}\r
+        ars{"아랍어(나즈디)"}\r
         arw{"아라와크어"}\r
         ary{"모로코 아랍어"}\r
         arz{"이집트 아랍어"}\r
@@ -919,7 +919,7 @@ ko{
         VAIDIKA{"바이디카"}\r
         VALLADER{"발라더"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.91"}\r
     characterLabelPattern{\r
         all{"{0} — 전체"}\r
         category-list{"{0}: {1}"}\r
index 5add5802afd1c5684a98f2fe8b8a3acd90ae4837..29b85df8c9abc801fbd7cfda26ebf5bbc1925039 100644 (file)
@@ -1,6 +1,16 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 kok{\r
+    Keys{\r
+        calendar{"दिनदर्शिका"}\r
+        cf{"चलनाचें स्वरूप"}\r
+        collation{"वर्गवारी क्रम"}\r
+        currency{"चलन"}\r
+        hc{"वराचें चक्र (12 वि 24)"}\r
+        lb{"रेग खंड करपाची शैली"}\r
+        ms{"मापन प्रणाली"}\r
+        numbers{"क्रमांक"}\r
+    }\r
     Languages{\r
         aa{"अफार"}\r
         ab{"अबखेज़ियन"}\r
@@ -199,7 +209,7 @@ kok{
         li{"लिंबुर्ग"}\r
         lkt{"लाकोटा"}\r
         ln{"लिंगाला"}\r
-        lo{"लाà¤\85à¥\8b"}\r
+        lo{"लाà¤\93"}\r
         loz{"लोझीं"}\r
         lrc{"उत्तरीय लुरी"}\r
         lt{"लिथुआनियन्"}\r
@@ -278,7 +288,7 @@ kok{
         pcm{"नायझेरियन पिडगीन"}\r
         pl{"पोलिष"}\r
         prg{"प्रुसियन"}\r
-        ps{"पाष्टो (पुष्टो)"}\r
+        ps{"पाष्टो"}\r
         pt{"पोर्तुगिज"}\r
         pt_BR{"ब्राझिलियन पोर्तुगिज"}\r
         pt_PT{"युरोपियन पोर्तुगिज"}\r
@@ -286,7 +296,7 @@ kok{
         quc{"किचे"}\r
         rap{"रापान्यु"}\r
         rar{"रारोटोंगान"}\r
-        rm{"रहà¤\9fà¥\8b-रà¥\8bमानà¥\8dसà¥\8d"}\r
+        rm{"रà¥\8bमाà¤\82नà¥\8dश"}\r
         rn{"रुंदी"}\r
         ro{"रोमानियन्"}\r
         ro_MD{"मोल्डावियन्"}\r
@@ -406,12 +416,48 @@ kok{
     }\r
     Scripts{\r
         Arab{"अरेबिक"}\r
+        Armn{"आर्मेनियन"}\r
+        Beng{"बांग्ला"}\r
+        Bopo{"बोपोमोफो"}\r
+        Brai{"ब्रैल"}\r
         Cyrl{"सिरिलिक"}\r
         Deva{"देवनागरी"}\r
+        Ethi{"इथियोपीक"}\r
+        Geor{"जॉर्जियन"}\r
+        Grek{"ग्रीक"}\r
+        Gujr{"गुजराती"}\r
+        Guru{"गुरमुखी"}\r
+        Hanb{"बोपोमोफो वांगडा हॅन"}\r
+        Hang{"हंगूल"}\r
+        Hani{"हॅन"}\r
         Hans{"सोंपी"}\r
         Hant{"पारंपारीक"}\r
+        Hebr{"हिब्रू"}\r
+        Hira{"हिरागना"}\r
+        Hrkt{"जपानी अक्षरमाळ"}\r
+        Jamo{"जामो"}\r
+        Jpan{"जपानी"}\r
+        Kana{"काटकाना"}\r
+        Khmr{"खमेर"}\r
+        Knda{"कन्नड"}\r
+        Kore{"कोरियन"}\r
+        Laoo{"लाओ"}\r
         Latn{"लॅटीन"}\r
+        Mlym{"मलयाळम"}\r
+        Mong{"मोंगोलियन"}\r
+        Mymr{"म्यानमार"}\r
+        Orya{"ओरिया"}\r
+        Sinh{"सिन्हाला"}\r
+        Taml{"तमीळ"}\r
+        Telu{"तेलुगू"}\r
+        Thaa{"थाणा"}\r
+        Thai{"थाई"}\r
+        Tibt{"तिबेटन"}\r
+        Zmth{"गणिताची चिन्नां"}\r
+        Zsye{"Emoji"}\r
+        Zsym{"चिन्नां"}\r
         Zxxx{"अलिखीत"}\r
+        Zyyy{"सामान्य"}\r
         Zzzz{"अज्ञात लिपी"}\r
     }\r
     Scripts%stand-alone{\r
@@ -420,17 +466,85 @@ kok{
     }\r
     Types{\r
         calendar{\r
+            buddhist{"बुध्दीश्ट दिनदर्शिका"}\r
+            chinese{"चीनी दिनदर्शिका"}\r
+            dangi{"डांगी दिनदर्शिका"}\r
+            ethiopic{"इथियोपिक दिनदर्शिका"}\r
             gregorian{"ग्रेगोरियन दिनदर्शिका"}\r
+            hebrew{"हिब्रू दिनदर्शिका"}\r
+            islamic{"ईस्लामीक दिनदर्शिका"}\r
+            iso8601{"आयएसओ-8601 दिनदर्शिका"}\r
+            japanese{"जपानी"}\r
+            persian{"पर्शियन दिनदर्शिका"}\r
+            roc{\r
+                "मिंगुआ दिनदर्शिका (अणकाराची कुरू: जाका चिनी दिनदर्शिकेचें प्रजासत्ता"\r
+                "क\u0022, \u0022रिपब्लिकन दिनदर्शिका\u0022)"\r
+            }\r
+        }\r
+        cf{\r
+            account{"लेखा चलन स्वरूप"}\r
+            standard{"प्रमाणित"}\r
         }\r
         collation{\r
-            standard{"प्रमाणित वर्गिकरण क्रमांक"}\r
+            ducet{"डिफॉल्ट युनिकोड वर्गवारी क्रम"}\r
+            search{"सोद घेवचो"}\r
+            standard{"प्रमाणित वर्गवारी क्रम"}\r
+        }\r
+        hc{\r
+            h11{"12 वरांची यंत्रणा (0–11)"}\r
+            h12{"12 वरांची यंत्रणा (1–12)"}\r
+            h23{"24 वरांची यंत्रणा (0–23)"}\r
+            h24{"24 वरांची यंत्रणा (1–24)"}\r
+        }\r
+        lb{\r
+            loose{"लूज रेग खंड शैली"}\r
+            normal{"सामान्य रेग खंड शैली"}\r
+            strict{"सक्तीची रेग खंड शैली"}\r
+        }\r
+        ms{\r
+            metric{"मॅट्रीक प्रणाली"}\r
+            uksystem{"व्हडली मापन प्रणाली"}\r
+            ussystem{"युएस मापन प्रणाली"}\r
         }\r
         numbers{\r
+            arab{"अरेबिक-भारतीय अंक"}\r
+            arabext{"विस्तारीत अरेबीक-भारतीय अंक"}\r
+            armn{"आर्मेनियन संख्या"}\r
+            armnlow{"आर्मेनियन लोवरकेस संख्या"}\r
+            beng{"बांग्ला अंक"}\r
             deva{"देवनागरी अंक"}\r
+            ethi{"इथियोपिक संख्या"}\r
+            fullwide{"पूर्ण-रुंदी अंक"}\r
+            geor{"जॉर्जियन संख्या"}\r
+            grek{"ग्रीक संख्या"}\r
+            greklow{"ग्रीक लोवरकेस संख्या"}\r
+            gujr{"गुजराती अंक"}\r
+            guru{"गुरुमुखी अंक"}\r
+            hanidec{"चिनी दशांश संख्या"}\r
+            hans{"सोंपी केल्ली चिनी संख्या"}\r
+            hansfin{"सोंपी केल्ली चिनी महसूल संख्या"}\r
+            hant{"पारंपारीक चिनी संख्या"}\r
+            hantfin{"पारंपारीक चिनी महसूल संख्या"}\r
+            hebr{"हिब्रू संख्या"}\r
+            jpan{"जपानी संख्या"}\r
+            jpanfin{"जपानी महसूल संख्या"}\r
+            khmr{"कंबोडियन अंक"}\r
+            knda{"कन्नड अंक"}\r
+            laoo{"लाओ अंक"}\r
             latn{"अस्तंत अंक"}\r
+            mlym{"मल्याळम अंक"}\r
+            mymr{"म्यानमार अंक"}\r
+            orya{"ओडिया"}\r
+            roman{"रोमन संख्या"}\r
+            romanlow{"रोमन लोवरकेस संख्या"}\r
+            taml{"पारंपारीक तमिळ संख्या"}\r
+            tamldec{"तमिळ अंक"}\r
+            telu{"तेलुगू अंक"}\r
+            thai{"थाय अंक"}\r
+            tibt{"तिबेतियन"}\r
         }\r
     }\r
-    Version{"2.1.38.69"}\r
+    Version{"2.1.44.88"}\r
     codePatterns{\r
         language{"भाशा: {0}"}\r
         script{"लिपी: {0}"}\r
index 6241b81358568b66a407060c0a6c813c31e281a9..5dc51650b18244b0de45084742ac519968cd68fb 100644 (file)
@@ -609,7 +609,7 @@ ks{
         SOLBA{"ثٹولوِزا/سولبِکا بوٗلۍ"}\r
         TARASK{"تاراسکیٖوِکا علمہ ہِجاِ"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.41.34"}\r
     codePatterns{\r
         language{"زَبان: {0}"}\r
         script{"رَسم الخط: {0}"}\r
index 60abcfb43e884e06f255d91f3f984c34e2f6e83d..35bf8e0c0c442f7a01b733c7f2335bd5eb8e7e60 100644 (file)
@@ -512,7 +512,7 @@ ksh{
         VALENCIA{"valenzijaanesche Dijaläk"}\r
         WADEGILE{"lateijnesche Ömschreff noh Wade-Giles"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.41.34"}\r
     codePatterns{\r
         language{"de Schprohch afjekööz met „{0}“"}\r
         script{"de Schreff afjekööz met „{0}“"}\r
diff --git a/source/data/lang/ku.txt b/source/data/lang/ku.txt
new file mode 100644 (file)
index 0000000..ff64384
--- /dev/null
@@ -0,0 +1,287 @@
+// © 2016 and later: Unicode, Inc. and others.\r
+// License & terms of use: http://www.unicode.org/copyright.html#License\r
+ku{\r
+    Keys{\r
+        calendar{"salname"}\r
+        currency{"diwîz"}\r
+    }\r
+    Languages{\r
+        aa{"afarî"}\r
+        ab{"abxazî"}\r
+        ace{"açehî"}\r
+        ady{"adîgeyî"}\r
+        af{"afrîkansî"}\r
+        ain{"aynuyî"}\r
+        ale{"alêwîtî"}\r
+        am{"amharî"}\r
+        an{"aragonî"}\r
+        ar{"erebî"}\r
+        ar_001{"erebiya standard"}\r
+        as{"asamî"}\r
+        ast{"astûrî"}\r
+        av{"avarî"}\r
+        ay{"aymarayî"}\r
+        az{"azerî"}\r
+        ba{"başkîrî"}\r
+        ban{"balînî"}\r
+        be{"belarusî"}\r
+        bem{"bembayî"}\r
+        bg{"bulgarî"}\r
+        bho{"bojpûrî"}\r
+        bi{"bîslamayî"}\r
+        bla{"blakfotî"}\r
+        bm{"bambarayî"}\r
+        bn{"bengalî"}\r
+        bo{"tîbetî"}\r
+        br{"bretonî"}\r
+        bs{"bosnî"}\r
+        bug{"bugî"}\r
+        byn{"byn"}\r
+        ca{"katalanî"}\r
+        ce{"çeçenî"}\r
+        ceb{"sebwanoyî"}\r
+        ch{"çamoroyî"}\r
+        chk{"çûkî"}\r
+        chm{"marî"}\r
+        chr{"çerokî"}\r
+        chy{"çeyenî"}\r
+        ckb{"soranî"}\r
+        co{"korsîkayî"}\r
+        cs{"çekî"}\r
+        cv{"çuvaşî"}\r
+        cy{"weylsî"}\r
+        da{"danmarkî"}\r
+        de{"elmanî"}\r
+        dsb{"sorbiya jêrîn"}\r
+        dua{"diwalayî"}\r
+        dv{"divehî"}\r
+        dz{"conxayî"}\r
+        ee{"eweyî"}\r
+        el{"yewnanî"}\r
+        en{"îngilîzî"}\r
+        eo{"esperantoyî"}\r
+        es{"spanî"}\r
+        et{"estonî"}\r
+        eu{"baskî"}\r
+        fa{"farisî"}\r
+        ff{"fulahî"}\r
+        fi{"fînî"}\r
+        fil{"fîlîpînoyî"}\r
+        fj{"fîjî"}\r
+        fo{"ferî"}\r
+        fr{"frensî"}\r
+        fur{"friyolî"}\r
+        fy{"frîsî"}\r
+        ga{"îrî"}\r
+        gd{"gaelîka skotî"}\r
+        gez{"gez"}\r
+        gil{"kîrîbatî"}\r
+        gl{"galîsî"}\r
+        gn{"guwaranî"}\r
+        gor{"gorontaloyî"}\r
+        gsw{"elmanîşî"}\r
+        gu{"gujaratî"}\r
+        gv{"manksî"}\r
+        ha{"hawsayî"}\r
+        haw{"hawayî"}\r
+        he{"îbranî"}\r
+        hi{"hindî"}\r
+        hil{"hîlîgaynonî"}\r
+        hr{"xirwatî"}\r
+        hsb{"sorbiya jorîn"}\r
+        ht{"haîtî"}\r
+        hu{"mecarî"}\r
+        hy{"ermenî"}\r
+        hz{"hereroyî"}\r
+        ia{"interlingua"}\r
+        id{"indonezî"}\r
+        ig{"îgboyî"}\r
+        ilo{"îlokanoyî"}\r
+        inh{"îngûşî"}\r
+        io{"îdoyî"}\r
+        is{"îzlendî"}\r
+        it{"îtalî"}\r
+        iu{"înuîtî"}\r
+        ja{"japonî"}\r
+        jbo{"lojbanî"}\r
+        jv{"javayî"}\r
+        ka{"gurcî"}\r
+        kab{"kabîlî"}\r
+        kea{"kapverdî"}\r
+        kk{"qazaxî"}\r
+        kl{"kalalîsûtî"}\r
+        km{"ximêrî"}\r
+        kn{"kannadayî"}\r
+        ko{"koreyî"}\r
+        kok{"konkanî"}\r
+        ks{"keşmîrî"}\r
+        ksh{"rîpwarî"}\r
+        ku{"kurdî"}\r
+        kv{"komî"}\r
+        kw{"kornî"}\r
+        ky{"kirgizî"}\r
+        lad{"ladînoyî"}\r
+        lb{"luksembûrgî"}\r
+        lez{"lezgînî"}\r
+        lg{"lugandayî"}\r
+        li{"lîmbûrgî"}\r
+        lkt{"lakotayî"}\r
+        ln{"lingalayî"}\r
+        lo{"lawsî"}\r
+        lrc{"luriya bakur"}\r
+        lt{"lîtwanî"}\r
+        lv{"latviyayî"}\r
+        mad{"madurayî"}\r
+        mas{"masayî"}\r
+        mdf{"mokşayî"}\r
+        mg{"malagasî"}\r
+        mh{"marşalî"}\r
+        mi{"maorî"}\r
+        mic{"mîkmakî"}\r
+        min{"mînangkabawî"}\r
+        mk{"makedonî"}\r
+        ml{"malayalamî"}\r
+        mn{"mongolî"}\r
+        moh{"mohawkî"}\r
+        mr{"maratî"}\r
+        ms{"malezî"}\r
+        mt{"maltayî"}\r
+        my{"burmayî"}\r
+        myv{"erzayî"}\r
+        mzn{"mazenderanî"}\r
+        na{"nawrûyî"}\r
+        nap{"napolîtanî"}\r
+        nb{"norwecî (bokmål)"}\r
+        ne{"nepalî"}\r
+        niu{"nîwî"}\r
+        nl{"holendî"}\r
+        nl_BE{"flamî"}\r
+        nn{"norwecî (nynorsk)"}\r
+        nso{"sotoyiya bakur"}\r
+        nv{"navajoyî"}\r
+        oc{"oksîtanî"}\r
+        om{"oromoyî"}\r
+        or{"oriyayî"}\r
+        os{"osetî"}\r
+        pa{"puncabî"}\r
+        pam{"kapampanganî"}\r
+        pap{"papyamentoyî"}\r
+        pau{"palawî"}\r
+        pl{"polonî"}\r
+        prg{"prûsyayî"}\r
+        ps{"peştûyî"}\r
+        pt{"portugalî"}\r
+        qu{"keçwayî"}\r
+        rap{"rapanuyî"}\r
+        rar{"rarotongî"}\r
+        rm{"romancî"}\r
+        ro{"romanî"}\r
+        ru{"rusî"}\r
+        rup{"aromanî"}\r
+        rw{"kînyariwandayî"}\r
+        sa{"sanskrîtî"}\r
+        sc{"sardînî"}\r
+        scn{"sicîlî"}\r
+        sco{"skotî"}\r
+        sd{"sindhî"}\r
+        se{"samiya bakur"}\r
+        si{"kîngalî"}\r
+        sk{"slovakî"}\r
+        sl{"slovenî"}\r
+        sm{"samoayî"}\r
+        smn{"samiya înarî"}\r
+        sn{"şonayî"}\r
+        so{"somalî"}\r
+        sq{"elbanî"}\r
+        sr{"sirbî"}\r
+        srn{"sirananî"}\r
+        ss{"swazî"}\r
+        st{"sotoyiya başûr"}\r
+        su{"sundanî"}\r
+        sv{"swêdî"}\r
+        sw{"swahîlî"}\r
+        swb{"komorî"}\r
+        syr{"siryanî"}\r
+        ta{"tamîlî"}\r
+        te{"telûgûyî"}\r
+        tet{"tetûmî"}\r
+        tg{"tacikî"}\r
+        th{"tayî"}\r
+        ti{"tigrînî"}\r
+        tk{"tirkmenî"}\r
+        tlh{"klîngonî"}\r
+        tn{"tswanayî"}\r
+        to{"tongî"}\r
+        tpi{"tokpisinî"}\r
+        tr{"tirkî"}\r
+        trv{"tarokoyî"}\r
+        ts{"tsongayî"}\r
+        tt{"teterî"}\r
+        tum{"tumbukayî"}\r
+        tvl{"tuvalûyî"}\r
+        ty{"tahîtî"}\r
+        tzm{"temazîxtî"}\r
+        udm{"udmurtî"}\r
+        ug{"oygurî"}\r
+        uk{"ukraynî"}\r
+        ur{"urdûyî"}\r
+        uz{"ozbekî"}\r
+        vi{"viyetnamî"}\r
+        vo{"volapûkî"}\r
+        wa{"walonî"}\r
+        war{"warayî"}\r
+        wo{"wolofî"}\r
+        xh{"xosayî"}\r
+        yi{"yidîşî"}\r
+        yo{"yorubayî"}\r
+        yue{"kantonî"}\r
+        zu{"zuluyî"}\r
+        zza{"zazakî"}\r
+    }\r
+    Languages%short{\r
+        az{"azerî"}\r
+    }\r
+    Scripts{\r
+        Arab{"erebî"}\r
+        Armn{"ermenî"}\r
+        Beng{"bengalî"}\r
+        Cyrl{"kirîlî"}\r
+        Deva{"devanagarî"}\r
+        Geor{"gurcî"}\r
+        Grek{"yewnanî"}\r
+        Khmr{"ximêrî"}\r
+        Latn{"latînî"}\r
+        Mong{"mongolî"}\r
+        Tibt{"tîbetî"}\r
+        Zsym{"sembol"}\r
+        Zxxx{"ne nivîsandî"}\r
+        Zyyy{"hevpar"}\r
+        Zzzz{"nivîsa nenas"}\r
+    }\r
+    Types{\r
+        calendar{\r
+            chinese{"salnameya çînî"}\r
+            gregorian{"salnameya gregorî"}\r
+            hebrew{"salnameya îbranî"}\r
+            islamic{"salnameya koçî"}\r
+            iso8601{"salnameya ISO-8601"}\r
+            japanese{"salnameya japonî"}\r
+            persian{"salnameya îranî"}\r
+            roc{"salnameya Komara Çînê"}\r
+        }\r
+        numbers{\r
+            roman{"hejmarên romî"}\r
+        }\r
+    }\r
+    Version{"2.1.44.82"}\r
+    codePatterns{\r
+        language{"ziman: {0}"}\r
+        script{"nivîs: {0}"}\r
+        territory{"herêm: {0}"}\r
+    }\r
+    localeDisplayPattern{\r
+        keyTypePattern{"{0}: {1}"}\r
+        pattern{"{0} ({1})"}\r
+        separator{"{0}, {1}"}\r
+    }\r
+}\r
index 876dc02adc9f2bf8af94c7048c95ca618c9ba143..0f2ee8d2a3e88ace02fe186aec87249399c805dc 100644 (file)
@@ -4,5 +4,5 @@ kw{
     Languages{\r
         kw{"kernewek"}\r
     }\r
-    Version{"2.1.38.69"}\r
+    Version{"2.1.43.65"}\r
 }\r
index bc5b7a145c28fd557d6567b929451fc392292f6a..11e05c8b59f72c6a90cd62da6074b4bdfaa16803 100644 (file)
@@ -94,6 +94,7 @@ ky{
         eka{"экажукча"}\r
         el{"грекче"}\r
         en{"англисче"}\r
+        en_US{"англисче (Америка Кошмо Штаттары)"}\r
         eo{"эсперанто"}\r
         es{"испанча"}\r
         es_ES{"испанча (Европа)"}\r
@@ -251,7 +252,7 @@ ky{
         nan{"nan"}\r
         nap{"неополитанча"}\r
         naq{"намача"}\r
-        nb{"ноÑ\80вежÑ\87е (Ð\91укмал)"}\r
+        nb{"ноÑ\80вежÑ\87е (букмал)"}\r
         nd{"түндүк ндыбелче"}\r
         nds{"төмөнкү немисче"}\r
         nds_NL{"төмөнкү саксончо"}\r
@@ -539,7 +540,7 @@ ky{
             tibt{"Тибет сандары"}\r
         }\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.65"}\r
     characterLabelPattern{\r
         all{"{0} — баары"}\r
         category-list{"{0}: {1}"}\r
index 69b47a18289beaeae2a1119b6cec1837e05601be..6e693bea069c60cb2ba18dde5470e7b90b5ec610 100644 (file)
@@ -875,7 +875,7 @@ lb{
         VALENCIA{"Valencianesch"}\r
         WADEGILE{"Wade-Giles"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.91"}\r
     codePatterns{\r
         language{"Sprooch: {0}"}\r
         script{"Schrëft: {0}"}\r
index 7f4f9ddf4b00e918ed0a17c07b3fa811721b2972..0b8eaf052ed7e7c6de5b793b7eeaa797a1cefb7a 100644 (file)
@@ -158,6 +158,7 @@ lo{
         fon{"ຟອນ"}\r
         fr{"ຝຣັ່ງ"}\r
         fr_CA{"ຟລັງ(ການາດາ)"}\r
+        fr_CH{"ຝຣັ່ງ (ສວິສ)"}\r
         frm{"ຟຮັ່ງເສດກາງ"}\r
         fro{"ຟຮັ່ງເສດໂບຮານ"}\r
         frr{"ຟຣີຊຽນເໜືອ"}\r
@@ -382,6 +383,7 @@ lo{
         pi{"ປາລີ"}\r
         pl{"ໂປລິຊ"}\r
         pon{"ພອນເພ"}\r
+        prg{"ປຣັສຊຽນ"}\r
         pro{"ໂປວອງຊານໂບຮານ"}\r
         ps{"ປາສໂຕ"}\r
         pt{"ປອກຕຸຍກິສ"}\r
@@ -875,7 +877,7 @@ lo{
         VALLADER{"ວັລລາເດີ"}\r
         WADEGILE{"ການຖອດອັກສອນແບບເວດ-ໄຈລ໌"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.50"}\r
     characterLabelPattern{\r
         all{"{0} — ທັງໝົດ"}\r
         category-list{"{0}: {1}"}\r
index b9dbd9c3963b71066252897069ed73005d3ebb98..09dc8340c720b63855ec343762d222c1dd66d5b1 100644 (file)
@@ -296,7 +296,7 @@ lrc{
             latn{"عأدأدیا لاتین"}\r
         }\r
     }\r
-    Version{"2.1.38.69"}\r
+    Version{"2.1.43.65"}\r
     codePatterns{\r
         language{"{0}"}\r
         script{"{0}"}\r
index 74da8b421de328f14a9e8530a96b32d378f3610f..93d3a1663a1f2cbb8d0cf989f49c859df840a1b0 100644 (file)
@@ -1023,7 +1023,7 @@ lt{
         VALENCIA{"Valenciečiai"}\r
         WADEGILE{"Wade-Giles Romanization"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.91"}\r
     characterLabelPattern{\r
         all{"{0} – visi"}\r
         category-list{"{0}: {1}"}\r
index 6f91af396e82e825591848326ee56df0256cab91..c52e748c1afa46e22b20369586b5be85c7478368 100644 (file)
@@ -110,7 +110,7 @@ lv{
         cop{"koptu"}\r
         cr{"krī"}\r
         crh{"Krimas tatāru"}\r
-        crs{"kreolu franču"}\r
+        crs{"franciskā kreoliskā valoda (Seišelu salas)"}\r
         cs{"čehu"}\r
         csb{"kašubu"}\r
         cu{"baznīcslāvu"}\r
@@ -121,7 +121,7 @@ lv{
         dar{"dargu"}\r
         dav{"taitu"}\r
         de{"vācu"}\r
-        de_CH{"Šveices augšvācu"}\r
+        de_CH{"augšvācu (Šveice)"}\r
         del{"delavēru"}\r
         den{"sleivu"}\r
         dgr{"dogribu"}\r
@@ -144,6 +144,7 @@ lv{
         el{"grieķu"}\r
         elx{"elamiešu"}\r
         en{"angļu"}\r
+        en_GB{"angļu (Lielbritānija)"}\r
         enm{"vidusangļu"}\r
         eo{"esperanto"}\r
         es{"spāņu"}\r
@@ -172,7 +173,7 @@ lv{
         gag{"gagauzu"}\r
         gay{"gajo"}\r
         gba{"gbaju"}\r
-        gd{"gēlu"}\r
+        gd{"skotu gēlu"}\r
         gez{"gēzu"}\r
         gil{"kiribatiešu"}\r
         gl{"galisiešu"}\r
@@ -380,7 +381,7 @@ lv{
         pam{"pampanganu"}\r
         pap{"papjamento"}\r
         pau{"palaviešu"}\r
-        pcm{"pidžins"}\r
+        pcm{"Nigērijas pidžinvaloda"}\r
         peo{"senpersu"}\r
         phn{"feniķiešu"}\r
         pi{"pāli"}\r
@@ -457,7 +458,7 @@ lv{
         sux{"šumeru"}\r
         sv{"zviedru"}\r
         sw{"svahili"}\r
-        sw_CD{"Kongo svahili"}\r
+        sw_CD{"svahili (Kongo)"}\r
         swb{"komoru"}\r
         syc{"klasiskā sīriešu"}\r
         syr{"sīriešu"}\r
@@ -529,7 +530,7 @@ lv{
         zap{"sapoteku"}\r
         zbl{"blissimbolika"}\r
         zen{"zenagu"}\r
-        zgh{"standarta marokāņu berberu"}\r
+        zgh{"standarta tamazigtu (Maroka)"}\r
         zh{"ķīniešu"}\r
         zh_Hans{"ķīniešu vienkāršotā"}\r
         zh_Hant{"ķīniešu tradicionālā"}\r
@@ -540,6 +541,7 @@ lv{
     }\r
     Languages%short{\r
         az{"azerbaidžāņu"}\r
+        en_GB{"angļu (Lielbritānija)"}\r
         en_US{"angļu (ASV)"}\r
     }\r
     Scripts{\r
@@ -567,15 +569,15 @@ lv{
         Guru{"pandžabu"}\r
         Hanb{"haņu ar bopomofo"}\r
         Hang{"hangils"}\r
-        Hani{"ķīniešu"}\r
+        Hani{"haņu"}\r
         Hans{"vienkāršotā"}\r
         Hant{"tradicionālā"}\r
         Hebr{"ivrits"}\r
         Hira{"hiragana"}\r
-        Hrkt{"katakana vai hiragana"}\r
+        Hrkt{"japāņu zilbju alfabēts"}\r
         Hung{"senungāru"}\r
         Ital{"vecitāļu"}\r
-        Jamo{"amo"}\r
+        Jamo{"jamo"}\r
         Java{"javiešu"}\r
         Jpan{"japāņu"}\r
         Kana{"katakana"}\r
@@ -796,7 +798,7 @@ lv{
         VALENCIA{"valensiešu"}\r
         WADEGILE{"Veida-Džailza romanizācija"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.91"}\r
     characterLabelPattern{\r
         all{"{0} — visas"}\r
         category-list{"{0}: {1}"}\r
index 5240cf31f83eccee140e6bed9139ee114c64531b..e57c84f5e06bd65c64bddc28f68e061fc3400376 100644 (file)
@@ -48,5 +48,5 @@ mg{
         zh{"Sinoa, Mandarin"}\r
         zu{"Zolò"}\r
     }\r
-    Version{"2.1.39.11"}\r
+    Version{"2.1.43.94"}\r
 }\r
diff --git a/source/data/lang/mi.txt b/source/data/lang/mi.txt
new file mode 100644 (file)
index 0000000..5194978
--- /dev/null
@@ -0,0 +1,71 @@
+// © 2016 and later: Unicode, Inc. and others.\r
+// License & terms of use: http://www.unicode.org/copyright.html#License\r
+mi{\r
+    Languages{\r
+        de{"Tiamana"}\r
+        de_AT{"Tiamana Atiria"}\r
+        de_CH{"Tiamana Ōkawa Huiterangi"}\r
+        en{"Ingarihi"}\r
+        en_AU{"Ingarihi Ahitereiriana"}\r
+        en_CA{"Ingarihi Kānata"}\r
+        en_GB{"Ingarihi Piritene"}\r
+        en_US{"Ingarihi Amerikana"}\r
+        es{"Paniora"}\r
+        es_419{"Paniora Amerika ki te Tonga"}\r
+        es_ES{"Paniora Uropi"}\r
+        es_MX{"Paniora Mēhikana"}\r
+        fr{"Wīwī"}\r
+        fr_CA{"Wīwī Kānata"}\r
+        fr_CH{"Wīwī Huiterangi"}\r
+        it{"Ītariana"}\r
+        ja{"Hapanihi"}\r
+        mi{"Māori"}\r
+        pt{"Pōtikī"}\r
+        pt_BR{"Pōtikī Parahi"}\r
+        pt_PT{"Pōtikī Uropi"}\r
+        ru{"Ruhiana"}\r
+        und{"Reo Tē Mōhiotia"}\r
+        zh{"Hainamana"}\r
+        zh_Hans{"Hainamana Māmā"}\r
+        zh_Hant{"Hainamana Tukuiho"}\r
+    }\r
+    Languages%short{\r
+        en_GB{"Ingarihi UK"}\r
+        en_US{"Ingarihi US"}\r
+    }\r
+    Scripts{\r
+        Arab{"Arapika"}\r
+        Cyrl{"Hīririki"}\r
+        Hans{"Māmā"}\r
+        Hant{"Tukuiho"}\r
+        Latn{"Rātina"}\r
+        Zxxx{"Tuhikore"}\r
+        Zzzz{"Momotuhi Tē Mōhiotia"}\r
+    }\r
+    Scripts%stand-alone{\r
+        Hans{"Hana Māmā"}\r
+        Hant{"Hana Tukuiho"}\r
+    }\r
+    Types{\r
+        calendar{\r
+            gregorian{"Maramataka Pākehā"}\r
+        }\r
+        collation{\r
+            standard{"Raupapa Kōmaka Arowhānui"}\r
+        }\r
+        numbers{\r
+            latn{"Ngā Mati Pākehā"}\r
+        }\r
+    }\r
+    Version{"2.1.44.15"}\r
+    codePatterns{\r
+        language{"{0}"}\r
+        script{"{0}"}\r
+        territory{"{0}"}\r
+    }\r
+    localeDisplayPattern{\r
+        keyTypePattern{"{0}: {1}"}\r
+        pattern{"{0} ({1})"}\r
+        separator{"{0}, {1}"}\r
+    }\r
+}\r
index 7757512fac3c1da549f8d1768aad640b5af560e2..331ff17543e36e41521461da7ea349bab683e6f6 100644 (file)
@@ -834,7 +834,7 @@ mk{
             big5han{"Традиционално кинеско сортирање"}\r
             compat{"Претходно подредување"}\r
             dictionary{"Подредување по азбучен редослед"}\r
-            ducet{"Стандардно сортирање во уникод"}\r
+            ducet{"Стандардно подредување во уникод"}\r
             emoji{"Подредување емотикони"}\r
             eor{"Европски правила за подредување"}\r
             gb2312han{"Поедноставено кинеско сортирање"}\r
@@ -843,7 +843,7 @@ mk{
             reformed{"Реформирано подредување"}\r
             search{"Општо пребарување"}\r
             searchjl{"Пребарување според почетна согласка хангул"}\r
-            standard{"Стандардно сортирање"}\r
+            standard{"Стандардно подредување"}\r
             stroke{"Ритмички редослед"}\r
             traditional{"Традиционално сортирање"}\r
             unihan{"Подредување унихан"}\r
@@ -908,7 +908,7 @@ mk{
         PINYIN{"Пинјин романизација"}\r
         WADEGILE{"Вејд-Џајлс романизација"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.65"}\r
     characterLabelPattern{\r
         all{"{0} - сите"}\r
         category-list{"{0}: {1}"}\r
index 36d56b0b61c2ad6dd1ee3ba746702bb7ee1dcd56..31ec7acff75c2a588c806fc217cf44752c2f8f03 100644 (file)
@@ -899,7 +899,7 @@ ml{
         POSIX{"കമ്പ്യൂട്ടർ"}\r
         REVISED{"പരിഷ്ക്കരിച്ച ലിപി"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.50"}\r
     characterLabelPattern{\r
         all{"{0} — എല്ലാം"}\r
         category-list{"{0}: {1}"}\r
index 3674ff02715a93fc3ca045b4dc274bf70772d67e..27b34faf1b9a740d613d2c1d863b481551156246 100644 (file)
@@ -2,14 +2,14 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 mn{\r
     Keys{\r
-        calendar{"Ñ\85Ñ\83анли"}\r
-        cf{"валÑ\8eÑ\82Ñ\8bн Ñ\84оÑ\80маÑ\82"}\r
-        collation{"Захиалга ялгах"}\r
+        calendar{"Ñ\86аглаваÑ\80"}\r
+        cf{"мөнгөн Ñ\82Ñ\8dмдÑ\8dгÑ\82ийн Ñ\85Ñ\8dлбÑ\8dÑ\80"}\r
+        collation{"эрэмбэлэх дараалал"}\r
         currency{"мөнгөн тэмдэгт"}\r
-        hc{"Цагийн горим (12 эсвэл 24)"}\r
-        lb{"Ð\9cөрийн зайн загвар"}\r
-        ms{"Ð¥Ñ\8dмжүүÑ\80ийн систем"}\r
-        numbers{"Тоо"}\r
+        hc{"цагийн мөчлөг (12 эсвэл 24)"}\r
+        lb{"мөрийн зайн загвар"}\r
+        ms{"нÑ\8dгжийн систем"}\r
+        numbers{"тоо"}\r
     }\r
     Languages{\r
         aa{"афар"}\r
@@ -17,7 +17,7 @@ mn{
         ace{"ачин"}\r
         ada{"адангмэ"}\r
         ady{"адигэ"}\r
-        af{"африк"}\r
+        af{"африкаанс"}\r
         agq{"агем"}\r
         ain{"айну"}\r
         ak{"акан"}\r
@@ -64,11 +64,11 @@ mn{
         chk{"чуук"}\r
         chm{"мари хэл"}\r
         cho{"чоктау"}\r
-        chr{"Ñ\87ироки"}\r
+        chr{"Ñ\87ероки"}\r
         chy{"чэенн"}\r
         ckb{"төв курд"}\r
         co{"корсик"}\r
-        crs{"сеселва креолын франц"}\r
+        crs{"сеселва креол франц"}\r
         cs{"чех"}\r
         cu{"сүмийн славян"}\r
         cv{"чуваш"}\r
@@ -79,7 +79,7 @@ mn{
         dav{"тайта"}\r
         de{"герман"}\r
         de_AT{"австри-герман"}\r
-        de_CH{"швейцари дээр герман"}\r
+        de_CH{"швейцарь-герман"}\r
         dgr{"догриб"}\r
         dje{"зарма"}\r
         dsb{"доод сорби"}\r
@@ -108,8 +108,8 @@ mn{
         ewo{"эвондо"}\r
         fa{"перс"}\r
         ff{"фула"}\r
-        fi{"финлянд"}\r
-        fil{"Ñ\84илиппин"}\r
+        fi{"фин"}\r
+        fil{"Ñ\84илипино"}\r
         fj{"фижи"}\r
         fo{"фарер"}\r
         fon{"фон"}\r
@@ -140,8 +140,8 @@ mn{
         hmn{"хмонг"}\r
         hr{"хорват"}\r
         hsb{"дээд сорби"}\r
-        ht{"гаитийн креол"}\r
-        hu{"унгар"}\r
+        ht{"Ð\93аитийн креол"}\r
+        hu{"мажар"}\r
         hup{"хупа"}\r
         hy{"армен"}\r
         hz{"хереро"}\r
@@ -177,7 +177,7 @@ mn{
         khq{"койра чини"}\r
         ki{"кикуюү"}\r
         kj{"куаньяма"}\r
-        kk{"хасаг"}\r
+        kk{"казах"}\r
         kkj{"како"}\r
         kl{"калалисут"}\r
         kln{"каленжин"}\r
@@ -193,7 +193,7 @@ mn{
         krl{"карель"}\r
         kru{"курук"}\r
         ks{"кашмир"}\r
-        ksb{"шамбала"}\r
+        ksb{"шамбал"}\r
         ksf{"бафиа"}\r
         ksh{"кёльш"}\r
         ku{"курд"}\r
@@ -290,7 +290,7 @@ mn{
         pcm{"нигерийн пиджин"}\r
         pl{"польш"}\r
         prg{"прусс"}\r
-        ps{"пашто"}\r
+        ps{"пушту"}\r
         pt{"португал"}\r
         pt_BR{"португал хэл (Бразил)"}\r
         pt_PT{"португал хэл (Европ)"}\r
@@ -374,7 +374,7 @@ mn{
         twq{"тасавак"}\r
         ty{"таити"}\r
         tyv{"тува"}\r
-        tzm{"төв атласын тамазайт"}\r
+        tzm{"Төв Атласын тамазайт"}\r
         udm{"удмурт"}\r
         ug{"уйгур"}\r
         uk{"украин"}\r
@@ -400,7 +400,7 @@ mn{
         yi{"иддиш"}\r
         yo{"ёруба"}\r
         yue{"кантон"}\r
-        zgh{"тамазит"}\r
+        zgh{"Мороккогийн стандарт тамазайт"}\r
         zh{"хятад"}\r
         zh_Hans{"хялбаршуулсан хятад"}\r
         zh_Hant{"уламжлалт хятад"}\r
@@ -417,7 +417,7 @@ mn{
     Scripts{\r
         Arab{"араб"}\r
         Armn{"армени"}\r
-        Beng{"бенгал хэл"}\r
+        Beng{"бенгал"}\r
         Bopo{"вопомофо"}\r
         Brai{"брайл"}\r
         Cyrl{"кирилл"}\r
@@ -466,25 +466,25 @@ mn{
     }\r
     Types{\r
         calendar{\r
-            buddhist{"бÑ\83ддÑ\8bн Ñ\85Ñ\83анли"}\r
-            chinese{"Ñ\85Ñ\8fÑ\82ад Ñ\85Ñ\83анли"}\r
-            dangi{"данги Ñ\85Ñ\83анли"}\r
-            ethiopic{"Ñ\8dÑ\82иоп Ñ\85Ñ\83анли"}\r
-            gregorian{"гÑ\80егоÑ\80ийн Ñ\85Ñ\83анли"}\r
-            hebrew{"евÑ\80ей Ñ\85Ñ\83анли"}\r
-            islamic{"иÑ\81ламÑ\8bн Ñ\85Ñ\83анли"}\r
-            iso8601{"ISO-8601 Ñ\85Ñ\83анли"}\r
-            japanese{"Ñ\8fпон Ñ\85Ñ\83анли"}\r
-            persian{"пеÑ\80Ñ\81 Ñ\85Ñ\83анли"}\r
-            roc{"минго Ñ\85Ñ\83анли"}\r
+            buddhist{"бÑ\83ддÑ\8bн Ñ\86аглаваÑ\80"}\r
+            chinese{"Ñ\85Ñ\8fÑ\82ад Ñ\86аглаваÑ\80"}\r
+            dangi{"данги Ñ\86аглаваÑ\80"}\r
+            ethiopic{"Ñ\8dÑ\82иоп Ñ\86аглаваÑ\80"}\r
+            gregorian{"гÑ\80егоÑ\80ийн Ñ\86аглаваÑ\80"}\r
+            hebrew{"евÑ\80ей Ñ\86аглаваÑ\80"}\r
+            islamic{"иÑ\81ламÑ\8bн Ñ\86аглаваÑ\80"}\r
+            iso8601{"ISO-8601 Ñ\86аглаваÑ\80"}\r
+            japanese{"Ñ\8fпон Ñ\86аглаваÑ\80"}\r
+            persian{"пеÑ\80Ñ\81 Ñ\86аглаваÑ\80"}\r
+            roc{"минго Ñ\86аглаваÑ\80"}\r
         }\r
         cf{\r
-            account{"Ð\9dÑ\8fгÑ\82лангийн Ð²Ð°Ð»Ñ\8eÑ\82Ñ\8bн Ñ\84оÑ\80маÑ\82"}\r
-            standard{"стандарт валютын формат"}\r
+            account{"мөнгөн Ñ\82Ñ\8dмдÑ\8dгÑ\82ийн Ð½Ñ\8fгÑ\82лан Ð±Ð¾Ð´Ð¾Ñ\85 Ð±Ò¯Ñ\80Ñ\82гÑ\8dлийн Ñ\85Ñ\8dлбÑ\8dÑ\80"}\r
+            standard{"мөнгөн тэмдэгтийн стандарт хэлбэр"}\r
         }\r
         collation{\r
             ducet{"юникодын үндсэн эрэмбэлэх дараалал"}\r
-            search{"ерөнхий зорилготой хайлт"}\r
+            search{"ерөнхий хайлт"}\r
             standard{"стандарт эрэмбэлэх дараалал"}\r
         }\r
         hc{\r
@@ -500,14 +500,14 @@ mn{
         }\r
         ms{\r
             metric{"метрийн систем"}\r
-            uksystem{"английн Ñ\85Ñ\8dмжүүÑ\80ийн систем"}\r
-            ussystem{"амеÑ\80ик Ñ\85Ñ\8dмжүүÑ\80ийн систем"}\r
+            uksystem{"Ð\90нгли Ð½Ñ\8dгжийн систем"}\r
+            ussystem{"Ð\90меÑ\80ик Ð½Ñ\8dгжийн систем"}\r
         }\r
         numbers{\r
             arab{"араб-энэтхэг тоо"}\r
             arabext{"өргөтгөсөн араб-энэтхэг тоо"}\r
-            armn{"армени тоо"}\r
-            armnlow{"жижиг армени тоо"}\r
+            armn{"армен тоо"}\r
+            armnlow{"жижиг армен тоо"}\r
             beng{"бенгал тоо"}\r
             deva{"деванагари тоо"}\r
             ethi{"этиоп тоо"}\r
@@ -516,7 +516,7 @@ mn{
             grek{"грек тоо"}\r
             greklow{"жижиг грек тоо"}\r
             gujr{"гүжарати тоо"}\r
-            guru{"гүрмүкхи тоо"}\r
+            guru{"гүрмүхи тоо"}\r
             hanidec{"хятад аравтын тоо"}\r
             hans{"хялбаршуулсан хятад тоо"}\r
             hansfin{"хялбаршуулсан хятад санхүүгийн тоо"}\r
@@ -537,12 +537,12 @@ mn{
             romanlow{"жижиг ром тоо"}\r
             taml{"уламжлалт тамил тоо"}\r
             tamldec{"тамил тоо"}\r
-            telu{"телүгү тоо"}\r
+            telu{"тэлүгү тоо"}\r
             thai{"тай тоо"}\r
             tibt{"төвд тоо"}\r
         }\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.94"}\r
     characterLabelPattern{\r
         all{"{0} - Бүгд"}\r
         category-list{"{0}: {1}"}\r
index 82983602aceb52e9923a6791a2dfe0967b1aa383..97f91e8a4d8a106f8987a901851c2725922091ca 100644 (file)
@@ -835,7 +835,7 @@ mr{
         PINYIN{"पिनयिन रोमनायझेशन"}\r
         WADEGILE{"वादे-गिलेस रोमनायझेशन"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.65"}\r
     characterLabelPattern{\r
         all{"{0} — सर्व"}\r
         category-list{"{0}: {1}"}\r
index d1665ee9d44db23e35b3e0fe3edb87ea227fdf82..20e247db283ab88cee7197ae24f6a3ef7d4bffe7 100644 (file)
@@ -717,7 +717,7 @@ ms{
     Variants{\r
         POSIX{"Komputer"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.91"}\r
     characterLabelPattern{\r
         all{"{0} — Semua"}\r
         category-list{"{0}: {1}"}\r
index 00efdf223cedf3b70660fbc2b98f8083172f5fb1..900169be9b4504f2df8e3d9bd06740cb51404a0c 100644 (file)
@@ -559,7 +559,7 @@ mt{
     Variants{\r
         REVISED{"Ortografija Irriveda"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.94"}\r
     codePatterns{\r
         language{"Lingwa: {0}"}\r
         script{"Skript: {0}"}\r
index ad2c6fd864cf803305fe1d26b53763b8d314e2d4..4dd3d7ca88e8057156a480221e2db0324465fd36 100644 (file)
@@ -145,7 +145,7 @@ my{
         ha{"ဟာဥစာ"}\r
         haw{"ဟာဝိုင်ယီ"}\r
         he{"ဟီးဘရူး"}\r
-        hi{"á\80\9fá\80­á\80\94á\80¹ဒူ"}\r
+        hi{"á\80\9fá\80­á\80\94á\80ºဒူ"}\r
         hil{"ဟီလီဂေနွန်"}\r
         hmn{"မုံ"}\r
         hr{"ခရိုအေးရှား"}\r
@@ -189,13 +189,13 @@ my{
         khq{"ကိုရာ ချီအီနီ"}\r
         ki{"ကီကူယူ"}\r
         kj{"ကွန်းယာမာ"}\r
-        kk{"á\80\80á\80¬á\80\87á\80¬á\80\81á\80º"}\r
+        kk{"á\80\80á\80¬á\80\87á\80¬á\80\81á\80»"}\r
         kkj{"ကကို"}\r
         kl{"ကလာအ်လီဆပ်"}\r
         kln{"ကလန်ဂျင်"}\r
         km{"ခမာ"}\r
         kmb{"ကင်ဘွန်ဒူ"}\r
-        kn{"á\80\80á\80\94á\80¹နာဒါ"}\r
+        kn{"á\80\80á\80\94á\80ºနာဒါ"}\r
         ko{"ကိုရီးယား"}\r
         koi{"ကိုမီ-ပါမြက်"}\r
         kok{"ကွန်ကနီ"}\r
@@ -262,7 +262,7 @@ my{
         mt{"မော်လ်တာ"}\r
         mua{"မွန်ဒန်း"}\r
         mul{"ဘာသာစကား အမျိုးမျိုး"}\r
-        mus{"á\80\81á\80\9bá\80­á\80\81á\80º"}\r
+        mus{"á\80\81á\80\9bá\80­á\80\81á\80»"}\r
         mwl{"မီရန်ဒီးဇ်"}\r
         my{"မြန်မာ"}\r
         myv{"အီဇယာ"}\r
@@ -350,7 +350,7 @@ my{
         sma{"တောင် ဆာမိ"}\r
         smj{"လူလီ ဆာမိ"}\r
         smn{"အီနာရီ ဆာမိ"}\r
-        sms{"á\80\85á\80\81á\80­á\80¯á\80¸á\80\9cá\80º á\80\86á\80\99á\80ºá\80\99á\80®"}\r
+        sms{"á\80\85á\80\81á\80­á\80¯á\80¸á\80\9cá\80º á\80\86á\80¬á\80\99á\80­"}\r
         sn{"ရှိုနာ"}\r
         snk{"ဆိုနင်ကေး"}\r
         so{"ဆိုမာလီ"}\r
@@ -387,7 +387,7 @@ my{
         tt{"တာတာ"}\r
         tum{"တမ်ဘူကာ"}\r
         tvl{"တူဗာလူ"}\r
-        twq{"á\80\90á\80¬á\80\86á\80¬á\80\9dá\80«á\80\81á\80º"}\r
+        twq{"á\80\90á\80¬á\80\86á\80¬á\80\9dá\80«á\80\81á\80»"}\r
         ty{"တဟီတီ"}\r
         tyv{"တူဗန်"}\r
         tzm{"အလယ်အာ့တလာစ် တာမာဇိုက်"}\r
@@ -434,7 +434,7 @@ my{
         Armn{"အာမေးနီးယား"}\r
         Beng{"ဘင်္ဂါလီ"}\r
         Bopo{"ဘိုပို"}\r
-        Brah{"á\80\97á\80¼á\80\9fá\80¹မမီ"}\r
+        Brah{"á\80\97á\80½á\80\9fá\80ºမမီ"}\r
         Brai{"ဘရေ"}\r
         Cyrl{"စစ်ရိလစ်"}\r
         Deva{"ဒီဗနာဂရီ"}\r
@@ -457,7 +457,7 @@ my{
         Kali{"ကယားလီ"}\r
         Kana{"ခတခန"}\r
         Khmr{"ခမာ"}\r
-        Knda{"á\80\81á\80\94á\80¹နာဒါ"}\r
+        Knda{"á\80\81á\80\94á\80ºနာဒါ"}\r
         Kore{"ကိုရီးယား"}\r
         Laoo{"လာအို"}\r
         Latn{"လက်တင်"}\r
@@ -580,7 +580,7 @@ my{
         REVISED{"ပြန်လည်စီစစ်ထားသော ရေးထုံး"}\r
         SCOTLAND{"စကော့ စံ အင်္ဂလိပ်"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.88"}\r
     characterLabelPattern{\r
         all{"{0} — အားလုံး"}\r
         category-list{"{0} − {1}"}\r
index dd378c41d91a7c8a3afef72afb20ee303d8ff48c..447e2e6e7be663d22f826693c434466fb1fbe4bf 100644 (file)
@@ -265,7 +265,7 @@ mzn{
         Hans{"ساده‌بَیی هان"}\r
         Hant{"استاندارد ِسنتی هانت"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.41.34"}\r
     codePatterns{\r
         language{"زوون: {0}"}\r
         script{"اسکریپت: {0}"}\r
index 44f3b30dc8eac4f84102dd2002d5df0bfacb4a55..f3d162b29e918d8b46f6703a8894b4884498da64 100644 (file)
@@ -741,7 +741,7 @@ nb{
         Ogam{"ogham"}\r
         Olck{"ol-chiki"}\r
         Orkh{"orkhon"}\r
-        Orya{"oriya"}\r
+        Orya{"odia"}\r
         Osma{"osmanya"}\r
         Palm{"palmyrensk"}\r
         Pauc{"pau cin hau"}\r
@@ -753,54 +753,6 @@ nb{
         Phnx{"fønikisk"}\r
         Plrd{"pollard-fonetisk"}\r
         Prti{"inskripsjonsparthisk"}\r
-        Qaaa{"qaaa"}\r
-        Qaab{"qaab"}\r
-        Qaac{"qaac"}\r
-        Qaad{"qaad"}\r
-        Qaae{"qaae"}\r
-        Qaaf{"qaaf"}\r
-        Qaag{"qaag"}\r
-        Qaah{"qaah"}\r
-        Qaak{"qaak"}\r
-        Qaal{"qaal"}\r
-        Qaam{"qaam"}\r
-        Qaan{"qaan"}\r
-        Qaao{"qaao"}\r
-        Qaap{"qaap"}\r
-        Qaaq{"qaaq"}\r
-        Qaar{"qaar"}\r
-        Qaas{"qaas"}\r
-        Qaat{"qaat"}\r
-        Qaau{"qaau"}\r
-        Qaav{"qaav"}\r
-        Qaaw{"qaaw"}\r
-        Qaax{"qaax"}\r
-        Qaay{"qaay"}\r
-        Qaaz{"qaaz"}\r
-        Qaba{"qaba"}\r
-        Qabb{"qabb"}\r
-        Qabc{"qabc"}\r
-        Qabd{"qabd"}\r
-        Qabe{"qabe"}\r
-        Qabf{"qafb"}\r
-        Qabg{"qabg"}\r
-        Qabh{"qabh"}\r
-        Qabi{"qabi"}\r
-        Qabj{"qabj"}\r
-        Qabk{"qabk"}\r
-        Qabl{"qabl"}\r
-        Qabm{"qabm"}\r
-        Qabn{"qabn"}\r
-        Qabo{"qabo"}\r
-        Qabp{"qabp"}\r
-        Qabq{"qabq"}\r
-        Qabr{"qabr"}\r
-        Qabs{"qabs"}\r
-        Qabt{"qabt"}\r
-        Qabu{"qabu"}\r
-        Qabv{"qabv"}\r
-        Qabw{"qabw"}\r
-        Qabx{"qabx"}\r
         Rjng{"rejang"}\r
         Roro{"rongorongo"}\r
         Runr{"runer"}\r
@@ -813,7 +765,7 @@ nb{
         Shrd{"sharada"}\r
         Sidd{"siddham"}\r
         Sind{"khudawadi"}\r
-        Sinh{"sinhala"}\r
+        Sinh{"singalesisk"}\r
         Sora{"sora sompeng"}\r
         Sund{"sundanesisk"}\r
         Sylo{"syloti nagri"}\r
@@ -1097,7 +1049,7 @@ nb{
         VALLADER{"vallader"}\r
         WADEGILE{"Wade-Giles-romanisering"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.2"}\r
     characterLabelPattern{\r
         all{"{0} – alt"}\r
         category-list{"{0}: {1}"}\r
index 5486d7da059352010db5d0619a7a35ebe816cc3e..46b389342f1ddb0fbf46497f29956fdb597135af 100644 (file)
@@ -110,7 +110,7 @@ ne{
         chp{"चिपेव्यान"}\r
         chr{"चेरोकी"}\r
         chy{"चेयेन्ने"}\r
-        ckb{"à¤\95à¥\87नà¥\8dदà¥\8dरà¥\80य à¤\95à¥\81रà¥\8dदà¥\80"}\r
+        ckb{"मधà¥\8dयवरà¥\8dतà¥\80 à¤\95à¥\81रà¥\8dदिस"}\r
         co{"कोर्सिकन"}\r
         cop{"कोप्टिक"}\r
         cps{"कापिज्नोन"}\r
@@ -226,6 +226,7 @@ ne{
         ho{"हिरी मोटु"}\r
         hr{"क्रोयसियाली"}\r
         hsb{"माथिल्लो सोर्बियन"}\r
+        hsn{"जियाङ चिनियाँ"}\r
         ht{"हैटियाली क्रियोल"}\r
         hu{"हङ्गेरियाली"}\r
         hup{"हुपा"}\r
@@ -797,7 +798,7 @@ ne{
         AREVELA{"पूर्वी आर्मेनियाली"}\r
         POSIX{"कम्प्युटर"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.50"}\r
     characterLabelPattern{\r
         all{"{0}-सबै"}\r
         category-list{"{0}: {1}"}\r
index 474383f52d9d92415fcd81dc0d78a50e9ebc4da4..a7e103baf0ecb07d673dbef5ef2410891a256235 100644 (file)
@@ -660,6 +660,7 @@ nl{
         Cyrl{"Cyrillisch"}\r
         Cyrs{"Oudkerkslavisch Cyrillisch"}\r
         Deva{"Devanagari"}\r
+        Dogr{"Dogra"}\r
         Dsrt{"Deseret"}\r
         Dupl{"Duployan snelschrift"}\r
         Egyd{"Egyptisch demotisch"}\r
@@ -670,6 +671,7 @@ nl{
         Geok{"Georgisch Khutsuri"}\r
         Geor{"Georgisch"}\r
         Glag{"Glagolitisch"}\r
+        Gong{"Gunjala Gondi"}\r
         Gonm{"Masaram Gondi"}\r
         Goth{"Gothisch"}\r
         Gran{"Grantha"}\r
@@ -718,10 +720,12 @@ nl{
         Lyci{"Lycisch"}\r
         Lydi{"Lydisch"}\r
         Mahj{"Mahajani"}\r
+        Maka{"Makasar"}\r
         Mand{"Mandaeans"}\r
         Mani{"Manicheaans"}\r
         Marc{"Marchen"}\r
         Maya{"Mayahiërogliefen"}\r
+        Medf{"Medefaidrin"}\r
         Mend{"Mende"}\r
         Merc{"Meroitisch cursief"}\r
         Mero{"Meroïtisch"}\r
@@ -755,55 +759,8 @@ nl{
         Phnx{"Foenicisch"}\r
         Plrd{"Pollard-fonetisch"}\r
         Prti{"Inscriptioneel Parthisch"}\r
-        Qaaa{"Qaaa"}\r
-        Qaab{"Qaab"}\r
-        Qaac{"Qaac"}\r
-        Qaad{"Qaad"}\r
-        Qaae{"Qaae"}\r
-        Qaaf{"Qaaf"}\r
-        Qaag{"Qaag"}\r
-        Qaah{"Qaah"}\r
-        Qaak{"Qaak"}\r
-        Qaal{"Qaal"}\r
-        Qaam{"Qaam"}\r
-        Qaan{"Qaan"}\r
-        Qaao{"Qaao"}\r
-        Qaap{"Qaap"}\r
-        Qaaq{"Qaaq"}\r
-        Qaar{"Qaar"}\r
-        Qaas{"Qaas"}\r
-        Qaat{"Qaat"}\r
-        Qaau{"Qaau"}\r
-        Qaav{"Qaav"}\r
-        Qaaw{"Qaaw"}\r
-        Qaax{"Qaax"}\r
-        Qaay{"Qaay"}\r
-        Qaaz{"Qaaz"}\r
-        Qaba{"Qaba"}\r
-        Qabb{"Qabb"}\r
-        Qabc{"Qabc"}\r
-        Qabd{"Qabd"}\r
-        Qabe{"Qabe"}\r
-        Qabf{"Qabf"}\r
-        Qabg{"Qabg"}\r
-        Qabh{"Qabh"}\r
-        Qabi{"Qabi"}\r
-        Qabj{"Qabj"}\r
-        Qabk{"Qabk"}\r
-        Qabl{"Qabl"}\r
-        Qabm{"Qabm"}\r
-        Qabn{"Qabn"}\r
-        Qabo{"Qabo"}\r
-        Qabp{"Qabp"}\r
-        Qabq{"Qabq"}\r
-        Qabr{"Qabr"}\r
-        Qabs{"Qabs"}\r
-        Qabt{"Qabt"}\r
-        Qabu{"Qabu"}\r
-        Qabv{"Qabv"}\r
-        Qabw{"Qabw"}\r
-        Qabx{"Qabx"}\r
         Rjng{"Rejang"}\r
+        Rohg{"Hanifi Rohingya"}\r
         Roro{"Rongorongo"}\r
         Runr{"Runic"}\r
         Samr{"Samaritaans"}\r
@@ -816,6 +773,8 @@ nl{
         Sidd{"Siddham"}\r
         Sind{"Sindhi"}\r
         Sinh{"Singalees"}\r
+        Sogd{"Sogdisch"}\r
+        Sogo{"Oud Sogdisch"}\r
         Sora{"Sora Sompeng"}\r
         Soyo{"Soyombo"}\r
         Sund{"Soendanees"}\r
@@ -982,6 +941,7 @@ nl{
             finance{"Financiële cijfers"}\r
             fullwide{"cijfers met volledige breedte"}\r
             geor{"Georgische cijfers"}\r
+            gong{"Gunjala Gondi cijfers"}\r
             gonm{"Masaram Gondi cijfers"}\r
             grek{"Griekse cijfers"}\r
             greklow{"kleine Griekse cijfers"}\r
@@ -1024,6 +984,7 @@ nl{
             olck{"Ol Chiki cijfers"}\r
             orya{"Odia cijfers"}\r
             osma{"Osmanya cijfers"}\r
+            rohg{"Hanifi Rohingya cijfers"}\r
             roman{"Romeinse cijfers"}\r
             romanlow{"kleine Romeinse cijfers"}\r
             saur{"Saurashtra cijfers"}\r
@@ -1053,11 +1014,13 @@ nl{
         1994{"Gestandaardiseerde Resiaanse spelling"}\r
         1996{"Duitse spelling van 1996"}\r
         ABL1943{"Spellingsformulering van 1943"}\r
+        AKUAPEM{"Akuapem"}\r
         ALALC97{"Romanisering ALA-LC, editie 1997"}\r
         ALUKU{"Aloekoe-dialect"}\r
         AO1990{"Portugese spellingsovereenkomst van 1990"}\r
         AREVELA{"Oost-Armeens"}\r
         AREVMDA{"West-Armeens"}\r
+        ASANTE{"Asante"}\r
         BAKU1926{"Eenvormig Turkse Latijnse alfabet"}\r
         BALANKA{"Balanka-dialect van Anii"}\r
         BARLA{"Barlavento-dialectgroep van Kabuverdianu"}\r
@@ -1081,6 +1044,7 @@ nl{
         HSISTEMO{"H-sistemo"}\r
         IJEKAVSK{"Servisch met Ijekaviaanse uitspraak"}\r
         ITIHASA{"Episch Sanskriet"}\r
+        IVANCHOV{"Ivanchov"}\r
         JAUER{"Jauer"}\r
         JYUTPING{"Jyutping"}\r
         KKCOR{"Algemene spelling"}\r
@@ -1132,7 +1096,7 @@ nl{
         WADEGILE{"Wade-Giles-romanisering"}\r
         XSISTEMO{"X-sistemo"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.45.14"}\r
     characterLabelPattern{\r
         all{"{0} — alle"}\r
         category-list{"{0}: {1}"}\r
index 8e91a479f30b971d958b1d7a61530c3569d8ed93..91f3e656eefeed2b764ed41ba43b485db2be66e7 100644 (file)
@@ -761,7 +761,7 @@ nn{
         TARASK{"taraskievica-ortografi"}\r
         VALENCIA{"valensisk dialekt"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.94"}\r
     characterLabelPattern{\r
         all{"{0} – alt"}\r
         category-list{"{0}: {1}"}\r
index bddfc28338d7820de4b737c438f00e2df422e60b..6ee335b9610d67c835b70a02a0ef09ce5d83394a 100644 (file)
@@ -92,5 +92,5 @@ om{
     Scripts{\r
         Latn{"Latin"}\r
     }\r
-    Version{"2.1.38.69"}\r
+    Version{"2.1.43.94"}\r
 }\r
index ff24b918c1fbcfa6f768519714458ae6d6245711..c5bb883e2e368d8700d0a9ca6c0b705df1270051 100644 (file)
@@ -44,7 +44,7 @@ or{
         awa{"ଆୱାଧି"}\r
         ay{"ଆୟମାରା"}\r
         az{"ଆଜେରବାଇଜାନି"}\r
-        ba{"ବାଶକିର୍"}\r
+        ba{"ବାଶକିର୍"}\r
         bal{"ବାଲୁଚି"}\r
         ban{"ବାଲିନୀଜ୍"}\r
         bas{"ବାସା"}\r
@@ -59,12 +59,12 @@ or{
         bin{"ବିନି"}\r
         bla{"ସିକସିକା"}\r
         bm{"ବାମ୍ବାରା"}\r
-        bn{"ବà¬\99à­\8dà¬\97ାଳà­\80"}\r
+        bn{"ବà¬\99à­\8dà¬\97ଳା"}\r
         bo{"ତିବ୍ବତୀୟ"}\r
         br{"ବ୍ରେଟନ୍"}\r
         bra{"ବ୍ରାଜ୍"}\r
         brx{"ବୋଡୋ"}\r
-        bs{"à¬\95ାà¬\9fଲାନ୍"}\r
+        bs{"ବà­\8bସନିà¬\86ନ୍"}\r
         bua{"ବୁରିଆଟ୍"}\r
         bug{"ବୁଗୀନୀଜ୍"}\r
         byn{"ବ୍ଲିନ୍"}\r
@@ -206,7 +206,7 @@ or{
         io{"ଇଡୋ"}\r
         is{"ଆଇସଲାଣ୍ଡିକ୍"}\r
         it{"ଇଟାଲୀୟ"}\r
-        iu{"ଇନୁକଟୁତ୍‌"}\r
+        iu{"à¬\87ନà­\81à¬\95à¬\9fିà¬\9fà­\81ତà­\8dâ\80\8c"}\r
         ja{"ଜାପାନୀ"}\r
         jbo{"ଲୋଜବାନ୍"}\r
         jgo{"ନାଗୋମ୍ଵା"}\r
@@ -419,7 +419,7 @@ or{
         sma{"ଦକ୍ଷିଣ ସାମି"}\r
         smj{"ଲୁଲେ ସାମି"}\r
         smn{"ଇନାରୀ ସାମି"}\r
-        sms{"ସà­\8dà¬\95à­\8bଲà­\8dà¬\9f à¬¸à¬¾à¬®à­\80"}\r
+        sms{"ସà­\8dà¬\95à­\8bଲà­\8dà¬\9f à¬¸à¬¾à¬®à¬¿"}\r
         sn{"ଶୋନା"}\r
         snk{"ସୋନିଙ୍କେ"}\r
         so{"ସୋମାଲିଆ"}\r
@@ -551,7 +551,7 @@ or{
         Egyd{"ଇଜିପ୍ଟିଆନ୍ ଡେମୋଟିକ୍"}\r
         Egyh{"ଇଜିପ୍ଟିଆନ୍ ହାଇଅରଟିକ୍"}\r
         Egyp{"ଇଜିପ୍ଟିଆନ୍ ହାଅରଗ୍ଲିପସ୍"}\r
-        Ethi{"à¬\87ଥà­\8bପିà¬\95à­\8d"}\r
+        Ethi{"à¬\87ଥିà¬\93ପିà¬\95à­\8dâ\80\8c"}\r
         Geok{"ଜର୍ଜିଆନ୍ ଖୁଟସୁରୀ"}\r
         Geor{"ଜର୍ଜିୟ"}\r
         Glag{"ଗ୍ଲାଗ୍ଲୋଟିକ୍"}\r
@@ -597,7 +597,7 @@ or{
         Mani{"ମନଶୀନ୍"}\r
         Maya{"ମୟାନ୍ ହାୟରଲଜିକସ୍"}\r
         Mero{"ମେରୋଇଟିକ୍"}\r
-        Mlym{"ମଲà­\9fାଲମ୍"}\r
+        Mlym{"ମାଲାà­\9fଲମ୍"}\r
         Mong{"ମଙ୍ଗୋଲିଆନ୍"}\r
         Moon{"ଚନ୍ଦ୍ର"}\r
         Mtei{"ମାଏତି ମାୟେକ୍"}\r
@@ -624,7 +624,7 @@ or{
         Saur{"ସୌରାଷ୍ଟ୍ର"}\r
         Sgnw{"ସାଙ୍କେତିକ ଲିଖ"}\r
         Shaw{"ସାବିୟାନ୍"}\r
-        Sinh{"ସିà¬\82ହାଲା"}\r
+        Sinh{"ସିà¬\82ହଳ"}\r
         Sund{"ସୁଦାନୀଜ୍"}\r
         Sylo{"ସୀଲିତୋ ନଗରୀ"}\r
         Syrc{"ସିରିୟାକ୍"}\r
@@ -738,7 +738,7 @@ or{
             tibt{"ତିବତୀ ଅଙ୍କଗୁଡ଼ିକ"}\r
         }\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.65"}\r
     characterLabelPattern{\r
         all{"{0} — ସମସ୍ତ"}\r
         category-list{"{0}: {1}"}\r
index a2b17b33d0c11e635b4291f259d6e514f8247e44..fb6f22011ffab0f7b16a9634b83c67bc84c717a6 100644 (file)
@@ -102,7 +102,9 @@ pa{
         en_US{"ਅੰਗਰੇਜ਼ੀ (ਅਮਰੀਕੀ)"}\r
         eo{"ਇਸਪੇਰਾਂਟੋ"}\r
         es{"ਸਪੇਨੀ"}\r
+        es_419{"ਸਪੇਨੀ (ਲਾਤੀਨੀ ਅਮਰੀਕੀ)"}\r
         es_ES{"ਸਪੇਨੀ (ਯੂਰਪੀ)"}\r
+        es_MX{"ਸਪੇਨੀ (ਮੈਕਸੀਕੀ)"}\r
         et{"ਇਸਟੋਨੀਆਈ"}\r
         eu{"ਬਾਸਕ"}\r
         ewo{"ਇਵੋਂਡੋ"}\r
@@ -200,7 +202,7 @@ pa{
         ksb{"ਸ਼ੰਬਾਲਾ"}\r
         ksf{"ਬਫ਼ੀਆ"}\r
         ksh{"ਕਲੋਗਨੀਅਨ"}\r
-        ku{"ਕੁਰਦ"}\r
+        ku{"ਕੁਰਦਿਸ਼"}\r
         kum{"ਕੁਮੀਕ"}\r
         kv{"ਕੋਮੀ"}\r
         kw{"ਕੋਰਨਿਸ਼"}\r
@@ -389,7 +391,7 @@ pa{
         uk{"ਯੂਕਰੇਨੀਆਈ"}\r
         umb{"ਉਮਬੁੰਡੂ"}\r
         und{"ਅਣਪਛਾਤੀ ਬੋਲੀ"}\r
-        ur{"à¨\89à©\9cਦੂ"}\r
+        ur{"à¨\89ਰਦੂ"}\r
         uz{"ਉਜ਼ਬੇਕ"}\r
         vai{"ਵਾਈ"}\r
         ve{"ਵੇਂਡਾ"}\r
@@ -423,7 +425,7 @@ pa{
     Languages%short{\r
         az{"ਅਜ਼ੇਰੀ"}\r
         en_GB{"ਅੰਗਰੇਜ਼ੀ (ਯੂ.ਕੇ.)"}\r
-        en_US{"ਅੰਗਰੇਜ਼ੀ (ਯੂ.ਐਸ.)"}\r
+        en_US{"à¨\85à©°à¨\97ਰà©\87à¨\9c਼à©\80 (ਯà©\82.à¨\90ੱਸ.)"}\r
     }\r
     Scripts{\r
         Arab{"ਅਰਬੀ"}\r
@@ -545,8 +547,8 @@ pa{
             hant{"ਰਵਾਇਤੀ ਚੀਨੀ ਸੰਖਿਆਵਾਂ"}\r
             hantfin{"ਰਵਾਇਤੀ ਚੀਨੀ ਵਿੱਤੀ ਸੰਖਿਆਵਾਂ"}\r
             hebr{"ਹਿਬਰੂ ਸੰਖਿਆਵਾਂ"}\r
-            jpan{"à¨\9cਾਪਾਨà©\80 à¨¸à©°à¨\96ਿà¨\86ਵਾà¨\82"}\r
-            jpanfin{"à¨\9cਾਪਾਨà©\80 à¨µà¨¿à©±à¨¤à©\80 à¨¸à©°à¨\96ਿà¨\86ਵਾà¨\82"}\r
+            jpan{"ਜਪਾਨੀ ਸੰਖਿਆਵਾਂ"}\r
+            jpanfin{"ਜਪਾਨੀ ਵਿੱਤੀ ਸੰਖਿਆਵਾਂ"}\r
             khmr{"ਖਮੇਰ ਅੰਕ"}\r
             knda{"ਕੰਨੜ ਅੰਕ"}\r
             laoo{"ਲਾਓ ਅੰਕ"}\r
@@ -564,7 +566,7 @@ pa{
             tibt{"ਤਿੱਬਤੀ ਅੰਕ"}\r
         }\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.65"}\r
     characterLabelPattern{\r
         all{"{0} — ਸਭ"}\r
         category-list{"{0}: {1}"}\r
@@ -574,7 +576,7 @@ pa{
         historic{"{0} — ਇਤਿਹਾਸਕ"}\r
         miscellaneous{"{0} — ਫੁਟਕਲ"}\r
         other{"{0} — ਹੋਰ"}\r
-        scripts{"ਲਿੱਪà©\80à¨\86à¨\82 â\80\94 {0}"}\r
+        scripts{"ਲਿਪੀਆਂ — {0}"}\r
         strokes{\r
             one{"{0} ਸਟਰੋਕ"}\r
             other{"{0} ਸਟਰੋਕ"}\r
index e1155f2c6f45b3ac61dc960ab250463dbe7cb8d5..7faf7bda4f583df933bbf86d74001a8cc91f7617 100644 (file)
@@ -81,7 +81,7 @@ pl{
         bfq{"badaga"}\r
         bg{"bułgarski"}\r
         bgn{"beludżi północny"}\r
-        bho{"bhodźpuri"}\r
+        bho{"bhodżpuri"}\r
         bi{"bislama"}\r
         bik{"bikol"}\r
         bin{"bini"}\r
@@ -355,7 +355,7 @@ pl{
         lv{"łotewski"}\r
         lzh{"chiński klasyczny"}\r
         lzz{"lazyjski"}\r
-        mad{"madurajski"}\r
+        mad{"madurski"}\r
         maf{"mafa"}\r
         mag{"magahi"}\r
         mai{"maithili"}\r
@@ -397,7 +397,7 @@ pl{
         mye{"myene"}\r
         myv{"erzja"}\r
         mzn{"mazanderański"}\r
-        na{"nauru"}\r
+        na{"nauruański"}\r
         nan{"minnański"}\r
         nap{"neapolitański"}\r
         naq{"nama"}\r
@@ -439,7 +439,7 @@ pl{
         osa{"osage"}\r
         ota{"osmańsko-turecki"}\r
         pa{"pendżabski"}\r
-        pag{"pangasino"}\r
+        pag{"pangasinan"}\r
         pal{"pahlavi"}\r
         pam{"pampango"}\r
         pap{"papiamento"}\r
@@ -966,7 +966,7 @@ pl{
         VALENCIA{"walencki"}\r
         WADEGILE{"latynizacja Wade’a i Gilesa"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.50"}\r
     characterLabelPattern{\r
         all{"{0} — wszystko"}\r
         category-list{"{0}: {1}"}\r
index 08c3d357fcb655471611bf531b4e48d0902c1900..00b42ad7e1ec702198ff419e6e57e3afb2027d89 100644 (file)
Binary files a/source/data/lang/pool.res and b/source/data/lang/pool.res differ
index 4255a4567b4aa1b1371f31fc3ef58cfbe46d0882..2ad0d1a8d3c83f8a8251636e4c1ae7da78dfb664 100644 (file)
@@ -79,7 +79,6 @@ ps{
         dar{"درگوا"}\r
         dav{"ټایټا"}\r
         de{"الماني"}\r
-        de_AT{"آسترالیا آلمان"}\r
         de_CH{"سوئس لوی جرمن"}\r
         dgr{"داگرب"}\r
         dje{"زرما"}\r
@@ -95,15 +94,15 @@ ps{
         eka{"اکجک"}\r
         el{"یوناني"}\r
         en{"انګریزي"}\r
-        en_AU{"انګریزي (AU)"}\r
+        en_AU{"انګليسي (AU)"}\r
         en_CA{"کاناډايي انګلیسي"}\r
-        en_GB{"برتانوی انګلیسي"}\r
-        en_US{"انګریزي (US)"}\r
+        en_GB{"بريتانوی انګلیسي"}\r
+        en_US{"انګليسي (US)"}\r
         eo{"اسپرانتو"}\r
         es{"هسپانوي"}\r
-        es_419{"لاتیني امریکایي اسپانوی"}\r
-        es_ES{"اروپایی اسپانوی"}\r
-        es_MX{"مکسیکو اسپانوی"}\r
+        es_419{"لاتيني امريکايي هسپانوي"}\r
+        es_ES{"اروپايي هسپانوي"}\r
+        es_MX{"ميکسيکو هسپانوي"}\r
         et{"حبشي"}\r
         eu{"باسکي"}\r
         ewo{"اوونڊو"}\r
@@ -115,8 +114,6 @@ ps{
         fo{"فاروئې"}\r
         fon{"فان"}\r
         fr{"فرانسوي"}\r
-        fr_CA{"کاناډا فرانسي"}\r
-        fr_CH{"سویس فرانسي"}\r
         fur{"فرائیلیین"}\r
         fy{"فريزي"}\r
         ga{"ائيرلېنډي"}\r
@@ -145,6 +142,7 @@ ps{
         hup{"ھوپا"}\r
         hy{"ارمني"}\r
         hz{"هیرورو"}\r
+        ia{"انټرلنګوا"}\r
         iba{"ابن"}\r
         ibb{"ابیبیو"}\r
         id{"انډونېزي"}\r
@@ -373,6 +371,7 @@ ps{
         uk{"اوکرانايي"}\r
         umb{"امبوندو"}\r
         und{"نامعلومه ژبه"}\r
+        ur{"اردو"}\r
         uz{"اوزبکي"}\r
         vai{"وای"}\r
         ve{"ویندا"}\r
@@ -403,8 +402,8 @@ ps{
     }\r
     Languages%short{\r
         az{"اذري"}\r
-        en_GB{"انګریزي (GB)"}\r
-        en_US{"انګریزي (US)"}\r
+        en_GB{"انګليسي (GB)"}\r
+        en_US{"انګليسي (US)"}\r
     }\r
     Scripts{\r
         Arab{"عربي"}\r
@@ -434,7 +433,7 @@ ps{
         Knda{"کناډا"}\r
         Kore{"کوریایی"}\r
         Laoo{"لاوو"}\r
-        Latn{"لاتین"}\r
+        Latn{"لاتين/لاتيني"}\r
         Mlym{"مالایالم"}\r
         Mong{"منګولیایي"}\r
         Mymr{"میانمار"}\r
@@ -448,7 +447,7 @@ ps{
         Zmth{"د ریاضیاتو نوټیشن"}\r
         Zsye{"ایموجي"}\r
         Zsym{"سمبولونه"}\r
-        Zxxx{"ناڅاپه"}\r
+        Zxxx{"ناليکلی"}\r
         Zyyy{"عام"}\r
         Zzzz{"نامعلومه سکرېپټ"}\r
     }\r
@@ -462,12 +461,12 @@ ps{
             chinese{"د چين جنتري"}\r
             dangi{"ډانګي جنتري"}\r
             ethiopic{"ایتوپيک جنتري"}\r
-            gregorian{"د ګریګوریا کښته"}\r
+            gregorian{"ګريګورين جنتري"}\r
             hebrew{"جورجویان جنتري"}\r
-            islamic{"د Ø§Ø³Ù\84اÙ\85Ù\8a Ø¬Ù\86ترÙ\8a"}\r
+            islamic{"اسلامي جنتري"}\r
             islamic-civil{"د اسلامي جنتري (جدولي، د مدني عصر)"}\r
-            islamic-tbla{"د Ø§Ø³Ù\84اÙ\85Ù\8a Ø¬Ù\86ترÙ\8a (جدÙ\88Ù\84Ù\8aØ\8c Ø³ØªÙ\88رپÙ\88Ù\87Ù\86Ù\8aزÙ\87 Ø¨Ø±Ø®Ù\87)"}\r
-            iso8601{"ISO-8601 Calendar"}\r
+            islamic-tbla{"اسÙ\84اÙ\85Ù\8a Ø¬Ù\86ترÙ\8a (جدÙ\88Ù\84Ù\8aØ\8c Ø³ØªÙ\88رپÙ\88Ù\87Ù\86Ù\8aز Ø¹ØµØ±)"}\r
+            iso8601{"ISO-8601 جنتري"}\r
             japanese{"د جاپاني جنتري"}\r
             persian{"د فارسي جنتري"}\r
             roc{"منگوو جنتري"}\r
@@ -479,7 +478,7 @@ ps{
         collation{\r
             ducet{"ڊفالٽ یونیکوډ ترتیب"}\r
             search{"عمومي موخو د لټون"}\r
-            standard{"معیاري ترتیب ترتیب"}\r
+            standard{"معياري د لټې ترتيب"}\r
         }\r
         hc{\r
             h11{"h11"}\r
@@ -498,8 +497,8 @@ ps{
             ussystem{"ussystem"}\r
         }\r
         numbers{\r
-            arab{"عربي - انډیک ډایټونه"}\r
-            arabext{"پراخ شوی عربي - هندیک ډایټونه"}\r
+            arab{"عربي - انډیک عددونه"}\r
+            arabext{"غځېدلې عربي ۔ اينډيک عدد"}\r
             armn{"armn"}\r
             armnlow{"armnlow"}\r
             beng{"beng"}\r
@@ -522,7 +521,7 @@ ps{
             khmr{"khmr"}\r
             knda{"knda"}\r
             laoo{"laoo"}\r
-            latn{"لویدیځ ډایټونه"}\r
+            latn{"لويديځ عددونه"}\r
             mlym{"mlym"}\r
             mymr{"mymr"}\r
             orya{"orya"}\r
@@ -535,16 +534,16 @@ ps{
             tibt{"tibt"}\r
         }\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.94"}\r
     characterLabelPattern{\r
         all{"{0} - ټول"}\r
         category-list{"{0}: {1}"}\r
         compatibility{"{0} - مطابقت"}\r
         enclosed{"{0} - منسلک"}\r
-        extended{"{0} - پراخ شوی"}\r
+        extended{"{0} - غځېدلی"}\r
         historic{"{0} - تاريخي"}\r
         miscellaneous{"{0} - متفرقه"}\r
-        other{"{0} - د نورو"}\r
+        other{"{0} - نورو"}\r
         scripts{"سکرېپټونه - {0}"}\r
         strokes{\r
             one{"{0} استروک"}\r
index fba246190bee6abdbc3aea3167b14ed98451e849..3f668bb4a1c66ad41cdf09a86c5172f97ea99bd5 100644 (file)
@@ -36,7 +36,7 @@ pt{
         ak{"akan"}\r
         akk{"acadiano"}\r
         ale{"aleúte"}\r
-        alt{"altai do sul"}\r
+        alt{"altai meridional"}\r
         am{"amárico"}\r
         an{"aragonês"}\r
         ang{"inglês arcaico"}\r
@@ -46,7 +46,7 @@ pt{
         arc{"aramaico"}\r
         arn{"mapudungun"}\r
         arp{"arapaho"}\r
-        ars{"árabe - Négede"}\r
+        ars{"árabe négede"}\r
         arw{"arauaqui"}\r
         as{"assamês"}\r
         asa{"asu"}\r
@@ -104,7 +104,7 @@ pt{
         chn{"jargão Chinook"}\r
         cho{"choctaw"}\r
         chp{"chipewyan"}\r
-        chr{"cherokee"}\r
+        chr{"cheroqui"}\r
         chy{"cheiene"}\r
         ckb{"curdo central"}\r
         co{"corso"}\r
@@ -241,7 +241,7 @@ pt{
         kbl{"kanembu"}\r
         kcg{"tyap"}\r
         kde{"maconde"}\r
-        kea{"kabuverdianu"}\r
+        kea{"crioulo cabo-verdiano"}\r
         kfo{"koro"}\r
         kg{"congolês"}\r
         kha{"khasi"}\r
@@ -441,7 +441,7 @@ pt{
         sk{"eslovaco"}\r
         sl{"esloveno"}\r
         sm{"samoano"}\r
-        sma{"sami do sul"}\r
+        sma{"sami meridional"}\r
         smj{"sami de Lule"}\r
         smn{"sami de Inari"}\r
         sms{"sami de Skolt"}\r
@@ -786,8 +786,8 @@ pt{
             strict{"Quebra de linha com estilo estrito"}\r
         }\r
         m0{\r
-            bgn{"BGN"}\r
-            ungegn{"UNGEGN"}\r
+            bgn{"Transliteração BGN EUA"}\r
+            ungegn{"Transliteração UN GEGN"}\r
         }\r
         ms{\r
             metric{"Sistema métrico"}\r
@@ -880,19 +880,19 @@ pt{
         VALENCIA{"valenciano"}\r
         WADEGILE{"romanização Wade-Giles"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.65"}\r
     characterLabelPattern{\r
-        all{"{0} — Tudo"}\r
+        all{"{0} — todos"}\r
         category-list{"{0}: {1}"}\r
-        compatibility{"{0} — Compatibilidade"}\r
-        enclosed{"{0} — Incluso"}\r
-        extended{"{0} — Estendido"}\r
-        historic{"{0} — Histórico"}\r
-        miscellaneous{"{0} — Diverso"}\r
-        other{"{0} — Outro"}\r
-        scripts{"Escritas — {0}"}\r
+        compatibility{"{0} — compatibilidade"}\r
+        enclosed{"{0} — fechado"}\r
+        extended{"{0} — estendido"}\r
+        historic{"{0} — histórico"}\r
+        miscellaneous{"{0} — diversos"}\r
+        other{"{0} — outro"}\r
+        scripts{"escritas — {0}"}\r
         strokes{\r
-            one{"{0} traços"}\r
+            one{"{0} traço"}\r
             other{"{0} traços"}\r
         }\r
     }\r
index a0dd4d0ac7f894069d1c7e5d8a62a7c5aeafb67a..d181569ac3f0bb770798b4d8bdfeda5397fe2d6f 100644 (file)
@@ -14,6 +14,7 @@ pt_PT{
     }\r
     Languages{\r
         af{"africanês"}\r
+        alt{"altai do sul"}\r
         ang{"inglês antigo"}\r
         ar_001{"árabe moderno padrão"}\r
         arn{"mapuche"}\r
@@ -21,9 +22,11 @@ pt_PT{
         av{"avaric"}\r
         bax{"bamun"}\r
         bbj{"ghomala"}\r
+        bn{"bengalês"}\r
         bua{"buriat"}\r
         chk{"chuquês"}\r
         chn{"jargão chinook"}\r
+        chr{"cherokee"}\r
         chy{"cheyenne"}\r
         ckb{"sorani curdo"}\r
         co{"córsico"}\r
@@ -57,7 +60,7 @@ pt_PT{
         hi{"hindi"}\r
         hy{"arménio"}\r
         kbd{"cabardiano"}\r
-        kea{"crioulo cabo-verdiano"}\r
+        kl{"gronelandês"}\r
         krc{"carachaio-bálcaro"}\r
         lez{"lezghiano"}\r
         lg{"ganda"}\r
@@ -72,7 +75,7 @@ pt_PT{
         nb{"norueguês bokmål"}\r
         nds{"baixo-alemão"}\r
         nds_NL{"baixo-saxão"}\r
-        ne{"nepali"}\r
+        nl{"neerlandês"}\r
         nn{"norueguês nynorsk"}\r
         non{"nórdico antigo"}\r
         oc{"occitano"}\r
@@ -92,6 +95,7 @@ pt_PT{
         se{"sami do norte"}\r
         sga{"irlandês antigo"}\r
         shu{"árabe do Chade"}\r
+        sma{"sami do sul"}\r
         smn{"inari sami"}\r
         sn{"shona"}\r
         te{"telugu"}\r
@@ -116,8 +120,10 @@ pt_PT{
     }\r
     Scripts{\r
         Armn{"arménio"}\r
+        Beng{"bengalês"}\r
         Egyd{"egípcio demótico"}\r
         Egyh{"egípcio hierático"}\r
+        Ethi{"etíope"}\r
         Hanb{"han com bopomofo"}\r
         Inds{"indus"}\r
         Orya{"odia"}\r
@@ -232,7 +238,7 @@ pt_PT{
             hebr{"Numeração hebraica"}\r
             jpan{"Numeração japonesa"}\r
             jpanfin{"Numeração financeira japonesa"}\r
-            khmr{"Algarismos de cmer"}\r
+            khmr{"Algarismos de khmer"}\r
             knda{"Algarismos de canarim"}\r
             mlym{"Algarismos de malaiala"}\r
             mymr{"Algarismos birmaneses"}\r
@@ -251,7 +257,7 @@ pt_PT{
         MONOTON{"monotónico"}\r
         POLYTON{"politónico"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.9"}\r
     characterLabelPattern{\r
         all{"{0} – tudo"}\r
         compatibility{"{0} – compatibilidade"}\r
index 2bd1b8d7f19db95930e3e47da1025655d367983f..a06f8a285871ef77b4ccf5cd91e9f8692e5df7b6 100644 (file)
@@ -7,6 +7,7 @@ qu{
         ar{"Arabe Simi"}\r
         arn{"Mapuche Simi"}\r
         as{"Asames Simi"}\r
+        ay{"Aymara Simi"}\r
         az{"Azerbaiyano Simi"}\r
         ba{"Baskir Simi"}\r
         be{"Bielorruso Simi"}\r
@@ -28,6 +29,7 @@ qu{
         el{"Griego Simi"}\r
         en{"Ingles Simi"}\r
         es{"Español Simi"}\r
+        es_419{"Español Simi (Latino América)"}\r
         et{"Estonio Simi"}\r
         eu{"Euskera Simi"}\r
         fa{"Persa Simi"}\r
@@ -110,6 +112,7 @@ qu{
         sr{"Serbio Simi"}\r
         sv{"Sueco Simi"}\r
         sw{"Suajili Simi"}\r
+        sw_CD{"Suajili Simi (Congo (RDC))"}\r
         syr{"Siriaco Simi"}\r
         ta{"Tamil Simi"}\r
         te{"Telugu Simi"}\r
@@ -131,8 +134,12 @@ qu{
         zh{"Chino Simi"}\r
         zu{"Isizulu Simi"}\r
     }\r
+    Languages%short{\r
+        en_GB{"Ingles Simi (GB)"}\r
+        en_US{"Ingles Simi (US)"}\r
+    }\r
     Variants{\r
         VALENCIA{"Valenciano Simi"}\r
     }\r
-    Version{"2.1.38.72"}\r
+    Version{"2.1.43.94"}\r
 }\r
index 43cdcb43b0be7471156a4eea073d35abb7939fbd..46e28dbe2eec4a23227f3ce9f95a57bef26f872f 100644 (file)
@@ -1,6 +1,6 @@
 # © 2016 and later: Unicode, Inc. and others.\r
 # License & terms of use: http://www.unicode.org/copyright.html#License\r
-LANG_CLDR_VERSION = 33.1\r
+LANG_CLDR_VERSION = 34\r
 # A list of txt's to build\r
 # Note:\r
 #\r
@@ -87,39 +87,40 @@ LANG_SOURCE = af.txt agq.txt ak.txt am.txt\
  fur.txt fy.txt ga.txt gd.txt gl.txt\\r
  gsw.txt gu.txt guz.txt gv.txt ha.txt\\r
  haw.txt he.txt hi.txt hr.txt hsb.txt\\r
- hu.txt hy.txt id.txt ig.txt ii.txt\\r
- is.txt it.txt ja.txt jgo.txt jmc.txt\\r
- ka.txt kab.txt kam.txt kde.txt kea.txt\\r
- khq.txt ki.txt kk.txt kkj.txt kl.txt\\r
- kln.txt km.txt kn.txt ko.txt kok.txt\\r
- ks.txt ksb.txt ksf.txt ksh.txt kw.txt\\r
- ky.txt lag.txt lb.txt lg.txt lkt.txt\\r
- ln.txt lo.txt lrc.txt lt.txt lu.txt\\r
- luo.txt luy.txt lv.txt mas.txt mer.txt\\r
- mfe.txt mg.txt mgh.txt mgo.txt mk.txt\\r
- ml.txt mn.txt mr.txt ms.txt mt.txt\\r
- mua.txt my.txt mzn.txt naq.txt nb.txt\\r
- nd.txt nds.txt ne.txt nl.txt nmg.txt\\r
- nn.txt nnh.txt nus.txt nyn.txt om.txt\\r
- or.txt os.txt pa.txt pa_Arab.txt pa_Guru.txt\\r
- pl.txt ps.txt pt.txt pt_AO.txt pt_CH.txt\\r
- pt_CV.txt pt_GQ.txt pt_GW.txt pt_LU.txt pt_MO.txt\\r
- pt_MZ.txt pt_PT.txt pt_ST.txt pt_TL.txt qu.txt\\r
- rm.txt rn.txt ro.txt ro_MD.txt rof.txt\\r
- ru.txt rw.txt rwk.txt sah.txt saq.txt\\r
- sbp.txt se.txt se_FI.txt seh.txt ses.txt\\r
+ hu.txt hy.txt ia.txt id.txt ig.txt\\r
+ ii.txt is.txt it.txt ja.txt jgo.txt\\r
+ jmc.txt jv.txt ka.txt kab.txt kam.txt\\r
+ kde.txt kea.txt khq.txt ki.txt kk.txt\\r
+ kkj.txt kl.txt kln.txt km.txt kn.txt\\r
+ ko.txt kok.txt ks.txt ksb.txt ksf.txt\\r
+ ksh.txt ku.txt kw.txt ky.txt lag.txt\\r
+ lb.txt lg.txt lkt.txt ln.txt lo.txt\\r
+ lrc.txt lt.txt lu.txt luo.txt luy.txt\\r
+ lv.txt mas.txt mer.txt mfe.txt mg.txt\\r
+ mgh.txt mgo.txt mi.txt mk.txt ml.txt\\r
+ mn.txt mr.txt ms.txt mt.txt mua.txt\\r
+ my.txt mzn.txt naq.txt nb.txt nd.txt\\r
+ nds.txt ne.txt nl.txt nmg.txt nn.txt\\r
+ nnh.txt nus.txt nyn.txt om.txt or.txt\\r
+ os.txt pa.txt pa_Arab.txt pa_Guru.txt pl.txt\\r
+ ps.txt pt.txt pt_AO.txt pt_CH.txt pt_CV.txt\\r
+ pt_GQ.txt pt_GW.txt pt_LU.txt pt_MO.txt pt_MZ.txt\\r
+ pt_PT.txt pt_ST.txt pt_TL.txt qu.txt rm.txt\\r
+ rn.txt ro.txt ro_MD.txt rof.txt ru.txt\\r
+ rw.txt rwk.txt sah.txt saq.txt sbp.txt\\r
+ sd.txt se.txt se_FI.txt seh.txt ses.txt\\r
  sg.txt shi.txt shi_Latn.txt shi_Tfng.txt si.txt\\r
  sk.txt sl.txt smn.txt sn.txt so.txt\\r
  sq.txt sr.txt sr_Cyrl.txt sr_Cyrl_BA.txt sr_Cyrl_ME.txt\\r
  sr_Cyrl_XK.txt sr_Latn.txt sr_Latn_BA.txt sr_Latn_ME.txt sr_Latn_XK.txt\\r
  sv.txt sv_FI.txt sw.txt sw_CD.txt sw_KE.txt\\r
  ta.txt te.txt teo.txt tg.txt th.txt\\r
- ti.txt to.txt tr.txt tt.txt twq.txt\\r
- tzm.txt ug.txt uk.txt ur.txt ur_IN.txt\\r
- uz.txt uz_Arab.txt uz_Cyrl.txt uz_Latn.txt vai.txt\\r
- vai_Latn.txt vai_Vaii.txt vi.txt vun.txt wae.txt\\r
- wo.txt xog.txt yav.txt yi.txt yo.txt\\r
- yo_BJ.txt yue.txt yue_Hans.txt yue_Hant.txt zgh.txt\\r
zh.txt zh_Hans.txt zh_Hant.txt zh_Hant_HK.txt zh_Hant_MO.txt\\r
- zu.txt\r
+ ti.txt tk.txt to.txt tr.txt tt.txt\\r
+ twq.txt tzm.txt ug.txt uk.txt ur.txt\\r
+ ur_IN.txt uz.txt uz_Arab.txt uz_Cyrl.txt uz_Latn.txt\\r
+ vai.txt vai_Latn.txt vai_Vaii.txt vi.txt vun.txt\\r
+ wae.txt wo.txt xh.txt xog.txt yav.txt\\r
+ yi.txt yo.txt yo_BJ.txt yue.txt yue_Hans.txt\\r
yue_Hant.txt zgh.txt zh.txt zh_Hans.txt zh_Hant.txt\\r
+ zh_Hant_HK.txt zh_Hant_MO.txt zu.txt\r
 \r
index 240e894d796e2af7dffb1e9eecc8d60bc6e5af17..fe48653087303db9d0120ee8d1e7c1a0192b15f9 100644 (file)
@@ -627,7 +627,7 @@ rm{
         TARASK{"ortografia taraskievica"}\r
         VALENCIA{"valencian"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.94"}\r
     codePatterns{\r
         language{"Lingua: {0}"}\r
         script{"Scrittira: {0}"}\r
index 738a560a13cf3318c81722be60dbf1fe1c8e07a4..bb06f59a8dcd6c6ffe9e78c68c800b62af0a431a 100644 (file)
@@ -61,7 +61,7 @@ ro{
         bas{"basaa"}\r
         bax{"bamun"}\r
         bbj{"ghomala"}\r
-        be{"bielorusă"}\r
+        be{"belarusă"}\r
         bej{"beja"}\r
         bem{"bemba"}\r
         bez{"bena"}\r
@@ -147,6 +147,7 @@ ro{
         enm{"engleză medie"}\r
         eo{"esperanto"}\r
         es{"spaniolă"}\r
+        es_ES{"spaniolă (Europa)"}\r
         et{"estonă"}\r
         eu{"bască"}\r
         ewo{"ewondo"}\r
@@ -214,7 +215,7 @@ ro{
         id{"indoneziană"}\r
         ie{"interlingue"}\r
         ig{"igbo"}\r
-        ii{"sichuan yi"}\r
+        ii{"yi din Sichuan"}\r
         ik{"inupiak"}\r
         ilo{"iloko"}\r
         inh{"ingușă"}\r
@@ -287,7 +288,7 @@ ro{
         ln{"lingala"}\r
         lo{"laoțiană"}\r
         lol{"mongo"}\r
-        lou{"creolă louisianeză"}\r
+        lou{"creolă (Louisiana)"}\r
         loz{"lozi"}\r
         lrc{"luri de nord"}\r
         lt{"lituaniană"}\r
@@ -394,6 +395,7 @@ ro{
         pro{"provensală veche"}\r
         ps{"paștună"}\r
         pt{"portugheză"}\r
+        pt_PT{"portugheză (Europa)"}\r
         qu{"quechua"}\r
         quc{"quiché"}\r
         raj{"rajasthani"}\r
@@ -440,9 +442,9 @@ ro{
         sl{"slovenă"}\r
         sm{"samoană"}\r
         sma{"sami de sud"}\r
-        smj{"lule sami"}\r
-        smn{"inari sami"}\r
-        sms{"skolt sami"}\r
+        smj{"sami lule"}\r
+        smn{"sami inari"}\r
+        sms{"sami skolt"}\r
         sn{"shona"}\r
         snk{"soninke"}\r
         so{"somaleză"}\r
@@ -496,7 +498,7 @@ ro{
         twq{"tasawaq"}\r
         ty{"tahitiană"}\r
         tyv{"tuvană"}\r
-        tzm{"tamazight central marocană"}\r
+        tzm{"tamazight din Altasul Central"}\r
         udm{"udmurt"}\r
         ug{"uigură"}\r
         uga{"ugaritică"}\r
@@ -535,6 +537,7 @@ ro{
         zen{"zenaga"}\r
         zgh{"tamazight standard marocană"}\r
         zh{"chineză"}\r
+        zh_Hans{"chineză simplificată"}\r
         zh_Hant{"chineză tradițională"}\r
         zu{"zulu"}\r
         zun{"zuni"}\r
@@ -778,7 +781,7 @@ ro{
         SCOTLAND{"engleză standard scoțiană"}\r
         WADEGILE{"Wade-Giles"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.94"}\r
     characterLabelPattern{\r
         all{"{0} – toate"}\r
         category-list{"{0}: {1}"}\r
index b9a3cc3c6323b3d4836216cc996968efe14fb2eb..bc604faf73e5fd0d2d40f95a35965b033942a6c1 100644 (file)
@@ -4,7 +4,7 @@
  * ICU <specials> source: <path>/common/main/root.xml\r
  */\r
 root{\r
-    Version{"2.1.41.58"}\r
+    Version{"2.1.44.91"}\r
     characterLabelPattern{\r
         all{"{0} — all"}\r
         category-list{"{0}: {1}"}\r
index a69e24f1b04b247e17a26cb1fee02c9a98bbf360..ca633e2c4dd9232e0e21d95aadb4611681968b1d 100644 (file)
@@ -42,11 +42,11 @@ ru{
         ang{"староанглийский"}\r
         anp{"ангика"}\r
         ar{"арабский"}\r
-        ar_001{"аÑ\80абÑ\81кий Ð»Ð¸Ñ\82еÑ\80аÑ\82Ñ\83Ñ\80нÑ\8bй"}\r
+        ar_001{"лиÑ\82еÑ\80аÑ\82Ñ\83Ñ\80нÑ\8bй Ð°Ñ\80абÑ\81кий"}\r
         arc{"арамейский"}\r
         arn{"мапуче"}\r
         arp{"арапахо"}\r
-        ars{"аÑ\80абÑ\81каÑ\8f â\80\94 Ð½ÐµÐ´Ð¶Ð´Ð¸Ð¹Ñ\81каÑ\8f"}\r
+        ars{"недждийÑ\81кий Ð°Ñ\80абÑ\81кий"}\r
         arw{"аравакский"}\r
         as{"ассамский"}\r
         asa{"асу"}\r
@@ -185,7 +185,7 @@ ru{
         gba{"гбая"}\r
         gd{"гэльский"}\r
         gez{"геэз"}\r
-        gil{"гильбертский"}\r
+        gil{"гилбертский"}\r
         gl{"галисийский"}\r
         gmh{"средневерхненемецкий"}\r
         gn{"гуарани"}\r
@@ -306,7 +306,7 @@ ru{
         lui{"луисеньо"}\r
         lun{"лунда"}\r
         luo{"луо"}\r
-        lus{"лÑ\83Ñ\88ей"}\r
+        lus{"мизо"}\r
         luy{"лухья"}\r
         lv{"латышский"}\r
         mad{"мадурский"}\r
@@ -417,7 +417,7 @@ ru{
         ro_MD{"молдавский"}\r
         rof{"ромбо"}\r
         rom{"цыганский"}\r
-        root{"коÑ\80невой язык"}\r
+        root{"пÑ\80аязык"}\r
         ru{"русский"}\r
         rup{"арумынский"}\r
         rw{"киньяруанда"}\r
@@ -575,7 +575,7 @@ ru{
         Blis{"блиссимволика"}\r
         Bopo{"бопомофо"}\r
         Brah{"брахми"}\r
-        Brai{"Брайля"}\r
+        Brai{"шрифт Брайля"}\r
         Bugi{"бугинизийская"}\r
         Buhd{"бухид"}\r
         Cakm{"чакмийская"}\r
@@ -814,10 +814,10 @@ ru{
             npinyin{"Числовая"}\r
         }\r
         hc{\r
-            h11{"12-часовой формат времени (0-11)"}\r
-            h12{"12-часовой формат времени (1-12)"}\r
-            h23{"24-часовой формат времени (0-23)"}\r
-            h24{"24-часовой формат времени (1-24)"}\r
+            h11{"12-часовой формат времени (011)"}\r
+            h12{"12-часовой формат времени (112)"}\r
+            h23{"24-часовой формат времени (023)"}\r
+            h24{"24-часовой формат времени (124)"}\r
         }\r
         lb{\r
             loose{"мягкий перевод строки"}\r
@@ -917,7 +917,7 @@ ru{
         VALENCIA{"Валенсийский"}\r
         WADEGILE{"Система Уэйда – Джайлза"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.45.15"}\r
     characterLabelPattern{\r
         all{"{0} — все"}\r
         category-list{"{0}: {1}"}\r
index b1855554549eb2bcb1bbe470d6dba022f1588e8f..6b62dbcf9038f5fba56ed6df6c74f2b2092e673d 100644 (file)
@@ -108,5 +108,5 @@ rw{
         yi{"Inyeyidishi"}\r
         zu{"Inyezulu"}\r
     }\r
-    Version{"2.1.38.72"}\r
+    Version{"2.1.44.88"}\r
 }\r
index b37e8c831f2fed51a9fa774dd0a408895b8ab410..bbc947015d267167fd27d93c602be96075465251 100644 (file)
@@ -91,7 +91,7 @@ sah{
             h24{"24 чаастаах тиһик (0–24)"}\r
         }\r
     }\r
-    Version{"2.1.38.69"}\r
+    Version{"2.1.43.94"}\r
     characterLabelPattern{\r
         strokes{\r
             other{"{0} Strokes"}\r
diff --git a/source/data/lang/sd.txt b/source/data/lang/sd.txt
new file mode 100644 (file)
index 0000000..a41983c
--- /dev/null
@@ -0,0 +1,562 @@
+// © 2016 and later: Unicode, Inc. and others.\r
+// License & terms of use: http://www.unicode.org/copyright.html#License\r
+sd{\r
+    Keys{\r
+        calendar{"ڪئلينڊر"}\r
+        cf{"سڪي جو فارميٽ"}\r
+        collation{"ترتيب ڇانٽي"}\r
+        currency{"سڪو"}\r
+        hc{"ڪلاڪ سائيڪل"}\r
+        lb{"لائن ٽوڙڻ انداز"}\r
+        ms{"ماپڻ جو نظام"}\r
+        numbers{"انگ"}\r
+    }\r
+    Languages{\r
+        aa{"افار"}\r
+        ab{"ابقازیان"}\r
+        ace{"اچائينيز"}\r
+        ada{"ادنگمي"}\r
+        ady{"اديگهي"}\r
+        af{"آفريڪي"}\r
+        agq{"اگهيم"}\r
+        ain{"آئينو"}\r
+        ak{"اڪان"}\r
+        ale{"اليوٽ"}\r
+        alt{"ڏکڻ التائي"}\r
+        am{"امهاري"}\r
+        an{"ارگني"}\r
+        anp{"انجيڪا"}\r
+        ar{"عربي"}\r
+        ar_001{"جديد معياري عربي"}\r
+        arn{"ماپوچي"}\r
+        arp{"اراپائو"}\r
+        as{"آسامي"}\r
+        asa{"اسو"}\r
+        ast{"اسٽورين"}\r
+        av{"اويرس"}\r
+        awa{"اواڌي"}\r
+        ay{"ایمارا"}\r
+        az{"آزربائيجاني"}\r
+        ba{"بشڪر"}\r
+        ban{"بالي"}\r
+        bas{"باسا"}\r
+        be{"بيلاروسي"}\r
+        bem{"بيمبا"}\r
+        bez{"بينا"}\r
+        bg{"بلغاريائي"}\r
+        bho{"ڀوجپوري"}\r
+        bi{"بسلاما"}\r
+        bin{"بني"}\r
+        bla{"سڪسڪا"}\r
+        bm{"بمبارا"}\r
+        bn{"بنگلا"}\r
+        bo{"تبيتائي"}\r
+        br{"بريٽن"}\r
+        brx{"بودو"}\r
+        bs{"بوسنيائي"}\r
+        bug{"بگنيز"}\r
+        byn{"بلن"}\r
+        ca{"ڪيٽالان"}\r
+        ce{"چیچن"}\r
+        ceb{"سبوانو"}\r
+        cgg{"چگا"}\r
+        ch{"چمورو"}\r
+        chk{"چڪيز"}\r
+        chm{"ماري"}\r
+        cho{"چوڪ تو"}\r
+        chr{"چروڪي"}\r
+        chy{"چايان"}\r
+        ckb{"مرڪزي ڪردش"}\r
+        co{"ڪارسيڪائي"}\r
+        crs{"سيسلوا ڪريئول فرانسي"}\r
+        cs{"چيڪ"}\r
+        cu{"چرچ سلاوی"}\r
+        cv{"چو واش"}\r
+        cy{"ويلش"}\r
+        da{"ڊينش"}\r
+        dak{"ڊڪوٽا"}\r
+        dar{"ڊارگوا"}\r
+        dav{"تائيتا"}\r
+        de{"جرمن"}\r
+        de_AT{"آسٽريائي جرمن"}\r
+        de_CH{"سوئس هائي جرمن"}\r
+        dgr{"داگرب"}\r
+        dje{"زارما"}\r
+        dsb{"لوئر سوربين"}\r
+        dua{"ڊيولا"}\r
+        dv{"دويهي"}\r
+        dyo{"جولا فوني"}\r
+        dz{"زونخا"}\r
+        dzg{"دزاگا"}\r
+        ebu{"ايمبيو"}\r
+        ee{"ايو"}\r
+        efi{"ايفڪ"}\r
+        eka{"ايڪاجڪ"}\r
+        el{"يوناني"}\r
+        en{"انگريزي"}\r
+        en_AU{"آسٽريليائي انگريزي"}\r
+        en_CA{"ڪينيڊيائي انگريزي"}\r
+        en_GB{"برطانوي انگريزي"}\r
+        en_US{"آمريڪي انگريزي"}\r
+        eo{"ايسپرانٽو"}\r
+        es{"اسپيني"}\r
+        es_419{"لاطيني آمريڪي اسپينش"}\r
+        es_ES{"يورپي اسپيني"}\r
+        et{"ايستونائي"}\r
+        eu{"باسڪي"}\r
+        ewo{"اوانڊو"}\r
+        fa{"فارسي"}\r
+        ff{"فلاهه"}\r
+        fi{"فنش"}\r
+        fil{"فلپائني"}\r
+        fj{"فجي"}\r
+        fo{"فيروايس"}\r
+        fon{"فون"}\r
+        fr{"فرانسي"}\r
+        fr_CA{"ڪينيڊيائي فرانسيسي"}\r
+        fr_CH{"سوئس فرانسيسي"}\r
+        fur{"فرائي لئين"}\r
+        fy{"مغربي فريشن"}\r
+        ga{"آئرش"}\r
+        gaa{"گا"}\r
+        gd{"اسڪاٽش گيلڪ"}\r
+        gez{"جيز"}\r
+        gil{"گلبرٽيز"}\r
+        gl{"گليشئين"}\r
+        gn{"گواراني"}\r
+        gor{"گورنٽلو"}\r
+        gsw{"سوئس جرمن"}\r
+        gu{"گجراتي"}\r
+        guz{"گشي"}\r
+        gv{"مينڪس"}\r
+        gwi{"گوچن"}\r
+        ha{"هوسا"}\r
+        haw{"هوائي"}\r
+        he{"عبراني"}\r
+        hi{"هندي"}\r
+        hil{"هلي گيانان"}\r
+        hmn{"مونگ"}\r
+        hr{"ڪروشيائي"}\r
+        hsb{"اپر سربيائي"}\r
+        ht{"هيٽي ڪرولي"}\r
+        hu{"هنگري"}\r
+        hup{"هوپا"}\r
+        hy{"ارماني"}\r
+        hz{"هريرو"}\r
+        ia{"انٽرلنگئا"}\r
+        iba{"ايبن"}\r
+        ibb{"ابيبيو"}\r
+        id{"انڊونيشي"}\r
+        ig{"اگبو"}\r
+        ii{"سچوان يي"}\r
+        ilo{"الوڪو"}\r
+        inh{"انگش"}\r
+        io{"ادو"}\r
+        is{"آئيس لينڊڪ"}\r
+        it{"اطالوي"}\r
+        iu{"انو ڪتوت"}\r
+        ja{"جاپاني"}\r
+        jbo{"لوجبين"}\r
+        jgo{"نغومبا"}\r
+        jmc{"ميڪم"}\r
+        jv{"جاونيز"}\r
+        ka{"جارجين"}\r
+        kab{"ڪبائل"}\r
+        kac{"ڪچن"}\r
+        kaj{"پوڪيپسي"}\r
+        kam{"ڪئمبا"}\r
+        kbd{"ڪبارڊيئن"}\r
+        kcg{"تياپ"}\r
+        kde{"مڪوندي"}\r
+        kea{"ڪيبيو ويرڊيانو"}\r
+        kfo{"ڪورو"}\r
+        kha{"خاسي"}\r
+        khq{"ڪيورا چني"}\r
+        ki{"اڪويو"}\r
+        kj{"ڪنياما"}\r
+        kk{"قازق"}\r
+        kkj{"ڪڪو"}\r
+        kl{"ڪالا ليسٽ"}\r
+        kln{"ڪيلين جن"}\r
+        km{"خمر"}\r
+        kmb{"ڪمبونڊو"}\r
+        kn{"ڪناڊا"}\r
+        ko{"ڪوريائي"}\r
+        kok{"ڪونڪي"}\r
+        kpe{"ڪپيل"}\r
+        kr{"ڪنوري"}\r
+        krc{"ڪراچي بالڪر"}\r
+        krl{"ڪريلئين"}\r
+        kru{"ڪورخ"}\r
+        ks{"ڪشميري"}\r
+        ksb{"شمبالا"}\r
+        ksf{"بافيا"}\r
+        ksh{"ڪلونئين"}\r
+        ku{"ڪردي"}\r
+        kum{"ڪومڪ"}\r
+        kv{"ڪومي"}\r
+        kw{"ڪورنش"}\r
+        ky{"ڪرغيز"}\r
+        la{"لاطيني"}\r
+        lad{"لڊينو"}\r
+        lag{"لانگي"}\r
+        lb{"لگزمبرگ"}\r
+        lez{"ليزگهين"}\r
+        lg{"گاندا"}\r
+        li{"لمبرگش"}\r
+        lkt{"لڪوٽا"}\r
+        ln{"لنگالا"}\r
+        lo{"لائو"}\r
+        loz{"لوزي"}\r
+        lrc{"اتر لوري"}\r
+        lt{"ليٿونيائي"}\r
+        lu{"لوبا-ڪتانگا"}\r
+        lua{"لوبا-لولوا"}\r
+        lun{"لنڊا"}\r
+        luo{"لو"}\r
+        lus{"ميزو"}\r
+        luy{"لوهيا"}\r
+        lv{"لاتوين"}\r
+        mad{"مدورائي"}\r
+        mag{"مگاهي"}\r
+        mai{"ميٿلي"}\r
+        mak{"مڪاسر"}\r
+        mas{"مسائي"}\r
+        mdf{"موڪشا"}\r
+        men{"مينڊي"}\r
+        mer{"ميرو"}\r
+        mfe{"موریسیین"}\r
+        mg{"ملاگاسي"}\r
+        mgh{"مخووا ميتو"}\r
+        mgo{"ميتا"}\r
+        mh{"مارشليز"}\r
+        mi{"مائوري"}\r
+        mic{"ميڪ مڪ"}\r
+        min{"مناڪابوا"}\r
+        mk{"ميسي ڊونيائي"}\r
+        ml{"مليالم"}\r
+        mn{"منگولي"}\r
+        mni{"ماني پوري"}\r
+        moh{"موهاڪ"}\r
+        mos{"موسي"}\r
+        mr{"مراٺي"}\r
+        ms{"ملي"}\r
+        mt{"مالٽي"}\r
+        mua{"من دانگ"}\r
+        mul{"هڪ کان وڌيڪ ٻوليون"}\r
+        mus{"ڪريڪ"}\r
+        mwl{"مرانڊيز"}\r
+        my{"برمي"}\r
+        myv{"ايريزيا"}\r
+        mzn{"مزيندراني"}\r
+        na{"نائو"}\r
+        nap{"نيپولٽن"}\r
+        naq{"ناما"}\r
+        nb{"نارويائي بوڪمال"}\r
+        nd{"اتر دبيلي"}\r
+        ne{"نيپالي"}\r
+        new{"نيواري"}\r
+        ng{"ڊونگا"}\r
+        nia{"نياس"}\r
+        niu{"نووي"}\r
+        nl{"ڊچ"}\r
+        nl_BE{"فلیمش"}\r
+        nmg{"ڪويسيو"}\r
+        nn{"نارويائي نيوناسڪ"}\r
+        nnh{"نغيمبون"}\r
+        nog{"نوگائي"}\r
+        nqo{"نڪو"}\r
+        nr{"ڏکڻ دبيلي"}\r
+        nso{"اتر سوٿو"}\r
+        nus{"نيور"}\r
+        nv{"نواجو"}\r
+        ny{"نيانجا"}\r
+        nyn{"نايانڪول"}\r
+        oc{"آڪسيٽن"}\r
+        om{"اورومو"}\r
+        or{"اوڊيا"}\r
+        os{"اوسيٽڪ"}\r
+        pa{"پنجابي"}\r
+        pag{"پانگا سينان"}\r
+        pam{"پيم پينگا"}\r
+        pap{"پاپي امينٽو"}\r
+        pau{"پلون"}\r
+        pcm{"نائيجرين پجن"}\r
+        pl{"پولش"}\r
+        prg{"پرشن"}\r
+        ps{"پشتو"}\r
+        pt{"پرتگالي"}\r
+        pt_BR{"برازيلي پرتگالي"}\r
+        pt_PT{"يورپي پرتگالي"}\r
+        qu{"ڪيچوا"}\r
+        quc{"ڪچي"}\r
+        rap{"ريپنوئي"}\r
+        rar{"ريرو ٽينگو"}\r
+        rm{"رومانش"}\r
+        rn{"رونڊي"}\r
+        ro{"روماني"}\r
+        ro_MD{"مالديوي"}\r
+        rof{"رومبو"}\r
+        root{"روٽ"}\r
+        ru{"روسي"}\r
+        rup{"ارومينين"}\r
+        rw{"ڪنيار وانڊا"}\r
+        rwk{"روا"}\r
+        sa{"سنسڪرت"}\r
+        sad{"سنداوي"}\r
+        sah{"ساخا"}\r
+        saq{"سيمبورو"}\r
+        sat{"سنتالي"}\r
+        sba{"نغمبي"}\r
+        sbp{"سانگوو"}\r
+        sc{"سارڊيني"}\r
+        scn{"سسلي"}\r
+        sco{"اسڪاٽس"}\r
+        sd{"سنڌي"}\r
+        se{"اتر سامي"}\r
+        seh{"سينا"}\r
+        ses{"ڪيورابورو سيني"}\r
+        sg{"سانگو"}\r
+        shi{"تيچل هاتي"}\r
+        shn{"شان"}\r
+        si{"سنهالا"}\r
+        sk{"سلواڪي"}\r
+        sl{"سلوويني"}\r
+        sm{"ساموآن"}\r
+        sma{"ڏکڻ سامي"}\r
+        smj{"لولي سامي"}\r
+        smn{"اناري سامي"}\r
+        sms{"اسڪاٽ سامي"}\r
+        sn{"شونا"}\r
+        snk{"سونينڪي"}\r
+        so{"سومالي"}\r
+        sq{"الباني"}\r
+        sr{"سربيائي"}\r
+        srn{"سرانن تانگو"}\r
+        ss{"سواتي"}\r
+        ssy{"سهو"}\r
+        st{"ڏکڻ سوٿي"}\r
+        su{"سوڊاني"}\r
+        suk{"سڪوما"}\r
+        sv{"سويڊني"}\r
+        sw{"سواحيلي"}\r
+        sw_CD{"ڪونگو سواحيلي"}\r
+        swb{"ڪمورين"}\r
+        syr{"شامي"}\r
+        ta{"تامل"}\r
+        te{"تلگو"}\r
+        tem{"تمني"}\r
+        teo{"تيسو"}\r
+        tet{"تيتم"}\r
+        tg{"تاجڪي"}\r
+        th{"ٿائي"}\r
+        ti{"تگرينيائي"}\r
+        tig{"تگري"}\r
+        tk{"ترڪماني"}\r
+        tlh{"ڪلون"}\r
+        tn{"تسوانا"}\r
+        to{"تونگن"}\r
+        tpi{"تاڪ پسن"}\r
+        tr{"ترڪ"}\r
+        trv{"تاروڪو"}\r
+        ts{"سونگا"}\r
+        tt{"تاتري"}\r
+        tum{"تمبوڪا"}\r
+        tvl{"توالو"}\r
+        twq{"تساوڪي"}\r
+        ty{"تاهيتي"}\r
+        tyv{"تووينيائي"}\r
+        tzm{"وچ اٽلس تمازائيٽ"}\r
+        udm{"ادمورتيا"}\r
+        ug{"يوغور"}\r
+        uk{"يوڪراني"}\r
+        umb{"اومبنڊو"}\r
+        und{"اڻڄاتل ٻولي"}\r
+        ur{"اردو"}\r
+        uz{"ازبڪ"}\r
+        vai{"يا"}\r
+        ve{"وينڊا"}\r
+        vi{"ويتنامي"}\r
+        vo{"والپڪ"}\r
+        vun{"ونجو"}\r
+        wa{"ولون"}\r
+        wae{"والسر"}\r
+        wal{"وولايٽا"}\r
+        war{"واري"}\r
+        wo{"وولف"}\r
+        xal{"ڪيلمڪ"}\r
+        xh{"زھوسا"}\r
+        xog{"سوگا"}\r
+        yav{"يانگ بين"}\r
+        ybb{"ييمبا"}\r
+        yi{"يدش"}\r
+        yo{"يوروبا"}\r
+        yue{"ڪينٽونيز"}\r
+        zgh{"معياري مراڪشي تامازائيٽ"}\r
+        zh{"چيني"}\r
+        zh_Hans{"آسان چینی"}\r
+        zh_Hant{"روايتي چيني"}\r
+        zu{"زولو"}\r
+        zun{"زوني"}\r
+        zxx{"ڪوئي ٻولي جو مواد ڪونهي"}\r
+        zza{"زازا"}\r
+    }\r
+    Languages%short{\r
+        az{"ازري"}\r
+        en_GB{"برطانوي انگريزي"}\r
+        en_US{"انگريزي (آمريڪا)"}\r
+    }\r
+    Scripts{\r
+        Arab{"عربي"}\r
+        Armn{"عرماني"}\r
+        Beng{"بنگلا"}\r
+        Bopo{"بوپوموفو"}\r
+        Brai{"بريلي"}\r
+        Cyrl{"سيريلي"}\r
+        Deva{"ديوناگري"}\r
+        Ethi{"ايٿوپيائي"}\r
+        Geor{"جيورجيائي"}\r
+        Grek{"يوناني"}\r
+        Gujr{"گجراتي"}\r
+        Guru{"گرمکي"}\r
+        Hanb{"بوپوموفو سان هين"}\r
+        Hang{"هنگول"}\r
+        Hani{"هين"}\r
+        Hans{"سادي"}\r
+        Hant{"روايتي"}\r
+        Hebr{"عبراني"}\r
+        Hira{"هراگنا"}\r
+        Hrkt{"جاپاني لکت"}\r
+        Jamo{"جامو"}\r
+        Jpan{"جاپاني"}\r
+        Kana{"ڪٽاڪانا"}\r
+        Khmr{"خمر"}\r
+        Knda{"ڪناڊا"}\r
+        Kore{"ڪوريائي"}\r
+        Laoo{"لائو"}\r
+        Latn{"لاطيني"}\r
+        Mlym{"مليالم"}\r
+        Mong{"منگولي"}\r
+        Mymr{"ميانمر"}\r
+        Orya{"اوڊيا"}\r
+        Sinh{"سنهالا"}\r
+        Taml{"تامل"}\r
+        Telu{"تلگو"}\r
+        Thaa{"ٿانا"}\r
+        Thai{"ٿائي"}\r
+        Tibt{"تبيتن"}\r
+        Zmth{"رياضي جون نشانيون"}\r
+        Zsye{"ايموجي"}\r
+        Zsym{"نشانيون"}\r
+        Zxxx{"اڻ لکيل"}\r
+        Zyyy{"ڪامن"}\r
+        Zzzz{"اڻڄاتل لکت"}\r
+    }\r
+    Scripts%stand-alone{\r
+        Hans{"سادي هين"}\r
+        Hant{"روايتي هين"}\r
+    }\r
+    Types{\r
+        calendar{\r
+            buddhist{"ٻڌ ڌرم جو ڪئلينڊر"}\r
+            chinese{"چيني ڪئلينڊر"}\r
+            dangi{"دانگي ڪئلينڊر"}\r
+            ethiopic{"ايٿوپيائي ڪئلينڊر"}\r
+            gregorian{"جارجيائي ڪئلينڊر"}\r
+            hebrew{"عبراني ڪئلينڊر"}\r
+            islamic{"اسلامي ڪئلينڊر"}\r
+            iso8601{"ISO-8601 ڪئلينڊر"}\r
+            japanese{"جاپاني ڪئلينڊر"}\r
+            persian{"فارسي ڪئلينڊر"}\r
+            roc{"منگوو ڪئلينڊر"}\r
+        }\r
+        cf{\r
+            account{"اڪائونٽنگ سڪو فارميٽ"}\r
+            standard{"معياري سڪو فارميٽ"}\r
+        }\r
+        collation{\r
+            ducet{"ڊفالٽ يوني ڪوڊ ترتيب ڇانٽي"}\r
+            search{"عام مقصد جي ڳولا"}\r
+            standard{"معياري ترتيب ڇانٽي"}\r
+        }\r
+        hc{\r
+            h11{"12 ڪلاڪ جو سسٽم (0–11)"}\r
+            h12{"12 ڪلاڪ جو سسٽم (1–12)"}\r
+            h23{"24 ڪلاڪ جو سسٽم (0–23)"}\r
+            h24{"24 ڪلاڪ جو سسٽم (1–24)"}\r
+        }\r
+        lb{\r
+            loose{"لوز لائن ٽوڙ انداز"}\r
+            normal{"عام لائن ٽوڙ انداز"}\r
+            strict{"سخت لائن ٽوڙ انداز"}\r
+        }\r
+        ms{\r
+            metric{"ميٽرڪ نظام"}\r
+            uksystem{"امپيريل ماپڻ جو نظام"}\r
+            ussystem{"آمريڪا جو ماپڻ جو نظام"}\r
+        }\r
+        numbers{\r
+            arab{"عربي-هندي عدد"}\r
+            arabext{"وڌايل عربي-هندي عدد"}\r
+            armn{"ارمينيائي انگ"}\r
+            armnlow{"ارمينيائي ننڍا انگ"}\r
+            beng{"بنگلا عدد"}\r
+            deva{"ديوناگري عدد"}\r
+            ethi{"ايٿوپيائي انگ"}\r
+            fullwide{"پوري-ويڪر انگن"}\r
+            geor{"جيارجيائي انگ"}\r
+            grek{"يوناني انگ"}\r
+            greklow{"يوناني ننڍا انگ"}\r
+            gujr{"گجراتي عدد"}\r
+            guru{"گرمکي عدد"}\r
+            hanidec{"چيني اعشاري انگ"}\r
+            hans{"آسان چيني انگ"}\r
+            hansfin{"آسان چيني مالي انگ"}\r
+            hant{"روايتي چيني انگ"}\r
+            hantfin{"روايتي چيني مالي انگ"}\r
+            hebr{"عبراني انگ"}\r
+            jpan{"جاپاني انگ"}\r
+            jpanfin{"جاپاني مالي انگ"}\r
+            khmr{"خمر عدد"}\r
+            knda{"ڪناڊا عدد"}\r
+            laoo{"لائو عدد"}\r
+            latn{"مغربي عدد"}\r
+            mlym{"مليالم عدد"}\r
+            mymr{"ميانمار عدد"}\r
+            orya{"اوڊيا عدد"}\r
+            roman{"رومي انگ"}\r
+            romanlow{"رومي ننڍا انگ"}\r
+            taml{"روايتي تامل انگ"}\r
+            tamldec{"تامل عدد"}\r
+            telu{"تيلگو عدد"}\r
+            thai{"ٿائي عدد"}\r
+            tibt{"تبتي عدد"}\r
+        }\r
+    }\r
+    Version{"2.1.43.94"}\r
+    characterLabelPattern{\r
+        all{"{0} — سڀئي"}\r
+        category-list{"{0}: {1}"}\r
+        compatibility{"{0} - مطابقت"}\r
+        enclosed{"{0} - ڳنڍيل"}\r
+        extended{"{0} - وڌايل"}\r
+        historic{"{0} - تاريخي"}\r
+        miscellaneous{"{0} - متفرق"}\r
+        other{"{0} - ٻيا"}\r
+        scripts{"رسم الخط - {0}"}\r
+        strokes{\r
+            one{"{0} اسٽروڪ"}\r
+            other{"{0} اسٽروڪَ"}\r
+        }\r
+    }\r
+    codePatterns{\r
+        language{"زبان: {0}"}\r
+        script{"اسڪرپٽ: {0}"}\r
+        territory{"خطو: {0}"}\r
+    }\r
+    localeDisplayPattern{\r
+        keyTypePattern{"{0}: {1}"}\r
+        pattern{"{0} ({1})"}\r
+        separator{"{0}, {1}"}\r
+    }\r
+}\r
index 84b71306bdbb3fb367b0ff26dfe81e8964855bff..27bb2cfb01c63553f1dd19e29887cb5e156bff13 100644 (file)
@@ -154,7 +154,7 @@ se{
         PINYIN{"pinyin"}\r
         WADEGILE{"Wade-Giles"}\r
     }\r
-    Version{"2.1.38.69"}\r
+    Version{"2.1.43.94"}\r
     codePatterns{\r
         language{"giella: {0}"}\r
         script{"chállin: {0}"}\r
index 37f143a267577266c74991e7af2fd69b320df34c..c89a0af87fe189598ecc84e822490efb644a123c 100644 (file)
@@ -62,7 +62,7 @@ se_FI{
             fullwide{"fullwide"}\r
         }\r
     }\r
-    Version{"2.1.38.73"}\r
+    Version{"2.1.44.88"}\r
     codePatterns{\r
         script{"čállin: {0}"}\r
     }\r
index c57016af13adf9dc874a195bcffe16d044edc2ae..932d27cb3c977bcc876316aec17b47aee706cc5b 100644 (file)
@@ -285,7 +285,7 @@ si{
         nyn{"නයන්කෝලෙ"}\r
         oc{"ඔසිටාන්"}\r
         om{"ඔරොමෝ"}\r
-        or{"à¶\94රියා"}\r
+        or{"à¶\94ඩියා"}\r
         os{"ඔසිටෙක්"}\r
         pa{"පන්ජාබි"}\r
         pag{"පන්ගසීනන්"}\r
@@ -459,11 +459,11 @@ si{
         Thaa{"තාන"}\r
         Thai{"තායි"}\r
         Tibt{"ටි‍බෙට්"}\r
-        Zmth{"à¶\9cනිතමය සංකේත"}\r
+        Zmth{"à¶\9cණිතමය සංකේත"}\r
         Zsye{"ඉමොජි"}\r
         Zsym{"සංකේත"}\r
         Zxxx{"අලිඛිත"}\r
-        Zyyy{"පොදු."}\r
+        Zyyy{"පොදු"}\r
         Zzzz{"නොදත් අක්ෂර මාලාව"}\r
     }\r
     Scripts%stand-alone{\r
@@ -548,7 +548,7 @@ si{
             tibt{"ටිබෙට ඉලක්කම්"}\r
         }\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.50"}\r
     characterLabelPattern{\r
         all{"{0} — සියල්ල"}\r
         category-list{"{0}: {1}"}\r
index 462cef852a2dcbc73ff460ae7107f6e001d10ded..3d06441bad03ee2e778083442a12ccd06faf510f 100644 (file)
@@ -46,7 +46,7 @@ sk{
         arc{"aramejčina"}\r
         arn{"mapudungun"}\r
         arp{"arapažština"}\r
-        ars{"arabčina – nadžd"}\r
+        ars{"arabčina (nadždská)"}\r
         arw{"arawačtina"}\r
         as{"ásamčina"}\r
         asa{"asu"}\r
@@ -350,7 +350,7 @@ sk{
         nap{"neapolčina"}\r
         naq{"nama"}\r
         nb{"nórčina (bokmal)"}\r
-        nd{"severná ndebelčina"}\r
+        nd{"ndebelčina (severná)"}\r
         nds{"dolná nemčina"}\r
         nds_NL{"dolná saština"}\r
         ne{"nepálčina"}\r
@@ -367,8 +367,8 @@ sk{
         nog{"nogajčina"}\r
         non{"stará nórčina"}\r
         nqo{"n’ko"}\r
-        nr{"južná ndebelčina"}\r
-        nso{"severná sothčina"}\r
+        nr{"ndebelčina (južná)"}\r
+        nso{"sothčina (severná)"}\r
         nus{"nuer"}\r
         nv{"navaho"}\r
         nwc{"klasická nevárčina"}\r
@@ -432,7 +432,7 @@ sk{
         sco{"škótčina"}\r
         sd{"sindhčina"}\r
         sdh{"južná kurdčina"}\r
-        se{"severná saamčina"}\r
+        se{"saamčina (severná)"}\r
         see{"senekčina"}\r
         seh{"sena"}\r
         sel{"selkupčina"}\r
@@ -448,10 +448,10 @@ sk{
         sk{"slovenčina"}\r
         sl{"slovinčina"}\r
         sm{"samojčina"}\r
-        sma{"južná saamčina"}\r
-        smj{"lulská saamčina"}\r
-        smn{"inarijská saamčina"}\r
-        sms{"skoltská saamčina"}\r
+        sma{"saamčina (južná)"}\r
+        smj{"saamčina (lulská)"}\r
+        smn{"saamčina (inarijská)"}\r
+        sms{"saamčina (skoltská)"}\r
         sn{"šončina"}\r
         snk{"soninke"}\r
         so{"somálčina"}\r
@@ -462,7 +462,7 @@ sk{
         srr{"sererčina"}\r
         ss{"svazijčina"}\r
         ssy{"saho"}\r
-        st{"južná sothčina"}\r
+        st{"sothčina (južná)"}\r
         su{"sundčina"}\r
         suk{"sukuma"}\r
         sus{"susu"}\r
@@ -505,7 +505,7 @@ sk{
         twq{"tasawaq"}\r
         ty{"tahitčina"}\r
         tyv{"tuviančina"}\r
-        tzm{"stredomarocká tuaregčina"}\r
+        tzm{"tuaregčina (stredomarocká)"}\r
         udm{"udmurtčina"}\r
         ug{"ujgurčina"}\r
         uga{"ugaritčina"}\r
@@ -761,7 +761,7 @@ sk{
     Variants{\r
         SCOTLAND{"škótska štandardná angličtina"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.65"}\r
     characterLabelPattern{\r
         all{"{0} – všetko"}\r
         category-list{"{0}: {1}"}\r
index b5512677cd040a3e87a0d1bdb7cf16d7a5bfadde..470fd8f8871c2201deb521dc8473bb466e767e5e 100644 (file)
@@ -142,8 +142,8 @@ sl{
         enm{"srednja angleščina"}\r
         eo{"esperanto"}\r
         es{"španščina"}\r
-        es_419{"latinskoameriška španščina"}\r
         es_ES{"evropska španščina"}\r
+        es_MX{"mehiška španščina"}\r
         et{"estonščina"}\r
         eu{"baskovščina"}\r
         ewo{"evondovščina"}\r
@@ -434,7 +434,7 @@ sl{
         sma{"južna samijščina"}\r
         smj{"luleška samijščina"}\r
         smn{"inarska samijščina"}\r
-        sms{"samijščina Skolt"}\r
+        sms{"skoltska samijščina"}\r
         sn{"šonščina"}\r
         snk{"soninke"}\r
         so{"somalščina"}\r
@@ -451,6 +451,7 @@ sl{
         sux{"sumerščina"}\r
         sv{"švedščina"}\r
         sw{"svahili"}\r
+        sw_CD{"kongoški svahili"}\r
         swb{"šikomor"}\r
         syc{"klasična sirščina"}\r
         syr{"sirščina"}\r
@@ -485,7 +486,7 @@ sl{
         twq{"tasawaq"}\r
         ty{"tahitščina"}\r
         tyv{"tuvinščina"}\r
-        tzm{"tamašek (srednji atlas)"}\r
+        tzm{"tamašek (Srednji Atlas)"}\r
         udm{"udmurtščina"}\r
         ug{"ujgurščina"}\r
         uga{"ugaritski jezik"}\r
@@ -878,7 +879,7 @@ sl{
         VALENCIA{"valencijski pravopis"}\r
         WADEGILE{"romanizacija Wade-Giles"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.91"}\r
     characterLabelPattern{\r
         all{"{0} – vse"}\r
         category-list{"{0}: {1}"}\r
index 3667ad611d21daf697f7f63355305cf2fd38c1fe..1ccb90e02ae57188383907e77b4412bfed249a02 100644 (file)
@@ -48,5 +48,5 @@ sn{
         zh{"chiChinese"}\r
         zu{"chiZulu"}\r
     }\r
-    Version{"2.1.39.11"}\r
+    Version{"2.1.43.94"}\r
 }\r
index dd1385e1cdb4af57ce539a2995137944e59bab21..6e1efbf91fc7aca21796a48fba9d71854480154f 100644 (file)
@@ -5,24 +5,33 @@ so{
         ak{"Akan"}\r
         am{"Axmaari"}\r
         ar{"Carabi"}\r
+        ar_001{"Carabiga rasmiga ah"}\r
         be{"Beleruusiyaan"}\r
         bg{"Bulgeeriyaan"}\r
-        bn{"Bangaali"}\r
+        bn{"Bangladesh"}\r
         cs{"Jeeg"}\r
         de{"Jarmal"}\r
+        de_CH{"Jarmal (Iswiiserlaand)"}\r
         el{"Giriik"}\r
         en{"Ingiriisi"}\r
+        en_AU{"Ingiriis Austaraaliyaan"}\r
+        en_CA{"Ingiriis Kanadiyaan"}\r
+        en_GB{"Ingiriis Biritish"}\r
+        en_US{"Ingiriis Maraykan"}\r
         es{"Isbaanish"}\r
+        es_419{"Isbaanishka Laatiin Ameerika"}\r
+        es_ES{"Isbaanish (Isbayn)"}\r
         fa{"Faarisi"}\r
         fr{"Faransiis"}\r
+        fr_CH{"Faransiis (Iswiiserlaand)"}\r
         fy{"Firiisiyan Galbeed"}\r
         ha{"Hawsa"}\r
         hi{"Hindi"}\r
         hu{"Hangariyaan"}\r
-        id{"Indunuusiyaan"}\r
+        id{"Indonesiyaan"}\r
         ig{"Igbo"}\r
         it{"Talyaani"}\r
-        ja{"Jabbaaniis"}\r
+        ja{"Jabaaniis"}\r
         jv{"Jafaaniis"}\r
         km{"Kamboodhian"}\r
         ko{"Kuuriyaan"}\r
@@ -30,9 +39,12 @@ so{
         my{"Burmese"}\r
         ne{"Nebaali"}\r
         nl{"Holandays"}\r
+        nl_BE{"Af faleemi"}\r
         pa{"Bunjaabi"}\r
         pl{"Boolish"}\r
         pt{"Boortaqiis"}\r
+        pt_BR{"Boortaqiiska Baraasiil"}\r
+        pt_PT{"Boortaqiis (Boortuqaal)"}\r
         ro{"Romanka"}\r
         ru{"Ruush"}\r
         rw{"Rwanda"}\r
@@ -42,15 +54,55 @@ so{
         th{"Taaylandays"}\r
         tr{"Turkish"}\r
         uk{"Yukreeniyaan"}\r
+        und{"Af aan la aqoon ama aan sax ahayn"}\r
         ur{"Urduu"}\r
         vi{"Fiitnaamays"}\r
         yo{"Yoruuba"}\r
-        zh{"Jayniis"}\r
+        zh{"Jayniis Mandarin"}\r
+        zh_Hans{"Jayniis rasmiga ah"}\r
+        zh_Hant{"Jayniiskii hore"}\r
         zu{"Zuulu"}\r
     }\r
+    Languages%short{\r
+        en_GB{"Ingiriiska Boqortooyada Midooday"}\r
+        en_US{"Ingiriisi (US)"}\r
+    }\r
     Scripts{\r
+        Arab{"Carabi"}\r
+        Cyrl{"Siriylik"}\r
+        Hans{"La fududeeyay"}\r
+        Hant{"Hore"}\r
+        Jpan{"Jabaaniis"}\r
+        Kore{"Kuuriyaan"}\r
+        Latn{"Laatiin"}\r
         Zxxx{"Aan la qorin"}\r
         Zzzz{"Far aan la aqoon amase aan saxnayn"}\r
     }\r
-    Version{"2.1.38.69"}\r
+    Scripts%stand-alone{\r
+        Hans{"Haan La fududeeyay"}\r
+        Hant{"Haanti hore"}\r
+    }\r
+    Types{\r
+        calendar{\r
+            gregorian{"Geregoriyaan"}\r
+            iso8601{"iso8601"}\r
+        }\r
+        collation{\r
+            standard{"Istaandar"}\r
+        }\r
+        numbers{\r
+            latn{"Laatiin"}\r
+        }\r
+    }\r
+    Version{"2.1.43.94"}\r
+    codePatterns{\r
+        language{"Luuqad : {0}"}\r
+        script{"Qoraal: {0}"}\r
+        territory{"Gobol : {0}"}\r
+    }\r
+    localeDisplayPattern{\r
+        keyTypePattern{"{0}: {1}"}\r
+        pattern{"{0} ({1})"}\r
+        separator{"{0}, {1}"}\r
+    }\r
 }\r
index 1431bdce336da6b1ab640c19ca6791e41e285cc3..df27cd359e354969dac1794323de964ea6e8d11e 100644 (file)
@@ -406,6 +406,8 @@ sq{
         yue{"kantonezisht"}\r
         zgh{"tamaziatishte standarde marokene"}\r
         zh{"kinezisht"}\r
+        zh_Hans{"kinezishte e thjeshtuar"}\r
+        zh_Hant{"kinezishte tradicionale"}\r
         zu{"zuluisht"}\r
         zun{"zunisht"}\r
         zxx{"nuk ka përmbajtje gjuhësore"}\r
@@ -472,7 +474,7 @@ sq{
             chinese{"kalendar kinez"}\r
             coptic{"Kalendari Koptik"}\r
             dangi{"kalendar dangi"}\r
-            ethiopic{"kalendar etiopik"}\r
+            ethiopic{"kalendar etiopian"}\r
             ethiopic-amete-alem{"Kalendari Etiopas Amete Alem"}\r
             gregorian{"kalendar gregorian"}\r
             hebrew{"kalendar hebraik"}\r
@@ -484,7 +486,7 @@ sq{
             iso8601{"kalendar ISO-8601"}\r
             japanese{"kalendar japonez"}\r
             persian{"kalendar persian"}\r
-            roc{"kalendar minguoje (kinez)"}\r
+            roc{"kalendar minguo (i Republikës së Kinës)"}\r
         }\r
         cf{\r
             account{"format valutor llogaritës"}\r
@@ -524,7 +526,7 @@ sq{
             armnlow{"numra armenë të vegjël"}\r
             beng{"shifra bengali"}\r
             deva{"shifra devanagari"}\r
-            ethi{"numra etiopë"}\r
+            ethi{"numra etiopianë"}\r
             fullwide{"shifra me largësi të brendshme"}\r
             geor{"numra gjeorgjianë"}\r
             grek{"numra grekë"}\r
@@ -555,7 +557,7 @@ sq{
             tibt{"shifra tibetiane"}\r
         }\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.50"}\r
     characterLabelPattern{\r
         all{"{0} — Të gjitha"}\r
         category-list{"{0}: {1}"}\r
index d84a131c2cb3a7ad8582226537e0e06da714d7e8..45393c41d71de31ca73b3f386f96fafa02330fa8 100644 (file)
@@ -140,6 +140,7 @@ sr{
         enm{"средњеенглески"}\r
         eo{"есперанто"}\r
         es{"шпански"}\r
+        es_ES{"шпански (Европа)"}\r
         et{"естонски"}\r
         eu{"баскијски"}\r
         ewo{"евондо"}\r
@@ -546,7 +547,7 @@ sr{
         Blis{"блисимболично писмо"}\r
         Bopo{"бопомофо писмо"}\r
         Brah{"браманско писмо"}\r
-        Brai{"Ð\91рајево писмо"}\r
+        Brai{"брајево писмо"}\r
         Bugi{"бугинско писмо"}\r
         Buhd{"бухидско писмо"}\r
         Cakm{"чакманско писмо"}\r
@@ -847,7 +848,7 @@ sr{
         TARASK{"Тараскијевичка ортографија"}\r
         VALENCIA{"Валенцијска"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.94"}\r
     characterLabelPattern{\r
         all{"{0} — све"}\r
         category-list{"{0}: {1}"}\r
index 7ce272f5f13d81ade2d2f01c248ef6b7e54c88e2..25bae0e7989cbceeb2724c37a504700ec31e7b61 100644 (file)
@@ -18,5 +18,5 @@ sr_Cyrl_BA{
         zgh{"стандардни марокански тамашек"}\r
         zu{"исизулу"}\r
     }\r
-    Version{"2.1.38.69"}\r
+    Version{"2.1.44.88"}\r
 }\r
index c11fc8b3326d2dd4b65e90aca2f6968553f3b327..3fe65deb44557db4a1c6eb82ae858867e81515b9 100644 (file)
@@ -17,5 +17,5 @@ sr_Cyrl_ME{
         zgh{"стандардни марокански тамашек"}\r
         zu{"исизулу"}\r
     }\r
-    Version{"2.1.38.69"}\r
+    Version{"2.1.44.88"}\r
 }\r
index f1bcebc5cd327a73da6ccc2de776094d8a717b07..aa937eb3ec920f4b2637f079f405816a11d4a741 100644 (file)
@@ -141,6 +141,7 @@ sr_Latn{
         enm{"srednjeengleski"}\r
         eo{"esperanto"}\r
         es{"španski"}\r
+        es_ES{"španski (Evropa)"}\r
         et{"estonski"}\r
         eu{"baskijski"}\r
         ewo{"evondo"}\r
@@ -547,7 +548,7 @@ sr_Latn{
         Blis{"blisimbolično pismo"}\r
         Bopo{"bopomofo pismo"}\r
         Brah{"bramansko pismo"}\r
-        Brai{"Brajevo pismo"}\r
+        Brai{"brajevo pismo"}\r
         Bugi{"buginsko pismo"}\r
         Buhd{"buhidsko pismo"}\r
         Cakm{"čakmansko pismo"}\r
@@ -848,7 +849,7 @@ sr_Latn{
         TARASK{"Taraskijevička ortografija"}\r
         VALENCIA{"Valencijska"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.50"}\r
     characterLabelPattern{\r
         all{"{0} — sve"}\r
         category-list{"{0}: {1}"}\r
index 288e1fc69bf06d11dfb1e75d8fe56f03edb484e6..e3a7c43b6f92c2f5eed3cc686ab0efd1c925949f 100644 (file)
@@ -18,5 +18,5 @@ sr_Latn_BA{
         zgh{"standardni marokanski tamašek"}\r
         zu{"isizulu"}\r
     }\r
-    Version{"2.1.38.69"}\r
+    Version{"2.1.44.88"}\r
 }\r
index a7dfa840f215be03613a4d5ab5710607fd2736d7..bbccd1501f1559643389e6ac6cafef8f43ccf5f1 100644 (file)
@@ -17,5 +17,5 @@ sr_Latn_ME{
         zgh{"standardni marokanski tamašek"}\r
         zu{"isizulu"}\r
     }\r
-    Version{"2.1.38.69"}\r
+    Version{"2.1.44.88"}\r
 }\r
index c163e7df5fa8e40bf15f9200292a958856c24b0f..93b5d9442906ea6e73e2a31b4c5e18323c0d6634 100644 (file)
@@ -397,7 +397,7 @@ sv{
         mye{"myene"}\r
         myv{"erjya"}\r
         mzn{"mazanderani"}\r
-        na{"nauriska"}\r
+        na{"nauruanska"}\r
         nan{"min nan"}\r
         nap{"napolitanska"}\r
         naq{"nama"}\r
@@ -688,6 +688,7 @@ sv{
         Geok{"kutsuri"}\r
         Geor{"georgiska"}\r
         Glag{"glagolitiska"}\r
+        Gong{"gunjalgondiska"}\r
         Gonm{"masaram-gondi"}\r
         Goth{"gotiska"}\r
         Gran{"gammaltamilska"}\r
@@ -774,6 +775,7 @@ sv{
         Plrd{"pollardtecken"}\r
         Prti{"tidig parthianska"}\r
         Rjng{"rejang"}\r
+        Rohg{"hanifiska"}\r
         Roro{"rongo-rongo"}\r
         Runr{"runor"}\r
         Samr{"samaritiska"}\r
@@ -786,6 +788,8 @@ sv{
         Sidd{"siddhamska"}\r
         Sind{"sindhiska"}\r
         Sinh{"singalesiska"}\r
+        Sogd{"sogdiska"}\r
+        Sogo{"gammalsogdiska"}\r
         Sora{"sora sompeng"}\r
         Soyo{"soyombo"}\r
         Sund{"sundanesiska"}\r
@@ -949,6 +953,8 @@ sv{
             finance{"finansiella siffror"}\r
             fullwide{"fullbreddssiffror"}\r
             geor{"georgiska taltecken"}\r
+            gong{"gunjalagondiska siffror"}\r
+            gonm{"masaramgondiska siffror"}\r
             grek{"grekiska taltecken"}\r
             greklow{"små grekiska taltecken"}\r
             gujr{"gujaratiska siffror"}\r
@@ -990,6 +996,7 @@ sv{
             olck{"ol chiki-siffror"}\r
             orya{"oriyiska siffror"}\r
             osma{"osmanya-siffror"}\r
+            rohg{"hanifisiffror"}\r
             roman{"romerska taltecken"}\r
             romanlow{"små romerska taltecken"}\r
             saur{"saurashtra-siffror"}\r
@@ -1046,6 +1053,7 @@ sv{
         HSISTEMO{"h-system"}\r
         IJEKAVSK{"ijekavisk dialekt"}\r
         ITIHASA{"itihasa-dialekt"}\r
+        IVANCHOV{"bulgariska i 1899 års stavning"}\r
         JAUER{"jauer-dialekt"}\r
         JYUTPING{"jyutping"}\r
         KKCOR{"vanlig stavning"}\r
@@ -1097,17 +1105,17 @@ sv{
         WADEGILE{"Wade-Giles"}\r
         XSISTEMO{"x-system"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.94"}\r
     characterLabelPattern{\r
-        all{"{0} â\80\94 alla"}\r
+        all{"{0} â\80\93 alla"}\r
         category-list{"{0}: {1}"}\r
-        compatibility{"{0} â\80\94 kompatibilitet"}\r
-        enclosed{"{0} â\80\94 omringande"}\r
-        extended{"{0} â\80\94 utvidgat"}\r
+        compatibility{"{0} â\80\93 kompatibilitet"}\r
+        enclosed{"{0} â\80\93 omringande"}\r
+        extended{"{0} â\80\93 utvidgat"}\r
         historic{"{0} — historiska"}\r
-        miscellaneous{"{0} â\80\94 diverse"}\r
-        other{"{0} â\80\94 övriga"}\r
-        scripts{"skrift — {0}"}\r
+        miscellaneous{"{0} â\80\93 diverse"}\r
+        other{"{0} â\80\93 övriga"}\r
+        scripts{"{0} – övriga"}\r
         strokes{\r
             one{"{0} streck"}\r
             other{"{0} streck"}\r
index 39ed8211ab9229870342ee750372a790f24a425a..04e53d9ff672835a036094685954a87e19e43624 100644 (file)
@@ -52,7 +52,7 @@ sw{
         awa{"Kiawadhi"}\r
         ay{"Kiaymara"}\r
         az{"Kiazerbaijani"}\r
-        ba{"Kibashkir"}\r
+        ba{"Kibashkiri"}\r
         ban{"Kibali"}\r
         bas{"Kibasaa"}\r
         bax{"Kibamun"}\r
@@ -75,7 +75,7 @@ sw{
         br{"Kibretoni"}\r
         brx{"Kibodo"}\r
         bs{"Kibosnia"}\r
-        bug{"Lugha ya Buginese"}\r
+        bug{"Kibugini"}\r
         bum{"Kibulu"}\r
         byn{"Kiblin"}\r
         byv{"Kimedumba"}\r
@@ -94,7 +94,7 @@ sw{
         cop{"Kikhufti"}\r
         crs{"Krioli ya Shelisheli"}\r
         cs{"Kicheki"}\r
-        cu{"Kislovakia cha Church"}\r
+        cu{"Kislovakia cha Kanisa"}\r
         cv{"Kichuvash"}\r
         cy{"Kiwelisi"}\r
         da{"Kidenmaki"}\r
@@ -104,7 +104,7 @@ sw{
         de{"Kijerumani"}\r
         dgr{"Kidogrib"}\r
         dje{"Kizarma"}\r
-        dsb{"Kidolnoserbski"}\r
+        dsb{"Kisobia cha Chini"}\r
         dua{"Kiduala"}\r
         dv{"Kidivehi"}\r
         dyo{"Kijola-Fonyi"}\r
@@ -119,14 +119,16 @@ sw{
         el{"Kigiriki"}\r
         en{"Kiingereza"}\r
         en_CA{"Kiingereza (Canada)"}\r
+        en_GB{"Kiingereza (Uingereza)"}\r
         eo{"Kiesperanto"}\r
         es{"Kihispania"}\r
-        es_MX{"Kihispania (Mexico)"}\r
+        es_419{"Kihispania (Amerika ya Latini)"}\r
+        es_ES{"Kihispania (Ulaya)"}\r
         et{"Kiestonia"}\r
-        eu{"Kibasque"}\r
+        eu{"Kibaski"}\r
         ewo{"Kiewondo"}\r
         fa{"Kiajemi"}\r
-        ff{"Kifula"}\r
+        ff{"Kifulani"}\r
         fi{"Kifini"}\r
         fil{"Kifilipino"}\r
         fj{"Kifiji"}\r
@@ -165,7 +167,7 @@ sw{
         hr{"Kikroeshia"}\r
         hsb{"Kisobia cha Ukanda wa Juu"}\r
         ht{"Kihaiti"}\r
-        hu{"Kihangari"}\r
+        hu{"Kihungaria"}\r
         hup{"Hupa"}\r
         hy{"Kiarmenia"}\r
         hz{"Kiherero"}\r
@@ -173,14 +175,15 @@ sw{
         iba{"Kiiban"}\r
         ibb{"Kiibibio"}\r
         id{"Kiindonesia"}\r
+        ie{"lugha ya kisayansi"}\r
         ig{"Kiigbo"}\r
-        ii{"Sichuan Yi"}\r
+        ii{"Kiyi cha Sichuan"}\r
         ilo{"Kiilocano"}\r
         inh{"Kiingush"}\r
         io{"Kiido"}\r
-        is{"Kiaisilandi"}\r
+        is{"Kiisilandi"}\r
         it{"Kiitaliano"}\r
-        iu{"Kiinuktitut"}\r
+        iu{"Kiinuktituti"}\r
         ja{"Kijapani"}\r
         jbo{"Lojban"}\r
         jgo{"Kingomba"}\r
@@ -267,7 +270,7 @@ sw{
         mic{"Mi’kmaq"}\r
         min{"Kiminangkabau"}\r
         mk{"Kimacedonia"}\r
-        ml{"Kimalayalam"}\r
+        ml{"Kimalayalamu"}\r
         mn{"Kimongolia"}\r
         mni{"Kimanipuri"}\r
         moh{"Lugha ya Mohawk"}\r
@@ -326,7 +329,8 @@ sw{
         prg{"Kiprussia"}\r
         ps{"Kipashto"}\r
         pt{"Kireno"}\r
-        qu{"Kiquechua"}\r
+        pt_PT{"Kireno (Ulaya)"}\r
+        qu{"Kikechua"}\r
         quc{"Kʼicheʼ"}\r
         rap{"Kirapanui"}\r
         rar{"Kirarotonga"}\r
@@ -334,7 +338,7 @@ sw{
         rn{"Kirundi"}\r
         ro{"Kiromania"}\r
         rof{"Kirombo"}\r
-        root{"Root"}\r
+        root{"Kiroot"}\r
         ru{"Kirusi"}\r
         rup{"Kiaromania"}\r
         rw{"Kinyarwanda"}\r
@@ -359,6 +363,7 @@ sw{
         sh{"Kiserbia-kroeshia"}\r
         shi{"Kitachelhit"}\r
         shn{"Kishan"}\r
+        shu{"Kiarabu cha Chad"}\r
         si{"Kisinhala"}\r
         sk{"Kislovakia"}\r
         sl{"Kislovenia"}\r
@@ -381,16 +386,15 @@ sw{
         sus{"Kisusu"}\r
         sv{"Kiswidi"}\r
         sw{"Kiswahili"}\r
-        sw_CD{"Kingwana"}\r
         swb{"Shikomor"}\r
         syr{"Lugha ya Syriac"}\r
-        ta{"Kitamil"}\r
+        ta{"Kitamili"}\r
         te{"Kitelugu"}\r
         tem{"Kitemne"}\r
         teo{"Kiteso"}\r
         tet{"Kitetum"}\r
         tg{"Kitajiki"}\r
-        th{"Kitailandi"}\r
+        th{"Kithai"}\r
         ti{"Kitigrinya"}\r
         tig{"Kitigre"}\r
         tk{"Kiturukimeni"}\r
@@ -408,10 +412,10 @@ sw{
         twq{"Kitasawaq"}\r
         ty{"Kitahiti"}\r
         tyv{"Kituva"}\r
-        tzm{"Central Atlas Tamazight"}\r
-        udm{"Udmurt"}\r
+        tzm{"Kitamazighati cha Atlasi ya Kati"}\r
+        udm{"Kiudmurt"}\r
         ug{"Kiuyghur"}\r
-        uk{"Kiukraine"}\r
+        uk{"Kiukraini"}\r
         umb{"Umbundu"}\r
         und{"Lugha Isiyojulikana"}\r
         ur{"Kiurdu"}\r
@@ -421,12 +425,12 @@ sw{
         vi{"Kivietinamu"}\r
         vo{"Kivolapuk"}\r
         vun{"Kivunjo"}\r
-        wa{"Walloon"}\r
-        wae{"Walser"}\r
+        wa{"Kiwaloon"}\r
+        wae{"Kiwalser"}\r
         wal{"Kiwolaytta"}\r
         war{"Kiwaray"}\r
         wbp{"Kiwarlpiri"}\r
-        wo{"Lugha ya Wolof"}\r
+        wo{"Kiwolofu"}\r
         xal{"Kikalmyk"}\r
         xh{"Kixhosa"}\r
         xog{"Kisoga"}\r
@@ -644,7 +648,7 @@ sw{
             vaii{"Dijiti za Vai"}\r
         }\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.65"}\r
     characterLabelPattern{\r
         all{"{0} — zote"}\r
         category-list{"{0}: {1}"}\r
@@ -661,9 +665,9 @@ sw{
         }\r
     }\r
     codePatterns{\r
-        language{"{0}"}\r
-        script{"{0}"}\r
-        territory{"{0}"}\r
+        language{"Lugha: {0}"}\r
+        script{"Hati: {0}"}\r
+        territory{"Eneo: {0}"}\r
     }\r
     localeDisplayPattern{\r
         keyTypePattern{"{0}: {1}"}\r
index 594eb3bc41f64327af206b94f514c32e7498a3cf..bd9769147002c3d9ee1fa8f5609b8c10d00fd89d 100644 (file)
@@ -6,7 +6,6 @@ sw_CD{
         ar_001{"Kiarabu cha Dunia Kilichosanifishwa"}\r
         arq{"Kiarabu cha Aljeria"}\r
         az{"Kiazabajani"}\r
-        bug{"Kibugini"}\r
         gv{"Kimanksi"}\r
         gwi{"Kigwichiin"}\r
         hup{"Kihupa"}\r
@@ -30,14 +29,12 @@ sw_CD{
         nqo{"Kiinko"}\r
         pcm{"Pijini ya Nijeria"}\r
         quc{"Kikiiche"}\r
-        root{"Kiroot"}\r
         shu{"Kiarabu cha Chadi"}\r
         srn{"Kitongo cha Sranan"}\r
         swb{"Kikomoro"}\r
         syr{"Kisiria"}\r
         udm{"Kiudumurti"}\r
-        wae{"Kiwalser"}\r
         yi{"Kiyidi"}\r
     }\r
-    Version{"2.1.39.11"}\r
+    Version{"2.1.43.65"}\r
 }\r
index aa788154c0df170f7bcae86821fad2155bd52b31..a081bc65d0816bf1e36e054e693bf9d232f00df9 100644 (file)
@@ -2,45 +2,47 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 sw_KE{\r
     Languages{\r
-        ain{"Ainu"}\r
-        ar_001{"Kiarabu cha Sasa Kilichosanifishwa"}\r
         arq{"Kiarabu cha Aljeria"}\r
-        az{"Kiazabajani"}\r
-        bug{"Kibugini"}\r
-        ckb{"Kikurdi cha Kati"}\r
-        dsb{"Kisorbian cha Chini"}\r
+        as{"Kiasamisi"}\r
+        chr{"Kicheroki"}\r
+        cu{"Kislovakia cha Kanisa la Jadi"}\r
+        gaa{"Kiga"}\r
         grc{"Kigiriki cha Kale"}\r
+        gwi{"Kigwichʼin"}\r
         hsb{"Kisorbia cha Juu"}\r
-        inh{"Kingushi"}\r
+        hup{"Kihupa"}\r
+        hy{"Kiamenia"}\r
+        inh{"Kiingushi"}\r
         jbo{"Kilojbani"}\r
-        kac{"Kikachin"}\r
-        khq{"Kikoyra Chiini"}\r
+        kac{"Kikachini"}\r
+        khq{"Kikoyrachiini"}\r
         kkj{"Kikako"}\r
+        km{"Kikhmeri"}\r
+        kn{"Kikanada"}\r
         koi{"Kikomipermyak"}\r
         kru{"Kikurukh"}\r
+        lag{"Kilangi"}\r
         lam{"Kilamba"}\r
-        li{"Kilimbugish"}\r
+        li{"Kilimbugishi"}\r
         mdf{"Kimoksha"}\r
-        mic{"Kimicmac"}\r
+        mic{"Kimi'kmak"}\r
         mk{"Kimasedonia"}\r
         moh{"Kimohoki"}\r
         nnh{"Kiingiemboon"}\r
         nqo{"Kiin’ko"}\r
         or{"Kiodia"}\r
-        pcm{"Pijini ya Nijeria"}\r
-        root{"Kiroot"}\r
-        sco{"sco"}\r
-        ses{"Kikoyraboro Senni"}\r
+        pcm{"Kipijini cha Nigeria"}\r
+        ses{"Kikoyraborosenni"}\r
         shu{"Kiarabu cha Chadi"}\r
-        srn{"Kiscran Tongo"}\r
-        swb{"Kicomoro"}\r
-        syr{"Kisyria"}\r
+        srn{"Kisranantongo"}\r
+        sw_CD{"Kiswahili cha Kongo"}\r
+        swb{"Kikomoro"}\r
+        syr{"Kisiria"}\r
         tw{"Kitwi"}\r
-        tzm{"Lugha ya Central Atlas Tamazight"}\r
+        twq{"Kitasawak"}\r
         udm{"Kiudumurti"}\r
-        wa{"Kiwaloon"}\r
-        wae{"Kiwalser"}\r
-        zgh{"Tamazight Sanifu ya Moroko"}\r
+        ug{"Kiuiguri"}\r
+        zgh{"Kitamazighati Sanifu cha Moroko"}\r
     }\r
-    Version{"2.1.38.39"}\r
+    Version{"2.1.43.65"}\r
 }\r
index 193fd88671af68c817eb1c32ef416bb86f9b25ed..04e86225c8ff6747d1a223d9222c2d2b8e285c64 100644 (file)
@@ -416,7 +416,7 @@ ta{
         rwk{"ருவா"}\r
         sa{"சமஸ்கிருதம்"}\r
         sad{"சான்டாவே"}\r
-        sah{"சகா"}\r
+        sah{"à®\9aà®\95à¯\8dà®\95ா"}\r
         sam{"சமாரிடன் அராமைக்"}\r
         saq{"சம்புரு"}\r
         sas{"சாசாக்"}\r
@@ -702,7 +702,7 @@ ta{
             chinese{"சீன நாள்காட்டி"}\r
             coptic{"காப்டிக் நாள்காட்டி"}\r
             dangi{"டேங்கி நாள்காட்டி"}\r
-            ethiopic{"à®\8eதà¯\8dதியà¯\8bபà¯\8dபிà®\95à¯\8d நாள்காட்டி"}\r
+            ethiopic{"à®\8eதà¯\8dதியà¯\8bபà¯\8dபிய நாள்காட்டி"}\r
             ethiopic-amete-alem{"எத்தியோபிக் அமேதே ஆலெம் நாள்காட்டி"}\r
             gregorian{"கிரிகோரியன் நாள்காட்டி"}\r
             hebrew{"ஹீப்ரு நாள்காட்டி"}\r
@@ -712,7 +712,7 @@ ta{
             islamic-umalqura{"இஸ்லாமிய நாள்காட்டி (உம்-அல்-குரா)"}\r
             iso8601{"ISO-8601 நாள்காட்டி"}\r
             japanese{"ஜப்பானிய நாள்காட்டி"}\r
-            persian{"பà¯\86à®°à¯\8dà®\9aியனà¯\8d நாள்காட்டி"}\r
+            persian{"பாரà®\9aà¯\80à®\95 நாள்காட்டி"}\r
             roc{"மின்கோ நாள்காட்டி"}\r
         }\r
         cf{\r
@@ -787,7 +787,7 @@ ta{
         }\r
         m0{\r
             bgn{"யூஎஸ் பிஜிஎன் ஒலிபெயர்ப்பு"}\r
-            ungegn{"UNGEGN"}\r
+            ungegn{"யூஎன் ஜிஇஜிஎன் ஒலிபெயர்ப்பு"}\r
         }\r
         ms{\r
             metric{"மெட்ரிக் முறை"}\r
@@ -841,7 +841,7 @@ ta{
         PINYIN{"பின்யின் ரோமானைசெஷன்"}\r
         WADEGILE{"வேட்-கைல்ஸ் ரோமனைஷேசன்"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.50"}\r
     characterLabelPattern{\r
         all{"{0} — அனைத்தும்"}\r
         category-list{"{0}: {1}"}\r
index 0db726b0ac4d0715116cd7985a71cdbaa7954b16..77174a91fb282157b4438458edef5e624d1df775 100644 (file)
@@ -44,7 +44,7 @@ te{
         anp{"ఆంగిక"}\r
         ar{"అరబిక్"}\r
         ar_001{"ఆధునిక ప్రామాణిక అరబిక్"}\r
-        arc{"à°\85రామà±\87క్"}\r
+        arc{"à°\85రామà±\88క్"}\r
         arn{"మపుచే"}\r
         arp{"అరాపాహో"}\r
         arw{"అరావాక్"}\r
@@ -56,11 +56,11 @@ te{
         awa{"అవధి"}\r
         ay{"ఐమారా"}\r
         az{"అజర్బైజాని"}\r
-        ba{"బష్కిర్"}\r
+        ba{"బాషà±\8dà°\95à°¿à°°à±\8d"}\r
         bal{"బాలుచి"}\r
         ban{"బాలినీస్"}\r
         bas{"బసా"}\r
-        be{"బెలరుషియన్"}\r
+        be{"à°¬à±\86లారà±\81షియనà±\8d"}\r
         bej{"బేజా"}\r
         bem{"బెంబా"}\r
         bez{"బెనా"}\r
@@ -72,7 +72,7 @@ te{
         bin{"బిని"}\r
         bla{"సిక్సికా"}\r
         bm{"బంబారా"}\r
-        bn{"బాà°\82à°\97à±\8dలా"}\r
+        bn{"బంగ్లా"}\r
         bo{"టిబెటన్"}\r
         bpy{"బిష్ణుప్రియ"}\r
         br{"బ్రెటన్"}\r
@@ -87,7 +87,7 @@ te{
         car{"కేరిబ్"}\r
         cch{"అట్సామ్"}\r
         ce{"చెచెన్"}\r
-        ceb{"à°¸à±\86à°¬à±\81à°¯ానో"}\r
+        ceb{"à°¸à±\86à°¬à±\81à°µానో"}\r
         cgg{"ఛిగా"}\r
         ch{"చమర్రో"}\r
         chb{"చిబ్చా"}\r
@@ -159,7 +159,7 @@ te{
         fi{"ఫిన్నిష్"}\r
         fil{"ఫిలిపినో"}\r
         fj{"ఫిజియన్"}\r
-        fo{"ఫారà±\8bà°¯à±\80à°\9c్"}\r
+        fo{"ఫారà±\8bà°¸్"}\r
         fon{"ఫాన్"}\r
         fr{"ఫ్రెంచ్"}\r
         fr_CA{"కెనడియెన్ ఫ్రెంచ్"}\r
@@ -198,20 +198,20 @@ te{
         hai{"హైడా"}\r
         hak{"హక్కా చైనీస్"}\r
         haw{"హవాయియన్"}\r
-        he{"à°¹à±\80బ్రూ"}\r
+        he{"హిబ్రూ"}\r
         hi{"హిందీ"}\r
-        hil{"హిలిà°\97à±\87యినà±\8bన్"}\r
+        hil{"హిలిà°\97à±\86నాన్"}\r
         hit{"హిట్టిటే"}\r
         hmn{"మోంగ్"}\r
         ho{"హిరి మోటు"}\r
-        hr{"à°\95à±\8dà°°à±\8bయేషియన్"}\r
+        hr{"à°\95à±\8dà°°à±\8aయేషియన్"}\r
         hsb{"అప్పర్ సోర్బియన్"}\r
         hsn{"జియాంగ్ చైనీస్"}\r
         ht{"హైటియన్ క్రియోల్"}\r
         hu{"హంగేరియన్"}\r
         hup{"హుపా"}\r
         hy{"ఆర్మేనియన్"}\r
-        hz{"హిరà±\87రో"}\r
+        hz{"à°¹à±\86à°°à±\86రో"}\r
         ia{"ఇంటర్లింగ్వా"}\r
         iba{"ఐబాన్"}\r
         ibb{"ఇబిబియో"}\r
@@ -247,7 +247,7 @@ te{
         kfo{"కోరో"}\r
         kg{"కోంగో"}\r
         kha{"ఖాసి"}\r
-        kho{"à°\96à°\9fà±\8bనీస్"}\r
+        kho{"à°\96à±\8bà°\9fనీస్"}\r
         khq{"కొయరా చీన్నీ"}\r
         ki{"కికుయు"}\r
         kj{"క్వాన్యామ"}\r
@@ -313,15 +313,15 @@ te{
         men{"మెండే"}\r
         mer{"మెరు"}\r
         mfe{"మొరిస్యేన్"}\r
-        mg{"మాలాà°\97సి"}\r
+        mg{"మలà°\97à°¾సి"}\r
         mga{"మధ్యమ ఐరిష్"}\r
         mgh{"మక్వా-మిట్టో"}\r
         mgo{"మెటా"}\r
         mh{"మార్షలీస్"}\r
-        mi{"మయà±\8bà°°à°¿"}\r
+        mi{"మావà±\8aà°°à±\80"}\r
         mic{"మికమాక్"}\r
         min{"మినాంగ్‌కాబో"}\r
-        mk{"మసడోనియన్"}\r
+        mk{"మాసిడోనియన్"}\r
         ml{"మలయాళం"}\r
         mn{"మంగోలియన్"}\r
         mnc{"మంచు"}\r
@@ -329,7 +329,7 @@ te{
         moh{"మోహాక్"}\r
         mos{"మోస్సి"}\r
         mr{"మరాఠీ"}\r
-        ms{"మలాయà±\8d"}\r
+        ms{"మలయ్"}\r
         mt{"మాల్టీస్"}\r
         mua{"మండాంగ్"}\r
         mul{"బహుళ భాషలు"}\r
@@ -351,7 +351,7 @@ te{
         new{"నెవారి"}\r
         ng{"డోంగా"}\r
         nia{"నియాస్"}\r
-        niu{"నాయియన్"}\r
+        niu{"నియాన్"}\r
         nl{"డచ్"}\r
         nl_BE{"ఫ్లెమిష్"}\r
         nmg{"క్వాసియె"}\r
@@ -403,7 +403,7 @@ te{
         rar{"రారోటొంగాన్"}\r
         rm{"రోమన్ష్"}\r
         rn{"రుండి"}\r
-        ro{"à°°à±\8bమానియన్"}\r
+        ro{"à°°à±\8bà°®à±\87నియన్"}\r
         ro_MD{"మొల్డావియన్"}\r
         rof{"రోంబో"}\r
         rom{"రోమానీ"}\r
@@ -414,18 +414,18 @@ te{
         rwk{"ర్వా"}\r
         sa{"సంస్కృతం"}\r
         sad{"సండావి"}\r
-        sah{"సఖా"}\r
-        sam{"సమారిà°\9fà°¨à±\8d à°\85à°°à°®à±\87క్"}\r
+        sah{"సాà°\96à°¾"}\r
+        sam{"సమారిà°\9fà°¨à±\8d à°\85రామà±\88క్"}\r
         saq{"సంబురు"}\r
         sas{"ససక్"}\r
-        sat{"à°¸à°\82à°\9fాలి"}\r
+        sat{"à°¸à°\82à°¤ాలి"}\r
         sba{"గాంబే"}\r
         sbp{"సాంగు"}\r
         sc{"సార్డీనియన్"}\r
         scn{"సిసిలియన్"}\r
         sco{"స్కాట్స్"}\r
         sd{"సింధీ"}\r
-        sdh{"à°¦à°\95à±\8dà°·à°¿à°£ à°\95à±\81à°°à±\8dà°¦ిష్"}\r
+        sdh{"à°¦à°\95à±\8dà°·à°¿à°£ à°\95à±\81à°°à±\8dà°¡ిష్"}\r
         se{"ఉత్తర సామి"}\r
         seh{"సెనా"}\r
         sel{"సేల్కప్"}\r
@@ -437,7 +437,7 @@ te{
         shn{"షాన్"}\r
         si{"సింహళం"}\r
         sid{"సిడామో"}\r
-        sk{"à°¸à±\8dà°²à±\8bవాà°\95à±\8d"}\r
+        sk{"స్లోవక్"}\r
         sl{"స్లోవేనియన్"}\r
         sm{"సమోవన్"}\r
         sma{"దక్షిణ సామి"}\r
@@ -474,7 +474,7 @@ te{
         tet{"టేటం"}\r
         tg{"తజిక్"}\r
         th{"థాయ్"}\r
-        ti{"à°¤ిగ్రిన్యా"}\r
+        ti{"à°\9fిగ్రిన్యా"}\r
         tig{"టీగ్రె"}\r
         tiv{"టివ్"}\r
         tk{"తుర్క్‌మెన్"}\r
@@ -502,7 +502,7 @@ te{
         udm{"ఉడ్ముర్ట్"}\r
         ug{"ఉయ్‌ఘర్"}\r
         uga{"ఉగారిటిక్"}\r
-        uk{"à°\89à°\95à±\8dà°°à±\87నియన్"}\r
+        uk{"à°\89à°\95à±\8dà°°à±\86యినియన్"}\r
         umb{"ఉమ్బుండు"}\r
         und{"తెలియని భాష"}\r
         ur{"ఉర్దూ"}\r
@@ -519,7 +519,7 @@ te{
         war{"వారే"}\r
         was{"వాషో"}\r
         wbp{"వార్లపిరి"}\r
-        wo{"à°µà±\8aలాఫ్"}\r
+        wo{"à°\89à°²à±\82ఫ్"}\r
         wuu{"వు చైనీస్"}\r
         xal{"కల్మిక్"}\r
         xh{"షోసా"}\r
@@ -844,7 +844,7 @@ te{
         REVISED{"సవరించబడిన వర్ణక్రమం"}\r
         WADEGILE{"వేడ్-గైల్స్ రోమనైజేషన్"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.50"}\r
     characterLabelPattern{\r
         all{"{0} — అన్ని"}\r
         category-list{"{0}: {1}"}\r
index d88343aacf5ca15b0409cab81a9d1f389c6043dd..ab51bff50218b260c6487aeab4c8be9c57f71af7 100644 (file)
@@ -183,7 +183,7 @@ tg{
             latn{"Рақамҳои ғарбӣ"}\r
         }\r
     }\r
-    Version{"2.1.38.71"}\r
+    Version{"2.1.44.88"}\r
     codePatterns{\r
         language{"{0}"}\r
         script{"{0}"}\r
index d3957c910650d9d068a296331595a5822631181d..4412cdd342114789c34a684f160ebfacfd962c9b 100644 (file)
@@ -7,7 +7,7 @@ th{
         colAlternate{"ละเว้นการจัดเรียงสัญลักษณ์"}\r
         colBackwards{"การจัดเรียงเสียงหนักเบาในลำดับถอยหลัง"}\r
         colCaseFirst{"การเรียงลำดับตัวพิมพ์ใหญ่/ตัวพิมพ์เล็ก"}\r
-        colCaseLevel{"à¸\81ารà¸\88ัà¸\94à¹\80รียà¸\87à¸\95ามà¸\84วามสำà¸\84ัà¸\8dà¸\82อà¸\87à¸\95ัวà¸\9eิมà¸\9eà¹\8cอัà¸\81ษร"}\r
+        colCaseLevel{"à¸\81ารà¸\88ัà¸\94à¹\80รียà¸\87à¹\81à¸\9aà¸\9aà¸\95รà¸\87à¸\95ามà¸\95ัวà¸\9eิมà¸\9eà¹\8cà¹\83หà¸\8dà¹\88-à¹\80ลà¹\87à¸\81"}\r
         colNormalization{"การจัดเรียงแบบที่เป็นปกติ"}\r
         colNumeric{"การจัดเรียงตัวเลข"}\r
         colStrength{"ความแม่นยำในการจัดเรียง"}\r
@@ -89,7 +89,7 @@ th{
         bkm{"กม"}\r
         bla{"สิกสิกา"}\r
         bm{"บัมบารา"}\r
-        bn{"à¹\80à¸\9aà¸\87à¸\81าลี"}\r
+        bn{"à¸\9aัà¸\87à¸\81ลา"}\r
         bo{"ทิเบต"}\r
         bpy{"พิศนุปริยะ"}\r
         bqi{"บักติยารี"}\r
@@ -104,7 +104,7 @@ th{
         bum{"บูลู"}\r
         byn{"บลิน"}\r
         byv{"เมดุมบา"}\r
-        ca{"à¸\81าà¸\95าลัà¸\87"}\r
+        ca{"à¸\84าà¸\95าลัà¸\99"}\r
         cad{"คัดโด"}\r
         car{"คาริบ"}\r
         cay{"คายูกา"}\r
@@ -122,7 +122,7 @@ th{
         chp{"ชิพิวยัน"}\r
         chr{"เชอโรกี"}\r
         chy{"เชเยนเน"}\r
-        ckb{"à¹\80à¸\84ิรà¹\8cà¸\94à¹\82à¸\8bราà¸\99ี"}\r
+        ckb{"à¹\80à¸\84ิรà¹\8cà¸\94à¸\95อà¸\99à¸\81ลาà¸\87"}\r
         co{"คอร์ซิกา"}\r
         cop{"คอปติก"}\r
         cps{"กาปิซนอน"}\r
@@ -147,7 +147,7 @@ th{
         din{"ดิงกา"}\r
         dje{"ซาร์มา"}\r
         doi{"โฑครี"}\r
-        dsb{"à¸\8bอรà¹\8cà¸\9aสà¹\8cตอนล่าง"}\r
+        dsb{"à¸\8bอรà¹\8cà¹\80à¸\9aียตอนล่าง"}\r
         dtp{"ดูซุนกลาง"}\r
         dua{"ดัวลา"}\r
         dum{"ดัตช์กลาง"}\r
@@ -313,7 +313,7 @@ th{
         krj{"กินารายอา"}\r
         krl{"แกรเลียน"}\r
         kru{"กุรุข"}\r
-        ks{"à¸\81ัศมีร์"}\r
+        ks{"à¹\81à¸\84à¸\8aà¹\80มียร์"}\r
         ksb{"ชัมบาลา"}\r
         ksf{"บาเฟีย"}\r
         ksh{"โคโลญ"}\r
@@ -350,7 +350,7 @@ th{
         lui{"ลุยเซโน"}\r
         lun{"ลันดา"}\r
         luo{"ลัว"}\r
-        lus{"ลูà¹\84à¸\8a"}\r
+        lus{"มิà¹\82à¸\8b"}\r
         luy{"ลูเยีย"}\r
         lv{"ลัตเวีย"}\r
         lzh{"จีนคลาสสิก"}\r
@@ -403,13 +403,13 @@ th{
         naq{"นามา"}\r
         nb{"นอร์เวย์บุคมอล"}\r
         nd{"เอ็นเดเบเลเหนือ"}\r
-        nds{"เยอรมันต่ำ - แซกซอนต่ำ"}\r
+        nds{"เยอรมันต่ำ"}\r
         nds_NL{"แซกซอนใต้"}\r
         ne{"เนปาล"}\r
         new{"เนวาร์"}\r
         ng{"ดองกา"}\r
         nia{"นีอัส"}\r
-        niu{"à¸\99ีอู"}\r
+        niu{"à¸\99ีวà¹\80ว"}\r
         njo{"อ๋าวนากา"}\r
         nl{"ดัตช์"}\r
         nl_BE{"เฟลมิช"}\r
@@ -434,7 +434,7 @@ th{
         oc{"อ็อกซิตัน"}\r
         oj{"โอจิบวา"}\r
         om{"โอโรโม"}\r
-        or{"à¹\82อริยา"}\r
+        or{"à¹\82อà¸\94ิยา"}\r
         os{"ออสเซเตีย"}\r
         osa{"โอซากี"}\r
         ota{"ตุรกีออตโตมัน"}\r
@@ -563,7 +563,7 @@ th{
         tkl{"โตเกเลา"}\r
         tkr{"แซคเซอร์"}\r
         tl{"ตากาล็อก"}\r
-        tlh{"à¸\84ลิà¸\87à¸\81อน"}\r
+        tlh{"à¸\84ลิà¸\87à¸\87อน"}\r
         tli{"ทลิงกิต"}\r
         tly{"ทาลิช"}\r
         tmh{"ทามาเชก"}\r
@@ -632,8 +632,8 @@ th{
         zen{"เซนากา"}\r
         zgh{"ทามาไซต์โมร็อกโกมาตรฐาน"}\r
         zh{"จีน"}\r
-        zh_Hans{"à¸\88ีà¸\99à¸\95ัวยà¹\88อ"}\r
-        zh_Hant{"à¸\88ีà¸\99à¸\95ัวà¹\80à¸\95à¹\87ม"}\r
+        zh_Hans{"à¸\88ีà¸\99à¸\9bระยุà¸\81à¸\95à¹\8c"}\r
+        zh_Hant{"à¸\88ีà¸\99à¸\94ัà¹\89à¸\87à¹\80à¸\94ิม"}\r
         zu{"ซูลู"}\r
         zun{"ซูนิ"}\r
         zxx{"ไม่มีข้อมูลภาษา"}\r
@@ -1055,7 +1055,7 @@ th{
         VALLADER{"วัลลาเดอร์"}\r
         WADEGILE{"การถอดอักษรแบบเวด-ไจลส์"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.89"}\r
     characterLabelPattern{\r
         all{"{0} — ทั้งหมด"}\r
         category-list{"{0}: {1}"}\r
index 25f6c44c2f79d301d97bdbda35677a6906bb1c83..e07291ecf38a17c5f49fc1836f8253ba15a59e1f 100644 (file)
@@ -104,7 +104,7 @@ ti{
         Ethi{"ፊደል"}\r
         Latn{"ላቲን"}\r
     }\r
-    Version{"2.1.38.72"}\r
+    Version{"2.1.44.88"}\r
     codePatterns{\r
         language{"{0}"}\r
         script{"{0}"}\r
diff --git a/source/data/lang/tk.txt b/source/data/lang/tk.txt
new file mode 100644 (file)
index 0000000..2a1ad01
--- /dev/null
@@ -0,0 +1,554 @@
+// © 2016 and later: Unicode, Inc. and others.\r
+// License & terms of use: http://www.unicode.org/copyright.html#License\r
+tk{\r
+    Keys{\r
+        calendar{"Senenama"}\r
+        cf{"Pul birliginiň formaty"}\r
+        collation{"Tertip rejesi"}\r
+        currency{"Pul birligi"}\r
+        hc{"Sagat aýlawy (12–24 sagat)"}\r
+        lb{"Setirden setire geçiş stili"}\r
+        ms{"Ölçeg ulgamy"}\r
+        numbers{"Sanlar"}\r
+    }\r
+    Languages{\r
+        aa{"afar dili"}\r
+        ab{"abhaz dili"}\r
+        ace{"açeh dili"}\r
+        ada{"adangme dili"}\r
+        ady{"adygeý dili"}\r
+        af{"afrikaans dili"}\r
+        agq{"ahem dili"}\r
+        ain{"aýn dili"}\r
+        ak{"akan dili"}\r
+        ale{"aleut dili"}\r
+        alt{"günorta Altaý dili"}\r
+        am{"amhar dili"}\r
+        an{"aragon dili"}\r
+        anp{"angika dili"}\r
+        ar{"arap dili"}\r
+        ar_001{"häzirki zaman standart arap dili"}\r
+        arn{"mapuçe dili"}\r
+        arp{"arapaho dili"}\r
+        as{"assam dili"}\r
+        asa{"asu dili"}\r
+        ast{"asturiý dili"}\r
+        av{"awar dili"}\r
+        awa{"awadhi dili"}\r
+        ay{"aýmara dili"}\r
+        az{"azerbaýjan dili"}\r
+        ba{"başgyrt dili"}\r
+        ban{"baliý dili"}\r
+        bas{"basaa dili"}\r
+        be{"belarus dili"}\r
+        bem{"bemba dili"}\r
+        bez{"bena dili"}\r
+        bg{"bolgar dili"}\r
+        bho{"bhojpuri dili"}\r
+        bi{"bislama dili"}\r
+        bin{"bini dili"}\r
+        bla{"siksika dili"}\r
+        bm{"bamana"}\r
+        bn{"bengal dili"}\r
+        bo{"tibet dili"}\r
+        br{"breton dili"}\r
+        brx{"bodo dili"}\r
+        bs{"boşnak dili"}\r
+        bug{"bugiý dili"}\r
+        byn{"blin dili"}\r
+        ca{"katalan dili"}\r
+        ce{"çeçen dili"}\r
+        ceb{"sebuan dili"}\r
+        cgg{"kiga"}\r
+        ch{"çamorro"}\r
+        chk{"çuuk dili"}\r
+        chm{"mariý dili"}\r
+        cho{"çokto"}\r
+        chr{"çeroki"}\r
+        chy{"şaýenn dili"}\r
+        ckb{"merkezi kürt dili"}\r
+        co{"korsikan dili"}\r
+        crs{"seselwa kreole-fransuz dili"}\r
+        cs{"çeh dili"}\r
+        cu{"buthana slaw dili"}\r
+        cv{"çuwaş dili"}\r
+        cy{"walliý dili"}\r
+        da{"daniýa dili"}\r
+        dak{"dakota dili"}\r
+        dar{"dargi dili"}\r
+        dav{"taita dili"}\r
+        de{"nemes dili"}\r
+        de_CH{"ýokarky nemes dili (Şweýsariýa)"}\r
+        dgr{"dogrib dili"}\r
+        dje{"zarma dili"}\r
+        dsb{"aşaky lužits dili"}\r
+        dua{"duala dili"}\r
+        dv{"diwehi dili"}\r
+        dyo{"ýola-Fonyi dili"}\r
+        dz{"dzong-ke dili"}\r
+        dzg{"daza dili"}\r
+        ebu{"embu dili"}\r
+        ee{"ewe dili"}\r
+        efi{"efik dili"}\r
+        eka{"ekajuk dili"}\r
+        el{"grek dili"}\r
+        en{"iňlis dili"}\r
+        en_GB{"iňlis dili (Beýik Britaniýa)"}\r
+        en_US{"iňlis dili (Amerika)"}\r
+        eo{"esperanto dili"}\r
+        es{"ispan dili"}\r
+        es_ES{"ispan dili (Ýewropa)"}\r
+        et{"eston dili"}\r
+        eu{"bask dili"}\r
+        ewo{"ewondo dili"}\r
+        fa{"pars dili"}\r
+        ff{"fula dili"}\r
+        fi{"fin dili"}\r
+        fil{"filippin dili"}\r
+        fj{"fiji dili"}\r
+        fo{"farer dili"}\r
+        fon{"fon dili"}\r
+        fr{"fransuz dili"}\r
+        fur{"friul dili"}\r
+        fy{"günbatar friz dili"}\r
+        ga{"irland dili"}\r
+        gaa{"ga dili"}\r
+        gd{"şotland kelt dili"}\r
+        gez{"geez dili"}\r
+        gil{"gilbert dili"}\r
+        gl{"galisiý dili"}\r
+        gn{"guarani dili"}\r
+        gor{"gorontalo dili"}\r
+        gsw{"nemes dili (Şweýsariýa)"}\r
+        gu{"gujarati dili"}\r
+        guz{"gusii dili"}\r
+        gv{"men dili"}\r
+        gwi{"gwiçin dili"}\r
+        ha{"hausa dili"}\r
+        haw{"gawaý dili"}\r
+        he{"ýewreý dili"}\r
+        hi{"hindi dili"}\r
+        hil{"hiligaýnon dili"}\r
+        hmn{"hmong dili"}\r
+        hr{"horwat dili"}\r
+        hsb{"ýokarky lužits dili"}\r
+        ht{"gaiti kreol dili"}\r
+        hu{"wenger dili"}\r
+        hup{"hupa"}\r
+        hy{"ermeni dili"}\r
+        hz{"gerero dili"}\r
+        ia{"interlingwa dili"}\r
+        iba{"iban dili"}\r
+        ibb{"ibibio dili"}\r
+        id{"indonez dili"}\r
+        ig{"igbo dili"}\r
+        ii{"syçuan-i dili"}\r
+        ilo{"iloko dili"}\r
+        inh{"inguş dili"}\r
+        io{"ido dili"}\r
+        is{"island dili"}\r
+        it{"italýan dili"}\r
+        iu{"inuktitut dili"}\r
+        ja{"ýapon dili"}\r
+        jbo{"lojban dili"}\r
+        jgo{"ngomba dili"}\r
+        jmc{"maçame dili"}\r
+        jv{"ýawa dili"}\r
+        ka{"gruzin dili"}\r
+        kab{"kabil dili"}\r
+        kac{"kaçin dili"}\r
+        kaj{"ju dili"}\r
+        kam{"kamba dili"}\r
+        kbd{"kabardin dili"}\r
+        kcg{"tiap dili"}\r
+        kde{"makonde dili"}\r
+        kea{"kabuwerdianu dili"}\r
+        kfo{"koro dili"}\r
+        kha{"khasi dili"}\r
+        khq{"koýra-Çini dili"}\r
+        ki{"kikuýu dili"}\r
+        kj{"kwanýama dili"}\r
+        kk{"gazak dili"}\r
+        kkj{"kako dili"}\r
+        kl{"grenland dili"}\r
+        kln{"kalenjin dili"}\r
+        km{"khmer dili"}\r
+        kmb{"kimbundu dili"}\r
+        kn{"kannada dili"}\r
+        ko{"koreý dili"}\r
+        kok{"konkani dili"}\r
+        kpe{"kpelle dili"}\r
+        kr{"kanuri"}\r
+        krc{"karaçaý-balkar dili"}\r
+        krl{"karel dili"}\r
+        kru{"kuruh dili"}\r
+        ks{"kaşmiri dili"}\r
+        ksb{"şambala dili"}\r
+        ksf{"bafia dili"}\r
+        ksh{"keln dili"}\r
+        ku{"kürt dili"}\r
+        kum{"kumyk dili"}\r
+        kv{"komi dili"}\r
+        kw{"korn dili"}\r
+        ky{"gyrgyz dili"}\r
+        la{"latyn dili"}\r
+        lad{"ladino dili"}\r
+        lag{"langi dili"}\r
+        lb{"lýuksemburg dili"}\r
+        lez{"lezgin dili"}\r
+        lg{"ganda dili"}\r
+        li{"limburg dili"}\r
+        lkt{"lakota dili"}\r
+        ln{"lingala dili"}\r
+        lo{"laos dili"}\r
+        loz{"lozi dili"}\r
+        lrc{"demirgazyk luri dili"}\r
+        lt{"litwa dili"}\r
+        lu{"luba-Katanga dili"}\r
+        lua{"luba-Lulua dili"}\r
+        lun{"lunda dili"}\r
+        luo{"luo dili"}\r
+        lus{"mizo dili"}\r
+        luy{"luýýa dili"}\r
+        lv{"latyş dili"}\r
+        mad{"madur dili"}\r
+        mag{"magahi dili"}\r
+        mai{"maýthili dili"}\r
+        mak{"makasar dili"}\r
+        mas{"masai dili"}\r
+        mdf{"mokşa dili"}\r
+        men{"mende dili"}\r
+        mer{"meru dili"}\r
+        mfe{"morisýen dili"}\r
+        mg{"malagasiý dili"}\r
+        mgh{"makua-Mitto dili"}\r
+        mgo{"meta dili"}\r
+        mh{"marşall dili"}\r
+        mi{"maori dili"}\r
+        mic{"mikmak dili"}\r
+        min{"minangkabau dili"}\r
+        mk{"makedon dili"}\r
+        ml{"malaýalam dili"}\r
+        mn{"mongol dili"}\r
+        mni{"manipuri dili"}\r
+        moh{"mogauk dili"}\r
+        mos{"mossi dili"}\r
+        mr{"marathi dili"}\r
+        ms{"malaý dili"}\r
+        mt{"malta dili"}\r
+        mua{"mundang dili"}\r
+        mul{"birnäçe dil"}\r
+        mus{"krik dili"}\r
+        mwl{"mirand dili"}\r
+        my{"birma dili"}\r
+        myv{"erzýan dili"}\r
+        mzn{"mazanderan dili"}\r
+        na{"nauru dili"}\r
+        nap{"neapolitan dili"}\r
+        naq{"nama dili"}\r
+        nb{"norwegiýa bukmol dili"}\r
+        nd{"demirgazyk ndebele dili"}\r
+        ne{"nepal dili"}\r
+        new{"newari dili"}\r
+        ng{"ndonga dili"}\r
+        nia{"nias dili"}\r
+        niu{"niue dili"}\r
+        nl{"niderland dili"}\r
+        nl_BE{"flamand dili"}\r
+        nmg{"kwasio dili"}\r
+        nn{"norwegiýa nýunorsk dili"}\r
+        nnh{"ngembun dili"}\r
+        nog{"nogaý dili"}\r
+        nqo{"nko dili"}\r
+        nr{"günorta ndebele dili"}\r
+        nso{"demirgazyk soto dili"}\r
+        nus{"nuer dili"}\r
+        nv{"nawaho dili"}\r
+        ny{"nýanja dili"}\r
+        nyn{"nýankole dili"}\r
+        oc{"oksitan dili"}\r
+        om{"oromo dili"}\r
+        or{"oriýa dili"}\r
+        os{"osetin dili"}\r
+        pa{"penjab dili"}\r
+        pag{"pangansinan dili"}\r
+        pam{"kapampangan dili"}\r
+        pap{"papýamento dili"}\r
+        pau{"palau dili"}\r
+        pcm{"nigeriý-pijin dili"}\r
+        pl{"polýak dili"}\r
+        prg{"prussiýa dili"}\r
+        ps{"peştun dili"}\r
+        pt{"portugal dili"}\r
+        pt_PT{"portugal dili (Ýewropa)"}\r
+        qu{"keçua dili"}\r
+        quc{"kiçe dili"}\r
+        rap{"rapanuý dili"}\r
+        rar{"kuk dili"}\r
+        rm{"retoroman dili"}\r
+        rn{"rundi dili"}\r
+        ro{"rumyn dili"}\r
+        ro_MD{"moldaw dili"}\r
+        rof{"rombo dili"}\r
+        root{"kök"}\r
+        ru{"rus dili"}\r
+        rup{"arumyn dili"}\r
+        rw{"kinýaruanda dili"}\r
+        rwk{"rwa dili"}\r
+        sa{"sanskrit dili"}\r
+        sad{"sandawe dili"}\r
+        sah{"ýakut dili"}\r
+        saq{"samburu dili"}\r
+        sat{"santali dili"}\r
+        sba{"ngambaý dili"}\r
+        sbp{"sangu dili"}\r
+        sc{"sardin dili"}\r
+        scn{"sisiliýa dili"}\r
+        sco{"şotland dili"}\r
+        sd{"sindhi dili"}\r
+        se{"demirgazyk saam dili"}\r
+        seh{"sena dili"}\r
+        ses{"koýraboro-Senni dili"}\r
+        sg{"sango dili"}\r
+        shi{"tahelhit dili"}\r
+        shn{"şan dili"}\r
+        si{"singal dili"}\r
+        sk{"slowak dili"}\r
+        sl{"slowen dili"}\r
+        sm{"samoa dili"}\r
+        sma{"günorta saam dili"}\r
+        smj{"lule-saam dili"}\r
+        smn{"inari-saam dili"}\r
+        sms{"skolt-saam dili"}\r
+        sn{"şona dili"}\r
+        snk{"soninke dili"}\r
+        so{"somali dili"}\r
+        sq{"alban dili"}\r
+        sr{"serb dili"}\r
+        srn{"sranan-tongo dili"}\r
+        ss{"swati dili"}\r
+        ssy{"saho dili"}\r
+        st{"günorta Soto dili"}\r
+        su{"sundan dili"}\r
+        suk{"sukuma dili"}\r
+        sv{"şwed dili"}\r
+        sw{"suahili dili"}\r
+        sw_CD{"kongo suahili dili"}\r
+        swb{"komor dili"}\r
+        syr{"siriýa dili"}\r
+        ta{"tamil dili"}\r
+        te{"telugu dili"}\r
+        tem{"temne dili"}\r
+        teo{"teso dili"}\r
+        tet{"tetum dili"}\r
+        tg{"täjik dili"}\r
+        th{"taý dili"}\r
+        ti{"tigrinýa dili"}\r
+        tig{"tigre dili"}\r
+        tk{"türkmen dili"}\r
+        tlh{"klingon dili"}\r
+        tn{"tswana dili"}\r
+        to{"tongan dili"}\r
+        tpi{"tok-pisin dili"}\r
+        tr{"türk dili"}\r
+        trv{"taroko dili"}\r
+        ts{"tsonga dili"}\r
+        tt{"tatar dili"}\r
+        tum{"tumbuka dili"}\r
+        tvl{"tuwalu dili"}\r
+        twq{"tasawak dili"}\r
+        ty{"taiti dili"}\r
+        tyv{"tuwa dili"}\r
+        tzm{"orta-Atlas tamazight dili"}\r
+        udm{"udmurt dili"}\r
+        ug{"uýgur dili"}\r
+        uk{"ukrain dili"}\r
+        umb{"umbundu dili"}\r
+        und{"näbelli dil"}\r
+        ur{"urdu"}\r
+        uz{"özbek dili"}\r
+        vai{"wai dili"}\r
+        ve{"wenda dili"}\r
+        vi{"wýetnam dili"}\r
+        vo{"wolapýuk dili"}\r
+        vun{"wunýo dili"}\r
+        wa{"wallon dili"}\r
+        wae{"walzer dili"}\r
+        wal{"wolaýta dili"}\r
+        war{"waraý dili"}\r
+        wo{"wolof dili"}\r
+        xal{"galmyk dili"}\r
+        xh{"kosa dili"}\r
+        xog{"soga dili"}\r
+        yav{"ýangben dili"}\r
+        ybb{"ýemba dili"}\r
+        yi{"idiş dili"}\r
+        yo{"ýoruba dili"}\r
+        yue{"kanton dili"}\r
+        zgh{"standart Marokko tamazight dili"}\r
+        zh{"hytaý dili"}\r
+        zh_Hans{"ýönekeýleşdirilen hytaý dili"}\r
+        zh_Hant{"adaty hytaý dili"}\r
+        zu{"zulu dili"}\r
+        zun{"zuni dili"}\r
+        zxx{"dilçilige degişli mazmun ýok"}\r
+        zza{"zazaki dili"}\r
+    }\r
+    Languages%short{\r
+        az{"azeri dili"}\r
+        en_US{"iňlis dili (ABŞ)"}\r
+    }\r
+    Scripts{\r
+        Arab{"Arap elipbiýi"}\r
+        Armn{"Ermeni elipbiýi"}\r
+        Beng{"Bengal elipbiýi"}\r
+        Bopo{"Bopomofo elipbiýi"}\r
+        Brai{"Braýl elipbiýi"}\r
+        Cyrl{"Kiril elipbiýi"}\r
+        Deva{"Dewanagari elipbiýi"}\r
+        Ethi{"Efiop elipbiýi"}\r
+        Geor{"Gruzin elipbiýi"}\r
+        Grek{"Grek elipbiýi"}\r
+        Gujr{"Gujarati elipbiýi"}\r
+        Guru{"Gurmuhi elipbiýi"}\r
+        Hanb{"Bopomofo han elipbiýi"}\r
+        Hang{"Hangyl elipbiýi"}\r
+        Hani{"Han elipbiýi"}\r
+        Hans{"Ýönekeýleşdirilen"}\r
+        Hant{"Adaty"}\r
+        Hebr{"Ýewreý elipbiýi"}\r
+        Hira{"Hiragana elipbiýi"}\r
+        Hrkt{"Ýapon bogun elipbiýleri"}\r
+        Jamo{"Jamo elipbiýi"}\r
+        Jpan{"Ýapon elipbiýi"}\r
+        Kana{"Katakana elipbiýi"}\r
+        Khmr{"Khmer elipbiýi"}\r
+        Knda{"Kannada elipbiýi"}\r
+        Kore{"Koreý elipbiýi"}\r
+        Laoo{"Laos elipbiýi"}\r
+        Latn{"Latyn elipbiýi"}\r
+        Mlym{"Malaýalam elipbiýi"}\r
+        Mong{"Mongol elipbiýi"}\r
+        Mymr{"Mýanma elipbiýi"}\r
+        Orya{"Oriýa elipbiýi"}\r
+        Sinh{"Singal elipbiýi"}\r
+        Taml{"Tamil elipbiýi"}\r
+        Telu{"Telugu elipbiýi"}\r
+        Thaa{"Taana elipbiýi"}\r
+        Thai{"Taý elipbiýi"}\r
+        Tibt{"Tibet elipbiýi"}\r
+        Zmth{"Matematiki belgiler"}\r
+        Zsye{"Emoji"}\r
+        Zsym{"Nyşanlar"}\r
+        Zxxx{"Ýazuwsyz"}\r
+        Zyyy{"Umumy"}\r
+        Zzzz{"Näbelli elipbiý"}\r
+    }\r
+    Scripts%stand-alone{\r
+        Hans{"Ýönekeýleşdirilen han elipbiýi"}\r
+        Hant{"Adaty han elipbiýi"}\r
+    }\r
+    Types{\r
+        calendar{\r
+            buddhist{"Buddist senenamasy"}\r
+            chinese{"Hytaý senenamasy"}\r
+            dangi{"Dangi senenamasy"}\r
+            ethiopic{"Efiop senenamasy"}\r
+            gregorian{"Grigorian senenamasy"}\r
+            hebrew{"Ýewreý senenamasy"}\r
+            islamic{"Hijri-kamary senenamasy"}\r
+            iso8601{"ISO-8601 senenamasy"}\r
+            japanese{"Ýapon senenamasy"}\r
+            persian{"Pars senenamasy"}\r
+            roc{"Minguo senenamasy"}\r
+        }\r
+        cf{\r
+            account{"Pul birliginiň buhgalterçilik formaty"}\r
+            standard{"Pul birliginiň standart formaty"}\r
+        }\r
+        collation{\r
+            ducet{"Deslapky Ýunikod tertip rejesi"}\r
+            search{"Umumy maksatly gözleg"}\r
+            standard{"Standart tertip rejesi"}\r
+        }\r
+        hc{\r
+            h11{"12 sagat ulgamy (0–11)"}\r
+            h12{"12 sagat ulgamy (1–12)"}\r
+            h23{"24 sagat ulgamy (0–23)"}\r
+            h24{"24 sagat ulgamy (1–24)"}\r
+        }\r
+        lb{\r
+            loose{"Setirden setire geçişiň gowşak stili"}\r
+            normal{"Setirden setire geçişiň adaty stili"}\r
+            strict{"Setirden setire geçişiň berk stili"}\r
+        }\r
+        ms{\r
+            metric{"Metrik ulgam"}\r
+            uksystem{"Imperial ölçeg ulgamy"}\r
+            ussystem{"ABŞ ölçeg ulgamy"}\r
+        }\r
+        numbers{\r
+            arab{"Arap-hindi sanlary"}\r
+            arabext{"Arap-hindi sanlarynyň giňeldilen görnüşi"}\r
+            armn{"Ermeni sanlary"}\r
+            armnlow{"Ermeni setir sanlary"}\r
+            beng{"Bengal sanlary"}\r
+            deva{"Dewanagari sanlary"}\r
+            ethi{"Efiop sanlary"}\r
+            fullwide{"Doly giňlikdäki sanlar"}\r
+            geor{"Gruzin sanlary"}\r
+            grek{"Grek sanlary"}\r
+            greklow{"Grek setir sanlary"}\r
+            gujr{"Gujarati sanlary"}\r
+            guru{"Gurmuhi sanlary"}\r
+            hanidec{"Hytaý onluk sanlary"}\r
+            hans{"Ýönekeýleşdirilen hytaý sanlary"}\r
+            hansfin{"Ýönekeýleşdirilen hytaý maliýe sanlary"}\r
+            hant{"Adaty hytaý sanlary"}\r
+            hantfin{"Adaty hytaý maliýe sanlary"}\r
+            hebr{"Ýewreý sanlary"}\r
+            jpan{"Ýapon sanlary"}\r
+            jpanfin{"Ýapon maliýe sanlary"}\r
+            khmr{"Khmer sanlary"}\r
+            knda{"Kannada sanlary"}\r
+            laoo{"Laos sanlary"}\r
+            latn{"Latyn sanlary"}\r
+            mlym{"Malaýalam sanlary"}\r
+            mymr{"Mýanma sanlary"}\r
+            orya{"Oriýa sanlary"}\r
+            roman{"Rim sanlary"}\r
+            romanlow{"Rim setir sanlary"}\r
+            taml{"Adaty tamil sanlary"}\r
+            tamldec{"Tamil sanlary"}\r
+            telu{"Telugu sanlary"}\r
+            thai{"Taý sanlary"}\r
+            tibt{"Tibet sanlary"}\r
+        }\r
+    }\r
+    Version{"2.1.43.65"}\r
+    characterLabelPattern{\r
+        all{"{0} — ähli"}\r
+        category-list{"{0}: {1}"}\r
+        compatibility{"{0} — ylalaşyjylyk"}\r
+        enclosed{"{0} — daşy ýapyk"}\r
+        extended{"{0} — giňeldilen"}\r
+        historic{"{0} — taryhy"}\r
+        miscellaneous{"{0} — dürli"}\r
+        other{"{0} — başga"}\r
+        scripts{"elipbiýler — {0}"}\r
+        strokes{\r
+            one{"{0} ştrih"}\r
+            other{"{0} ştrih"}\r
+        }\r
+    }\r
+    codePatterns{\r
+        language{"Dil: {0}"}\r
+        script{"Elipbiý: {0}"}\r
+        territory{"Sebit: {0}"}\r
+    }\r
+    localeDisplayPattern{\r
+        keyTypePattern{"{0}: {1}"}\r
+        pattern{"{0} ({1})"}\r
+        separator{"{0}, {1}"}\r
+    }\r
+}\r
index ee7fc5c9b5f3c8100836324a058821be48877b24..3cb3eea6aa801199d21b7601c6316b4569589581 100644 (file)
@@ -887,7 +887,7 @@ to{
             tibt{"fika fakatipeti"}\r
         }\r
     }\r
-    Version{"2.1.38.39"}\r
+    Version{"2.1.44.88"}\r
     codePatterns{\r
         language{"Lea: {0}"}\r
         script{"Tohinima: {0}"}\r
index 8c904864c0c4d0147344c3a215f26750df456ba9..b8b50ac2996870032a218c97a5a6bbbd1a81cde5 100644 (file)
@@ -58,7 +58,7 @@ tr{
         as{"Assamca"}\r
         asa{"Asu"}\r
         ase{"Amerikan İşaret Dili"}\r
-        ast{"Asturyasca"}\r
+        ast{"Asturyasça"}\r
         av{"Avar Dili"}\r
         avk{"Kotava"}\r
         awa{"Awadhi"}\r
@@ -188,8 +188,8 @@ tr{
         fi{"Fince"}\r
         fil{"Filipince"}\r
         fit{"Tornedalin Fincesi"}\r
-        fj{"Fiji Dili"}\r
-        fo{"Faroe Dili"}\r
+        fj{"Fiji dili"}\r
+        fo{"Faroe dili"}\r
         fon{"Fon"}\r
         fr{"Fransızca"}\r
         fr_CA{"Kanada Fransızcası"}\r
@@ -1038,7 +1038,7 @@ tr{
         VALENCIA{"Valensiyaca"}\r
         WADEGILE{"Wade-Giles (Latin Alfabesinde Yazımı)"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.91"}\r
     characterLabelPattern{\r
         all{"{0} — tümü"}\r
         category-list{"{0}: {1}"}\r
index d0b6dfe4fb5b22e50edc2e6cc06220311ee93e5d..9108f7c4a52927b1d2fa40b3e9f2dfe178c33895 100644 (file)
@@ -27,6 +27,7 @@ tt{
         cy{"уэльс"}\r
         da{"дания"}\r
         de{"алман"}\r
+        de_CH{"югары алман (Швейцария)"}\r
         dsb{"түбән сорб"}\r
         dv{"мальдив"}\r
         dz{"дзонг-кха"}\r
@@ -35,6 +36,7 @@ tt{
         eo{"эсперанто"}\r
         es{"испан"}\r
         es_419{"испан (Латин Америкасы)"}\r
+        es_ES{"испан (Европа)"}\r
         et{"эстон"}\r
         eu{"баск"}\r
         fa{"фарсы"}\r
@@ -106,6 +108,7 @@ tt{
         pl{"поляк"}\r
         ps{"пушту"}\r
         pt{"португал"}\r
+        pt_PT{"португал (Европа)"}\r
         qu{"кечуа"}\r
         quc{"киче"}\r
         rm{"ретороман"}\r
@@ -149,7 +152,7 @@ tt{
         wo{"волоф"}\r
         yi{"идиш"}\r
         yo{"йоруба"}\r
-        zh{"кытай (тәрҗемә киңәше: аерым алганда, мандарин кытайчасы)"}\r
+        zh{"кытай"}\r
         zh_Hans{"гадиләштерелгән кытай"}\r
         zh_Hant{"традицион кытай"}\r
     }\r
@@ -177,7 +180,7 @@ tt{
             latn{"көнбатыш цифрлары"}\r
         }\r
     }\r
-    Version{"2.1.38.72"}\r
+    Version{"2.1.44.88"}\r
     codePatterns{\r
         language{"Тел: {0}"}\r
         script{"Язу: {0}"}\r
index 86c23c61b494cf25f613e5ca615acdd8a2d4c60a..d49fc54880002784b96208fb6da90d178ef68d93 100644 (file)
@@ -830,7 +830,7 @@ ug{
         VALENCIA{"ۋالېنسىيە"}\r
         WADEGILE{"ۋېي ئائىلىسى پىنيىن لاتىنلاشتۇرۇش"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.88"}\r
     codePatterns{\r
         language{"تىل: {0}"}\r
         script{"يېزىق: {0}"}\r
index 88b0919509a51abe036544213e09b915a7854744..430af21febde7185e7d37fcb88f114e2034b0a0a 100644 (file)
@@ -51,7 +51,7 @@ uk{
         arq{"алжирська арабська"}\r
         ars{"надждійська арабська"}\r
         arw{"аравакська"}\r
-        as{"ассамська"}\r
+        as{"асамська"}\r
         asa{"асу"}\r
         ase{"американська мова рухів"}\r
         ast{"астурська"}\r
@@ -184,6 +184,7 @@ uk{
         ga{"ірландська"}\r
         gaa{"га"}\r
         gag{"гагаузька"}\r
+        gan{"ґань"}\r
         gay{"гайо"}\r
         gba{"гбайя"}\r
         gd{"гаельська"}\r
@@ -205,6 +206,7 @@ uk{
         gwi{"кучін"}\r
         ha{"хауса"}\r
         hai{"хайда"}\r
+        hak{"хаккаська"}\r
         haw{"гавайська"}\r
         he{"іврит"}\r
         hi{"гінді"}\r
@@ -407,6 +409,7 @@ uk{
         pro{"давньопровансальська"}\r
         ps{"пушту"}\r
         pt{"портуґальська"}\r
+        pt_BR{"португальська (Бразилія)"}\r
         pt_PT{"європейська портуґальська"}\r
         qu{"кечуа"}\r
         quc{"кіче"}\r
@@ -511,7 +514,7 @@ uk{
         twq{"тасавак"}\r
         ty{"таїтянська"}\r
         tyv{"тувинська"}\r
-        tzm{"Ñ\86енÑ\82Ñ\80алÑ\8cномаÑ\80оканÑ\81Ñ\8cка Ñ\82амазÑ\96т"}\r
+        tzm{"Ñ\86енÑ\82Ñ\80алÑ\8cноаÑ\82лаÑ\81Ñ\8cка Ñ\82амазÑ\96гт"}\r
         udm{"удмуртська"}\r
         ug{"уйгурська"}\r
         uga{"угаритська"}\r
@@ -720,7 +723,7 @@ uk{
             buddhist{"буддійський календар"}\r
             chinese{"китайський календар"}\r
             coptic{"коптський календар"}\r
-            dangi{"календаÑ\80 Ð´Ð°Ð½Ð³Ñ\96"}\r
+            dangi{"коÑ\80ейÑ\81Ñ\8cкий ÐºÐ°Ð»ÐµÐ½Ð´Ð°Ñ\80"}\r
             ethiopic{"ефіопський календар"}\r
             ethiopic-amete-alem{"ефіопський амете алем календар"}\r
             gregorian{"григоріанський календар"}\r
@@ -776,7 +779,7 @@ uk{
             big5han{"китайський традиційний порядок сортування Big5"}\r
             compat{"попередній порядок сортування, для сумісності"}\r
             dictionary{"порядок сортування за словником"}\r
-            ducet{"типовий порядок сортування Unicode"}\r
+            ducet{"типовий порядок сортування Юнікод"}\r
             emoji{"порядок сортування за емодзі"}\r
             eor{"європейські правила упорядкування"}\r
             gb2312han{"китайський спрощений"}\r
@@ -809,8 +812,8 @@ uk{
             strict{"точний стиль розриву рядка"}\r
         }\r
         m0{\r
-            bgn{"BGN"}\r
-            ungegn{"UNGEGN"}\r
+            bgn{"транслітерація BGN США"}\r
+            ungegn{"транслітерація ГЕГН ООН"}\r
         }\r
         ms{\r
             metric{"мертична система"}\r
@@ -822,7 +825,7 @@ uk{
             arabext{"арабсько-індійські розширені цифри"}\r
             armn{"вірменські цифри"}\r
             armnlow{"вірменські малі цифри"}\r
-            beng{"бенґальські"}\r
+            beng{"бенґальські цифри"}\r
             deva{"цифри деванагарі"}\r
             ethi{"ефіопські цифри"}\r
             finance{"фінансові символи чисел"}\r
@@ -890,7 +893,7 @@ uk{
         VALENCIA{"Валенсійська"}\r
         WADEGILE{"Романізація Вейда-Джайлза"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.65"}\r
     characterLabelPattern{\r
         all{"{0} — усі"}\r
         category-list{"{0}: {1}"}\r
@@ -900,7 +903,7 @@ uk{
         historic{"{0} — історичні"}\r
         miscellaneous{"{0} — мішані"}\r
         other{"{0} — інші"}\r
-        scripts{"писемність — {0}"}\r
+        scripts{"письмо — {0}"}\r
         strokes{\r
             few{"{0} риски"}\r
             many{"{0} рисок"}\r
index e5f80c6b0fd7aa0ee3f226751b1d9553cf887bc7..658b952a7269cb73d272fa575c2b1fa5efc3ebc2 100644 (file)
@@ -66,7 +66,7 @@ ur{
         bo{"تبتی"}\r
         br{"بریٹن"}\r
         brx{"بوڈو"}\r
-        bs{"بوسنی"}\r
+        bs{"بوسنیائی"}\r
         bug{"بگینیز"}\r
         byn{"بلین"}\r
         ca{"کیٹالان"}\r
@@ -186,18 +186,18 @@ ur{
         kam{"کامبا"}\r
         kbd{"کبارڈین"}\r
         kcg{"تیاپ"}\r
-        kde{"ماكونده"}\r
-        kea{"كابويرديانو"}\r
+        kde{"ماکونده"}\r
+        kea{"کابويرديانو"}\r
         kfo{"کورو"}\r
         kg{"کانگو"}\r
         kha{"کھاسی"}\r
-        khq{"كويرا شيني"}\r
+        khq{"کويرا شيني"}\r
         ki{"کیکویو"}\r
         kj{"کونیاما"}\r
         kk{"قزاخ"}\r
         kkj{"کاکو"}\r
-        kl{"كالاليست"}\r
-        kln{"كالينجين"}\r
+        kl{"کالاليست"}\r
+        kln{"کالينجين"}\r
         km{"خمیر"}\r
         kmb{"کیمبونڈو"}\r
         kn{"کنّاڈا"}\r
@@ -232,7 +232,7 @@ ur{
         loz{"لوزی"}\r
         lrc{"شمالی لری"}\r
         lt{"لیتھوینین"}\r
-        lu{"لبا-كاتانجا"}\r
+        lu{"لبا-کاتانجا"}\r
         lua{"لیوبا لولوآ"}\r
         lun{"لونڈا"}\r
         luo{"لو"}\r
@@ -286,7 +286,7 @@ ur{
         niu{"نیویائی"}\r
         nl{"ڈچ"}\r
         nl_BE{"فلیمِش"}\r
-        nmg{"كوايسو"}\r
+        nmg{"کوايسو"}\r
         nn{"نارویجین نینورسک"}\r
         nnh{"نگیمبون"}\r
         no{"نارویجین"}\r
@@ -298,7 +298,7 @@ ur{
         nv{"نواجو"}\r
         ny{"نیانجا"}\r
         nyn{"نینکول"}\r
-        oc{"آكسیٹان"}\r
+        oc{"آکسیٹان"}\r
         om{"اورومو"}\r
         or{"اڑیہ"}\r
         os{"اوسیٹک"}\r
@@ -315,7 +315,7 @@ ur{
         pt_BR{"برازیلی پرتگالی"}\r
         pt_PT{"یورپی پرتگالی"}\r
         qu{"کویچوآ"}\r
-        quc{"كيشی"}\r
+        quc{"کيشی"}\r
         rap{"رپانوی"}\r
         rar{"راروتونگان"}\r
         rm{"رومانش"}\r
@@ -342,7 +342,7 @@ ur{
         sdh{"جنوبی کرد"}\r
         se{"شمالی سامی"}\r
         seh{"سینا"}\r
-        ses{"كويرابورو سينی"}\r
+        ses{"کويرابورو سينی"}\r
         sg{"ساںغو"}\r
         sh{"سربو-کروئیشین"}\r
         shi{"تشلحيت"}\r
@@ -632,7 +632,7 @@ ur{
             vaii{"وائی ہندسے"}\r
         }\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.3"}\r
     characterLabelPattern{\r
         all{"{0} — تمام"}\r
         category-list{"{0}: {1}"}\r
index 3803f2cfa64d8527f81ce6cfa174b2c76ac88e5b..0fea5bbbf3288ade2b0a73cebdf165dbf7e6d882 100644 (file)
@@ -23,5 +23,5 @@ ur_IN{
             tibt{"تبتی ہندسے"}\r
         }\r
     }\r
-    Version{"2.1.38.39"}\r
+    Version{"2.1.43.65"}\r
 }\r
index 03565bdecda38d1f8284a4f1a4e59c6666c56bf5..009d1c5bb2b7e2a556a1c9d13fc12071504ba2fc 100644 (file)
@@ -83,7 +83,7 @@ uz{
         de_CH{"yuqori nemis (Shveytsariya)"}\r
         dgr{"dogrib"}\r
         dje{"zarma"}\r
-        dsb{"quyi sorbcha"}\r
+        dsb{"quyi sorb"}\r
         dua{"duala"}\r
         dv{"divexi"}\r
         dyo{"diola-fogni"}\r
@@ -316,13 +316,13 @@ uz{
         sad{"sandave"}\r
         sah{"saxa"}\r
         saq{"samburu"}\r
-        sat{"santal"}\r
+        sat{"santali"}\r
         sba{"ngambay"}\r
         sbp{"sangu"}\r
         sc{"sardin"}\r
         scn{"sitsiliya"}\r
         sco{"shotland"}\r
-        sd{"sindxi"}\r
+        sd{"sindhi"}\r
         sdh{"janubiy kurd"}\r
         se{"shimoliy saam"}\r
         seh{"sena"}\r
@@ -546,7 +546,7 @@ uz{
             tibt{"tibet raqamlari"}\r
         }\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.88"}\r
     characterLabelPattern{\r
         all{"{0} — hammasi"}\r
         category-list{"{0}: {1}"}\r
index 2467591c507fa136fda81cad6ed7cf8d02910b38..c031a23b59d819a08721362ececac9cd312cc479 100644 (file)
@@ -407,7 +407,7 @@ uz_Cyrl{
             tibt{"Тибет рақамлари"}\r
         }\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.2"}\r
     codePatterns{\r
         language{"Тил: {0}"}\r
         script{"{0}"}\r
index 187e3fbd342127590d6db16313add760ec046214..0c362247c729b78f1f66b7cc980c9f07ac810c3e 100644 (file)
@@ -846,8 +846,8 @@ vi{
             strict{"Kiểu xuống dòng hẹp"}\r
         }\r
         m0{\r
-            bgn{"BGN"}\r
-            ungegn{"UNGEGN"}\r
+            bgn{"Chuyển tự US BGN"}\r
+            ungegn{"Chuyển tự UN GEGN"}\r
         }\r
         ms{\r
             metric{"Hệ mét"}\r
@@ -983,7 +983,7 @@ vi{
         VALLADER{"VALLADER"}\r
         WADEGILE{"La Mã hóa Wade-Giles"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.65"}\r
     characterLabelPattern{\r
         all{"{0} — tất cả"}\r
         category-list{"{0}: {1}"}\r
index ae39e4cc13806d1abeed8f5e7c6094889fbbd725..1deaeb5f0ff6c54dd005c5bd8eede40f5b8aacc2 100644 (file)
@@ -181,7 +181,7 @@ wo{
             latn{"Siifari Tugal"}\r
         }\r
     }\r
-    Version{"2.1.38.71"}\r
+    Version{"2.1.43.94"}\r
     codePatterns{\r
         language{"{0}"}\r
         script{"{0}"}\r
diff --git a/source/data/lang/xh.txt b/source/data/lang/xh.txt
new file mode 100644 (file)
index 0000000..f8658e6
--- /dev/null
@@ -0,0 +1,11 @@
+// © 2016 and later: Unicode, Inc. and others.\r
+// License & terms of use: http://www.unicode.org/copyright.html#License\r
+xh{\r
+    Languages{\r
+        af{"isiBhulu"}\r
+        en{"isiNgesi"}\r
+        xh{"isiXhosa"}\r
+        zu{"isiZulu"}\r
+    }\r
+    Version{"2.1.44.88"}\r
+}\r
index 83e07462871e8574cfd193404bdc63c14eb70389..96a9cbc7a25d897318dd16ebc017429c3b91513c 100644 (file)
@@ -101,5 +101,5 @@ yo{
         zh{"Èdè Mandari"}\r
         zu{"Èdè Ṣulu"}\r
     }\r
-    Version{"2.1.39.11"}\r
+    Version{"2.1.44.88"}\r
 }\r
index c1aef54ead2c016d27dab1a557962ac6d5195370..5feeaf6bf153e3cb6a6aa94446af53c82fd4a538 100644 (file)
@@ -11,5 +11,5 @@ yo_BJ{
         tr{"Èdè Tɔɔkisi"}\r
         zu{"Èdè Shulu"}\r
     }\r
-    Version{"2.1.39.11"}\r
+    Version{"2.1.44.53"}\r
 }\r
index 2c4f4de0309539ca296e5d38ab896347491d6cac..ee943a80c3283e57dd749e9d638a13e144aa5370 100644 (file)
@@ -1024,7 +1024,7 @@ yue{
         VALLADER{"瑞士瓦勒德方言"}\r
         WADEGILE{"威妥瑪式拼音"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.91"}\r
     characterLabelPattern{\r
         all{"{0} — 全部"}\r
         category-list{"{0}: {1}"}\r
index 9af307546f29ec7a76040543393bceec757b6921..ad905e9da08ac14acc4b341533a8a1d3bd5a72ba 100644 (file)
@@ -1025,7 +1025,7 @@ yue_Hans{
         VALLADER{"瑞士瓦勒德方言"}\r
         WADEGILE{"威妥玛式拼音"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.91"}\r
     characterLabelPattern{\r
         all{"{0} — 全部"}\r
         category-list{"{0}: {1}"}\r
index 02ebb8b6acdc69b17ef9e07bbe4df592d081e9ee..3d3e3842b32470b8abd90b9b181a053ba26937d5 100644 (file)
@@ -61,5 +61,5 @@ zgh{
             islamic{"ⴰⵙⵎⵍⵓⵙⵙⴰⵏ ⵏ ⵍⵉⵙⵍⴰⵎ"}\r
         }\r
     }\r
-    Version{"2.1.39.11"}\r
+    Version{"2.1.43.94"}\r
 }\r
index 5c14adf889ea4cd8ce6f4ae1d785b2939de7c414..788c3393534a92731a986478108f51ebf119d1e0 100644 (file)
@@ -46,7 +46,7 @@ zh{
         arc{"阿拉米语"}\r
         arn{"马普切语"}\r
         arp{"阿拉帕霍语"}\r
-        ars{"纳吉迪阿拉伯"}\r
+        ars{"纳吉迪阿拉伯"}\r
         arw{"阿拉瓦克语"}\r
         as{"阿萨姆语"}\r
         asa{"帕雷语"}\r
@@ -979,7 +979,7 @@ zh{
         VALLADER{"瑞士瓦勒德方言"}\r
         WADEGILE{"WG 威氏拼音法"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.76"}\r
     characterLabelPattern{\r
         all{"{0} — 全部"}\r
         category-list{"{0}: {1}"}\r
index a578ba97720f727ef5bd6ebfd9a7bfacd1691974..8fa931cd97507f672d37ada04a63a25b78ee4486 100644 (file)
@@ -1058,7 +1058,7 @@ zh_Hant{
         ROZAJ{"雷西亞方言"}\r
         RUMGR{"羅曼什文"}\r
         SAAHO{"薩霍文"}\r
-        SCOTLAND{"è\8b±æ\96\87ï¼\88è\98\87æ ¼è\98­ï¼\89"}\r
+        SCOTLAND{"è\98\87æ ¼è\98­æ¨\99æº\96è\8b±æ\96\87"}\r
         SCOUSE{"利物浦方言"}\r
         SOLBA{"雷西亞史托維薩方言"}\r
         SOTAV{"卡布佛得鲁背風群島方言"}\r
@@ -1074,7 +1074,7 @@ zh_Hant{
         VALLADER{"瑞士瓦勒德方言"}\r
         WADEGILE{"威妥瑪式拼音"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.91"}\r
     characterLabelPattern{\r
         all{"{0} — 全部"}\r
         category-list{"{0}: {1}"}\r
index f3a8b07c860316438d5bb4cbe5a851bb6d7b2bd2..2afeb5fe3e1bd5deb56cc254911ec0f535edaca2 100644 (file)
@@ -2,8 +2,8 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 zh_Hant_HK{\r
     Keys{\r
-        hc{"時間週期(12 與 24 小時制"}\r
         ms{"度量衡系統"}\r
+        x{"專用區"}\r
     }\r
     Languages{\r
         aa{"阿法爾文"}\r
@@ -55,7 +55,6 @@ zh_Hant_HK{
         ro_MD{"摩爾多瓦羅馬尼亞文"}\r
         rup{"阿羅馬尼亞語"}\r
         rw{"盧旺達文"}\r
-        sd{"信德語"}\r
         sl{"斯洛文尼亞文"}\r
         sn{"修納文"}\r
         so{"索馬里文"}\r
@@ -130,7 +129,7 @@ zh_Hant_HK{
         SCOTLAND{"蘇格蘭標準英語"}\r
         SOTAV{"SOTAV"}\r
     }\r
-    Version{"2.1.39.11"}\r
+    Version{"2.1.43.65"}\r
     characterLabelPattern{\r
         enclosed{"{0} — 包含"}\r
         historic{"{0} — 舊式"}\r
index 43c2f1f45a41dee0d6669abce396f5ec420b8f05..953afbf50b5cfd694381003a87b807ac6e7bab64 100644 (file)
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 zh_Hant_MO{\r
     %%Parent{"zh_Hant_HK"}\r
-    Version{"2.1.38.39"}\r
+    Version{"2.1.43.65"}\r
 }\r
index 60cee63f13bd34f6d84e614ee71adba00e24e190..c5738b2b58937ece8642f34cab99a2802946ad29 100644 (file)
@@ -33,7 +33,7 @@ zu{
         ain{"isi-Ainu"}\r
         ak{"isi-Akan"}\r
         ale{"isi-Aleut"}\r
-        alt{"i-Southern Altai"}\r
+        alt{"isi-Southern Altai"}\r
         am{"isi-Amharic"}\r
         an{"isi-Aragonese"}\r
         anp{"isi-Angika"}\r
@@ -57,9 +57,9 @@ zu{
         bg{"isi-Bulgari"}\r
         bgn{"isi-Western Balochi"}\r
         bho{"isi-Bhojpuri"}\r
-        bi{"i-Bislama"}\r
-        bin{"i-Bini"}\r
-        bla{"i-Siksika"}\r
+        bi{"isi-Bislama"}\r
+        bin{"isi-Bini"}\r
+        bla{"isi-Siksika"}\r
         bm{"isi-Bambara"}\r
         bn{"isi-Bengali"}\r
         bo{"isi-Tibetan"}\r
@@ -67,7 +67,7 @@ zu{
         brx{"isi-Bodo"}\r
         bs{"isi-Bosnian"}\r
         bug{"isi-Buginese"}\r
-        byn{"i-Blin"}\r
+        byn{"isi-Blin"}\r
         ca{"isi-Catalan"}\r
         ce{"isi-Chechen"}\r
         ceb{"isi-Cebuano"}\r
@@ -91,7 +91,7 @@ zu{
         dav{"isi-Taita"}\r
         de{"isi-German"}\r
         de_AT{"isi-Austrian German"}\r
-        de_CH{"i-Swiss High German"}\r
+        de_CH{"Isi-Swiss High German"}\r
         dgr{"isi-Dogrib"}\r
         dje{"isi-Zarma"}\r
         dsb{"isi-Lower Sorbian"}\r
@@ -106,15 +106,15 @@ zu{
         eka{"isi-Ekajuk"}\r
         el{"isi-Greek"}\r
         en{"i-English"}\r
-        en_AU{"isi-Austrillian English"}\r
+        en_AU{"i-Australian English"}\r
         en_CA{"i-Canadian English"}\r
         en_GB{"i-British English"}\r
         en_US{"i-American English"}\r
         eo{"isi-Esperanto"}\r
         es{"isi-Spanish"}\r
         es_419{"isi-Latin American Spanish"}\r
-        es_ES{"i-European Spanish"}\r
-        es_MX{"i-Mexican Spanish"}\r
+        es_ES{"isi-European Spanish"}\r
+        es_MX{"Isi-Mexican Spanish"}\r
         et{"isi-Estonia"}\r
         eu{"isi-Basque"}\r
         ewo{"isi-Ewondo"}\r
@@ -126,15 +126,15 @@ zu{
         fo{"isi-Faroese"}\r
         fon{"isi-Fon"}\r
         fr{"isi-French"}\r
-        fr_CA{"i-Canadian French"}\r
-        fr_CH{"i-Swiss French"}\r
+        fr_CA{"isi-Canadian French"}\r
+        fr_CH{"isi-Swiss French"}\r
         fur{"isi-Friulian"}\r
         fy{"isi-Western Frisian"}\r
         ga{"isi-Irish"}\r
         gaa{"isi-Ga"}\r
         gag{"isi-Gagauz"}\r
         gan{"isi-Gan Chinese"}\r
-        gd{"i-Scottish Gaelic"}\r
+        gd{"isi-Scottish Gaelic"}\r
         gez{"isi-Geez"}\r
         gil{"isi-Gilbertese"}\r
         gl{"isi-Galicia"}\r
@@ -226,7 +226,7 @@ zu{
         li{"isi-Limburgish"}\r
         lkt{"isi-Lakota"}\r
         ln{"isi-Lingala"}\r
-        lo{"i-Lao"}\r
+        lo{"isi-Lao"}\r
         loz{"isi-Lozi"}\r
         lrc{"isi-Northern Luri"}\r
         lt{"isi-Lithuanian"}\r
@@ -285,19 +285,19 @@ zu{
         nl{"isi-Dutch"}\r
         nl_BE{"isi-Flemish"}\r
         nmg{"isi-Kwasio"}\r
-        nn{"i-Norwegian Nynorsk"}\r
+        nn{"isi-Norwegian Nynorsk"}\r
         nnh{"isi-Ngiemboon"}\r
         no{"isi-Norwegian"}\r
         nog{"isi-Nogai"}\r
         nqo{"isi-N’Ko"}\r
-        nr{"i-South Ndebele"}\r
+        nr{"isi-South Ndebele"}\r
         nso{"isi-Northern Sotho"}\r
         nus{"isi-Nuer"}\r
         nv{"isi-Navajo"}\r
         ny{"isi-Nyanja"}\r
         nyn{"isi-Nyankole"}\r
         oc{"isi-Occitan"}\r
-        om{"i-Oromo"}\r
+        om{"isi-Oromo"}\r
         or{"isi-Odia"}\r
         os{"isi-Ossetic"}\r
         pa{"isi-Punjabi"}\r
@@ -314,28 +314,28 @@ zu{
         pt_PT{"isi-European Portuguese"}\r
         qu{"isi-Quechua"}\r
         quc{"isi-Kʼicheʼ"}\r
-        rap{"i-Rapanui"}\r
-        rar{"i-Rarotongan"}\r
+        rap{"isi-Rapanui"}\r
+        rar{"isi-Rarotongan"}\r
         rm{"isi-Romansh"}\r
         rn{"isi-Rundi"}\r
         ro{"isi-Romanian"}\r
         ro_MD{"isi-Moldavian"}\r
         rof{"isi-Rombo"}\r
-        root{"i-Root"}\r
+        root{"isi-Root"}\r
         ru{"isi-Russian"}\r
         rup{"isi-Aromanian"}\r
         rw{"isi-Kinyarwanda"}\r
         rwk{"isi-Rwa"}\r
         sa{"isi-Sanskrit"}\r
-        sad{"i-Sandawe"}\r
+        sad{"isi-Sandawe"}\r
         sah{"i-Sakha"}\r
         saq{"isi-Samburu"}\r
-        sat{"i-Santali"}\r
+        sat{"isi-Santali"}\r
         sba{"isi-Ngambay"}\r
         sbp{"isi-Sangu"}\r
-        sc{"i-Sardinian"}\r
-        scn{"i-Sicilian"}\r
-        sco{"i-Scots"}\r
+        sc{"isi-Sardinian"}\r
+        scn{"isi-Sicilian"}\r
+        sco{"isi-Scots"}\r
         sd{"isi-Sindhi"}\r
         sdh{"i-Southern Kurdish"}\r
         se{"isi-Northern Sami"}\r
@@ -344,31 +344,31 @@ zu{
         sg{"isi-Sango"}\r
         sh{"isi-Serbo-Croatian"}\r
         shi{"isi-Tachelhit"}\r
-        shn{"i-Shan"}\r
-        si{"i-Sinhala"}\r
+        shn{"isi-Shan"}\r
+        si{"isi-Sinhala"}\r
         sk{"isi-Slovak"}\r
         sl{"isi-Slovenian"}\r
         sm{"isi-Samoan"}\r
-        sma{"i-Southern Sami"}\r
+        sma{"isi-Southern Sami"}\r
         smj{"isi-Lule Sami"}\r
         smn{"isi-Inari Sami"}\r
         sms{"isi-Skolt Sami"}\r
         sn{"isiShona"}\r
-        snk{"i-Soninke"}\r
+        snk{"isi-Soninke"}\r
         so{"isi-Somali"}\r
         sq{"isi-Albania"}\r
         sr{"isi-Serbian"}\r
-        srn{"i-Sranan Tongo"}\r
+        srn{"isi-Sranan Tongo"}\r
         ss{"isiSwati"}\r
-        ssy{"i-Saho"}\r
-        st{"isiSuthu"}\r
+        ssy{"isi-Saho"}\r
+        st{"isi-Southern Sotho"}\r
         su{"isi-Sundanese"}\r
-        suk{"i-Sukuma"}\r
+        suk{"isi-Sukuma"}\r
         sv{"isi-Swedish"}\r
         sw{"isiSwahili"}\r
         sw_CD{"isi-Congo Swahili"}\r
         swb{"isi-Comorian"}\r
-        syr{"i-Syriac"}\r
+        syr{"isi-Syriac"}\r
         ta{"isi-Tamil"}\r
         te{"isi-Telugu"}\r
         tem{"isi-Timne"}\r
@@ -629,7 +629,7 @@ zu{
             vaii{"Izinhlazu Zezinombolo ze-Vai"}\r
         }\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.65"}\r
     characterLabelPattern{\r
         all{"{0} — All"}\r
         category-list{"{0}: {1}"}\r
index 558584b276f6078f5dffde16c7a8b961a62fcfe5..871cb971417c3543707f990d5f7330c7f3b90b7e 100644 (file)
@@ -22,7 +22,9 @@ af{
         default{"latn"}\r
         latn{\r
             miscPatterns{\r
+                approximately{"~{0}"}\r
                 atLeast{"{0}+"}\r
+                atMost{"≤{0}"}\r
                 range{"{0}–{1}"}\r
             }\r
             patterns{\r
@@ -213,7 +215,7 @@ af{
         minimumGroupingDigits{"1"}\r
         native{"latn"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.65"}\r
     calendar{\r
         generic{\r
             DateTimePatterns{\r
@@ -251,10 +253,10 @@ af{
                 Hm{"HH:mm"}\r
                 Hms{"HH:mm:ss"}\r
                 M{"L"}\r
-                MEd{"E, d/M"}\r
+                MEd{"E M/d"}\r
                 MMM{"LLL"}\r
-                MMMEd{"E, d MMM"}\r
-                MMMMEd{"E, d MMMM"}\r
+                MMMEd{"E d MMM"}\r
+                MMMMEd{"E d MMMM"}\r
                 MMMMd{"d MMMM"}\r
                 MMMd{"d MMM"}\r
                 Md{"d/M"}\r
@@ -266,9 +268,9 @@ af{
                 y{"y G"}\r
                 yyyy{"y G"}\r
                 yyyyM{"M/y GGGGG"}\r
-                yyyyMEd{"E, d/M/y G"}\r
+                yyyyMEd{"E d/M/y G"}\r
                 yyyyMMM{"MMM y G"}\r
-                yyyyMMMEd{"E, d MMM y G"}\r
+                yyyyMMMEd{"E d MMM y G"}\r
                 yyyyMMMM{"MMMM y G"}\r
                 yyyyMMMd{"d MMM y G"}\r
                 yyyyMd{"d/M/y GGGGG"}\r
@@ -389,7 +391,7 @@ af{
                 "HH:mm:ss z",\r
                 "HH:mm:ss",\r
                 "HH:mm",\r
-                "EEEE, dd MMMM y",\r
+                "EEEE dd MMMM y",\r
                 "dd MMMM y",\r
                 "dd MMM y",\r
                 "y-MM-dd",\r
@@ -404,7 +406,11 @@ af{
             }\r
             availableFormats{\r
                 Bh{"h B"}\r
+                Bhm{"h:mm B"}\r
+                Bhms{"h:mm:ss B"}\r
                 E{"ccc"}\r
+                EBhm{"E h:mm B"}\r
+                EBhms{"E h:mm:ss B"}\r
                 EHm{"E HH:mm"}\r
                 EHms{"E HH:mm:ss"}\r
                 Ed{"E d"}\r
@@ -412,7 +418,7 @@ af{
                 Ehms{"E hh:mm:ss a"}\r
                 Gy{"y G"}\r
                 GyMMM{"MMM y G"}\r
-                GyMMMEd{"E, dd MMM y G"}\r
+                GyMMMEd{"E dd MMM y G"}\r
                 GyMMMd{"dd MMM y G"}\r
                 H{"HH"}\r
                 Hm{"HH:mm"}\r
@@ -420,7 +426,7 @@ af{
                 Hmsv{"HH:mm:ss v"}\r
                 Hmv{"HH:mm v"}\r
                 M{"L"}\r
-                MEd{"E, d/M"}\r
+                MEd{"E d/M"}\r
                 MMM{"LLL"}\r
                 MMMEd{"E d MMM"}\r
                 MMMMEd{"E d MMMM"}\r
@@ -442,7 +448,7 @@ af{
                 yM{"MM-y"}\r
                 yMEd{"E y-MM-dd"}\r
                 yMMM{"MMM y"}\r
-                yMMMEd{"E, d MMM y"}\r
+                yMMMEd{"E d MMM y"}\r
                 yMMMM{"MMMM y"}\r
                 yMMMd{"d MMM y"}\r
                 yMd{"y-MM-dd"}\r
@@ -626,15 +632,15 @@ af{
                     M{"M–M"}\r
                 }\r
                 MEd{\r
-                    M{"E, d/M – E, d/M"}\r
-                    d{"E, d/M – E, d/M"}\r
+                    M{"E d/M – E d/M"}\r
+                    d{"E d/M – E d/M"}\r
                 }\r
                 MMM{\r
                     M{"MMM–MMM"}\r
                 }\r
                 MMMEd{\r
-                    M{"E, d MMM – E, d MMM"}\r
-                    d{"E, d MMM – E, d MMM"}\r
+                    M{"E d MMM – E d MMM"}\r
+                    d{"E d MMM – E d MMM"}\r
                 }\r
                 MMMd{\r
                     M{"d MMM – d MMM"}\r
@@ -674,18 +680,18 @@ af{
                     y{"M/y – M/y"}\r
                 }\r
                 yMEd{\r
-                    M{"E, d/M/y – E, d/M/y"}\r
-                    d{"E, d/M/y – E, d/M/y"}\r
-                    y{"E, d/M/y – E, d/M/y"}\r
+                    M{"E d/M/y – E d/M/y"}\r
+                    d{"E d/M/y – E d/M/y"}\r
+                    y{"E d/M/y – E d/M/y"}\r
                 }\r
                 yMMM{\r
                     M{"MMM–MMM y"}\r
                     y{"MMM y – MMM y"}\r
                 }\r
                 yMMMEd{\r
-                    M{"E, d MMM – E, d MMM, y"}\r
-                    d{"E, d MMM – E, d MMM y"}\r
-                    y{"E, d MMM y – E, d MMM y"}\r
+                    M{"E d MMM – E d MMM y"}\r
+                    d{"E d MMM – E d MMM y"}\r
+                    y{"E d MMM y – E d MMM y"}\r
                 }\r
                 yMMMM{\r
                     M{"MMMM – MMMM y"}\r
@@ -1001,7 +1007,7 @@ af{
             dn{"dag van j."}\r
         }\r
         dayperiod{\r
-            dn{"VM/NM"}\r
+            dn{"vm./nm."}\r
         }\r
         dayperiod-narrow{\r
             dn{"vm./nm."}\r
@@ -1043,8 +1049,8 @@ af{
             }\r
             relativeTime{\r
                 future{\r
-                    one{"oor {0} Vrydae"}\r
-                    other{"oor {0} Vrydae"}\r
+                    one{"oor {0} Vr."}\r
+                    other{"oor {0} Vr."}\r
                 }\r
                 past{\r
                     one{"{0} Vrydae gelede"}\r
@@ -1060,12 +1066,12 @@ af{
             }\r
             relativeTime{\r
                 future{\r
-                    one{"oor {0} Vrydae"}\r
-                    other{"oor {0} Vrydae"}\r
+                    one{"oor {0} Vr."}\r
+                    other{"oor {0} Vr."}\r
                 }\r
                 past{\r
-                    one{"{0} Vrydae gelede"}\r
-                    other{"{0} Vrydae gelede"}\r
+                    one{"{0} Vr. gelede"}\r
+                    other{"{0} Vr. gelede"}\r
                 }\r
             }\r
         }\r
@@ -1089,12 +1095,12 @@ af{
             dn{"u."}\r
             relativeTime{\r
                 future{\r
-                    one{"oor {0} uur"}\r
-                    other{"oor {0} uur"}\r
+                    one{"oor {0} u."}\r
+                    other{"oor {0} u."}\r
                 }\r
                 past{\r
-                    one{"{0} uur gelede"}\r
-                    other{"{0} uur gelede"}\r
+                    one{"{0} u. gelede"}\r
+                    other{"{0} u. gelede"}\r
                 }\r
             }\r
         }\r
@@ -1102,12 +1108,12 @@ af{
             dn{"u."}\r
             relativeTime{\r
                 future{\r
-                    one{"oor {0} uur"}\r
-                    other{"oor {0} uur"}\r
+                    one{"oor {0} u."}\r
+                    other{"oor {0} u."}\r
                 }\r
                 past{\r
-                    one{"{0} uur gelede"}\r
-                    other{"{0} uur gelede"}\r
+                    one{"{0} u. gelede"}\r
+                    other{"{0} u. gelede"}\r
                 }\r
             }\r
         }\r
@@ -1119,7 +1125,7 @@ af{
             relativeTime{\r
                 future{\r
                     one{"oor {0} minuut"}\r
-                    other{"oor {0} minuut"}\r
+                    other{"oor {0} minute"}\r
                 }\r
                 past{\r
                     one{"{0} minuut gelede"}\r
@@ -1178,8 +1184,8 @@ af{
             }\r
             relativeTime{\r
                 future{\r
-                    one{"oor {0} Maandae"}\r
-                    other{"oor {0} Maandae"}\r
+                    one{"oor {0} Ma."}\r
+                    other{"oor {0} Ma."}\r
                 }\r
                 past{\r
                     one{"{0} Maandae gelede"}\r
@@ -1195,12 +1201,12 @@ af{
             }\r
             relativeTime{\r
                 future{\r
-                    one{"oor {0} Maandae"}\r
-                    other{"oor {0} Maandae"}\r
+                    one{"oor {0} Ma."}\r
+                    other{"oor {0} Ma."}\r
                 }\r
                 past{\r
-                    one{"{0} Maandae gelede"}\r
-                    other{"{0} Maandae gelede"}\r
+                    one{"{0} Ma. gelede"}\r
+                    other{"{0} Ma. gelede"}\r
                 }\r
             }\r
         }\r
@@ -1213,8 +1219,8 @@ af{
             }\r
             relativeTime{\r
                 future{\r
-                    one{"oor {0} minuut"}\r
-                    other{"oor {0} minuut"}\r
+                    one{"oor {0} maand"}\r
+                    other{"oor {0} maande"}\r
                 }\r
                 past{\r
                     one{"{0} maand gelede"}\r
@@ -1251,7 +1257,7 @@ af{
         quarter{\r
             dn{"kwartaal"}\r
             relative{\r
-                "-1"{"vorige kwartaal"}\r
+                "-1"{"verlede kwartaal"}\r
                 "0"{"hierdie kwartaal"}\r
                 "1"{"volgende kwartaal"}\r
             }\r
@@ -1270,12 +1276,12 @@ af{
             dn{"kw."}\r
             relativeTime{\r
                 future{\r
-                    one{"oor {0} kwartale"}\r
-                    other{"oor {0} kwartale"}\r
+                    one{"oor {0} kw."}\r
+                    other{"oor {0} kw."}\r
                 }\r
                 past{\r
-                    one{"{0} kwartale gelede"}\r
-                    other{"{0} kwartale gelede"}\r
+                    one{"{0} kw. gelede"}\r
+                    other{"{0} kw. gelede"}\r
                 }\r
             }\r
         }\r
@@ -1283,12 +1289,12 @@ af{
             dn{"kw."}\r
             relativeTime{\r
                 future{\r
-                    one{"oor {0} kwartaal"}\r
-                    other{"oor {0} kwartale"}\r
+                    one{"oor {0} kw."}\r
+                    other{"oor {0} kw."}\r
                 }\r
                 past{\r
-                    one{"{0} kwartaal gelede"}\r
-                    other{"{0} kwartale gelede"}\r
+                    one{"{0} kw. gelede"}\r
+                    other{"{0} kw. gelede"}\r
                 }\r
             }\r
         }\r
@@ -1317,8 +1323,8 @@ af{
             }\r
             relativeTime{\r
                 future{\r
-                    one{"oor {0} Saterdae"}\r
-                    other{"oor {0} Saterdae"}\r
+                    one{"oor {0} Sa."}\r
+                    other{"oor {0} Sa."}\r
                 }\r
                 past{\r
                     one{"{0} Saterdae gelede"}\r
@@ -1334,12 +1340,12 @@ af{
             }\r
             relativeTime{\r
                 future{\r
-                    one{"oor {0} Saterdae"}\r
-                    other{"oor {0} Saterdae"}\r
+                    one{"oor {0} Sa."}\r
+                    other{"oor {0} Sa."}\r
                 }\r
                 past{\r
-                    one{"{0} Saterdae gelede"}\r
-                    other{"{0} Saterdae gelede"}\r
+                    one{"{0} Sa. gelede"}\r
+                    other{"{0} Sa. gelede"}\r
                 }\r
             }\r
         }\r
@@ -1363,25 +1369,25 @@ af{
             dn{"s."}\r
             relativeTime{\r
                 future{\r
-                    one{"oor {0} sek."}\r
-                    other{"oor {0} sek."}\r
+                    one{"oor {0} s."}\r
+                    other{"oor {0} s."}\r
                 }\r
                 past{\r
-                    one{"{0} sek. gelede"}\r
-                    other{"{0} sek. gelede"}\r
+                    one{"{0} s. gelede"}\r
+                    other{"{0} s. gelede"}\r
                 }\r
             }\r
         }\r
         second-short{\r
-            dn{"sek."}\r
+            dn{"s."}\r
             relativeTime{\r
                 future{\r
-                    one{"oor {0} sek."}\r
-                    other{"oor {0} sek."}\r
+                    one{"oor {0} s."}\r
+                    other{"oor {0} s."}\r
                 }\r
                 past{\r
-                    one{"{0} sek. gelede"}\r
-                    other{"{0} sek. gelede"}\r
+                    one{"{0} s. gelede"}\r
+                    other{"{0} s. gelede"}\r
                 }\r
             }\r
         }\r
@@ -1405,13 +1411,13 @@ af{
         sun-narrow{\r
             relative{\r
                 "-1"{"verlede Son."}\r
-                "0"{"hierdie Son."}\r
-                "1"{"volgende Son."}\r
+                "0"{"dié So."}\r
+                "1"{"vlg. So."}\r
             }\r
             relativeTime{\r
                 future{\r
-                    one{"oor {0} Sondae"}\r
-                    other{"oor {0} Sondae"}\r
+                    one{"oor {0} So."}\r
+                    other{"oor {0} So."}\r
                 }\r
                 past{\r
                     one{"{0} Sondae gelede"}\r
@@ -1421,18 +1427,18 @@ af{
         }\r
         sun-short{\r
             relative{\r
-                "-1"{"verlede Son."}\r
-                "0"{"hierdie Son."}\r
-                "1"{"volgende Son."}\r
+                "-1"{"verlede So."}\r
+                "0"{"hierdie So."}\r
+                "1"{"volgende So."}\r
             }\r
             relativeTime{\r
                 future{\r
-                    one{"oor {0} Sondae"}\r
-                    other{"oor {0} Sondae"}\r
+                    one{"oor {0} So."}\r
+                    other{"oor {0} So."}\r
                 }\r
                 past{\r
-                    one{"{0} Sondae gelede"}\r
-                    other{"{0} Sondae gelede"}\r
+                    one{"{0} So. gelede"}\r
+                    other{"{0} So. gelede"}\r
                 }\r
             }\r
         }\r
@@ -1456,13 +1462,13 @@ af{
         thu-narrow{\r
             relative{\r
                 "-1"{"verlede Do."}\r
-                "0"{"hierdie Do."}\r
-                "1"{"volgende Do."}\r
+                "0"{"dié Do."}\r
+                "1"{"vlg. Do."}\r
             }\r
             relativeTime{\r
                 future{\r
-                    one{"oor {0} Donderdae"}\r
-                    other{"oor {0} Donderdae"}\r
+                    one{"oor {0} Do."}\r
+                    other{"oor {0} Do."}\r
                 }\r
                 past{\r
                     one{"{0} Donderdae gelede"}\r
@@ -1478,12 +1484,12 @@ af{
             }\r
             relativeTime{\r
                 future{\r
-                    one{"oor {0} Donderdae"}\r
-                    other{"oor {0} Donderdae"}\r
+                    one{"oor {0} Do."}\r
+                    other{"oor {0} Do."}\r
                 }\r
                 past{\r
-                    one{"{0} Donderdae gelede"}\r
-                    other{"{0} Donderdae gelede"}\r
+                    one{"{0} Do. gelede"}\r
+                    other{"{0} Do. gelede"}\r
                 }\r
             }\r
         }\r
@@ -1507,13 +1513,13 @@ af{
         tue-narrow{\r
             relative{\r
                 "-1"{"verlede Di."}\r
-                "0"{"hierdie Di."}\r
+                "0"{"dié Di."}\r
                 "1"{"volgende Di."}\r
             }\r
             relativeTime{\r
                 future{\r
-                    one{"oor {0} Dinsdae"}\r
-                    other{"oor {0} Dinsdae"}\r
+                    one{"oor {0} Di."}\r
+                    other{"oor {0} Di."}\r
                 }\r
                 past{\r
                     one{"{0} Dinsdae gelede"}\r
@@ -1529,12 +1535,12 @@ af{
             }\r
             relativeTime{\r
                 future{\r
-                    one{"oor {0} Dinsdae"}\r
-                    other{"oor {0} Dinsdae"}\r
+                    one{"oor {0} Di."}\r
+                    other{"oor {0} Di."}\r
                 }\r
                 past{\r
-                    one{"{0} Dinsdae gelede"}\r
-                    other{"{0} Dinsdae gelede"}\r
+                    one{"{0} Di. gelede"}\r
+                    other{"{0} Di. gelede"}\r
                 }\r
             }\r
         }\r
@@ -1558,13 +1564,13 @@ af{
         wed-narrow{\r
             relative{\r
                 "-1"{"verlede Wo."}\r
-                "0"{"hierdie Wo."}\r
-                "1"{"volgende Wo."}\r
+                "0"{"dié Wo."}\r
+                "1"{"vlg. Wo."}\r
             }\r
             relativeTime{\r
                 future{\r
-                    one{"oor {0} Woensdae"}\r
-                    other{"oor {0} Woensdae"}\r
+                    one{"oor {0} Wo."}\r
+                    other{"oor {0} Wo."}\r
                 }\r
                 past{\r
                     one{"{0} Woensdae gelede"}\r
@@ -1580,12 +1586,12 @@ af{
             }\r
             relativeTime{\r
                 future{\r
-                    one{"oor {0} Woensdae"}\r
-                    other{"oor {0} Woensdae"}\r
+                    one{"oor {0} Wo."}\r
+                    other{"oor {0} Wo."}\r
                 }\r
                 past{\r
-                    one{"{0} Woensdae gelede"}\r
-                    other{"{0} Woensdae gelede"}\r
+                    one{"{0} Wo. gelede"}\r
+                    other{"{0} Wo. gelede"}\r
                 }\r
             }\r
         }\r
@@ -1593,7 +1599,7 @@ af{
             dn{"week"}\r
             relative{\r
                 "-1"{"verlede week"}\r
-                "0"{"vandeesweek"}\r
+                "0"{"hierdie week"}\r
                 "1"{"volgende week"}\r
             }\r
             relativePeriod{"die week van {0}"}\r
@@ -1685,12 +1691,12 @@ af{
             dn{"j."}\r
             relativeTime{\r
                 future{\r
-                    one{"oor {0} jaar"}\r
-                    other{"oor {0} jaar"}\r
+                    one{"oor {0} j."}\r
+                    other{"oor {0} j."}\r
                 }\r
                 past{\r
-                    one{"{0} jaar gelede"}\r
-                    other{"{0} jaar gelede"}\r
+                    one{"{0} j. gelede"}\r
+                    other{"{0} j. gelede"}\r
                 }\r
             }\r
         }\r
@@ -1698,12 +1704,12 @@ af{
             dn{"j."}\r
             relativeTime{\r
                 future{\r
-                    one{"oor {0} jaar"}\r
-                    other{"oor {0} jaar"}\r
+                    one{"oor {0} j."}\r
+                    other{"oor {0} j."}\r
                 }\r
                 past{\r
-                    one{"{0} jaar gelede"}\r
-                    other{"{0} jaar gelede"}\r
+                    one{"{0} j. gelede"}\r
+                    other{"{0} j. gelede"}\r
                 }\r
             }\r
         }\r
@@ -1758,6 +1764,6 @@ af{
     measurementSystemNames{\r
         UK{"VK"}\r
         US{"VSA"}\r
-        metric{"Metriek"}\r
+        metric{"Metrieke stelsel"}\r
     }\r
 }\r
index 7bfc1fc7cce61e17e97f89e21bb7cdb538a72e26..58e7ebb91f63d59a84bd705289b52d06455f51b4 100644 (file)
@@ -20,6 +20,10 @@ am{
         " ጡ ጢ ጣ ጤ ጥ ጦ ጧ ጨ ጩ ጪ ጫ ጬ ጭ ጮ ጯ ጰ ጱ ጲ ጳ ጴ ጵ ጶ ጷ ጸ ጹ ጺ ጻ ጼ ጽ ጾ ጿ ፀ ፁ ፂ ፃ ፄ ፅ ፆ"\r
         " ፈ ፉ ፊ ፋ ፌ ፍ ፎ ፏ ፐ ፑ ፒ ፓ ፔ ፕ ፖ ፗ]"\r
     }\r
+    ExemplarCharactersIndex{\r
+        "[ሀ ለ ሐ መ ሠ ረ ሰ ሸ ቀ ቈ በ ቨ ተ ቸ ኀ ኈ ነ ኘ አ ከ ኰ ኸ ወ ዐ ዘ ዠ የ ደ ጀ ገ ጐ ጠ ጨ ጰ ጸ ፀ ፈ ፐ"\r
+        "]"\r
+    }\r
     ExemplarCharactersNumbers{"[\\- , . % ‰ + 0 1 2 3 4 5 6 7 8 9]"}\r
     ExemplarCharactersPunctuation{"[‐ – , ፡ ፣ ፤ ፥ ፦ ! ? . ። ‹ › « » ( ) \\[ \\]]"}\r
     MoreInformation{"?"}\r
@@ -27,7 +31,9 @@ am{
         default{"latn"}\r
         latn{\r
             miscPatterns{\r
+                approximately{"~{0}"}\r
                 atLeast{"{0}+"}\r
+                atMost{"≤{0}"}\r
                 range{"{0}–{1}"}\r
             }\r
             patterns{\r
@@ -219,7 +225,7 @@ am{
         native{"latn"}\r
         traditional{"ethi"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.65"}\r
     calendar{\r
         buddhist{\r
             DateTimePatterns{\r
@@ -638,6 +644,19 @@ am{
                 }\r
             }\r
         }\r
+        ethiopic-amete-alem{\r
+            eras{\r
+                abbreviated{\r
+                    "ERA0",\r
+                }\r
+                narrow{\r
+                    "ERA0",\r
+                }\r
+                wide{\r
+                    "ERA0",\r
+                }\r
+            }\r
+        }\r
         generic{\r
             DateTimePatterns{\r
                 "h:mm:ss a zzzz",\r
@@ -667,7 +686,7 @@ am{
                 Ehm{"E h:mm a"}\r
                 Ehms{"E h:mm:ss a"}\r
                 Gy{"y G"}\r
-                GyMMM{"MMM፣ y G"}\r
+                GyMMM{"G y MMM"}\r
                 GyMMMEd{"E MMM d፣ y G"}\r
                 GyMMMd{"MMM d፣ y G"}\r
                 H{"H"}\r
@@ -821,7 +840,7 @@ am{
                 "h:mm:ss a z",\r
                 "h:mm:ss a",\r
                 "h:mm a",\r
-                "EEEE ፣d MMMM y",\r
+                "y MMMM d, EEEE",\r
                 "d MMMM y",\r
                 "d MMM y",\r
                 "dd/MM/y",\r
@@ -848,8 +867,8 @@ am{
                 Ehms{"E h:mm:ss a"}\r
                 Gy{"y G"}\r
                 GyMMM{"MMM y G"}\r
-                GyMMMEd{"E፣ MMM d፣ y G"}\r
-                GyMMMd{"MMM d፣ y G"}\r
+                GyMMMEd{"G y MMM d, E"}\r
+                GyMMMd{"G y MMM d"}\r
                 H{"H"}\r
                 Hm{"HH:mm"}\r
                 Hms{"HH:mm:ss"}\r
@@ -970,7 +989,7 @@ am{
             dayPeriod{\r
                 format{\r
                     abbreviated{\r
-                        afternoon1{"ከሰዓት1"}\r
+                        afternoon1{"ከሰዓት 7"}\r
                         evening1{"ማታ1"}\r
                         midnight{"እኩለ ሌሊት"}\r
                         morning1{"ጥዋት1"}\r
@@ -986,7 +1005,7 @@ am{
                         noon{"ቀ"}\r
                     }\r
                     wide{\r
-                        afternoon1{"ከሰዓት1"}\r
+                        afternoon1{"ከሰዓት 7 ሰዓት"}\r
                         evening1{"ማታ1"}\r
                         midnight{"እኩለ ሌሊት"}\r
                         morning1{"ጥዋት1"}\r
@@ -1075,7 +1094,7 @@ am{
                     M{"MMM–MMM"}\r
                 }\r
                 MMMEd{\r
-                    M{"E፣ MMM d – E፣ MMM d"}\r
+                    M{"MMM d, E – MMM d, E"}\r
                     d{"E d – E d፣ MMM"}\r
                 }\r
                 MMMd{\r
@@ -1117,7 +1136,7 @@ am{
                 }\r
                 yMEd{\r
                     M{"E d/M/ – E d/M፣ y"}\r
-                    d{"E፣ d/M/y – E፣ d/M/y"}\r
+                    d{"y-MM-dd, E – y-MM-dd, E"}\r
                     y{"E፣ d/M/y – E፣ d/M/y"}\r
                 }\r
                 yMMM{\r
@@ -2258,8 +2277,13 @@ am{
         general{\r
             lenient{\r
                 "[.․。︒﹒.。]",\r
+                "['ʼ՚᾽᾿’']",\r
+                "[%٪﹪%]",\r
+                "[؉‰]",\r
                 "[\$﹩$$]",\r
                 "[£₤]",\r
+                "[¥¥]",\r
+                "[₩₩]",\r
                 "[₨₹{Rp}{Rs}]",\r
             }\r
         }\r
index 9f97eeedd1357c2eaa6b7aa5f42bee2388ec22e4..9c1aadce07135a1191bd2a727e8b61ed3e92f801 100644 (file)
@@ -45,7 +45,9 @@ ar{
         default_latn{"latn"}\r
         latn{\r
             miscPatterns{\r
+                approximately{"~{0}"}\r
                 atLeast{"+{0}"}\r
+                atMost{"≤{0}"}\r
                 range{"{0}–{1}"}\r
             }\r
             patterns{\r
@@ -384,7 +386,7 @@ ar{
         minimumGroupingDigits{"1"}\r
         native{"arab"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.50"}\r
     calendar{\r
         buddhist{\r
             eras{\r
@@ -1635,6 +1637,7 @@ ar{
                     "تيشو",\r
                     "شووا",\r
                     "هيسي",\r
+                    "Qqqq",\r
                 }\r
             }\r
         }\r
@@ -2965,8 +2968,13 @@ ar{
         general{\r
             lenient{\r
                 "[.․。︒﹒.。]",\r
+                "['ʼ՚᾽᾿’']",\r
+                "[%٪﹪%]",\r
+                "[؉‰]",\r
                 "[\$﹩$$]",\r
                 "[£₤]",\r
+                "[¥¥]",\r
+                "[₩₩]",\r
                 "[₨₹{Rp}{Rs}]",\r
             }\r
         }\r
index d94aae2f7c7aecf906553d6d8c5f9c7af3a21a39..28e51837c1485bd62d0699bf178618a346510c86 100644 (file)
@@ -10,7 +10,7 @@ ar_SA{
             }\r
         }\r
     }\r
-    Version{"2.1.38.80"}\r
+    Version{"2.1.43.65"}\r
     calendar{\r
         default{"islamic-umalqura"}\r
         gregorian{\r
index 948bd19e6065f2c6de7a4a963423228e630c1db1..414c4a5583375e3223cc35bf1b14121a255a4e47 100644 (file)
@@ -16,6 +16,10 @@ as{
         "ী \u09C1 \u09C2 \u09C3 ে ৈ ো ৌ \u09CD]"\r
     }\r
     ExemplarCharactersNumbers{"[\\- , . % ‰ + 0০ 1১ 2২ 3৩ 4৪ 5৫ 6৬ 7৭ 8৮ 9৯]"}\r
+    ExemplarCharactersPunctuation{\r
+        "[\\- ‐ – — , ; \\: ! ? . … । ' ‘ ’ \u0022 “ ” ( ) \\[ \\] § @ * / \\& # † ‡ "\r
+        "′ ″]"\r
+    }\r
     MoreInformation{"?"}\r
     NumberElements{\r
         beng{\r
@@ -41,7 +45,7 @@ as{
         default{"beng"}\r
         latn{\r
             miscPatterns{\r
-                atLeast{"⩾{0}"}\r
+                atLeast{"â\89¥{0}"}\r
                 range{"{0}–{1}"}\r
             }\r
             patterns{\r
@@ -230,7 +234,7 @@ as{
         minimumGroupingDigits{"1"}\r
         native{"beng"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.94"}\r
     calendar{\r
         generic{\r
             DateTimePatterns{\r
@@ -541,12 +545,16 @@ as{
                 }\r
                 abbreviated%variant{\r
                     "খ্ৰীষ্টপূৰ্ব",\r
-                    "CE",\r
+                    "চি. ই.",\r
                 }\r
                 wide{\r
                     "খ্ৰীষ্টপূৰ্ব",\r
                     "খ্ৰীষ্টাব্দ",\r
                 }\r
+                wide%variant{\r
+                    "খ্ৰীষ্টপূৰ্ব",\r
+                    "চি. ই.",\r
+                }\r
             }\r
             intervalFormats{\r
                 H{\r
@@ -1697,8 +1705,13 @@ as{
         general{\r
             lenient{\r
                 "[.․。︒﹒.。]",\r
+                "['ʼ՚᾽᾿’']",\r
+                "[%٪﹪%]",\r
+                "[؉‰]",\r
                 "[\$﹩$$]",\r
                 "[£₤]",\r
+                "[¥¥]",\r
+                "[₩₩]",\r
                 "[₨₹{Rp}{Rs}]",\r
             }\r
         }\r
index 7f92e9cfc29df86b89596e51eac840194ad8a598..7126df8a780655d0a3c07abd711c87e7aec31288 100644 (file)
@@ -45,7 +45,7 @@ ast{
         default{"latn"}\r
         latn{\r
             miscPatterns{\r
-                atLeast{"⩾{0}"}\r
+                atLeast{"â\89¥{0}"}\r
                 range{"{0}–{1}"}\r
             }\r
             patterns{\r
@@ -236,7 +236,7 @@ ast{
         minimumGroupingDigits{"1"}\r
         native{"latn"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.91"}\r
     calendar{\r
         buddhist{\r
             DateTimePatterns{\r
@@ -1154,8 +1154,8 @@ ast{
                 yQQQ{"QQQ y"}\r
                 yQQQQ{"QQQQ 'de' y"}\r
                 yw{\r
-                    one{"'selmana' w 'de' y"}\r
-                    other{"'selmana' w 'de' y"}\r
+                    one{"'selmana' w 'de' Y"}\r
+                    other{"'selmana' w 'de' Y"}\r
                 }\r
             }\r
             dayNames{\r
@@ -2304,6 +2304,7 @@ ast{
                     "Taishō",\r
                     "e. Shōwa",\r
                     "Heisei",\r
+                    "Qqqq",\r
                 }\r
                 narrow{\r
                     "Taika",\r
@@ -2542,6 +2543,7 @@ ast{
                     "T",\r
                     "S",\r
                     "H",\r
+                    "Q",\r
                 }\r
                 wide{\r
                     "Taika (645–650)",\r
@@ -2780,6 +2782,7 @@ ast{
                     "Taishō",\r
                     "era Shōwa",\r
                     "Heisei",\r
+                    "Qqqq",\r
                 }\r
             }\r
             intervalFormats{\r
@@ -3944,8 +3947,13 @@ ast{
         general{\r
             lenient{\r
                 "[.․。︒﹒.。]",\r
+                "['ʼ՚᾽᾿’']",\r
+                "[%٪﹪%]",\r
+                "[؉‰]",\r
                 "[\$﹩$$]",\r
                 "[£₤]",\r
+                "[¥¥]",\r
+                "[₩₩]",\r
                 "[₨₹{Rp}{Rs}]",\r
             }\r
         }\r
index d71d8dbc897ad98d16938ce1e21e45bee164ba45..c393781e7509fd244cd142dc74ffe2e6aa55a59a 100644 (file)
@@ -22,12 +22,14 @@ az{
         default{"latn"}\r
         latn{\r
             miscPatterns{\r
+                approximately{"~{0}"}\r
                 atLeast{"{0}+"}\r
+                atMost{"≤{0}"}\r
                 range{"{0}–{1}"}\r
             }\r
             patterns{\r
-                accountingFormat{"¤ #,##0.00"}\r
-                currencyFormat{"¤ #,##0.00"}\r
+                accountingFormat{"#,##0.00 ¤"}\r
+                currencyFormat{"#,##0.00 ¤"}\r
                 decimalFormat{"#,##0.###"}\r
                 percentFormat{"#,##0%"}\r
                 scientificFormat{"#E0"}\r
@@ -87,52 +89,52 @@ az{
             patternsShort{\r
                 currencyFormat{\r
                     1000{\r
-                        one{"¤ 0K"}\r
-                        other{"¤ 0K"}\r
+                        one{"0K ¤"}\r
+                        other{"0K ¤"}\r
                     }\r
                     10000{\r
-                        one{"¤ 00K"}\r
-                        other{"¤ 00K"}\r
+                        one{"00K ¤"}\r
+                        other{"00K ¤"}\r
                     }\r
                     100000{\r
-                        one{"¤ 000K"}\r
-                        other{"¤ 000K"}\r
+                        one{"000K ¤"}\r
+                        other{"000K ¤"}\r
                     }\r
                     1000000{\r
-                        one{"¤ 0M"}\r
-                        other{"¤ 0M"}\r
+                        one{"0M ¤"}\r
+                        other{"0M ¤"}\r
                     }\r
                     10000000{\r
-                        one{"¤ 00M"}\r
-                        other{"¤ 00M"}\r
+                        one{"00M ¤"}\r
+                        other{"00M ¤"}\r
                     }\r
                     100000000{\r
-                        one{"¤ 000M"}\r
-                        other{"¤ 000M"}\r
+                        one{"000M ¤"}\r
+                        other{"000M ¤"}\r
                     }\r
                     1000000000{\r
-                        one{"¤ 0G"}\r
-                        other{"¤ 0G"}\r
+                        one{"0G ¤"}\r
+                        other{"0G ¤"}\r
                     }\r
                     10000000000{\r
-                        one{"¤ 00G"}\r
-                        other{"¤ 00G"}\r
+                        one{"00G ¤"}\r
+                        other{"00G ¤"}\r
                     }\r
                     100000000000{\r
-                        one{"¤ 000G"}\r
-                        other{"¤ 000G"}\r
+                        one{"000G ¤"}\r
+                        other{"000G ¤"}\r
                     }\r
                     1000000000000{\r
-                        one{"¤ 0T"}\r
-                        other{"¤ 0T"}\r
+                        one{"0T ¤"}\r
+                        other{"0T ¤"}\r
                     }\r
                     10000000000000{\r
-                        one{"¤ 00T"}\r
-                        other{"¤ 00T"}\r
+                        one{"00T ¤"}\r
+                        other{"00T ¤"}\r
                     }\r
                     100000000000000{\r
-                        one{"¤ 000T"}\r
-                        other{"¤ 000T"}\r
+                        one{"000T ¤"}\r
+                        other{"000T ¤"}\r
                     }\r
                 }\r
                 decimalFormat{\r
@@ -216,7 +218,7 @@ az{
         minimumGroupingDigits{"1"}\r
         native{"latn"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.53"}\r
     calendar{\r
         generic{\r
             DateTimePatterns{\r
@@ -278,6 +280,20 @@ az{
                 yyyyQQQQ{"G y QQQQ"}\r
             }\r
             intervalFormats{\r
+                H{\r
+                    H{"HH–HH"}\r
+                }\r
+                Hm{\r
+                    H{"HH:mm–HH:mm"}\r
+                    m{"HH:mm–HH:mm"}\r
+                }\r
+                Hmv{\r
+                    H{"HH:mm–HH:mm v"}\r
+                    m{"HH:mm–HH:mm v"}\r
+                }\r
+                Hv{\r
+                    H{"HH–HH v"}\r
+                }\r
                 M{\r
                     M{"MM–MM"}\r
                 }\r
@@ -304,6 +320,24 @@ az{
                     d{"d–d"}\r
                 }\r
                 fallback{"{0} – {1}"}\r
+                h{\r
+                    a{"h a – h a"}\r
+                    h{"h–h a"}\r
+                }\r
+                hm{\r
+                    a{"h:mm a – h:mm a"}\r
+                    h{"h:mm–h:mm a"}\r
+                    m{"h:mm–h:mm a"}\r
+                }\r
+                hmv{\r
+                    a{"h:mm a – h:mm a v"}\r
+                    h{"h:mm–h:mm a v"}\r
+                    m{"h:mm–h:mm a v"}\r
+                }\r
+                hv{\r
+                    a{"h a – h a v"}\r
+                    h{"h–h a v"}\r
+                }\r
                 y{\r
                     y{"G y–y"}\r
                 }\r
@@ -1149,8 +1183,8 @@ az{
             }\r
             relativeTime{\r
                 future{\r
-                    one{"{0} bazar ertəsi əzrində"}\r
-                    other{"{0} bazar ertəsi əzrində"}\r
+                    one{"{0} bazar ertəsi ərzində"}\r
+                    other{"{0} bazar ertəsi ərzində"}\r
                 }\r
                 past{\r
                     one{"{0} bazar ertəsi öncə"}\r
@@ -1166,8 +1200,8 @@ az{
             }\r
             relativeTime{\r
                 future{\r
-                    one{"{0} bazar ertəsi əzrində"}\r
-                    other{"{0} bazar ertəsi əzrində"}\r
+                    one{"{0} bazar ertəsi ərzində"}\r
+                    other{"{0} bazar ertəsi ərzində"}\r
                 }\r
                 past{\r
                     one{"{0} bazar ertəsi öncə"}\r
@@ -1239,6 +1273,11 @@ az{
         }\r
         quarter-narrow{\r
             dn{"rüb"}\r
+            relative{\r
+                "-1"{"keçən rüb"}\r
+                "0"{"bu rüb"}\r
+                "1"{"gələn rüb"}\r
+            }\r
             relativeTime{\r
                 future{\r
                     one{"{0} rüb ərzində"}\r
@@ -1252,6 +1291,11 @@ az{
         }\r
         quarter-short{\r
             dn{"rüb"}\r
+            relative{\r
+                "-1"{"keçən rüb"}\r
+                "0"{"bu rüb"}\r
+                "1"{"gələn rüb"}\r
+            }\r
             relativeTime{\r
                 future{\r
                     one{"{0} rüb ərzində"}\r
@@ -1741,8 +1785,13 @@ az{
         general{\r
             lenient{\r
                 "[.․。︒﹒.。]",\r
+                "['ʼ՚᾽᾿’']",\r
+                "[%٪﹪%]",\r
+                "[؉‰]",\r
                 "[\$﹩$$]",\r
                 "[£₤]",\r
+                "[¥¥]",\r
+                "[₩₩]",\r
                 "[₨₹{Rp}{Rs}]",\r
             }\r
         }\r
index 2ee97a21a6851d8098eb1cff82dd2ab177626b30..37eef51ef0ff531df131a5e384736c48539245f7 100644 (file)
@@ -8,8 +8,8 @@ az_Cyrl{
     NumberElements{\r
         latn{\r
             patterns{\r
-                accountingFormat{"¤ #,##0.00"}\r
-                currencyFormat{"¤ #,##0.00"}\r
+                accountingFormat{"#,##0.00 ¤"}\r
+                currencyFormat{"#,##0.00 ¤"}\r
                 decimalFormat{"#,##0.###"}\r
                 percentFormat{"#,##0%"}\r
             }\r
@@ -27,7 +27,7 @@ az_Cyrl{
             }\r
         }\r
     }\r
-    Version{"2.1.38.69"}\r
+    Version{"2.1.44.53"}\r
     calendar{\r
         generic{\r
             DateTimePatterns{\r
index 21ccc3656563522d69c9f50185e158abaa1d9d5b..c91fbaf180bf3f85c013311930aca6dbcdbc89c9 100644 (file)
@@ -22,7 +22,9 @@ be{
         default{"latn"}\r
         latn{\r
             miscPatterns{\r
+                approximately{"≈{0}"}\r
                 atLeast{"{0}+"}\r
+                atMost{"≤{0}"}\r
                 range{"{0}–{1}"}\r
             }\r
             patterns{\r
@@ -287,7 +289,7 @@ be{
         minimumGroupingDigits{"2"}\r
         native{"latn"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.65"}\r
     calendar{\r
         buddhist{\r
             DateTimePatterns{\r
@@ -1089,14 +1091,14 @@ be{
                 future{\r
                     few{"праз {0} пятніцы"}\r
                     many{"праз {0} пятніц"}\r
-                    one{"пÑ\80аз {0} Ð¿Ñ\8fÑ\82нÑ\96Ñ\86Ñ\83"}\r
-                    other{"пÑ\80аз {0} Ð¿Ñ\8fÑ\82нÑ\96Ñ\86Ñ\8b"}\r
+                    one{"пÑ\80аз {0} Ð¿Ñ\82"}\r
+                    other{"пÑ\80аз {0} Ð¿Ñ\82"}\r
                 }\r
                 past{\r
                     few{"{0} пятніцы таму"}\r
                     many{"{0} пятніц таму"}\r
-                    one{"{0} Ð¿Ñ\8fÑ\82нÑ\96Ñ\86Ñ\83 таму"}\r
-                    other{"{0} Ð¿Ñ\8fÑ\82нÑ\96Ñ\86Ñ\8b таму"}\r
+                    one{"{0} Ð¿Ñ\82 таму"}\r
+                    other{"{0} Ð¿Ñ\82 таму"}\r
                 }\r
             }\r
         }\r
@@ -1110,14 +1112,14 @@ be{
                 future{\r
                     few{"праз {0} пятніцы"}\r
                     many{"праз {0} пятніц"}\r
-                    one{"пÑ\80аз {0} Ð¿Ñ\8fÑ\82нÑ\96Ñ\86Ñ\83"}\r
-                    other{"пÑ\80аз {0} Ð¿Ñ\8fÑ\82нÑ\96Ñ\86Ñ\8b"}\r
+                    one{"пÑ\80аз {0} Ð¿Ñ\82"}\r
+                    other{"пÑ\80аз {0} Ð¿Ñ\82"}\r
                 }\r
                 past{\r
                     few{"{0} пятніцы таму"}\r
                     many{"{0} пятніц таму"}\r
-                    one{"{0} Ð¿Ñ\8fÑ\82нÑ\96Ñ\86Ñ\83 таму"}\r
-                    other{"{0} Ð¿Ñ\8fÑ\82нÑ\96Ñ\86Ñ\8b таму"}\r
+                    one{"{0} Ð¿Ñ\82 таму"}\r
+                    other{"{0} Ð¿Ñ\82 таму"}\r
                 }\r
             }\r
         }\r
@@ -1260,14 +1262,14 @@ be{
                 future{\r
                     few{"праз {0} панядзелкі"}\r
                     many{"праз {0} панядзелкаў"}\r
-                    one{"пÑ\80аз {0} Ð¿Ð°Ð½Ñ\8fдзелак"}\r
-                    other{"пÑ\80аз {0} Ð¿Ð°Ð½Ñ\8fдзелка"}\r
+                    one{"пÑ\80аз {0} Ð¿Ð½"}\r
+                    other{"пÑ\80аз {0} Ð¿Ð½"}\r
                 }\r
                 past{\r
                     few{"{0} панядзелкі таму"}\r
                     many{"{0} панядзелкаў таму"}\r
-                    one{"{0} Ð¿Ð°Ð½Ñ\8fдзелак таму"}\r
-                    other{"{0} Ð¿Ð°Ð½Ñ\8fдзелка таму"}\r
+                    one{"{0} Ð¿Ð½ таму"}\r
+                    other{"{0} Ð¿Ð½ таму"}\r
                 }\r
             }\r
         }\r
@@ -1281,14 +1283,14 @@ be{
                 future{\r
                     few{"праз {0} панядзелкі"}\r
                     many{"праз {0} панядзелкаў"}\r
-                    one{"пÑ\80аз {0} Ð¿Ð°Ð½Ñ\8fдзелак"}\r
-                    other{"пÑ\80аз {0} Ð¿Ð°Ð½Ñ\8fдзелка"}\r
+                    one{"пÑ\80аз {0} Ð¿Ð½"}\r
+                    other{"пÑ\80аз {0} Ð¿Ð½"}\r
                 }\r
                 past{\r
                     few{"{0} панядзелкі таму"}\r
                     many{"{0} панядзелкаў таму"}\r
-                    one{"{0} Ð¿Ð°Ð½Ñ\8fдзелак таму"}\r
-                    other{"{0} Ð¿Ð°Ð½Ñ\8fдзелка таму"}\r
+                    one{"{0} Ð¿Ð½ таму"}\r
+                    other{"{0} Ð¿Ð½ таму"}\r
                 }\r
             }\r
         }\r
@@ -1435,14 +1437,14 @@ be{
                 future{\r
                     few{"праз {0} суботы"}\r
                     many{"праз {0} субот"}\r
-                    one{"праз {0} суботу"}\r
-                    other{"праз {0} суботы"}\r
+                    one{"праз {0} сб"}\r
+                    other{"праз {0} сб"}\r
                 }\r
                 past{\r
                     few{"{0} суботы таму"}\r
                     many{"{0} субот таму"}\r
-                    one{"{0} суботу таму"}\r
-                    other{"{0} суботы таму"}\r
+                    one{"{0} сб таму"}\r
+                    other{"{0} сб таму"}\r
                 }\r
             }\r
         }\r
@@ -1456,14 +1458,14 @@ be{
                 future{\r
                     few{"праз {0} суботы"}\r
                     many{"праз {0} субот"}\r
-                    one{"праз {0} суботу"}\r
-                    other{"праз {0} суботы"}\r
+                    one{"праз {0} сб"}\r
+                    other{"праз {0} сб"}\r
                 }\r
                 past{\r
                     few{"{0} суботы таму"}\r
                     many{"{0} субот таму"}\r
-                    one{"{0} суботу таму"}\r
-                    other{"{0} суботы таму"}\r
+                    one{"{0} сб таму"}\r
+                    other{"{0} сб таму"}\r
                 }\r
             }\r
         }\r
@@ -1552,14 +1554,14 @@ be{
                 future{\r
                     few{"праз {0} нядзелі"}\r
                     many{"праз {0} нядзель"}\r
-                    one{"праз {0} нядзелю"}\r
-                    other{"праз {0} нядзелі"}\r
+                    one{"праз {0} нд"}\r
+                    other{"праз {0} нд"}\r
                 }\r
                 past{\r
                     few{"{0} нядзелі таму"}\r
                     many{"{0} нядзель таму"}\r
-                    one{"{0} нядзелю таму"}\r
-                    other{"{0} нядзелі таму"}\r
+                    one{"{0} нд таму"}\r
+                    other{"{0} нд таму"}\r
                 }\r
             }\r
         }\r
@@ -1573,14 +1575,14 @@ be{
                 future{\r
                     few{"праз {0} нядзелі"}\r
                     many{"праз {0} нядзель"}\r
-                    one{"праз {0} нядзелю"}\r
-                    other{"праз {0} нядзелі"}\r
+                    one{"праз {0} нд"}\r
+                    other{"праз {0} нд"}\r
                 }\r
                 past{\r
                     few{"{0} нядзелі таму"}\r
                     many{"{0} нядзель таму"}\r
-                    one{"{0} нядзелю таму"}\r
-                    other{"{0} нядзелі таму"}\r
+                    one{"{0} нд таму"}\r
+                    other{"{0} нд таму"}\r
                 }\r
             }\r
         }\r
@@ -1615,14 +1617,14 @@ be{
                 future{\r
                     few{"праз {0} чацвяргі"}\r
                     many{"праз {0} чацвяргоў"}\r
-                    one{"праз {0} чацвер"}\r
-                    other{"праз {0} чацвярга"}\r
+                    one{"праз {0} чц"}\r
+                    other{"праз {0} чц"}\r
                 }\r
                 past{\r
                     few{"{0} чацвяргі таму"}\r
                     many{"{0} чацвяргоў таму"}\r
-                    one{"{0} чацвер таму"}\r
-                    other{"{0} чацвярга таму"}\r
+                    one{"{0} чц таму"}\r
+                    other{"{0} чц таму"}\r
                 }\r
             }\r
         }\r
@@ -1636,14 +1638,14 @@ be{
                 future{\r
                     few{"праз {0} чацвяргі"}\r
                     many{"праз {0} чацвяргоў"}\r
-                    one{"праз {0} чацвер"}\r
-                    other{"праз {0} чацвярга"}\r
+                    one{"праз {0} чц"}\r
+                    other{"праз {0} чц"}\r
                 }\r
                 past{\r
                     few{"{0} чацвяргі таму"}\r
                     many{"{0} чацвяргоў таму"}\r
-                    one{"{0} чацвер таму"}\r
-                    other{"{0} чацвярга таму"}\r
+                    one{"{0} чц таму"}\r
+                    other{"{0} чц таму"}\r
                 }\r
             }\r
         }\r
@@ -1678,14 +1680,14 @@ be{
                 future{\r
                     few{"праз {0} аўторкі"}\r
                     many{"праз {0} аўторкаў"}\r
-                    one{"праз {0} аўторак"}\r
-                    other{"праз {0} аўторка"}\r
+                    one{"праз {0} аў"}\r
+                    other{"праз {0} аў"}\r
                 }\r
                 past{\r
                     few{"{0} аўторкі таму"}\r
                     many{"{0} аўторкаў таму"}\r
-                    one{"{0} аўторак таму"}\r
-                    other{"{0} аўторка таму"}\r
+                    one{"{0} аў таму"}\r
+                    other{"{0} аў таму"}\r
                 }\r
             }\r
         }\r
@@ -1699,14 +1701,14 @@ be{
                 future{\r
                     few{"праз {0} аўторкі"}\r
                     many{"праз {0} аўторкаў"}\r
-                    one{"праз {0} аўторак"}\r
-                    other{"праз {0} аўторка"}\r
+                    one{"праз {0} аў"}\r
+                    other{"праз {0} аў"}\r
                 }\r
                 past{\r
                     few{"{0} аўторкі таму"}\r
                     many{"{0} аўторкаў таму"}\r
-                    one{"{0} аўторак таму"}\r
-                    other{"{0} аўторка таму"}\r
+                    one{"{0} аў таму"}\r
+                    other{"{0} аў таму"}\r
                 }\r
             }\r
         }\r
@@ -1741,14 +1743,14 @@ be{
                 future{\r
                     few{"праз {0} серады"}\r
                     many{"праз {0} серад"}\r
-                    one{"праз {0} сераду"}\r
-                    other{"праз {0} серады"}\r
+                    one{"праз {0} ср"}\r
+                    other{"праз {0} ср"}\r
                 }\r
                 past{\r
                     few{"{0} серады таму"}\r
                     many{"{0} серад таму"}\r
-                    one{"{0} сераду таму"}\r
-                    other{"{0} серады таму"}\r
+                    one{"{0} ср таму"}\r
+                    other{"{0} ср таму"}\r
                 }\r
             }\r
         }\r
@@ -1762,14 +1764,14 @@ be{
                 future{\r
                     few{"праз {0} серады"}\r
                     many{"праз {0} серад"}\r
-                    one{"праз {0} сераду"}\r
-                    other{"праз {0} серады"}\r
+                    one{"праз {0} ср"}\r
+                    other{"праз {0} ср"}\r
                 }\r
                 past{\r
                     few{"{0} серады таму"}\r
                     many{"{0} серад таму"}\r
-                    one{"{0} сераду таму"}\r
-                    other{"{0} серады таму"}\r
+                    one{"{0} ср таму"}\r
+                    other{"{0} ср таму"}\r
                 }\r
             }\r
         }\r
index 13d00e9284b63087aee55e42561e343b550df6d5..dafc7e01fd8e2c6eca35bd27dffb92b44f788026 100644 (file)
@@ -19,7 +19,9 @@ bg{
         default{"latn"}\r
         latn{\r
             miscPatterns{\r
-                atLeast{"⩾ {0}"}\r
+                approximately{"~{0}"}\r
+                atLeast{"≥ {0}"}\r
+                atMost{"≤ {0}"}\r
                 range{"{0} – {1}"}\r
             }\r
             patterns{\r
@@ -210,7 +212,7 @@ bg{
         minimumGroupingDigits{"2"}\r
         native{"latn"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.94"}\r
     calendar{\r
         generic{\r
             DateTimePatterns{\r
@@ -573,7 +575,7 @@ bg{
                         evening1{"вечерта"}\r
                         midnight{"полунощ"}\r
                         morning1{"сутринта"}\r
-                        morning2{"на обед"}\r
+                        morning2{"на обяд"}\r
                         night1{"през нощта"}\r
                     }\r
                     narrow{\r
@@ -581,7 +583,7 @@ bg{
                         evening1{"вечерта"}\r
                         midnight{"полунощ"}\r
                         morning1{"сутринта"}\r
-                        morning2{"на обед"}\r
+                        morning2{"на обяд"}\r
                         night1{"през нощта"}\r
                     }\r
                     wide{\r
@@ -600,7 +602,7 @@ bg{
                         evening1{"вечерта"}\r
                         midnight{"полунощ"}\r
                         morning1{"сутринта"}\r
-                        morning2{"на обед"}\r
+                        morning2{"на обяд"}\r
                         night1{"през нощта"}\r
                         pm{"pm"}\r
                     }\r
@@ -610,7 +612,7 @@ bg{
                         evening1{"вечерта"}\r
                         midnight{"полунощ"}\r
                         morning1{"сутринта"}\r
-                        morning2{"наобед"}\r
+                        morning2{"на обяд"}\r
                         night1{"през нощта"}\r
                         pm{"pm"}\r
                     }\r
@@ -620,7 +622,7 @@ bg{
                         evening1{"вечерта"}\r
                         midnight{"полунощ"}\r
                         morning1{"сутринта"}\r
-                        morning2{"на обед"}\r
+                        morning2{"на обяд"}\r
                         night1{"през нощта"}\r
                         pm{"pm"}\r
                     }\r
@@ -990,7 +992,7 @@ bg{
         half_width_form_variant{"Варианти на форми с половин ширина"}\r
         han_characters{"Хан логограми"}\r
         han_radicals{"Хан радикали"}\r
-        hanja{"Ханджа"}\r
+        hanja{"Ханча"}\r
         hanzi_simplified{"Ханзи (опростен)"}\r
         hanzi_traditional{"Ханзи (традиционен)"}\r
         heart{"Сърце"}\r
@@ -1006,7 +1008,7 @@ bg{
         limited_use{"Ограничена употреба"}\r
         male{"Мъж"}\r
         math_symbols{"Математически символи"}\r
-        middle_eastern_scripts{"СÑ\80едноевÑ\80опейÑ\81ки писмени знаци"}\r
+        middle_eastern_scripts{"Ð\91лизкоизÑ\82оÑ\87ни писмени знаци"}\r
         miscellaneous{"Разни"}\r
         modern_scripts{"Модерни писмени знаци"}\r
         modifier{"Модификатори"}\r
@@ -1026,7 +1028,7 @@ bg{
         rightwards_arrows{"Сочещи надясно стрелки"}\r
         sign_standard_symbols{"Знак/стандартен символ"}\r
         small_form_variant{"Варианти на малки форми"}\r
-        smiley{"УÑ\81миÑ\85наÑ\82о Ð»Ð¸Ñ\86е"}\r
+        smiley{"Ð\95моÑ\82икони"}\r
         smileys_people{"Емотикони и хора"}\r
         south_asian_scripts{"Южноазиатски писмености"}\r
         southeast_asian_scripts{"Югоизточноазиатски писмени знаци"}\r
@@ -1042,7 +1044,7 @@ bg{
         vocalic_jamo{"Джамо за гласни"}\r
         weather{"Времето"}\r
         western_asian_scripts{"Западноазиатски писмени знаци"}\r
-        whitespace{"Ð\91ели Ð¿Ð¾Ð»ÐµÑ\82а"}\r
+        whitespace{"Ð\98нÑ\82еÑ\80вали"}\r
     }\r
     delimiters{\r
         alternateQuotationEnd{"“"}\r
@@ -1114,6 +1116,12 @@ bg{
         dayOfYear{\r
             dn{"ден от годината"}\r
         }\r
+        dayOfYear-narrow{\r
+            dn{"ден от г."}\r
+        }\r
+        dayOfYear-short{\r
+            dn{"ден от г."}\r
+        }\r
         dayperiod{\r
             dn{"пр.об./сл.об."}\r
         }\r
@@ -1507,7 +1515,7 @@ bg{
             }\r
         }\r
         second-short{\r
-            dn{"с"}\r
+            dn{"сек"}\r
             relativeTime{\r
                 future{\r
                     one{"след {0} сек"}\r
@@ -1801,6 +1809,12 @@ bg{
         weekdayOfMonth{\r
             dn{"работен ден от месеца"}\r
         }\r
+        weekdayOfMonth-narrow{\r
+            dn{"раб. ден от мес."}\r
+        }\r
+        weekdayOfMonth-short{\r
+            dn{"раб. ден от мес."}\r
+        }\r
         year{\r
             dn{"година"}\r
             relative{\r
index bc76f10dba5b4b181c6d5bbabedd78fc192669cc..d8e6b4e0e78058109ead388ffc3f1df14e22cddd 100644 (file)
@@ -20,6 +20,10 @@ bn{
         "ফ ব ভ ম য র ল শ ষ স হ]"\r
     }\r
     ExemplarCharactersNumbers{"[\\- , . % ‰ + 0০ 1১ 2২ 3৩ 4৪ 5৫ 6৬ 7৭ 8৮ 9৯]"}\r
+    ExemplarCharactersPunctuation{\r
+        "[\\- ‐ – — , ; \\: ! ? . … ' ‘ ’ \u0022 “ ” ( ) \\[ \\] § @ * / \\& # † ‡ ′ "\r
+        "″]"\r
+    }\r
     MoreInformation{"?"}\r
     NumberElements{\r
         beng{\r
@@ -46,7 +50,9 @@ bn{
         default{"beng"}\r
         latn{\r
             miscPatterns{\r
+                approximately{"~{0}"}\r
                 atLeast{"{0}+"}\r
+                atMost{"≤{0}"}\r
                 range{"{0}–{1}"}\r
             }\r
             patterns{\r
@@ -241,7 +247,7 @@ bn{
         minimumGroupingDigits{"1"}\r
         native{"beng"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.91"}\r
     calendar{\r
         buddhist{\r
             eras{\r
@@ -753,7 +759,7 @@ bn{
                         "বুঃ",\r
                         "বৃঃ",\r
                         "শুঃ",\r
-                        "শà§\8bà¦\83",\r
+                        "শনি",\r
                     }\r
                     wide{\r
                         "রবিবার",\r
@@ -798,7 +804,7 @@ bn{
                         "সোমবার",\r
                         "মঙ্গলবার",\r
                         "বুধবার",\r
-                        "বà§\83হষ্পতিবার",\r
+                        "বà§\83হস্পতিবার",\r
                         "শুক্রবার",\r
                         "শনিবার",\r
                     }\r
@@ -1070,10 +1076,10 @@ bn{
             quarters{\r
                 format{\r
                     abbreviated{\r
-                        "Q1",\r
-                        "Q2",\r
-                        "Q3",\r
-                        "Q4",\r
+                        "ত্রৈমাসিক",\r
+                        "দ্বিতীয় ত্রৈমাসিক",\r
+                        "তৃতীয় ত্রৈমাসিক",\r
+                        "চতুর্থ ত্রৈমাসিক",\r
                     }\r
                     narrow{\r
                         "১",\r
@@ -1482,6 +1488,20 @@ bn{
             }\r
             monthNames{\r
                 format{\r
+                    abbreviated{\r
+                        "মহররম",\r
+                        "সফর",\r
+                        "রবিউল আউয়াল",\r
+                        "রবিউস সানি",\r
+                        "জমাদিউল আউয়াল",\r
+                        "জমাদিউস সানি",\r
+                        "রজব",\r
+                        "শা‘বান",\r
+                        "রমজান",\r
+                        "শাওয়াল",\r
+                        "জ্বিলকদ",\r
+                        "জ্বিলহজ্জ",\r
+                    }\r
                     narrow{\r
                         "১",\r
                         "২",\r
@@ -1512,6 +1532,20 @@ bn{
                     }\r
                 }\r
                 stand-alone{\r
+                    abbreviated{\r
+                        "মহররম",\r
+                        "সফর",\r
+                        "রবিউল আউয়াল",\r
+                        "রবিউস সানি",\r
+                        "জমাদিউল আউয়াল",\r
+                        "জমাদিউস সানি",\r
+                        "রজব",\r
+                        "শা‘বান",\r
+                        "রমজান",\r
+                        "শাওয়াল",\r
+                        "জ্বিলকদ",\r
+                        "জ্বিলহজ্জ",\r
+                    }\r
                     narrow{\r
                         "১",\r
                         "২",\r
@@ -2617,4 +2651,36 @@ bn{
         US{"ইউ এস"}\r
         metric{"মেট্রিক"}\r
     }\r
+    parse{\r
+        date{\r
+            lenient{\r
+                "[\\--/]",\r
+                "[\\:∶]",\r
+            }\r
+        }\r
+        general{\r
+            lenient{\r
+                "[.․。︒﹒.。]",\r
+                "['ʼ՚᾽᾿’']",\r
+                "[%٪﹪%]",\r
+                "[؉‰]",\r
+                "[\$﹩$$]",\r
+                "[£₤]",\r
+                "[¥¥]",\r
+                "[₩₩]",\r
+                "[₨₹{Rp}{Rs}]",\r
+            }\r
+        }\r
+        number{\r
+            lenient{\r
+                "[\\-‒⁻₋−➖﹣-]",\r
+                "[,،٫、︐︑﹐﹑,、]",\r
+                "[+⁺₊➕﬩﹢+]",\r
+            }\r
+            stricter{\r
+                "[,٫︐﹐,]",\r
+                "[.․﹒.。]",\r
+            }\r
+        }\r
+    }\r
 }\r
index a224b70cecd723b1a5e244f3c8a3c05737649102..4650035d2a4b416ed4310cff2e0998cf3bf93bff 100644 (file)
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 bn_IN{\r
-    Version{"2.1.38.69"}\r
+    Version{"2.1.43.65"}\r
 }\r
index 8d8957f041bb6b9fbc7b9e0d6bb780ee9e61b427..35bc59f3b6c1f5ad05f210de91496ea7f0fbd478 100644 (file)
@@ -13,6 +13,7 @@ br{
     ExemplarCharacters{"[a b {ch} {cʼh} d e ê f g h i j k l m n ñ o p r s t u ù v w x y z]"}\r
     ExemplarCharactersIndex{"[A B C D E F G H I J K L M N O P R S T U V W X Y Z]"}\r
     ExemplarCharactersNumbers{"[  \\- , % ‰ + 0 1 2 3 4 5 6 7 8 9]"}\r
+    ExemplarCharactersPunctuation{"[\\- , ; \\: ! ? . ( ) \\[ \\] \\{ \\}]"}\r
     MoreInformation{"?"}\r
     NumberElements{\r
         arab{\r
@@ -145,7 +146,7 @@ br{
         }\r
         latn{\r
             miscPatterns{\r
-                atLeast{"⩾{0}"}\r
+                atLeast{"â\89¥{0}"}\r
                 range{"{0}–{1}"}\r
             }\r
             patterns{\r
@@ -550,7 +551,7 @@ br{
             }\r
         }\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.91"}\r
     calendar{\r
         buddhist{\r
             DateTimePatterns{\r
@@ -4105,6 +4106,7 @@ br{
                     "Taishō",\r
                     "Shōwa",\r
                     "Heisei",\r
+                    "Qqqq",\r
                 }\r
                 narrow{\r
                     "Taika (645–650)",\r
@@ -4343,6 +4345,7 @@ br{
                     "T",\r
                     "S",\r
                     "H",\r
+                    "Q",\r
                 }\r
                 wide{\r
                     "Taika (645–650)",\r
@@ -4581,6 +4584,7 @@ br{
                     "Taishō",\r
                     "Shōwa",\r
                     "Heisei",\r
+                    "Qqqq",\r
                 }\r
             }\r
             intervalFormats{\r
@@ -5080,6 +5084,12 @@ br{
         dayperiod{\r
             dn{"AM/GM"}\r
         }\r
+        dayperiod-narrow{\r
+            dn{"AM/GM"}\r
+        }\r
+        dayperiod-short{\r
+            dn{"AM/GM"}\r
+        }\r
         era{\r
             dn{"amzervezh"}\r
         }\r
@@ -5950,8 +5960,13 @@ br{
         general{\r
             lenient{\r
                 "[.․。︒﹒.。]",\r
+                "['ʼ՚᾽᾿’']",\r
+                "[%٪﹪%]",\r
+                "[؉‰]",\r
                 "[\$﹩$$]",\r
                 "[£₤]",\r
+                "[¥¥]",\r
+                "[₩₩]",\r
                 "[₨₹{Rp}{Rs}]",\r
             }\r
         }\r
index 67ab36a6554b1686861952e0e82ec1a3f76b2eda..185f59af9a2b0917a836f701c9bdd15757c84937 100644 (file)
@@ -36,7 +36,7 @@ brx{
         }\r
         native{"deva"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.41.34"}\r
     calendar{\r
         generic{\r
             DateTimePatterns{\r
index 686dc34b9263f16227fb86b46f15357b02420e7e..ce7bd9e406eaaef99afb8cd48da198ba314dac71 100644 (file)
@@ -17,7 +17,9 @@ bs{
         default{"latn"}\r
         latn{\r
             miscPatterns{\r
+                approximately{"~{0}"}\r
                 atLeast{"{0}+"}\r
+                atMost{"≤{0}"}\r
                 range{"{0} – {1}"}\r
             }\r
             patterns{\r
@@ -231,10 +233,20 @@ bs{
                 timeSeparator{":"}\r
             }\r
         }\r
+        minimalPairs{\r
+            ordinal{\r
+                other{"Skrenite na {0}. križanju desno."}\r
+            }\r
+            plural{\r
+                few{"{0} sata"}\r
+                one{"{0} sat"}\r
+                other{"{0} sati"}\r
+            }\r
+        }\r
         minimumGroupingDigits{"1"}\r
         native{"latn"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.88"}\r
     calendar{\r
         generic{\r
             DateTimePatterns{\r
@@ -366,8 +378,8 @@ bs{
                 "popodne",\r
             }\r
             AmPmMarkersAbbr{\r
-                "prijepodne",\r
-                "popodne",\r
+                "AM",\r
+                "PM",\r
             }\r
             AmPmMarkersNarrow{\r
                 "prijepodne",\r
@@ -381,7 +393,7 @@ bs{
                 "EEEE, d. MMMM y.",\r
                 "d. MMMM y.",\r
                 "d. MMM y.",\r
-                "d.M.yy.",\r
+                "d. M. y.",\r
                 "{1} {0}",\r
                 "{1} 'u' {0}",\r
                 "{1} 'u' {0}",\r
@@ -445,9 +457,9 @@ bs{
                 yQQQ{"QQQ y."}\r
                 yQQQQ{"QQQQ y."}\r
                 yw{\r
-                    few{"w. 'sedmica' 'u' y."}\r
-                    one{"w. 'sedmica' 'u' y."}\r
-                    other{"w. 'sedmica' 'u' y."}\r
+                    few{"w. 'sedmica' 'u' Y."}\r
+                    one{"w. 'sedmica' 'u' Y."}\r
+                    other{"w. 'sedmica' 'u' Y."}\r
                 }\r
             }\r
             dayNames{\r
@@ -558,13 +570,13 @@ bs{
                 stand-alone{\r
                     abbreviated{\r
                         afternoon1{"poslijepodne"}\r
-                        am{"prijepodne"}\r
+                        am{"AM"}\r
                         evening1{"navečer"}\r
                         midnight{"ponoć"}\r
                         morning1{"ujutro"}\r
                         night1{"po noći"}\r
                         noon{"podne"}\r
-                        pm{"popodne"}\r
+                        pm{"PM"}\r
                     }\r
                     narrow{\r
                         afternoon1{"poslijepodne"}\r
@@ -593,6 +605,10 @@ bs{
                     "p. n. e.",\r
                     "n. e.",\r
                 }\r
+                abbreviated%variant{\r
+                    "p.n.e.",\r
+                    "n.e.",\r
+                }\r
                 narrow{\r
                     "p.n.e.",\r
                     "n.e.",\r
@@ -601,6 +617,10 @@ bs{
                     "prije nove ere",\r
                     "nove ere",\r
                 }\r
+                wide%variant{\r
+                    "P.n.e.",\r
+                    "Nove ere",\r
+                }\r
             }\r
             intervalFormats{\r
                 H{\r
@@ -707,7 +727,7 @@ bs{
                         "maj",\r
                         "jun",\r
                         "jul",\r
-                        "avg",\r
+                        "aug",\r
                         "sep",\r
                         "okt",\r
                         "nov",\r
@@ -735,7 +755,7 @@ bs{
                         "maj",\r
                         "juni",\r
                         "juli",\r
-                        "avgust",\r
+                        "august",\r
                         "septembar",\r
                         "oktobar",\r
                         "novembar",\r
@@ -751,7 +771,7 @@ bs{
                         "maj",\r
                         "jun",\r
                         "jul",\r
-                        "avg",\r
+                        "aug",\r
                         "sep",\r
                         "okt",\r
                         "nov",\r
@@ -779,7 +799,7 @@ bs{
                         "maj",\r
                         "juni",\r
                         "juli",\r
-                        "avgust",\r
+                        "august",\r
                         "septembar",\r
                         "oktobar",\r
                         "novembar",\r
index b7093a704997e7ea15e137c339efcb04e086e52f..d43fb803ea6b7fbcea7ea642808e33cd03eaac5e 100644 (file)
@@ -166,7 +166,7 @@ bs_Cyrl{
             }\r
         }\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.41.34"}\r
     calendar{\r
         buddhist{\r
             eras{\r
@@ -1035,6 +1035,7 @@ bs_Cyrl{
                     "Таишо",\r
                     "Шова",\r
                     "Хаисеи",\r
+                    "Qqqq",\r
                 }\r
             }\r
         }\r
index ff4f50cd274b2c436099a722e6dea8710c7bc269..239d7051f30015d2f311855966b96219d090af49 100644 (file)
@@ -22,7 +22,9 @@ ca{
         default{"latn"}\r
         latn{\r
             miscPatterns{\r
+                approximately{"~{0}"}\r
                 atLeast{"≥ {0}"}\r
+                atMost{"≤{0}"}\r
                 range{"{0}-{1}"}\r
             }\r
             patterns{\r
@@ -99,8 +101,8 @@ ca{
                         other{"000m ¤"}\r
                     }\r
                     1000000{\r
-                        one{"0M ¤"}\r
-                        other{"0M ¤"}\r
+                        one{"0 M ¤"}\r
+                        other{"0 M ¤"}\r
                     }\r
                     10000000{\r
                         one{"00 M ¤"}\r
@@ -123,8 +125,8 @@ ca{
                         other{"000mM ¤"}\r
                     }\r
                     1000000000000{\r
-                        one{"0B ¤"}\r
-                        other{"0B ¤"}\r
+                        one{"0 B ¤"}\r
+                        other{"0 B ¤"}\r
                     }\r
                     10000000000000{\r
                         one{"00 B ¤"}\r
@@ -149,8 +151,8 @@ ca{
                         other{"000m"}\r
                     }\r
                     1000000{\r
-                        one{"0M"}\r
-                        other{"0M"}\r
+                        one{"0 M"}\r
+                        other{"0 M"}\r
                     }\r
                     10000000{\r
                         one{"00 M"}\r
@@ -173,8 +175,8 @@ ca{
                         other{"000mM"}\r
                     }\r
                     1000000000000{\r
-                        one{"0B"}\r
-                        other{"0B"}\r
+                        one{"0 B"}\r
+                        other{"0 B"}\r
                     }\r
                     10000000000000{\r
                         one{"00 B"}\r
@@ -216,7 +218,7 @@ ca{
         minimumGroupingDigits{"1"}\r
         native{"latn"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.65"}\r
     calendar{\r
         buddhist{\r
             DateTimePatterns{\r
@@ -527,13 +529,13 @@ ca{
                 "H:mm:ss z",\r
                 "H:mm:ss",\r
                 "H:mm",\r
-                "EEEE d MMMM 'de' y G",\r
+                "EEEE, d MMMM 'de' y G",\r
                 "d MMMM 'de' y G",\r
                 "d/M/y G",\r
                 "d/M/yy GGGGG",\r
                 "{1}, {0}",\r
-                "{1}, {0}",\r
-                "{1}, {0}",\r
+                "{1} 'a' 'les' {0}",\r
+                "{1} 'a' 'les' {0}",\r
                 "{1}, {0}",\r
                 "{1}, {0}",\r
             }\r
@@ -560,7 +562,7 @@ ca{
                 Hm{"H:mm"}\r
                 Hms{"H:mm:ss"}\r
                 M{"L"}\r
-                MEd{"E d/M"}\r
+                MEd{"E, d/M"}\r
                 MMM{"LLL"}\r
                 MMMEd{"E, d MMM"}\r
                 MMMMEd{"E, d MMMM"}\r
@@ -575,7 +577,7 @@ ca{
                 y{"y G"}\r
                 yyyy{"y G"}\r
                 yyyyM{"M/y G"}\r
-                yyyyMEd{"E, d.M.y G"}\r
+                yyyyMEd{"E, d/M/y GGGGG"}\r
                 yyyyMMM{"LLL y G"}\r
                 yyyyMMMEd{"E, d MMM y G"}\r
                 yyyyMMMM{"LLLL 'de' y G"}\r
@@ -605,8 +607,8 @@ ca{
                     M{"M–M"}\r
                 }\r
                 MEd{\r
-                    M{"E d/M – E d/M"}\r
-                    d{"E d/M – E d/M"}\r
+                    M{"E, d/M – E, d/M"}\r
+                    d{"E, d/M – E, d/M"}\r
                 }\r
                 MMM{\r
                     M{"MMM–MMM"}\r
@@ -649,22 +651,22 @@ ca{
                     y{"y–y G"}\r
                 }\r
                 yM{\r
-                    M{"M/y – M/y GGGG"}\r
-                    y{"M/y – M/y GGGG"}\r
+                    M{"M/y – M/y GGGGG"}\r
+                    y{"M/y – M/y GGGGG"}\r
                 }\r
                 yMEd{\r
-                    M{"E d/M/y – E d/M/y GGGG"}\r
-                    d{"E d/M/y – E d/M/y GGGG"}\r
-                    y{"E d/M/y – E d/M/y GGGG"}\r
+                    M{"E, d/M/y – E, d/M/y GGGGG"}\r
+                    d{"E, d/M/y – E, d/M/y GGGGG"}\r
+                    y{"E, d/M/y – E, d/M/y GGGGG"}\r
                 }\r
                 yMMM{\r
-                    M{"LLL–LLL y G"}\r
+                    M{"MMM–MMM y G"}\r
                     y{"MMM 'de' y – MMM 'de' y G"}\r
                 }\r
                 yMMMEd{\r
-                    M{"E d MMM – E d MMM 'de' y G"}\r
-                    d{"E d MMM – E d MMM 'de' y G"}\r
-                    y{"E d MMM 'de' y – E d MMM 'de' y G"}\r
+                    M{"E, d MMM – E, d MMM 'de' y G"}\r
+                    d{"E, d MMM – E, d MMM 'de' y G"}\r
+                    y{"E, d MMM 'de' y – E, d MMM 'de' y G"}\r
                 }\r
                 yMMMM{\r
                     M{"MMMM–MMMM 'de' y G"}\r
@@ -686,9 +688,9 @@ ca{
                     y{"d MMM 'de' y – d MMM 'de' y G"}\r
                 }\r
                 yMd{\r
-                    M{"d/M/y – d/M/y GGGG"}\r
-                    d{"d/M/y – d/M/y GGGG"}\r
-                    y{"d/M/y – d/M/y GGGG"}\r
+                    M{"d/M/y – d/M/y GGGGG"}\r
+                    d{"d/M/y – d/M/y GGGGG"}\r
+                    y{"d/M/y – d/M/y GGGGG"}\r
                 }\r
             }\r
         }\r
@@ -949,8 +951,8 @@ ca{
                     "després de Crist",\r
                 }\r
                 wide%variant{\r
-                    "abans de l’Era Comuna",\r
-                    "Era Comuna",\r
+                    "abans de l’era cristiana",\r
+                    "era cristiana",\r
                 }\r
             }\r
             intervalFormats{\r
@@ -958,8 +960,8 @@ ca{
                     H{"H–H"}\r
                 }\r
                 Hm{\r
-                    H{"H:mm – H:mm"}\r
-                    m{"H:mm – H:mm"}\r
+                    H{"H:mmH:mm"}\r
+                    m{"H:mmH:mm"}\r
                 }\r
                 Hmv{\r
                     H{"H:mm–H:mm v"}\r
@@ -972,8 +974,8 @@ ca{
                     M{"M–M"}\r
                 }\r
                 MEd{\r
-                    M{"E d/M – E d/M"}\r
-                    d{"E d/M – E d/M"}\r
+                    M{"E, d/M – E, d/M"}\r
+                    d{"E, d/M – E, d/M"}\r
                 }\r
                 MMM{\r
                     M{"LLL – LLL"}\r
@@ -1020,9 +1022,9 @@ ca{
                     y{"M/y – M/y"}\r
                 }\r
                 yMEd{\r
-                    M{"E d/M/y – E d/M/y"}\r
-                    d{"E d/M/y – E d/M/y"}\r
-                    y{"E d/M/y – E d/M/y"}\r
+                    M{"E, d/M/y – E, d/M/y"}\r
+                    d{"E, d/M/y – E, d/M/y"}\r
+                    y{"E, d/M/y – E, d/M/y"}\r
                 }\r
                 yMMM{\r
                     M{"LLL–LLL y"}\r
@@ -1316,8 +1318,8 @@ ca{
                 "dd/MM/y G",\r
                 "dd/MM/y GGGGG",\r
                 "{1}, {0}",\r
-                "{1}, {0}",\r
-                "{1}, {0}",\r
+                "{1} 'a' 'les' {0}",\r
+                "{1} 'a' 'les' {0}",\r
                 "{1}, {0}",\r
                 "{1}, {0}",\r
             }\r
@@ -1334,7 +1336,7 @@ ca{
         african_scripts{"escriptures africanes"}\r
         american_scripts{"escriptures americanes"}\r
         animal{"animal"}\r
-        animals_nature{"animals i natura"}\r
+        animals_nature{"animals/natura"}\r
         arrows{"fletxes"}\r
         body{"cos"}\r
         box_drawing{"escriptura en quadre"}\r
@@ -1349,7 +1351,7 @@ ca{
         divination_symbols{"símbols astrològics"}\r
         downwards_arrows{"fletxes cap avall"}\r
         downwards_upwards_arrows{"fletxes avall i amunt"}\r
-        east_asian_scripts{"escriptures de l’Àsia Oriental"}\r
+        east_asian_scripts{"escriptures de l’Àsia oriental"}\r
         emoji{"emoji"}\r
         european_scripts{"escriptures europees"}\r
         female{"femení"}\r
@@ -1400,21 +1402,21 @@ ca{
         sign_standard_symbols{"signes/símbols estàndard"}\r
         small_form_variant{"formes variants petites"}\r
         smiley{"emoticona"}\r
-        smileys_people{"emoticones i gent"}\r
-        south_asian_scripts{"escriptures de l’Àsia Meridional"}\r
-        southeast_asian_scripts{"escriptures de l’Àsia Sud-oriental"}\r
+        smileys_people{"emoticones/persones"}\r
+        south_asian_scripts{"escriptures de l’Àsia meridional"}\r
+        southeast_asian_scripts{"escriptures de l’Àsia sud-oriental"}\r
         spacing{"espaiat"}\r
         sport{"esport"}\r
         symbols{"símbols"}\r
         technical_symbols{"símbols tècnics"}\r
         tone_marks{"marques tonals"}\r
         travel{"viatge"}\r
-        travel_places{"viatges i llocs"}\r
+        travel_places{"viatges/llocs"}\r
         upwards_arrows{"fletxes amunt"}\r
         variant_forms{"formes variants"}\r
         vocalic_jamo{"jamo vocàlic"}\r
         weather{"temps"}\r
-        western_asian_scripts{"escriptures de l’Àsia Sud-occidental"}\r
+        western_asian_scripts{"escriptures de l’Àsia sud-occidental"}\r
         whitespace{"espai en blanc"}\r
     }\r
     contextTransforms{\r
@@ -2152,7 +2154,7 @@ ca{
                 "0"{"aquesta setm."}\r
                 "1"{"setm. vinent"}\r
             }\r
-            relativePeriod{"la setmana del {0}"}\r
+            relativePeriod{"la setmana de: {0}"}\r
             relativeTime{\r
                 future{\r
                     one{"d’aquí a {0} setm."}\r
@@ -2171,7 +2173,7 @@ ca{
                 "0"{"aquesta setm."}\r
                 "1"{"la setm. que ve"}\r
             }\r
-            relativePeriod{"la setmana del {0}"}\r
+            relativePeriod{"la setmana de: {0}"}\r
             relativeTime{\r
                 future{\r
                     one{"d’aquí a {0} setm."}\r
@@ -2327,8 +2329,13 @@ ca{
         general{\r
             lenient{\r
                 "[.․。︒﹒.。]",\r
+                "['ʼ՚᾽᾿’']",\r
+                "[%٪﹪%]",\r
+                "[؉‰]",\r
                 "[\$﹩$$]",\r
                 "[£₤]",\r
+                "[¥¥]",\r
+                "[₩₩]",\r
                 "[₨₹{Rp}{Rs}]",\r
             }\r
         }\r
index 3a2a7b2da2003d14add62ebb6414cb4d770e9ee7..0ccbf01614478976add016ccac2f4f7583704f4b 100644 (file)
@@ -71,7 +71,7 @@ ccp{
         minimumGroupingDigits{"1"}\r
         native{"cakm"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.50"}\r
     calendar{\r
         generic{\r
             DateTimePatterns{\r
index f00c3d097d71474504053fc7dc83760ae5ae7ca4..0cfd4aea06db0213c5fd021eb1436fd04f1189e1 100644 (file)
@@ -193,7 +193,7 @@ ce{
         }\r
         minimumGroupingDigits{"1"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.41.34"}\r
     calendar{\r
         generic{\r
             DateTimePatterns{\r
index c2904dd449e164e907d9d66230d79eb1a1aeb021..21eebaf8299993d9ee18d3fb15f7fa356a9fb58f 100644 (file)
@@ -213,7 +213,7 @@ chr{
         minimumGroupingDigits{"1"}\r
         native{"latn"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.2"}\r
     calendar{\r
         generic{\r
             DateTimePatterns{\r
@@ -801,10 +801,10 @@ chr{
         box_drawing{"ᎧᏁᏌᎢ ᏓᎵᎶᏍᏗᎭ"}\r
         braille{"ᏗᏂᎨᏩ ᏧᏂᎪᎵᏰᏙᏗ"}\r
         building{"ᎠᏓᏁᎸ"}\r
-        bullets_stars{"ᎦᏂ/ᏃᏈᏏ"}\r
+        bullets_stars{"ᎦᏂ ᎠᎴ ᏃᏈᏏ"}\r
         consonantal_jamo{"ᎤᏃᏴᎩ ᏱᎦᏪᏍᏗᎢ ᏣᎼ"}\r
         currency_symbols{"ᎠᏕᎳ ᏗᏟᎶᏍᏙᏗ"}\r
-        dash_connector{"ᏍᏆᎳ ᎦᏅᎩ ᎠᏍᏓᏅᏅ/ᎫᏓᎸᏙᏗ"}\r
+        dash_connector{"ᏍᏆᎳ ᎦᏅᎩ ᎠᏍᏓᏅᏅ ᎠᎴ ᎫᏓᎸᏙᏗ"}\r
         digits{"ᏗᏎᏍᏗ"}\r
         dingbats{"ᏗᎩ ᏗᎪᏍᏛᏂᏍᏗ"}\r
         divination_symbols{"ᎠᏕᎶᎰᎯᏍᏗ ᏗᏟᎶᏍᏙᏗ"}\r
@@ -816,12 +816,12 @@ chr{
         female{"ᎠᎨᏯ"}\r
         flag{"ᎦᏓᏗ"}\r
         flags{"ᏗᎦᏓᏘ"}\r
-        food_drink{"ᎠᎩᏍᏗ ᎠᎴ ᎠᏗᏔᏍᏘ"}\r
+        food_drink{"ᎠᎩᏍᏗ & ᎠᏗᏔᏍᏘ"}\r
         format{"ᏱᎬᏁᎸᎯ"}\r
-        format_whitespace{"ᏱᎬᏁᎸᎯ ᎠᎴ ᎤᏁᎬ ᎤᏜᏅᏛᎯ"}\r
+        format_whitespace{"ᏱᎬᏁᎸᎯ & ᎤᏁᎬ ᎤᏜᏅᏛᎯ"}\r
         full_width_form_variant{"ᎧᎵ-ᎾᏯᏛᎡᏍᏗ ᎤᏙᏢᏒ ᏂᏓᏓᎴᎬᎾ"}\r
         geometric_shapes{"ᏗᏎᏍᏗ ᏄᏍᏛ ᏚᏙᏢᏒᎢ"}\r
-        half_width_form_variant{"ᎾᏯᏛᎡᏍᏗ ᎤᏙᏢᏒ ᏂᏓᏓᎴᎬᎾ"}\r
+        half_width_form_variant{"ᎾᏯᏛᎡᏍᏗ-ᎤᏙᏢᏒ ᏂᏓᏓᎴᎬᎾ"}\r
         han_characters{"ᎭᎾ ᏧᏃᏰᎩ"}\r
         han_radicals{"ᎭᎾ ᏗᎵᏍᏗᏍᎩ"}\r
         hanja{"ᎭᎾᏧ"}\r
@@ -837,7 +837,7 @@ chr{
         leftwards_arrows{"ᎠᎦᏍᎦᏂ ᏗᎦᏟᏓ"}\r
         leftwards_rightwards_arrows{"ᎠᎦᏍᎦᏂ ᎠᎦᏘᏏᏃ ᏗᎦᏟᏓ"}\r
         letterlike_symbols{"ᎠᏪᎵ ᏫᎦᏅᏗ ᎢᏳᏍᏗ ᏗᏟᎶᏍᏙᏗ"}\r
-        limited_use{"ᏩᏎᎸᎯ ᎬᏙᏗ"}\r
+        limited_use{"ᏩᏎᎸᎯ-ᎬᏙᏗ"}\r
         male{"ᎠᏍᎦᏯ"}\r
         math_symbols{"ᏗᏎᏍᏗ ᏗᏟᎶᏍᏙᏗ"}\r
         middle_eastern_scripts{"ᎠᏰᏟ ᏗᎧᎸᎬ ᏗᏜ ᏗᎧᏁᎢᏍᏗ"}\r
@@ -858,7 +858,7 @@ chr{
         plant{"ᏤᎶᎯ"}\r
         punctuation{"ᏧᏓᎴᏅᏓ ᏗᏙᏪᎵᏍᎩ ᏗᎬᏙᏗ"}\r
         rightwards_arrows{"ᎠᎦᏘᏏ ᏗᎦᏟᏓ"}\r
-        sign_standard_symbols{"ᎪᏪᎶᏗ/ᎤᏠᏱᎭᏬ ᏗᏟᎶᏍᏙᏗ"}\r
+        sign_standard_symbols{"ᎪᏪᎶᏗ ᎠᎴ ᎤᏠᏱᎭᏬ ᏗᏟᎶᏍᏙᏗ"}\r
         small_form_variant{"ᏧᏍᏗ ᎤᏙᏢᏒ ᏂᏓᏓᎴᎬᎾ"}\r
         smiley{"ᎤᏤᏣᏍᏗ"}\r
         smileys_people{"ᏓᏰᏍᏗᏍᎬ ᎠᎴ ᎠᏂᏴᏫ"}\r
@@ -907,7 +907,7 @@ chr{
             dn{"ᎢᎦ"}\r
             relativeTime{\r
                 future{\r
-                    one{"á\8e¾á\8e¿ {0} á\8e¯á\8e¸á\8f\8dá\8e© á\8f§á\8f\92á\8e¯á\8f\9b"}\r
+                    one{"á\8e¾á\8e¿ {0} á\8e¢á\8e¦"}\r
                     other{"ᎾᎿ {0} ᎯᎸᏍᎩ ᏧᏒᎯᏛ"}\r
                 }\r
                 past{\r
@@ -964,8 +964,8 @@ chr{
             }\r
             relativeTime{\r
                 future{\r
-                    one{"ᎾᎿ {0} ᏧᎾᎩᎶᏍᏗ ᎢᎦ"}\r
-                    other{"ᎾᎿ {0} ᏧᎾᎩᎶᏍᏗ ᎢᎦ"}\r
+                    one{"ᎾᎿ {0} ᏧᎾᎩᎶᏍᏗ"}\r
+                    other{"ᎾᎿ {0} ᏧᎾᎩᎶᏍᏗ"}\r
                 }\r
                 past{\r
                     one{"{0} ᏧᎾᎩᎶᏍᏗ ᏥᎨᏒ"}\r
@@ -981,12 +981,12 @@ chr{
             }\r
             relativeTime{\r
                 future{\r
-                    one{"ᎾᎿ {0} ᏧᎾᎩᎶᏍᏗ ᎢᎦ"}\r
-                    other{"ᎾᎿ {0} ᏧᎾᎩᎶᏍᏗ ᎢᎦ"}\r
+                    one{"ᎾᎿ {0} Ꮷ"}\r
+                    other{"ᎾᎿ {0} Ꮷ"}\r
                 }\r
                 past{\r
-                    one{"{0} ᏧᎾᎩᎶᏍᏗ ᏥᎨᏒ"}\r
-                    other{"{0} ᏧᎾᎩᎶᏍᏗ ᏥᎨᏒ"}\r
+                    one{"{0} Ꮷ ᏥᎨᏒ"}\r
+                    other{"{0} Ꮷ ᏥᎨᏒ"}\r
                 }\r
             }\r
         }\r
@@ -998,12 +998,12 @@ chr{
             }\r
             relativeTime{\r
                 future{\r
-                    one{"ᎾᎿ {0} ᏧᎾᎩᎶᏍᏗ ᎢᎦ"}\r
-                    other{"ᎾᎿ {0} ᏧᎾᎩᎶᏍᏗ ᎢᎦ"}\r
+                    one{"ᎾᎿ {0} ᏧᎾᎩ."}\r
+                    other{"ᎾᎿ {0} ᏧᎾᎩ."}\r
                 }\r
                 past{\r
-                    one{"{0} ᏧᎾᎩᎶᏍᏗ ᏥᎨᏒ"}\r
-                    other{"{0} ᏧᎾᎩᎶᏍᏗ ᏥᎨᏒ"}\r
+                    one{"{0} ᏧᎾᎩ. ᏥᎨᏒ"}\r
+                    other{"{0} ᏧᎾᎩ. ᏥᎨᏒ"}\r
                 }\r
             }\r
         }\r
@@ -1031,8 +1031,8 @@ chr{
                     other{"ᎾᎿ {0} ᏑᏟ."}\r
                 }\r
                 past{\r
-                    one{"ᎾᎿ {0} ᏑᏟ. ᏥᎨᏒ"}\r
-                    other{"ᎾᎿ {0} ᏑᏟ. ᏥᎨᏒ"}\r
+                    one{"{0} ᏑᏟ. ᏥᎨᏒ"}\r
+                    other{"{0} ᏑᏟ. ᏥᎨᏒ"}\r
                 }\r
             }\r
         }\r
@@ -1044,8 +1044,8 @@ chr{
                     other{"ᎾᎿ {0} ᏑᏟ."}\r
                 }\r
                 past{\r
-                    one{"ᎾᎿ {0} ᏑᏟ. ᏥᎨᏒ"}\r
-                    other{"ᎾᎿ {0} ᏑᏟ. ᏥᎨᏒ"}\r
+                    one{"{0} ᏑᏟ. ᏥᎨᏒ"}\r
+                    other{"{0} ᏑᏟ. ᏥᎨᏒ"}\r
                 }\r
             }\r
         }\r
@@ -1060,8 +1060,8 @@ chr{
                     other{"ᎾᎿ {0} ᎢᏯᏔᏬᏍᏔᏅ"}\r
                 }\r
                 past{\r
-                    one{"ᎾᎿ {0} ᎢᏯᏔᏬᏍᏔᏅ ᏥᎨᏒ"}\r
-                    other{"ᎾᎿ {0} ᎢᏯᏔᏬᏍᏔᏅ ᏥᎨᏒ"}\r
+                    one{"{0} ᎢᏯᏔᏬᏍᏔᏅ ᏥᎨᏒ"}\r
+                    other{"{0} ᎢᏯᏔᏬᏍᏔᏅ ᏥᎨᏒ"}\r
                 }\r
             }\r
         }\r
@@ -1073,8 +1073,8 @@ chr{
                     other{"ᎾᎿ {0} ᎢᏯᏔ."}\r
                 }\r
                 past{\r
-                    one{"ᎾᎿ {0} ᎢᏯᏔ. ᏥᎨᏒ"}\r
-                    other{"ᎾᎿ {0} ᎢᏯᏔ. ᏥᎨᏒ"}\r
+                    one{"{0} ᎢᏯᏔ. ᏥᎨᏒ"}\r
+                    other{"{0} ᎢᏯᏔ. ᏥᎨᏒ"}\r
                 }\r
             }\r
         }\r
@@ -1086,25 +1086,25 @@ chr{
                     other{"ᎾᎿ {0} ᎢᏯᏔ."}\r
                 }\r
                 past{\r
-                    one{"ᎾᎿ {0} ᎢᏯᏔ. ᏥᎨᏒ"}\r
-                    other{"ᎾᎿ {0} ᎢᏯᏔ. ᏥᎨᏒ"}\r
+                    one{"{0} ᎢᏯᏔ. ᏥᎨᏒ"}\r
+                    other{"{0} ᎢᏯᏔ. ᏥᎨᏒ"}\r
                 }\r
             }\r
         }\r
         mon{\r
             relative{\r
-                "-1"{"ᎤᎾᏙᏓᏉᏅ ᏥᎨᏒ"}\r
-                "0"{"ᎯᎠ ᎤᎾᏙᏓᏉᏅ"}\r
-                "1"{"ᏔᎵᏁ ᎤᎾᏙᏓᏉᏅ"}\r
+                "-1"{"ᎤᎾᏙᏓᏉᏅ ᏥᎨᏒ"}\r
+                "0"{"ᎯᎠ ᎤᎾᏙᏓᏉᏅ"}\r
+                "1"{"ᏔᎵᏁ ᎤᎾᏙᏓᏉᏅ"}\r
             }\r
             relativeTime{\r
                 future{\r
-                    one{"ᎾᎿ {0} ᎤᎾᏙᏓᏉᏅ"}\r
-                    other{"ᎾᎿ {0} ᎤᎾᏙᏓᏉᏅ"}\r
+                    one{"ᎾᎿ {0} ᎤᎾᏙᏓᏉᏅ"}\r
+                    other{"ᎾᎿ {0} ᎤᎾᏙᏓᏉᏅ"}\r
                 }\r
                 past{\r
-                    one{"{0} ᎤᎾᏙᏓᏉᏅ ᏥᎨᏒ"}\r
-                    other{"{0} ᎤᎾᏙᏓᏉᏅ ᏥᎨᏒ"}\r
+                    one{"{0} ᎤᎾᏙᏓᏉᏅ ᏥᎨᏒ"}\r
+                    other{"{0} ᎤᎾᏙᏓᏉᏅ ᏥᎨᏒ"}\r
                 }\r
             }\r
         }\r
@@ -1116,12 +1116,12 @@ chr{
             }\r
             relativeTime{\r
                 future{\r
-                    one{"á\8e¾á\8e¿ {0} á\8e¤á\8e¾á\8f\99á\8f\93á\8f\89á\8f\85"}\r
-                    other{"á\8e¾á\8e¿ {0} á\8e¤á\8e¾á\8f\99á\8f\93á\8f\89á\8f\85"}\r
+                    one{"á\8e¾á\8e¿ {0} á\8f\89"}\r
+                    other{"á\8e¾á\8e¿ {0} á\8f\89"}\r
                 }\r
                 past{\r
-                    one{"{0} á\8e¤á\8e¾á\8f\99á\8f\93á\8f\89á\8f\85 ᏥᎨᏒ"}\r
-                    other{"{0} á\8e¤á\8e¾á\8f\99á\8f\93á\8f\89á\8f\85 ᏥᎨᏒ"}\r
+                    one{"{0} á\8f\89 ᏥᎨᏒ"}\r
+                    other{"{0} á\8f\89 ᏥᎨᏒ"}\r
                 }\r
             }\r
         }\r
@@ -1133,12 +1133,12 @@ chr{
             }\r
             relativeTime{\r
                 future{\r
-                    one{"á\8e¾á\8e¿ {0} á\8e¤á\8e¾á\8f\99á\8f\93á\8f\89á\8f\85"}\r
-                    other{"á\8e¾á\8e¿ {0} á\8e¤á\8e¾á\8f\99á\8f\93á\8f\89á\8f\85"}\r
+                    one{"á\8e¾á\8e¿ {0} á\8f\89á\8f\85á\8e¯."}\r
+                    other{"á\8e¾á\8e¿ {0} á\8f\89á\8f\85á\8e¯."}\r
                 }\r
                 past{\r
-                    one{"{0} á\8e¤á\8e¾á\8f\99á\8f\93á\8f\89á\8f\85 ᏥᎨᏒ"}\r
-                    other{"{0} á\8e¤á\8e¾á\8f\99á\8f\93á\8f\89á\8f\85 ᏥᎨᏒ"}\r
+                    one{"{0} á\8f\89á\8f\85á\8e¯. ᏥᎨᏒ"}\r
+                    other{"{0} á\8f\89á\8f\85á\8e¯. ᏥᎨᏒ"}\r
                 }\r
             }\r
         }\r
@@ -1155,21 +1155,21 @@ chr{
                     other{"ᎾᎿ {0} ᏗᎧᎸᎢ"}\r
                 }\r
                 past{\r
-                    one{"ᎾᎿ {0} ᎧᎸᎢ ᏥᎨᏒ"}\r
-                    other{"ᎾᎿ {0} ᏗᎧᎸᎢ ᏥᎨᏒ"}\r
+                    one{"{0} ᎧᎸᎢ ᏥᎨᏒ"}\r
+                    other{"{0} ᏗᎧᎸᎢ ᏥᎨᏒ"}\r
                 }\r
             }\r
         }\r
         month-narrow{\r
-            dn{"ᎧᎸ"}\r
+            dn{"ᎧᎸ."}\r
             relativeTime{\r
                 future{\r
                     one{"ᎾᎿ {0} ᎧᎸ."}\r
                     other{"ᎾᎿ {0} ᎧᎸ."}\r
                 }\r
                 past{\r
-                    one{"ᎾᎿ {0} ᎧᎸ. ᏥᎨᏒ"}\r
-                    other{"ᎾᎿ {0} ᎧᎸ. ᏥᎨᏒ"}\r
+                    one{"{0} ᎧᎸ. ᏥᎨᏒ"}\r
+                    other{"{0} ᎧᎸ. ᏥᎨᏒ"}\r
                 }\r
             }\r
         }\r
@@ -1181,8 +1181,8 @@ chr{
                     other{"ᎾᎿ {0} ᎧᎸ."}\r
                 }\r
                 past{\r
-                    one{"ᎾᎿ {0} ᎧᎸ. ᏥᎨᏒ"}\r
-                    other{"ᎾᎿ {0} ᎧᎸ. ᏥᎨᏒ"}\r
+                    one{"{0} ᎧᎸ. ᏥᎨᏒ"}\r
+                    other{"{0} ᎧᎸ. ᏥᎨᏒ"}\r
                 }\r
             }\r
         }\r
@@ -1200,7 +1200,7 @@ chr{
                 }\r
                 past{\r
                     one{"ᎾᎿ {0} ᎩᏄᏙᏗ ᏥᎨᏒ"}\r
-                    other{"ᎾᎿ {0} ᎩᏄᏙᏗ ᏥᎨᏒ"}\r
+                    other{"{0} ᎩᏄᏙᏗ ᏥᎨᏒ"}\r
                 }\r
             }\r
         }\r
@@ -1212,8 +1212,8 @@ chr{
                     other{"ᎾᎿ {0} ᎩᏄᏘ."}\r
                 }\r
                 past{\r
-                    one{"ᎾᎿ {0} ᎩᏄᏘ. ᏥᎨᏒ"}\r
-                    other{"ᎾᎿ {0} ᎩᏄᏘ. ᏥᎨᏒ"}\r
+                    one{"{0} ᎩᏄᏘ. ᏥᎨᏒ"}\r
+                    other{"{0} ᎩᏄᏘ. ᏥᎨᏒ"}\r
                 }\r
             }\r
         }\r
@@ -1225,8 +1225,8 @@ chr{
                     other{"ᎾᎿ {0} ᎩᏄᏘ."}\r
                 }\r
                 past{\r
-                    one{"ᎾᎿ {0} ᎩᏄᏘ. ᏥᎨᏒ"}\r
-                    other{"ᎾᎿ {0} ᎩᏄᏘ. ᏥᎨᏒ"}\r
+                    one{"{0} ᎩᏄᏘ. ᏥᎨᏒ"}\r
+                    other{"{0} ᎩᏄᏘ. ᏥᎨᏒ"}\r
                 }\r
             }\r
         }\r
@@ -1238,12 +1238,12 @@ chr{
             }\r
             relativeTime{\r
                 future{\r
-                    one{"ᎾᎿ {0} ᎤᎾᏙᏓᏈᏕᎾ ᎢᎦ"}\r
-                    other{"ᎾᎿ {0} ᎤᎾᏙᏓᏈᏕᎾ ᎢᎦ"}\r
+                    one{"ᎾᎿ {0} ᎤᎾᏙᏓᏈᏕᎾ"}\r
+                    other{"ᎾᎿ {0} ᎤᎾᏙᏓᏈᏕᎾ"}\r
                 }\r
                 past{\r
-                    one{"{0} á\8e¤á\8e¾á\8f\99á\8f\93á\8f\88á\8e¨Ꮎ ᏥᎨᏒ"}\r
-                    other{"{0} á\8e¤á\8e¾á\8f\99á\8f\93á\8f\88á\8e¨Ꮎ ᏥᎨᏒ"}\r
+                    one{"{0} á\8e¤á\8e¾á\8f\99á\8f\93á\8f\88á\8f\95Ꮎ ᏥᎨᏒ"}\r
+                    other{"{0} á\8e¤á\8e¾á\8f\99á\8f\93á\8f\88á\8f\95Ꮎ ᏥᎨᏒ"}\r
                 }\r
             }\r
         }\r
@@ -1255,12 +1255,12 @@ chr{
             }\r
             relativeTime{\r
                 future{\r
-                    one{"á\8e¾á\8e¿ {0} á\8e¤á\8e¾á\8f\99á\8f\93á\8f\88á\8f\95á\8e¾ á\8e¢á\8e¦"}\r
-                    other{"á\8e¾á\8e¿ {0} á\8e¤á\8e¾á\8f\99á\8f\93á\8f\88á\8f\95á\8e¾ á\8e¢á\8e¦"}\r
+                    one{"á\8e¾á\8e¿ {0} á\8f\95á\8e¾"}\r
+                    other{"á\8e¾á\8e¿ {0} á\8f\95á\8e¾"}\r
                 }\r
                 past{\r
-                    one{"{0} á\8e¤á\8e¾á\8f\99á\8f\93á\8f\88á\8e¨Ꮎ ᏥᎨᏒ"}\r
-                    other{"{0} á\8e¤á\8e¾á\8f\99á\8f\93á\8f\88á\8e¨Ꮎ ᏥᎨᏒ"}\r
+                    one{"{0} á\8f\95Ꮎ ᏥᎨᏒ"}\r
+                    other{"{0} á\8f\95Ꮎ ᏥᎨᏒ"}\r
                 }\r
             }\r
         }\r
@@ -1272,12 +1272,12 @@ chr{
             }\r
             relativeTime{\r
                 future{\r
-                    one{"á\8e¾á\8e¿ {0} á\8e¤á\8e¾á\8f\99á\8f\93á\8f\88á\8f\95á\8e¾ á\8e¢á\8e¦"}\r
-                    other{"á\8e¾á\8e¿ {0} á\8e¤á\8e¾á\8f\99á\8f\93á\8f\88á\8f\95á\8e¾ á\8e¢á\8e¦"}\r
+                    one{"á\8e¾á\8e¿ {0} á\8f\88á\8f\95á\8e¾."}\r
+                    other{"á\8e¾á\8e¿ {0} á\8f\88á\8f\95á\8e¾."}\r
                 }\r
                 past{\r
-                    one{"{0} á\8e¤á\8e¾á\8f\99á\8f\93á\8f\88á\8e¨á\8e¾ ᏥᎨᏒ"}\r
-                    other{"{0} á\8e¤á\8e¾á\8f\99á\8f\93á\8f\88á\8e¨á\8e¾ ᏥᎨᏒ"}\r
+                    one{"{0} á\8f\88á\8f\95á\8e¾. ᏥᎨᏒ"}\r
+                    other{"{0} á\8f\88á\8f\95á\8e¾. ᏥᎨᏒ"}\r
                 }\r
             }\r
         }\r
@@ -1298,28 +1298,28 @@ chr{
             }\r
         }\r
         second-narrow{\r
-            dn{"ᎠᏎ."}\r
+            dn{"ᎠᏎ."}\r
             relativeTime{\r
                 future{\r
-                    one{"ᎾᎿ {0} ᎠᏎ."}\r
-                    other{"ᎾᎿ {0} ᎠᏎ."}\r
+                    one{"ᎾᎿ {0} ᎠᏎ."}\r
+                    other{"ᎾᎿ {0} ᎠᏎ."}\r
                 }\r
                 past{\r
-                    one{"{0} ᎠᏎ. ᏥᎨᏒ"}\r
-                    other{"{0} ᎠᏎ. ᏥᎨᏒ"}\r
+                    one{"{0} ᎠᏎ. ᏥᎨᏒ"}\r
+                    other{"{0} ᎠᏎ. ᏥᎨᏒ"}\r
                 }\r
             }\r
         }\r
         second-short{\r
-            dn{"ᎠᏎ."}\r
+            dn{"ᎠᏎ."}\r
             relativeTime{\r
                 future{\r
-                    one{"ᎾᎿ {0} ᎠᏎ."}\r
-                    other{"ᎾᎿ {0} ᎠᏎ."}\r
+                    one{"ᎾᎿ {0} ᎠᏎ."}\r
+                    other{"ᎾᎿ {0} ᎠᏎ."}\r
                 }\r
                 past{\r
-                    one{"{0} ᎠᏎ. ᏥᎨᏒ"}\r
-                    other{"{0} ᎠᏎ. ᏥᎨᏒ"}\r
+                    one{"{0} ᎠᏎ. ᏥᎨᏒ"}\r
+                    other{"{0} ᎠᏎ. ᏥᎨᏒ"}\r
                 }\r
             }\r
         }\r
@@ -1348,12 +1348,12 @@ chr{
             }\r
             relativeTime{\r
                 future{\r
-                    one{"á\8e¾á\8e¿ {0} á\8e¤á\8e¾á\8f\99á\8f\93á\8f\86á\8f\8dá\8e¬"}\r
-                    other{"á\8e¾á\8e¿ {0} á\8e¤á\8e¾á\8f\99á\8f\93á\8f\86á\8f\8dá\8e¬"}\r
+                    one{"ᎾᎿ {0} ᏍᎬ"}\r
+                    other{"ᎾᎿ {0} ᏍᎬ"}\r
                 }\r
                 past{\r
-                    one{"{0} á\8e¤á\8e¾á\8f\99á\8f\93á\8f\86á\8f\8dá\8e¬ á\8f¥á\8e¨á\8f\92"}\r
-                    other{"{0} á\8e¤á\8e¾á\8f\99á\8f\93á\8f\86á\8f\8dá\8e¬ á\8f¥á\8e¨á\8f\92"}\r
+                    one{"{0} ᏍᎬ ᏥᎨᏒ"}\r
+                    other{"{0} ᏍᎬ ᏥᎨᏒ"}\r
                 }\r
             }\r
         }\r
@@ -1365,18 +1365,18 @@ chr{
             }\r
             relativeTime{\r
                 future{\r
-                    one{"á\8e¾á\8e¿ {0} á\8e¤á\8e¾á\8f\99á\8f\93á\8f\86á\8f\8dá\8e¬"}\r
-                    other{"á\8e¾á\8e¿ {0} á\8e¤á\8e¾á\8f\99á\8f\93á\8f\86á\8f\8dá\8e¬"}\r
+                    one{"á\8e¾á\8e¿ {0} á\8f\86á\8f\8dá\8e¬."}\r
+                    other{"á\8e¾á\8e¿ {0} á\8f\86á\8f\8dá\8e¬."}\r
                 }\r
                 past{\r
-                    one{"{0} á\8e¤á\8e¾á\8f\99á\8f\93á\8f\86á\8f\8dá\8e¬ ᏥᎨᏒ"}\r
-                    other{"{0} á\8e¤á\8e¾á\8f\99á\8f\93á\8f\86á\8f\8dá\8e¬ ᏥᎨᏒ"}\r
+                    one{"{0} á\8f\86á\8f\8dá\8e¬. ᏥᎨᏒ"}\r
+                    other{"{0} á\8f\86á\8f\8dá\8e¬. ᏥᎨᏒ"}\r
                 }\r
             }\r
         }\r
         thu{\r
             relative{\r
-                "-1"{"ᏅᎩᏁ ᏥᎨᏒ"}\r
+                "-1"{"á\8f\85á\8e©á\8f\81 á\8e¢á\8e¦ á\8f¥á\8e¨á\8f\92"}\r
                 "0"{"ᎯᎠ ᏅᎩᏁ ᎢᎦ"}\r
                 "1"{"ᏔᎵᏁ ᏅᎩᏁ ᎢᎦ"}\r
             }\r
@@ -1399,12 +1399,12 @@ chr{
             }\r
             relativeTime{\r
                 future{\r
-                    one{"ᎾᎿ {0} ᏅᎩᏁ ᎢᎦ"}\r
-                    other{"ᎾᎿ {0} ᏅᎩᏁ ᎢᎦ"}\r
+                    one{"ᎾᎿ {0} ᏅᎩ"}\r
+                    other{"ᎾᎿ {0} ᏅᎩ"}\r
                 }\r
                 past{\r
-                    one{"{0} ᏅᎩᏁ ᎢᎦ ᏥᎨᏒ"}\r
-                    other{"{0} ᏅᎩᏁ ᎢᎦ ᏥᎨᏒ"}\r
+                    one{"{0} ᏅᎩ ᏥᎨᏒ"}\r
+                    other{"{0} ᏅᎩ ᏥᎨᏒ"}\r
                 }\r
             }\r
         }\r
@@ -1416,12 +1416,12 @@ chr{
             }\r
             relativeTime{\r
                 future{\r
-                    one{"ᎾᎿ {0} ᏅᎩᏁ ᎢᎦ"}\r
-                    other{"ᎾᎿ {0} ᏅᎩᏁ ᎢᎦ"}\r
+                    one{"ᎾᎿ {0} ᏅᎩᏁ."}\r
+                    other{"ᎾᎿ {0} ᏅᎩᏁ."}\r
                 }\r
                 past{\r
-                    one{"{0} ᏅᎩᏁ ᎢᎦ ᏥᎨᏒ"}\r
-                    other{"{0} ᏅᎩᏁ ᎢᎦ ᏥᎨᏒ"}\r
+                    one{"{0} ᏅᎩᏁ. ᏥᎨᏒ"}\r
+                    other{"{0} ᏅᎩᏁ. ᏥᎨᏒ"}\r
                 }\r
             }\r
         }\r
@@ -1450,12 +1450,12 @@ chr{
             }\r
             relativeTime{\r
                 future{\r
-                    one{"ᎾᎿ {0} ᏔᎵᏁ ᎢᎦ"}\r
-                    other{"ᎾᎿ {0} ᏔᎵᏁ ᎢᎦ"}\r
+                    one{"ᎾᎿ {0} ᏔᎵ"}\r
+                    other{"ᎾᎿ {0} ᏔᎵ"}\r
                 }\r
                 past{\r
-                    one{"{0} ᏔᎵᏁ ᎢᎦ ᏥᎨᏒ"}\r
-                    other{"{0} ᏔᎵᏁ ᎢᎦ ᏥᎨᏒ"}\r
+                    one{"{0} ᏔᎵ ᏥᎨᏒ"}\r
+                    other{"{0} ᏔᎵ ᏥᎨᏒ"}\r
                 }\r
             }\r
         }\r
@@ -1467,12 +1467,12 @@ chr{
             }\r
             relativeTime{\r
                 future{\r
-                    one{"ᎾᎿ {0} ᏔᎵᏁ ᎢᎦ"}\r
-                    other{"ᎾᎿ {0} ᏔᎵᏁ ᎢᎦ"}\r
+                    one{"ᎾᎿ {0} ᏔᎵᏁ."}\r
+                    other{"ᎾᎿ {0} ᏔᎵᏁ."}\r
                 }\r
                 past{\r
-                    one{"{0} ᏔᎵᏁ ᎢᎦ ᏥᎨᏒ"}\r
-                    other{"{0} ᏔᎵᏁ ᎢᎦ ᏥᎨᏒ"}\r
+                    one{"{0} ᏔᎵᏁ. ᏥᎨᏒ"}\r
+                    other{"{0} ᏔᎵᏁ. ᏥᎨᏒ"}\r
                 }\r
             }\r
         }\r
@@ -1501,12 +1501,12 @@ chr{
             }\r
             relativeTime{\r
                 future{\r
-                    one{"ᎾᎿ {0} ᏦᎢᏁ ᎢᎦ"}\r
-                    other{"ᎾᎿ {0} ᏦᎢᏁ ᎢᎦ"}\r
+                    one{"ᎾᎿ {0} Ꮶ"}\r
+                    other{"ᎾᎿ {0} Ꮶ"}\r
                 }\r
                 past{\r
-                    one{"{0} ᏦᎢᏁ ᎢᎦ ᏥᎨᏒ"}\r
-                    other{"{0} ᏦᎢᏁ ᎢᎦ ᏥᎨᏒ"}\r
+                    one{"{0} Ꮶ ᏥᎨᏒ"}\r
+                    other{"{0} Ꮶ ᏥᎨᏒ"}\r
                 }\r
             }\r
         }\r
@@ -1518,12 +1518,12 @@ chr{
             }\r
             relativeTime{\r
                 future{\r
-                    one{"ᎾᎿ {0} ᏦᎢᏁ ᎢᎦ"}\r
-                    other{"ᎾᎿ {0} ᏦᎢᏁ ᎢᎦ"}\r
+                    one{"ᎾᎿ {0} ᏦᎢᏁ."}\r
+                    other{"ᎾᎿ {0} ᏦᎢᏁ."}\r
                 }\r
                 past{\r
-                    one{"{0} ᏦᎢᏁ ᎢᎦ ᏥᎨᏒ"}\r
-                    other{"{0} ᏦᎢᏁ ᎢᎦ ᏥᎨᏒ"}\r
+                    one{"{0} ᏦᎢᏁ. ᏥᎨᏒ"}\r
+                    other{"{0} ᏦᎢᏁ. ᏥᎨᏒ"}\r
                 }\r
             }\r
         }\r
@@ -1541,8 +1541,8 @@ chr{
                     other{"ᎾᎿ {0} ᎢᏳᎾᏙᏓᏆᏍᏗ"}\r
                 }\r
                 past{\r
-                    one{"ᎾᎿ {0} ᏒᎾᏙᏓᏆᏍᏗ ᏥᎨᏒ"}\r
-                    other{"ᎾᎿ {0} ᎢᏳᎾᏙᏓᏆᏍᏗ ᏥᎨᏒ"}\r
+                    one{"{0} ᏒᎾᏙᏓᏆᏍᏗ ᏥᎨᏒ"}\r
+                    other{"{0} ᎢᏳᎾᏙᏓᏆᏍᏗ ᏥᎨᏒ"}\r
                 }\r
             }\r
         }\r
@@ -1555,8 +1555,8 @@ chr{
                     other{"ᎾᎿ {0} ᏒᎾ."}\r
                 }\r
                 past{\r
-                    one{"ᎾᎿ {0} ᏒᎾ. ᏥᎨᏒ"}\r
-                    other{"ᎾᎿ {0} ᏒᎾ. ᏥᎨᏒ"}\r
+                    one{"{0} ᏒᎾ. ᏥᎨᏒ"}\r
+                    other{"{0} ᏒᎾ. ᏥᎨᏒ"}\r
                 }\r
             }\r
         }\r
@@ -1569,8 +1569,8 @@ chr{
                     other{"ᎾᎿ {0} ᏒᎾ."}\r
                 }\r
                 past{\r
-                    one{"ᎾᎿ {0} ᏒᎾ. ᏥᎨᏒ"}\r
-                    other{"ᎾᎿ {0} ᏒᎾ. ᏥᎨᏒ"}\r
+                    one{"{0} ᏒᎾ. ᏥᎨᏒ"}\r
+                    other{"{0} ᏒᎾ. ᏥᎨᏒ"}\r
                 }\r
             }\r
         }\r
@@ -1627,8 +1627,8 @@ chr{
                     other{"ᎾᎿ {0} ᎤᏕ."}\r
                 }\r
                 past{\r
-                    one{"ᎾᎿ {0} ᎤᏕ. ᏥᎨᏒ"}\r
-                    other{"ᎾᎿ {0} ᎤᏕ. ᏥᎨᏒ"}\r
+                    one{"{0} ᎤᏕ. ᏥᎨᏒ"}\r
+                    other{"{0} ᎤᏕ. ᏥᎨᏒ"}\r
                 }\r
             }\r
         }\r
@@ -1640,8 +1640,8 @@ chr{
                     other{"ᎾᎿ {0} ᎤᏕ."}\r
                 }\r
                 past{\r
-                    one{"ᎾᎿ {0} ᎤᏕ. ᏥᎨᏒ"}\r
-                    other{"ᎾᎿ {0} ᎤᏕ. ᏥᎨᏒ"}\r
+                    one{"{0} ᎤᏕ. ᏥᎨᏒ"}\r
+                    other{"{0} ᎤᏕ. ᏥᎨᏒ"}\r
                 }\r
             }\r
         }\r
@@ -1664,13 +1664,13 @@ chr{
         }\r
         standard{\r
             2{"{0} ᎠᎴ {1}"}\r
-            end{"{0} ᎠᎴ {1}"}\r
+            end{"{0}, ᎠᎴ {1}"}\r
             middle{"{0}, {1}"}\r
             start{"{0}, {1}"}\r
         }\r
         standard-short{\r
             2{"{0} ᎠᎴ {1}"}\r
-            end{"{0} ᎠᎴ {1}"}\r
+            end{"{0}, ᎠᎴ {1}"}\r
             middle{"{0}, {1}"}\r
             start{"{0}, {1}"}\r
         }\r
@@ -1698,4 +1698,36 @@ chr{
         US{"US"}\r
         metric{"ᎠᏂᎩᎸᏥ ᏂᏓᏳᏓᎴᏅᎯ ᏗᏎᏍᏗ"}\r
     }\r
+    parse{\r
+        date{\r
+            lenient{\r
+                "[\\--/]",\r
+                "[\\:∶]",\r
+            }\r
+        }\r
+        general{\r
+            lenient{\r
+                "[.․。︒﹒.。]",\r
+                "['ʼ՚᾽᾿’']",\r
+                "[%٪﹪%]",\r
+                "[؉‰]",\r
+                "[\$﹩$$]",\r
+                "[£₤]",\r
+                "[¥¥]",\r
+                "[₩₩]",\r
+                "[₨₹{Rp}{Rs}]",\r
+            }\r
+        }\r
+        number{\r
+            lenient{\r
+                "[\\-‒⁻₋−➖﹣-]",\r
+                "[,،٫、︐︑﹐﹑,、]",\r
+                "[+⁺₊➕﬩﹢+]",\r
+            }\r
+            stricter{\r
+                "[,٫︐﹐,]",\r
+                "[.․﹒.。]",\r
+            }\r
+        }\r
+    }\r
 }\r
index b80149f091057986100cc6ca7aa79faaaaf7a5d9..21374f2998db565bed13cf469098c9810bca10dc 100644 (file)
@@ -31,7 +31,7 @@ ckb{
         default{"arab"}\r
         latn{\r
             miscPatterns{\r
-                atLeast{"⩾{0}"}\r
+                atLeast{"â\89¥{0}"}\r
                 range{"{0}–{1}"}\r
             }\r
             patterns{\r
@@ -57,7 +57,7 @@ ckb{
         minimumGroupingDigits{"1"}\r
         native{"arab"}\r
     }\r
-    Version{"2.1.38.71"}\r
+    Version{"2.1.44.88"}\r
     calendar{\r
         generic{\r
             DateTimePatterns{\r
@@ -248,8 +248,8 @@ ckb{
                 yQQQ{"y QQQ"}\r
                 yQQQQ{"y QQQQ"}\r
                 yw{\r
-                    one{"هەفتەی w ی y"}\r
-                    other{"هەفتەی w ی y"}\r
+                    one{"هەفتەی w ی Y"}\r
+                    other{"هەفتەی w ی Y"}\r
                 }\r
             }\r
             dayNames{\r
index 0a92051eefa41452f78572050272c00ff5756f66..3a3605f086a26388e3adf8c65938445f8264a21a 100644 (file)
@@ -144,7 +144,9 @@ cs{
         }\r
         latn{\r
             miscPatterns{\r
-                atLeast{"{0}+"}\r
+                approximately{"~{0}"}\r
+                atLeast{"≥{0}"}\r
+                atMost{"≤{0}"}\r
                 range{"{0}–{1}"}\r
             }\r
             patterns{\r
@@ -519,7 +521,7 @@ cs{
             }\r
         }\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.91"}\r
     calendar{\r
         buddhist{\r
             DateTimePatterns{\r
@@ -692,6 +694,670 @@ cs{
                 "{1} {0}",\r
                 "{1} {0}",\r
             }\r
+            cyclicNameSets{\r
+                dayParts{\r
+                    format{\r
+                        abbreviated{\r
+                            "zi",\r
+                            "chou",\r
+                            "yin",\r
+                            "mao",\r
+                            "chen",\r
+                            "si",\r
+                            "wu",\r
+                            "wei",\r
+                            "shen",\r
+                            "you",\r
+                            "xu",\r
+                            "hai",\r
+                        }\r
+                        narrow{\r
+                            "zi",\r
+                            "chou",\r
+                            "yin",\r
+                            "mao",\r
+                            "chen",\r
+                            "si",\r
+                            "wu",\r
+                            "wei",\r
+                            "shen",\r
+                            "you",\r
+                            "xu",\r
+                            "hai",\r
+                        }\r
+                        wide{\r
+                            "zi",\r
+                            "chou",\r
+                            "yin",\r
+                            "mao",\r
+                            "chen",\r
+                            "si",\r
+                            "wu",\r
+                            "wei",\r
+                            "shen",\r
+                            "you",\r
+                            "xu",\r
+                            "hai",\r
+                        }\r
+                    }\r
+                }\r
+                days{\r
+                    format{\r
+                        abbreviated{\r
+                            "jia-zi",\r
+                            "yi-chou",\r
+                            "bing-yin",\r
+                            "ding-mao",\r
+                            "wu-chen",\r
+                            "ji-si",\r
+                            "geng-wu",\r
+                            "xin-wei",\r
+                            "ren-shen",\r
+                            "gui-you",\r
+                            "jia-xu",\r
+                            "yi-hai",\r
+                            "bing-zi",\r
+                            "ding-chou",\r
+                            "wu-yin",\r
+                            "ji-mao",\r
+                            "geng-chen",\r
+                            "xin-si",\r
+                            "ren-wu",\r
+                            "gui-wei",\r
+                            "jia-shen",\r
+                            "yi-you",\r
+                            "bing-xu",\r
+                            "ding-hai",\r
+                            "wu-zi",\r
+                            "ji-chou",\r
+                            "geng-yin",\r
+                            "xin-mao",\r
+                            "ren-chen",\r
+                            "gui-si",\r
+                            "jia-wu",\r
+                            "yi-wei",\r
+                            "bing-shen",\r
+                            "ding-you",\r
+                            "wu-xu",\r
+                            "ji-hai",\r
+                            "geng-zi",\r
+                            "xin-chou",\r
+                            "ren-yin",\r
+                            "gui-mao",\r
+                            "jia-chen",\r
+                            "yi-si",\r
+                            "bing-wu",\r
+                            "ding-wei",\r
+                            "wu-shen",\r
+                            "ji-you",\r
+                            "geng-xu",\r
+                            "xin-hai",\r
+                            "ren-zi",\r
+                            "gui-chou",\r
+                            "jia-yin",\r
+                            "yi-mao",\r
+                            "bing-chen",\r
+                            "ding-si",\r
+                            "wu-wu",\r
+                            "ji-wei",\r
+                            "geng-shen",\r
+                            "xin-you",\r
+                            "ren-xu",\r
+                            "gui-hai",\r
+                        }\r
+                        narrow{\r
+                            "jia-zi",\r
+                            "yi-chou",\r
+                            "bing-yin",\r
+                            "ding-mao",\r
+                            "wu-chen",\r
+                            "ji-si",\r
+                            "geng-wu",\r
+                            "xin-wei",\r
+                            "ren-shen",\r
+                            "gui-you",\r
+                            "jia-xu",\r
+                            "yi-hai",\r
+                            "bing-zi",\r
+                            "ding-chou",\r
+                            "wu-yin",\r
+                            "ji-mao",\r
+                            "geng-chen",\r
+                            "xin-si",\r
+                            "ren-wu",\r
+                            "gui-wei",\r
+                            "jia-shen",\r
+                            "yi-you",\r
+                            "bing-xu",\r
+                            "ding-hai",\r
+                            "wu-zi",\r
+                            "ji-chou",\r
+                            "geng-yin",\r
+                            "xin-mao",\r
+                            "ren-chen",\r
+                            "gui-si",\r
+                            "jia-wu",\r
+                            "yi-wei",\r
+                            "bing-shen",\r
+                            "ding-you",\r
+                            "wu-xu",\r
+                            "ji-hai",\r
+                            "geng-zi",\r
+                            "xin-chou",\r
+                            "ren-yin",\r
+                            "gui-mao",\r
+                            "jia-chen",\r
+                            "yi-si",\r
+                            "bing-wu",\r
+                            "ding-wei",\r
+                            "wu-shen",\r
+                            "ji-you",\r
+                            "geng-xu",\r
+                            "xin-hai",\r
+                            "ren-zi",\r
+                            "gui-chou",\r
+                            "jia-yin",\r
+                            "yi-mao",\r
+                            "bing-chen",\r
+                            "ding-si",\r
+                            "wu-wu",\r
+                            "ji-wei",\r
+                            "geng-shen",\r
+                            "xin-you",\r
+                            "ren-xu",\r
+                            "gui-hai",\r
+                        }\r
+                        wide{\r
+                            "jia-zi",\r
+                            "yi-chou",\r
+                            "bing-yin",\r
+                            "ding-mao",\r
+                            "wu-chen",\r
+                            "ji-si",\r
+                            "geng-wu",\r
+                            "xin-wei",\r
+                            "ren-shen",\r
+                            "gui-you",\r
+                            "jia-xu",\r
+                            "yi-hai",\r
+                            "bing-zi",\r
+                            "ding-chou",\r
+                            "wu-yin",\r
+                            "ji-mao",\r
+                            "geng-chen",\r
+                            "xin-si",\r
+                            "ren-wu",\r
+                            "gui-wei",\r
+                            "jia-shen",\r
+                            "yi-you",\r
+                            "bing-xu",\r
+                            "ding-hai",\r
+                            "wu-zi",\r
+                            "ji-chou",\r
+                            "geng-yin",\r
+                            "xin-mao",\r
+                            "ren-chen",\r
+                            "gui-si",\r
+                            "jia-wu",\r
+                            "yi-wei",\r
+                            "bing-shen",\r
+                            "ding-you",\r
+                            "wu-xu",\r
+                            "ji-hai",\r
+                            "geng-zi",\r
+                            "xin-chou",\r
+                            "ren-yin",\r
+                            "gui-mao",\r
+                            "jia-chen",\r
+                            "yi-si",\r
+                            "bing-wu",\r
+                            "ding-wei",\r
+                            "wu-shen",\r
+                            "ji-you",\r
+                            "geng-xu",\r
+                            "xin-hai",\r
+                            "ren-zi",\r
+                            "gui-chou",\r
+                            "jia-yin",\r
+                            "yi-mao",\r
+                            "bing-chen",\r
+                            "ding-si",\r
+                            "wu-wu",\r
+                            "ji-wei",\r
+                            "geng-shen",\r
+                            "xin-you",\r
+                            "ren-xu",\r
+                            "gui-hai",\r
+                        }\r
+                    }\r
+                }\r
+                months{\r
+                    format{\r
+                        abbreviated{\r
+                            "jia-zi",\r
+                            "yi-chou",\r
+                            "bing-yin",\r
+                            "ding-mao",\r
+                            "wu-chen",\r
+                            "ji-si",\r
+                            "geng-wu",\r
+                            "xin-wei",\r
+                            "ren-shen",\r
+                            "gui-you",\r
+                            "jia-xu",\r
+                            "yi-hai",\r
+                            "bing-zi",\r
+                            "ding-chou",\r
+                            "wu-yin",\r
+                            "ji-mao",\r
+                            "geng-chen",\r
+                            "xin-si",\r
+                            "ren-wu",\r
+                            "gui-wei",\r
+                            "jia-shen",\r
+                            "yi-you",\r
+                            "bing-xu",\r
+                            "ding-hai",\r
+                            "wu-zi",\r
+                            "ji-chou",\r
+                            "geng-yin",\r
+                            "xin-mao",\r
+                            "ren-chen",\r
+                            "gui-si",\r
+                            "jia-wu",\r
+                            "yi-wei",\r
+                            "bing-shen",\r
+                            "ding-you",\r
+                            "wu-xu",\r
+                            "ji-hai",\r
+                            "geng-zi",\r
+                            "xin-chou",\r
+                            "ren-yin",\r
+                            "gui-mao",\r
+                            "jia-chen",\r
+                            "yi-si",\r
+                            "bing-wu",\r
+                            "ding-wei",\r
+                            "wu-shen",\r
+                            "ji-you",\r
+                            "geng-xu",\r
+                            "xin-hai",\r
+                            "ren-zi",\r
+                            "gui-chou",\r
+                            "jia-yin",\r
+                            "yi-mao",\r
+                            "bing-chen",\r
+                            "ding-si",\r
+                            "wu-wu",\r
+                            "ji-wei",\r
+                            "geng-shen",\r
+                            "xin-you",\r
+                            "ren-xu",\r
+                            "gui-hai",\r
+                        }\r
+                        narrow{\r
+                            "jia-zi",\r
+                            "yi-chou",\r
+                            "bing-yin",\r
+                            "ding-mao",\r
+                            "wu-chen",\r
+                            "ji-si",\r
+                            "geng-wu",\r
+                            "xin-wei",\r
+                            "ren-shen",\r
+                            "gui-you",\r
+                            "jia-xu",\r
+                            "yi-hai",\r
+                            "bing-zi",\r
+                            "ding-chou",\r
+                            "wu-yin",\r
+                            "ji-mao",\r
+                            "geng-chen",\r
+                            "xin-si",\r
+                            "ren-wu",\r
+                            "gui-wei",\r
+                            "jia-shen",\r
+                            "yi-you",\r
+                            "bing-xu",\r
+                            "ding-hai",\r
+                            "wu-zi",\r
+                            "ji-chou",\r
+                            "geng-yin",\r
+                            "xin-mao",\r
+                            "ren-chen",\r
+                            "gui-si",\r
+                            "jia-wu",\r
+                            "yi-wei",\r
+                            "bing-shen",\r
+                            "ding-you",\r
+                            "wu-xu",\r
+                            "ji-hai",\r
+                            "geng-zi",\r
+                            "xin-chou",\r
+                            "ren-yin",\r
+                            "gui-mao",\r
+                            "jia-chen",\r
+                            "yi-si",\r
+                            "bing-wu",\r
+                            "ding-wei",\r
+                            "wu-shen",\r
+                            "ji-you",\r
+                            "geng-xu",\r
+                            "xin-hai",\r
+                            "ren-zi",\r
+                            "gui-chou",\r
+                            "jia-yin",\r
+                            "yi-mao",\r
+                            "bing-chen",\r
+                            "ding-si",\r
+                            "wu-wu",\r
+                            "ji-wei",\r
+                            "geng-shen",\r
+                            "xin-you",\r
+                            "ren-xu",\r
+                            "gui-hai",\r
+                        }\r
+                        wide{\r
+                            "jia-zi",\r
+                            "yi-chou",\r
+                            "bing-yin",\r
+                            "ding-mao",\r
+                            "wu-chen",\r
+                            "ji-si",\r
+                            "geng-wu",\r
+                            "xin-wei",\r
+                            "ren-shen",\r
+                            "gui-you",\r
+                            "jia-xu",\r
+                            "yi-hai",\r
+                            "bing-zi",\r
+                            "ding-chou",\r
+                            "wu-yin",\r
+                            "ji-mao",\r
+                            "geng-chen",\r
+                            "xin-si",\r
+                            "ren-wu",\r
+                            "gui-wei",\r
+                            "jia-shen",\r
+                            "yi-you",\r
+                            "bing-xu",\r
+                            "ding-hai",\r
+                            "wu-zi",\r
+                            "ji-chou",\r
+                            "geng-yin",\r
+                            "xin-mao",\r
+                            "ren-chen",\r
+                            "gui-si",\r
+                            "jia-wu",\r
+                            "yi-wei",\r
+                            "bing-shen",\r
+                            "ding-you",\r
+                            "wu-xu",\r
+                            "ji-hai",\r
+                            "geng-zi",\r
+                            "xin-chou",\r
+                            "ren-yin",\r
+                            "gui-mao",\r
+                            "jia-chen",\r
+                            "yi-si",\r
+                            "bing-wu",\r
+                            "ding-wei",\r
+                            "wu-shen",\r
+                            "ji-you",\r
+                            "geng-xu",\r
+                            "xin-hai",\r
+                            "ren-zi",\r
+                            "gui-chou",\r
+                            "jia-yin",\r
+                            "yi-mao",\r
+                            "bing-chen",\r
+                            "ding-si",\r
+                            "wu-wu",\r
+                            "ji-wei",\r
+                            "geng-shen",\r
+                            "xin-you",\r
+                            "ren-xu",\r
+                            "gui-hai",\r
+                        }\r
+                    }\r
+                }\r
+                years{\r
+                    format{\r
+                        abbreviated{\r
+                            "jia-zi",\r
+                            "yi-chou",\r
+                            "bing-yin",\r
+                            "ding-mao",\r
+                            "wu-chen",\r
+                            "ji-si",\r
+                            "geng-wu",\r
+                            "xin-wei",\r
+                            "ren-shen",\r
+                            "gui-you",\r
+                            "jia-xu",\r
+                            "yi-hai",\r
+                            "bing-zi",\r
+                            "ding-chou",\r
+                            "wu-yin",\r
+                            "ji-mao",\r
+                            "geng-chen",\r
+                            "xin-si",\r
+                            "ren-wu",\r
+                            "gui-wei",\r
+                            "jia-shen",\r
+                            "yi-you",\r
+                            "bing-xu",\r
+                            "ding-hai",\r
+                            "wu-zi",\r
+                            "ji-chou",\r
+                            "geng-yin",\r
+                            "xin-mao",\r
+                            "ren-chen",\r
+                            "gui-si",\r
+                            "jia-wu",\r
+                            "yi-wei",\r
+                            "bing-shen",\r
+                            "ding-you",\r
+                            "wu-xu",\r
+                            "ji-hai",\r
+                            "geng-zi",\r
+                            "xin-chou",\r
+                            "ren-yin",\r
+                            "gui-mao",\r
+                            "jia-chen",\r
+                            "yi-si",\r
+                            "bing-wu",\r
+                            "ding-wei",\r
+                            "wu-shen",\r
+                            "ji-you",\r
+                            "geng-xu",\r
+                            "xin-hai",\r
+                            "ren-zi",\r
+                            "gui-chou",\r
+                            "jia-yin",\r
+                            "yi-mao",\r
+                            "bing-chen",\r
+                            "ding-si",\r
+                            "wu-wu",\r
+                            "ji-wei",\r
+                            "geng-shen",\r
+                            "xin-you",\r
+                            "ren-xu",\r
+                            "gui-hai",\r
+                        }\r
+                        narrow{\r
+                            "jia-zi",\r
+                            "yi-chou",\r
+                            "bing-yin",\r
+                            "ding-mao",\r
+                            "wu-chen",\r
+                            "ji-si",\r
+                            "geng-wu",\r
+                            "xin-wei",\r
+                            "ren-shen",\r
+                            "gui-you",\r
+                            "jia-xu",\r
+                            "yi-hai",\r
+                            "bing-zi",\r
+                            "ding-chou",\r
+                            "wu-yin",\r
+                            "ji-mao",\r
+                            "geng-chen",\r
+                            "xin-si",\r
+                            "ren-wu",\r
+                            "gui-wei",\r
+                            "jia-shen",\r
+                            "yi-you",\r
+                            "bing-xu",\r
+                            "ding-hai",\r
+                            "wu-zi",\r
+                            "ji-chou",\r
+                            "geng-yin",\r
+                            "xin-mao",\r
+                            "ren-chen",\r
+                            "gui-si",\r
+                            "jia-wu",\r
+                            "yi-wei",\r
+                            "bing-shen",\r
+                            "ding-you",\r
+                            "wu-xu",\r
+                            "ji-hai",\r
+                            "geng-zi",\r
+                            "xin-chou",\r
+                            "ren-yin",\r
+                            "gui-mao",\r
+                            "jia-chen",\r
+                            "yi-si",\r
+                            "bing-wu",\r
+                            "ding-wei",\r
+                            "wu-shen",\r
+                            "ji-you",\r
+                            "geng-xu",\r
+                            "xin-hai",\r
+                            "ren-zi",\r
+                            "gui-chou",\r
+                            "jia-yin",\r
+                            "yi-mao",\r
+                            "bing-chen",\r
+                            "ding-si",\r
+                            "wu-wu",\r
+                            "ji-wei",\r
+                            "geng-shen",\r
+                            "xin-you",\r
+                            "ren-xu",\r
+                            "gui-hai",\r
+                        }\r
+                        wide{\r
+                            "jia-zi",\r
+                            "yi-chou",\r
+                            "bing-yin",\r
+                            "ding-mao",\r
+                            "wu-chen",\r
+                            "ji-si",\r
+                            "geng-wu",\r
+                            "xin-wei",\r
+                            "ren-shen",\r
+                            "gui-you",\r
+                            "jia-xu",\r
+                            "yi-hai",\r
+                            "bing-zi",\r
+                            "ding-chou",\r
+                            "wu-yin",\r
+                            "ji-mao",\r
+                            "geng-chen",\r
+                            "xin-si",\r
+                            "ren-wu",\r
+                            "gui-wei",\r
+                            "jia-shen",\r
+                            "yi-you",\r
+                            "bing-xu",\r
+                            "ding-hai",\r
+                            "wu-zi",\r
+                            "ji-chou",\r
+                            "geng-yin",\r
+                            "xin-mao",\r
+                            "ren-chen",\r
+                            "gui-si",\r
+                            "jia-wu",\r
+                            "yi-wei",\r
+                            "bing-shen",\r
+                            "ding-you",\r
+                            "wu-xu",\r
+                            "ji-hai",\r
+                            "geng-zi",\r
+                            "xin-chou",\r
+                            "ren-yin",\r
+                            "gui-mao",\r
+                            "jia-chen",\r
+                            "yi-si",\r
+                            "bing-wu",\r
+                            "ding-wei",\r
+                            "wu-shen",\r
+                            "ji-you",\r
+                            "geng-xu",\r
+                            "xin-hai",\r
+                            "ren-zi",\r
+                            "gui-chou",\r
+                            "jia-yin",\r
+                            "yi-mao",\r
+                            "bing-chen",\r
+                            "ding-si",\r
+                            "wu-wu",\r
+                            "ji-wei",\r
+                            "geng-shen",\r
+                            "xin-you",\r
+                            "ren-xu",\r
+                            "gui-hai",\r
+                        }\r
+                    }\r
+                }\r
+                zodiacs{\r
+                    format{\r
+                        abbreviated{\r
+                            "krysa",\r
+                            "buvol",\r
+                            "tygr",\r
+                            "zajíc",\r
+                            "drak",\r
+                            "had",\r
+                            "kůň",\r
+                            "koza",\r
+                            "opice",\r
+                            "kohout",\r
+                            "pes",\r
+                            "vepř",\r
+                        }\r
+                        narrow{\r
+                            "krysa",\r
+                            "buvol",\r
+                            "tygr",\r
+                            "zajíc",\r
+                            "drak",\r
+                            "had",\r
+                            "kůň",\r
+                            "koza",\r
+                            "opice",\r
+                            "kohout",\r
+                            "pes",\r
+                            "vepř",\r
+                        }\r
+                        wide{\r
+                            "krysa",\r
+                            "buvol",\r
+                            "tygr",\r
+                            "zajíc",\r
+                            "drak",\r
+                            "had",\r
+                            "kůň",\r
+                            "koza",\r
+                            "opice",\r
+                            "kohout",\r
+                            "pes",\r
+                            "vepř",\r
+                        }\r
+                    }\r
+                }\r
+            }\r
             monthNames{\r
                 format{\r
                     narrow{\r
@@ -3697,6 +4363,7 @@ cs{
                     "Taishō",\r
                     "Shōwa",\r
                     "Heisei",\r
+                    "Qqqq",\r
                 }\r
                 narrow{\r
                     "Taika (645–650)",\r
@@ -3935,6 +4602,7 @@ cs{
                     "T",\r
                     "S",\r
                     "H",\r
+                    "Q",\r
                 }\r
                 wide{\r
                     "Taika (645–650)",\r
@@ -4173,6 +4841,7 @@ cs{
                     "Taishō",\r
                     "Shōwa",\r
                     "Heisei",\r
+                    "Qqqq",\r
                 }\r
             }\r
             intervalFormats{\r
@@ -4591,7 +5260,7 @@ cs{
         japanese_kana{"japonská kana"}\r
         kanbun{"kanbun"}\r
         kanji{"kandži"}\r
-        keycap{"klávesy"}\r
+        keycap{"klávesa"}\r
         leftwards_arrows{"šipky směřující doleva"}\r
         leftwards_rightwards_arrows{"šipky směřující doleva a doprava"}\r
         letterlike_symbols{"symboly podobné písmenům"}\r
@@ -5043,7 +5712,7 @@ cs{
         month-narrow{\r
             dn{"měs."}\r
             relative{\r
-                "-1"{"minuý měs."}\r
+                "-1"{"minulý měs."}\r
                 "0"{"tento měs."}\r
                 "1"{"příští měs."}\r
             }\r
@@ -5750,8 +6419,13 @@ cs{
         general{\r
             lenient{\r
                 "[.․。︒﹒.。]",\r
+                "['ʼ՚᾽᾿’']",\r
+                "[%٪﹪%]",\r
+                "[؉‰]",\r
                 "[\$﹩$$]",\r
                 "[£₤]",\r
+                "[¥¥]",\r
+                "[₩₩]",\r
                 "[₨₹{Rp}{Rs}]",\r
             }\r
         }\r
index 64b576e3c0211abdd94966525ecf79e0ac2eb2b8..72cf60d9cf16429310deea8c1f2db61159acfc43 100644 (file)
@@ -49,7 +49,9 @@ cy{
         default{"latn"}\r
         latn{\r
             miscPatterns{\r
+                approximately{"~{0}"}\r
                 atLeast{"{0}+"}\r
+                atMost{"≤{0}"}\r
                 range{"{0}–{1}"}\r
             }\r
             patterns{\r
@@ -393,7 +395,7 @@ cy{
         minimumGroupingDigits{"1"}\r
         native{"latn"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.91"}\r
     calendar{\r
         generic{\r
             DateTimePatterns{\r
index 5d4af475f8474c3a980886bcfadd6038463e1326..12341b89dd0020dfd34d6c5a4a87aec4d91fa8d2 100644 (file)
@@ -19,7 +19,9 @@ da{
         default{"latn"}\r
         latn{\r
             miscPatterns{\r
+                approximately{"~{0}"}\r
                 atLeast{"{0}+"}\r
+                atMost{"≤{0}"}\r
                 range{"{0}-{1}"}\r
             }\r
             patterns{\r
@@ -96,40 +98,40 @@ da{
                         other{"000 t ¤"}\r
                     }\r
                     1000000{\r
-                        one{"0 mio ¤"}\r
-                        other{"0 mio ¤"}\r
+                        one{"0 mio'.' ¤"}\r
+                        other{"0 mio'.' ¤"}\r
                     }\r
                     10000000{\r
-                        one{"00 mio ¤"}\r
-                        other{"00 mio ¤"}\r
+                        one{"00 mio'.' ¤"}\r
+                        other{"00 mio'.' ¤"}\r
                     }\r
                     100000000{\r
-                        one{"000 mio ¤"}\r
-                        other{"000 mio ¤"}\r
+                        one{"000 mio'.' ¤"}\r
+                        other{"000 mio'.' ¤"}\r
                     }\r
                     1000000000{\r
-                        one{"0 mia ¤"}\r
-                        other{"0 mia ¤"}\r
+                        one{"0 mia'.' ¤"}\r
+                        other{"0 mia'.' ¤"}\r
                     }\r
                     10000000000{\r
-                        one{"00 mia ¤"}\r
-                        other{"00 mia ¤"}\r
+                        one{"00 mia'.' ¤"}\r
+                        other{"00 mia'.' ¤"}\r
                     }\r
                     100000000000{\r
-                        one{"000 mia ¤"}\r
-                        other{"000 mia ¤"}\r
+                        one{"000 mia'.' ¤"}\r
+                        other{"000 mia'.' ¤"}\r
                     }\r
                     1000000000000{\r
-                        one{"0 bio ¤"}\r
-                        other{"0 bio ¤"}\r
+                        one{"0 bio'.' ¤"}\r
+                        other{"0 bio'.' ¤"}\r
                     }\r
                     10000000000000{\r
-                        one{"00 bio ¤"}\r
-                        other{"00 bio ¤"}\r
+                        one{"00 bio'.' ¤"}\r
+                        other{"00 bio'.' ¤"}\r
                     }\r
                     100000000000000{\r
-                        one{"000 bio ¤"}\r
-                        other{"000 bio ¤"}\r
+                        one{"000 bio'.' ¤"}\r
+                        other{"000 bio'.' ¤"}\r
                     }\r
                 }\r
                 decimalFormat{\r
@@ -146,40 +148,40 @@ da{
                         other{"000 t"}\r
                     }\r
                     1000000{\r
-                        one{"0 mio"}\r
-                        other{"0 mio"}\r
+                        one{"0 mio'.'"}\r
+                        other{"0 mio'.'"}\r
                     }\r
                     10000000{\r
-                        one{"00 mio"}\r
-                        other{"00 mio"}\r
+                        one{"00 mio'.'"}\r
+                        other{"00 mio'.'"}\r
                     }\r
                     100000000{\r
-                        one{"000 mio"}\r
-                        other{"000 mio"}\r
+                        one{"000 mio'.'"}\r
+                        other{"000 mio'.'"}\r
                     }\r
                     1000000000{\r
-                        one{"0 mia"}\r
-                        other{"0 mia"}\r
+                        one{"0 mia'.'"}\r
+                        other{"0 mia'.'"}\r
                     }\r
                     10000000000{\r
-                        one{"00 mia"}\r
-                        other{"00 mia"}\r
+                        one{"00 mia'.'"}\r
+                        other{"00 mia'.'"}\r
                     }\r
                     100000000000{\r
-                        one{"000 mia"}\r
-                        other{"000 mia"}\r
+                        one{"000 mia'.'"}\r
+                        other{"000 mia'.'"}\r
                     }\r
                     1000000000000{\r
-                        one{"0 bio"}\r
-                        other{"0 bio"}\r
+                        one{"0 bio'.'"}\r
+                        other{"0 bio'.'"}\r
                     }\r
                     10000000000000{\r
-                        one{"00 bio"}\r
-                        other{"00 bio"}\r
+                        one{"00 bio'.'"}\r
+                        other{"00 bio'.'"}\r
                     }\r
                     100000000000000{\r
-                        one{"000 bio"}\r
-                        other{"000 bio"}\r
+                        one{"000 bio'.'"}\r
+                        other{"000 bio'.'"}\r
                     }\r
                 }\r
             }\r
@@ -210,7 +212,7 @@ da{
         minimumGroupingDigits{"1"}\r
         native{"latn"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.65"}\r
     calendar{\r
         buddhist{\r
             eras{\r
@@ -472,7 +474,7 @@ da{
                 "EEEE 'den' d. MMMM y",\r
                 "d. MMMM y",\r
                 "d. MMM y",\r
-                "dd/MM/y",\r
+                "dd.MM.y",\r
                 "{1} {0}",\r
                 "{1} 'kl'. {0}",\r
                 "{1} 'kl'. {0}",\r
@@ -514,7 +516,7 @@ da{
                 Hmsv{"HH.mm.ss v"}\r
                 Hmv{"HH.mm v"}\r
                 M{"M"}\r
-                MEd{"E d/M"}\r
+                MEd{"E d.M"}\r
                 MMM{"MMM"}\r
                 MMMEd{"E d. MMM"}\r
                 MMMMEd{"E d. MMMM"}\r
@@ -524,8 +526,8 @@ da{
                 }\r
                 MMMMd{"d. MMMM"}\r
                 MMMd{"d. MMM"}\r
-                MMdd{"dd/MM"}\r
-                Md{"d/M"}\r
+                MMdd{"dd.MM"}\r
+                Md{"d.M"}\r
                 d{"d."}\r
                 h{"h a"}\r
                 hm{"h.mm a"}\r
@@ -534,14 +536,14 @@ da{
                 hmv{"h.mm a v"}\r
                 ms{"mm.ss"}\r
                 y{"y"}\r
-                yM{"M/y"}\r
-                yMEd{"E d/M/y"}\r
-                yMM{"MM/y"}\r
+                yM{"M.y"}\r
+                yMEd{"E d.M.y"}\r
+                yMM{"MM.y"}\r
                 yMMM{"MMM y"}\r
                 yMMMEd{"E d. MMM y"}\r
                 yMMMM{"MMMM y"}\r
                 yMMMd{"d. MMM y"}\r
-                yMd{"d/M/y"}\r
+                yMd{"d.M.y"}\r
                 yQQQ{"QQQ y"}\r
                 yQQQQ{"QQQQ y"}\r
                 yw{\r
@@ -732,23 +734,23 @@ da{
                     M{"M–M"}\r
                 }\r
                 MEd{\r
-                    M{"E dd/MM–E dd/MM"}\r
-                    d{"E dd/MM–E dd/MM"}\r
+                    M{"E dd.MM–E dd.MM"}\r
+                    d{"E dd.MM–E dd.MM"}\r
                 }\r
                 MMM{\r
                     M{"MMM–MMM"}\r
                 }\r
                 MMMEd{\r
-                    M{"E 'den' d.–E 'den' d. MMM"}\r
-                    d{"E 'den' d.–E 'den' d. MMM"}\r
+                    M{"E d. MMM–E d. MMM"}\r
+                    d{"E d.–E d. MMM"}\r
                 }\r
                 MMMd{\r
                     M{"d. MMM–d. MMM"}\r
                     d{"d.–d. MMM"}\r
                 }\r
                 Md{\r
-                    M{"dd/MM–dd/MM"}\r
-                    d{"dd/MM–dd/MM"}\r
+                    M{"dd.MM–dd.MM"}\r
+                    d{"dd.MM–dd.MM"}\r
                 }\r
                 d{\r
                     d{"d.–d."}\r
@@ -776,22 +778,22 @@ da{
                     y{"y–y"}\r
                 }\r
                 yM{\r
-                    M{"MM/y–MM/y"}\r
-                    y{"MM/y–MM/y"}\r
+                    M{"MM.y–MM.y"}\r
+                    y{"MM.y–MM.y"}\r
                 }\r
                 yMEd{\r
-                    M{"E dd/MM/y–E dd/MM/y"}\r
-                    d{"E dd/MM/y–E dd/MM/y"}\r
-                    y{"E dd/MM/y–E dd/MM/y"}\r
+                    M{"E dd.MM.y–E dd.MM.y"}\r
+                    d{"E dd.MM.y–E dd.MM.y"}\r
+                    y{"E dd.MM.y–E dd.MM.y"}\r
                 }\r
                 yMMM{\r
                     M{"MMM–MMM y"}\r
                     y{"MMM y–MMM y"}\r
                 }\r
                 yMMMEd{\r
-                    M{"E 'den' d.–E 'den' d. MMM y"}\r
-                    d{"E 'den' d.–E 'den' d. MMM y"}\r
-                    y{"E 'den' d. MMM y–E 'den' d. MMM y"}\r
+                    M{"E d. MMM–E d. MMM y"}\r
+                    d{"E d.–E d. MMM y"}\r
+                    y{"E d. MMM y–E d. MMM y"}\r
                 }\r
                 yMMMM{\r
                     M{"MMMM–MMMM y"}\r
@@ -803,9 +805,9 @@ da{
                     y{"d. MMM y–d. MMM y"}\r
                 }\r
                 yMd{\r
-                    M{"dd/MM/y–dd/MM/y"}\r
-                    d{"dd/MM/y–dd/MM/y"}\r
-                    y{"dd/MM/y–dd/MM/y"}\r
+                    M{"dd.MM.y–dd.MM.y"}\r
+                    d{"dd.MM.y–dd.MM.y"}\r
+                    y{"dd.MM.y–dd.MM.y"}\r
                 }\r
             }\r
             monthNames{\r
@@ -2075,4 +2077,36 @@ da{
         US{"de amerikanske målesystemer"}\r
         metric{"det metriske system"}\r
     }\r
+    parse{\r
+        date{\r
+            lenient{\r
+                "[\\--/]",\r
+                "[\\:∶]",\r
+            }\r
+        }\r
+        general{\r
+            lenient{\r
+                "[.․。︒﹒.。]",\r
+                "['ʼ՚᾽᾿’']",\r
+                "[%٪﹪%]",\r
+                "[؉‰]",\r
+                "[\$﹩$$]",\r
+                "[£₤]",\r
+                "[¥¥]",\r
+                "[₩₩]",\r
+                "[₨₹{Rp}{Rs}]",\r
+            }\r
+        }\r
+        number{\r
+            lenient{\r
+                "[\\-‒⁻₋−➖﹣-]",\r
+                "[,،٫、︐︑﹐﹑,、]",\r
+                "[+⁺₊➕﬩﹢+]",\r
+            }\r
+            stricter{\r
+                "[,٫︐﹐,]",\r
+                "[.․﹒.。]",\r
+            }\r
+        }\r
+    }\r
 }\r
index 88e4f440a77d5f4acb4d7c56e6cbc2d241357272..368f520020db0bd2310511c79745d6d93ba0b303 100644 (file)
@@ -25,7 +25,9 @@ de{
         default{"latn"}\r
         latn{\r
             miscPatterns{\r
+                approximately{"≈{0}"}\r
                 atLeast{"{0}+"}\r
+                atMost{"≤{0}"}\r
                 range{"{0}–{1}"}\r
             }\r
             patterns{\r
@@ -216,7 +218,7 @@ de{
         minimumGroupingDigits{"1"}\r
         native{"latn"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.91"}\r
     calendar{\r
         buddhist{\r
             eras{\r
@@ -903,7 +905,7 @@ de{
                 }\r
                 MEd{\r
                     M{"E, dd.MM. – E, dd.MM."}\r
-                    d{"E, dd.MM. – E, dd.MM."}\r
+                    d{"E, dd. – E, dd.MM."}\r
                 }\r
                 MMM{\r
                     M{"MMM–MMM"}\r
@@ -921,7 +923,7 @@ de{
                 }\r
                 Md{\r
                     M{"dd.MM. – dd.MM."}\r
-                    d{"dd.MM. – dd.MM."}\r
+                    d{"dd.dd.MM."}\r
                 }\r
                 d{\r
                     d{"d.–d."}\r
@@ -953,8 +955,8 @@ de{
                     y{"MM.y – MM.y"}\r
                 }\r
                 yMEd{\r
-                    M{"E, dd.MM.y – E, dd.MM.y"}\r
-                    d{"E, dd.MM.y – E, dd.MM.y"}\r
+                    M{"E, dd.MM. – E, dd.MM.y"}\r
+                    d{"E, dd. – E, dd.MM.y"}\r
                     y{"E, dd.MM.y – E, dd.MM.y"}\r
                 }\r
                 yMMM{\r
@@ -976,8 +978,8 @@ de{
                     y{"d. MMM y – d. MMM y"}\r
                 }\r
                 yMd{\r
-                    M{"dd.MM.y – dd.MM.y"}\r
-                    d{"dd.MM.y – dd.MM.y"}\r
+                    M{"dd.MM. – dd.MM.y"}\r
+                    d{"dd.dd.MM.y"}\r
                     y{"dd.MM.y – dd.MM.y"}\r
                 }\r
             }\r
@@ -992,7 +994,7 @@ de{
                         "Juni",\r
                         "Juli",\r
                         "Aug.",\r
-                        "Sep.",\r
+                        "Sept.",\r
                         "Okt.",\r
                         "Nov.",\r
                         "Dez.",\r
@@ -1601,6 +1603,7 @@ de{
                     "Taishō",\r
                     "Shōwa",\r
                     "Heisei",\r
+                    "Qqqq",\r
                 }\r
             }\r
         }\r
@@ -2666,8 +2669,13 @@ de{
         general{\r
             lenient{\r
                 "[.․。︒﹒.。]",\r
+                "['ʼ՚᾽᾿’']",\r
+                "[%٪﹪%]",\r
+                "[؉‰]",\r
                 "[\$﹩$$]",\r
                 "[£₤]",\r
+                "[¥¥]",\r
+                "[₩₩]",\r
                 "[₨₹{Rp}{Rs}]",\r
             }\r
         }\r
index 25dfcb60647d059dd5858ed7f92a7084ea3ff00f..36a6893d35de00cfc8606c5b018a4138109f8a33 100644 (file)
@@ -14,7 +14,7 @@ de_AT{
             }\r
         }\r
     }\r
-    Version{"2.1.38.39"}\r
+    Version{"2.1.43.65"}\r
     calendar{\r
         gregorian{\r
             dayPeriod{\r
index e2076a4d2e267b184e1c7d1e234486be6f6c1dee..a7758a0be15e260a236f43e1fe22b4b5dc282239 100644 (file)
@@ -9,13 +9,29 @@ de_CH{
                 currencyFormat{"¤ #,##0.00;¤-#,##0.00"}\r
                 percentFormat{"#,##0%"}\r
             }\r
+            patternsShort{\r
+                currencyFormat{\r
+                    1000{\r
+                        one{"0"}\r
+                        other{"0"}\r
+                    }\r
+                    10000{\r
+                        one{"0"}\r
+                        other{"0"}\r
+                    }\r
+                    100000{\r
+                        one{"0"}\r
+                        other{"0"}\r
+                    }\r
+                }\r
+            }\r
             symbols{\r
                 decimal{"."}\r
                 group{"’"}\r
             }\r
         }\r
     }\r
-    Version{"2.1.39.37"}\r
+    Version{"2.1.44.50"}\r
     calendar{\r
         gregorian{\r
             dayNames{\r
@@ -40,12 +56,6 @@ de_CH{
         era-narrow{\r
             dn{"Epoche"}\r
         }\r
-        quarter{\r
-            relative{\r
-                "-1"{"letztes Quartal"}\r
-                "0"{"dieses Quartal"}\r
-            }\r
-        }\r
         weekOfMonth{\r
             dn{"Woche im Monat"}\r
         }\r
index 6eb02fe9b9bdc7d1773d8150daaba398feb07865..8e659bf30487bbb1ed684fc2cb89a103af85478f 100644 (file)
@@ -196,7 +196,7 @@ dsb{
         }\r
         minimumGroupingDigits{"1"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.41.34"}\r
     calendar{\r
         generic{\r
             DateTimePatterns{\r
index 98c581763ed87b1e3d0c725539676090dd09d124..7b5e9417e7039892925cdd2c1475399817ab45d1 100644 (file)
@@ -106,7 +106,7 @@ dz{
             }\r
         }\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.41.34"}\r
     calendar{\r
         generic{\r
             DateTimePatterns{\r
index 99bb999ff09e939d87f3bd23a4677329efc8a231..71ce8edbb955625b07a07b66b53831ea60368687 100644 (file)
@@ -200,7 +200,7 @@ ee{
         }\r
         minimumGroupingDigits{"3"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.88"}\r
     calendar{\r
         generic{\r
             DateTimePatterns{\r
@@ -431,8 +431,8 @@ ee{
                 yQQQ{"QQQ y"}\r
                 yQQQQ{"QQQQ y"}\r
                 yw{\r
-                    one{"'kɔsiɖa' w 'lia' 'le' 'ƒe' y 'me'"}\r
-                    other{"'kɔsiɖa' w 'lia' 'le' 'ƒe' y 'me'"}\r
+                    one{"'kɔsiɖa' w 'lia' 'le' 'ƒe' Y 'me'"}\r
+                    other{"'kɔsiɖa' w 'lia' 'le' 'ƒe' Y 'me'"}\r
                 }\r
             }\r
             dayNames{\r
index 5b9450178a28ac051483f70711e4122eb3e43377..e0436f8fef642fea9332a693e847009e6499a76a 100644 (file)
@@ -22,7 +22,9 @@ el{
         default{"latn"}\r
         latn{\r
             miscPatterns{\r
+                approximately{"~{0}"}\r
                 atLeast{"{0}+"}\r
+                atMost{"≤{0}"}\r
                 range{"{0}–{1}"}\r
             }\r
             patterns{\r
@@ -203,7 +205,7 @@ el{
         }\r
         minimalPairs{\r
             ordinal{\r
-                other{"Στρίψτε στην {0}η γωνία δεξιά."}\r
+                other{"Στρίψτε στην {0}η δεξιά."}\r
             }\r
             plural{\r
                 one{"{0} ημέρα"}\r
@@ -214,7 +216,7 @@ el{
         native{"latn"}\r
         traditional{"grek"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.65"}\r
     calendar{\r
         buddhist{\r
             DateTimePatterns{\r
@@ -1572,7 +1574,7 @@ el{
         plant{"φυτό"}\r
         punctuation{"στίξη"}\r
         rightwards_arrows{"βέλος δεξιά"}\r
-        sign_standard_symbols{"Σήματα / Τυπικά σύμβολα"}\r
+        sign_standard_symbols{"σήμα ή σύμβολο"}\r
         small_form_variant{"παραλλαγή μικρού μεγέθους"}\r
         smiley{"γελαστούλης"}\r
         smileys_people{"γελαστούλης ή άτομο"}\r
@@ -1627,6 +1629,11 @@ el{
         }\r
         day-narrow{\r
             dn{"ημ."}\r
+            relative{\r
+                "-1"{"χθες"}\r
+                "0"{"σήμερα"}\r
+                "1"{"αύριο"}\r
+            }\r
             relativeTime{\r
                 future{\r
                     one{"σε {0} ημ."}\r
@@ -1640,6 +1647,11 @@ el{
         }\r
         day-short{\r
             dn{"ημ."}\r
+            relative{\r
+                "-1"{"χθες"}\r
+                "0"{"σήμερα"}\r
+                "1"{"αύριο"}\r
+            }\r
             relativeTime{\r
                 future{\r
                     one{"σε {0} ημ."}\r
@@ -2440,4 +2452,36 @@ el{
         US{"Αμερικανικό"}\r
         metric{"Μετρικό"}\r
     }\r
+    parse{\r
+        date{\r
+            lenient{\r
+                "[\\--/]",\r
+                "[\\:∶]",\r
+            }\r
+        }\r
+        general{\r
+            lenient{\r
+                "[.․。︒﹒.。]",\r
+                "['ʼ՚᾽᾿’']",\r
+                "[%٪﹪%]",\r
+                "[؉‰]",\r
+                "[\$﹩$$]",\r
+                "[£₤]",\r
+                "[¥¥]",\r
+                "[₩₩]",\r
+                "[₨₹{Rp}{Rs}]",\r
+            }\r
+        }\r
+        number{\r
+            lenient{\r
+                "[\\-‒⁻₋−➖﹣-]",\r
+                "[,،٫、︐︑﹐﹑,、]",\r
+                "[+⁺₊➕﬩﹢+]",\r
+            }\r
+            stricter{\r
+                "[,٫︐﹐,]",\r
+                "[.․﹒.。]",\r
+            }\r
+        }\r
+    }\r
 }\r
index d98b4c8c9e278cccc21d0dee47003d8770ac80bd..67ddadc6e089cb04e64e2e32b16d7bde47831bf2 100644 (file)
@@ -205,7 +205,7 @@ en{
             }\r
         }\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.91"}\r
     calendar{\r
         buddhist{\r
             eras{\r
@@ -499,6 +499,44 @@ en{
                 yyyyQQQQ{"QQQQ y G"}\r
             }\r
             intervalFormats{\r
+                Gy{\r
+                    G{"y G – y G"}\r
+                    y{"y – y G"}\r
+                }\r
+                GyM{\r
+                    G{"M/y GGGGG – M/y GGGGG"}\r
+                    M{"M/y – M/y GGGGG"}\r
+                    y{"M/y – M/y GGGGG"}\r
+                }\r
+                GyMEd{\r
+                    G{"E, M/d/y GGGGG – E, M/d/y GGGGG"}\r
+                    M{"E, M/d/y – E, M/d/y GGGGG"}\r
+                    d{"E, M/d/y – E, M/d/y GGGGG"}\r
+                    y{"E, M/d/y – E, M/d/y GGGGG"}\r
+                }\r
+                GyMMM{\r
+                    G{"MMM y G – MMM y G"}\r
+                    M{"MMM – MMM y G"}\r
+                    y{"MMM y – MMM y G"}\r
+                }\r
+                GyMMMEd{\r
+                    G{"E, MMM d, y G – E, MMM d, y G"}\r
+                    M{"E, MMM d – E, MMM d, y G"}\r
+                    d{"E, MMM d – E, MMM d, y G"}\r
+                    y{"E, MMM d, y – E, MMM d, y G"}\r
+                }\r
+                GyMMMd{\r
+                    G{"MMM d, y G – MMM d, y G"}\r
+                    M{"MMM d – MMM d, y G"}\r
+                    d{"MMM d – d, y G"}\r
+                    y{"MMM d, y – MMM d, y G"}\r
+                }\r
+                GyMd{\r
+                    G{"M/d/y GGGGG – M/d/y GGGGG"}\r
+                    M{"M/d/y – M/d/y GGGGG"}\r
+                    d{"M/d/y – M/d/y GGGGG"}\r
+                    y{"M/d/y – M/d/y GGGGG"}\r
+                }\r
                 H{\r
                     H{"HH – HH"}\r
                 }\r
@@ -812,6 +850,44 @@ en{
                 }\r
             }\r
             intervalFormats{\r
+                Gy{\r
+                    G{"y G – y G"}\r
+                    y{"y – y G"}\r
+                }\r
+                GyM{\r
+                    G{"M/y GGGGG – M/y GGGGG"}\r
+                    M{"M/y – M/y GGGGG"}\r
+                    y{"M/y – M/y GGGGG"}\r
+                }\r
+                GyMEd{\r
+                    G{"E, M/d/y GGGGG – E, M/d/y GGGGG"}\r
+                    M{"E, M/d/y – E, M/d/y GGGGG"}\r
+                    d{"E, M/d/y – E, M/d/y GGGGG"}\r
+                    y{"E, M/d/y – E, M/d/y GGGGG"}\r
+                }\r
+                GyMMM{\r
+                    G{"MMM y G – MMM y G"}\r
+                    M{"MMM – MMM y G"}\r
+                    y{"MMM y – MMM y G"}\r
+                }\r
+                GyMMMEd{\r
+                    G{"E, MMM d, y G – E, MMM d, y G"}\r
+                    M{"E, MMM d – E, MMM d, y G"}\r
+                    d{"E, MMM d – E, MMM d, y G"}\r
+                    y{"E, MMM d, y – E, MMM d, y G"}\r
+                }\r
+                GyMMMd{\r
+                    G{"MMM d, y G – MMM d, y G"}\r
+                    M{"MMM d – MMM d, y G"}\r
+                    d{"MMM d – d, y G"}\r
+                    y{"MMM d, y – MMM d, y G"}\r
+                }\r
+                GyMd{\r
+                    G{"M/d/y GGGGG – M/d/y GGGGG"}\r
+                    M{"M/d/y – M/d/y GGGGG"}\r
+                    d{"M/d/y – M/d/y GGGGG"}\r
+                    y{"M/d/y – M/d/y GGGGG"}\r
+                }\r
                 H{\r
                     H{"HH – HH"}\r
                 }\r
index 15123338b2fa5998018364063d3b2366c13a39d9..78def59b57d4331cdd150fd4e4115c7cf72882b0 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 en_001{\r
-    Version{"2.1.38.69"}\r
+    Version{"2.1.44.18"}\r
     calendar{\r
         chinese{\r
             DateTimePatterns{\r
@@ -98,11 +98,18 @@ en_001{
                 "{1}, {0}",\r
             }\r
             availableFormats{\r
+                Bhms{"h:mm.ss B"}\r
+                EBhm{"E, h:mm B"}\r
+                EBhms{"E, h:mm:ss B"}\r
+                EHm{"E, HH:mm"}\r
+                EHms{"E, HH:mm:ss"}\r
                 Ed{"E d"}\r
+                Ehm{"E, h:mm a"}\r
+                Ehms{"E, h:mm:ss a"}\r
                 GyMMMEd{"E, d MMM y G"}\r
                 GyMMMd{"d MMM y G"}\r
                 M{"LL"}\r
-                MEd{"E, dd/MM"}\r
+                MEd{"E, d/M"}\r
                 MMMEd{"E, d MMM"}\r
                 MMMMd{"d MMMM"}\r
                 MMMd{"d MMM"}\r
@@ -157,6 +164,14 @@ en_001{
             }\r
         }\r
         gregorian{\r
+            AmPmMarkers{\r
+                "am",\r
+                "pm",\r
+            }\r
+            AmPmMarkersAbbr{\r
+                "am",\r
+                "pm",\r
+            }\r
             DateTimePatterns{\r
                 "h:mm:ss a zzzz",\r
                 "h:mm:ss a z",\r
@@ -173,6 +188,8 @@ en_001{
                 "{1}, {0}",\r
             }\r
             availableFormats{\r
+                EBhm{"E, h:mm B"}\r
+                EBhms{"E, h:mm:ss B"}\r
                 Ed{"E d"}\r
                 GyMMMEd{"E, d MMM y G"}\r
                 GyMMMd{"d MMM y G"}\r
@@ -188,6 +205,32 @@ en_001{
                 yMMMd{"d MMM y"}\r
                 yMd{"dd/MM/y"}\r
             }\r
+            dayPeriod{\r
+                format{\r
+                    abbreviated{\r
+                        noon{"noon"}\r
+                    }\r
+                    narrow{\r
+                        noon{"n"}\r
+                    }\r
+                    wide{\r
+                        noon{"noon"}\r
+                    }\r
+                }\r
+                stand-alone{\r
+                    abbreviated{\r
+                        am{"am"}\r
+                        pm{"pm"}\r
+                    }\r
+                    narrow{\r
+                        pm{"pm"}\r
+                    }\r
+                    wide{\r
+                        am{"am"}\r
+                        pm{"pm"}\r
+                    }\r
+                }\r
+            }\r
             intervalFormats{\r
                 MEd{\r
                     M{"E dd/MM – E dd/MM"}\r
@@ -232,34 +275,36 @@ en_001{
             }\r
         }\r
     }\r
-    characterLabel{\r
-        math_symbols{"maths symbols"}\r
-    }\r
     fields{\r
+        dayOfYear-narrow{\r
+            dn{"day of yr"}\r
+        }\r
+        dayOfYear-short{\r
+            dn{"day of yr"}\r
+        }\r
         dayperiod{\r
             dn{"am/pm"}\r
         }\r
-        fri-narrow{\r
-            relativeTime{\r
-                future{\r
-                    one{"in {0} Friday"}\r
-                    other{"in {0} Fridays"}\r
-                }\r
-                past{\r
-                    one{"{0} Friday ago"}\r
-                    other{"{0} Fridays ago"}\r
-                }\r
-            }\r
+        dayperiod-narrow{\r
+            dn{"am/pm"}\r
+        }\r
+        dayperiod-short{\r
+            dn{"am/pm"}\r
         }\r
         fri-short{\r
+            relative{\r
+                "-1"{"last Fri"}\r
+                "0"{"this Fri"}\r
+                "1"{"next Fri"}\r
+            }\r
             relativeTime{\r
                 future{\r
-                    one{"in {0} Friday"}\r
-                    other{"in {0} Fridays"}\r
+                    one{"in {0} Fri"}\r
+                    other{"in {0} Fri"}\r
                 }\r
                 past{\r
-                    one{"{0} Friday ago"}\r
-                    other{"{0} Fridays ago"}\r
+                    one{"{0} Fri ago"}\r
+                    other{"{0} Fri ago"}\r
                 }\r
             }\r
         }\r
@@ -314,27 +359,20 @@ en_001{
                 }\r
             }\r
         }\r
-        mon-narrow{\r
-            relativeTime{\r
-                future{\r
-                    one{"in {0} Monday"}\r
-                    other{"in {0} Mondays"}\r
-                }\r
-                past{\r
-                    one{"{0} Monday ago"}\r
-                    other{"{0} Mondays ago"}\r
-                }\r
-            }\r
-        }\r
         mon-short{\r
+            relative{\r
+                "-1"{"last Mon"}\r
+                "0"{"this Mon"}\r
+                "1"{"next Mon"}\r
+            }\r
             relativeTime{\r
                 future{\r
-                    one{"in {0} Monday"}\r
-                    other{"in {0} Mondays"}\r
+                    one{"in {0} Mon"}\r
+                    other{"in {0} Mon"}\r
                 }\r
                 past{\r
-                    one{"{0} Monday ago"}\r
-                    other{"{0} Mondays ago"}\r
+                    one{"{0} Mon ago"}\r
+                    other{"{0} Mon ago"}\r
                 }\r
             }\r
         }\r
@@ -390,27 +428,20 @@ en_001{
                 }\r
             }\r
         }\r
-        sat-narrow{\r
-            relativeTime{\r
-                future{\r
-                    one{"in {0} Saturday"}\r
-                    other{"in {0} Saturdays"}\r
-                }\r
-                past{\r
-                    one{"{0} Saturday ago"}\r
-                    other{"{0} Saturdays ago"}\r
-                }\r
-            }\r
-        }\r
         sat-short{\r
+            relative{\r
+                "-1"{"last Sat"}\r
+                "0"{"this Sat"}\r
+                "1"{"next Sat"}\r
+            }\r
             relativeTime{\r
                 future{\r
-                    one{"in {0} Saturday"}\r
-                    other{"in {0} Saturdays"}\r
+                    one{"in {0} Sat"}\r
+                    other{"in {0} Sat"}\r
                 }\r
                 past{\r
-                    one{"{0} Saturday ago"}\r
-                    other{"{0} Saturdays ago"}\r
+                    one{"{0} Sat ago"}\r
+                    other{"{0} Sat ago"}\r
                 }\r
             }\r
         }\r
@@ -439,99 +470,71 @@ en_001{
                 }\r
             }\r
         }\r
-        sun-narrow{\r
-            relativeTime{\r
-                future{\r
-                    one{"in {0} Sunday"}\r
-                    other{"in {0} Sundays"}\r
-                }\r
-                past{\r
-                    one{"{0} Sunday ago"}\r
-                    other{"{0} Sundays ago"}\r
-                }\r
-            }\r
-        }\r
         sun-short{\r
-            relativeTime{\r
-                future{\r
-                    one{"in {0} Sunday"}\r
-                    other{"in {0} Sundays"}\r
-                }\r
-                past{\r
-                    one{"{0} Sunday ago"}\r
-                    other{"{0} Sundays ago"}\r
-                }\r
+            relative{\r
+                "-1"{"last Sun"}\r
+                "0"{"this Sun"}\r
+                "1"{"next Sun"}\r
             }\r
-        }\r
-        thu-narrow{\r
             relativeTime{\r
                 future{\r
-                    one{"in {0} Thursday"}\r
-                    other{"in {0} Thursdays"}\r
+                    one{"in {0} Sun"}\r
+                    other{"in {0} Sun"}\r
                 }\r
                 past{\r
-                    one{"{0} Thursday ago"}\r
-                    other{"{0} Thursdays ago"}\r
+                    one{"{0} Sun ago"}\r
+                    other{"{0} Sun ago"}\r
                 }\r
             }\r
         }\r
         thu-short{\r
-            relativeTime{\r
-                future{\r
-                    one{"in {0} Thursday"}\r
-                    other{"in {0} Thursdays"}\r
-                }\r
-                past{\r
-                    one{"{0} Thursday ago"}\r
-                    other{"{0} Thursdays ago"}\r
-                }\r
+            relative{\r
+                "-1"{"last Thu"}\r
+                "0"{"this Thu"}\r
+                "1"{"next Thu"}\r
             }\r
-        }\r
-        tue-narrow{\r
             relativeTime{\r
                 future{\r
-                    one{"in {0} Tuesday"}\r
-                    other{"in {0} Tuesdays"}\r
+                    one{"in {0} Thu"}\r
+                    other{"in {0} Thu"}\r
                 }\r
                 past{\r
-                    one{"{0} Tuesday ago"}\r
-                    other{"{0} Tuesdays ago"}\r
+                    one{"{0} Thu ago"}\r
+                    other{"{0} Thu ago"}\r
                 }\r
             }\r
         }\r
         tue-short{\r
-            relativeTime{\r
-                future{\r
-                    one{"in {0} Tuesday"}\r
-                    other{"in {0} Tuesdays"}\r
-                }\r
-                past{\r
-                    one{"{0} Tuesday ago"}\r
-                    other{"{0} Tuesdays ago"}\r
-                }\r
+            relative{\r
+                "-1"{"last Tue"}\r
+                "0"{"this Tue"}\r
+                "1"{"next Tue"}\r
             }\r
-        }\r
-        wed-narrow{\r
             relativeTime{\r
                 future{\r
-                    one{"in {0} Wednesday"}\r
-                    other{"in {0} Wednesdays"}\r
+                    one{"in {0} Tue"}\r
+                    other{"in {0} Tue"}\r
                 }\r
                 past{\r
-                    one{"{0} Wednesday ago"}\r
-                    other{"{0} Wednesdays ago"}\r
+                    one{"{0} Tue ago"}\r
+                    other{"{0} Tue ago"}\r
                 }\r
             }\r
         }\r
         wed-short{\r
+            relative{\r
+                "-1"{"last Wed"}\r
+                "0"{"this Wed"}\r
+                "1"{"next Wed"}\r
+            }\r
             relativeTime{\r
                 future{\r
-                    one{"in {0} Wednesday"}\r
-                    other{"in {0} Wednesdays"}\r
+                    one{"in {0} Wed"}\r
+                    other{"in {0} Wed"}\r
                 }\r
                 past{\r
-                    one{"{0} Wednesday ago"}\r
-                    other{"{0} Wednesdays ago"}\r
+                    one{"{0} Wed ago"}\r
+                    other{"{0} Wed ago"}\r
                 }\r
             }\r
         }\r
@@ -561,6 +564,24 @@ en_001{
                 }\r
             }\r
         }\r
+        weekOfMonth-narrow{\r
+            dn{"wk of mo"}\r
+        }\r
+        weekOfMonth-short{\r
+            dn{"wk of mo"}\r
+        }\r
+        weekday-narrow{\r
+            dn{"day of wk"}\r
+        }\r
+        weekday-short{\r
+            dn{"day of wk"}\r
+        }\r
+        weekdayOfMonth-narrow{\r
+            dn{"wkday of mo"}\r
+        }\r
+        weekdayOfMonth-short{\r
+            dn{"wkday of mo"}\r
+        }\r
         year-narrow{\r
             relativeTime{\r
                 future{\r
index b86a56a8f18a221aa986e2b2fd6db8ef8ca72fb6..5c30088882998b961979d999d9f9a2d76e3d1dde 100644 (file)
@@ -2,6 +2,7 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 en_AU{\r
     %%Parent{"en_001"}\r
+    ExemplarCharactersNumbers{"[↑]"}\r
     NumberElements{\r
         latn{\r
             symbols{\r
@@ -10,8 +11,42 @@ en_AU{
             }\r
         }\r
     }\r
-    Version{"2.1.38.73"}\r
+    Version{"2.1.44.18"}\r
     calendar{\r
+        chinese{\r
+            monthNames{\r
+                stand-alone{\r
+                    abbreviated{\r
+                        "Mo1",\r
+                        "Mo2",\r
+                        "Mo3",\r
+                        "Mo4",\r
+                        "Mo5",\r
+                        "Mo6",\r
+                        "Mo7",\r
+                        "Mo8",\r
+                        "Mo9",\r
+                        "Mo10",\r
+                        "Mo11",\r
+                        "Mo12",\r
+                    }\r
+                    wide{\r
+                        "First Month",\r
+                        "Second Month",\r
+                        "Third Month",\r
+                        "Fourth Month",\r
+                        "Fifth Month",\r
+                        "Sixth Month",\r
+                        "Seventh Month",\r
+                        "Eighth Month",\r
+                        "Ninth Month",\r
+                        "Tenth Month",\r
+                        "Eleventh Month",\r
+                        "Twelfth Month",\r
+                    }\r
+                }\r
+            }\r
+        }\r
         generic{\r
             availableFormats{\r
                 yMEd{"E, dd/MM/y"}\r
@@ -32,14 +67,6 @@ en_AU{
             }\r
         }\r
         gregorian{\r
-            AmPmMarkers{\r
-                "am",\r
-                "pm",\r
-            }\r
-            AmPmMarkersAbbr{\r
-                "am",\r
-                "pm",\r
-            }\r
             AmPmMarkersNarrow{\r
                 "am",\r
                 "pm",\r
@@ -65,15 +92,6 @@ en_AU{
             }\r
             dayNames{\r
                 format{\r
-                    abbreviated{\r
-                        "Sun.",\r
-                        "Mon.",\r
-                        "Tue.",\r
-                        "Wed.",\r
-                        "Thu.",\r
-                        "Fri.",\r
-                        "Sat.",\r
-                    }\r
                     narrow{\r
                         "Su.",\r
                         "M.",\r
@@ -84,25 +102,16 @@ en_AU{
                         "Sa.",\r
                     }\r
                     short{\r
-                        "Su.",\r
-                        "Mon.",\r
-                        "Tu.",\r
-                        "Wed.",\r
-                        "Th.",\r
-                        "Fri.",\r
-                        "Sat.",\r
+                        "Su",\r
+                        "Mon",\r
+                        "Tu",\r
+                        "Wed",\r
+                        "Th",\r
+                        "Fri",\r
+                        "Sat",\r
                     }\r
                 }\r
                 stand-alone{\r
-                    abbreviated{\r
-                        "Sun.",\r
-                        "Mon.",\r
-                        "Tue.",\r
-                        "Wed.",\r
-                        "Thu.",\r
-                        "Fri.",\r
-                        "Sat.",\r
-                    }\r
                     narrow{\r
                         "Su.",\r
                         "M.",\r
@@ -113,13 +122,13 @@ en_AU{
                         "Sa.",\r
                     }\r
                     short{\r
-                        "Su.",\r
-                        "Mon.",\r
-                        "Tu.",\r
-                        "Wed.",\r
-                        "Th.",\r
-                        "Fri.",\r
-                        "Sat.",\r
+                        "Su",\r
+                        "Mon",\r
+                        "Tu",\r
+                        "Wed",\r
+                        "Th",\r
+                        "Fri",\r
+                        "Sat",\r
                     }\r
                 }\r
             }\r
@@ -152,53 +161,13 @@ en_AU{
                 }\r
                 stand-alone{\r
                     abbreviated{\r
-                        am{"am"}\r
                         noon{"midday"}\r
-                        pm{"pm"}\r
                     }\r
                     narrow{\r
-                        am{"am"}\r
                         noon{"midday"}\r
-                        pm{"pm"}\r
                     }\r
                     wide{\r
-                        am{"am"}\r
                         noon{"midday"}\r
-                        pm{"pm"}\r
-                    }\r
-                }\r
-            }\r
-            monthNames{\r
-                format{\r
-                    abbreviated{\r
-                        "Jan.",\r
-                        "Feb.",\r
-                        "Mar.",\r
-                        "Apr.",\r
-                        "May",\r
-                        "Jun.",\r
-                        "Jul.",\r
-                        "Aug.",\r
-                        "Sep.",\r
-                        "Oct.",\r
-                        "Nov.",\r
-                        "Dec.",\r
-                    }\r
-                }\r
-                stand-alone{\r
-                    abbreviated{\r
-                        "Jan.",\r
-                        "Feb.",\r
-                        "Mar.",\r
-                        "Apr.",\r
-                        "May",\r
-                        "Jun.",\r
-                        "Jul.",\r
-                        "Aug.",\r
-                        "Sep.",\r
-                        "Oct.",\r
-                        "Nov.",\r
-                        "Dec.",\r
                     }\r
                 }\r
             }\r
@@ -222,48 +191,11 @@ en_AU{
         upwards_arrows{"upward arrows"}\r
     }\r
     fields{\r
-        day-narrow{\r
-            relativeTime{\r
-                future{\r
-                    other{"in {0} days"}\r
-                }\r
-                past{\r
-                    other{"{0} days ago"}\r
-                }\r
-            }\r
-        }\r
-        day-short{\r
-            relativeTime{\r
-                future{\r
-                    other{"in {0} days"}\r
-                }\r
-                past{\r
-                    other{"{0} days ago"}\r
-                }\r
-            }\r
-        }\r
-        dayOfYear-narrow{\r
-            dn{"day of yr"}\r
-        }\r
-        dayOfYear-short{\r
-            dn{"day of yr"}\r
-        }\r
-        dayperiod-narrow{\r
-            dn{"am/pm"}\r
-        }\r
-        dayperiod-short{\r
-            dn{"am/pm"}\r
-        }\r
-        fri-narrow{\r
-            relativeTime{\r
-                future{\r
-                    one{"in {0} F"}\r
-                    other{"in {0} F"}\r
-                }\r
-                past{\r
-                    one{"{0} F ago"}\r
-                    other{"{0} F ago"}\r
-                }\r
+        day{\r
+            relative{\r
+                "-1"{"yesterday"}\r
+                "0"{"today"}\r
+                "1"{"tomorrow"}\r
             }\r
         }\r
         fri-short{\r
@@ -330,18 +262,6 @@ en_AU{
                 }\r
             }\r
         }\r
-        mon-narrow{\r
-            relativeTime{\r
-                future{\r
-                    one{"in {0} M"}\r
-                    other{"in {0} M"}\r
-                }\r
-                past{\r
-                    one{"{0} M ago"}\r
-                    other{"{0} M ago"}\r
-                }\r
-            }\r
-        }\r
         mon-short{\r
             relativeTime{\r
                 future{\r
@@ -404,18 +324,6 @@ en_AU{
                 }\r
             }\r
         }\r
-        sat-narrow{\r
-            relativeTime{\r
-                future{\r
-                    one{"in {0} Sa"}\r
-                    other{"in {0} Sa"}\r
-                }\r
-                past{\r
-                    one{"{0} Sa ago"}\r
-                    other{"{0} Sa ago"}\r
-                }\r
-            }\r
-        }\r
         sat-short{\r
             relativeTime{\r
                 future{\r
@@ -454,18 +362,6 @@ en_AU{
                 }\r
             }\r
         }\r
-        sun-narrow{\r
-            relativeTime{\r
-                future{\r
-                    one{"in {0} Su"}\r
-                    other{"in {0} Su"}\r
-                }\r
-                past{\r
-                    one{"{0} Su ago"}\r
-                    other{"{0} Su ago"}\r
-                }\r
-            }\r
-        }\r
         sun-short{\r
             relativeTime{\r
                 future{\r
@@ -478,18 +374,6 @@ en_AU{
                 }\r
             }\r
         }\r
-        thu-narrow{\r
-            relativeTime{\r
-                future{\r
-                    one{"in {0} Th"}\r
-                    other{"in {0} Th"}\r
-                }\r
-                past{\r
-                    one{"{0} Th ago"}\r
-                    other{"{0} Th ago"}\r
-                }\r
-            }\r
-        }\r
         thu-short{\r
             relativeTime{\r
                 future{\r
@@ -502,21 +386,6 @@ en_AU{
                 }\r
             }\r
         }\r
-        tue-narrow{\r
-            relative{\r
-                "-1"{"last Tu"}\r
-            }\r
-            relativeTime{\r
-                future{\r
-                    one{"in {0} Tu"}\r
-                    other{"in {0} Tu"}\r
-                }\r
-                past{\r
-                    one{"{0} Tu ago"}\r
-                    other{"{0} Tu ago"}\r
-                }\r
-            }\r
-        }\r
         tue-short{\r
             relativeTime{\r
                 future{\r
@@ -529,18 +398,6 @@ en_AU{
                 }\r
             }\r
         }\r
-        wed-narrow{\r
-            relativeTime{\r
-                future{\r
-                    one{"in {0} W"}\r
-                    other{"in {0} W"}\r
-                }\r
-                past{\r
-                    one{"{0} W ago"}\r
-                    other{"{0} W ago"}\r
-                }\r
-            }\r
-        }\r
         wed-short{\r
             relativeTime{\r
                 future{\r
@@ -580,12 +437,6 @@ en_AU{
         weekOfMonth-short{\r
             dn{"wk of mo."}\r
         }\r
-        weekday-narrow{\r
-            dn{"day of wk"}\r
-        }\r
-        weekday-short{\r
-            dn{"day of wk"}\r
-        }\r
         weekdayOfMonth-short{\r
             dn{"wkday of mo."}\r
         }\r
@@ -615,6 +466,9 @@ en_AU{
         }\r
     }\r
     listPattern{\r
+        or{\r
+            end{"{0} or {1}"}\r
+        }\r
         standard{\r
             end{"{0} and {1}"}\r
         }\r
index d76b0bf5e1a144115740ed6d87fc46d43ea5a1b3..0e3eab028e3ccbc4f956e138e6e972c7e7c15e2d 100644 (file)
@@ -13,7 +13,7 @@ en_BE{
             }\r
         }\r
     }\r
-    Version{"2.1.38.69"}\r
+    Version{"2.1.44.18"}\r
     calendar{\r
         generic{\r
             DateTimePatterns{\r
@@ -32,7 +32,6 @@ en_BE{
                 "{1}, {0}",\r
             }\r
             availableFormats{\r
-                MEd{"E, d/M"}\r
                 Md{"d/M"}\r
                 yyyyMEd{"E, d/M/y G"}\r
                 yyyyMd{"d/M/y G"}\r
index 9c013a4e3ae41377d3e7ae4601ea03c6ac268ae8..193a12fb2e4f2bf6fcd1501cd47ed34cbd220be4 100644 (file)
@@ -9,7 +9,7 @@ en_CA{
             }\r
         }\r
     }\r
-    Version{"2.1.38.73"}\r
+    Version{"2.1.44.88"}\r
     calendar{\r
         chinese{\r
             DateTimePatterns{\r
@@ -113,7 +113,7 @@ en_CA{
                 MMMd{"MMM d"}\r
                 Md{"MM-dd"}\r
                 yyyyM{"GGGGG y-MM"}\r
-                yyyyMEd{"E, GGGGG y-MM-dd"}\r
+                yyyyMEd{"E, y-MM-dd GGGGG"}\r
                 yyyyMMMEd{"E, MMM d, y G"}\r
                 yyyyMMMd{"MMM d, y G"}\r
                 yyyyMd{"GGGGG y-MM-dd"}\r
@@ -170,6 +170,10 @@ en_CA{
                 "a.m.",\r
                 "p.m.",\r
             }\r
+            AmPmMarkersNarrow{\r
+                "am",\r
+                "pm",\r
+            }\r
             DateTimePatterns{\r
                 "h:mm:ss a zzzz",\r
                 "h:mm:ss a z",\r
@@ -200,8 +204,8 @@ en_CA{
                 yMMMd{"MMM d, y"}\r
                 yMd{"y-MM-dd"}\r
                 yw{\r
-                    one{"'week' w 'of' y"}\r
-                    other{"'week' w 'of' y"}\r
+                    one{"'week' w 'of' Y"}\r
+                    other{"'week' w 'of' Y"}\r
                 }\r
             }\r
             dayNames{\r
@@ -218,14 +222,25 @@ en_CA{
                 }\r
             }\r
             dayPeriod{\r
+                format{\r
+                    narrow{\r
+                        afternoon1{"aft"}\r
+                        evening1{"eve"}\r
+                        midnight{"mid"}\r
+                        morning1{"mor"}\r
+                        night1{"night"}\r
+                    }\r
+                }\r
                 stand-alone{\r
                     abbreviated{\r
                         am{"a.m."}\r
                         pm{"p.m."}\r
                     }\r
                     narrow{\r
-                        am{"a.m."}\r
-                        pm{"p.m."}\r
+                        afternoon1{"aft"}\r
+                        evening1{"eve"}\r
+                        midnight{"mid"}\r
+                        morning1{"mor"}\r
                     }\r
                     wide{\r
                         am{"a.m."}\r
@@ -292,22 +307,6 @@ en_CA{
                         "Dec.",\r
                     }\r
                 }\r
-                stand-alone{\r
-                    abbreviated{\r
-                        "Jan",\r
-                        "Feb",\r
-                        "Mar",\r
-                        "Apr",\r
-                        "May",\r
-                        "Jun",\r
-                        "Jul",\r
-                        "Aug",\r
-                        "Sep",\r
-                        "Oct",\r
-                        "Nov",\r
-                        "Dec",\r
-                    }\r
-                }\r
             }\r
         }\r
         islamic{\r
@@ -331,8 +330,10 @@ en_CA{
                 GyMMMd{"MMM d, y G"}\r
                 MEd{"E, MM-dd"}\r
                 MMMd{"MMM d"}\r
+                yyyyM{"y-MM GGGG"}\r
                 yyyyMMMEd{"E, MMM d, y G"}\r
                 yyyyMMMd{"MMM d, y G"}\r
+                yyyyMd{"y-MM-dd GGGGG"}\r
             }\r
         }\r
     }\r
@@ -343,7 +344,6 @@ en_CA{
         leftwards_rightwards_arrows{"leftward rightward arrow"}\r
         letterlike_symbols{"letter-like symbol"}\r
         limited_use{"limited use"}\r
-        math_symbols{"math symbol"}\r
         nonspacing{"non-spacing"}\r
         rightwards_arrows{"rightward arrow"}\r
         upwards_arrows{"upward arrows"}\r
@@ -359,14 +359,19 @@ en_CA{
             dn{"a.m./p.m."}\r
         }\r
         fri-narrow{\r
+            relative{\r
+                "-1"{"last Fr"}\r
+                "0"{"this Fr"}\r
+                "1"{"next Fr"}\r
+            }\r
             relativeTime{\r
                 future{\r
-                    one{"in {0} F"}\r
-                    other{"in {0} F’s"}\r
+                    one{"in {0} Fr"}\r
+                    other{"in {0} Fr’s"}\r
                 }\r
                 past{\r
-                    one{"{0} F ago"}\r
-                    other{"{0} F’s ago"}\r
+                    one{"{0} Fr ago"}\r
+                    other{"{0} Fr’s ago"}\r
                 }\r
             }\r
         }\r
@@ -435,14 +440,19 @@ en_CA{
             }\r
         }\r
         mon-narrow{\r
+            relative{\r
+                "-1"{"last Mo"}\r
+                "0"{"this Mo"}\r
+                "1"{"next Mo"}\r
+            }\r
             relativeTime{\r
                 future{\r
-                    one{"in {0} M"}\r
-                    other{"in {0} M’s"}\r
+                    one{"in {0} Mo"}\r
+                    other{"in {0} Mo’s"}\r
                 }\r
                 past{\r
-                    one{"{0} M ago"}\r
-                    other{"{0} M’s ago"}\r
+                    one{"{0} Mo ago"}\r
+                    other{"{0} Mo’s ago"}\r
                 }\r
             }\r
         }\r
@@ -578,6 +588,10 @@ en_CA{
                     one{"in {0} Sun."}\r
                     other{"in {0} Sun’s."}\r
                 }\r
+                past{\r
+                    one{"{0} Sun. ago"}\r
+                    other{"{0} Sun’s. ago"}\r
+                }\r
             }\r
         }\r
         thu-narrow{\r
@@ -629,14 +643,19 @@ en_CA{
             }\r
         }\r
         wed-narrow{\r
+            relative{\r
+                "-1"{"last We"}\r
+                "0"{"this We"}\r
+                "1"{"next We"}\r
+            }\r
             relativeTime{\r
                 future{\r
-                    one{"in {0} W"}\r
-                    other{"in {0} W’s"}\r
+                    one{"in {0} We"}\r
+                    other{"in {0} We’s"}\r
                 }\r
                 past{\r
-                    one{"{0} W ago"}\r
-                    other{"{0} W’s ago"}\r
+                    one{"{0} We ago"}\r
+                    other{"{0} We’s ago"}\r
                 }\r
             }\r
         }\r
index 48a51aab88169603c4d088610878524c5d8539ab..f08982313b0663e9201a4459d93fa07ab299fb8f 100644 (file)
@@ -2,21 +2,12 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 en_GB{\r
     %%Parent{"en_001"}\r
-    Version{"2.1.38.73"}\r
+    Version{"2.1.44.18"}\r
     calendar{\r
         generic{\r
             availableFormats{\r
-                Bhm{"h.mm B"}\r
-                Bhms{"h.mm.ss B"}\r
-                EBhm{"E, h.mm B"}\r
-                EBhms{"E, h.mm.ss B"}\r
-                EHm{"E, HH:mm"}\r
-                EHms{"E, HH:mm:ss"}\r
-                Ehm{"E, h.mm a"}\r
-                Ehms{"E, h.mm.ss a"}\r
-                MEd{"E, d/M"}\r
-                hm{"h.mm a"}\r
-                hms{"h.mm.ss a"}\r
+                MEd{"E dd/MM"}\r
+                MMMEd{"E d MMM"}\r
             }\r
             intervalFormats{\r
                 M{\r
@@ -41,14 +32,6 @@ en_GB{
             }\r
         }\r
         gregorian{\r
-            AmPmMarkers{\r
-                "am",\r
-                "pm",\r
-            }\r
-            AmPmMarkersAbbr{\r
-                "am",\r
-                "pm",\r
-            }\r
             DateTimePatterns{\r
                 "HH:mm:ss zzzz",\r
                 "HH:mm:ss z",\r
@@ -64,40 +47,6 @@ en_GB{
                 "{1}, {0}",\r
                 "{1}, {0}",\r
             }\r
-            availableFormats{\r
-                Bhm{"h.mm B"}\r
-                Bhms{"h.mm.ss B"}\r
-                EBhm{"E, h.mm B"}\r
-                EBhms{"E, h.mm.ss B"}\r
-                MEd{"E dd/MM"}\r
-                MMMEd{"E d MMM"}\r
-            }\r
-            dayPeriod{\r
-                format{\r
-                    abbreviated{\r
-                        noon{"noon"}\r
-                    }\r
-                    narrow{\r
-                        noon{"n"}\r
-                    }\r
-                    wide{\r
-                        noon{"noon"}\r
-                    }\r
-                }\r
-                stand-alone{\r
-                    abbreviated{\r
-                        am{"am"}\r
-                        pm{"pm"}\r
-                    }\r
-                    narrow{\r
-                        pm{"pm"}\r
-                    }\r
-                    wide{\r
-                        am{"am"}\r
-                        pm{"pm"}\r
-                    }\r
-                }\r
-            }\r
             intervalFormats{\r
                 H{\r
                     H{"HH–HH"}\r
@@ -143,261 +92,6 @@ en_GB{
             }\r
         }\r
     }\r
-    characterLabel{\r
-        math_symbols{"maths symbol"}\r
-    }\r
-    fields{\r
-        day{\r
-            relative{\r
-                "-1"{"yesterday"}\r
-                "0"{"today"}\r
-                "1"{"tomorrow"}\r
-            }\r
-        }\r
-        day-short{\r
-            relativeTime{\r
-                future{\r
-                    other{"in {0} days"}\r
-                }\r
-                past{\r
-                    other{"{0} days ago"}\r
-                }\r
-            }\r
-        }\r
-        dayOfYear-narrow{\r
-            dn{"day of yr"}\r
-        }\r
-        dayOfYear-short{\r
-            dn{"day of yr"}\r
-        }\r
-        dayperiod-narrow{\r
-            dn{"am/pm"}\r
-        }\r
-        dayperiod-short{\r
-            dn{"am/pm"}\r
-        }\r
-        fri-narrow{\r
-            relativeTime{\r
-                future{\r
-                    one{"in {0} F"}\r
-                    other{"in {0} F"}\r
-                }\r
-                past{\r
-                    one{"{0} F ago"}\r
-                    other{"{0} F ago"}\r
-                }\r
-            }\r
-        }\r
-        fri-short{\r
-            relative{\r
-                "-1"{"last Fri"}\r
-                "0"{"this Fri"}\r
-                "1"{"next Fri"}\r
-            }\r
-            relativeTime{\r
-                future{\r
-                    one{"in {0} Fri"}\r
-                    other{"in {0} Fri"}\r
-                }\r
-                past{\r
-                    one{"{0} Fri ago"}\r
-                    other{"{0} Fri ago"}\r
-                }\r
-            }\r
-        }\r
-        mon-narrow{\r
-            relativeTime{\r
-                future{\r
-                    one{"in {0} M"}\r
-                    other{"in {0} M"}\r
-                }\r
-                past{\r
-                    one{"{0} M ago"}\r
-                    other{"{0} M ago"}\r
-                }\r
-            }\r
-        }\r
-        mon-short{\r
-            relative{\r
-                "-1"{"last Mon"}\r
-                "0"{"this Mon"}\r
-                "1"{"next Mon"}\r
-            }\r
-            relativeTime{\r
-                future{\r
-                    one{"in {0} Mon"}\r
-                    other{"in {0} Mon"}\r
-                }\r
-                past{\r
-                    one{"{0} Mon ago"}\r
-                    other{"{0} Mon ago"}\r
-                }\r
-            }\r
-        }\r
-        sat-narrow{\r
-            relativeTime{\r
-                future{\r
-                    one{"in {0} Sa"}\r
-                    other{"in {0} Sa"}\r
-                }\r
-                past{\r
-                    one{"{0} Sa ago"}\r
-                    other{"{0} Sa ago"}\r
-                }\r
-            }\r
-        }\r
-        sat-short{\r
-            relative{\r
-                "-1"{"last Sat"}\r
-                "0"{"this Sat"}\r
-                "1"{"next Sat"}\r
-            }\r
-            relativeTime{\r
-                future{\r
-                    one{"in {0} Sat"}\r
-                    other{"in {0} Sat"}\r
-                }\r
-                past{\r
-                    one{"{0} Sat ago"}\r
-                    other{"{0} Sat ago"}\r
-                }\r
-            }\r
-        }\r
-        sun-narrow{\r
-            relativeTime{\r
-                future{\r
-                    one{"in {0} Su"}\r
-                    other{"in {0} Su"}\r
-                }\r
-                past{\r
-                    one{"{0} Su ago"}\r
-                    other{"{0} Su ago"}\r
-                }\r
-            }\r
-        }\r
-        sun-short{\r
-            relative{\r
-                "-1"{"last Sun"}\r
-                "0"{"this Sun"}\r
-                "1"{"next Sun"}\r
-            }\r
-            relativeTime{\r
-                future{\r
-                    one{"in {0} Sun"}\r
-                    other{"in {0} Sun"}\r
-                }\r
-                past{\r
-                    one{"{0} Sun ago"}\r
-                    other{"{0} Sun ago"}\r
-                }\r
-            }\r
-        }\r
-        thu-narrow{\r
-            relativeTime{\r
-                future{\r
-                    one{"in {0} Th"}\r
-                    other{"in {0} Th"}\r
-                }\r
-                past{\r
-                    one{"{0} Th ago"}\r
-                    other{"{0} Th ago"}\r
-                }\r
-            }\r
-        }\r
-        thu-short{\r
-            relative{\r
-                "-1"{"last Thu"}\r
-                "0"{"this Thu"}\r
-                "1"{"next Thu"}\r
-            }\r
-            relativeTime{\r
-                future{\r
-                    one{"in {0} Thu"}\r
-                    other{"in {0} Thu"}\r
-                }\r
-                past{\r
-                    one{"{0} Thu ago"}\r
-                    other{"{0} Thu ago"}\r
-                }\r
-            }\r
-        }\r
-        tue-narrow{\r
-            relativeTime{\r
-                future{\r
-                    one{"in {0} Tu"}\r
-                    other{"in {0} Tu"}\r
-                }\r
-                past{\r
-                    one{"{0} Tu ago"}\r
-                    other{"{0} Tu ago"}\r
-                }\r
-            }\r
-        }\r
-        tue-short{\r
-            relative{\r
-                "-1"{"last Tue"}\r
-                "0"{"this Tue"}\r
-                "1"{"next Tue"}\r
-            }\r
-            relativeTime{\r
-                future{\r
-                    one{"in {0} Tue"}\r
-                    other{"in {0} Tue"}\r
-                }\r
-                past{\r
-                    one{"{0} Tue ago"}\r
-                    other{"{0} Tue ago"}\r
-                }\r
-            }\r
-        }\r
-        wed-narrow{\r
-            relativeTime{\r
-                future{\r
-                    one{"in {0} W"}\r
-                    other{"in {0} W"}\r
-                }\r
-                past{\r
-                    one{"{0} W ago"}\r
-                    other{"{0} W ago"}\r
-                }\r
-            }\r
-        }\r
-        wed-short{\r
-            relative{\r
-                "-1"{"last Wed"}\r
-                "0"{"this Wed"}\r
-                "1"{"next Wed"}\r
-            }\r
-            relativeTime{\r
-                future{\r
-                    one{"in {0} Wed"}\r
-                    other{"in {0} Wed"}\r
-                }\r
-                past{\r
-                    one{"{0} Wed ago"}\r
-                    other{"{0} Wed ago"}\r
-                }\r
-            }\r
-        }\r
-        weekOfMonth-narrow{\r
-            dn{"wk of mo"}\r
-        }\r
-        weekOfMonth-short{\r
-            dn{"wk of mo"}\r
-        }\r
-        weekday-narrow{\r
-            dn{"day of wk"}\r
-        }\r
-        weekday-short{\r
-            dn{"day of wk"}\r
-        }\r
-        weekdayOfMonth-narrow{\r
-            dn{"wkday of mo"}\r
-        }\r
-        weekdayOfMonth-short{\r
-            dn{"wkday of mo"}\r
-        }\r
-    }\r
     listPattern{\r
         or{\r
             end{"{0} or {1}"}\r
index b5f27fe9c361a76eec0ebad7dcc7d831864ec593..1e620501b854731e2402a9bcb79708fd35fb5563 100644 (file)
@@ -2,7 +2,7 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 en_HK{\r
     %%Parent{"en_001"}\r
-    Version{"2.1.38.69"}\r
+    Version{"2.1.43.65"}\r
     calendar{\r
         generic{\r
             DateTimePatterns{\r
index 23321e315b216337a7c741a84b9e66b883bd8dbb..e5de22c4991b2bb5a17d56ba1ff0c44f17cc0231 100644 (file)
@@ -2,7 +2,7 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 en_IE{\r
     %%Parent{"en_001"}\r
-    Version{"2.1.38.69"}\r
+    Version{"2.1.44.18"}\r
     calendar{\r
         generic{\r
             DateTimePatterns{\r
@@ -21,7 +21,6 @@ en_IE{
                 "{1}, {0}",\r
             }\r
             availableFormats{\r
-                MEd{"E, d/M"}\r
                 Md{"d/M"}\r
                 yyyyMEd{"E, d/M/y G"}\r
                 yyyyMMMEd{"E d MMM y G"}\r
index 24297312ffbf45646ca5f960dd94d33eeb7668b7..1f8cf273833b0195c684c95bb1dac025e7c290d3 100644 (file)
@@ -9,9 +9,41 @@ en_IN{
                 decimalFormat{"#,##,##0.###"}\r
                 percentFormat{"#,##,##0%"}\r
             }\r
+            patternsShort{\r
+                currencyFormat{\r
+                    1000{\r
+                        one{"¤0T"}\r
+                        other{"¤0T"}\r
+                    }\r
+                    10000{\r
+                        one{"¤00T"}\r
+                        other{"¤00T"}\r
+                    }\r
+                    100000{\r
+                        one{"¤0L"}\r
+                        other{"¤0L"}\r
+                    }\r
+                    10000000{\r
+                        one{"¤0Cr"}\r
+                        other{"¤0Cr"}\r
+                    }\r
+                    100000000{\r
+                        one{"¤00Cr"}\r
+                        other{"¤00Cr"}\r
+                    }\r
+                    10000000000{\r
+                        one{"¤0TCr"}\r
+                        other{"¤0TCr"}\r
+                    }\r
+                    100000000000{\r
+                        one{"¤00TCr"}\r
+                        other{"¤00TCr"}\r
+                    }\r
+                }\r
+            }\r
         }\r
     }\r
-    Version{"2.1.38.73"}\r
+    Version{"2.1.44.18"}\r
     calendar{\r
         generic{\r
             DateTimePatterns{\r
@@ -22,7 +54,7 @@ en_IN{
                 "EEEE, d MMMM, y G",\r
                 "d MMMM, y G",\r
                 "d MMM, y G",\r
-                "dd/MM/y GGGGG",\r
+                "d/M/y/ GGGGG",\r
                 "{1}, {0}",\r
                 "{1} 'at' {0}",\r
                 "{1} 'at' {0}",\r
@@ -30,15 +62,11 @@ en_IN{
                 "{1}, {0}",\r
             }\r
             availableFormats{\r
-                EBhm{"E, h:mm B"}\r
-                EBhms{"E, h:mm:ss B"}\r
-                EHm{"E, HH:mm"}\r
-                EHms{"E, HH:mm:ss"}\r
-                Ehm{"E, h:mm a"}\r
-                Ehms{"E, h:mm:ss a"}\r
                 GyMMM{"MMM, y G"}\r
                 GyMMMEd{"E, d MMM, y G"}\r
                 GyMMMd{"d MMM, y G"}\r
+                Md{"d/M"}\r
+                yyyyM{"M/y GGGGG"}\r
                 yyyyMEd{"E, d/M/y GGGGG"}\r
                 yyyyMMM{"MMM, y G"}\r
                 yyyyMMMEd{"E, d MMM, y G"}\r
@@ -55,6 +83,10 @@ en_IN{
                     M{"E, d MMM – E, d MMM"}\r
                     d{"E, d – E, d MMM"}\r
                 }\r
+                Md{\r
+                    M{"d/M – d/M"}\r
+                    d{"d/M – d/M"}\r
+                }\r
                 yM{\r
                     M{"MM/y – MM/y G"}\r
                     y{"MM/y – MM/y G"}\r
@@ -93,8 +125,6 @@ en_IN{
                 "{1}, {0}",\r
             }\r
             availableFormats{\r
-                EBhm{"E, h:mm B"}\r
-                EBhms{"E, h:mm:ss B"}\r
                 EHm{"E, HH:mm"}\r
                 EHms{"E, HH:mm:ss"}\r
                 Ehm{"E, h:mm a"}\r
@@ -123,7 +153,7 @@ en_IN{
                 "EEEE d MMMM y G",\r
                 "d MMMM, y G",\r
                 "dd-MMM-y G",\r
-                "dd/MM/y GGGGG",\r
+                "d/M/y/ GGGGG",\r
                 "{1}, {0}",\r
                 "{1} 'at' {0}",\r
                 "{1} 'at' {0}",\r
@@ -131,7 +161,17 @@ en_IN{
                 "{1}, {0}",\r
             }\r
             availableFormats{\r
+                GyMMM{"MMM, y G"}\r
+                GyMMMEd{"E, d MMM, y G"}\r
+                GyMMMd{"d MMM, y G"}\r
+                Md{"d/M"}\r
+                yyyyM{"M/y GGGGG"}\r
                 yyyyMEd{"E d/M/y G"}\r
+                yyyyMMM{"MMM, y G"}\r
+                yyyyMMMEd{"E, d MMM, y G"}\r
+                yyyyMMMM{"MMMM, y G"}\r
+                yyyyMMMd{"d MMM, y G"}\r
+                yyyyMd{"d/M/y G"}\r
             }\r
         }\r
     }\r
@@ -144,6 +184,10 @@ en_IN{
                 future{\r
                     other{"in {0} Wed."}\r
                 }\r
+                past{\r
+                    one{"{0} Wed. ago"}\r
+                    other{"{0} Wed. ago"}\r
+                }\r
             }\r
         }\r
     }\r
index 47beda639122e92c68191e8de9aada265bbf52f3..275273173a875074ca80e8daeb04440c52d4bfd4 100644 (file)
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 en_JM{\r
     %%Parent{"en_001"}\r
-    Version{"2.1.38.69"}\r
+    Version{"2.1.44.18"}\r
 }\r
index 5ea0e5473a310c6204737726db3e60b0ac2f04d6..00c3e997420e0e79c306376cadecb13db4cc663b 100644 (file)
@@ -2,7 +2,7 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 en_NZ{\r
     %%Parent{"en_001"}\r
-    Version{"2.1.38.73"}\r
+    Version{"2.1.44.88"}\r
     calendar{\r
         generic{\r
             DateTimePatterns{\r
@@ -73,8 +73,8 @@ en_NZ{
                 Md{"d/M"}\r
                 yMd{"d/MM/y"}\r
                 yw{\r
-                    one{"'week' w 'of' y"}\r
-                    other{"'week' w 'of' y"}\r
+                    one{"'week' w 'of' Y"}\r
+                    other{"'week' w 'of' Y"}\r
                 }\r
             }\r
             intervalFormats{\r
index e264e18cb7bb2b0b78e30b45f46d54f43af786da..ad9f70d8e8053915aa02bffcc14823d4c717cb6e 100644 (file)
@@ -2,7 +2,7 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 en_ZW{\r
     %%Parent{"en_001"}\r
-    Version{"2.1.38.69"}\r
+    Version{"2.1.44.18"}\r
     calendar{\r
         generic{\r
             DateTimePatterns{\r
@@ -21,7 +21,6 @@ en_ZW{
                 "{1}, {0}",\r
             }\r
             availableFormats{\r
-                MEd{"E, d/M"}\r
                 MMMEd{"E, dd MMM"}\r
                 MMMd{"dd MMM"}\r
                 Md{"d/M"}\r
index e7a57b3fef1b0bb6e146d817582116761d0158b7..65649d7b020e5576cb1109012cf93e8b4b9c8303 100644 (file)
@@ -22,7 +22,9 @@ es{
         default{"latn"}\r
         latn{\r
             miscPatterns{\r
+                approximately{"~{0}"}\r
                 atLeast{"Más de {0}"}\r
+                atMost{"≤{0}"}\r
                 range{"{0}-{1}"}\r
             }\r
             patterns{\r
@@ -213,7 +215,7 @@ es{
         minimumGroupingDigits{"2"}\r
         native{"latn"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.88"}\r
     calendar{\r
         buddhist{\r
             eras{\r
@@ -751,8 +753,8 @@ es{
                 yQQQ{"QQQ y"}\r
                 yQQQQ{"QQQQ 'de' y"}\r
                 yw{\r
-                    one{"'semana' w 'de' y"}\r
-                    other{"'semana' w 'de' y"}\r
+                    one{"'semana' w 'de' Y"}\r
+                    other{"'semana' w 'de' Y"}\r
                 }\r
             }\r
             dayNames{\r
@@ -2579,4 +2581,36 @@ es{
         US{"estadounidense"}\r
         metric{"métrico"}\r
     }\r
+    parse{\r
+        date{\r
+            lenient{\r
+                "[\\--/]",\r
+                "[\\:∶]",\r
+            }\r
+        }\r
+        general{\r
+            lenient{\r
+                "[.․。︒﹒.。]",\r
+                "['ʼ՚᾽᾿’']",\r
+                "[%٪﹪%]",\r
+                "[؉‰]",\r
+                "[\$﹩$$]",\r
+                "[£₤]",\r
+                "[¥¥]",\r
+                "[₩₩]",\r
+                "[₨₹{Rp}{Rs}]",\r
+            }\r
+        }\r
+        number{\r
+            lenient{\r
+                "[\\-‒⁻₋−➖﹣-]",\r
+                "[,،٫、︐︑﹐﹑,、]",\r
+                "[+⁺₊➕﬩﹢+]",\r
+            }\r
+            stricter{\r
+                "[,٫︐﹐,]",\r
+                "[.․﹒.。]",\r
+            }\r
+        }\r
+    }\r
 }\r
index 385e3c34d08a372f3dd725584ced03b9ca705bc7..4ff3acdaef4978acd96cbb967166b247ea841933 100644 (file)
@@ -24,6 +24,56 @@ es_419{
                 }\r
             }\r
             patternsShort{\r
+                currencyFormat{\r
+                    1000{\r
+                        one{"¤0 K"}\r
+                        other{"¤0 K"}\r
+                    }\r
+                    10000{\r
+                        one{"¤00 K"}\r
+                        other{"¤00 K"}\r
+                    }\r
+                    100000{\r
+                        one{"¤000 K"}\r
+                        other{"¤000 K"}\r
+                    }\r
+                    1000000{\r
+                        one{"¤0 M"}\r
+                        other{"¤0 M"}\r
+                    }\r
+                    10000000{\r
+                        one{"¤00 M"}\r
+                        other{"¤00 M"}\r
+                    }\r
+                    100000000{\r
+                        one{"¤000 M"}\r
+                        other{"¤000 M"}\r
+                    }\r
+                    1000000000{\r
+                        one{"¤0000 M"}\r
+                        other{"¤0000 M"}\r
+                    }\r
+                    10000000000{\r
+                        one{"¤00 MRD"}\r
+                        other{"¤00 MRD"}\r
+                    }\r
+                    100000000000{\r
+                        one{"¤000 MRD"}\r
+                        other{"¤000 MRD"}\r
+                    }\r
+                    1000000000000{\r
+                        one{"¤0 B"}\r
+                        other{"¤0 B"}\r
+                    }\r
+                    10000000000000{\r
+                        one{"¤00 B"}\r
+                        other{"¤00 B"}\r
+                    }\r
+                    100000000000000{\r
+                        one{"¤000 B"}\r
+                        other{"¤000 B"}\r
+                    }\r
+                }\r
                 decimalFormat{\r
                     1000{\r
                         one{"0 K"}\r
@@ -57,7 +107,7 @@ es_419{
             }\r
         }\r
     }\r
-    Version{"2.1.38.39"}\r
+    Version{"2.1.43.65"}\r
     calendar{\r
         coptic{\r
             monthNames{\r
@@ -594,9 +644,12 @@ es_419{
     characterLabel{\r
         african_scripts{"Símbolos de escritura de África"}\r
         american_scripts{"Símbolos de escritura de América"}\r
-        animals_nature{"Naturaleza y animales"}\r
-        body{"Cuerpo"}\r
+        animal{"animal"}\r
+        animals_nature{"naturaleza y animales"}\r
+        arrows{"flecha"}\r
+        body{"cuerpo"}\r
         box_drawing{"Cuadro de dibujo"}\r
+        building{"edificio"}\r
         consonantal_jamo{"Jamo consonántico"}\r
         currency_symbols{"símbolos de monedas"}\r
         dash_connector{"Guión/conector"}\r
@@ -604,7 +657,7 @@ es_419{
         dingbats{"Símbolos y viñetas"}\r
         downwards_upwards_arrows{"Flechas hacia arriba y hacia abajo"}\r
         european_scripts{"Símbolos de escritura de Europa"}\r
-        flags{"Indicadores"}\r
+        flags{"banderas"}\r
         format{"Formato"}\r
         format_whitespace{"formato y espacio duro"}\r
         full_width_form_variant{"Variantes de formato de ancho completo"}\r
@@ -624,23 +677,33 @@ es_419{
         miscellaneous{"Miscelánea"}\r
         modern_scripts{"sistemas de escritura modernos"}\r
         modifier{"Modificador"}\r
+        nature{"naturaleza"}\r
+        nonspacing{"sin espaciado"}\r
         other{"otros"}\r
         paired{"Asociado"}\r
+        person{"persona"}\r
         phonetic_alphabet{"alfabeto fonético"}\r
+        place{"lugar"}\r
+        plant{"planta"}\r
+        sign_standard_symbols{"señal o símbolo"}\r
         small_form_variant{"Variantes de formato pequeño"}\r
         smiley{"Caras sonrientes"}\r
         south_asian_scripts{"sistemas de escritura de Asia del Sur"}\r
         southeast_asian_scripts{"sistemas de escritura de Asia Sudoriental"}\r
+        sport{"deporte"}\r
         symbols{"símbolo"}\r
         tone_marks{"marcas tonales"}\r
+        travel{"viaje"}\r
         travel_places{"viajes y destinos"}\r
         variant_forms{"variantes"}\r
         vocalic_jamo{"Jamo vocálico"}\r
-        weather{"Clima"}\r
+        weather{"clima"}\r
         western_asian_scripts{"sistemas de escritura de Asia Occidental"}\r
         whitespace{"espacio duro"}\r
     }\r
     delimiters{\r
+        alternateQuotationEnd{"’"}\r
+        alternateQuotationStart{"‘"}\r
         quotationEnd{"”"}\r
         quotationStart{"“"}\r
     }\r
@@ -869,4 +932,7 @@ es_419{
             }\r
         }\r
     }\r
+    measurementSystemNames{\r
+        US{"anglosajón"}\r
+    }\r
 }\r
index be051de1b45b4093e7626e08bd8c31860a49b759..c39bbcc2e04c2b824c93dab382eb38c656711e66 100644 (file)
@@ -14,7 +14,7 @@ es_AR{
             }\r
         }\r
     }\r
-    Version{"2.1.38.39"}\r
+    Version{"2.1.43.65"}\r
     calendar{\r
         generic{\r
             availableFormats{\r
index 46cb446092c6d4865bbec048ca29426f7fc6e202..e0a80a91e329d7ffbdcd591413b1b5a6053ec342 100644 (file)
@@ -13,7 +13,7 @@ es_CO{
             }\r
         }\r
     }\r
-    Version{"2.1.38.39"}\r
+    Version{"2.1.43.65"}\r
     calendar{\r
         generic{\r
             DateTimePatterns{\r
index 9a84e454e41ad38ffb3e577f183ed5f0e31be5e9..2f33452de4d267d0e2d5bf7e8b6d8a862c022698 100644 (file)
@@ -92,7 +92,7 @@ es_MX{
             }\r
         }\r
     }\r
-    Version{"2.1.38.73"}\r
+    Version{"2.1.44.5"}\r
     calendar{\r
         generic{\r
             DateTimePatterns{\r
@@ -173,13 +173,16 @@ es_MX{
                 "{1} {0}",\r
             }\r
             availableFormats{\r
-                EHm{"E H:mm"}\r
-                EHms{"E H:mm:ss"}\r
+                EHm{"E HH:mm"}\r
+                EHms{"E HH:mm:ss"}\r
                 Ehm{"E h:mm a"}\r
                 Ehms{"E h:mm:ss a"}\r
                 GyMMMd{"d MMM y G"}\r
                 Hm{"H:mm"}\r
                 Hms{"H:mm:ss"}\r
+                Hmsv{"HH:mm:ss v"}\r
+                Hmsvvvv{"HH:mm:ss (vvvv)"}\r
+                Hmv{"HH:mm v"}\r
                 MMMEd{"E d 'de' MMM"}\r
                 MMd{"d/MM"}\r
                 MMdd{"dd/MM"}\r
@@ -251,7 +254,7 @@ es_MX{
                     H{"HH–HH v"}\r
                 }\r
                 MEd{\r
-                    M{"E, d/M – E, d/M"}\r
+                    M{"E, M/d–E, M/d"}\r
                     d{"E, d/M – E, d/M"}\r
                 }\r
                 MMMEd{\r
@@ -372,44 +375,27 @@ es_MX{
         }\r
     }\r
     characterLabel{\r
-        animal{"animal"}\r
-        body{"cuerpo"}\r
-        building{"edificio"}\r
         female{"mujer"}\r
-        flag{"bandera"}\r
         format_whitespace{"Formato y espacio duro"}\r
-        heart{"corazón"}\r
         keycap{"tecla"}\r
         letterlike_symbols{"Símbolos con letras"}\r
         limited_use{"Uso limitado"}\r
         male{"hombre"}\r
         modern_scripts{"Sistemas de escritura modernos"}\r
-        nature{"naturaleza"}\r
         other{"Otros"}\r
-        person{"persona"}\r
         phonetic_alphabet{"Alfabeto fonético"}\r
-        place{"lugar"}\r
-        plant{"planta"}\r
         sign_standard_symbols{"Símbolos de señales/estándar"}\r
         smiley{"cara sonriente"}\r
         south_asian_scripts{"Sistemas de escritura de Asia Meridional"}\r
         southeast_asian_scripts{"Sistemas de escritura de Asia Sudoriental"}\r
-        sport{"deporte"}\r
         symbols{"Símbolos"}\r
         tone_marks{"Marcas tonales"}\r
-        travel{"viaje"}\r
         travel_places{"Viajes y destinos"}\r
         variant_forms{"Variantes"}\r
         weather{"tiempo"}\r
         western_asian_scripts{"Sistemas de escritura de Asia Occidental"}\r
         whitespace{"Espacio duro"}\r
     }\r
-    delimiters{\r
-        alternateQuotationEnd{"”"}\r
-        alternateQuotationStart{"“"}\r
-        quotationEnd{"»"}\r
-        quotationStart{"«"}\r
-    }\r
     fields{\r
         day{\r
             relative{\r
@@ -463,6 +449,14 @@ es_MX{
                 }\r
             }\r
         }\r
+        fri-narrow{\r
+            relativeTime{\r
+                past{\r
+                    one{"hace {0} VI"}\r
+                    other{"hace {0} VI"}\r
+                }\r
+            }\r
+        }\r
         fri-short{\r
             relative{\r
                 "-1"{"el vier. pasado"}\r
@@ -473,6 +467,10 @@ es_MX{
                 future{\r
                     other{"dentro de {0} vie."}\r
                 }\r
+                past{\r
+                    one{"hace {0} vie."}\r
+                    other{"hace {0} vie."}\r
+                }\r
             }\r
         }\r
         hour-short{\r
@@ -519,11 +517,27 @@ es_MX{
                 }\r
             }\r
         }\r
+        mon-narrow{\r
+            relativeTime{\r
+                future{\r
+                    one{"dentro de {0} LU"}\r
+                    other{"dentro de {0} LU"}\r
+                }\r
+                past{\r
+                    one{"hace {0} LU"}\r
+                    other{"hace {0} LU"}\r
+                }\r
+            }\r
+        }\r
         mon-short{\r
             relativeTime{\r
                 future{\r
                     one{"dentro de {0} lun."}\r
                 }\r
+                past{\r
+                    one{"hace {0} lun."}\r
+                    other{"hace {0} lun."}\r
+                }\r
             }\r
         }\r
         month{\r
@@ -605,6 +619,10 @@ es_MX{
                 future{\r
                     one{"dentro de {0} SA"}\r
                 }\r
+                past{\r
+                    one{"hace {0} SA"}\r
+                    other{"hace {0} SA"}\r
+                }\r
             }\r
         }\r
         second-narrow{\r
@@ -629,12 +647,22 @@ es_MX{
                 "0"{"este domingo"}\r
                 "1"{"el domingo próximo"}\r
             }\r
+            relativeTime{\r
+                future{\r
+                    one{"dentro de {0} domingo"}\r
+                    other{"dentro de {0} domingos"}\r
+                }\r
+            }\r
         }\r
         sun-narrow{\r
             relativeTime{\r
                 future{\r
                     other{"dentro de {0} DO"}\r
                 }\r
+                past{\r
+                    one{"hace {0} DO"}\r
+                    other{"hace {0} DO"}\r
+                }\r
             }\r
         }\r
         thu{\r
@@ -686,6 +714,10 @@ es_MX{
                     one{"dentro de {0} MI"}\r
                     other{"dentro de {0} MI"}\r
                 }\r
+                past{\r
+                    one{"hace {0} MI"}\r
+                    other{"hace {0} MI"}\r
+                }\r
             }\r
         }\r
         wed-short{\r
@@ -699,6 +731,10 @@ es_MX{
                     one{"dentro de {0} mié."}\r
                     other{"dentro de {0} mié."}\r
                 }\r
+                past{\r
+                    one{"hace {0} mié."}\r
+                    other{"hace {0} mié."}\r
+                }\r
             }\r
         }\r
         week{\r
@@ -716,6 +752,12 @@ es_MX{
                 }\r
             }\r
         }\r
+        weekOfMonth-narrow{\r
+            dn{"sem. de m"}\r
+        }\r
+        weekOfMonth-short{\r
+            dn{"sem. de m"}\r
+        }\r
         year{\r
             relative{\r
                 "-1"{"el año pasado"}\r
@@ -745,6 +787,7 @@ es_MX{
         }\r
     }\r
     measurementSystemNames{\r
+        UK{"imperial"}\r
         US{"estadounidense"}\r
     }\r
 }\r
index eb563f6fbe7587fbdba5073bc3fa27ed74c81f72..322f5771feaeb39b1866a190f18ad0ae0797cbe0 100644 (file)
@@ -13,7 +13,7 @@ es_PY{
             }\r
         }\r
     }\r
-    Version{"2.1.38.39"}\r
+    Version{"2.1.43.65"}\r
     calendar{\r
         gregorian{\r
             AmPmMarkers{\r
index 36eb334e706c52019e6277c0008950a5efd9e343..170aa88b76723bcf47bacda1379ef9b050a50408 100644 (file)
@@ -7,6 +7,18 @@ es_US{
         latn{\r
             patternsLong{\r
                 decimalFormat{\r
+                    1000000000{\r
+                        one{"0 billón"}\r
+                        other{"0 billones"}\r
+                    }\r
+                    10000000000{\r
+                        one{"00 billones"}\r
+                        other{"00 billones"}\r
+                    }\r
+                    100000000000{\r
+                        one{"000 billones"}\r
+                        other{"000 billones"}\r
+                    }\r
                     1000000000000{\r
                         one{"0 trillón"}\r
                         other{"0 trillones"}\r
@@ -51,11 +63,31 @@ es_US{
                         one{"0000 M ¤"}\r
                         other{"0000 M ¤"}\r
                     }\r
+                    10000000000{\r
+                        one{"¤00 B"}\r
+                        other{"¤00 B"}\r
+                    }\r
+                    100000000000{\r
+                        one{"¤000 B"}\r
+                        other{"¤000 B"}\r
+                    }\r
+                    1000000000000{\r
+                        one{"¤0 T"}\r
+                        other{"¤0 T"}\r
+                    }\r
+                    10000000000000{\r
+                        one{"¤00 T"}\r
+                        other{"¤00 T"}\r
+                    }\r
+                    100000000000000{\r
+                        one{"¤000 T"}\r
+                        other{"¤000 T"}\r
+                    }\r
                 }\r
                 decimalFormat{\r
                     1000{\r
-                        one{"0"}\r
-                        other{"0"}\r
+                        one{"0 K"}\r
+                        other{"0 K"}\r
                     }\r
                     10000{\r
                         one{"00 K"}\r
@@ -65,6 +97,18 @@ es_US{
                         one{"000 K"}\r
                         other{"000 K"}\r
                     }\r
+                    1000000000{\r
+                        one{"0 B"}\r
+                        other{"0 B"}\r
+                    }\r
+                    10000000000{\r
+                        one{"00 B"}\r
+                        other{"00 B"}\r
+                    }\r
+                    100000000000{\r
+                        one{"000 B"}\r
+                        other{"000 B"}\r
+                    }\r
                     1000000000000{\r
                         one{"0 T"}\r
                         other{"0 T"}\r
@@ -81,7 +125,7 @@ es_US{
             }\r
         }\r
     }\r
-    Version{"2.1.38.73"}\r
+    Version{"2.1.43.65"}\r
     calendar{\r
         generic{\r
             DateTimePatterns{\r
@@ -105,6 +149,8 @@ es_US{
                 MMMEd{"E d MMM"}\r
                 MMMMd{"d 'de' MMM"}\r
                 MMMd{"d MMM"}\r
+                yyyyMEd{"E, d/M/y GGGGG"}\r
+                yyyyMMM{"MMM y G"}\r
             }\r
             intervalFormats{\r
                 Md{\r
@@ -145,7 +191,7 @@ es_US{
                 "EEEE, d 'de' MMMM 'de' y",\r
                 "d 'de' MMMM 'de' y",\r
                 "d MMM y",\r
-                "d/M/yy",\r
+                "d/M/y",\r
                 "{1} {0}",\r
                 "{1}, {0}",\r
                 "{1}, {0}",\r
@@ -224,6 +270,7 @@ es_US{
                 }\r
                 MEd{\r
                     M{"E, d/M – E, d/M"}\r
+                    d{"E, d/M – E, d/M"}\r
                 }\r
                 MMMEd{\r
                     M{"E d 'de' MMM – E d 'de' MMM"}\r
@@ -261,35 +308,44 @@ es_US{
                     d{"d–d 'de' MMM 'de' y"}\r
                 }\r
             }\r
+            quarters{\r
+                format{\r
+                    wide{\r
+                        "1.er trimestre",\r
+                        "2.º trimestre",\r
+                        "3.er trimestre",\r
+                        "4.º trimestre",\r
+                    }\r
+                }\r
+                stand-alone{\r
+                    wide{\r
+                        "1.er trimestre",\r
+                        "2.º trimestre",\r
+                        "3.er trimestre",\r
+                        "4.º trimestre",\r
+                    }\r
+                }\r
+            }\r
         }\r
     }\r
     characterLabel{\r
-        animal{"animal"}\r
-        body{"cuerpo"}\r
-        building{"edificio"}\r
+        arrows{"Flechas"}\r
         female{"mujer"}\r
-        flag{"bandera"}\r
         format_whitespace{"Formato y espacio duro"}\r
-        heart{"corazón"}\r
         keycap{"tecla"}\r
         letterlike_symbols{"Símbolos con letras"}\r
         limited_use{"Uso limitado"}\r
         male{"hombre"}\r
         modern_scripts{"Sistemas de escritura modernos"}\r
-        nature{"naturaleza"}\r
+        nonspacing{"Sin espaciado"}\r
         other{"Otros"}\r
-        person{"persona"}\r
         phonetic_alphabet{"Alfabeto fonético"}\r
-        place{"lugar"}\r
-        plant{"planta"}\r
         sign_standard_symbols{"Símbolos de señales/estándar"}\r
         smiley{"cara sonriente"}\r
         south_asian_scripts{"Sistemas de escritura de Asia Meridional"}\r
         southeast_asian_scripts{"Sistemas de escritura de Asia Sudoriental"}\r
-        sport{"deporte"}\r
         symbols{"Símbolos"}\r
         tone_marks{"Marcas tonales"}\r
-        travel{"viaje"}\r
         travel_places{"Viajes y destinos"}\r
         variant_forms{"Variantes"}\r
         weather{"tiempo"}\r
@@ -306,6 +362,7 @@ es_US{
         day{\r
             relative{\r
                 "-1"{"ayer"}\r
+                "-2"{"anteayer"}\r
                 "0"{"hoy"}\r
                 "1"{"mañana"}\r
                 "2"{"pasado mañana"}\r
@@ -329,21 +386,59 @@ es_US{
         fri{\r
             relativeTime{\r
                 future{\r
+                    one{"dentro de {0} viernes"}\r
                     other{"dentro de {0} viernes"}\r
                 }\r
             }\r
         }\r
+        fri-narrow{\r
+            relativeTime{\r
+                past{\r
+                    one{"hace {0} VI"}\r
+                    other{"hace {0} VI"}\r
+                }\r
+            }\r
+        }\r
         fri-short{\r
             relativeTime{\r
                 future{\r
+                    one{"dentro de {0} vie."}\r
                     other{"dentro de {0} vie."}\r
                 }\r
             }\r
         }\r
+        mon{\r
+            relativeTime{\r
+                future{\r
+                    one{"dentro de {0} lunes"}\r
+                    other{"dentro de {0} lunes"}\r
+                }\r
+                past{\r
+                    one{"hace {0} lunes"}\r
+                }\r
+            }\r
+        }\r
+        mon-narrow{\r
+            relativeTime{\r
+                future{\r
+                    one{"dentro de {0} LU"}\r
+                    other{"dentro de {0} LU"}\r
+                }\r
+                past{\r
+                    one{"hace {0} LU"}\r
+                    other{"hace {0} LU"}\r
+                }\r
+            }\r
+        }\r
         mon-short{\r
             relativeTime{\r
                 future{\r
                     one{"dentro de {0} lun."}\r
+                    other{"dentro de {0} lun."}\r
+                }\r
+                past{\r
+                    one{"hace {0} lun."}\r
+                    other{"hace {0} lun."}\r
                 }\r
             }\r
         }\r
@@ -354,30 +449,57 @@ es_US{
                 "1"{"el mes próximo"}\r
             }\r
         }\r
+        sat{\r
+            relativeTime{\r
+                future{\r
+                    one{"dentro de {0} sábado"}\r
+                    other{"dentro de {0} sábados"}\r
+                }\r
+            }\r
+        }\r
         sat-narrow{\r
             relativeTime{\r
                 future{\r
                     one{"dentro de {0} SA"}\r
                 }\r
+                past{\r
+                    one{"hace {0} SA"}\r
+                    other{"hace {0} SA"}\r
+                }\r
+            }\r
+        }\r
+        sun{\r
+            relativeTime{\r
+                future{\r
+                    one{"dentro de {0} domingo"}\r
+                    other{"dentro de {0} domingos"}\r
+                }\r
             }\r
         }\r
         sun-narrow{\r
             relativeTime{\r
                 future{\r
+                    one{"dentro de {0} DO"}\r
                     other{"dentro de {0} DO"}\r
                 }\r
+                past{\r
+                    one{"hace {0} DO"}\r
+                    other{"hace {0} DO"}\r
+                }\r
             }\r
         }\r
         thu{\r
             relativeTime{\r
                 future{\r
                     one{"dentro de {0} jueves"}\r
+                    other{"dentro de {0} jueves"}\r
                 }\r
             }\r
         }\r
         thu-narrow{\r
             relativeTime{\r
                 future{\r
+                    one{"dentro de {0} JU"}\r
                     other{"dentro de {0} JU"}\r
                 }\r
             }\r
@@ -393,6 +515,36 @@ es_US{
             relativeTime{\r
                 future{\r
                     one{"dentro de {0} miércoles"}\r
+                    other{"dentro de {0} miércoles"}\r
+                }\r
+            }\r
+        }\r
+        wed-narrow{\r
+            relativeTime{\r
+                future{\r
+                    one{"dentro de {0} MI"}\r
+                    other{"dentro de {0} MI"}\r
+                }\r
+                past{\r
+                    one{"hace {0} MI"}\r
+                    other{"hace {0} MI"}\r
+                }\r
+            }\r
+        }\r
+        wed-short{\r
+            relative{\r
+                "-1"{"el mie. pasado"}\r
+                "0"{"este mié."}\r
+                "1"{"el próximo mié."}\r
+            }\r
+            relativeTime{\r
+                future{\r
+                    one{"dentro de {0} mié."}\r
+                    other{"dentro de {0} mié."}\r
+                }\r
+                past{\r
+                    one{"hace {0} mié."}\r
+                    other{"hace {0} mié."}\r
                 }\r
             }\r
         }\r
@@ -403,6 +555,15 @@ es_US{
                 "1"{"la semana próxima"}\r
             }\r
         }\r
+        weekOfMonth-narrow{\r
+            dn{"sem. de m"}\r
+        }\r
+        weekOfMonth-short{\r
+            dn{"sem. de m"}\r
+        }\r
+        weekdayOfMonth{\r
+            dn{"día de la semana del mes"}\r
+        }\r
         weekdayOfMonth-narrow{\r
             dn{"día de sem. de mes"}\r
         }\r
index 35022c0b51d61b80e582fe22e4da765b12713a26..6826a59583f55898a7412076ef3c82e2ea17f8f8 100644 (file)
@@ -14,7 +14,7 @@ es_UY{
             }\r
         }\r
     }\r
-    Version{"2.1.38.39"}\r
+    Version{"2.1.44.79"}\r
     calendar{\r
         gregorian{\r
             AmPmMarkers{\r
index a5a2afe2151b24eb33c65e9b26b61041fddafd57..7910b58bd233c79a1a184d796d0a9fba50ddf275 100644 (file)
@@ -13,7 +13,7 @@ es_VE{
             }\r
         }\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.41.45"}\r
     calendar{\r
         gregorian{\r
             AmPmMarkers{\r
index 83fb171f4972dcf143041b880d400e399867f027..845a56dd20fd862f0499bc4978b618108a19c29e 100644 (file)
@@ -19,7 +19,9 @@ et{
         default{"latn"}\r
         latn{\r
             miscPatterns{\r
-                atLeast{"⩾{0}"}\r
+                approximately{"~ {0}"}\r
+                atLeast{"≥{0}"}\r
+                atMost{"≤ {0}"}\r
                 range{"{0}‒{1}"}\r
             }\r
             patterns{\r
@@ -210,7 +212,7 @@ et{
         minimumGroupingDigits{"2"}\r
         native{"latn"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.91"}\r
     calendar{\r
         buddhist{\r
             eras{\r
@@ -1862,4 +1864,36 @@ et{
         US{"USA mõõdustik"}\r
         metric{"meetermõõdustik"}\r
     }\r
+    parse{\r
+        date{\r
+            lenient{\r
+                "[\\--/]",\r
+                "[\\:∶]",\r
+            }\r
+        }\r
+        general{\r
+            lenient{\r
+                "[.․。︒﹒.。]",\r
+                "['ʼ՚᾽᾿’']",\r
+                "[%٪﹪%]",\r
+                "[؉‰]",\r
+                "[\$﹩$$]",\r
+                "[£₤]",\r
+                "[¥¥]",\r
+                "[₩₩]",\r
+                "[₨₹{Rp}{Rs}]",\r
+            }\r
+        }\r
+        number{\r
+            lenient{\r
+                "[\\-‒⁻₋−➖﹣-]",\r
+                "[,،٫、︐︑﹐﹑,、]",\r
+                "[+⁺₊➕﬩﹢+]",\r
+            }\r
+            stricter{\r
+                "[,٫︐﹐,]",\r
+                "[.․﹒.。]",\r
+            }\r
+        }\r
+    }\r
 }\r
index 6a17641fa42eeab1832acb3e650d0ec8ecd990de..c54d7ceffe323ca178fc60a998e746df2b0bb21e 100644 (file)
@@ -22,7 +22,9 @@ eu{
         default{"latn"}\r
         latn{\r
             miscPatterns{\r
+                approximately{"~{0}"}\r
                 atLeast{"{0}+"}\r
+                atMost{"≤{0}"}\r
                 range{"{0}-{1}"}\r
             }\r
             patterns{\r
@@ -213,7 +215,7 @@ eu{
         minimumGroupingDigits{"1"}\r
         native{"latn"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.65"}\r
     calendar{\r
         buddhist{\r
             eras{\r
@@ -407,7 +409,7 @@ eu{
                 "HH:mm",\r
                 "y('e')'ko' MMMM'ren' d('a'), EEEE",\r
                 "y('e')'ko' MMMM'ren' d('a')",\r
-                "y MMM d",\r
+                "y('e')'ko' MMM d('a')",\r
                 "yy/M/d",\r
                 "{1} {0}",\r
                 "{1} {0}",\r
@@ -542,13 +544,13 @@ eu{
                         "lr.",\r
                     }\r
                     wide{\r
-                        "Igandea",\r
-                        "Astelehena",\r
-                        "Asteartea",\r
-                        "Asteazkena",\r
-                        "Osteguna",\r
-                        "Ostirala",\r
-                        "Larunbata",\r
+                        "igandea",\r
+                        "astelehena",\r
+                        "asteartea",\r
+                        "asteazkena",\r
+                        "osteguna",\r
+                        "ostirala",\r
+                        "larunbata",\r
                     }\r
                 }\r
             }\r
@@ -807,17 +809,17 @@ eu{
                     }\r
                     wide{\r
                         "urtarrila",\r
-                        "Otsaila",\r
-                        "Martxoa",\r
-                        "Apirila",\r
-                        "Maiatza",\r
-                        "Ekaina",\r
-                        "Uztaila",\r
-                        "Abuztua",\r
-                        "Iraila",\r
-                        "Urria",\r
-                        "Azaroa",\r
-                        "Abendua",\r
+                        "otsaila",\r
+                        "martxoa",\r
+                        "apirila",\r
+                        "maiatza",\r
+                        "ekaina",\r
+                        "uztaila",\r
+                        "abuztua",\r
+                        "iraila",\r
+                        "urria",\r
+                        "azaroa",\r
+                        "abendua",\r
                     }\r
                 }\r
             }\r
@@ -1066,12 +1068,12 @@ eu{
             }\r
             relativeTime{\r
                 future{\r
-                    one{"{0} ostiral barru"}\r
-                    other{"{0} ostiral barru"}\r
+                    one{"{0} or. barru"}\r
+                    other{"{0} or. barru"}\r
                 }\r
                 past{\r
-                    one{"Duela {0} ostiral"}\r
-                    other{"Duela {0} ostiral"}\r
+                    one{"Duela {0} or."}\r
+                    other{"Duela {0} or."}\r
                 }\r
             }\r
         }\r
@@ -1083,12 +1085,12 @@ eu{
             }\r
             relativeTime{\r
                 future{\r
-                    one{"{0} ostiral barru"}\r
-                    other{"{0} ostiral barru"}\r
+                    one{"{0} or. barru"}\r
+                    other{"{0} or. barru"}\r
                 }\r
                 past{\r
-                    one{"Duela {0} ostiral"}\r
-                    other{"Duela {0} ostiral"}\r
+                    one{"Duela {0} or."}\r
+                    other{"Duela {0} or."}\r
                 }\r
             }\r
         }\r
@@ -1218,12 +1220,12 @@ eu{
             }\r
             relativeTime{\r
                 future{\r
-                    one{"{0} astelehen barru"}\r
-                    other{"{0} astelehen barru"}\r
+                    one{"{0} al. barru"}\r
+                    other{"{0} al. barru"}\r
                 }\r
                 past{\r
-                    one{"Duela {0} astelehen"}\r
-                    other{"Duela {0} astelehen"}\r
+                    one{"Duela {0} al."}\r
+                    other{"Duela {0} al."}\r
                 }\r
             }\r
         }\r
@@ -1340,12 +1342,12 @@ eu{
             }\r
             relativeTime{\r
                 future{\r
-                    one{"{0} larunbat barru"}\r
-                    other{"{0} larunbat barru"}\r
+                    one{"{0} lr. barru"}\r
+                    other{"{0} lr. barru"}\r
                 }\r
                 past{\r
-                    one{"Duela {0} larunbat"}\r
-                    other{"Duela {0} larunbat"}\r
+                    one{"Duela {0} lr."}\r
+                    other{"Duela {0} lr."}\r
                 }\r
             }\r
         }\r
@@ -1357,12 +1359,12 @@ eu{
             }\r
             relativeTime{\r
                 future{\r
-                    one{"{0} larunbat barru"}\r
-                    other{"{0} larunbat barru"}\r
+                    one{"{0} lr. barru"}\r
+                    other{"{0} lr. barru"}\r
                 }\r
                 past{\r
-                    one{"Duela {0} larunbat"}\r
-                    other{"Duela {0} larunbat"}\r
+                    one{"Duela {0} lr."}\r
+                    other{"Duela {0} lr."}\r
                 }\r
             }\r
         }\r
@@ -1433,12 +1435,12 @@ eu{
             }\r
             relativeTime{\r
                 future{\r
-                    one{"{0} igande barru"}\r
-                    other{"{0} igande barru"}\r
+                    one{"{0} ig. barru"}\r
+                    other{"{0} ig. barru"}\r
                 }\r
                 past{\r
-                    one{"Duela {0} igande"}\r
-                    other{"Duela {0} igande"}\r
+                    one{"Duela {0} ig."}\r
+                    other{"Duela {0} ig."}\r
                 }\r
             }\r
         }\r
@@ -1450,12 +1452,12 @@ eu{
             }\r
             relativeTime{\r
                 future{\r
-                    one{"{0} igande barru"}\r
-                    other{"{0} igande barru"}\r
+                    one{"{0} ig. barru"}\r
+                    other{"{0} ig. barru"}\r
                 }\r
                 past{\r
-                    one{"Duela {0} igande"}\r
-                    other{"Duela {0} igande"}\r
+                    one{"Duela {0} ig."}\r
+                    other{"Duela {0} ig."}\r
                 }\r
             }\r
         }\r
@@ -1467,12 +1469,12 @@ eu{
             }\r
             relativeTime{\r
                 future{\r
-                    one{"{0} ostegun barru"}\r
-                    other{"{0} ostegun barru"}\r
+                    one{"{0} og. barru"}\r
+                    other{"{0} og. barru"}\r
                 }\r
                 past{\r
-                    one{"Duela {0} ostegun"}\r
-                    other{"Duela {0} ostegun"}\r
+                    one{"Duela {0} og."}\r
+                    other{"Duela {0} og."}\r
                 }\r
             }\r
         }\r
@@ -1484,12 +1486,12 @@ eu{
             }\r
             relativeTime{\r
                 future{\r
-                    one{"{0} ostegun barru"}\r
-                    other{"{0} ostegun barru"}\r
+                    one{"{0} og. barru"}\r
+                    other{"{0} og. barru"}\r
                 }\r
                 past{\r
-                    one{"Duela {0} ostegun"}\r
-                    other{"Duela {0} ostegun"}\r
+                    one{"Duela {0} og."}\r
+                    other{"Duela {0} og."}\r
                 }\r
             }\r
         }\r
@@ -1501,12 +1503,12 @@ eu{
             }\r
             relativeTime{\r
                 future{\r
-                    one{"{0} ostegun barru"}\r
-                    other{"{0} ostegun barru"}\r
+                    one{"{0} og. barru"}\r
+                    other{"{0} og. barru"}\r
                 }\r
                 past{\r
-                    one{"Duela {0} ostegun"}\r
-                    other{"Duela {0} ostegun"}\r
+                    one{"Duela {0} og."}\r
+                    other{"Duela {0} og."}\r
                 }\r
             }\r
         }\r
@@ -1552,12 +1554,12 @@ eu{
             }\r
             relativeTime{\r
                 future{\r
-                    one{"{0} astearte barru"}\r
-                    other{"{0} astearte barru"}\r
+                    one{"{0} ar. barru"}\r
+                    other{"{0} ar. barru"}\r
                 }\r
                 past{\r
-                    one{"Duela {0} astearte"}\r
-                    other{"Duela {0} astearte"}\r
+                    one{"Duela {0} ar."}\r
+                    other{"Duela {0} ar."}\r
                 }\r
             }\r
         }\r
@@ -1586,12 +1588,12 @@ eu{
             }\r
             relativeTime{\r
                 future{\r
-                    one{"{0} asteazken barru"}\r
-                    other{"{0} asteazken barru"}\r
+                    one{"{0} az. barru"}\r
+                    other{"{0} az. barru"}\r
                 }\r
                 past{\r
-                    one{"Duela {0} asteazken"}\r
-                    other{"Duela {0} asteazken"}\r
+                    one{"Duela {0} az."}\r
+                    other{"Duela {0} az."}\r
                 }\r
             }\r
         }\r
@@ -1603,12 +1605,12 @@ eu{
             }\r
             relativeTime{\r
                 future{\r
-                    one{"{0} asteazken barru"}\r
-                    other{"{0} asteazken barru"}\r
+                    one{"{0} az. barru"}\r
+                    other{"{0} az. barru"}\r
                 }\r
                 past{\r
-                    one{"Duela {0} asteazken"}\r
-                    other{"Duela {0} asteazken"}\r
+                    one{"Duela {0} az."}\r
+                    other{"Duela {0} az."}\r
                 }\r
             }\r
         }\r
index dba713c5c90e6761861f92edb0053b7f79b0e77c..1169f211bd924162df47efff099733d39955456a 100644 (file)
@@ -63,7 +63,9 @@ fa{
         default{"arabext"}\r
         latn{\r
             miscPatterns{\r
+                approximately{"~{0}"}\r
                 atLeast{"‎{0}+‎"}\r
+                atMost{"≤{0}"}\r
                 range{"{0}–{1}"}\r
             }\r
             patterns{\r
@@ -248,13 +250,13 @@ fa{
             }\r
             plural{\r
                 one{"او {0} فیلم در هفته می‌بیند که کمدی است."}\r
-                other{"او {0} فیلم در هفته می‌بیند که کمدی هستند."}\r
+                other{"او {0} فیلم در هفته می‌بیند که کمدی‌اند."}\r
             }\r
         }\r
         minimumGroupingDigits{"1"}\r
         native{"arabext"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.65"}\r
     calendar{\r
         buddhist{\r
             eras{\r
@@ -1674,7 +1676,7 @@ fa{
         hanzi_traditional{"هانزی (سنتی)"}\r
         heart{"قلب"}\r
         historic_scripts{"دبیره‌های تاریخی"}\r
-        ideographic_desc_characters{"نویسه‌های توصیفی اندیش‌نگاری"}\r
+        ideographic_desc_characters{"نویسه‌های توصیفی اندیشه‌نگاری"}\r
         japanese_kana{"کانای ژاپنی"}\r
         kanbun{"کانبوم"}\r
         kanji{"کانجی"}\r
@@ -2630,8 +2632,13 @@ fa{
         general{\r
             lenient{\r
                 "[.․。︒﹒.。]",\r
+                "['ʼ՚᾽᾿’']",\r
+                "[%٪﹪%]",\r
+                "[؉‰]",\r
                 "[\$﹩$$]",\r
                 "[£₤]",\r
+                "[¥¥]",\r
+                "[₩₩]",\r
                 "[₨₹{Rp}{Rs}]",\r
             }\r
         }\r
index 2e598e2d35bac68613efe823d51d7c7dc42db477..eb2e15eff020c932a76531f132c665c3a08e5a51 100644 (file)
@@ -18,7 +18,7 @@ fa_AF{
             }\r
         }\r
     }\r
-    Version{"2.1.38.39"}\r
+    Version{"2.1.43.65"}\r
     calendar{\r
         gregorian{\r
             appendItems{\r
diff --git a/source/data/locales/ff_CM.txt b/source/data/locales/ff_CM.txt
deleted file mode 100644 (file)
index 80fc708..0000000
+++ /dev/null
@@ -1,5 +0,0 @@
-// © 2016 and later: Unicode, Inc. and others.\r
-// License & terms of use: http://www.unicode.org/copyright.html#License\r
-ff_CM{\r
-    Version{"2.1.38.69"}\r
-}\r
diff --git a/source/data/locales/ff_GN.txt b/source/data/locales/ff_GN.txt
deleted file mode 100644 (file)
index c03bd8c..0000000
+++ /dev/null
@@ -1,5 +0,0 @@
-// © 2016 and later: Unicode, Inc. and others.\r
-// License & terms of use: http://www.unicode.org/copyright.html#License\r
-ff_GN{\r
-    Version{"2.1.38.69"}\r
-}\r
diff --git a/source/data/locales/ff_MR.txt b/source/data/locales/ff_MR.txt
deleted file mode 100644 (file)
index 0f5d4ba..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
-// © 2016 and later: Unicode, Inc. and others.\r
-// License & terms of use: http://www.unicode.org/copyright.html#License\r
-ff_MR{\r
-    Version{"2.1.39.11"}\r
-    calendar{\r
-        gregorian{\r
-            DateTimePatterns{\r
-                "h:mm:ss a zzzz",\r
-                "h:mm:ss a z",\r
-                "h:mm:ss a",\r
-                "h:mm a",\r
-                "EEEE d MMMM y",\r
-                "d MMMM y",\r
-                "d MMM, y",\r
-                "d/M/y",\r
-                "{1} {0}",\r
-                "{1} {0}",\r
-                "{1} {0}",\r
-                "{1} {0}",\r
-                "{1} {0}",\r
-            }\r
-        }\r
-    }\r
-}\r
diff --git a/source/data/locales/ff_SN.txt b/source/data/locales/ff_SN.txt
deleted file mode 100644 (file)
index 041e8ac..0000000
+++ /dev/null
@@ -1,5 +0,0 @@
-// © 2016 and later: Unicode, Inc. and others.\r
-// License & terms of use: http://www.unicode.org/copyright.html#License\r
-ff_SN{\r
-    Version{"2.1.38.69"}\r
-}\r
index a4f653e9e909a21233f753f9b2b86fdb4db40f47..31a4029d0049eb6d7f072dc31f5da552bc969959 100644 (file)
@@ -23,7 +23,9 @@ fi{
         default{"latn"}\r
         latn{\r
             miscPatterns{\r
+                approximately{"~{0}"}\r
                 atLeast{"vähintään {0}"}\r
+                atMost{"≤{0}"}\r
                 range{"{0}–{1}"}\r
             }\r
             patterns{\r
@@ -214,7 +216,7 @@ fi{
         minimumGroupingDigits{"1"}\r
         native{"latn"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.91"}\r
     calendar{\r
         buddhist{\r
             DateTimePatterns{\r
@@ -492,7 +494,7 @@ fi{
                 Bhm{"h.mm B"}\r
                 Bhms{"h.mm.ss B"}\r
                 E{"ccc"}\r
-                EBhm{"E h.mm. B"}\r
+                EBhm{"E h.mm B"}\r
                 EBhms{"E h.mm.ss B"}\r
                 EHm{"E HH.mm"}\r
                 EHms{"E HH.mm.ss"}\r
@@ -677,6 +679,8 @@ fi{
                 Gy{"y G"}\r
                 GyMMM{"LLL y G"}\r
                 GyMMMEd{"E d. MMM y G"}\r
+                GyMMMMEd{"E d. MMMM y G"}\r
+                GyMMMMd{"d. MMMM y G"}\r
                 GyMMMd{"d. MMM y G"}\r
                 H{"H"}\r
                 Hm{"H.mm"}\r
@@ -687,6 +691,7 @@ fi{
                 MEd{"E d.M."}\r
                 MMM{"LLL"}\r
                 MMMEd{"ccc d. MMM"}\r
+                MMMMEd{"ccc d. MMMM"}\r
                 MMMMW{\r
                     one{"LLLL'n' W. 'viikko'"}\r
                     other{"LLLL'n' W. 'viikko'"}\r
@@ -708,7 +713,9 @@ fi{
                 yMMM{"LLL y"}\r
                 yMMMEd{"E d. MMM y"}\r
                 yMMMM{"LLLL y"}\r
+                yMMMMEd{"E d. MMMM y"}\r
                 yMMMMccccd{"cccc d. MMMM y"}\r
+                yMMMMd{"d. MMMM y"}\r
                 yMMMd{"d. MMM y"}\r
                 yMd{"d.M.y"}\r
                 yQQQ{"QQQ y"}\r
@@ -920,6 +927,14 @@ fi{
                 MMMM{\r
                     M{"LLL–LLLL"}\r
                 }\r
+                MMMMEd{\r
+                    M{"E d. MMMM – E d. MMMM"}\r
+                    d{"E d. – E d. MMMM"}\r
+                }\r
+                MMMMd{\r
+                    M{"d. MMMM – d. MMMM"}\r
+                    d{"d.–d. MMMM"}\r
+                }\r
                 MMMd{\r
                     M{"d. MMMM – d. MMMM"}\r
                     d{"d.–d. MMMM"}\r
@@ -975,6 +990,16 @@ fi{
                     M{"LLL–LLLL y"}\r
                     y{"LLLL y – LLLL y"}\r
                 }\r
+                yMMMMEd{\r
+                    M{"E d. MMMM – E d. MMMM y"}\r
+                    d{"E d. – E d. MMMM y"}\r
+                    y{"E d. MMMM y – E d. MMMM y"}\r
+                }\r
+                yMMMMd{\r
+                    M{"d. MMMM – d. MMMM y"}\r
+                    d{"d.–d. MMMM y"}\r
+                    y{"d. MMMM y – d. MMMM y"}\r
+                }\r
                 yMMMd{\r
                     M{"d. MMMM – d. MMMM y"}\r
                     d{"d.–d. MMMM y"}\r
@@ -2455,8 +2480,13 @@ fi{
         general{\r
             lenient{\r
                 "[.․。︒﹒.。]",\r
+                "['ʼ՚᾽᾿’']",\r
+                "[%٪﹪%]",\r
+                "[؉‰]",\r
                 "[\$﹩$$]",\r
                 "[£₤]",\r
+                "[¥¥]",\r
+                "[₩₩]",\r
                 "[₨₹{Rp}{Rs}]",\r
             }\r
         }\r
index aed59a844e858669247603ab4b118ca68e84ceac..77ae193f46485f8a76cf587e71b13cc668bb3c8c 100644 (file)
@@ -19,7 +19,9 @@ fil{
         default{"latn"}\r
         latn{\r
             miscPatterns{\r
+                approximately{"~{0}"}\r
                 atLeast{"{0}+"}\r
+                atMost{"≤{0}"}\r
                 range{"{0}-{1}"}\r
             }\r
             patterns{\r
@@ -211,7 +213,7 @@ fil{
         minimumGroupingDigits{"1"}\r
         native{"latn"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.91"}\r
     calendar{\r
         buddhist{\r
             DateTimePatterns{\r
@@ -2650,23 +2652,23 @@ fil{
         building{"gusali"}\r
         bullets_stars{"bullet o bituin"}\r
         consonantal_jamo{"consonantal jamo"}\r
-        currency_symbols{"simbolo ng currency"}\r
+        currency_symbols{"simbolo ng pera"}\r
         dash_connector{"dash o connector"}\r
         digits{"digit"}\r
         dingbats{"dingbat"}\r
-        divination_symbols{"divination symbol"}\r
+        divination_symbols{"simbolo ng paghula"}\r
         downwards_arrows{"pababang arrow"}\r
         downwards_upwards_arrows{"pababa at pataas na arrow"}\r
-        east_asian_scripts{"Script ng Silangang-Asya"}\r
+        east_asian_scripts{"Script ng Silangang Asya"}\r
         emoji{"Emoji"}\r
-        european_scripts{"Mga Script sa Europa"}\r
+        european_scripts{"Script sa Europa"}\r
         female{"babae"}\r
         flag{"bandila"}\r
         flags{"mga bandila"}\r
         food_drink{"pagkain at inumin"}\r
         format{"format"}\r
-        format_whitespace{"format & whitespace"}\r
-        full_width_form_variant{"Mga Baryanteng Nasa Anyo na Buo ang Lapad"}\r
+        format_whitespace{"format at whitespace"}\r
+        full_width_form_variant{"full-width variant"}\r
         geometric_shapes{"geometrikong hugis"}\r
         half_width_form_variant{"half-width variant"}\r
         han_characters{"Han character"}\r
@@ -2689,7 +2691,7 @@ fil{
         math_symbols{"simbolo na pangmatematika"}\r
         middle_eastern_scripts{"Script sa Gitnang-silangan"}\r
         miscellaneous{"sari-sari"}\r
-        modern_scripts{"modern script"}\r
+        modern_scripts{"modernong script"}\r
         modifier{"modifier"}\r
         musical_symbols{"simbolo ng musika"}\r
         nature{"kalikasan"}\r
@@ -2699,7 +2701,7 @@ fil{
         other{"Iba pa"}\r
         paired{"nakapares"}\r
         person{"tao"}\r
-        phonetic_alphabet{"Ponetikong Alpabeto"}\r
+        phonetic_alphabet{"ponetikong alpabeto"}\r
         pictographs{"pictograph"}\r
         place{"lugar"}\r
         plant{"halaman"}\r
@@ -2715,13 +2717,13 @@ fil{
         sport{"sport"}\r
         symbols{"simbolo"}\r
         technical_symbols{"teknikal na simbolo"}\r
-        tone_marks{"marka ng tone"}\r
+        tone_marks{"marka ng tono"}\r
         travel{"paglalakbay"}\r
         travel_places{"paglalakbay o lugar"}\r
         upwards_arrows{"mga pataas na arrow"}\r
         variant_forms{"baryante"}\r
         vocalic_jamo{"vocalic jamo"}\r
-        weather{"lagay ng panahon"}\r
+        weather{"panahon"}\r
         western_asian_scripts{"Script sa Kanlurang Asya"}\r
         whitespace{"whitespace"}\r
     }\r
@@ -3479,6 +3481,15 @@ fil{
         weekday{\r
             dn{"araw ng linggo"}\r
         }\r
+        weekday-narrow{\r
+            dn{"araw ng linggo"}\r
+        }\r
+        weekday-short{\r
+            dn{"araw ng linggo"}\r
+        }\r
+        weekdayOfMonth{\r
+            dn{"karaniwang araw ng buwan"}\r
+        }\r
         weekdayOfMonth-narrow{\r
             dn{"karaniwang araw ng buwan"}\r
         }\r
@@ -3542,6 +3553,12 @@ fil{
         zone{\r
             dn{"time zone"}\r
         }\r
+        zone-narrow{\r
+            dn{"zone"}\r
+        }\r
+        zone-short{\r
+            dn{"zone"}\r
+        }\r
     }\r
     listPattern{\r
         or{\r
@@ -3586,4 +3603,36 @@ fil{
         US{"US"}\r
         metric{"Metriko"}\r
     }\r
+    parse{\r
+        date{\r
+            lenient{\r
+                "[\\--/]",\r
+                "[\\:∶]",\r
+            }\r
+        }\r
+        general{\r
+            lenient{\r
+                "[.․。︒﹒.。]",\r
+                "['ʼ՚᾽᾿’']",\r
+                "[%٪﹪%]",\r
+                "[؉‰]",\r
+                "[\$﹩$$]",\r
+                "[£₤]",\r
+                "[¥¥]",\r
+                "[₩₩]",\r
+                "[₨₹{Rp}{Rs}]",\r
+            }\r
+        }\r
+        number{\r
+            lenient{\r
+                "[\\-‒⁻₋−➖﹣-]",\r
+                "[,،٫、︐︑﹐﹑,、]",\r
+                "[+⁺₊➕﬩﹢+]",\r
+            }\r
+            stricter{\r
+                "[,٫︐﹐,]",\r
+                "[.․﹒.。]",\r
+            }\r
+        }\r
+    }\r
 }\r
index 4dad0e4108edfd973c9119a3c0178398c8377727..2093eaf5521cf9917b9da7817ee1e7db6daffb30 100644 (file)
@@ -210,7 +210,7 @@ fo{
         minimumGroupingDigits{"1"}\r
         native{"latn"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.41.34"}\r
     calendar{\r
         generic{\r
             DateTimePatterns{\r
@@ -1729,8 +1729,13 @@ fo{
         general{\r
             lenient{\r
                 "[.․。︒﹒.。]",\r
+                "['ʼ՚᾽᾿’']",\r
+                "[%٪﹪%]",\r
+                "[؉‰]",\r
                 "[\$﹩$$]",\r
                 "[£₤]",\r
+                "[¥¥]",\r
+                "[₩₩]",\r
                 "[₨₹{Rp}{Rs}]",\r
             }\r
         }\r
index 204734d2c24cd2aebbbf17b6b8944ebc0093854a..379486c69bc44724d7fb44223b0b5a05fd711c62 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 fr{\r
-    AuxExemplarCharacters{"[á Ã¥ Ã¤ Ã£ Ä\81 Ä\93 Ã­ Ã¬ Ä« Ã± Ã³ Ã² Ã¶ Ã¸ ú ǔ]"}\r
+    AuxExemplarCharacters{"[á Ã¥ Ã¤ Ã£ Ä\81 Ä\87 Ä\93 Ã­ Ã¬ Ä« Ä³ Ã± Ã³ Ã² Ã¶ Ãµ Ã¸ Å\99 Å¡ Å¿ Ã\9f ú ǔ]"}\r
     Ellipsis{\r
         final{"{0}…"}\r
         initial{"… {0}"}\r
@@ -15,14 +15,21 @@ fr{
         " x y ÿ z]"\r
     }\r
     ExemplarCharactersIndex{"[A B C D E F G H I J K L M N O P Q R S T U V W X Y Z]"}\r
-    ExemplarCharactersNumbers{"[  \\- , % ‰ + 0 1 2 3 4 5 6 7 8 9]"}\r
+    ExemplarCharactersNumbers{"[  \\- , . % ‰ + − 0 1 2 ² 3 ³ 4 5 6 7 8 9 ᵈ ᵉ ʳ ˢ]"}\r
     ExemplarCharactersPunctuation{"[\\- ‐ – — , ; \\: ! ? . … ’ \u0022 “ ” « » ( ) \\[ \\] § @ * / \\& # † ‡]"}\r
     MoreInformation{"?"}\r
     NumberElements{\r
+        arab{\r
+            symbols{\r
+                plusSign{"‏+"}\r
+            }\r
+        }\r
         default{"latn"}\r
         latn{\r
             miscPatterns{\r
-                atLeast{"⩾{0}"}\r
+                approximately{"≈{0}"}\r
+                atLeast{"≥{0}"}\r
+                atMost{"≤{0}"}\r
                 range{"{0}–{1}"}\r
             }\r
             patterns{\r
@@ -189,7 +196,7 @@ fr{
             symbols{\r
                 decimal{","}\r
                 exponential{"E"}\r
-                group{" "}\r
+                group{""}\r
                 infinity{"∞"}\r
                 list{";"}\r
                 minusSign{"-"}\r
@@ -214,7 +221,7 @@ fr{
         minimumGroupingDigits{"1"}\r
         native{"latn"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.91"}\r
     calendar{\r
         buddhist{\r
             DateTimePatterns{\r
@@ -1839,14 +1846,14 @@ fr{
         activities{"activités"}\r
         african_scripts{"écritures africaines"}\r
         american_scripts{"écritures américaines"}\r
-        animal{"animal"}\r
+        animal{"animaux"}\r
         animals_nature{"animaux et nature"}\r
         arrows{"flèches"}\r
         body{"corps"}\r
-        box_drawing{"tracé de boîte"}\r
+        box_drawing{"filets"}\r
         braille{"écriture Braille"}\r
         building{"immeuble"}\r
-        bullets_stars{"puces / astérisques"}\r
+        bullets_stars{"étoiles et puces"}\r
         consonantal_jamo{"jamos consonnes"}\r
         currency_symbols{"symboles monétaires"}\r
         dash_connector{"tirets / connecteurs"}\r
@@ -1855,7 +1862,7 @@ fr{
         divination_symbols{"symboles divinatoires"}\r
         downwards_arrows{"flèches vers le bas"}\r
         downwards_upwards_arrows{"flèches vers le bas et le haut"}\r
-        east_asian_scripts{"écritures asiatiques orientales"}\r
+        east_asian_scripts{"écritures est-asiatiques"}\r
         emoji{"emojis"}\r
         european_scripts{"écritures européennes"}\r
         female{"féminin"}\r
@@ -1866,19 +1873,19 @@ fr{
         format_whitespace{"format et espacement"}\r
         full_width_form_variant{"variante de forme pleine-chasse"}\r
         geometric_shapes{"formes géométriques"}\r
-        half_width_form_variant{"variantes de forme en demi-largeur"}\r
+        half_width_form_variant{"variantes de forme demi-chasse"}\r
         han_characters{"caractères sinographiques"}\r
         han_radicals{"radicaux sinographiques"}\r
-        hanja{"sinogramme coréen hanja"}\r
-        hanzi_simplified{"sinogramme chinois simplifié"}\r
-        hanzi_traditional{"sinogramme chinois traditionnel"}\r
-        heart{"cœur"}\r
+        hanja{"sinogrammes coréens hanja"}\r
+        hanzi_simplified{"sinogrammes chinois simplifiés"}\r
+        hanzi_traditional{"sinogrammes chinois traditionnels"}\r
+        heart{"cœurs"}\r
         historic_scripts{"écritures historiques"}\r
         ideographic_desc_characters{"symboles de descript. sinographique"}\r
         japanese_kana{"syllabaire kana japonais"}\r
         kanbun{"kamboun"}\r
-        kanji{"sinogramme japonais kanji"}\r
-        keycap{"keycap"}\r
+        kanji{"sinogrammes japonais kanji"}\r
+        keycap{"touches"}\r
         leftwards_arrows{"flèches vers la gauche"}\r
         leftwards_rightwards_arrows{"flèches vers la gauche et la droite"}\r
         letterlike_symbols{"symboles de lettres"}\r
@@ -1894,33 +1901,33 @@ fr{
         nonspacing{"sans chasse"}\r
         numbers{"nombres"}\r
         objects{"objets"}\r
-        other{"autre"}\r
+        other{"autres"}\r
         paired{"en paire"}\r
-        person{"personne"}\r
+        person{"personnes"}\r
         phonetic_alphabet{"alphabet phonétique"}\r
         pictographs{"pictogrammes"}\r
-        place{"lieu"}\r
-        plant{"plante"}\r
+        place{"lieux"}\r
+        plant{"plantes"}\r
         punctuation{"ponctuation"}\r
         rightwards_arrows{"flèches vers la droite"}\r
-        sign_standard_symbols{"symboles de signe/norme"}\r
+        sign_standard_symbols{"signalisation"}\r
         small_form_variant{"petites variantes de forme"}\r
-        smiley{"smiley"}\r
+        smiley{"émoticône"}\r
         smileys_people{"émoticônes et personnes"}\r
-        south_asian_scripts{"écritures asiatiques du sud"}\r
-        southeast_asian_scripts{"écrtitures asiatiques du sud-est"}\r
+        south_asian_scripts{"écritures sud-asiatiques"}\r
+        southeast_asian_scripts{"écritures sud-est-asiatiques"}\r
         spacing{"avec chasse"}\r
         sport{"sport"}\r
         symbols{"symboles"}\r
         technical_symbols{"symboles techniques"}\r
-        tone_marks{"marques de ton"}\r
+        tone_marks{"marques tonales"}\r
         travel{"voyage"}\r
         travel_places{"voyage et lieux"}\r
         upwards_arrows{"flèches vers le haut"}\r
         variant_forms{"variantes de forme"}\r
         vocalic_jamo{"jamos voyelles"}\r
         weather{"météo"}\r
-        western_asian_scripts{"écritures asiatiques occidentales"}\r
+        western_asian_scripts{"écritures ouest-asiatiques"}\r
         whitespace{"espacement"}\r
     }\r
     contextTransforms{\r
@@ -1979,7 +1986,10 @@ fr{
         day-narrow{\r
             dn{"j"}\r
             relative{\r
+                "-1"{"hier"}\r
                 "-2"{"avant-hier"}\r
+                "0"{"aujourd’hui"}\r
+                "1"{"demain"}\r
                 "2"{"après-demain"}\r
             }\r
             relativeTime{\r
@@ -1996,7 +2006,10 @@ fr{
         day-short{\r
             dn{"j"}\r
             relative{\r
+                "-1"{"hier"}\r
                 "-2"{"avant-hier"}\r
+                "0"{"aujourd’hui"}\r
+                "1"{"demain"}\r
                 "2"{"après-demain"}\r
             }\r
             relativeTime{\r
@@ -2809,4 +2822,36 @@ fr{
         US{"américain"}\r
         metric{"métrique"}\r
     }\r
+    parse{\r
+        date{\r
+            lenient{\r
+                "[\\--/]",\r
+                "[\\:∶]",\r
+            }\r
+        }\r
+        general{\r
+            lenient{\r
+                "[.․。︒﹒.。]",\r
+                "['ʼ՚᾽᾿’']",\r
+                "[%٪﹪%]",\r
+                "[؉‰]",\r
+                "[\$﹩$$]",\r
+                "[£₤]",\r
+                "[¥¥]",\r
+                "[₩₩]",\r
+                "[₨₹{Rp}{Rs}]",\r
+            }\r
+        }\r
+        number{\r
+            lenient{\r
+                "[\\-‒⁻₋−➖﹣-]",\r
+                "[,،٫、︐︑﹐﹑,、]",\r
+                "[+⁺₊➕﬩﹢+]",\r
+            }\r
+            stricter{\r
+                "[,٫︐﹐,]",\r
+                "[.․﹒.。]",\r
+            }\r
+        }\r
+    }\r
 }\r
index 4bdd893e51aa7195d423e838f57bcf4aecfcb6fe..8da26c7998a57fdb84df132c762d46a9c4d3cd55 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 fr_BE{\r
-    Version{"2.1.38.39"}\r
+    Version{"2.1.43.65"}\r
     calendar{\r
         generic{\r
             DateTimePatterns{\r
index a45f0f4688b0320f12bbd624edbe2d9cbeb0c9f7..1f349c000548a115968e96cb05b1a1459f998d58 100644 (file)
@@ -9,6 +9,23 @@ fr_CA{
                         one{"0 mille"}\r
                         other{"0 mille"}\r
                     }\r
+                    10000{\r
+                        other{"00 mille"}\r
+                    }\r
+                    100000{\r
+                        other{"000 mille"}\r
+                    }\r
+                    1000000{\r
+                        one{"0 million"}\r
+                        other{"0 millions"}\r
+                    }\r
+                    10000000{\r
+                        one{"00 million"}\r
+                        other{"00 millions"}\r
+                    }\r
+                    100000000{\r
+                        other{"000 millions"}\r
+                    }\r
                 }\r
             }\r
             patternsShort{\r
@@ -63,6 +80,26 @@ fr_CA{
                     }\r
                 }\r
                 decimalFormat{\r
+                    1000{\r
+                        one{"0 k"}\r
+                        other{"0 k"}\r
+                    }\r
+                    10000{\r
+                        other{"00 k"}\r
+                    }\r
+                    100000{\r
+                        other{"000 k"}\r
+                    }\r
+                    1000000{\r
+                        one{"0 M"}\r
+                        other{"0 M"}\r
+                    }\r
+                    10000000{\r
+                        other{"00 M"}\r
+                    }\r
+                    100000000{\r
+                        other{"000 M"}\r
+                    }\r
                     1000000000{\r
                         one{"0 G"}\r
                         other{"0 G"}\r
@@ -89,9 +126,12 @@ fr_CA{
                     }\r
                 }\r
             }\r
+            symbols{\r
+                group{" "}\r
+            }\r
         }\r
     }\r
-    Version{"2.1.38.73"}\r
+    Version{"2.1.43.65"}\r
     calendar{\r
         coptic{\r
             monthNames{\r
@@ -217,6 +257,7 @@ fr_CA{
             }\r
             availableFormats{\r
                 Bh{"h 'h' B"}\r
+                Bhm{"h 'h' mm B"}\r
                 Bhms{"h 'h' mm 'min' ss 's' B"}\r
                 EBhm{"E h 'h' mm B"}\r
                 EBhms{"E h 'h' mm 'min' ss 's' B"}\r
@@ -350,7 +391,6 @@ fr_CA{
                         am{"a.m."}\r
                         evening1{"soir"}\r
                         morning1{"mat."}\r
-                        night1{"nuit"}\r
                         pm{"p.m."}\r
                     }\r
                     narrow{\r
@@ -363,7 +403,6 @@ fr_CA{
                     }\r
                     wide{\r
                         am{"a.m."}\r
-                        night1{"nuit"}\r
                         pm{"p.m."}\r
                     }\r
                 }\r
@@ -483,6 +522,83 @@ fr_CA{
                 }\r
             }\r
         }\r
+        hebrew{\r
+            eras{\r
+                abbreviated{\r
+                    "AM",\r
+                }\r
+            }\r
+            monthNames{\r
+                format{\r
+                    abbreviated{\r
+                        "tis.",\r
+                        "hes.",\r
+                        "kis.",\r
+                        "téb.",\r
+                        "sché.",\r
+                        "ad.I",\r
+                        "adar",\r
+                        "nis.",\r
+                        "iyar",\r
+                        "siv.",\r
+                        "tam.",\r
+                        "av",\r
+                        "ell.",\r
+                        "ad.II",\r
+                    }\r
+                    narrow{\r
+                        "T",\r
+                        "H",\r
+                        "K",\r
+                        "T",\r
+                        "S",\r
+                        "A",\r
+                        "A",\r
+                        "N",\r
+                        "I",\r
+                        "S",\r
+                        "T",\r
+                        "A",\r
+                        "E",\r
+                        "A",\r
+                    }\r
+                }\r
+                stand-alone{\r
+                    abbreviated{\r
+                        "tis.",\r
+                        "hes.",\r
+                        "kis.",\r
+                        "téb.",\r
+                        "sché.",\r
+                        "ad.I",\r
+                        "adar",\r
+                        "nis.",\r
+                        "iyar",\r
+                        "siv.",\r
+                        "tam.",\r
+                        "av",\r
+                        "ell.",\r
+                        "ad.II",\r
+                    }\r
+                    narrow{\r
+                        "T",\r
+                        "H",\r
+                        "K",\r
+                        "T",\r
+                        "S",\r
+                        "A",\r
+                        "A",\r
+                        "N",\r
+                        "I",\r
+                        "S",\r
+                        "T",\r
+                        "A",\r
+                        "E",\r
+                        "A",\r
+                    }\r
+                }\r
+            }\r
+        }\r
         indian{\r
             eras{\r
                 wide{\r
@@ -636,7 +752,6 @@ fr_CA{
         ideographic_desc_characters{"symboles de description sinographique"}\r
         keycap{"dessus de touche"}\r
         sign_standard_symbols{"signe ou symbole"}\r
-        smiley{"émoticône"}\r
         south_asian_scripts{"écritures d’Asie du Sud"}\r
         southeast_asian_scripts{"écritures d’Asie du Sud-Est"}\r
         western_asian_scripts{"écritures d’Asie de l’Ouest"}\r
@@ -646,17 +761,37 @@ fr_CA{
         alternateQuotationStart{"”"}\r
     }\r
     fields{\r
+        day{\r
+            relative{\r
+                "-1"{"hier"}\r
+                "-2"{"avant-hier"}\r
+                "0"{"aujourd’hui"}\r
+                "1"{"demain"}\r
+                "2"{"après-demain"}\r
+            }\r
+        }\r
         day-narrow{\r
             relative{\r
+                "-1"{"hier"}\r
                 "-2"{"avant-hier"}\r
+                "0"{"aujourd’hui"}\r
+                "1"{"demain"}\r
                 "2"{"après-demain"}\r
             }\r
         }\r
         day-short{\r
             relative{\r
+                "-1"{"hier"}\r
                 "-2"{"avant-hier"}\r
+                "0"{"aujourd’hui"}\r
+                "1"{"demain"}\r
                 "2"{"après-demain"}\r
             }\r
+            relativeTime{\r
+                future{\r
+                    other{"dans {0} j"}\r
+                }\r
+            }\r
         }\r
         dayOfYear{\r
             dn{"jour de l’année"}\r
@@ -688,13 +823,6 @@ fr_CA{
                 }\r
             }\r
         }\r
-        month-narrow{\r
-            relativeTime{\r
-                future{\r
-                    other{"+{0} m."}\r
-                }\r
-            }\r
-        }\r
         quarter{\r
             relative{\r
                 "-1"{"le trimestre dernier"}\r
@@ -702,8 +830,23 @@ fr_CA{
                 "1"{"le trimestre prochain"}\r
             }\r
         }\r
+        quarter-narrow{\r
+            relative{\r
+                "-1"{"trim. dernier"}\r
+                "0"{"ce trim."}\r
+                "1"{"trim.prochain"}\r
+            }\r
+        }\r
+        quarter-short{\r
+            relative{\r
+                "-1"{"trim. dernier"}\r
+                "0"{"ce trim."}\r
+                "1"{"trim. prochain"}\r
+            }\r
+        }\r
         sat-narrow{\r
             relative{\r
+                "-1"{"sam. dernier"}\r
                 "0"{"ce sam"}\r
                 "1"{"sam proch"}\r
             }\r
@@ -807,16 +950,8 @@ fr_CA{
                 }\r
             }\r
         }\r
-        year-narrow{\r
-            relative{\r
-                "0"{"cette année"}\r
-            }\r
-        }\r
         year-short{\r
             dn{"a"}\r
-            relative{\r
-                "0"{"cette année"}\r
-            }\r
         }\r
     }\r
 }\r
index 4772c3c1e91c4a7336a53603c05952e9d631ee81..6070773980dd18bb57258630e797f9fc45956c96 100644 (file)
@@ -12,7 +12,7 @@ fr_CH{
             }\r
         }\r
     }\r
-    Version{"2.1.38.85"}\r
+    Version{"2.1.43.65"}\r
     calendar{\r
         generic{\r
             DateTimePatterns{\r
index 94ddcaad0aff5bfa6179bed2fb56f23c7aff7e34..f4043d25924edd8cbb06f862294e1621fcce5f8f 100644 (file)
@@ -155,7 +155,7 @@ fy{
         }\r
         minimumGroupingDigits{"1"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.41.34"}\r
     calendar{\r
         buddhist{\r
             DateTimePatterns{\r
index 61a772a23e61b6d7b2328e082f318e9557e3aec3..a42a4a8a170e2ae109b98c548cd173b85ce6ec73 100644 (file)
@@ -12,12 +12,18 @@ ga{
     }\r
     ExemplarCharacters{"[a á b c d e é f g h i í l m n o ó p r s t u ú]"}\r
     ExemplarCharactersNumbers{"[\\- , . % ‰ + 0 1 2 3 4 5 6 7 8 9]"}\r
+    ExemplarCharactersPunctuation{\r
+        "[\\- ‐ – — , ; \\: ! ? . … ' ‘ ’ \u0022 “ ” ( ) \\[ \\] § @ * / \\& # † ‡ ′ "\r
+        "″]"\r
+    }\r
     MoreInformation{"?"}\r
     NumberElements{\r
         default{"latn"}\r
         latn{\r
             miscPatterns{\r
+                approximately{"~{0}"}\r
                 atLeast{"{0}+"}\r
+                atMost{"≤{0}"}\r
                 range{"{0}–{1}"}\r
             }\r
             patterns{\r
@@ -319,7 +325,7 @@ ga{
         minimumGroupingDigits{"1"}\r
         native{"latn"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.91"}\r
     calendar{\r
         buddhist{\r
             DateTimePatterns{\r
@@ -1084,8 +1090,8 @@ ga{
         digits{"Digití"}\r
         dingbats{"Smísteoga"}\r
         divination_symbols{"Siombailí na Fáistine"}\r
-        downwards_arrows{"Saigheada Síos"}\r
-        downwards_upwards_arrows{"Saigheada Síos Suas"}\r
+        downwards_arrows{"saighead síos"}\r
+        downwards_upwards_arrows{"saighead síos suas"}\r
         east_asian_scripts{"Scripteanna na hÁise Thoir"}\r
         emoji{"Emoji"}\r
         european_scripts{"Scripteanna na hEorpa"}\r
@@ -1095,9 +1101,9 @@ ga{
         food_drink{"Bia agus Deoch"}\r
         format{"Formáid"}\r
         format_whitespace{"Formáid agus Spás Bán"}\r
-        full_width_form_variant{"Foirm Lánleithid"}\r
+        full_width_form_variant{"athraitheach leithid iomláin"}\r
         geometric_shapes{"Cruthanna Geoiméadracha"}\r
-        half_width_form_variant{"Foirm Leathleithid"}\r
+        half_width_form_variant{"athraitheach leathleithid"}\r
         han_characters{"Carachtair Han"}\r
         han_radicals{"Fréamhacha Han"}\r
         hanja{"Hanaí"}\r
@@ -1135,7 +1141,7 @@ ga{
         punctuation{"Poncaíocht"}\r
         rightwards_arrows{"Saighead Dheas"}\r
         sign_standard_symbols{"Comharthaí/Siombailí Coitianta"}\r
-        small_form_variant{"Foirmeacha Beaga"}\r
+        small_form_variant{"athraithigh bheaga"}\r
         smiley{"straoiseog"}\r
         smileys_people{"Straoiseoga nó Daoine"}\r
         south_asian_scripts{"Scripteanna na hÁise Theas"}\r
@@ -2328,8 +2334,13 @@ ga{
         general{\r
             lenient{\r
                 "[.․。︒﹒.。]",\r
+                "['ʼ՚᾽᾿’']",\r
+                "[%٪﹪%]",\r
+                "[؉‰]",\r
                 "[\$﹩$$]",\r
                 "[£₤]",\r
+                "[¥¥]",\r
+                "[₩₩]",\r
                 "[₨₹{Rp}{Rs}]",\r
             }\r
         }\r
index 11c17b6c70f5b4825999e39e2e4acc3b439ffc2b..e67451e0a38c2ffbbc8590fe49b76b3e15d2d5ad 100644 (file)
@@ -16,6 +16,10 @@ gd{
     ExemplarCharacters{"[a à b c d e è f g h i ì l m n o ò p r s t u ù]"}\r
     ExemplarCharactersIndex{"[A B C D E F G H I L M N O P R S T U]"}\r
     ExemplarCharactersNumbers{"[\\- , . % ‰ + 0 1 2 3 4 5 6 7 8 9]"}\r
+    ExemplarCharactersPunctuation{\r
+        "[\\- ‐ – — , ; \\: ! ¡ ? . … · ' ‘ ’ \u0022 “ ” ( ) \\[ \\] \\{ \\} § ¶ @ * "\r
+        "/ \\& ⁊ # % † ‡ ‧ ° © ® ™]"\r
+    }\r
     MoreInformation{"?"}\r
     NumberElements{\r
         arab{\r
@@ -63,6 +67,7 @@ gd{
                 percentSign{"%"}\r
                 plusSign{"+"}\r
                 superscriptingExponent{"×"}\r
+                timeSeparator{":"}\r
             }\r
         }\r
         beng{\r
@@ -78,6 +83,7 @@ gd{
                 percentSign{"%"}\r
                 plusSign{"+"}\r
                 superscriptingExponent{"×"}\r
+                timeSeparator{":"}\r
             }\r
         }\r
         brah{\r
@@ -93,6 +99,7 @@ gd{
                 percentSign{"%"}\r
                 plusSign{"+"}\r
                 superscriptingExponent{"×"}\r
+                timeSeparator{":"}\r
             }\r
         }\r
         cakm{\r
@@ -108,6 +115,7 @@ gd{
                 percentSign{"%"}\r
                 plusSign{"+"}\r
                 superscriptingExponent{"×"}\r
+                timeSeparator{":"}\r
             }\r
         }\r
         cham{\r
@@ -123,6 +131,7 @@ gd{
                 percentSign{"%"}\r
                 plusSign{"+"}\r
                 superscriptingExponent{"×"}\r
+                timeSeparator{":"}\r
             }\r
         }\r
         default{"latn"}\r
@@ -139,6 +148,7 @@ gd{
                 percentSign{"%"}\r
                 plusSign{"+"}\r
                 superscriptingExponent{"×"}\r
+                timeSeparator{":"}\r
             }\r
         }\r
         fullwide{\r
@@ -168,6 +178,38 @@ gd{
                 timeSeparator{":"}\r
             }\r
         }\r
+        gong{\r
+            symbols{\r
+                decimal{"."}\r
+                exponential{"E"}\r
+                group{","}\r
+                infinity{"∞"}\r
+                list{";"}\r
+                minusSign{"-"}\r
+                nan{"NaN"}\r
+                perMille{"‰"}\r
+                percentSign{"%"}\r
+                plusSign{"+"}\r
+                superscriptingExponent{"×"}\r
+                timeSeparator{":"}\r
+            }\r
+        }\r
+        gonm{\r
+            symbols{\r
+                decimal{"."}\r
+                exponential{"E"}\r
+                group{","}\r
+                infinity{"∞"}\r
+                list{";"}\r
+                minusSign{"-"}\r
+                nan{"NaN"}\r
+                perMille{"‰"}\r
+                percentSign{"%"}\r
+                plusSign{"+"}\r
+                superscriptingExponent{"×"}\r
+                timeSeparator{":"}\r
+            }\r
+        }\r
         gujr{\r
             symbols{\r
                 decimal{"."}\r
@@ -181,6 +223,7 @@ gd{
                 percentSign{"%"}\r
                 plusSign{"+"}\r
                 superscriptingExponent{"×"}\r
+                timeSeparator{":"}\r
             }\r
         }\r
         guru{\r
@@ -196,6 +239,7 @@ gd{
                 percentSign{"%"}\r
                 plusSign{"+"}\r
                 superscriptingExponent{"×"}\r
+                timeSeparator{":"}\r
             }\r
         }\r
         hanidec{\r
@@ -211,6 +255,7 @@ gd{
                 percentSign{"%"}\r
                 plusSign{"+"}\r
                 superscriptingExponent{"×"}\r
+                timeSeparator{":"}\r
             }\r
         }\r
         java{\r
@@ -226,6 +271,7 @@ gd{
                 percentSign{"%"}\r
                 plusSign{"+"}\r
                 superscriptingExponent{"×"}\r
+                timeSeparator{":"}\r
             }\r
         }\r
         kali{\r
@@ -241,6 +287,7 @@ gd{
                 percentSign{"%"}\r
                 plusSign{"+"}\r
                 superscriptingExponent{"×"}\r
+                timeSeparator{":"}\r
             }\r
         }\r
         khmr{\r
@@ -256,6 +303,7 @@ gd{
                 percentSign{"%"}\r
                 plusSign{"+"}\r
                 superscriptingExponent{"×"}\r
+                timeSeparator{":"}\r
             }\r
         }\r
         knda{\r
@@ -271,6 +319,7 @@ gd{
                 percentSign{"%"}\r
                 plusSign{"+"}\r
                 superscriptingExponent{"×"}\r
+                timeSeparator{":"}\r
             }\r
         }\r
         lana{\r
@@ -286,6 +335,7 @@ gd{
                 percentSign{"%"}\r
                 plusSign{"+"}\r
                 superscriptingExponent{"×"}\r
+                timeSeparator{":"}\r
             }\r
         }\r
         lanatham{\r
@@ -301,6 +351,7 @@ gd{
                 percentSign{"%"}\r
                 plusSign{"+"}\r
                 superscriptingExponent{"×"}\r
+                timeSeparator{":"}\r
             }\r
         }\r
         laoo{\r
@@ -316,6 +367,7 @@ gd{
                 percentSign{"%"}\r
                 plusSign{"+"}\r
                 superscriptingExponent{"×"}\r
+                timeSeparator{":"}\r
             }\r
         }\r
         latn{\r
@@ -333,73 +385,73 @@ gd{
             patternsLong{\r
                 decimalFormat{\r
                     1000{\r
-                        few{"0 mìle"}\r
+                        few{"0 mìltean"}\r
                         one{"0 mhìle"}\r
                         other{"0 mìle"}\r
                         two{"0 mhìle"}\r
                     }\r
                     10000{\r
-                        few{"00 mìle"}\r
+                        few{"00 mìltean"}\r
                         one{"00 mhìle"}\r
                         other{"00 mìle"}\r
                         two{"00 mhìle"}\r
                     }\r
                     100000{\r
-                        few{"000 mìle"}\r
+                        few{"000 mìltean"}\r
                         one{"000 mhìle"}\r
                         other{"000 mìle"}\r
                         two{"000 mhìle"}\r
                     }\r
                     1000000{\r
-                        few{"0 millean"}\r
+                        few{"0 milleanan"}\r
                         one{"0 mhillean"}\r
                         other{"0 millean"}\r
                         two{"0 mhillean"}\r
                     }\r
                     10000000{\r
-                        few{"00 millean"}\r
+                        few{"00 milleanan"}\r
                         one{"00 mhillean"}\r
                         other{"00 millean"}\r
                         two{"00 mhillean"}\r
                     }\r
                     100000000{\r
-                        few{"000 millean"}\r
+                        few{"000 milleanan"}\r
                         one{"000 mhillean"}\r
                         other{"000 millean"}\r
                         two{"000 mhillean"}\r
                     }\r
                     1000000000{\r
-                        few{"0 billean"}\r
+                        few{"0 billeanan"}\r
                         one{"0 bhillean"}\r
                         other{"0 billean"}\r
                         two{"0 bhillean"}\r
                     }\r
                     10000000000{\r
-                        few{"00 billean"}\r
+                        few{"00 billeanan"}\r
                         one{"00 bhillean"}\r
                         other{"00 billean"}\r
                         two{"00 bhillean"}\r
                     }\r
                     100000000000{\r
-                        few{"000 bhillean"}\r
-                        one{"000 billean"}\r
-                        other{"000 bhillean"}\r
-                        two{"000 billean"}\r
+                        few{"000 billeanan"}\r
+                        one{"000 bhillean"}\r
+                        other{"000 billean"}\r
+                        two{"000 bhillean"}\r
                     }\r
                     1000000000000{\r
-                        few{"0 trillean"}\r
+                        few{"0 trilleanan"}\r
                         one{"0 trillean"}\r
                         other{"0 trillean"}\r
                         two{"0 thrillean"}\r
                     }\r
                     10000000000000{\r
-                        few{"00 trillean"}\r
+                        few{"00 trilleanan"}\r
                         one{"00 trillean"}\r
                         other{"00 trillean"}\r
                         two{"00 thrillean"}\r
                     }\r
                     100000000000000{\r
-                        few{"000 trillean"}\r
+                        few{"000 trilleanan"}\r
                         one{"000 trillean"}\r
                         other{"000 trillean"}\r
                         two{"000 thrillean"}\r
@@ -584,6 +636,7 @@ gd{
                 percentSign{"%"}\r
                 plusSign{"+"}\r
                 superscriptingExponent{"×"}\r
+                timeSeparator{":"}\r
             }\r
         }\r
         limb{\r
@@ -599,17 +652,15 @@ gd{
                 percentSign{"%"}\r
                 plusSign{"+"}\r
                 superscriptingExponent{"×"}\r
+                timeSeparator{":"}\r
             }\r
         }\r
         minimalPairs{\r
-            ordinal{\r
-                other{"Gabh an {0}mh air an taobh dheas."}\r
-            }\r
             plural{\r
-                few{"{0} chaora bhàn"}\r
-                one{"{0} chaora bhàin"}\r
-                other{"{0} caoraich bhàna"}\r
-                two{"{0} caora bàn"}\r
+                few{"{0} dealbhan, {0} mionaidean"}\r
+                one{"{0} dealbh, {0} mhionaid"}\r
+                other{"{0} dealbh, {0} mionaid"}\r
+                two{"{0} dhealbh, {0} mhionaid"}\r
             }\r
         }\r
         minimumGroupingDigits{"1"}\r
@@ -626,6 +677,7 @@ gd{
                 percentSign{"%"}\r
                 plusSign{"+"}\r
                 superscriptingExponent{"×"}\r
+                timeSeparator{":"}\r
             }\r
         }\r
         mong{\r
@@ -641,6 +693,7 @@ gd{
                 percentSign{"%"}\r
                 plusSign{"+"}\r
                 superscriptingExponent{"×"}\r
+                timeSeparator{":"}\r
             }\r
         }\r
         mtei{\r
@@ -656,6 +709,7 @@ gd{
                 percentSign{"%"}\r
                 plusSign{"+"}\r
                 superscriptingExponent{"×"}\r
+                timeSeparator{":"}\r
             }\r
         }\r
         mymr{\r
@@ -671,6 +725,7 @@ gd{
                 percentSign{"%"}\r
                 plusSign{"+"}\r
                 superscriptingExponent{"×"}\r
+                timeSeparator{":"}\r
             }\r
         }\r
         mymrshan{\r
@@ -686,6 +741,7 @@ gd{
                 percentSign{"%"}\r
                 plusSign{"+"}\r
                 superscriptingExponent{"×"}\r
+                timeSeparator{":"}\r
             }\r
         }\r
         native{"latn"}\r
@@ -702,6 +758,7 @@ gd{
                 percentSign{"%"}\r
                 plusSign{"+"}\r
                 superscriptingExponent{"×"}\r
+                timeSeparator{":"}\r
             }\r
         }\r
         olck{\r
@@ -717,6 +774,7 @@ gd{
                 percentSign{"%"}\r
                 plusSign{"+"}\r
                 superscriptingExponent{"×"}\r
+                timeSeparator{":"}\r
             }\r
         }\r
         orya{\r
@@ -732,6 +790,7 @@ gd{
                 percentSign{"%"}\r
                 plusSign{"+"}\r
                 superscriptingExponent{"×"}\r
+                timeSeparator{":"}\r
             }\r
         }\r
         osma{\r
@@ -747,6 +806,23 @@ gd{
                 percentSign{"%"}\r
                 plusSign{"+"}\r
                 superscriptingExponent{"×"}\r
+                timeSeparator{":"}\r
+            }\r
+        }\r
+        rohg{\r
+            symbols{\r
+                decimal{"."}\r
+                exponential{"E"}\r
+                group{","}\r
+                infinity{"∞"}\r
+                list{";"}\r
+                minusSign{"-"}\r
+                nan{"NaN"}\r
+                perMille{"‰"}\r
+                percentSign{"%"}\r
+                plusSign{"+"}\r
+                superscriptingExponent{"×"}\r
+                timeSeparator{":"}\r
             }\r
         }\r
         saur{\r
@@ -762,6 +838,7 @@ gd{
                 percentSign{"%"}\r
                 plusSign{"+"}\r
                 superscriptingExponent{"×"}\r
+                timeSeparator{":"}\r
             }\r
         }\r
         shrd{\r
@@ -777,6 +854,7 @@ gd{
                 percentSign{"%"}\r
                 plusSign{"+"}\r
                 superscriptingExponent{"×"}\r
+                timeSeparator{":"}\r
             }\r
         }\r
         sora{\r
@@ -792,6 +870,7 @@ gd{
                 percentSign{"%"}\r
                 plusSign{"+"}\r
                 superscriptingExponent{"×"}\r
+                timeSeparator{":"}\r
             }\r
         }\r
         sund{\r
@@ -807,6 +886,7 @@ gd{
                 percentSign{"%"}\r
                 plusSign{"+"}\r
                 superscriptingExponent{"×"}\r
+                timeSeparator{":"}\r
             }\r
         }\r
         takr{\r
@@ -822,6 +902,7 @@ gd{
                 percentSign{"%"}\r
                 plusSign{"+"}\r
                 superscriptingExponent{"×"}\r
+                timeSeparator{":"}\r
             }\r
         }\r
         talu{\r
@@ -837,6 +918,7 @@ gd{
                 percentSign{"%"}\r
                 plusSign{"+"}\r
                 superscriptingExponent{"×"}\r
+                timeSeparator{":"}\r
             }\r
         }\r
         tamldec{\r
@@ -852,6 +934,7 @@ gd{
                 percentSign{"%"}\r
                 plusSign{"+"}\r
                 superscriptingExponent{"×"}\r
+                timeSeparator{":"}\r
             }\r
         }\r
         telu{\r
@@ -867,6 +950,7 @@ gd{
                 percentSign{"%"}\r
                 plusSign{"+"}\r
                 superscriptingExponent{"×"}\r
+                timeSeparator{":"}\r
             }\r
         }\r
         thai{\r
@@ -882,6 +966,7 @@ gd{
                 percentSign{"%"}\r
                 plusSign{"+"}\r
                 superscriptingExponent{"×"}\r
+                timeSeparator{":"}\r
             }\r
         }\r
         tibt{\r
@@ -897,6 +982,7 @@ gd{
                 percentSign{"%"}\r
                 plusSign{"+"}\r
                 superscriptingExponent{"×"}\r
+                timeSeparator{":"}\r
             }\r
         }\r
         vaii{\r
@@ -912,12 +998,637 @@ gd{
                 percentSign{"%"}\r
                 plusSign{"+"}\r
                 superscriptingExponent{"×"}\r
+                timeSeparator{":"}\r
+            }\r
+        }\r
+    }\r
+    Version{"2.1.44.91"}\r
+    calendar{\r
+        buddhist{\r
+            DateTimePatterns{\r
+                "HH:mm:ss zzzz",\r
+                "HH:mm:ss z",\r
+                "HH:mm:ss",\r
+                "HH:mm",\r
+                "EEEE, d'mh' MMMM y G",\r
+                "d'mh' MMMM y G",\r
+                "d MMM y G",\r
+                "d/M/y GGGGG",\r
+                "{1} {0}",\r
+                "{1} {0}",\r
+                "{1} {0}",\r
+                "{1} {0}",\r
+                "{1} {0}",\r
+            }\r
+            availableFormats{\r
+                MMMMd{"d'mh' MMMM"}\r
+                yMM{"LL/y"}\r
+                yyyyM{"L/y GGGGG"}\r
+                yyyyMMMM{"LLLL y G"}\r
+            }\r
+            intervalFormats{\r
+                H{\r
+                    H{"HH – HH"}\r
+                }\r
+                Hm{\r
+                    H{"HH:mm – HH:mm"}\r
+                    m{"HH:mm – HH:mm"}\r
+                }\r
+                Hmv{\r
+                    H{"HH:mm – HH:mm v"}\r
+                    m{"HH:mm – HH:mm v"}\r
+                }\r
+                Hv{\r
+                    H{"HH – HH v"}\r
+                }\r
+                M{\r
+                    M{"L – L"}\r
+                }\r
+                fallback{"{0} – {1}"}\r
+            }\r
+        }\r
+        chinese{\r
+            DateTimePatterns{\r
+                "HH:mm:ss zzzz",\r
+                "HH:mm:ss z",\r
+                "HH:mm:ss",\r
+                "HH:mm",\r
+                "EEEE, d'mh' MMMM r(U)",\r
+                "d'mh' MMMM r(U)",\r
+                "d MMM r",\r
+                "d/M/r",\r
+                "{1} {0}",\r
+                "{1} 'aig' {0}",\r
+                "{1} 'aig' {0}",\r
+                "{1} {0}",\r
+                "{1} {0}",\r
+            }\r
+            availableFormats{\r
+                Bh{"hB"}\r
+                Bhm{"h:mmB"}\r
+                Bhms{"h:mm:ssB"}\r
+                E{"ccc"}\r
+                EBhm{"E h:mmB"}\r
+                EBhms{"E h:mm:ssB"}\r
+                Ed{"E d"}\r
+                Gy{"r(U)"}\r
+                GyMMM{"LLL r(U)"}\r
+                GyMMMEd{"E, d'mh' MMM r(U)"}\r
+                GyMMMd{"d'mh' MMM r"}\r
+                H{"HH"}\r
+                Hm{"HH:mm"}\r
+                Hms{"HH:mm:ss"}\r
+                M{"L"}\r
+                MEd{"E, d/M"}\r
+                MMM{"LLL"}\r
+                MMMEd{"E, d'mh' MMM"}\r
+                MMMMd{"d'mh' MMMM"}\r
+                MMMd{"d'mh' MMM"}\r
+                Md{"d/M"}\r
+                UM{"L/U"}\r
+                UMMM{"LLL U"}\r
+                UMMMd{"d'mh' MMM U"}\r
+                UMd{"d/M/U"}\r
+                d{"d"}\r
+                h{"ha"}\r
+                hm{"h:mma"}\r
+                hms{"h:mm:ssa"}\r
+                ms{"mm:ss"}\r
+                y{"r(U)"}\r
+                yMd{"d/M/r"}\r
+                yyyy{"r(U)"}\r
+                yyyyM{"L/r"}\r
+                yyyyMEd{"E, d/M/r"}\r
+                yyyyMMM{"LLL r(U)"}\r
+                yyyyMMMEd{"E, d'mh' MMM r(U)"}\r
+                yyyyMMMM{"LLLL r(U)"}\r
+                yyyyMMMd{"d'mh' MMM r"}\r
+                yyyyMd{"d/M/r"}\r
+                yyyyQQQ{"QQQ r(U)"}\r
+                yyyyQQQQ{"QQQQ r(U)"}\r
+            }\r
+            cyclicNameSets{\r
+                solarTerms{\r
+                    format{\r
+                        abbreviated{\r
+                            "toiseach an earraich",\r
+                            "an t-uisge",\r
+                            "dùsgadh nam biastag",\r
+                            "co-fhad-thràth an earraich",\r
+                            "soilleir",\r
+                            "uisge a’ ghràin",\r
+                            "toiseach an t-samhraidh",\r
+                            "gràn làn",\r
+                            "gràn abaich",\r
+                            "grian-stad an t-samhraidh",\r
+                            "teas beag",\r
+                            "teas mòr",\r
+                            "toiseach an fhoghair",\r
+                            "deireadh an teasa",\r
+                            "driùchd geal",\r
+                            "co-fhad-thràth an fhoghair",\r
+                            "driùchd fuar",\r
+                            "teachd an reòthaidh",\r
+                            "toiseach a’ gheamhraidh",\r
+                            "sneachd beag",\r
+                            "sneachd mòr",\r
+                            "grian-stad a’ gheamhraidh",\r
+                            "fuachd bheag",\r
+                            "fuachd mhòr",\r
+                        }\r
+                        narrow{\r
+                            "toiseach earraich",\r
+                            "an t-uisge",\r
+                            "dùsgadh bhiastagan",\r
+                            "co-fhad-thràth earraich",\r
+                            "soilleir",\r
+                            "uisge gràin",\r
+                            "toiseach samhraidh",\r
+                            "gràn làn",\r
+                            "gràn abaich",\r
+                            "grian-stad samhraidh",\r
+                            "teas beag",\r
+                            "teas mòr",\r
+                            "toiseach foghair",\r
+                            "deireadh teasa",\r
+                            "driùchd geal",\r
+                            "co-fhad-thràth foghair",\r
+                            "driùchd fuar",\r
+                            "teachd reòthaidh",\r
+                            "toiseach geamhraidh",\r
+                            "sneachd beag",\r
+                            "sneachd mòr",\r
+                            "grian-stad geamhraidh",\r
+                            "fuachd bheag",\r
+                            "fuachd mhòr",\r
+                        }\r
+                        wide{\r
+                            "toiseach an earraich",\r
+                            "an t-uisge",\r
+                            "dùsgadh nam biastag",\r
+                            "co-fhad-thràth an earraich",\r
+                            "soilleir",\r
+                            "uisge a’ ghràin",\r
+                            "toiseach an t-samhraidh",\r
+                            "an gràn làn",\r
+                            "an gràn abaich",\r
+                            "grian-stad an t-samhraidh",\r
+                            "an teas beag",\r
+                            "an teas mòr",\r
+                            "toiseach an fhoghair",\r
+                            "deireadh an teasa",\r
+                            "an driùchd geal",\r
+                            "co-fhad-thràth an fhoghair",\r
+                            "an driùchd fuar",\r
+                            "teachd an reòthaidh",\r
+                            "toiseach a’ gheamhraidh",\r
+                            "an sneachd beag",\r
+                            "an sneachd mòr",\r
+                            "grian-stad a’ gheamhraidh",\r
+                            "an fhuachd bheag",\r
+                            "an fhuachd mhòr",\r
+                        }\r
+                    }\r
+                }\r
+                zodiacs{\r
+                    format{\r
+                        abbreviated{\r
+                            "Radan",\r
+                            "Damh",\r
+                            "Tìgear",\r
+                            "Coinean",\r
+                            "Dràgon",\r
+                            "Nathair",\r
+                            "Each",\r
+                            "Gobhar",\r
+                            "Muncaidh",\r
+                            "Coileach",\r
+                            "Cù",\r
+                            "Muc",\r
+                        }\r
+                        narrow{\r
+                            "Radan",\r
+                            "Damh",\r
+                            "Tìgear",\r
+                            "Coinean",\r
+                            "Dràgon",\r
+                            "Nathair",\r
+                            "Each",\r
+                            "Gobhar",\r
+                            "Muncaidh",\r
+                            "Coileach",\r
+                            "Cù",\r
+                            "Muc",\r
+                        }\r
+                        wide{\r
+                            "Radan",\r
+                            "Damh",\r
+                            "Tìgear",\r
+                            "Coinean",\r
+                            "Dràgon",\r
+                            "Nathair",\r
+                            "Each",\r
+                            "Gobhar",\r
+                            "Muncaidh",\r
+                            "Coileach",\r
+                            "Cù",\r
+                            "Muc",\r
+                        }\r
+                    }\r
+                }\r
+            }\r
+            intervalFormats{\r
+                H{\r
+                    H{"HH – HH"}\r
+                }\r
+                Hm{\r
+                    H{"HH:mm – HH:mm"}\r
+                    m{"HH:mm – HH:mm"}\r
+                }\r
+                Hmv{\r
+                    H{"HH:mm – HH:mm v"}\r
+                    m{"HH:mm – HH:mm v"}\r
+                }\r
+                Hv{\r
+                    H{"HH – HH v"}\r
+                }\r
+                M{\r
+                    M{"L – L"}\r
+                }\r
+                MEd{\r
+                    M{"E, d/M – E, d/M"}\r
+                    d{"E, d/M – E, d/M"}\r
+                }\r
+                MMM{\r
+                    M{"LLL – LLL"}\r
+                }\r
+                MMMEd{\r
+                    M{"E, d MMM – E, d MMM"}\r
+                    d{"E, d MMM – E, d MMM"}\r
+                }\r
+                MMMd{\r
+                    M{"d MMM – d MMM"}\r
+                    d{"d MMM – d"}\r
+                }\r
+                Md{\r
+                    M{"d/M – d/M"}\r
+                    d{"d/M – d/M"}\r
+                }\r
+                d{\r
+                    d{"d – d"}\r
+                }\r
+                fallback{"{0} – {1}"}\r
+                h{\r
+                    a{"ha – ha"}\r
+                    h{"h – ha"}\r
+                }\r
+                hm{\r
+                    a{"h:mma – h:mma"}\r
+                    h{"h:mm – h:mma"}\r
+                    m{"h:mm – h:mma"}\r
+                }\r
+                hmv{\r
+                    a{"h:mma – h:mma v"}\r
+                    h{"h:mm – h:mma v"}\r
+                    m{"h:mm – h:mma v"}\r
+                }\r
+                hv{\r
+                    a{"ha – ha v"}\r
+                    h{"h – ha v"}\r
+                }\r
+                y{\r
+                    y{"U – U"}\r
+                }\r
+                yM{\r
+                    M{"L/y – L/y"}\r
+                    y{"L/y – L/y"}\r
+                }\r
+                yMEd{\r
+                    M{"E, d/M/y – E, d/M/y"}\r
+                    d{"E, d/M/y – E, d/M/y"}\r
+                    y{"E, d/M/y – E, d/M/y"}\r
+                }\r
+                yMMM{\r
+                    M{"LLL – LLL U"}\r
+                    y{"LLL U – LLL U"}\r
+                }\r
+                yMMMEd{\r
+                    M{"E, d MMM – E, d MMM, U"}\r
+                    d{"E, d MMM – E, d MMM, U"}\r
+                    y{"E, d MMM, U – E, d MMM, U"}\r
+                }\r
+                yMMMM{\r
+                    M{"LLLL – LLLL U"}\r
+                    y{"LLLL U – LLLL U"}\r
+                }\r
+                yMMMd{\r
+                    M{"d MMM – d MMM, U"}\r
+                    d{"d MMM – d, U"}\r
+                    y{"d MMM, U – d MMM, U"}\r
+                }\r
+                yMd{\r
+                    M{"d/M/y – d/M/y"}\r
+                    d{"d/M/y – d/M/y"}\r
+                    y{"d/M/y – d/M/y"}\r
+                }\r
+            }\r
+            monthNames{\r
+                format{\r
+                    abbreviated{\r
+                        "Chiad",\r
+                        "Dàrna",\r
+                        "Treas",\r
+                        "Ceathr",\r
+                        "Còig",\r
+                        "Sia",\r
+                        "Seachd",\r
+                        "Ochd",\r
+                        "Naoidh",\r
+                        "Deich",\r
+                        "Aon Deug",\r
+                        "Dàrna Deug",\r
+                    }\r
+                    narrow{\r
+                        "1",\r
+                        "2",\r
+                        "3",\r
+                        "4",\r
+                        "5",\r
+                        "6",\r
+                        "7",\r
+                        "8",\r
+                        "9",\r
+                        "10",\r
+                        "11",\r
+                        "12",\r
+                    }\r
+                    wide{\r
+                        "dhen Chiad Mhìos",\r
+                        "dhen Dàrna Mhìos",\r
+                        "dhen Treas Mhìos",\r
+                        "dhen Cheathramh Mhìos",\r
+                        "dhen Chòigeamh Mhìos",\r
+                        "dhen t-Siathamh Mhìos",\r
+                        "dhen t-Seachdamh Mhìos",\r
+                        "dhen Ochdamh Mhìos",\r
+                        "dhen Naoidheamh Mhìos",\r
+                        "dhen Deicheamh Mhìos",\r
+                        "dhen Aonamh Mhìos Deug",\r
+                        "dhen Dàrna Mhìos Deug",\r
+                    }\r
+                }\r
+                stand-alone{\r
+                    abbreviated{\r
+                        "Chiad",\r
+                        "Dàrna",\r
+                        "Treas",\r
+                        "Ceathr",\r
+                        "Còig",\r
+                        "Sia",\r
+                        "Seachd",\r
+                        "Ochd",\r
+                        "Naoidh",\r
+                        "Deich",\r
+                        "Aon Deug",\r
+                        "Dàrna Deug",\r
+                    }\r
+                    narrow{\r
+                        "1",\r
+                        "2",\r
+                        "3",\r
+                        "4",\r
+                        "5",\r
+                        "6",\r
+                        "7",\r
+                        "8",\r
+                        "9",\r
+                        "10",\r
+                        "11",\r
+                        "12",\r
+                    }\r
+                    wide{\r
+                        "A’ Chiad Mhìos",\r
+                        "An Dàrna Mìos",\r
+                        "An Treas Mìos",\r
+                        "An Ceathramh Mìos",\r
+                        "An Còigeamh Mìos",\r
+                        "An Siathamh Mìos",\r
+                        "An Seachdamh Mìos",\r
+                        "An t-Ochdamh Mìos",\r
+                        "An Naoidheamh Mìos",\r
+                        "An Deicheamh Mìos",\r
+                        "An t-Aonamh Mìos Deug",\r
+                        "An Dàrna Mìos Deug",\r
+                    }\r
+                }\r
+            }\r
+        }\r
+        coptic{\r
+            DateTimePatterns{\r
+                "HH:mm:ss zzzz",\r
+                "HH:mm:ss z",\r
+                "HH:mm:ss",\r
+                "HH:mm",\r
+                "EEEE, d'mh' MMMM y G",\r
+                "d'mh' MMMM y G",\r
+                "d MMM y G",\r
+                "d/M/y GGGGG",\r
+                "{1} {0}",\r
+                "{1} {0}",\r
+                "{1} {0}",\r
+                "{1} {0}",\r
+                "{1} {0}",\r
+            }\r
+            availableFormats{\r
+                MMMMd{"d'mh' MMMM"}\r
+                yMM{"LL/y"}\r
+                yyyyM{"L/y GGGGG"}\r
+                yyyyMMMM{"LLLL y G"}\r
+            }\r
+            intervalFormats{\r
+                M{\r
+                    M{"L – L"}\r
+                }\r
             }\r
         }\r
-    }\r
-    Version{"2.1.41.97"}\r
-    calendar{\r
-        buddhist{\r
+        dangi{\r
+            DateTimePatterns{\r
+                "HH:mm:ss zzzz",\r
+                "HH:mm:ss z",\r
+                "HH:mm:ss",\r
+                "HH:mm",\r
+                "EEEE, d'mh' MMMM r(U)",\r
+                "d'mh' MMMM r(U)",\r
+                "d MMM r",\r
+                "d/M/r",\r
+                "{1} {0}",\r
+                "{1} 'aig' {0}",\r
+                "{1} 'aig' {0}",\r
+                "{1} {0}",\r
+                "{1} {0}",\r
+            }\r
+            availableFormats{\r
+                E{"ccc"}\r
+                Ed{"E d"}\r
+                Gy{"r(U)"}\r
+                GyMMM{"LLL r(U)"}\r
+                GyMMMEd{"E, d'mh' MMM r(U)"}\r
+                GyMMMd{"d'mh' MMM r"}\r
+                M{"L"}\r
+                MEd{"E, d/M"}\r
+                MMM{"LLL"}\r
+                MMMEd{"E, d'mh' MMM"}\r
+                MMMMd{"d'mh' MMMM"}\r
+                MMMd{"d'mh' MMM"}\r
+                Md{"d/M"}\r
+                UM{"L/U"}\r
+                UMMM{"LLL U"}\r
+                UMMMd{"d'mh' MMM U"}\r
+                UMd{"d/M/U"}\r
+                d{"d"}\r
+                y{"r(U)"}\r
+                yMd{"d/M/r"}\r
+                yyyy{"r(U)"}\r
+                yyyyM{"L/r"}\r
+                yyyyMEd{"E, d/M/r"}\r
+                yyyyMMM{"LLL r(U)"}\r
+                yyyyMMMEd{"E, d'mh' MMM r(U)"}\r
+                yyyyMMMM{"LLLL r(U)"}\r
+                yyyyMMMd{"d'mh' MMM r"}\r
+                yyyyMd{"d/M/r"}\r
+                yyyyQQQ{"QQQ r(U)"}\r
+                yyyyQQQQ{"QQQQ r(U)"}\r
+            }\r
+            cyclicNameSets{\r
+                solarTerms{\r
+                    format{\r
+                        abbreviated{\r
+                            "toiseach an earraich",\r
+                            "an t-uisge",\r
+                            "dùsgadh nam biastag",\r
+                            "co-fhad-thràth an earraich",\r
+                            "soilleir",\r
+                            "uisge a’ ghràin",\r
+                            "toiseach an t-samhraidh",\r
+                            "gràn làn",\r
+                            "gràn abaich",\r
+                            "grian-stad an t-samhraidh",\r
+                            "teas beag",\r
+                            "teas mòr",\r
+                            "toiseach an fhoghair",\r
+                            "deireadh an teasa",\r
+                            "driùchd geal",\r
+                            "co-fhad-thràth an fhoghair",\r
+                            "driùchd fuar",\r
+                            "teachd an reòthaidh",\r
+                            "toiseach a’ gheamhraidh",\r
+                            "sneachd beag",\r
+                            "sneachd mòr",\r
+                            "grian-stad a’ gheamhraidh",\r
+                            "fuachd bheag",\r
+                            "fuachd mhòr",\r
+                        }\r
+                        narrow{\r
+                            "toiseach earraich",\r
+                            "an t-uisge",\r
+                            "dùsgadh bhiastagan",\r
+                            "co-fhad-thràth earraich",\r
+                            "soilleir",\r
+                            "uisge gràin",\r
+                            "toiseach samhraidh",\r
+                            "gràn làn",\r
+                            "gràn abaich",\r
+                            "grian-stad samhraidh",\r
+                            "teas beag",\r
+                            "teas mòr",\r
+                            "toiseach foghair",\r
+                            "deireadh teasa",\r
+                            "driùchd geal",\r
+                            "co-fhad-thràth foghair",\r
+                            "driùchd fuar",\r
+                            "teachd reòthaidh",\r
+                            "toiseach geamhraidh",\r
+                            "sneachd beag",\r
+                            "sneachd mòr",\r
+                            "grian-stad geamhraidh",\r
+                            "fuachd bheag",\r
+                            "fuachd mhòr",\r
+                        }\r
+                        wide{\r
+                            "toiseach an earraich",\r
+                            "an t-uisge",\r
+                            "dùsgadh nam biastag",\r
+                            "co-fhad-thràth an earraich",\r
+                            "soilleir",\r
+                            "uisge a’ ghràin",\r
+                            "toiseach an t-samhraidh",\r
+                            "an gràn làn",\r
+                            "an gràn abaich",\r
+                            "grian-stad an t-samhraidh",\r
+                            "an teas beag",\r
+                            "an teas mòr",\r
+                            "toiseach an fhoghair",\r
+                            "deireadh an teasa",\r
+                            "an driùchd geal",\r
+                            "co-fhad-thràth an fhoghair",\r
+                            "an driùchd fuar",\r
+                            "teachd an reòthaidh",\r
+                            "toiseach a’ gheamhraidh",\r
+                            "an sneachd beag",\r
+                            "an sneachd mòr",\r
+                            "grian-stad a’ gheamhraidh",\r
+                            "an fhuachd bheag",\r
+                            "an fhuachd mhòr",\r
+                        }\r
+                    }\r
+                }\r
+                zodiacs{\r
+                    format{\r
+                        abbreviated{\r
+                            "Radan",\r
+                            "Damh",\r
+                            "Tìgear",\r
+                            "Coinean",\r
+                            "Dràgon",\r
+                            "Nathair",\r
+                            "Each",\r
+                            "Gobhar",\r
+                            "Muncaidh",\r
+                            "Coileach",\r
+                            "Cù",\r
+                            "Muc",\r
+                        }\r
+                        narrow{\r
+                            "Radan",\r
+                            "Damh",\r
+                            "Tìgear",\r
+                            "Coinean",\r
+                            "Dràgon",\r
+                            "Nathair",\r
+                            "Each",\r
+                            "Gobhar",\r
+                            "Muncaidh",\r
+                            "Coileach",\r
+                            "Cù",\r
+                            "Muc",\r
+                        }\r
+                        wide{\r
+                            "Radan",\r
+                            "Damh",\r
+                            "Tìgear",\r
+                            "Coinean",\r
+                            "Dràgon",\r
+                            "Nathair",\r
+                            "Each",\r
+                            "Gobhar",\r
+                            "Muncaidh",\r
+                            "Coileach",\r
+                            "Cù",\r
+                            "Muc",\r
+                        }\r
+                    }\r
+                }\r
+            }\r
             intervalFormats{\r
                 H{\r
                     H{"HH – HH"}\r
@@ -933,7 +1644,203 @@ gd{
                 Hv{\r
                     H{"HH – HH v"}\r
                 }\r
+                M{\r
+                    M{"L – L"}\r
+                }\r
+                MEd{\r
+                    M{"E, d/M – E, d/M"}\r
+                    d{"E, d/M – E, d/M"}\r
+                }\r
+                MMM{\r
+                    M{"LLL – LLL"}\r
+                }\r
+                MMMEd{\r
+                    M{"E, d MMM – E, d MMM"}\r
+                    d{"E, d MMM – E, d MMM"}\r
+                }\r
+                MMMd{\r
+                    M{"d MMM – d MMM"}\r
+                    d{"d MMM – d"}\r
+                }\r
+                Md{\r
+                    M{"d/M – d/M"}\r
+                    d{"d/M – d/M"}\r
+                }\r
+                d{\r
+                    d{"d – d"}\r
+                }\r
                 fallback{"{0} – {1}"}\r
+                h{\r
+                    a{"ha – ha"}\r
+                    h{"h – ha"}\r
+                }\r
+                hm{\r
+                    a{"h:mma – h:mma"}\r
+                    h{"h:mm – h:mma"}\r
+                    m{"h:mm – h:mma"}\r
+                }\r
+                hmv{\r
+                    a{"h:mma – h:mma v"}\r
+                    h{"h:mm – h:mma v"}\r
+                    m{"h:mm – h:mma v"}\r
+                }\r
+                hv{\r
+                    a{"ha – ha v"}\r
+                    h{"h – ha v"}\r
+                }\r
+                y{\r
+                    y{"U – U"}\r
+                }\r
+                yM{\r
+                    M{"L/y – L/y"}\r
+                    y{"L/y – L/y"}\r
+                }\r
+                yMEd{\r
+                    M{"E, d/M/y – E, d/M/y"}\r
+                    d{"E, d/M/y – E, d/M/y"}\r
+                    y{"E, d/M/y – E, d/M/y"}\r
+                }\r
+                yMMM{\r
+                    M{"LLL – LLL U"}\r
+                    y{"LLL U – LLL U"}\r
+                }\r
+                yMMMEd{\r
+                    M{"E, d MMM – E, d MMM, U"}\r
+                    d{"E, d MMM – E, d MMM, U"}\r
+                    y{"E, d MMM, U – E, d MMM, U"}\r
+                }\r
+                yMMMM{\r
+                    M{"LLLL – LLLL U"}\r
+                    y{"LLLL U – LLLL U"}\r
+                }\r
+                yMMMd{\r
+                    M{"d MMM – d MMM, U"}\r
+                    d{"d MMM – d, U"}\r
+                    y{"d MMM, U – d MMM, U"}\r
+                }\r
+                yMd{\r
+                    M{"d/M/y – d/M/y"}\r
+                    d{"d/M/y – d/M/y"}\r
+                    y{"d/M/y – d/M/y"}\r
+                }\r
+            }\r
+            monthNames{\r
+                format{\r
+                    abbreviated{\r
+                        "Chiad",\r
+                        "Dàrna",\r
+                        "Treas",\r
+                        "Ceathr",\r
+                        "Còig",\r
+                        "Sia",\r
+                        "Seachd",\r
+                        "Ochd",\r
+                        "Naoidh",\r
+                        "Deich",\r
+                        "Aon Deug",\r
+                        "Dàrna Deug",\r
+                    }\r
+                    narrow{\r
+                        "1",\r
+                        "2",\r
+                        "3",\r
+                        "4",\r
+                        "5",\r
+                        "6",\r
+                        "7",\r
+                        "8",\r
+                        "9",\r
+                        "10",\r
+                        "11",\r
+                        "12",\r
+                    }\r
+                    wide{\r
+                        "dhen Chiad Mhìos",\r
+                        "dhen Dàrna Mhìos",\r
+                        "dhen Treas Mhìos",\r
+                        "dhen Cheathramh Mhìos",\r
+                        "dhen Chòigeamh Mhìos",\r
+                        "dhen t-Siathamh Mhìos",\r
+                        "dhen t-Seachdamh Mhìos",\r
+                        "dhen Ochdamh Mhìos",\r
+                        "dhen Naoidheamh Mhìos",\r
+                        "dhen Deicheamh Mhìos",\r
+                        "dhen Aonamh Mhìos Deug",\r
+                        "dhen Dàrna Mhìos Deug",\r
+                    }\r
+                }\r
+                stand-alone{\r
+                    abbreviated{\r
+                        "Chiad",\r
+                        "Dàrna",\r
+                        "Treas",\r
+                        "Ceathr",\r
+                        "Còig",\r
+                        "Sia",\r
+                        "Seachd",\r
+                        "Ochd",\r
+                        "Naoidh",\r
+                        "Deich",\r
+                        "Aon Deug",\r
+                        "Dàrna Deug",\r
+                    }\r
+                    narrow{\r
+                        "1",\r
+                        "2",\r
+                        "3",\r
+                        "4",\r
+                        "5",\r
+                        "6",\r
+                        "7",\r
+                        "8",\r
+                        "9",\r
+                        "10",\r
+                        "11",\r
+                        "12",\r
+                    }\r
+                    wide{\r
+                        "A’ Chiad Mhìos",\r
+                        "An Dàrna Mìos",\r
+                        "An Treas Mìos",\r
+                        "An Ceathramh Mìos",\r
+                        "An Còigeamh Mìos",\r
+                        "An Siathamh Mìos",\r
+                        "An Seachdamh Mìos",\r
+                        "An t-Ochdamh Mìos",\r
+                        "An Naoidheamh Mìos",\r
+                        "An Deicheamh Mìos",\r
+                        "An t-Aonamh Mìos Deug",\r
+                        "An Dàrna Mìos Deug",\r
+                    }\r
+                }\r
+            }\r
+        }\r
+        ethiopic{\r
+            DateTimePatterns{\r
+                "HH:mm:ss zzzz",\r
+                "HH:mm:ss z",\r
+                "HH:mm:ss",\r
+                "HH:mm",\r
+                "EEEE, d'mh' MMMM y G",\r
+                "d'mh' MMMM y G",\r
+                "d MMM y G",\r
+                "d/M/y GGGGG",\r
+                "{1} {0}",\r
+                "{1} 'aig' {0}",\r
+                "{1} 'aig' {0}",\r
+                "{1} {0}",\r
+                "{1} {0}",\r
+            }\r
+            availableFormats{\r
+                MMMMd{"d'mh' MMMM"}\r
+                yMM{"LL/y"}\r
+                yyyyM{"L/y GGGGG"}\r
+                yyyyMMMM{"LLLL y G"}\r
+            }\r
+            intervalFormats{\r
+                M{\r
+                    M{"L – L"}\r
+                }\r
             }\r
         }\r
         generic{\r
@@ -942,8 +1849,8 @@ gd{
                 "HH:mm:ss z",\r
                 "HH:mm:ss",\r
                 "HH:mm",\r
-                "EEEE, d MMMM y G",\r
-                "d MMMM y G",\r
+                "EEEE, d'mh' MMMM y G",\r
+                "d'mh' MMMM y G",\r
                 "d MMM y G",\r
                 "d/M/y GGGGG",\r
                 "{1} {0}",\r
@@ -953,17 +1860,17 @@ gd{
                 "{1} {0}",\r
             }\r
             availableFormats{\r
-                Bh{"h B"}\r
-                Bhm{"h:mm B"}\r
-                Bhms{"h:mm:ss B"}\r
+                Bh{"hB"}\r
+                Bhm{"h:mmB"}\r
+                Bhms{"h:mm:ssB"}\r
                 E{"ccc"}\r
-                EBhm{"E h:mm B"}\r
-                EBhms{"E h:mm:ss B"}\r
+                EBhm{"E h:mmB"}\r
+                EBhms{"E h:mm:ssB"}\r
                 EHm{"E HH:mm"}\r
                 EHms{"E HH:mm:ss"}\r
                 Ed{"E, d"}\r
-                Ehm{"E h:mm a"}\r
-                Ehms{"E h:mm:ss a"}\r
+                Ehm{"E h:mma"}\r
+                Ehms{"E h:mm:ssa"}\r
                 Gy{"y G"}\r
                 GyMMM{"LLL y G"}\r
                 GyMMMEd{"E, d MMM y G"}\r
@@ -975,26 +1882,26 @@ gd{
                 MEd{"E, d/M"}\r
                 MMM{"LLL"}\r
                 MMMEd{"E, d MMM"}\r
-                MMMMd{"d MMMM"}\r
+                MMMMd{"d'mh' MMMM"}\r
                 MMMd{"d MMM"}\r
                 MMdd{"dd/MM"}\r
                 Md{"d/M"}\r
                 d{"d"}\r
-                h{"h a"}\r
-                hm{"h:mm a"}\r
-                hms{"h:mm:ss a"}\r
+                h{"ha"}\r
+                hm{"h:mma"}\r
+                hms{"h:mm:ssa"}\r
                 ms{"mm:ss"}\r
                 y{"y G"}\r
                 yMEd{"E, d/M/y"}\r
-                yMM{"MM/y"}\r
+                yMM{"LL/y"}\r
                 yMMM{"LLL y"}\r
                 yMMMM{"LLLL y"}\r
                 yyyy{"y G"}\r
-                yyyyM{"M/y GGGGG"}\r
+                yyyyM{"L/y GGGGG"}\r
                 yyyyMEd{"E, d/M/y GGGGG"}\r
                 yyyyMMM{"LLL y G"}\r
                 yyyyMMMEd{"E, d MMM y G"}\r
-                yyyyMMMM{"MMMM y G"}\r
+                yyyyMMMM{"LLLL y G"}\r
                 yyyyMMMd{"d MMM y G"}\r
                 yyyyMd{"d/M/y GGGGG"}\r
                 yyyyQQQ{"QQQ y G"}\r
@@ -1016,7 +1923,7 @@ gd{
                     H{"HH – HH v"}\r
                 }\r
                 M{\r
-                    M{"M – M"}\r
+                    M{"L – L"}\r
                 }\r
                 MEd{\r
                     M{"E, d/M – E, d/M"}\r
@@ -1128,14 +2035,19 @@ gd{
                 Timezone{"{0} {1}"}\r
             }\r
             availableFormats{\r
+                Bh{"hB"}\r
+                Bhm{"h:mmB"}\r
+                Bhms{"h:mm:ssB"}\r
                 E{"ccc"}\r
+                EBhm{"E h:mmB"}\r
+                EBhms{"E h:mm:ssB"}\r
                 EHm{"E HH:mm"}\r
                 EHms{"E HH:mm:ss"}\r
                 Ed{"E, d"}\r
                 Ehm{"E h:mma"}\r
                 Ehms{"E h:mm:ss a"}\r
                 Gy{"y G"}\r
-                GyMMM{"MMM y G"}\r
+                GyMMM{"LLL y G"}\r
                 GyMMMEd{"E, d MMM y G"}\r
                 GyMMMd{"d MMM y G"}\r
                 H{"HH"}\r
@@ -1165,21 +2077,21 @@ gd{
                 hmv{"h:mma v"}\r
                 ms{"mm:ss"}\r
                 y{"y"}\r
-                yM{"M/y"}\r
+                yM{"L/y"}\r
                 yMEd{"E, d/M/y"}\r
-                yMM{"MM/y"}\r
-                yMMM{"MMM y"}\r
+                yMM{"LL/y"}\r
+                yMMM{"LLL Y"}\r
                 yMMMEd{"E, d MMM y"}\r
                 yMMMM{"LLLL y"}\r
                 yMMMd{"d MMM y"}\r
-                yMd{"M/d/y"}\r
+                yMd{"d/M/y"}\r
                 yQQQ{"QQQ y"}\r
                 yQQQQ{"QQQQ y"}\r
                 yw{\r
-                    few{"'seachdain' w 'dhe' y"}\r
-                    one{"'seachdain' w 'dhe' y"}\r
-                    other{"'seachdain' w 'dhe' y"}\r
-                    two{"'seachdain' w 'dhe' y"}\r
+                    few{"'seachdain' w 'dhe' Y"}\r
+                    one{"'seachdain' w 'dhe' Y"}\r
+                    other{"'seachdain' w 'dhe' Y"}\r
+                    two{"'seachdain' w 'dhe' Y"}\r
                 }\r
             }\r
             dayNames{\r
@@ -1306,7 +2218,7 @@ gd{
                     H{"HH – HH v"}\r
                 }\r
                 M{\r
-                    M{"M – M"}\r
+                    M{"L – L"}\r
                 }\r
                 MEd{\r
                     M{"E, d/M – E, d/M"}\r
@@ -1353,8 +2265,8 @@ gd{
                     y{"y – y"}\r
                 }\r
                 yM{\r
-                    M{"M/y – M/y"}\r
-                    y{"M/y – M/y"}\r
+                    M{"L/y – L/y"}\r
+                    y{"L/y – L/y"}\r
                 }\r
                 yMEd{\r
                     M{"E, d/M/y – E, d/M/y"}\r
@@ -1518,25 +2430,169 @@ gd{
                 }\r
             }\r
         }\r
-        roc{\r
+        hebrew{\r
+            DateTimePatterns{\r
+                "HH:mm:ss zzzz",\r
+                "HH:mm:ss z",\r
+                "HH:mm:ss",\r
+                "HH:mm",\r
+                "EEEE, d'mh' MMMM y G",\r
+                "d'mh' MMMM y G",\r
+                "d MMM y G",\r
+                "d/M/y GGGGG",\r
+                "{1} {0}",\r
+                "{1} 'aig' {0}",\r
+                "{1} 'aig' {0}",\r
+                "{1} {0}",\r
+                "{1} {0}",\r
+            }\r
+            availableFormats{\r
+                MMMMd{"d'mh' MMMM"}\r
+                yMM{"LL/y"}\r
+                yyyyM{"L/y GGGGG"}\r
+                yyyyMMMM{"LLLL y G"}\r
+            }\r
+            intervalFormats{\r
+                M{\r
+                    M{"L – L"}\r
+                }\r
+            }\r
+        }\r
+        indian{\r
+            DateTimePatterns{\r
+                "HH:mm:ss zzzz",\r
+                "HH:mm:ss z",\r
+                "HH:mm:ss",\r
+                "HH:mm",\r
+                "EEEE, d'mh' MMMM y G",\r
+                "d'mh' MMMM y G",\r
+                "d MMM y G",\r
+                "d/M/y GGGGG",\r
+                "{1} {0}",\r
+                "{1} {0}",\r
+                "{1} {0}",\r
+                "{1} {0}",\r
+                "{1} {0}",\r
+            }\r
+            availableFormats{\r
+                MMMMd{"d'mh' MMMM"}\r
+                yMM{"LL/y"}\r
+                yyyyM{"L/y GGGGG"}\r
+                yyyyMMMM{"LLLL y G"}\r
+            }\r
+            intervalFormats{\r
+                M{\r
+                    M{"L – L"}\r
+                }\r
+            }\r
+        }\r
+        islamic{\r
+            DateTimePatterns{\r
+                "HH:mm:ss zzzz",\r
+                "HH:mm:ss z",\r
+                "HH:mm:ss",\r
+                "HH:mm",\r
+                "EEEE, d'mh' MMMM y G",\r
+                "d'mh' MMMM y G",\r
+                "d MMM y G",\r
+                "d/M/y GGGGG",\r
+                "{1} {0}",\r
+                "{1} 'aig' {0}",\r
+                "{1} 'aig' {0}",\r
+                "{1} {0}",\r
+                "{1} {0}",\r
+            }\r
+            availableFormats{\r
+                MMMMd{"d'mh' MMMM"}\r
+                yMM{"LL/y"}\r
+                yyyyM{"L/y GGGGG"}\r
+                yyyyMMMM{"LLLL y G"}\r
+            }\r
+            intervalFormats{\r
+                M{\r
+                    M{"L – L"}\r
+                }\r
+            }\r
+        }\r
+        japanese{\r
+            DateTimePatterns{\r
+                "HH:mm:ss zzzz",\r
+                "HH:mm:ss z",\r
+                "HH:mm:ss",\r
+                "HH:mm",\r
+                "EEEE, d'mh' MMMM y G",\r
+                "d'mh' MMMM y G",\r
+                "d MMM y G",\r
+                "d/M/y GGGGG",\r
+                "{1} {0}",\r
+                "{1} 'aig' {0}",\r
+                "{1} 'aig' {0}",\r
+                "{1} {0}",\r
+                "{1} {0}",\r
+            }\r
+            availableFormats{\r
+                MMMMd{"d'mh' MMMM"}\r
+                yMM{"LL/y"}\r
+                yyyyM{"L/y GGGGG"}\r
+                yyyyMMMM{"LLLL y G"}\r
+            }\r
+            intervalFormats{\r
+                M{\r
+                    M{"L – L"}\r
+                }\r
+            }\r
+        }\r
+        persian{\r
             DateTimePatterns{\r
                 "HH:mm:ss zzzz",\r
                 "HH:mm:ss z",\r
                 "HH:mm:ss",\r
                 "HH:mm",\r
-                "EEEE, d MMMM y G",\r
-                "d MMMM y G",\r
+                "EEEE, d'mh' MMMM y G",\r
+                "d'mh' MMMM y G",\r
                 "d MMM y G",\r
                 "d/M/y GGGGG",\r
                 "{1} {0}",\r
+                "{1} 'aig' {0}",\r
+                "{1} 'aig' {0}",\r
+                "{1} {0}",\r
                 "{1} {0}",\r
+            }\r
+            availableFormats{\r
+                MMMMd{"d'mh' MMMM"}\r
+                yMM{"LL/y"}\r
+                yyyyM{"L/y GGGGG"}\r
+                yyyyMMMM{"LLLL y G"}\r
+            }\r
+            intervalFormats{\r
+                M{\r
+                    M{"L – L"}\r
+                }\r
+            }\r
+        }\r
+        roc{\r
+            DateTimePatterns{\r
+                "HH:mm:ss zzzz",\r
+                "HH:mm:ss z",\r
+                "HH:mm:ss",\r
+                "HH:mm",\r
+                "EEEE, d'mh' MMMM y G",\r
+                "d'mh' MMMM y G",\r
+                "d MMM y G",\r
+                "d/M/y GGGGG",\r
                 "{1} {0}",\r
+                "{1} 'aig' {0}",\r
+                "{1} 'aig' {0}",\r
                 "{1} {0}",\r
                 "{1} {0}",\r
             }\r
             availableFormats{\r
                 Ed{"E, d"}\r
+                MMMMd{"d'mh' MMMM"}\r
                 d{"d"}\r
+                yMM{"LL/y"}\r
+                yyyyM{"L/y GGGGG"}\r
+                yyyyMMMM{"LLLL y G"}\r
             }\r
             eras{\r
                 abbreviated{\r
@@ -1552,6 +2608,11 @@ gd{
                     "Mínguó",\r
                 }\r
             }\r
+            intervalFormats{\r
+                M{\r
+                    M{"L – L"}\r
+                }\r
+            }\r
         }\r
     }\r
     characterLabel{\r
@@ -2722,4 +3783,36 @@ gd{
         US{"SA"}\r
         metric{"Meatrach"}\r
     }\r
+    parse{\r
+        date{\r
+            lenient{\r
+                "[\\--/]",\r
+                "[\\:∶]",\r
+            }\r
+        }\r
+        general{\r
+            lenient{\r
+                "[.․。︒﹒.。]",\r
+                "['ʼ՚᾽᾿’']",\r
+                "[%٪﹪%]",\r
+                "[؉‰]",\r
+                "[\$﹩$$]",\r
+                "[£₤]",\r
+                "[¥¥]",\r
+                "[₩₩]",\r
+                "[₨₹{Rp}{Rs}]",\r
+            }\r
+        }\r
+        number{\r
+            lenient{\r
+                "[\\-‒⁻₋−➖﹣-]",\r
+                "[,،٫、︐︑﹐﹑,、]",\r
+                "[+⁺₊➕﬩﹢+]",\r
+            }\r
+            stricter{\r
+                "[,٫︐﹐,]",\r
+                "[.․﹒.。]",\r
+            }\r
+        }\r
+    }\r
 }\r
index 5f6b8839c3f2527e6bd13eecb78798607f550619..fc0f8b832f1cf989f711906a7d86ac88cb97e282 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 gl{\r
-    AuxExemplarCharacters{"[ª à â ä ã ç è ê ë ì î ï º ò ô ö õ ù û]"}\r
+    AuxExemplarCharacters{"[ª Ã  Ã¢ Ã¥ Ã¤ Ã£ Ã§ Ã¨ Ãª Ã« Ã¬ Ã® Ã¯ Âº Ã² Ã´ Ã¶ Ãµ Ã¹ Ã»]"}\r
     Ellipsis{\r
         final{"{0}…"}\r
         initial{"…{0}"}\r
@@ -22,7 +22,9 @@ gl{
         default{"latn"}\r
         latn{\r
             miscPatterns{\r
-                atLeast{"⩾{0}"}\r
+                approximately{"~{0}"}\r
+                atLeast{"≥{0}"}\r
+                atMost{"≤{0}"}\r
                 range{"{0}–{1}"}\r
             }\r
             patterns{\r
@@ -149,16 +151,16 @@ gl{
                         other{"0"}\r
                     }\r
                     1000000{\r
-                        one{"0 mill'.'"}\r
-                        other{"0 mill'.'"}\r
+                        one{"0 M"}\r
+                        other{"0 M"}\r
                     }\r
                     10000000{\r
-                        one{"00 mill'.'"}\r
-                        other{"00 mill'.'"}\r
+                        one{"00 M"}\r
+                        other{"00 M"}\r
                     }\r
                     100000000{\r
-                        one{"000 mill"}\r
-                        other{"000 mill"}\r
+                        one{"000 M"}\r
+                        other{"000 M"}\r
                     }\r
                     1000000000{\r
                         one{"0"}\r
@@ -173,16 +175,16 @@ gl{
                         other{"0"}\r
                     }\r
                     1000000000000{\r
-                        one{"0 bill'.'"}\r
-                        other{"0 bill'.'"}\r
+                        one{"0 B"}\r
+                        other{"0 B"}\r
                     }\r
                     10000000000000{\r
-                        one{"00 bill'.'"}\r
-                        other{"00 bill'.'"}\r
+                        one{"00 B"}\r
+                        other{"00 B"}\r
                     }\r
                     100000000000000{\r
-                        one{"000 bill'.'"}\r
-                        other{"000 bill'.'"}\r
+                        one{"000 B"}\r
+                        other{"000 B"}\r
                     }\r
                 }\r
             }\r
@@ -213,7 +215,7 @@ gl{
         minimumGroupingDigits{"1"}\r
         native{"latn"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.94"}\r
     calendar{\r
         generic{\r
             DateTimePatterns{\r
@@ -402,7 +404,7 @@ gl{
                 "HH:mm",\r
                 "EEEE, d 'de' MMMM 'de' y",\r
                 "d 'de' MMMM 'de' y",\r
-                "dd/MM/y",\r
+                "d 'de' MMM 'de' y",\r
                 "dd/MM/yy",\r
                 "{0}, {1}",\r
                 "{0} 'do' {1}",\r
@@ -427,7 +429,7 @@ gl{
                 Ehms{"E, h:mm:ss a"}\r
                 Gy{"y G"}\r
                 GyMMM{"MMM 'de' y G"}\r
-                GyMMMEd{"E, d/MM/y G"}\r
+                GyMMMEd{"E, d 'de' MMM 'de' y G"}\r
                 GyMMMd{"d 'de' MMMM 'de' y G"}\r
                 H{"HH"}\r
                 Hm{"HH:mm"}\r
@@ -649,15 +651,15 @@ gl{
                     d{"E, d/M – E, d/M"}\r
                 }\r
                 MMM{\r
-                    M{"MMMM–MMMM"}\r
+                    M{"MMMMMM"}\r
                 }\r
                 MMMEd{\r
                     M{"E, d MMM – E, d MMM"}\r
-                    d{"E, d 'de' MMMM – E, d 'de' MMMM"}\r
+                    d{"E, d 'de' MMM – E, d 'de' MMM"}\r
                 }\r
                 MMMd{\r
                     M{"d MMM – d MMM"}\r
-                    d{"d–d 'de' MMMM"}\r
+                    d{"d–d 'de' MMM"}\r
                 }\r
                 Md{\r
                     M{"d/M – d/M"}\r
@@ -702,9 +704,9 @@ gl{
                     y{"MMM 'de' y – MMM 'de' y"}\r
                 }\r
                 yMMMEd{\r
-                    M{"E, d 'de' MMMM – E, d 'de' MMMM 'de' y"}\r
+                    M{"E, d 'de' MMM – E, d 'de' MMM 'de' y"}\r
                     d{"E, d MMM – E, d MMM y"}\r
-                    y{"E, d 'de' MMMM 'de' y – E, d 'de' MMMM 'de' y"}\r
+                    y{"E, d 'de' MMM 'de' y – E, d 'de' MMM 'de' y"}\r
                 }\r
                 yMMMM{\r
                     M{"MMMM–MMMM 'de' y"}\r
@@ -898,7 +900,7 @@ gl{
         japanese_kana{"kanas xaponeses"}\r
         kanbun{"kanbun"}\r
         kanji{"kanjis"}\r
-        keycap{"teclas"}\r
+        keycap{"tecla"}\r
         leftwards_arrows{"frechas á esquerda"}\r
         leftwards_rightwards_arrows{"frechas á esquerda e dereita"}\r
         letterlike_symbols{"símbolos con letras"}\r
@@ -961,8 +963,8 @@ gl{
             }\r
             relativeTime{\r
                 future{\r
-                    one{"dentro de {0} día"}\r
-                    other{"dentro de {0} días"}\r
+                    one{"en {0} día"}\r
+                    other{"en {0} días"}\r
                 }\r
                 past{\r
                     one{"hai {0} día"}\r
@@ -971,15 +973,15 @@ gl{
             }\r
         }\r
         day-narrow{\r
-            dn{"d."}\r
+            dn{"día"}\r
             relativeTime{\r
                 future{\r
-                    one{"en {0} d."}\r
-                    other{"en {0} d."}\r
+                    one{"en {0} día"}\r
+                    other{"en {0} días"}\r
                 }\r
                 past{\r
-                    one{"hai {0} d."}\r
-                    other{"hai {0} d."}\r
+                    one{"hai {0} día"}\r
+                    other{"hai {0} días"}\r
                 }\r
             }\r
         }\r
@@ -987,8 +989,8 @@ gl{
             dn{"día"}\r
             relativeTime{\r
                 future{\r
-                    one{"dentro de {0} día"}\r
-                    other{"dentro de {0} días"}\r
+                    one{"en {0} día"}\r
+                    other{"en {0} días"}\r
                 }\r
                 past{\r
                     one{"hai {0} día"}\r
@@ -1000,7 +1002,7 @@ gl{
             dn{"día do ano"}\r
         }\r
         dayOfYear-narrow{\r
-            dn{"d. do a."}\r
+            dn{"día do ano"}\r
         }\r
         dayOfYear-short{\r
             dn{"día do ano"}\r
@@ -1018,7 +1020,7 @@ gl{
             dn{"era"}\r
         }\r
         era-narrow{\r
-            dn{"e."}\r
+            dn{"era"}\r
         }\r
         era-short{\r
             dn{"era"}\r
@@ -1031,8 +1033,8 @@ gl{
             }\r
             relativeTime{\r
                 future{\r
-                    one{"dentro de {0} venres"}\r
-                    other{"dentro de {0} venres"}\r
+                    one{"en {0} venres"}\r
+                    other{"en {0} venres"}\r
                 }\r
                 past{\r
                     one{"hai {0} venres"}\r
@@ -1065,8 +1067,8 @@ gl{
             }\r
             relativeTime{\r
                 future{\r
-                    one{"dentro de {0} ven."}\r
-                    other{"dentro de {0} ven."}\r
+                    one{"en {0} ven."}\r
+                    other{"en {0} ven."}\r
                 }\r
                 past{\r
                     one{"hai {0} ven."}\r
@@ -1081,8 +1083,8 @@ gl{
             }\r
             relativeTime{\r
                 future{\r
-                    one{"dentro de {0} hora"}\r
-                    other{"dentro de {0} horas"}\r
+                    one{"en {0} hora"}\r
+                    other{"en {0} horas"}\r
                 }\r
                 past{\r
                     one{"hai {0} hora"}\r
@@ -1107,8 +1109,8 @@ gl{
             dn{"h"}\r
             relativeTime{\r
                 future{\r
-                    one{"dentro de {0} h"}\r
-                    other{"dentro de {0} h"}\r
+                    one{"en {0} h"}\r
+                    other{"en {0} h"}\r
                 }\r
                 past{\r
                     one{"hai {0} h"}\r
@@ -1123,8 +1125,8 @@ gl{
             }\r
             relativeTime{\r
                 future{\r
-                    one{"dentro de {0} minuto"}\r
-                    other{"dentro de {0} minutos"}\r
+                    one{"en {0} minuto"}\r
+                    other{"en {0} minutos"}\r
                 }\r
                 past{\r
                     one{"hai {0} minuto"}\r
@@ -1149,8 +1151,8 @@ gl{
             dn{"min"}\r
             relativeTime{\r
                 future{\r
-                    one{"dentro de {0} min"}\r
-                    other{"dentro de {0} min"}\r
+                    one{"en {0} min"}\r
+                    other{"en {0} min"}\r
                 }\r
                 past{\r
                     one{"hai {0} min"}\r
@@ -1166,8 +1168,8 @@ gl{
             }\r
             relativeTime{\r
                 future{\r
-                    one{"dentro de {0} luns"}\r
-                    other{"dentro de {0} luns"}\r
+                    one{"en {0} luns"}\r
+                    other{"en {0} luns"}\r
                 }\r
                 past{\r
                     one{"hai {0} luns"}\r
@@ -1200,8 +1202,8 @@ gl{
             }\r
             relativeTime{\r
                 future{\r
-                    one{"dentro de {0} luns"}\r
-                    other{"dentro de {0} luns"}\r
+                    one{"en {0} luns"}\r
+                    other{"en {0} luns"}\r
                 }\r
                 past{\r
                     one{"hai {0} luns"}\r
@@ -1218,8 +1220,8 @@ gl{
             }\r
             relativeTime{\r
                 future{\r
-                    one{"dentro de {0} mes"}\r
-                    other{"dentro de {0} meses"}\r
+                    one{"en {0} mes"}\r
+                    other{"en {0} meses"}\r
                 }\r
                 past{\r
                     one{"hai {0} mes"}\r
@@ -1228,15 +1230,15 @@ gl{
             }\r
         }\r
         month-narrow{\r
-            dn{"m."}\r
+            dn{"mes"}\r
             relativeTime{\r
                 future{\r
-                    one{"en {0} m."}\r
-                    other{"en {0} m."}\r
+                    one{"en {0} mes"}\r
+                    other{"en {0} meses"}\r
                 }\r
                 past{\r
-                    one{"hai {0} m."}\r
-                    other{"hai {0} m."}\r
+                    one{"hai {0} mes"}\r
+                    other{"hai {0} meses"}\r
                 }\r
             }\r
         }\r
@@ -1249,12 +1251,12 @@ gl{
             }\r
             relativeTime{\r
                 future{\r
-                    one{"dentro de {0} mes"}\r
-                    other{"dentro de {0} mes."}\r
+                    one{"en {0} mes"}\r
+                    other{"en {0} meses"}\r
                 }\r
                 past{\r
                     one{"hai {0} mes"}\r
-                    other{"hai {0} mes."}\r
+                    other{"hai {0} meses"}\r
                 }\r
             }\r
         }\r
@@ -1267,8 +1269,8 @@ gl{
             }\r
             relativeTime{\r
                 future{\r
-                    one{"dentro de {0} trimestre"}\r
-                    other{"dentro de {0} trimestres"}\r
+                    one{"en {0} trimestre"}\r
+                    other{"en {0} trimestres"}\r
                 }\r
                 past{\r
                     one{"hai {0} trimestre"}\r
@@ -1303,8 +1305,8 @@ gl{
             }\r
             relativeTime{\r
                 future{\r
-                    one{"dentro de {0} trim."}\r
-                    other{"dentro de {0} trim."}\r
+                    one{"en {0} trim."}\r
+                    other{"en {0} trim."}\r
                 }\r
                 past{\r
                     one{"hai {0} trim."}\r
@@ -1320,8 +1322,8 @@ gl{
             }\r
             relativeTime{\r
                 future{\r
-                    one{"dentro de {0} sábado"}\r
-                    other{"dentro de {0} sábados"}\r
+                    one{"en {0} sábado"}\r
+                    other{"en {0} sábados"}\r
                 }\r
                 past{\r
                     one{"hai {0} sábado"}\r
@@ -1354,8 +1356,8 @@ gl{
             }\r
             relativeTime{\r
                 future{\r
-                    one{"dentro de {0} sáb."}\r
-                    other{"dentro de {0} sáb."}\r
+                    one{"en {0} sáb."}\r
+                    other{"en {0} sáb."}\r
                 }\r
                 past{\r
                     one{"hai {0} sáb."}\r
@@ -1370,8 +1372,8 @@ gl{
             }\r
             relativeTime{\r
                 future{\r
-                    one{"dentro de {0} segundo"}\r
-                    other{"dentro de {0} segundos"}\r
+                    one{"en {0} segundo"}\r
+                    other{"en {0} segundos"}\r
                 }\r
                 past{\r
                     one{"hai {0} segundo"}\r
@@ -1396,8 +1398,8 @@ gl{
             dn{"s"}\r
             relativeTime{\r
                 future{\r
-                    one{"dentro de {0} s"}\r
-                    other{"dentro de {0} s"}\r
+                    one{"en {0} s"}\r
+                    other{"en {0} s"}\r
                 }\r
                 past{\r
                     one{"hai {0} s"}\r
@@ -1413,8 +1415,8 @@ gl{
             }\r
             relativeTime{\r
                 future{\r
-                    one{"dentro de {0} domingo"}\r
-                    other{"dentro de {0} domingos"}\r
+                    one{"en {0} domingo"}\r
+                    other{"en {0} domingos"}\r
                 }\r
                 past{\r
                     one{"hai {0} domingo"}\r
@@ -1447,8 +1449,8 @@ gl{
             }\r
             relativeTime{\r
                 future{\r
-                    one{"dentro de {0} dom."}\r
-                    other{"dentro de {0} dom."}\r
+                    one{"en {0} dom."}\r
+                    other{"en {0} dom."}\r
                 }\r
                 past{\r
                     one{"hai {0} dom."}\r
@@ -1464,8 +1466,8 @@ gl{
             }\r
             relativeTime{\r
                 future{\r
-                    one{"dentro de {0} xoves"}\r
-                    other{"dentro de {0} xoves"}\r
+                    one{"en {0} xoves"}\r
+                    other{"en {0} xoves"}\r
                 }\r
                 past{\r
                     one{"hai {0} xoves"}\r
@@ -1498,8 +1500,8 @@ gl{
             }\r
             relativeTime{\r
                 future{\r
-                    one{"dentro de {0} xov."}\r
-                    other{"dentro de {0} xov."}\r
+                    one{"en {0} xov."}\r
+                    other{"en {0} xov."}\r
                 }\r
                 past{\r
                     one{"hai {0} xov."}\r
@@ -1515,8 +1517,8 @@ gl{
             }\r
             relativeTime{\r
                 future{\r
-                    one{"dentro de {0} martes"}\r
-                    other{"dentro de {0} martes"}\r
+                    one{"en {0} martes"}\r
+                    other{"en {0} martes"}\r
                 }\r
                 past{\r
                     one{"hai {0} martes"}\r
@@ -1549,8 +1551,8 @@ gl{
             }\r
             relativeTime{\r
                 future{\r
-                    one{"dentro de {0} mar."}\r
-                    other{"dentro de {0} mar."}\r
+                    one{"en {0} mar."}\r
+                    other{"en {0} mar."}\r
                 }\r
                 past{\r
                     one{"hai {0} mar."}\r
@@ -1566,8 +1568,8 @@ gl{
             }\r
             relativeTime{\r
                 future{\r
-                    one{"dentro de {0} mércores"}\r
-                    other{"dentro de {0} mércores"}\r
+                    one{"en {0} mércores"}\r
+                    other{"en {0} mércores"}\r
                 }\r
                 past{\r
                     one{"hai {0} mércores"}\r
@@ -1600,8 +1602,8 @@ gl{
             }\r
             relativeTime{\r
                 future{\r
-                    one{"dentro de {0} mér."}\r
-                    other{"dentro de {0} mér."}\r
+                    one{"en {0} mér."}\r
+                    other{"en {0} mér."}\r
                 }\r
                 past{\r
                     one{"hai {0} mér."}\r
@@ -1619,8 +1621,8 @@ gl{
             relativePeriod{"a semana do {0}"}\r
             relativeTime{\r
                 future{\r
-                    one{"dentro de {0} semana"}\r
-                    other{"dentro de {0} semanas"}\r
+                    one{"en {0} semana"}\r
+                    other{"en {0} semanas"}\r
                 }\r
                 past{\r
                     one{"hai {0} semana"}\r
@@ -1652,8 +1654,8 @@ gl{
             relativePeriod{"a semana do {0}"}\r
             relativeTime{\r
                 future{\r
-                    one{"dentro de {0} sem."}\r
-                    other{"dentro de {0} sem."}\r
+                    one{"en {0} sem."}\r
+                    other{"en {0} sem."}\r
                 }\r
                 past{\r
                     one{"hai {0} sem."}\r
@@ -1665,7 +1667,7 @@ gl{
             dn{"semana do mes"}\r
         }\r
         weekOfMonth-narrow{\r
-            dn{"sem. do m."}\r
+            dn{"sem. do mes"}\r
         }\r
         weekOfMonth-short{\r
             dn{"sem. do mes"}\r
@@ -1674,7 +1676,7 @@ gl{
             dn{"día da semana"}\r
         }\r
         weekday-narrow{\r
-            dn{"d. da sem."}\r
+            dn{"día da sem."}\r
         }\r
         weekday-short{\r
             dn{"día da sem."}\r
@@ -1683,7 +1685,7 @@ gl{
             dn{"semana do mes"}\r
         }\r
         weekdayOfMonth-narrow{\r
-            dn{"sem. do m."}\r
+            dn{"sem. do mes"}\r
         }\r
         weekdayOfMonth-short{\r
             dn{"sem. do mes"}\r
@@ -1697,8 +1699,8 @@ gl{
             }\r
             relativeTime{\r
                 future{\r
-                    one{"dentro de {0} ano"}\r
-                    other{"dentro de {0} anos"}\r
+                    one{"en {0} ano"}\r
+                    other{"en {0} anos"}\r
                 }\r
                 past{\r
                     one{"hai {0} ano"}\r
@@ -1707,7 +1709,7 @@ gl{
             }\r
         }\r
         year-narrow{\r
-            dn{"a."}\r
+            dn{"ano"}\r
             relative{\r
                 "-1"{"ano pasado"}\r
                 "0"{"este ano"}\r
@@ -1715,12 +1717,12 @@ gl{
             }\r
             relativeTime{\r
                 future{\r
-                    one{"en {0} a."}\r
-                    other{"en {0} a."}\r
+                    one{"en {0} ano"}\r
+                    other{"en {0} anos"}\r
                 }\r
                 past{\r
-                    one{"hai {0} a."}\r
-                    other{"hai {0} a."}\r
+                    one{"hai {0} ano"}\r
+                    other{"hai {0} anos"}\r
                 }\r
             }\r
         }\r
@@ -1733,8 +1735,8 @@ gl{
             }\r
             relativeTime{\r
                 future{\r
-                    one{"dentro de {0} ano"}\r
-                    other{"dentro de {0} anos"}\r
+                    one{"en {0} ano"}\r
+                    other{"en {0} anos"}\r
                 }\r
                 past{\r
                     one{"hai {0} ano"}\r
@@ -1795,4 +1797,36 @@ gl{
         US{"estadounidense"}\r
         metric{"métrico decimal"}\r
     }\r
+    parse{\r
+        date{\r
+            lenient{\r
+                "[\\--/]",\r
+                "[\\:∶]",\r
+            }\r
+        }\r
+        general{\r
+            lenient{\r
+                "[.․。︒﹒.。]",\r
+                "['ʼ՚᾽᾿’']",\r
+                "[%٪﹪%]",\r
+                "[؉‰]",\r
+                "[\$﹩$$]",\r
+                "[£₤]",\r
+                "[¥¥]",\r
+                "[₩₩]",\r
+                "[₨₹{Rp}{Rs}]",\r
+            }\r
+        }\r
+        number{\r
+            lenient{\r
+                "[\\-‒⁻₋−➖﹣-]",\r
+                "[,،٫、︐︑﹐﹑,、]",\r
+                "[+⁺₊➕﬩﹢+]",\r
+            }\r
+            stricter{\r
+                "[,٫︐﹐,]",\r
+                "[.․﹒.。]",\r
+            }\r
+        }\r
+    }\r
 }\r
index 7053cc535d4d1aeb9dcb4bb2de05b1faeb48fa16..4892a74308b580fc84514bd2472d22362496a532 100644 (file)
@@ -180,7 +180,7 @@ gsw{
             }\r
         }\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.41.34"}\r
     calendar{\r
         buddhist{\r
             DateTimePatterns{\r
index de3546ca8ce7a913d7373a4573bd1698b179929c..91ff6fb5bea61703f70be5e38c0531a8f3384d61 100644 (file)
@@ -55,7 +55,9 @@ gu{
         }\r
         latn{\r
             miscPatterns{\r
+                approximately{"~{0}"}\r
                 atLeast{"{0}+"}\r
+                atMost{"≤{0}"}\r
                 range{"{0}-{1}"}\r
             }\r
             patterns{\r
@@ -250,7 +252,7 @@ gu{
         minimumGroupingDigits{"1"}\r
         native{"gujr"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.2"}\r
     calendar{\r
         buddhist{\r
             eras{\r
@@ -2148,7 +2150,7 @@ gu{
             }\r
             relativeTime{\r
                 future{\r
-                    one{"+{0} રવિવાર"}\r
+                    one{"{0} રવિવારમાં"}\r
                     other{"{0} રવિવારમાં"}\r
                 }\r
                 past{\r
@@ -2220,8 +2222,8 @@ gu{
                     other{"{0} ગુરુવારમાં"}\r
                 }\r
                 past{\r
-                    one{"-{0} ગુરુવાર"}\r
-                    other{"-{0} ગુરુવાર"}\r
+                    one{"{0} ગુરુ. પહેલાં"}\r
+                    other{"{0} ગુરુ. પહેલાં"}\r
                 }\r
             }\r
         }\r
@@ -2528,8 +2530,13 @@ gu{
         general{\r
             lenient{\r
                 "[.․。︒﹒.。]",\r
+                "['ʼ՚᾽᾿’']",\r
+                "[%٪﹪%]",\r
+                "[؉‰]",\r
                 "[\$﹩$$]",\r
                 "[£₤]",\r
+                "[¥¥]",\r
+                "[₩₩]",\r
                 "[₨₹{Rp}{Rs}]",\r
             }\r
         }\r
index 770a64765974368f7f5b555527f81b0ae30a5d2d..e88e8291f0c5164a0d42e3bd5877e7ca4d6c5047 100644 (file)
@@ -173,7 +173,7 @@ ha{
             }\r
         }\r
     }\r
-    Version{"2.1.39.11"}\r
+    Version{"2.1.43.2"}\r
     calendar{\r
         generic{\r
             DateTimePatterns{\r
index bf3d3e398c23ef165df08fd63ec928ad011594cf..fbe5351937cdadbff07703de8082d0829402c7e6 100644 (file)
@@ -4,7 +4,7 @@ ha_NE{
     AuxExemplarCharacters{"[á à â é è ê í ì î ó ò ô p q {r\u0303} ú ù û v x {ʼy}]"}\r
     ExemplarCharacters{"[a b ɓ c d ɗ e f g h i j k ƙ l m n o r s {sh} t {ts} u w y ƴ z ʼ]"}\r
     ExemplarCharactersIndex{"[A B Ɓ C D Ɗ E F G H I J K Ƙ L M N O P Q R S T U V W X Y Ƴ Z]"}\r
-    Version{"2.1.39.37"}\r
+    Version{"2.1.44.53"}\r
     fields{\r
         day{\r
             relative{\r
index 1bb07b3fadf28dfdc82b8fc1626cc89a621c69d9..13880920f15ddda0d820944f6617d8b0ba7bb491 100644 (file)
@@ -7,7 +7,7 @@ haw{
     NumberElements{\r
         latn{\r
             miscPatterns{\r
-                atLeast{"⩾{0}"}\r
+                atLeast{"â\89¥{0}"}\r
                 range{"{0}–{1}"}\r
             }\r
             patterns{\r
@@ -32,7 +32,7 @@ haw{
         }\r
         minimumGroupingDigits{"1"}\r
     }\r
-    Version{"2.1.38.69"}\r
+    Version{"2.1.43.94"}\r
     calendar{\r
         generic{\r
             DateTimePatterns{\r
index fa756b2180a7546cd6c6f0003fa1cfb255f93626..a3a6b6736da5cd302ea75492ae10d29a2fec733e 100644 (file)
@@ -34,7 +34,9 @@ he{
         default{"latn"}\r
         latn{\r
             miscPatterns{\r
-                atLeast{"⩾{0}+"}\r
+                approximately{"~{0}"}\r
+                atLeast{"≥{0}+"}\r
+                atMost{"≤{0}"}\r
                 range{"{0}–{1}"}\r
             }\r
             patterns{\r
@@ -300,7 +302,7 @@ he{
         native{"latn"}\r
         traditional{"hebr"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.94"}\r
     calendar{\r
         buddhist{\r
             eras{\r
@@ -1837,6 +1839,7 @@ he{
                     "Taishō",\r
                     "Shōwa",\r
                     "Heisei",\r
+                    "Qqqq",\r
                 }\r
             }\r
         }\r
@@ -1962,8 +1965,8 @@ he{
     }\r
     characterLabel{\r
         activities{"פעילויות"}\r
-        african_scripts{"סקר×\99פ×\98×\99×\9d של שפות אפריקאיות"}\r
-        american_scripts{"סקר×\99פ×\98×\99×\9d של שפות אמריקאיות"}\r
+        african_scripts{"×\9bת×\91 של שפות אפריקאיות"}\r
+        american_scripts{"×\9bת×\91 של שפות אמריקאיות"}\r
         animal{"חיות"}\r
         animals_nature{"בעלי חיים וטבע"}\r
         arrows{"חצים"}\r
@@ -1980,9 +1983,9 @@ he{
         divination_symbols{"סמלי חיזוי עתידות"}\r
         downwards_arrows{"חצים כלפי מטה"}\r
         downwards_upwards_arrows{"חצים כלפי מעלה ומטה"}\r
-        east_asian_scripts{"סקר×\99פ×\98×\99×\9d של מזרח אסיה"}\r
+        east_asian_scripts{"×\9bת×\91 של מזרח אסיה"}\r
         emoji{"אמוג׳י"}\r
-        european_scripts{"סקר×\99פ×\98×\99×\9d ×\90×\99ר×\95פ×\90×\99×\99×\9d"}\r
+        european_scripts{"×\9bת×\91 ×©×\9c ×©×¤×\95ת ×\90×\99ר×\95פ×\99×\95ת"}\r
         female{"אישה"}\r
         flag{"דגל"}\r
         flags{"דגלים"}\r
@@ -1998,7 +2001,7 @@ he{
         hanzi_simplified{"האנזי (פשוטה)"}\r
         hanzi_traditional{"האנזי (מסורתית)"}\r
         heart{"לב"}\r
-        historic_scripts{"סקר×\99פ×\98×\99×\9d ×\94×\99ס×\98×\95ר×\99×\99×\9d"}\r
+        historic_scripts{"×\9eער×\9b×\95ת ×\9bת×\91 ×\94×\99ס×\98×\95ר×\99×\95ת"}\r
         ideographic_desc_characters{"תווי תיאור אידיאוגרפי"}\r
         japanese_kana{"קאנה יפנית"}\r
         kanbun{"קאנבון"}\r
@@ -2010,9 +2013,9 @@ he{
         limited_use{"לשימוש מוגבל"}\r
         male{"גבר"}\r
         math_symbols{"סמלים מתמטיים"}\r
-        middle_eastern_scripts{"סקר×\99פ×\98×\99×\9d של המזרח התיכון"}\r
+        middle_eastern_scripts{"×\9eער×\9b×\95ת ×\9bת×\91 של המזרח התיכון"}\r
         miscellaneous{"שונות"}\r
-        modern_scripts{"סקר×\99פ×\98×\99×\9d ×\9e×\95×\93רנ×\99×\99×\9d"}\r
+        modern_scripts{"×\9eער×\9b×\95ת ×\9bת×\91 ×\9e×\95×\93רנ×\99×\95ת"}\r
         modifier{"סימן מחליף"}\r
         musical_symbols{"סמלים מוזיקליים"}\r
         nature{"טבע"}\r
@@ -2045,7 +2048,7 @@ he{
         variant_forms{"חלופות"}\r
         vocalic_jamo{"ג׳אמו ווקאלי"}\r
         weather{"מזג אוויר"}\r
-        western_asian_scripts{"סקר×\99פ×\98×\99×\9d ממערב אסיה"}\r
+        western_asian_scripts{"×\9eער×\9b×\95ת ×\9bת×\91 ממערב אסיה"}\r
         whitespace{"רווח לבן"}\r
     }\r
     delimiters{\r
@@ -2139,7 +2142,7 @@ he{
             dn{"לפנה״צ/אחה״צ"}\r
         }\r
         dayperiod-narrow{\r
-            dn{"לפנה״צ/אחה״צ"}\r
+            dn{"AM/PM"}\r
         }\r
         dayperiod-short{\r
             dn{"AM/PM"}\r
@@ -3116,8 +3119,13 @@ he{
         general{\r
             lenient{\r
                 "[.․。︒﹒.。]",\r
+                "['ʼ՚᾽᾿’']",\r
+                "[%٪﹪%]",\r
+                "[؉‰]",\r
                 "[\$﹩$$]",\r
                 "[£₤]",\r
+                "[¥¥]",\r
+                "[₩₩]",\r
                 "[₨₹{Rp}{Rs}]",\r
             }\r
         }\r
index ff9c3463b1afffc1872e887cdd207d6f834e647a..ba19a820af43cdc4f775f56ae0f2020c88b9f315 100644 (file)
@@ -41,7 +41,9 @@ hi{
         }\r
         latn{\r
             miscPatterns{\r
+                approximately{"~{0}"}\r
                 atLeast{"{0}+"}\r
+                atMost{"≤{0}"}\r
                 range{"{0}–{1}"}\r
             }\r
             patterns{\r
@@ -222,11 +224,11 @@ hi{
         }\r
         minimalPairs{\r
             ordinal{\r
-                few{"{0}था दाहिना मोड़ लें॰"}\r
-                many{"{0}ठा दाहिना मोड़ लें"}\r
-                one{"{0}ला दाहिना मोड़ लें"}\r
-                other{"{0}वां दाहिना मोड़ लें"}\r
-                two{"{0}रा दाहिना मोड़ लें"}\r
+                few{"{0}था दाहिना मोड़ लें."}\r
+                many{"{0}ठा दाहिना मोड़ लें."}\r
+                one{"{0}ला दाहिना मोड़ लें."}\r
+                other{"{0}वां दाहिना मोड़ लें."}\r
+                two{"{0}रा दाहिना मोड़ लें."}\r
             }\r
             plural{\r
                 one{"{0} घंटा"}\r
@@ -236,7 +238,7 @@ hi{
         minimumGroupingDigits{"1"}\r
         native{"deva"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.50"}\r
     calendar{\r
         ethiopic{\r
             monthNames{\r
@@ -1239,6 +1241,7 @@ hi{
                     "ताईशो",\r
                     "शोवा",\r
                     "हेईसेई",\r
+                    "Qqqq",\r
                 }\r
             }\r
         }\r
@@ -1267,7 +1270,7 @@ hi{
         activities{"गतिविधि"}\r
         african_scripts{"अफ़्रीकी लिपि"}\r
         american_scripts{"अमेरिकी लिपि"}\r
-        animal{"à¤\9cानवर"}\r
+        animal{"पशà¥\81"}\r
         animals_nature{"पशु और प्रकृति"}\r
         arrows{"तीर"}\r
         body{"शरीर"}\r
@@ -1280,7 +1283,7 @@ hi{
         dash_connector{"डैश या कनेक्टर"}\r
         digits{"अंक"}\r
         dingbats{"dingbat"}\r
-        divination_symbols{"à¤\85नुमान चिह्न"}\r
+        divination_symbols{"पà¥\82रà¥\8dवानुमान चिह्न"}\r
         downwards_arrows{"नीचे की ओर वाला तीर"}\r
         downwards_upwards_arrows{"नीचे की ओर ऊपर की ओर तीर"}\r
         east_asian_scripts{"पूर्वी एशियाई लिपि"}\r
@@ -1292,24 +1295,24 @@ hi{
         food_drink{"खान-पान"}\r
         format{"प्रारूप"}\r
         format_whitespace{"प्रारूप और श्वेतरिक्ति"}\r
-        full_width_form_variant{"पà¥\82रà¥\80 à¤\9aà¥\8cड़ाà¤\88 à¤µà¤¾à¤²à¤¾ à¤«à¤¾र्म वेरिएंट"}\r
+        full_width_form_variant{"पà¥\82रà¥\80 à¤\9aà¥\8cड़ाà¤\88 à¤µà¤¾à¤²à¤¾ à¤«à¤¼à¥\89र्म वेरिएंट"}\r
         geometric_shapes{"ज्यामितीय आकार"}\r
-        half_width_form_variant{"half-width variant"}\r
-        han_characters{"Han character"}\r
-        han_radicals{"Han radical"}\r
-        hanja{"hanja"}\r
-        hanzi_simplified{"Hanzi (simplified)"}\r
-        hanzi_traditional{"Hanzi (traditional)"}\r
+        half_width_form_variant{"आधी चौड़ाई वेरिएंट"}\r
+        han_characters{"हान वर्ण"}\r
+        han_radicals{"हान मूलशब्द"}\r
+        hanja{"हांजा"}\r
+        hanzi_simplified{"चीनी हान वर्ण (सरलीकृत)"}\r
+        hanzi_traditional{"चीनी हान वर्ण (पारंपरिक)"}\r
         heart{"दिल"}\r
         historic_scripts{"ऐतिहासिक लिपि"}\r
-        ideographic_desc_characters{"ideographic desc. character"}\r
+        ideographic_desc_characters{"आइडियोग्राफ़िक विवरणात्मक वर्ण"}\r
         japanese_kana{"जापानी काना"}\r
-        kanbun{"kanbun"}\r
+        kanbun{"कानबुन"}\r
         kanji{"कांजी"}\r
         keycap{"कीकैप"}\r
         leftwards_arrows{"बाईं ओर तीर"}\r
         leftwards_rightwards_arrows{"दाईं व बाईं ओर वाला तीर"}\r
-        letterlike_symbols{"पतà¥\8dर-à¤\9cà¥\88सà¥\87 à¤ªà¥\8dरतà¥\80à¤\95"}\r
+        letterlike_symbols{"à¤\85à¤\95à¥\8dषर à¤¸à¤¦à¥\83श à¤\9aिहà¥\8dन"}\r
         limited_use{"सीमित उपयोग"}\r
         male{"पुरुष"}\r
         math_symbols{"गणितीय प्रतीक"}\r
@@ -1321,7 +1324,7 @@ hi{
         nature{"प्रकृति"}\r
         nonspacing{"गैर रिक्ति"}\r
         numbers{"संख्या"}\r
-        objects{"वस्तुएं"}\r
+        objects{"वस्तु"}\r
         other{"अन्य"}\r
         paired{"युग्मित"}\r
         person{"व्यक्ति"}\r
@@ -1332,7 +1335,7 @@ hi{
         punctuation{"विराम चिह्न"}\r
         rightwards_arrows{"बाईं ओर तीर"}\r
         sign_standard_symbols{"चिह्न या प्रतीक"}\r
-        small_form_variant{"à¤\9bà¥\8bà¤\9fà¥\87 à¤«à¤¾र्म वेरिएंट"}\r
+        small_form_variant{"à¤\9bà¥\8bà¤\9fà¥\87 à¤«à¤¼à¥\89र्म वेरिएंट"}\r
         smiley{"स्माइली"}\r
         smileys_people{"स्माइली या लोग"}\r
         south_asian_scripts{"दक्षिण एशियाई लिपि"}\r
@@ -1346,7 +1349,7 @@ hi{
         travel_places{"यात्रा या स्थान"}\r
         upwards_arrows{"ऊपर की ओर तीर"}\r
         variant_forms{"विविध रूप"}\r
-        vocalic_jamo{"vocalic jamo"}\r
+        vocalic_jamo{"वोकेलिक जामो"}\r
         weather{"मौसम"}\r
         western_asian_scripts{"पश्चिमी एशियाई लिपि"}\r
         whitespace{"श्वेतरिक्ति"}\r
@@ -2193,8 +2196,13 @@ hi{
         general{\r
             lenient{\r
                 "[.․。︒﹒.。]",\r
+                "['ʼ՚᾽᾿’']",\r
+                "[%٪﹪%]",\r
+                "[؉‰]",\r
                 "[\$﹩$$]",\r
                 "[£₤]",\r
+                "[¥¥]",\r
+                "[₩₩]",\r
                 "[₨₹{Rp}{Rs}]",\r
             }\r
         }\r
index e33fe87de1edc0763c472d7e40f81402ec99ab06..96f5111fbd94fe6ccd30a9a3f2f9b17d868e555c 100644 (file)
@@ -22,14 +22,16 @@ hr{
         default{"latn"}\r
         latn{\r
             miscPatterns{\r
+                approximately{"~{0}"}\r
                 atLeast{"{0}+"}\r
+                atMost{"≤{0}"}\r
                 range{"{0} – {1}"}\r
             }\r
             patterns{\r
                 accountingFormat{"#,##0.00 ¤"}\r
                 currencyFormat{"#,##0.00 ¤"}\r
                 decimalFormat{"#,##0.###"}\r
-                percentFormat{"#,##0%"}\r
+                percentFormat{"#,##0 %"}\r
                 scientificFormat{"#E0"}\r
             }\r
             patternsLong{\r
@@ -250,7 +252,7 @@ hr{
         minimumGroupingDigits{"1"}\r
         native{"latn"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.50"}\r
     calendar{\r
         buddhist{\r
             eras{\r
@@ -1577,6 +1579,7 @@ hr{
                     "Taishō",\r
                     "Shōwa",\r
                     "Heisei",\r
+                    "Qqqq",\r
                 }\r
             }\r
         }\r
@@ -2773,4 +2776,36 @@ hr{
         US{"američki sustav"}\r
         metric{"metrički sustav"}\r
     }\r
+    parse{\r
+        date{\r
+            lenient{\r
+                "[\\--/]",\r
+                "[\\:∶]",\r
+            }\r
+        }\r
+        general{\r
+            lenient{\r
+                "[.․。︒﹒.。]",\r
+                "['ʼ՚᾽᾿’']",\r
+                "[%٪﹪%]",\r
+                "[؉‰]",\r
+                "[\$﹩$$]",\r
+                "[£₤]",\r
+                "[¥¥]",\r
+                "[₩₩]",\r
+                "[₨₹{Rp}{Rs}]",\r
+            }\r
+        }\r
+        number{\r
+            lenient{\r
+                "[\\-‒⁻₋−➖﹣-]",\r
+                "[,،٫、︐︑﹐﹑,、]",\r
+                "[+⁺₊➕﬩﹢+]",\r
+            }\r
+            stricter{\r
+                "[,٫︐﹐,]",\r
+                "[.․﹒.。]",\r
+            }\r
+        }\r
+    }\r
 }\r
index d9fddaffdee2a48d124738903ef34fe5f2e4ade3..258a67970ac0a214294ddd2392b97c185e6328f1 100644 (file)
@@ -196,7 +196,7 @@ hsb{
         }\r
         minimumGroupingDigits{"1"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.41.34"}\r
     calendar{\r
         generic{\r
             DateTimePatterns{\r
index db74057ce15da7a10bdee82bf64b8342477ad085..1c8c2e7d7ca5182bd822db955779911e0912512b 100644 (file)
@@ -29,7 +29,9 @@ hu{
         default{"latn"}\r
         latn{\r
             miscPatterns{\r
+                approximately{"~{0}"}\r
                 atLeast{"{0}+"}\r
+                atMost{"≤{0}"}\r
                 range{"{0}–{1}"}\r
             }\r
             patterns{\r
@@ -221,7 +223,7 @@ hu{
         minimumGroupingDigits{"4"}\r
         native{"latn"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.65"}\r
     calendar{\r
         buddhist{\r
             eras{\r
@@ -875,6 +877,10 @@ hu{
                     "i. e.",\r
                     "i. sz.",\r
                 }\r
+                abbreviated%variant{\r
+                    "i.e.",\r
+                    "i.sz.",\r
+                }\r
                 narrow{\r
                     "ie.",\r
                     "isz.",\r
@@ -1358,6 +1364,20 @@ hu{
         persian{\r
             monthNames{\r
                 format{\r
+                    abbreviated{\r
+                        "farvardin",\r
+                        "ordibehesht",\r
+                        "khordad",\r
+                        "tir",\r
+                        "mordad",\r
+                        "shahrivar",\r
+                        "mehr",\r
+                        "aban",\r
+                        "azar",\r
+                        "dey",\r
+                        "bahman",\r
+                        "esfand",\r
+                    }\r
                     narrow{\r
                         "1",\r
                         "2",\r
@@ -2406,4 +2426,36 @@ hu{
         US{"amerikai"}\r
         metric{"metrikus"}\r
     }\r
+    parse{\r
+        date{\r
+            lenient{\r
+                "[\\--/]",\r
+                "[\\:∶]",\r
+            }\r
+        }\r
+        general{\r
+            lenient{\r
+                "[.․。︒﹒.。]",\r
+                "['ʼ՚᾽᾿’']",\r
+                "[%٪﹪%]",\r
+                "[؉‰]",\r
+                "[\$﹩$$]",\r
+                "[£₤]",\r
+                "[¥¥]",\r
+                "[₩₩]",\r
+                "[₨₹{Rp}{Rs}]",\r
+            }\r
+        }\r
+        number{\r
+            lenient{\r
+                "[\\-‒⁻₋−➖﹣-]",\r
+                "[,،٫、︐︑﹐﹑,、]",\r
+                "[+⁺₊➕﬩﹢+]",\r
+            }\r
+            stricter{\r
+                "[,٫︐﹐,]",\r
+                "[.․﹒.。]",\r
+            }\r
+        }\r
+    }\r
 }\r
index b43d1c5cd716cd06c83cd92b57215715046e2d4b..e0070c964bfd3783a217d31530d459f49176bf0f 100644 (file)
@@ -21,7 +21,9 @@ hy{
         default{"latn"}\r
         latn{\r
             miscPatterns{\r
+                approximately{"~{0}"}\r
                 atLeast{"{0}+"}\r
+                atMost{"≤{0}"}\r
                 range{"{0}–{1}"}\r
             }\r
             patterns{\r
@@ -214,7 +216,7 @@ hy{
         native{"latn"}\r
         traditional{"armn"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.50"}\r
     calendar{\r
         generic{\r
             DateTimePatterns{\r
@@ -373,12 +375,12 @@ hy{
         }\r
         gregorian{\r
             AmPmMarkers{\r
-                "ԿԱ",\r
-                "ԿՀ",\r
+                "AM",\r
+                "PM",\r
             }\r
             AmPmMarkersAbbr{\r
-                "ԿԱ",\r
-                "ԿՀ",\r
+                "AM",\r
+                "PM",\r
             }\r
             AmPmMarkersNarrow{\r
                 "ա",\r
@@ -564,33 +566,33 @@ hy{
                 stand-alone{\r
                     abbreviated{\r
                         afternoon1{"ցերեկ"}\r
-                        am{"ԿԱ"}\r
+                        am{"AM"}\r
                         evening1{"երեկո"}\r
                         midnight{"կեսգիշեր"}\r
                         morning1{"առավոտ"}\r
                         night1{"գիշեր"}\r
                         noon{"կեսօր"}\r
-                        pm{"ԿՀ"}\r
+                        pm{"PM"}\r
                     }\r
                     narrow{\r
                         afternoon1{"ցերեկ"}\r
-                        am{"ԿԱ"}\r
+                        am{"AM"}\r
                         evening1{"երեկո"}\r
                         midnight{"կեսգիշեր"}\r
                         morning1{"առավոտ"}\r
                         night1{"գիշեր"}\r
                         noon{"կեսօր"}\r
-                        pm{"ԿՀ"}\r
+                        pm{"PM"}\r
                     }\r
                     wide{\r
                         afternoon1{"ցերեկ"}\r
-                        am{"ԿԱ"}\r
+                        am{"AM"}\r
                         evening1{"երեկո"}\r
                         midnight{"կեսգիշեր"}\r
                         morning1{"առավոտ"}\r
                         night1{"գիշեր"}\r
                         noon{"կեսօր"}\r
-                        pm{"ԿՀ"}\r
+                        pm{"PM"}\r
                     }\r
                 }\r
             }\r
diff --git a/source/data/locales/ia.txt b/source/data/locales/ia.txt
new file mode 100644 (file)
index 0000000..e427208
--- /dev/null
@@ -0,0 +1,1054 @@
+// © 2016 and later: Unicode, Inc. and others.\r
+// License & terms of use: http://www.unicode.org/copyright.html#License\r
+ia{\r
+    AuxExemplarCharacters{\r
+        "[á à ă â å ä ã ā æ ç é è ĕ ê ë ē í ì ĭ î ï ī ñ ó ò ŏ ô ö ø ō œ ú ù ŭ û ü ū ÿ"\r
+        "]"\r
+    }\r
+    Ellipsis{\r
+        final{"{0}…"}\r
+        initial{"…{0}"}\r
+        medial{"{0}…{1}"}\r
+        word-final{"{0} …"}\r
+        word-initial{"… {0}"}\r
+        word-medial{"{0} … {1}"}\r
+    }\r
+    ExemplarCharacters{"[a b c {ch} d e f g h i j k l m n o p {ph} q r s t u v w x y z]"}\r
+    MoreInformation{"?"}\r
+    NumberElements{\r
+        default{"latn"}\r
+        latn{\r
+            miscPatterns{\r
+                atLeast{"≥{0}"}\r
+                range{"{0}–{1}"}\r
+            }\r
+            patterns{\r
+                accountingFormat{"¤ #,##0.00;(¤ #,##0.00)"}\r
+                currencyFormat{"¤ #,##0.00"}\r
+                decimalFormat{"#,##0.###"}\r
+                percentFormat{"#,##0%"}\r
+                scientificFormat{"#E0"}\r
+            }\r
+            symbols{\r
+                decimal{","}\r
+                exponential{"E"}\r
+                group{"."}\r
+                infinity{"∞"}\r
+                minusSign{"-"}\r
+                nan{"NaN"}\r
+                perMille{"‰"}\r
+                percentSign{"%"}\r
+                plusSign{"+"}\r
+                superscriptingExponent{"×"}\r
+            }\r
+        }\r
+        minimalPairs{\r
+            ordinal{\r
+                other{"Prende le 7e exito a dextra."}\r
+            }\r
+        }\r
+        minimumGroupingDigits{"2"}\r
+        native{"latn"}\r
+    }\r
+    Version{"2.1.44.15"}\r
+    calendar{\r
+        generic{\r
+            DateTimePatterns{\r
+                "HH:mm:ss zzzz",\r
+                "HH:mm:ss z",\r
+                "HH:mm:ss",\r
+                "HH:mm",\r
+                "EEEE 'le' d 'de' MMMM y G",\r
+                "d 'de' MMMM y G",\r
+                "d MMM y G",\r
+                "dd-MM-y GGGGG",\r
+                "{1}, {0}",\r
+                "{1} 'a' {0}",\r
+                "{1} 'a' {0}",\r
+                "{1}, {0}",\r
+                "{1}, {0}",\r
+            }\r
+            availableFormats{\r
+                Bh{"h B"}\r
+                Bhm{"h:mm B"}\r
+                Bhms{"h:mm:ss B"}\r
+                E{"ccc"}\r
+                EBhm{"E h:mm B"}\r
+                EBhms{"E h:mm:ss B"}\r
+                EHm{"E HH:mm"}\r
+                EHms{"E HH:mm:ss"}\r
+                Ed{"E d"}\r
+                Ehm{"E h:mm a"}\r
+                Ehms{"E h:mm:ss a"}\r
+                Gy{"y G"}\r
+                GyMMM{"MMM y G"}\r
+                GyMMMEd{"E d MMM y G"}\r
+                GyMMMd{"d MMM y G"}\r
+                H{"HH"}\r
+                Hm{"HH:mm"}\r
+                Hms{"HH:mm:ss"}\r
+                M{"L"}\r
+                MEd{"E dd-MM"}\r
+                MMM{"LLL"}\r
+                MMMEd{"E d MMM"}\r
+                MMMMd{"d 'de' MMMM"}\r
+                MMMd{"d MMM"}\r
+                Md{"dd-MM"}\r
+                d{"d"}\r
+                h{"h a"}\r
+                hm{"h:mm a"}\r
+                hms{"h:mm:ss a"}\r
+                ms{"mm:ss"}\r
+                y{"y G"}\r
+                yyyy{"y G"}\r
+                yyyyM{"MM-y GGGGG"}\r
+                yyyyMEd{"E dd-MM-y GGGGG"}\r
+                yyyyMMM{"MMM y G"}\r
+                yyyyMMMEd{"E d MMM y G"}\r
+                yyyyMMMM{"MMMM y G"}\r
+                yyyyMMMd{"d MMM y G"}\r
+                yyyyMd{"dd-MM-y GGGGG"}\r
+                yyyyQQQ{"QQQ y G"}\r
+                yyyyQQQQ{"QQQQ 'de' y G"}\r
+            }\r
+            intervalFormats{\r
+                M{\r
+                    M{"MM – MM"}\r
+                }\r
+                MEd{\r
+                    M{"E dd-MM – E dd-MM"}\r
+                    d{"E dd-MM – E dd-MM"}\r
+                }\r
+                MMM{\r
+                    M{"MMM – MMM"}\r
+                }\r
+                MMMEd{\r
+                    M{"E d MMM – E d MMM"}\r
+                    d{"E d MMM – E d MMM"}\r
+                }\r
+                MMMd{\r
+                    M{"d MMM – d MMM"}\r
+                    d{"d – d MMM"}\r
+                }\r
+                Md{\r
+                    M{"dd-MM – dd-MM"}\r
+                    d{"dd-MM – dd-MM"}\r
+                }\r
+                d{\r
+                    d{"d – d"}\r
+                }\r
+                fallback{"{0} – {1}"}\r
+                y{\r
+                    y{"y – y G"}\r
+                }\r
+                yM{\r
+                    M{"MM-y – MM-y GGGGG"}\r
+                    y{"MM-y – MM-y GGGGG"}\r
+                }\r
+                yMEd{\r
+                    M{"E dd-MM-y – E dd-MM-y GGGGG"}\r
+                    d{"E dd-MM-y – E dd-MM-y GGGGG"}\r
+                    y{"E dd-MM-y – E dd-MM-y GGGGG"}\r
+                }\r
+                yMMM{\r
+                    M{"MMM – MMM y G"}\r
+                    y{"MMM y – MMM y G"}\r
+                }\r
+                yMMMEd{\r
+                    M{"E d MMM – E d MMM y G"}\r
+                    d{"E d MMM – E d MMM y G"}\r
+                    y{"E d MMM y – E d MMM y G"}\r
+                }\r
+                yMMMM{\r
+                    M{"MMMM – MMMM y G"}\r
+                    y{"MMMM y – MMMM y G"}\r
+                }\r
+                yMMMd{\r
+                    M{"d MMM – d MMM y G"}\r
+                    d{"d – d MMM y G"}\r
+                    y{"d MMM y – d MMM y G"}\r
+                }\r
+                yMd{\r
+                    M{"dd-MM-y – dd-MM-y GGGGG"}\r
+                    d{"dd-MM-y – dd-MM-y GGGGG"}\r
+                    y{"dd-MM-y – dd-MM-y GGGGG"}\r
+                }\r
+            }\r
+        }\r
+        gregorian{\r
+            AmPmMarkers{\r
+                "AM",\r
+                "PM",\r
+            }\r
+            AmPmMarkersAbbr{\r
+                "AM",\r
+                "PM",\r
+            }\r
+            AmPmMarkersNarrow{\r
+                "AM",\r
+                "PM",\r
+            }\r
+            DateTimePatterns{\r
+                "HH:mm:ss zzzz",\r
+                "HH:mm:ss z",\r
+                "HH:mm:ss",\r
+                "HH:mm",\r
+                "EEEE 'le' d 'de' MMMM y",\r
+                "d 'de' MMMM y",\r
+                "d MMM y",\r
+                "dd-MM-y",\r
+                "{1} {0}",\r
+                "{1} 'a' {0}",\r
+                "{1} 'a' {0}",\r
+                "{1} {0}",\r
+                "{1} {0}",\r
+            }\r
+            appendItems{\r
+                Timezone{"{0} {1}"}\r
+            }\r
+            availableFormats{\r
+                Bh{"h B"}\r
+                Bhm{"h:mm B"}\r
+                Bhms{"h:mm:ss B"}\r
+                E{"ccc"}\r
+                EBhm{"E h:mm B"}\r
+                EBhms{"E h:mm:ss B"}\r
+                EHm{"E HH:mm"}\r
+                EHms{"E HH:mm:ss"}\r
+                Ed{"E d"}\r
+                Ehm{"E h:mm a"}\r
+                Ehms{"E h:mm:ss a"}\r
+                Gy{"y G"}\r
+                GyMMM{"MMM y G"}\r
+                GyMMMEd{"E d MMM y G"}\r
+                GyMMMd{"d MMM y G"}\r
+                H{"HH"}\r
+                Hm{"HH:mm"}\r
+                Hms{"HH:mm:ss"}\r
+                Hmsv{"HH:mm:ss v"}\r
+                Hmv{"HH:mm v"}\r
+                M{"L"}\r
+                MEd{"E dd-MM"}\r
+                MMM{"LLL"}\r
+                MMMEd{"E d MMM"}\r
+                MMMMd{"d 'de' MMMM"}\r
+                MMMd{"d MMM"}\r
+                Md{"dd-MM"}\r
+                d{"d"}\r
+                h{"h a"}\r
+                hm{"h:mm a"}\r
+                hms{"h:mm:ss a"}\r
+                hmsv{"h:mm:ss a v"}\r
+                hmv{"h:mm a v"}\r
+                ms{"mm:ss"}\r
+                y{"y"}\r
+                yM{"MM-y"}\r
+                yMEd{"E dd-MM-y"}\r
+                yMMM{"MMM y"}\r
+                yMMMEd{"E d MMM y"}\r
+                yMMMM{"MMMM y"}\r
+                yMMMd{"d MMM y"}\r
+                yMd{"dd-MM-y"}\r
+                yQQQ{"QQQ y"}\r
+                yQQQQ{"QQQQ 'de' y"}\r
+            }\r
+            dayNames{\r
+                format{\r
+                    abbreviated{\r
+                        "dom",\r
+                        "lun",\r
+                        "mar",\r
+                        "mer",\r
+                        "jov",\r
+                        "ven",\r
+                        "sab",\r
+                    }\r
+                    narrow{\r
+                        "d",\r
+                        "l",\r
+                        "m",\r
+                        "m",\r
+                        "j",\r
+                        "v",\r
+                        "s",\r
+                    }\r
+                    short{\r
+                        "do",\r
+                        "lu",\r
+                        "ma",\r
+                        "me",\r
+                        "jo",\r
+                        "ve",\r
+                        "sa",\r
+                    }\r
+                    wide{\r
+                        "dominica",\r
+                        "lunedi",\r
+                        "martedi",\r
+                        "mercuridi",\r
+                        "jovedi",\r
+                        "venerdi",\r
+                        "sabbato",\r
+                    }\r
+                }\r
+                stand-alone{\r
+                    abbreviated{\r
+                        "dom",\r
+                        "lun",\r
+                        "mar",\r
+                        "mer",\r
+                        "jov",\r
+                        "ven",\r
+                        "sab",\r
+                    }\r
+                    narrow{\r
+                        "d",\r
+                        "l",\r
+                        "m",\r
+                        "m",\r
+                        "j",\r
+                        "v",\r
+                        "s",\r
+                    }\r
+                    short{\r
+                        "do",\r
+                        "lu",\r
+                        "ma",\r
+                        "me",\r
+                        "jo",\r
+                        "ve",\r
+                        "sa",\r
+                    }\r
+                    wide{\r
+                        "dominica",\r
+                        "lunedi",\r
+                        "martedi",\r
+                        "mercuridi",\r
+                        "jovedi",\r
+                        "venerdi",\r
+                        "sabbato",\r
+                    }\r
+                }\r
+            }\r
+            dayPeriod{\r
+                stand-alone{\r
+                    abbreviated{\r
+                        am{"AM"}\r
+                        pm{"PM"}\r
+                    }\r
+                    narrow{\r
+                        am{"AM"}\r
+                        pm{"PM"}\r
+                    }\r
+                    wide{\r
+                        am{"AM"}\r
+                        pm{"PM"}\r
+                    }\r
+                }\r
+            }\r
+            eras{\r
+                abbreviated{\r
+                    "a.Chr.",\r
+                    "p.Chr.",\r
+                }\r
+                abbreviated%variant{\r
+                    "aEC",\r
+                    "EC",\r
+                }\r
+                wide{\r
+                    "ante Christo",\r
+                    "post Christo",\r
+                }\r
+                wide%variant{\r
+                    "ante era commun",\r
+                    "era commun",\r
+                }\r
+            }\r
+            intervalFormats{\r
+                H{\r
+                    H{"HH – HH"}\r
+                }\r
+                Hm{\r
+                    H{"HH:mm – HH:mm"}\r
+                    m{"HH:mm – HH:mm"}\r
+                }\r
+                Hmv{\r
+                    H{"HH:mm – HH:mm v"}\r
+                    m{"HH:mm – HH:mm v"}\r
+                }\r
+                Hv{\r
+                    H{"HH – HH v"}\r
+                }\r
+                M{\r
+                    M{"MM – MM"}\r
+                }\r
+                MEd{\r
+                    M{"E MM-dd – E MM-dd"}\r
+                    d{"E MM-dd – E MM-dd"}\r
+                }\r
+                MMM{\r
+                    M{"MMM – MMM"}\r
+                }\r
+                MMMEd{\r
+                    M{"E d MMM – E d MMM"}\r
+                    d{"E d MMM – E d MMM"}\r
+                }\r
+                MMMd{\r
+                    M{"d MMM – d MMM"}\r
+                    d{"d – d MMM"}\r
+                }\r
+                Md{\r
+                    M{"MM-dd – MM-dd"}\r
+                    d{"MM-dd – MM-dd"}\r
+                }\r
+                d{\r
+                    d{"d – d"}\r
+                }\r
+                fallback{"{0} – {1}"}\r
+                h{\r
+                    a{"h a – h a"}\r
+                    h{"h – h a"}\r
+                }\r
+                hm{\r
+                    a{"h:mm a – h:mm a"}\r
+                    h{"h:mm – h:mm a"}\r
+                    m{"h:mm – h:mm a"}\r
+                }\r
+                hmv{\r
+                    a{"h:mm a – h:mm a v"}\r
+                    h{"h:mm – h:mm a v"}\r
+                    m{"h:mm – h:mm a v"}\r
+                }\r
+                hv{\r
+                    a{"h a – h a v"}\r
+                    h{"h – h a v"}\r
+                }\r
+                y{\r
+                    y{"y – y"}\r
+                }\r
+                yM{\r
+                    M{"MM-y – MM-y"}\r
+                    y{"MM-y – MM-y"}\r
+                }\r
+                yMEd{\r
+                    M{"E dd-MM-y – E dd-MM-y"}\r
+                    d{"E dd-MM-y – E dd-MM-y"}\r
+                    y{"E dd-MM-y – E dd-MM-y"}\r
+                }\r
+                yMMM{\r
+                    M{"MMM – MMM y"}\r
+                    y{"MMM y – MMM y"}\r
+                }\r
+                yMMMEd{\r
+                    M{"E d MMM – E d MMM y"}\r
+                    d{"E d MMM – E d MMM y"}\r
+                    y{"E d MMM y – E d MMM y"}\r
+                }\r
+                yMMMM{\r
+                    M{"MMMM – MMMM y"}\r
+                    y{"MMMM y – MMMM y"}\r
+                }\r
+                yMMMd{\r
+                    M{"d MMM – d MMM y"}\r
+                    d{"d – d MMM y"}\r
+                    y{"d MMM y – d MMM y"}\r
+                }\r
+                yMd{\r
+                    M{"dd-MM-y – dd-MM-y"}\r
+                    d{"dd-MM-y – dd-MM-y"}\r
+                    y{"dd-MM-y – dd-MM-y"}\r
+                }\r
+            }\r
+            monthNames{\r
+                format{\r
+                    abbreviated{\r
+                        "jan",\r
+                        "feb",\r
+                        "mar",\r
+                        "apr",\r
+                        "mai",\r
+                        "jun",\r
+                        "jul",\r
+                        "aug",\r
+                        "sep",\r
+                        "oct",\r
+                        "nov",\r
+                        "dec",\r
+                    }\r
+                    narrow{\r
+                        "j",\r
+                        "f",\r
+                        "m",\r
+                        "a",\r
+                        "m",\r
+                        "j",\r
+                        "j",\r
+                        "a",\r
+                        "s",\r
+                        "o",\r
+                        "n",\r
+                        "d",\r
+                    }\r
+                    wide{\r
+                        "januario",\r
+                        "februario",\r
+                        "martio",\r
+                        "april",\r
+                        "maio",\r
+                        "junio",\r
+                        "julio",\r
+                        "augusto",\r
+                        "septembre",\r
+                        "octobre",\r
+                        "novembre",\r
+                        "decembre",\r
+                    }\r
+                }\r
+                stand-alone{\r
+                    abbreviated{\r
+                        "jan",\r
+                        "feb",\r
+                        "mar",\r
+                        "apr",\r
+                        "mai",\r
+                        "jun",\r
+                        "jul",\r
+                        "aug",\r
+                        "sep",\r
+                        "oct",\r
+                        "nov",\r
+                        "dec",\r
+                    }\r
+                    narrow{\r
+                        "1",\r
+                        "2",\r
+                        "3",\r
+                        "4",\r
+                        "5",\r
+                        "6",\r
+                        "7",\r
+                        "8",\r
+                        "9",\r
+                        "10",\r
+                        "11",\r
+                        "12",\r
+                    }\r
+                    wide{\r
+                        "januario",\r
+                        "februario",\r
+                        "martio",\r
+                        "april",\r
+                        "maio",\r
+                        "junio",\r
+                        "julio",\r
+                        "augusto",\r
+                        "septembre",\r
+                        "octobre",\r
+                        "novembre",\r
+                        "decembre",\r
+                    }\r
+                }\r
+            }\r
+            quarters{\r
+                format{\r
+                    abbreviated{\r
+                        "T1",\r
+                        "T2",\r
+                        "T3",\r
+                        "T4",\r
+                    }\r
+                    narrow{\r
+                        "1",\r
+                        "2",\r
+                        "3",\r
+                        "4",\r
+                    }\r
+                    wide{\r
+                        "1me trimestre",\r
+                        "2nde trimestre",\r
+                        "3tie trimestre",\r
+                        "4te trimestre",\r
+                    }\r
+                }\r
+                stand-alone{\r
+                    abbreviated{\r
+                        "T1",\r
+                        "T2",\r
+                        "T3",\r
+                        "T4",\r
+                    }\r
+                    narrow{\r
+                        "1",\r
+                        "2",\r
+                        "3",\r
+                        "4",\r
+                    }\r
+                    wide{\r
+                        "1me trimestre",\r
+                        "2nde trimestre",\r
+                        "3tie trimestre",\r
+                        "4te trimestre",\r
+                    }\r
+                }\r
+            }\r
+        }\r
+    }\r
+    characterLabel{\r
+        activities{"activitate"}\r
+        african_scripts{"scriptura african"}\r
+        american_scripts{"scriptura american"}\r
+        animal{"animal"}\r
+        animals_nature{"animal o natura"}\r
+        arrows{"sagitta"}\r
+        body{"corpore"}\r
+        box_drawing{"composition de quadros"}\r
+        braille{"braille"}\r
+        building{"edificio"}\r
+        bullets_stars{"puncto o stella"}\r
+        consonantal_jamo{"jamo consonantic"}\r
+        currency_symbols{"symbolo monetari"}\r
+        dash_connector{"lineetta o connector"}\r
+        digits{"cifra"}\r
+        dingbats{"ornamento"}\r
+        divination_symbols{"symbolo de divination"}\r
+        downwards_arrows{"sagitta a basso"}\r
+        downwards_upwards_arrows{"sagitta a basso e in alto"}\r
+        east_asian_scripts{"scriptura del est de Asia"}\r
+        emoji{"emoji"}\r
+        european_scripts{"scriptura europee"}\r
+        female{"feminin"}\r
+        flag{"bandiera"}\r
+        flags{"bandieras"}\r
+        food_drink{"alimento e bibita"}\r
+        format{"formato"}\r
+        format_whitespace{"formato e spatio in blanco"}\r
+        full_width_form_variant{"variante a latitude complete"}\r
+        geometric_shapes{"forma geometric"}\r
+        half_width_form_variant{"variante a latitude medie"}\r
+        han_characters{"character Han"}\r
+        han_radicals{"radical Han"}\r
+        hanja{"hanja"}\r
+        hanzi_simplified{"Hanzi (simplificate)"}\r
+        hanzi_traditional{"Hanzi (traditional)"}\r
+        heart{"corde"}\r
+        historic_scripts{"scriptura historic"}\r
+        ideographic_desc_characters{"character de desc. ideographic"}\r
+        japanese_kana{"kana japonese"}\r
+        kanbun{"kanbun"}\r
+        kanji{"kanji"}\r
+        keycap{"clave"}\r
+        leftwards_arrows{"sagitta a sinistra"}\r
+        leftwards_rightwards_arrows{"sagitta a sinistra e a dextra"}\r
+        letterlike_symbols{"symbolo con littera"}\r
+        limited_use{"uso limitate"}\r
+        male{"masculin"}\r
+        math_symbols{"symbolo mathematic"}\r
+        middle_eastern_scripts{"scriptura medio-oriental"}\r
+        miscellaneous{"miscellanee"}\r
+        modern_scripts{"scriptura moderne"}\r
+        modifier{"modificator"}\r
+        musical_symbols{"symbolo musical"}\r
+        nature{"natura"}\r
+        nonspacing{"sin spatiatura"}\r
+        numbers{"numeros"}\r
+        objects{"objecto"}\r
+        other{"altere"}\r
+        paired{"par"}\r
+        person{"persona"}\r
+        phonetic_alphabet{"alphabeto phonetic"}\r
+        pictographs{"pictogramma"}\r
+        place{"loco"}\r
+        plant{"planta"}\r
+        punctuation{"punctuation"}\r
+        rightwards_arrows{"sagitta a dextra"}\r
+        sign_standard_symbols{"signo o symbolo"}\r
+        small_form_variant{"variantes micre"}\r
+        smiley{"emoticone"}\r
+        smileys_people{"emoticone o persona"}\r
+        south_asian_scripts{"scriptura del sud de Asia"}\r
+        southeast_asian_scripts{"scriptura del sud-est de Asia"}\r
+        spacing{"spatiatura"}\r
+        sport{"sport"}\r
+        symbols{"symbolo"}\r
+        technical_symbols{"symbolo technic"}\r
+        tone_marks{"marca tonal"}\r
+        travel{"viage"}\r
+        travel_places{"viage o destination"}\r
+        upwards_arrows{"sagitta in alto"}\r
+        variant_forms{"variante"}\r
+        vocalic_jamo{"jamo vocalic"}\r
+        weather{"meteo"}\r
+        western_asian_scripts{"scriptura del west de Asia"}\r
+        whitespace{"spatio in blanco"}\r
+    }\r
+    delimiters{\r
+        alternateQuotationEnd{"”"}\r
+        alternateQuotationStart{"“"}\r
+        quotationEnd{"’"}\r
+        quotationStart{"‘"}\r
+    }\r
+    fields{\r
+        day{\r
+            dn{"die"}\r
+            relative{\r
+                "-1"{"heri"}\r
+                "0"{"hodie"}\r
+                "1"{"deman"}\r
+            }\r
+        }\r
+        day-narrow{\r
+            dn{"d."}\r
+        }\r
+        day-short{\r
+            dn{"die"}\r
+        }\r
+        dayOfYear{\r
+            dn{"die del anno"}\r
+        }\r
+        dayOfYear-narrow{\r
+            dn{"d.d.a."}\r
+        }\r
+        dayOfYear-short{\r
+            dn{"die del an."}\r
+        }\r
+        dayperiod{\r
+            dn{"AM/PM"}\r
+        }\r
+        dayperiod-narrow{\r
+            dn{"AM/PM"}\r
+        }\r
+        dayperiod-short{\r
+            dn{"AM/PM"}\r
+        }\r
+        era{\r
+            dn{"era"}\r
+        }\r
+        era-narrow{\r
+            dn{"e."}\r
+        }\r
+        era-short{\r
+            dn{"era"}\r
+        }\r
+        fri{\r
+            relative{\r
+                "-1"{"venerdi passate"}\r
+                "0"{"iste venerdi"}\r
+                "1"{"venerdi proxime"}\r
+            }\r
+        }\r
+        fri-narrow{\r
+            relative{\r
+                "-1"{"ven. passate"}\r
+                "0"{"iste ven."}\r
+                "1"{"ven. proxime"}\r
+            }\r
+        }\r
+        fri-short{\r
+            relative{\r
+                "-1"{"ven. passate"}\r
+                "0"{"iste ven."}\r
+                "1"{"ven. proxime"}\r
+            }\r
+        }\r
+        hour{\r
+            dn{"hora"}\r
+            relative{\r
+                "0"{"iste hora"}\r
+            }\r
+        }\r
+        hour-narrow{\r
+            dn{"h."}\r
+        }\r
+        hour-short{\r
+            dn{"hr."}\r
+        }\r
+        minute{\r
+            dn{"minuta"}\r
+            relative{\r
+                "0"{"iste minuta"}\r
+            }\r
+        }\r
+        minute-narrow{\r
+            dn{"m."}\r
+        }\r
+        minute-short{\r
+            dn{"min."}\r
+        }\r
+        mon{\r
+            relative{\r
+                "-1"{"lunedi passate"}\r
+                "0"{"iste lunedi"}\r
+                "1"{"lunedi proxime"}\r
+            }\r
+        }\r
+        mon-narrow{\r
+            relative{\r
+                "-1"{"lun. passate"}\r
+                "0"{"iste lun."}\r
+                "1"{"lun. proxime"}\r
+            }\r
+        }\r
+        mon-short{\r
+            relative{\r
+                "-1"{"lun. passate"}\r
+                "0"{"iste lun."}\r
+                "1"{"lun. proxime"}\r
+            }\r
+        }\r
+        month{\r
+            dn{"mense"}\r
+            relative{\r
+                "-1"{"le mense passate"}\r
+                "0"{"iste mense"}\r
+                "1"{"le mense proxime"}\r
+            }\r
+        }\r
+        month-narrow{\r
+            dn{"m."}\r
+        }\r
+        month-short{\r
+            dn{"mns."}\r
+        }\r
+        quarter{\r
+            dn{"trimestre"}\r
+            relative{\r
+                "-1"{"le trimestre passate"}\r
+                "0"{"iste trimestre"}\r
+                "1"{"le trimestre proxime"}\r
+            }\r
+        }\r
+        quarter-narrow{\r
+            dn{"t."}\r
+        }\r
+        quarter-short{\r
+            dn{"trim."}\r
+        }\r
+        sat{\r
+            relative{\r
+                "-1"{"sabbato passate"}\r
+                "0"{"iste sabbato"}\r
+                "1"{"sabbato proxime"}\r
+            }\r
+        }\r
+        sat-narrow{\r
+            relative{\r
+                "-1"{"sab. passate"}\r
+                "0"{"iste sab."}\r
+                "1"{"sab. proxime"}\r
+            }\r
+        }\r
+        sat-short{\r
+            relative{\r
+                "-1"{"sab. passate"}\r
+                "0"{"iste sab."}\r
+                "1"{"sab. proxime"}\r
+            }\r
+        }\r
+        second{\r
+            dn{"secunda"}\r
+            relative{\r
+                "0"{"ora"}\r
+            }\r
+        }\r
+        second-narrow{\r
+            dn{"s."}\r
+        }\r
+        second-short{\r
+            dn{"sec."}\r
+        }\r
+        sun{\r
+            relative{\r
+                "-1"{"dominica passate"}\r
+                "0"{"iste dominica"}\r
+                "1"{"dominica proxime"}\r
+            }\r
+        }\r
+        sun-narrow{\r
+            relative{\r
+                "-1"{"dom. passate"}\r
+                "0"{"iste dom."}\r
+                "1"{"dom. proxime"}\r
+            }\r
+        }\r
+        sun-short{\r
+            relative{\r
+                "-1"{"dom. passate"}\r
+                "0"{"iste dom."}\r
+                "1"{"dom. proxime"}\r
+            }\r
+        }\r
+        thu{\r
+            relative{\r
+                "-1"{"jovedi passate"}\r
+                "0"{"iste jovedi"}\r
+                "1"{"jovedi proxime"}\r
+            }\r
+        }\r
+        thu-narrow{\r
+            relative{\r
+                "-1"{"jov. passate"}\r
+                "0"{"iste jov."}\r
+                "1"{"jov. proxime"}\r
+            }\r
+        }\r
+        thu-short{\r
+            relative{\r
+                "-1"{"jov. passate"}\r
+                "0"{"iste jov."}\r
+                "1"{"jov. proxime"}\r
+            }\r
+        }\r
+        tue{\r
+            relative{\r
+                "-1"{"martedi passate"}\r
+                "0"{"iste martedi"}\r
+                "1"{"martedi proxime"}\r
+            }\r
+        }\r
+        tue-narrow{\r
+            relative{\r
+                "-1"{"mar. passate"}\r
+                "0"{"iste mar."}\r
+                "1"{"mar. proxime"}\r
+            }\r
+        }\r
+        tue-short{\r
+            relative{\r
+                "-1"{"mar. passate"}\r
+                "0"{"iste mar."}\r
+                "1"{"mar. proxime"}\r
+            }\r
+        }\r
+        wed{\r
+            relative{\r
+                "-1"{"mercuridi passate"}\r
+                "0"{"iste mercuridi"}\r
+                "1"{"mercuridi proxime"}\r
+            }\r
+        }\r
+        wed-narrow{\r
+            relative{\r
+                "-1"{"mer. passate"}\r
+                "0"{"iste mer."}\r
+                "1"{"mer. proxime"}\r
+            }\r
+        }\r
+        wed-short{\r
+            relative{\r
+                "-1"{"mer. passate"}\r
+                "0"{"iste mer."}\r
+                "1"{"mer. proxime"}\r
+            }\r
+        }\r
+        week{\r
+            dn{"septimana"}\r
+            relative{\r
+                "-1"{"le septimana passate"}\r
+                "0"{"iste septimana"}\r
+                "1"{"le septimana proxime"}\r
+            }\r
+            relativePeriod{"le septimana de {0}"}\r
+        }\r
+        week-narrow{\r
+            dn{"s."}\r
+            relativePeriod{"le sept. de {0}"}\r
+        }\r
+        week-short{\r
+            dn{"sept."}\r
+            relativePeriod{"le sept. de {0}"}\r
+        }\r
+        weekOfMonth{\r
+            dn{"septimana del mense"}\r
+        }\r
+        weekOfMonth-narrow{\r
+            dn{"s.d.m."}\r
+        }\r
+        weekOfMonth-short{\r
+            dn{"sept. del mns."}\r
+        }\r
+        weekday{\r
+            dn{"die del septimana"}\r
+        }\r
+        weekday-narrow{\r
+            dn{"d.d.s."}\r
+        }\r
+        weekday-short{\r
+            dn{"die del sept."}\r
+        }\r
+        weekdayOfMonth{\r
+            dn{"die de septimana del mense"}\r
+        }\r
+        weekdayOfMonth-narrow{\r
+            dn{"d.d.s.d.m."}\r
+        }\r
+        weekdayOfMonth-short{\r
+            dn{"die de sept. del mns."}\r
+        }\r
+        year{\r
+            dn{"anno"}\r
+            relative{\r
+                "-1"{"le anno passate"}\r
+                "0"{"iste anno"}\r
+                "1"{"le anno proxime"}\r
+            }\r
+        }\r
+        year-narrow{\r
+            dn{"a."}\r
+        }\r
+        year-short{\r
+            dn{"an."}\r
+        }\r
+        zone{\r
+            dn{"fuso horari"}\r
+        }\r
+        zone-narrow{\r
+            dn{"fuso"}\r
+        }\r
+        zone-short{\r
+            dn{"fuso"}\r
+        }\r
+    }\r
+    listPattern{\r
+        or{\r
+            2{"{0} o {1}"}\r
+            end{"{0} o {1}"}\r
+            middle{"{0}, {1}"}\r
+            start{"{0}, {1}"}\r
+        }\r
+        standard{\r
+            2{"{0} e {1}"}\r
+            end{"{0} e {1}"}\r
+            middle{"{0}, {1}"}\r
+            start{"{0}, {1}"}\r
+        }\r
+        standard-short{\r
+            2{"{0} e {1}"}\r
+            end{"{0} e {1}"}\r
+            middle{"{0}, {1}"}\r
+            start{"{0}, {1}"}\r
+        }\r
+        unit{\r
+            2{"{0}, {1}"}\r
+            end{"{0}, {1}"}\r
+            middle{"{0}, {1}"}\r
+            start{"{0}, {1}"}\r
+        }\r
+        unit-narrow{\r
+            2{"{0} {1}"}\r
+            end{"{0} {1}"}\r
+            middle{"{0} {1}"}\r
+            start{"{0} {1}"}\r
+        }\r
+        unit-short{\r
+            2{"{0}, {1}"}\r
+            end{"{0}, {1}"}\r
+            middle{"{0}, {1}"}\r
+            start{"{0}, {1}"}\r
+        }\r
+    }\r
+    measurementSystemNames{\r
+        UK{"britannic"}\r
+        US{"statounitese"}\r
+        metric{"metric"}\r
+    }\r
+}\r
diff --git a/source/data/locales/ia_001.txt b/source/data/locales/ia_001.txt
new file mode 100644 (file)
index 0000000..12f290e
--- /dev/null
@@ -0,0 +1,5 @@
+// © 2016 and later: Unicode, Inc. and others.\r
+// License & terms of use: http://www.unicode.org/copyright.html#License\r
+ia_001{\r
+    Version{"2.1.44.15"}\r
+}\r
index b37318b644422f6c84973f5e6b7c09efb9fabf0d..c7fd749ee99181a47aafb382c9c26642a39fbf32 100644 (file)
@@ -19,7 +19,9 @@ id{
         default{"latn"}\r
         latn{\r
             miscPatterns{\r
-                atLeast{"⩾{0}"}\r
+                approximately{"~{0}"}\r
+                atLeast{"≥{0}"}\r
+                atMost{"≤{0}"}\r
                 range{"{0}–{1}"}\r
             }\r
             patterns{\r
@@ -173,7 +175,7 @@ id{
         minimumGroupingDigits{"1"}\r
         native{"latn"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.20"}\r
     calendar{\r
         buddhist{\r
             DateTimePatterns{\r
@@ -1369,7 +1371,7 @@ id{
                         "Mei",\r
                         "Jun",\r
                         "Jul",\r
-                        "Agt",\r
+                        "Agu",\r
                         "Sep",\r
                         "Okt",\r
                         "Nov",\r
@@ -1413,7 +1415,7 @@ id{
                         "Mei",\r
                         "Jun",\r
                         "Jul",\r
-                        "Agt",\r
+                        "Agu",\r
                         "Sep",\r
                         "Okt",\r
                         "Nov",\r
@@ -2217,6 +2219,7 @@ id{
                     "Taishō",\r
                     "Shōwa",\r
                     "Heisei",\r
+                    "Qqqq",\r
                 }\r
             }\r
         }\r
@@ -2392,7 +2395,7 @@ id{
         european_scripts{"Skrip Eropa"}\r
         female{"perempuan"}\r
         flag{"bendera"}\r
-        flags{"Bendera"}\r
+        flags{"bendera"}\r
         food_drink{"makanan & minuman"}\r
         format{"format"}\r
         format_whitespace{"format & spasi kosong"}\r
@@ -2492,6 +2495,9 @@ id{
         }\r
         day-narrow{\r
             dn{"h"}\r
+            relative{\r
+                "2"{"lusa"}\r
+            }\r
             relativeTime{\r
                 future{\r
                     other{"dalam {0} h"}\r
@@ -2503,6 +2509,9 @@ id{
         }\r
         day-short{\r
             dn{"h"}\r
+            relative{\r
+                "2"{"lusa"}\r
+            }\r
             relativeTime{\r
                 future{\r
                     other{"dalam {0} h"}\r
@@ -3197,4 +3206,36 @@ id{
         US{"AS"}\r
         metric{"Metrik"}\r
     }\r
+    parse{\r
+        date{\r
+            lenient{\r
+                "[\\--/]",\r
+                "[\\:∶]",\r
+            }\r
+        }\r
+        general{\r
+            lenient{\r
+                "[.․。︒﹒.。]",\r
+                "['ʼ՚᾽᾿’']",\r
+                "[%٪﹪%]",\r
+                "[؉‰]",\r
+                "[\$﹩$$]",\r
+                "[£₤]",\r
+                "[¥¥]",\r
+                "[₩₩]",\r
+                "[₨₹{Rp}{Rs}]",\r
+            }\r
+        }\r
+        number{\r
+            lenient{\r
+                "[\\-‒⁻₋−➖﹣-]",\r
+                "[,،٫、︐︑﹐﹑,、]",\r
+                "[+⁺₊➕﬩﹢+]",\r
+            }\r
+            stricter{\r
+                "[,٫︐﹐,]",\r
+                "[.․﹒.。]",\r
+            }\r
+        }\r
+    }\r
 }\r
index 99e9a07cffe340f172d902f2b2d5a7bdb06ae59c..655753c908a49c9b1b937d53d5efaa4ef533cda9 100644 (file)
@@ -90,7 +90,7 @@ ig{
         }\r
         minimumGroupingDigits{"1"}\r
     }\r
-    Version{"2.1.38.69"}\r
+    Version{"2.1.44.88"}\r
     calendar{\r
         generic{\r
             DateTimePatterns{\r
@@ -208,7 +208,7 @@ ig{
                 yQQQ{"QQQ y"}\r
                 yQQQQ{"QQQQ y"}\r
                 yw{\r
-                    other{"'week' w 'of' y"}\r
+                    other{"'week' w 'of' Y"}\r
                 }\r
             }\r
             dayNames{\r
index 90d7ac1550d5fd4218ca2aa0fdf12d6a6ffcb18f..d305351c686d01d900d4223edba80a078472bd54 100644 (file)
@@ -28,7 +28,9 @@ is{
         default{"latn"}\r
         latn{\r
             miscPatterns{\r
+                approximately{"~{0}"}\r
                 atLeast{"{0}+"}\r
+                atMost{"≤{0}"}\r
                 range{"{0}–{1}"}\r
             }\r
             patterns{\r
@@ -219,7 +221,7 @@ is{
         minimumGroupingDigits{"1"}\r
         native{"latn"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.91"}\r
     calendar{\r
         buddhist{\r
             DateTimePatterns{\r
@@ -881,6 +883,19 @@ is{
                 }\r
             }\r
         }\r
+        ethiopic-amete-alem{\r
+            eras{\r
+                abbreviated{\r
+                    "ERA0",\r
+                }\r
+                narrow{\r
+                    "ERA0",\r
+                }\r
+                wide{\r
+                    "ERA0",\r
+                }\r
+            }\r
+        }\r
         generic{\r
             DateTimePatterns{\r
                 "HH:mm:ss zzzz",\r
@@ -1277,6 +1292,10 @@ is{
                     "f.k.",\r
                     "e.k.",\r
                 }\r
+                narrow%variant{\r
+                    "f.v.t.",\r
+                    "v.t.",\r
+                }\r
                 wide{\r
                     "fyrir Krist",\r
                     "eftir Krist",\r
@@ -2261,6 +2280,149 @@ is{
                 }\r
             }\r
         }\r
+        japanese{\r
+            DateTimePatterns{\r
+                "HH:mm:ss zzzz",\r
+                "HH:mm:ss z",\r
+                "HH:mm:ss",\r
+                "HH:mm",\r
+                "EEEE, d. MMMM y G",\r
+                "d. MMMM y G",\r
+                "d.M.y G",\r
+                "d.M.y GGGGG",\r
+                "{1}, {0}",\r
+                "{1} 'kl'. {0}",\r
+                "{1} 'kl'. {0}",\r
+                "{1}, {0}",\r
+                "{1}, {0}",\r
+            }\r
+            availableFormats{\r
+                E{"ccc"}\r
+                Ed{"E d."}\r
+                Gy{"y G"}\r
+                GyMMM{"MMM y G"}\r
+                GyMMMEd{"E, d. MMM y G"}\r
+                GyMMMd{"d. MMM y G"}\r
+                M{"L"}\r
+                MEd{"E, d.M."}\r
+                MMM{"LLL"}\r
+                MMMEd{"E, d. MMM"}\r
+                MMMMEd{"E, d. MMMM"}\r
+                MMMMd{"d. MMMM"}\r
+                MMMd{"d. MMM"}\r
+                Md{"d.M."}\r
+                d{"d"}\r
+                y{"y G"}\r
+                yyyy{"y G"}\r
+                yyyyM{"M.y G"}\r
+                yyyyMEd{"E, d.M.y G"}\r
+                yyyyMMM{"MMM y G"}\r
+                yyyyMMMEd{"E, d. MMM y G"}\r
+                yyyyMMMM{"MMMM y G"}\r
+                yyyyMMMd{"d. MMM y G"}\r
+                yyyyMd{"d.M.y G"}\r
+                yyyyQQQ{"QQQ y G"}\r
+                yyyyQQQQ{"QQQQ y G"}\r
+            }\r
+            intervalFormats{\r
+                H{\r
+                    H{"HH–HH"}\r
+                }\r
+                Hm{\r
+                    H{"HH:mm–HH:mm"}\r
+                    m{"HH:mm–HH:mm"}\r
+                }\r
+                Hmv{\r
+                    H{"HH:mm–HH:mm v"}\r
+                    m{"HH:mm–HH:mm v"}\r
+                }\r
+                Hv{\r
+                    H{"HH–HH v"}\r
+                }\r
+                M{\r
+                    M{"M.–M."}\r
+                }\r
+                MEd{\r
+                    M{"E, d.M. – E, d.M."}\r
+                    d{"E, d. – E, d.M."}\r
+                }\r
+                MMM{\r
+                    M{"MMM–MMM"}\r
+                }\r
+                MMMEd{\r
+                    M{"E, d. MMM – E, d. MMM"}\r
+                    d{"E, d. – E, d. MMM"}\r
+                }\r
+                MMMM{\r
+                    M{"MMMM–MMMM"}\r
+                }\r
+                MMMd{\r
+                    M{"d. MMM – d. MMM"}\r
+                    d{"d.–d. MMM"}\r
+                }\r
+                Md{\r
+                    M{"d.M.–d.M."}\r
+                    d{"d.–d.M."}\r
+                }\r
+                d{\r
+                    d{"d.–d."}\r
+                }\r
+                fallback{"{0} – {1}"}\r
+                h{\r
+                    a{"h a – h a"}\r
+                    h{"h–h a"}\r
+                }\r
+                hm{\r
+                    a{"h:mm a – h:mm a"}\r
+                    h{"h:mm–h:mm a"}\r
+                    m{"h:mm–h:mm a"}\r
+                }\r
+                hmv{\r
+                    a{"h:mm a – h:mm a v"}\r
+                    h{"h:mm–h:mm a v"}\r
+                    m{"h:mm–h:mm a v"}\r
+                }\r
+                hv{\r
+                    a{"h a – h a v"}\r
+                    h{"h–h a v"}\r
+                }\r
+                y{\r
+                    y{"y–y G"}\r
+                }\r
+                yM{\r
+                    M{"M.–M.y G"}\r
+                    y{"M.y–M.y G"}\r
+                }\r
+                yMEd{\r
+                    M{"E, d.M. – E, d.M.y G"}\r
+                    d{"E, d. – E, d.M.y G"}\r
+                    y{"E, d.M.y – E, d.M.y G"}\r
+                }\r
+                yMMM{\r
+                    M{"MMM–MMM y G"}\r
+                    y{"MMM y – MMM y G"}\r
+                }\r
+                yMMMEd{\r
+                    M{"E, d. MMM – E, d. MMM y G"}\r
+                    d{"E, d. – E, d. MMM y G"}\r
+                    y{"E, d. MMM y – E, d. MMM y G"}\r
+                }\r
+                yMMMM{\r
+                    M{"MMMM–MMMM y G"}\r
+                    y{"MMMM y – MMMM y G"}\r
+                }\r
+                yMMMd{\r
+                    M{"d. MMM – d. MMM y G"}\r
+                    d{"d.–d. MMM y G"}\r
+                    y{"d. MMM y – d. MMM y G"}\r
+                }\r
+                yMd{\r
+                    M{"d.M.–d.M.y G"}\r
+                    d{"d.–d.M.y G"}\r
+                    y{"d.M.y–d.M.y G"}\r
+                }\r
+            }\r
+        }\r
         persian{\r
             DateTimePatterns{\r
                 "HH:mm:ss zzzz",\r
@@ -2914,6 +3076,9 @@ is{
         }\r
         hour-narrow{\r
             dn{"klst."}\r
+            relative{\r
+                "0"{"þessa stundina"}\r
+            }\r
             relativeTime{\r
                 future{\r
                     one{"+{0} klst."}\r
@@ -2927,6 +3092,9 @@ is{
         }\r
         hour-short{\r
             dn{"klst."}\r
+            relative{\r
+                "0"{"þessa stundina"}\r
+            }\r
             relativeTime{\r
                 future{\r
                     one{"eftir {0} klst."}\r
@@ -2956,6 +3124,9 @@ is{
         }\r
         minute-narrow{\r
             dn{"mín."}\r
+            relative{\r
+                "0"{"á þessari mínútu"}\r
+            }\r
             relativeTime{\r
                 future{\r
                     one{"+{0} mín."}\r
@@ -2969,6 +3140,9 @@ is{
         }\r
         minute-short{\r
             dn{"mín."}\r
+            relative{\r
+                "0"{"á þessari mínútu"}\r
+            }\r
             relativeTime{\r
                 future{\r
                     one{"eftir {0} mín."}\r
@@ -3208,6 +3382,9 @@ is{
         }\r
         second-narrow{\r
             dn{"sek."}\r
+            relative{\r
+                "0"{"núna"}\r
+            }\r
             relativeTime{\r
                 future{\r
                     one{"+{0} sek."}\r
@@ -3221,6 +3398,9 @@ is{
         }\r
         second-short{\r
             dn{"sek."}\r
+            relative{\r
+                "0"{"núna"}\r
+            }\r
             relativeTime{\r
                 future{\r
                     one{"eftir {0} sek."}\r
@@ -3484,7 +3664,7 @@ is{
             relativePeriod{"vika {0}"}\r
             relativeTime{\r
                 future{\r
-                    one{"eftir {0} vikur"}\r
+                    one{"eftir {0} viku"}\r
                     other{"eftir {0} vikur"}\r
                 }\r
                 past{\r
@@ -3637,8 +3817,13 @@ is{
         general{\r
             lenient{\r
                 "[.․。︒﹒.。]",\r
+                "['ʼ՚᾽᾿’']",\r
+                "[%٪﹪%]",\r
+                "[؉‰]",\r
                 "[\$﹩$$]",\r
                 "[£₤]",\r
+                "[¥¥]",\r
+                "[₩₩]",\r
                 "[₨₹{Rp}{Rs}]",\r
             }\r
         }\r
index a11dfbef9606c9c45870758488bee133c7ba79e2..5d02b8aa33837e9b407079ec77b6ee728ab4346d 100644 (file)
@@ -19,7 +19,9 @@ it{
         default{"latn"}\r
         latn{\r
             miscPatterns{\r
-                atLeast{"⩾{0}"}\r
+                approximately{"~{0}"}\r
+                atLeast{"≥{0}"}\r
+                atMost{"≤{0}"}\r
                 range{"{0}-{1}"}\r
             }\r
             patterns{\r
@@ -158,16 +160,16 @@ it{
                         other{"000 Mln"}\r
                     }\r
                     1000000000{\r
-                        one{"0 Mld"}\r
-                        other{"0 Mld"}\r
+                        one{"0 Mrd"}\r
+                        other{"0 Mrd"}\r
                     }\r
                     10000000000{\r
-                        one{"00 Mld"}\r
-                        other{"00 Mld"}\r
+                        one{"00 Mrd"}\r
+                        other{"00 Mrd"}\r
                     }\r
                     100000000000{\r
-                        one{"000 Mld"}\r
-                        other{"000 Mld"}\r
+                        one{"000 Mrd"}\r
+                        other{"000 Mrd"}\r
                     }\r
                     1000000000000{\r
                         one{"0 Bln"}\r
@@ -211,7 +213,7 @@ it{
         minimumGroupingDigits{"1"}\r
         native{"latn"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.86"}\r
     calendar{\r
         buddhist{\r
             eras{\r
@@ -1049,6 +1051,10 @@ it{
         day-narrow{\r
             dn{"g"}\r
             relative{\r
+                "-1"{"ieri"}\r
+                "-2"{"l’altro ieri"}\r
+                "0"{"oggi"}\r
+                "1"{"domani"}\r
                 "2"{"dopodomani"}\r
             }\r
             relativeTime{\r
@@ -1065,6 +1071,10 @@ it{
         day-short{\r
             dn{"g"}\r
             relative{\r
+                "-1"{"ieri"}\r
+                "-2"{"l’altro ieri"}\r
+                "0"{"oggi"}\r
+                "1"{"domani"}\r
                 "2"{"dopodomani"}\r
             }\r
             relativeTime{\r
@@ -1365,6 +1375,11 @@ it{
         }\r
         quarter-narrow{\r
             dn{"trim."}\r
+            relative{\r
+                "-1"{"trim. scorso"}\r
+                "0"{"questo trim."}\r
+                "1"{"trim. prossimo"}\r
+            }\r
             relativeTime{\r
                 future{\r
                     one{"tra {0} trim."}\r
@@ -1378,6 +1393,11 @@ it{
         }\r
         quarter-short{\r
             dn{"trim."}\r
+            relative{\r
+                "-1"{"trim. scorso"}\r
+                "0"{"questo trim."}\r
+                "1"{"trim. prossimo"}\r
+            }\r
             relativeTime{\r
                 future{\r
                     one{"tra {0} trim."}\r
@@ -1887,8 +1907,13 @@ it{
         general{\r
             lenient{\r
                 "[.․。︒﹒.。]",\r
+                "['ʼ՚᾽᾿’']",\r
+                "[%٪﹪%]",\r
+                "[؉‰]",\r
                 "[\$﹩$$]",\r
                 "[£₤]",\r
+                "[¥¥]",\r
+                "[₩₩]",\r
                 "[₨₹{Rp}{Rs}]",\r
             }\r
         }\r
index 36a0655c234cc6c1da83867f4768f0fa816ada58..e5fff0108354cee8bd566c6af0a09ca00902a868 100644 (file)
@@ -78,7 +78,9 @@ ja{
         finance{"jpanfin"}\r
         latn{\r
             miscPatterns{\r
+                approximately{"約 {0}"}\r
                 atLeast{"{0} 以上"}\r
+                atMost{"{0} 以下"}\r
                 range{"{0}~{1}"}\r
             }\r
             patterns{\r
@@ -233,7 +235,7 @@ ja{
         native{"latn"}\r
         traditional{"jpan"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.91"}\r
     calendar{\r
         buddhist{\r
             DateTimePatterns{\r
@@ -1218,6 +1220,44 @@ ja{
                 yyyyQQQQ{"Gy年QQQQ"}\r
             }\r
             intervalFormats{\r
+                Gy{\r
+                    G{"Gy年~Gy年"}\r
+                    y{"Gy年~y年"}\r
+                }\r
+                GyM{\r
+                    G{"Gy/MM~Gy/MM"}\r
+                    M{"Gy/MM~y/MM"}\r
+                    y{"Gy/MM~y/MM"}\r
+                }\r
+                GyMEd{\r
+                    G{"Gy/MM/dd(E)~Gy/MM/dd(E)"}\r
+                    M{"Gy/MM/dd(E)~y/MM/dd(E)"}\r
+                    d{"Gy/MM/dd(E)~y/MM/dd(E)"}\r
+                    y{"Gy/MM/dd(E)~y/MM/dd(E)"}\r
+                }\r
+                GyMMM{\r
+                    G{"Gy年M月~Gy年M月"}\r
+                    M{"Gy年M月~M月"}\r
+                    y{"Gy年M月~y年M月"}\r
+                }\r
+                GyMMMEd{\r
+                    G{"Gy年M月d日(E)~Gy年M月d日(E)"}\r
+                    M{"Gy年M月d日(E)~M月d日(E)"}\r
+                    d{"Gy年M月d日(E)~d日(E)"}\r
+                    y{"Gy年M月d日(E)~y年M月d日(E)"}\r
+                }\r
+                GyMMMd{\r
+                    G{"Gy年M月d日~Gy年M月d日"}\r
+                    M{"Gy年M月d日~M月d日"}\r
+                    d{"Gy年M月d日~d日"}\r
+                    y{"Gy年M月d日~y年M月d日"}\r
+                }\r
+                GyMd{\r
+                    G{"Gy/MM/dd~Gy/MM/dd"}\r
+                    M{"Gy/MM/dd~y/MM/dd"}\r
+                    d{"Gy/MM/dd~y/MM/dd"}\r
+                    y{"Gy/MM/dd~y/MM/dd"}\r
+                }\r
                 H{\r
                     H{"H時~H時"}\r
                 }\r
@@ -1577,6 +1617,44 @@ ja{
                 }\r
             }\r
             intervalFormats{\r
+                Gy{\r
+                    G{"Gy年~Gy年"}\r
+                    y{"Gy年~y年"}\r
+                }\r
+                GyM{\r
+                    G{"Gy/MM~Gy/MM"}\r
+                    M{"Gy/MM~y/MM"}\r
+                    y{"Gy/MM~y/MM"}\r
+                }\r
+                GyMEd{\r
+                    G{"Gy/MM/dd(E)~Gy/MM/dd(E)"}\r
+                    M{"Gy/MM/dd(E)~y/MM/dd(E)"}\r
+                    d{"Gy/MM/dd(E)~y/MM/dd(E)"}\r
+                    y{"Gy/MM/dd(E)~y/MM/dd(E)"}\r
+                }\r
+                GyMMM{\r
+                    G{"Gy年M月~Gy年M月"}\r
+                    M{"Gy年M月~M月"}\r
+                    y{"Gy年M月~y年M月"}\r
+                }\r
+                GyMMMEd{\r
+                    G{"Gy年M月d日(E)~Gy年M月d日(E)"}\r
+                    M{"Gy年M月d日(E)~M月d日(E)"}\r
+                    d{"Gy年M月d日(E)~d日(E)"}\r
+                    y{"Gy年M月d日(E)~y年M月d日(E)"}\r
+                }\r
+                GyMMMd{\r
+                    G{"Gy年M月d日~Gy年M月d日"}\r
+                    M{"Gy年M月d日~M月d日"}\r
+                    d{"Gy年M月d日~d日"}\r
+                    y{"Gy年M月d日~y年M月d日"}\r
+                }\r
+                GyMd{\r
+                    G{"Gy/MM/dd~Gy/MM/dd"}\r
+                    M{"Gy/MM/dd~y/MM/dd"}\r
+                    d{"Gy/MM/dd~y/MM/dd"}\r
+                    y{"Gy/MM/dd~y/MM/dd"}\r
+                }\r
                 H{\r
                     H{"H時~H時"}\r
                 }\r
@@ -2464,6 +2542,7 @@ ja{
                     "大正",\r
                     "昭和",\r
                     "平成",\r
+                    "QQ",\r
                 }\r
                 narrow{\r
                     "大化",\r
@@ -2702,6 +2781,7 @@ ja{
                     "T",\r
                     "S",\r
                     "H",\r
+                    "Q",\r
                 }\r
             }\r
         }\r
@@ -3255,6 +3335,11 @@ ja{
         }\r
         quarter-narrow{\r
             dn{"四半期"}\r
+            relative{\r
+                "-1"{"前四半期"}\r
+                "0"{"今四半期"}\r
+                "1"{"翌四半期"}\r
+            }\r
             relativeTime{\r
                 future{\r
                     other{"{0}四半期後"}\r
@@ -3266,6 +3351,11 @@ ja{
         }\r
         quarter-short{\r
             dn{"四半期"}\r
+            relative{\r
+                "-1"{"前四半期"}\r
+                "0"{"今四半期"}\r
+                "1"{"翌四半期"}\r
+            }\r
             relativeTime{\r
                 future{\r
                     other{"{0} 四半期後"}\r
@@ -3715,4 +3805,36 @@ ja{
         US{"米ヤード・ポンド法"}\r
         metric{"メートル法"}\r
     }\r
+    parse{\r
+        date{\r
+            lenient{\r
+                "[\\--/]",\r
+                "[\\:∶]",\r
+            }\r
+        }\r
+        general{\r
+            lenient{\r
+                "[.․。︒﹒.。]",\r
+                "['ʼ՚᾽᾿’']",\r
+                "[%٪﹪%]",\r
+                "[؉‰]",\r
+                "[\$﹩$$]",\r
+                "[£₤]",\r
+                "[¥¥]",\r
+                "[₩₩]",\r
+                "[₨₹{Rp}{Rs}]",\r
+            }\r
+        }\r
+        number{\r
+            lenient{\r
+                "[\\-‒⁻₋−➖﹣-]",\r
+                "[,،٫、︐︑﹐﹑,、]",\r
+                "[+⁺₊➕﬩﹢+]",\r
+            }\r
+            stricter{\r
+                "[,٫︐﹐,]",\r
+                "[.․﹒.。]",\r
+            }\r
+        }\r
+    }\r
 }\r
diff --git a/source/data/locales/jv.txt b/source/data/locales/jv.txt
new file mode 100644 (file)
index 0000000..564864a
--- /dev/null
@@ -0,0 +1,788 @@
+// © 2016 and later: Unicode, Inc. and others.\r
+// License & terms of use: http://www.unicode.org/copyright.html#License\r
+jv{\r
+    AuxExemplarCharacters{"[f q v x z]"}\r
+    Ellipsis{\r
+        final{"{0}…"}\r
+        initial{"…{0}"}\r
+        medial{"{0}…{1}"}\r
+        word-final{"{0} …"}\r
+        word-initial{"… {0}"}\r
+        word-medial{"{0} … {1}"}\r
+    }\r
+    ExemplarCharacters{"[a â å b c d e é è ê g h i ì j k l m n o ò p r s t u ù w y]"}\r
+    ExemplarCharactersIndex{"[A Â Å B C D E É È Ê G H I Ì J K L M N O Ò P R S T U Ù W Y]"}\r
+    ExemplarCharactersNumbers{"[\\- , . % ‰ + 0 1 2 3 4 5 6 7 8 9]"}\r
+    ExemplarCharactersPunctuation{"[\\- , ; \\: ! ? . ( ) \\[ \\] \\{ \\}]"}\r
+    MoreInformation{"?"}\r
+    NumberElements{\r
+        default{"latn"}\r
+        latn{\r
+            miscPatterns{\r
+                atLeast{"≥{0}"}\r
+                range{"{0} – {1}"}\r
+            }\r
+            patterns{\r
+                accountingFormat{"¤ #,##0.00"}\r
+                currencyFormat{"¤ #,##0.00"}\r
+                decimalFormat{"#,##0.###"}\r
+                percentFormat{"#,##0%"}\r
+                scientificFormat{"#E0"}\r
+            }\r
+            symbols{\r
+                decimal{","}\r
+                exponential{"E"}\r
+                group{"."}\r
+                infinity{"∞"}\r
+                minusSign{"-"}\r
+                nan{"NaN"}\r
+                perMille{"‰"}\r
+                percentSign{"%"}\r
+                plusSign{"+"}\r
+                superscriptingExponent{"×"}\r
+            }\r
+        }\r
+        minimalPairs{\r
+            ordinal{\r
+                other{"Njupuk penggoan tengen sing ke {0}."}\r
+            }\r
+            plural{\r
+                other{"{0} dino"}\r
+            }\r
+        }\r
+        minimumGroupingDigits{"1"}\r
+    }\r
+    Version{"2.1.44.15"}\r
+    calendar{\r
+        generic{\r
+            DateTimePatterns{\r
+                "HH:mm:ss zzzz",\r
+                "HH:mm:ss z",\r
+                "HH:mm:ss",\r
+                "HH:mm",\r
+                "EEEE, d MMMM y G",\r
+                "d MMMM y G",\r
+                "d MMM y G",\r
+                "dd-MM-y GGGGG",\r
+                "{1} {0}",\r
+                "{1} {0}",\r
+                "{1} {0}",\r
+                "{1} {0}",\r
+                "{1} {0}",\r
+            }\r
+            availableFormats{\r
+                E{"ccc"}\r
+                EHm{"E HH:mm"}\r
+                EHms{"E HH:mm:ss"}\r
+                Ed{"E, d"}\r
+                Ehm{"E h:mm a"}\r
+                Ehms{"E h:mm:ss a"}\r
+                Gy{"y G"}\r
+                GyMMM{"MMM y G"}\r
+                GyMMMEd{"E, d MMM y G"}\r
+                GyMMMd{"d MMM y G"}\r
+                H{"HH"}\r
+                Hm{"HH:mm"}\r
+                Hms{"HH:mm:ss"}\r
+                M{"L"}\r
+                MEd{"E, dd/MM"}\r
+                MMM{"LLL"}\r
+                MMMEd{"E, d MMM"}\r
+                MMMMd{"d MMMM"}\r
+                MMMd{"d MMM"}\r
+                Md{"dd/MM"}\r
+                d{"d"}\r
+                h{"h a"}\r
+                hm{"h:mm a"}\r
+                hms{"h:mm:ss a"}\r
+                ms{"mm:ss"}\r
+                y{"y G"}\r
+                yyyy{"y G"}\r
+                yyyyM{"MM - y GGGGG"}\r
+                yyyyMEd{"E, dd - MM - y GGGGG"}\r
+                yyyyMMM{"MMM y G"}\r
+                yyyyMMMEd{"E, d MMM y G"}\r
+                yyyyMMMM{"MMMM y G"}\r
+                yyyyMMMd{"d MMM y G"}\r
+                yyyyMd{"dd - MM - y GGGGG"}\r
+                yyyyQQQ{"QQQ y G"}\r
+                yyyyQQQQ{"QQQQ y G"}\r
+            }\r
+            intervalFormats{\r
+                M{\r
+                    M{"MM – MM"}\r
+                }\r
+                MEd{\r
+                    M{"E, dd/MM – E, dd/MM"}\r
+                    d{"E, dd/MM – E, dd/MM"}\r
+                }\r
+                MMM{\r
+                    M{"LLL – LLL"}\r
+                }\r
+                MMMEd{\r
+                    M{"E, d MMM – E, d MMM"}\r
+                    d{"E, d MMM – E, d MMM"}\r
+                }\r
+                MMMd{\r
+                    M{"d MMM – d MMM"}\r
+                    d{"d – d MMM"}\r
+                }\r
+                Md{\r
+                    M{"dd/MM – dd/MM"}\r
+                    d{"dd/MM – dd/MM"}\r
+                }\r
+                d{\r
+                    d{"d – d"}\r
+                }\r
+                fallback{"{0} – {1}"}\r
+                y{\r
+                    y{"y – y G"}\r
+                }\r
+                yM{\r
+                    M{"MM-y – MM-y GGGGG"}\r
+                    y{"MM-y – MM-y GGGGG"}\r
+                }\r
+                yMEd{\r
+                    M{"E, dd-MM-y – E, dd-MM-y GGGGG"}\r
+                    d{"E, dd-MM-y – E, dd-MM-y GGGGG"}\r
+                    y{"E, dd-MM-y – E, dd-MM-y GGGGG"}\r
+                }\r
+                yMMM{\r
+                    M{"MMM – MMM y G"}\r
+                    y{"MMM y – MMM y G"}\r
+                }\r
+                yMMMEd{\r
+                    M{"E, d MMM – E, d MMM y G"}\r
+                    d{"E, d MMM – E, d MMM y G"}\r
+                    y{"E, d MMM y – E, d MMM y G"}\r
+                }\r
+                yMMMM{\r
+                    M{"MMMM – MMMM y G"}\r
+                    y{"MMMM y – MMMM y G"}\r
+                }\r
+                yMMMd{\r
+                    M{"d MMM – d MMM y G"}\r
+                    d{"d – d MMM y G"}\r
+                    y{"d MMM y – d MMM y G"}\r
+                }\r
+                yMd{\r
+                    M{"dd-MM-y – dd-MM-y GGGGG"}\r
+                    d{"dd-MM-y – dd-MM-y GGGGG"}\r
+                    y{"dd-MM-y – dd-MM-y GGGGG"}\r
+                }\r
+            }\r
+        }\r
+        gregorian{\r
+            AmPmMarkers{\r
+                "Isuk",\r
+                "Wengi",\r
+            }\r
+            AmPmMarkersAbbr{\r
+                "Isuk",\r
+                "Wengi",\r
+            }\r
+            AmPmMarkersNarrow{\r
+                "Isuk",\r
+                "Wengi",\r
+            }\r
+            DateTimePatterns{\r
+                "HH:mm:ss zzzz",\r
+                "HH:mm:ss z",\r
+                "HH:mm:ss",\r
+                "HH:mm",\r
+                "EEEE, d MMMM y",\r
+                "d MMMM y",\r
+                "d MMM y",\r
+                "dd-MM-y",\r
+                "{1}, {0}",\r
+                "{1} {0}",\r
+                "{1} {0}",\r
+                "{1}, {0}",\r
+                "{1}, {0}",\r
+            }\r
+            appendItems{\r
+                Timezone{"{0} {1}"}\r
+            }\r
+            availableFormats{\r
+                E{"ccc"}\r
+                EHm{"E HH:mm"}\r
+                EHms{"E HH:mm:ss"}\r
+                Ed{"E, d"}\r
+                Ehm{"E h:mm a"}\r
+                Ehms{"E h:mm:ss a"}\r
+                Gy{"y G"}\r
+                GyMMM{"MMM y G"}\r
+                GyMMMEd{"E, d MMM y G"}\r
+                GyMMMd{"d MMM y G"}\r
+                H{"HH"}\r
+                Hm{"HH:mm"}\r
+                Hms{"HH:mm:ss"}\r
+                Hmsv{"HH:mm:ss v"}\r
+                Hmv{"HH:mm v"}\r
+                M{"L"}\r
+                MEd{"E dd/MM"}\r
+                MMM{"LLL"}\r
+                MMMEd{"E, d MMM"}\r
+                MMMMW{\r
+                    other{"'pekan' W 'saka' MMMM"}\r
+                }\r
+                MMMMd{"d MMMM"}\r
+                MMMd{"d MMM"}\r
+                Md{"dd/MM"}\r
+                d{"d"}\r
+                h{"h a"}\r
+                hm{"h:mm a"}\r
+                hms{"h:mm:ss a"}\r
+                hmsv{"h:mm:ss a v"}\r
+                hmv{"h:mm a v"}\r
+                ms{"mm:ss"}\r
+                y{"y"}\r
+                yM{"MM-y"}\r
+                yMEd{"E, dd-MM-y"}\r
+                yMMM{"MMM y"}\r
+                yMMMEd{"E, d MMM y"}\r
+                yMMMM{"MMMM y"}\r
+                yMMMd{"d MMM y"}\r
+                yMd{"dd-MM-y"}\r
+                yQQQ{"QQQ y"}\r
+                yQQQQ{"QQQQ y"}\r
+                yw{\r
+                    other{"'pekan' w 'saka' Y"}\r
+                }\r
+            }\r
+            dayNames{\r
+                format{\r
+                    abbreviated{\r
+                        "Ahd",\r
+                        "Sen",\r
+                        "Sel",\r
+                        "Rab",\r
+                        "Kam",\r
+                        "Jum",\r
+                        "Sab",\r
+                    }\r
+                    narrow{\r
+                        "A",\r
+                        "S",\r
+                        "S",\r
+                        "R",\r
+                        "K",\r
+                        "J",\r
+                        "S",\r
+                    }\r
+                    short{\r
+                        "Ahd",\r
+                        "Sen",\r
+                        "Sel",\r
+                        "Rab",\r
+                        "Kam",\r
+                        "Jum",\r
+                        "Sab",\r
+                    }\r
+                    wide{\r
+                        "Ahad",\r
+                        "Senin",\r
+                        "Selasa",\r
+                        "Rabu",\r
+                        "Kamis",\r
+                        "Jumat",\r
+                        "Sabtu",\r
+                    }\r
+                }\r
+                stand-alone{\r
+                    abbreviated{\r
+                        "Ahd",\r
+                        "Sen",\r
+                        "Sel",\r
+                        "Rab",\r
+                        "Kam",\r
+                        "Jum",\r
+                        "Sab",\r
+                    }\r
+                    narrow{\r
+                        "A",\r
+                        "S",\r
+                        "S",\r
+                        "R",\r
+                        "K",\r
+                        "J",\r
+                        "S",\r
+                    }\r
+                    short{\r
+                        "Ahd",\r
+                        "Sen",\r
+                        "Sel",\r
+                        "Rab",\r
+                        "Kam",\r
+                        "Jum",\r
+                        "Sab",\r
+                    }\r
+                    wide{\r
+                        "Ahad",\r
+                        "Senin",\r
+                        "Selasa",\r
+                        "Rabu",\r
+                        "Kamis",\r
+                        "Jumat",\r
+                        "Sabtu",\r
+                    }\r
+                }\r
+            }\r
+            dayPeriod{\r
+                stand-alone{\r
+                    abbreviated{\r
+                        am{"Isuk"}\r
+                        pm{"Wengi"}\r
+                    }\r
+                    narrow{\r
+                        am{"Isuk"}\r
+                        pm{"Wengi"}\r
+                    }\r
+                    wide{\r
+                        am{"Isuk"}\r
+                        pm{"Wengi"}\r
+                    }\r
+                }\r
+            }\r
+            eras{\r
+                abbreviated{\r
+                    "SM",\r
+                    "M",\r
+                }\r
+                abbreviated%variant{\r
+                    "SEU",\r
+                    "EU",\r
+                }\r
+                wide{\r
+                    "Sakdurunge Masehi",\r
+                    "Masehi",\r
+                }\r
+                wide%variant{\r
+                    "Sakdurunge Era Umum",\r
+                    "Era Umum",\r
+                }\r
+            }\r
+            intervalFormats{\r
+                H{\r
+                    H{"HH – HH"}\r
+                }\r
+                Hm{\r
+                    H{"HH:mm – HH:mm"}\r
+                    m{"HH:mm – HH:mm"}\r
+                }\r
+                Hmv{\r
+                    H{"HH:mm – HH:mm v"}\r
+                    m{"HH:mm – HH:mm v"}\r
+                }\r
+                Hv{\r
+                    H{"HH – HH v"}\r
+                }\r
+                M{\r
+                    M{"MM – MM"}\r
+                }\r
+                MEd{\r
+                    M{"E, dd/MM – E, dd/MM"}\r
+                    d{"E, dd/MM – E, dd/MM"}\r
+                }\r
+                MMM{\r
+                    M{"LLL–LLL"}\r
+                }\r
+                MMMEd{\r
+                    M{"E, d MMM – E, d MMM"}\r
+                    d{"E, d MMM – E, d MMM"}\r
+                }\r
+                MMMd{\r
+                    M{"d MMM – d MMM"}\r
+                    d{"MMM d–d"}\r
+                }\r
+                Md{\r
+                    M{"dd/MM – dd/MM"}\r
+                    d{"dd/MM – dd/MM"}\r
+                }\r
+                d{\r
+                    d{"d – d"}\r
+                }\r
+                fallback{"{0} – {1}"}\r
+                h{\r
+                    a{"h a – h a"}\r
+                    h{"h – h a"}\r
+                }\r
+                hm{\r
+                    a{"h:mm a – h:mm a"}\r
+                    h{"h:mm – h:mm a"}\r
+                    m{"h:mm – h:mm a"}\r
+                }\r
+                hmv{\r
+                    a{"h:mm a – h:mm a v"}\r
+                    h{"h:mm – h:mm a v"}\r
+                    m{"h:mm – h:mm a v"}\r
+                }\r
+                hv{\r
+                    a{"h a – h a v"}\r
+                    h{"h – h a v"}\r
+                }\r
+                y{\r
+                    y{"y – y"}\r
+                }\r
+                yM{\r
+                    M{"MM-y – MM-y"}\r
+                    y{"MM-y – MM-y"}\r
+                }\r
+                yMEd{\r
+                    M{"E, dd-MM-y – E, dd-MM-y"}\r
+                    d{"E, dd-MM-y – E, dd-MM-y"}\r
+                    y{"E, dd-MM-y – E, dd-MM-y"}\r
+                }\r
+                yMMM{\r
+                    M{"MMM – MMM y"}\r
+                    y{"MMM y – MMM y"}\r
+                }\r
+                yMMMEd{\r
+                    M{"E, d MMM – E, d MMM y"}\r
+                    d{"E, d MMM – E, d MMM y"}\r
+                    y{"E, d MMM y – E, d MMM y"}\r
+                }\r
+                yMMMM{\r
+                    M{"MMMM – MMMM y"}\r
+                    y{"MMMM y – MMMM y"}\r
+                }\r
+                yMMMd{\r
+                    M{"d MMM – d MMM y"}\r
+                    d{"d – d MMM y"}\r
+                    y{"d MMM y – d MMM y"}\r
+                }\r
+                yMd{\r
+                    M{"dd-MM-y – dd-MM-y"}\r
+                    d{"dd-MM-y – dd-MM-y"}\r
+                    y{"dd-MM-y – dd-MM-y"}\r
+                }\r
+            }\r
+            monthNames{\r
+                format{\r
+                    abbreviated{\r
+                        "Jan",\r
+                        "Feb",\r
+                        "Mar",\r
+                        "Apr",\r
+                        "Mei",\r
+                        "Jun",\r
+                        "Jul",\r
+                        "Agt",\r
+                        "Sep",\r
+                        "Okt",\r
+                        "Nov",\r
+                        "Des",\r
+                    }\r
+                    narrow{\r
+                        "J",\r
+                        "F",\r
+                        "M",\r
+                        "A",\r
+                        "M",\r
+                        "J",\r
+                        "J",\r
+                        "A",\r
+                        "S",\r
+                        "O",\r
+                        "N",\r
+                        "D",\r
+                    }\r
+                    wide{\r
+                        "Januari",\r
+                        "Februari",\r
+                        "Maret",\r
+                        "April",\r
+                        "Mei",\r
+                        "Juni",\r
+                        "Juli",\r
+                        "Agustus",\r
+                        "September",\r
+                        "Oktober",\r
+                        "November",\r
+                        "Desember",\r
+                    }\r
+                }\r
+                stand-alone{\r
+                    abbreviated{\r
+                        "Jan",\r
+                        "Feb",\r
+                        "Mar",\r
+                        "Apr",\r
+                        "Mei",\r
+                        "Jun",\r
+                        "Jul",\r
+                        "Agt",\r
+                        "Sep",\r
+                        "Okt",\r
+                        "Nov",\r
+                        "Des",\r
+                    }\r
+                    narrow{\r
+                        "J",\r
+                        "F",\r
+                        "M",\r
+                        "A",\r
+                        "M",\r
+                        "J",\r
+                        "J",\r
+                        "A",\r
+                        "S",\r
+                        "O",\r
+                        "N",\r
+                        "D",\r
+                    }\r
+                    wide{\r
+                        "Januari",\r
+                        "Februari",\r
+                        "Maret",\r
+                        "April",\r
+                        "Mei",\r
+                        "Juni",\r
+                        "Juli",\r
+                        "Agustus",\r
+                        "September",\r
+                        "Oktober",\r
+                        "November",\r
+                        "Desember",\r
+                    }\r
+                }\r
+            }\r
+            quarters{\r
+                format{\r
+                    abbreviated{\r
+                        "TW1",\r
+                        "TW2",\r
+                        "TW3",\r
+                        "TW4",\r
+                    }\r
+                    narrow{\r
+                        "1",\r
+                        "2",\r
+                        "3",\r
+                        "4",\r
+                    }\r
+                    wide{\r
+                        "triwulan kaping pisan",\r
+                        "triwulan kaping loro",\r
+                        "triwulan kaping telu",\r
+                        "triwulan kaping papat",\r
+                    }\r
+                }\r
+                stand-alone{\r
+                    abbreviated{\r
+                        "TW1",\r
+                        "TW2",\r
+                        "TW3",\r
+                        "TW4",\r
+                    }\r
+                    narrow{\r
+                        "1",\r
+                        "2",\r
+                        "3",\r
+                        "4",\r
+                    }\r
+                    wide{\r
+                        "triwulan kaping pisan",\r
+                        "triwulan kaping loro",\r
+                        "triwulan kaping telu",\r
+                        "triwulan kaping papat",\r
+                    }\r
+                }\r
+            }\r
+        }\r
+    }\r
+    delimiters{\r
+        alternateQuotationEnd{"’"}\r
+        alternateQuotationStart{"‘"}\r
+        quotationEnd{"”"}\r
+        quotationStart{"“"}\r
+    }\r
+    fields{\r
+        day{\r
+            dn{"dino"}\r
+            relative{\r
+                "-1"{"wingi"}\r
+                "0"{"saiki"}\r
+                "1"{"sesuk"}\r
+            }\r
+        }\r
+        day-narrow{\r
+            dn{"dino"}\r
+        }\r
+        day-short{\r
+            dn{"dino"}\r
+        }\r
+        dayperiod{\r
+            dn{"isuk/wengi"}\r
+        }\r
+        era{\r
+            dn{"era"}\r
+        }\r
+        hour{\r
+            dn{"jam"}\r
+        }\r
+        hour-narrow{\r
+            dn{"jam"}\r
+        }\r
+        hour-short{\r
+            dn{"jam"}\r
+        }\r
+        minute{\r
+            dn{"menit"}\r
+        }\r
+        minute-narrow{\r
+            dn{"menit"}\r
+        }\r
+        minute-short{\r
+            dn{"menit"}\r
+        }\r
+        month{\r
+            dn{"sasi"}\r
+            relative{\r
+                "-1"{"sasi wingi"}\r
+                "0"{"sasi iki"}\r
+                "1"{"sasi ngarep"}\r
+            }\r
+        }\r
+        month-narrow{\r
+            dn{"sasi"}\r
+        }\r
+        month-short{\r
+            dn{"sasi"}\r
+        }\r
+        quarter{\r
+            dn{"triwulan"}\r
+        }\r
+        quarter-narrow{\r
+            dn{"triwulan"}\r
+        }\r
+        quarter-short{\r
+            dn{"triwulan"}\r
+        }\r
+        second{\r
+            dn{"detik"}\r
+        }\r
+        second-narrow{\r
+            dn{"detik"}\r
+        }\r
+        second-short{\r
+            dn{"detik"}\r
+        }\r
+        week{\r
+            dn{"pekan"}\r
+            relative{\r
+                "-1"{"pekan wingi"}\r
+                "0"{"pekan iki"}\r
+                "1"{"pekan ngarep"}\r
+            }\r
+            relativePeriod{"pekan kaping {0}"}\r
+        }\r
+        week-narrow{\r
+            dn{"pekan"}\r
+            relativePeriod{"pekan kaping {0}"}\r
+        }\r
+        week-short{\r
+            dn{"pekan"}\r
+            relativePeriod{"pekan kaping {0}"}\r
+        }\r
+        weekday{\r
+            dn{"dino sepekan"}\r
+        }\r
+        year{\r
+            dn{"taun"}\r
+            relative{\r
+                "-1"{"taun wingi"}\r
+                "0"{"taun iki"}\r
+                "1"{"taun ngarep"}\r
+            }\r
+        }\r
+        year-narrow{\r
+            dn{"taun"}\r
+        }\r
+        year-short{\r
+            dn{"taun"}\r
+        }\r
+        zone{\r
+            dn{"zona wektu"}\r
+        }\r
+    }\r
+    layout{\r
+        characters{"left-to-right"}\r
+        lines{"top-to-bottom"}\r
+    }\r
+    listPattern{\r
+        or{\r
+            2{"{0} utowo {1}"}\r
+            end{"{0}, utowo {1}"}\r
+            middle{"{0}, {1}"}\r
+            start{"{0}, {1}"}\r
+        }\r
+        standard{\r
+            2{"{0} lan {1}"}\r
+            end{"{0}, lan {1}"}\r
+            middle{"{0}, {1}"}\r
+            start{"{0}, {1}"}\r
+        }\r
+        standard-short{\r
+            2{"{0} lan {1}"}\r
+            end{"{0}, lan {1}"}\r
+            middle{"{0}, {1}"}\r
+            start{"{0}, {1}"}\r
+        }\r
+        unit{\r
+            2{"{0}, {1}"}\r
+            end{"{0}, {1}"}\r
+            middle{"{0}, {1}"}\r
+            start{"{0}, {1}"}\r
+        }\r
+        unit-narrow{\r
+            2{"{0} {1}"}\r
+            end{"{0} {1}"}\r
+            middle{"{0} {1}"}\r
+            start{"{0} {1}"}\r
+        }\r
+        unit-short{\r
+            2{"{0}, {1}"}\r
+            end{"{0}, {1}"}\r
+            middle{"{0}, {1}"}\r
+            start{"{0}, {1}"}\r
+        }\r
+    }\r
+    measurementSystemNames{\r
+        UK{"BR"}\r
+        US{"AS"}\r
+        metric{"Metrik"}\r
+    }\r
+    parse{\r
+        date{\r
+            lenient{\r
+                "[\\--/]",\r
+                "[\\:∶]",\r
+            }\r
+        }\r
+        general{\r
+            lenient{\r
+                "[.․。︒﹒.。]",\r
+                "['ʼ՚᾽᾿’']",\r
+                "[%٪﹪%]",\r
+                "[؉‰]",\r
+                "[\$﹩$$]",\r
+                "[£₤]",\r
+                "[¥¥]",\r
+                "[₩₩]",\r
+                "[₨₹{Rp}{Rs}]",\r
+            }\r
+        }\r
+        number{\r
+            lenient{\r
+                "[\\-‒⁻₋−➖﹣-]",\r
+                "[,،٫、︐︑﹐﹑,、]",\r
+                "[+⁺₊➕﬩﹢+]",\r
+            }\r
+            stricter{\r
+                "[,٫︐﹐,]",\r
+                "[.․﹒.。]",\r
+            }\r
+        }\r
+    }\r
+}\r
diff --git a/source/data/locales/jv_ID.txt b/source/data/locales/jv_ID.txt
new file mode 100644 (file)
index 0000000..74d9218
--- /dev/null
@@ -0,0 +1,5 @@
+// © 2016 and later: Unicode, Inc. and others.\r
+// License & terms of use: http://www.unicode.org/copyright.html#License\r
+jv_ID{\r
+    Version{"2.1.44.15"}\r
+}\r
index 7b4ce84a1c0ee5c0a6d17ffba66806e7112cc575..7f0a4bec8adde16da111ac7e3089b46f1d41f7c3 100644 (file)
@@ -25,7 +25,9 @@ ka{
         default{"latn"}\r
         latn{\r
             miscPatterns{\r
+                approximately{"≈{0}"}\r
                 atLeast{"{0}+"}\r
+                atMost{"≤{0}"}\r
                 range{"{0}-{1}"}\r
             }\r
             patterns{\r
@@ -219,7 +221,7 @@ ka{
         native{"latn"}\r
         traditional{"geor"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.50"}\r
     calendar{\r
         generic{\r
             DateTimePatterns{\r
@@ -1007,6 +1009,12 @@ ka{
         dayperiod{\r
             dn{"დღის ნახევარი"}\r
         }\r
+        dayperiod-narrow{\r
+            dn{"დღ. ნახევარი"}\r
+        }\r
+        dayperiod-short{\r
+            dn{"დღ. ნახევარი"}\r
+        }\r
         era{\r
             dn{"ეპოქა"}\r
         }\r
@@ -1657,12 +1665,24 @@ ka{
         weekOfMonth{\r
             dn{"თვის კვირა"}\r
         }\r
+        weekOfMonth-narrow{\r
+            dn{"თვ. კვირა"}\r
+        }\r
+        weekOfMonth-short{\r
+            dn{"თვ. კვირა"}\r
+        }\r
         weekday{\r
             dn{"კვირის დღე"}\r
         }\r
         weekdayOfMonth{\r
             dn{"კვირის დღე თვეში"}\r
         }\r
+        weekdayOfMonth-narrow{\r
+            dn{"კვ. დღე თვეში"}\r
+        }\r
+        weekdayOfMonth-short{\r
+            dn{"კვ. დღე თვეში"}\r
+        }\r
         year{\r
             dn{"წელი"}\r
             relative{\r
@@ -1720,6 +1740,12 @@ ka{
         zone{\r
             dn{"დროის სარტყელი"}\r
         }\r
+        zone-narrow{\r
+            dn{"დროის სარტყ."}\r
+        }\r
+        zone-short{\r
+            dn{"დროის სარტყ."}\r
+        }\r
     }\r
     listPattern{\r
         or{\r
index 87f847f0dd8e296ff54b05dd9d9e64228668ec4d..c42eca88d4520ecf4e9b6fe8adfedd9b5942edf7 100644 (file)
@@ -16,7 +16,7 @@ kab{
             }\r
         }\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.94"}\r
     calendar{\r
         generic{\r
             DateTimePatterns{\r
index 5e3a506d57cefce00a62b924631c26f774971b91..41ee9ef66effcb96e9f6180010ceff4c7260850d 100644 (file)
@@ -2,8 +2,8 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 kea{\r
     AuxExemplarCharacters{\r
-        "[á à ă â å ä ã ā æ c ç é è ĕ ê ë ẽ ē í ì ĭ î ï ĩ ī {n\u0308} ó ò ŏ ô ö õ ø ō"\r
-        " œ q {rr} ú ù ŭ û ü ũ ū w ÿ]"\r
+        "[ª á à ă â å ä ã ā æ c ç é è ĕ ê ë ẽ ē í ì ĭ î ï ĩ ī {n\u0308} º ó ò ŏ ô ö õ"\r
+        " ø ō œ q {rr} ú ù ŭ û ü ũ ū w ÿ]"\r
     }\r
     Ellipsis{\r
         final{"{0}…"}\r
@@ -16,6 +16,10 @@ kea{
     ExemplarCharacters{"[a b d {dj} e f g h i j k l {lh} m n ñ {nh} o p r s t {tx} u v x y z]"}\r
     ExemplarCharactersIndex{"[A B D E F G H I J K L M N O P R S T U V X Z]"}\r
     ExemplarCharactersNumbers{"[  \\- , % ‰ + 0 1 2 3 4 5 6 7 8 9]"}\r
+    ExemplarCharactersPunctuation{\r
+        "[\\- ‐ – — , ; \\: ! ? . … ' ‘ ’ \u0022 “ ” « » ( ) \\[ \\] § @ * / \\& # † "\r
+        "‡]"\r
+    }\r
     MoreInformation{"?"}\r
     NumberElements{\r
         default{"latn"}\r
@@ -129,7 +133,7 @@ kea{
         minimumGroupingDigits{"1"}\r
         native{"latn"}\r
     }\r
-    Version{"2.1.39.11"}\r
+    Version{"2.1.43.65"}\r
     calendar{\r
         generic{\r
             DateTimePatterns{\r
index d40481131abe14f5c7f5ed36ca7ec84e038091c8..49a7919bb114eb232fb6d6d061c2cd5559ddf215 100644 (file)
@@ -28,7 +28,9 @@ kk{
         default{"latn"}\r
         latn{\r
             miscPatterns{\r
+                approximately{"~{0}"}\r
                 atLeast{"{0}+"}\r
+                atMost{"≤{0}"}\r
                 range{"{0}–{1}"}\r
             }\r
             patterns{\r
@@ -219,7 +221,7 @@ kk{
         minimumGroupingDigits{"1"}\r
         native{"latn"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.88"}\r
     calendar{\r
         generic{\r
             DateTimePatterns{\r
@@ -238,12 +240,12 @@ kk{
                 "{1} {0}",\r
             }\r
             availableFormats{\r
-                Bh{"h B"}\r
-                Bhm{"h:mm B"}\r
-                Bhms{"h:mm:ss B"}\r
+                Bh{"B h"}\r
+                Bhm{"B h:mm"}\r
+                Bhms{"B h:mm:ss"}\r
                 E{"ccc"}\r
-                EBhm{"E h:mm B"}\r
-                EBhms{"E h:mm:ss B"}\r
+                EBhm{"E B h:mm"}\r
+                EBhms{"E B h:mm:ss"}\r
                 EHm{"E HH:mm"}\r
                 EHms{"E HH:mm:ss"}\r
                 Ed{"d, E"}\r
@@ -460,13 +462,13 @@ kk{
             dayNames{\r
                 format{\r
                     abbreviated{\r
-                        "Ð\96с",\r
-                        "Ð\94с",\r
-                        "Сс",\r
-                        "Ср",\r
-                        "Ð\91с",\r
-                        "Ð\96м",\r
-                        "Сб",\r
+                        "Ðс",\r
+                        "дс",\r
+                        "сс",\r
+                        "ср",\r
+                        "бс",\r
+                        "Ðм",\r
+                        "сб",\r
                     }\r
                     narrow{\r
                         "Ж",\r
@@ -478,13 +480,13 @@ kk{
                         "С",\r
                     }\r
                     short{\r
-                        "Ð\96с",\r
-                        "Ð\94с",\r
-                        "Сс",\r
-                        "Ср",\r
-                        "Ð\91с",\r
-                        "Ð\96м",\r
-                        "Сб",\r
+                        "Ðс",\r
+                        "дс",\r
+                        "сс",\r
+                        "ср",\r
+                        "бс",\r
+                        "Ðм",\r
+                        "сб",\r
                     }\r
                     wide{\r
                         "жексенбі",\r
@@ -498,13 +500,13 @@ kk{
                 }\r
                 stand-alone{\r
                     abbreviated{\r
-                        "Ð\96с",\r
-                        "Ð\94с",\r
-                        "Сс",\r
-                        "Ср",\r
-                        "Ð\91с",\r
-                        "Ð\96м",\r
-                        "Сб",\r
+                        "Ðс",\r
+                        "дс",\r
+                        "сс",\r
+                        "ср",\r
+                        "бс",\r
+                        "Ðм",\r
+                        "сб",\r
                     }\r
                     narrow{\r
                         "Ж",\r
@@ -516,22 +518,22 @@ kk{
                         "С",\r
                     }\r
                     short{\r
-                        "Ð\96с",\r
-                        "Ð\94с",\r
-                        "Сс",\r
-                        "Ср",\r
-                        "Ð\91с",\r
-                        "Ð\96м",\r
-                        "Сб",\r
+                        "Ðс",\r
+                        "дс",\r
+                        "сс",\r
+                        "ср",\r
+                        "бс",\r
+                        "Ðм",\r
+                        "сб",\r
                     }\r
                     wide{\r
-                        "Ð\96ексенбі",\r
-                        "Ð\94үйсенбі",\r
-                        "Сейсенбі",\r
-                        "Сәрсенбі",\r
-                        "Ð\91ейсенбі",\r
-                        "Ð\96ұма",\r
-                        "Сенбі",\r
+                        "Ðексенбі",\r
+                        "дүйсенбі",\r
+                        "сейсенбі",\r
+                        "сәрсенбі",\r
+                        "бейсенбі",\r
+                        "Ðұма",\r
+                        "сенбі",\r
                     }\r
                 }\r
             }\r
@@ -600,17 +602,13 @@ kk{
                     "б.з.д.",\r
                     "б.з.",\r
                 }\r
-                abbreviated%variant{\r
-                    "BCE",\r
-                    "CE",\r
-                }\r
                 wide{\r
                     "Біздің заманымызға дейін",\r
                     "біздің заманымыз",\r
                 }\r
                 wide%variant{\r
                     "біздің заманымызға дейін",\r
-                    "CE",\r
+                    "Біздің заманымыз",\r
                 }\r
             }\r
             intervalFormats{\r
@@ -755,18 +753,18 @@ kk{
                 }\r
                 stand-alone{\r
                     abbreviated{\r
-                        "Ò\9aаң.",\r
-                        "Ð\90қп.",\r
-                        "Ð\9dау.",\r
-                        "Сәу.",\r
-                        "Ð\9cам.",\r
-                        "Ð\9cау.",\r
-                        "Шіл.",\r
-                        "Там.",\r
-                        "Ò\9aыр.",\r
-                        "Ò\9aаз.",\r
-                        "Ò\9aар.",\r
-                        "Ð\96ел.",\r
+                        "Ò\9bаң.",\r
+                        "ақп.",\r
+                        "нау.",\r
+                        "сәу.",\r
+                        "мам.",\r
+                        "мау.",\r
+                        "шіл.",\r
+                        "там.",\r
+                        "Ò\9bыр.",\r
+                        "Ò\9bаз.",\r
+                        "Ò\9bар.",\r
+                        "Ðел.",\r
                     }\r
                     narrow{\r
                         "Қ",\r
@@ -843,92 +841,92 @@ kk{
         }\r
     }\r
     characterLabel{\r
-        activities{"Спорт"}\r
+        activities{"әрекет"}\r
         african_scripts{"Африка жазулары"}\r
         american_scripts{"Америка жазулары"}\r
         animal{"жануар"}\r
-        animals_nature{"Ð\96анÑ\83аÑ\80лаÑ\80 Ð¶Ó\99не табиғат"}\r
-        arrows{"Ð\9aÓ©Ñ\80Ñ\81еÑ\82кÑ\96леÑ\80"}\r
+        animals_nature{"жанÑ\83аÑ\80 Ð½ÐµÐ¼ÐµÑ\81е табиғат"}\r
+        arrows{"көÑ\80Ñ\81еÑ\82кÑ\96"}\r
         body{"дене"}\r
-        box_drawing{"Ð\9fсевдографика"}\r
+        box_drawing{"псевдографика"}\r
         braille{"Брайль жазуы"}\r
         building{"ғимарат"}\r
-        bullets_stars{"Маркерлер/жұлдызшалар"}\r
-        consonantal_jamo{"Ð\94ауыссыз чамо"}\r
-        currency_symbols{"Ð\92алюта таңбалары"}\r
-        dash_connector{"Тире/байланыс"}\r
-        digits{"Цифрлар"}\r
-        dingbats{"Ð\94ингбаттар"}\r
-        divination_symbols{"Ð\9eккульттық таңбалар"}\r
-        downwards_arrows{"Төмен қарайғы көрсеткілер"}\r
-        downwards_upwards_arrows{"Төмен және жоғарғы қарайғы көрсеткілер"}\r
+        bullets_stars{"тізім маркерлері/жұлдыздар"}\r
+        consonantal_jamo{"дауыссыз чамо"}\r
+        currency_symbols{"валюта таңбалары"}\r
+        dash_connector{"сызықша/байланыс"}\r
+        digits{"цифрлар"}\r
+        dingbats{"дингбаттар"}\r
+        divination_symbols{"оккульттық таңбалар"}\r
+        downwards_arrows{"төмен бағытталған көрсеткілер"}\r
+        downwards_upwards_arrows{"төмен және жоғары бағытталған көрсеткілер"}\r
         east_asian_scripts{"Шығыс Азия жазулары"}\r
-        emoji{"Эмодзи"}\r
+        emoji{"эмодзи"}\r
         european_scripts{"Еуропа жазулары"}\r
         female{"әйел"}\r
         flag{"ту"}\r
-        flags{"Тулар"}\r
-        food_drink{"Тамақ пен сусын"}\r
-        format{"Пішім"}\r
-        format_whitespace{"Пішім және бос орын"}\r
-        full_width_form_variant{"Толық енді форма нұсқалары"}\r
-        geometric_shapes{"Ð\93еомеÑ\82Ñ\80иÑ\8fлÑ\8bÒ\9b Ð¿Ñ\96Ñ\88Ñ\96ндер"}\r
-        half_width_form_variant{"Ð\96аÑ\80Ñ\82Ñ\8bлай енді форма нұсқалары"}\r
-        han_characters{"Ò\9aытай иероглифтері"}\r
-        han_radicals{"Ð\98ероглиф кілттері"}\r
-        hanja{"Ханча"}\r
-        hanzi_simplified{"Ò\9aытай иероглифтері (жеңілдетілген)"}\r
-        hanzi_traditional{"Ò\9aытай иероглифтері (дәстүрлі)"}\r
+        flags{"тулар"}\r
+        food_drink{"тамақ пен сусын"}\r
+        format{"форматтау"}\r
+        format_whitespace{"форматтау және бос орын"}\r
+        full_width_form_variant{"толық енді форма нұсқалары"}\r
+        geometric_shapes{"геомеÑ\82Ñ\80иÑ\8fлÑ\8bÒ\9b Ñ\84игÑ\83Ñ\80алар"}\r
+        half_width_form_variant{"жаÑ\80Ñ\82Ñ\8b енді форма нұсқалары"}\r
+        han_characters{"Ò\9bытай иероглифтері"}\r
+        han_radicals{"иероглиф кілттері"}\r
+        hanja{"ханча"}\r
+        hanzi_simplified{"Ò\9bытай иероглифтері (жеңілдетілген)"}\r
+        hanzi_traditional{"Ò\9bытай иероглифтері (дәстүрлі)"}\r
         heart{"жүрек"}\r
-        historic_scripts{"Ð\9aөне жазулар"}\r
-        ideographic_desc_characters{"Ð\98ероглифтерді сипаттау таңбалары"}\r
-        japanese_kana{"Ð\96апондÑ\8bÒ\9b Ðºана жазуы"}\r
-        kanbun{"Ð\9aамбун"}\r
-        kanji{"Ð\9aанджи"}\r
+        historic_scripts{"көне жазулар"}\r
+        ideographic_desc_characters{"иероглифтерді сипаттау таңбалары"}\r
+        japanese_kana{"жапондÑ\8bÒ\9b Ò\9bана жазуы"}\r
+        kanbun{"камбун"}\r
+        kanji{"кандзи"}\r
         keycap{"перне"}\r
-        leftwards_arrows{"Солға қарайғы көрсеткілер"}\r
-        leftwards_rightwards_arrows{"Солға және оңға қарайғы көрсеткілер"}\r
-        letterlike_symbols{"Ó\98ріптік таңбалар"}\r
-        limited_use{"Шектеулі қолданыс таңбалары"}\r
-        male{"ер"}\r
-        math_symbols{"Ð\9cатематикалық таңбалар"}\r
+        leftwards_arrows{"солға бағытталған көрсеткілер"}\r
+        leftwards_rightwards_arrows{"солға және оңға бағытталған көрсеткілер"}\r
+        letterlike_symbols{"Ó\99ріптік таңбалар"}\r
+        limited_use{"қолданысы шектеулі"}\r
+        male{"еркек"}\r
+        math_symbols{"математикалық таңбалар"}\r
         middle_eastern_scripts{"Таяу Шығыс жазулары"}\r
-        miscellaneous{"Ó\98р түрлі"}\r
-        modern_scripts{"Ò\9aазіргі заман жазулары"}\r
-        modifier{"Ð\9cодификатор"}\r
-        musical_symbols{"Ð\9cузыкалық таңбалар"}\r
+        miscellaneous{"Ó\99р түрлі"}\r
+        modern_scripts{"Ò\9bазіргі заман жазулары"}\r
+        modifier{"модификатор"}\r
+        musical_symbols{"музыкалық таңбалар"}\r
         nature{"табиғат"}\r
-        nonspacing{"Ð\91оÑ\81 Ð¾Ñ\80Ñ\8bнÑ\81Ñ\8bз Ñ\82аңбалаÑ\80"}\r
-        numbers{"Сандар"}\r
-        objects{"Ð\9dысандар"}\r
-        other{"Ð\91асқа"}\r
-        paired{"Ð\96ұпÑ\82аÑ\81Ò\9bан Ñ\82аңбалаÑ\80"}\r
+        nonspacing{"боÑ\81 Ð¾Ñ\80Ñ\8bнÑ\81Ñ\8bз"}\r
+        numbers{"сандар"}\r
+        objects{"нысандар"}\r
+        other{"басқа"}\r
+        paired{"жұпÑ\82аÑ\81Ò\9bан"}\r
         person{"адам"}\r
-        phonetic_alphabet{"Фонетикалық әліпби"}\r
-        pictographs{"Ð\9fикÑ\82огÑ\80амма"}\r
+        phonetic_alphabet{"фонетикалық әліпби"}\r
+        pictographs{"пикÑ\82огÑ\80аммалаÑ\80"}\r
         place{"орын"}\r
         plant{"өсімдік"}\r
-        punctuation{"Тыныс белгілері"}\r
-        rightwards_arrows{"Ð\9eÒ£Ò\93а Ò\9bаÑ\80айÒ\93Ñ\8b көрсеткілер"}\r
-        sign_standard_symbols{"Ð\91елгілер/стандартты таңбалар"}\r
-        small_form_variant{"Ð\9aіші форма нұсқалары"}\r
+        punctuation{"тыныс белгілері"}\r
+        rightwards_arrows{"оңÒ\93а Ð±Ð°Ò\93Ñ\8bÑ\82Ñ\82алÒ\93ан көрсеткілер"}\r
+        sign_standard_symbols{"белгілер/стандартты таңбалар"}\r
+        small_form_variant{"кіші форма нұсқалары"}\r
         smiley{"смайл"}\r
-        smileys_people{"Смайлдар мен адамдар"}\r
+        smileys_people{"смайлдар мен адамдар"}\r
         south_asian_scripts{"Оңтүстік Азия жазулары"}\r
         southeast_asian_scripts{"Оңтүстік-Шығыс Азия жазулары"}\r
-        spacing{"Ð\91оÑ\81 Ð¾Ñ\80Ñ\8bндаÑ\80"}\r
+        spacing{"боÑ\81 Ð¾Ñ\80Ñ\8bн"}\r
         sport{"спорт"}\r
-        symbols{"Таңбалар"}\r
-        technical_symbols{"Техникалық таңбалар"}\r
-        tone_marks{"Ð\95кпін белгілері"}\r
+        symbols{"таңбалар"}\r
+        technical_symbols{"техникалық таңбалар"}\r
+        tone_marks{"екпін белгілері"}\r
         travel{"саяхат"}\r
-        travel_places{"Саяхат"}\r
-        upwards_arrows{"Ð\96оÒ\93аÑ\80Ñ\8b Ò\9bаÑ\80айÒ\93Ñ\8b көрсеткілер"}\r
-        variant_forms{"Құбылмалы формалар"}\r
-        vocalic_jamo{"Ð\94ауысты чамо"}\r
+        travel_places{"саяхат және орындар"}\r
+        upwards_arrows{"жоÒ\93аÑ\80Ñ\8b Ð±Ð°Ò\93Ñ\8bÑ\82Ñ\82алÒ\93ан көрсеткілер"}\r
+        variant_forms{"өзгермелі формалар"}\r
+        vocalic_jamo{"дауысты чамо"}\r
         weather{"ауа райы"}\r
         western_asian_scripts{"Батыс Азия жазулары"}\r
-        whitespace{"Ð\91ос орын"}\r
+        whitespace{"бос орын"}\r
     }\r
     delimiters{\r
         alternateQuotationEnd{"”"}\r
index 4c36cb1439122631b6c0e84d47c5e0085fbf44f1..127976f8e0478b385770921021e8567e5be42265 100644 (file)
@@ -25,7 +25,7 @@ kl{
             }\r
         }\r
     }\r
-    Version{"2.1.38.69"}\r
+    Version{"2.1.45.12"}\r
     calendar{\r
         gregorian{\r
             DateTimePatterns{\r
@@ -46,7 +46,7 @@ kl{
             dayNames{\r
                 format{\r
                     abbreviated{\r
-                        "sab",\r
+                        "sap",\r
                         "ata",\r
                         "mar",\r
                         "pin",\r
@@ -55,7 +55,7 @@ kl{
                         "arf",\r
                     }\r
                     short{\r
-                        "sab",\r
+                        "sap",\r
                         "ata",\r
                         "mar",\r
                         "pin",\r
@@ -64,7 +64,7 @@ kl{
                         "arf",\r
                     }\r
                     wide{\r
-                        "sabaat",\r
+                        "sapaat",\r
                         "ataasinngorneq",\r
                         "marlunngorneq",\r
                         "pingasunngorneq",\r
@@ -75,7 +75,7 @@ kl{
                 }\r
                 stand-alone{\r
                     short{\r
-                        "sab",\r
+                        "sap",\r
                         "ata",\r
                         "mar",\r
                         "pin",\r
@@ -84,7 +84,7 @@ kl{
                         "arf",\r
                     }\r
                     wide{\r
-                        "sabaat",\r
+                        "sapaat",\r
                         "ataasinngorneq",\r
                         "marlunngorneq",\r
                         "pingasunngorneq",\r
index c6d2df6357ff7e86f4c27b8574d2d11251b87aa0..9e81b59a4d2cb0304a6d94dd807a88ec94c3443c 100644 (file)
@@ -22,7 +22,9 @@ km{
         default{"latn"}\r
         latn{\r
             miscPatterns{\r
+                approximately{"~{0}"}\r
                 atLeast{"{0}+"}\r
+                atMost{"≤{0}"}\r
                 range{"{0}–{1}"}\r
             }\r
             patterns{\r
@@ -35,80 +37,80 @@ km{
             patternsLong{\r
                 decimalFormat{\r
                     1000{\r
-                        other{"0ពាន់"}\r
+                        other{"0 ពាន់"}\r
                     }\r
                     10000{\r
-                        other{"0​មឺុន"}\r
+                        other{"00 ពាន់"}\r
                     }\r
                     100000{\r
-                        other{"0សែន"}\r
+                        other{"000ពាន់"}\r
                     }\r
                     1000000{\r
-                        other{"0លាន"}\r
+                        other{"0 លាន"}\r
                     }\r
                     10000000{\r
-                        other{"0​ដប់​លាន"}\r
+                        other{"0លាន"}\r
                     }\r
                     100000000{\r
-                        other{"0​រយលាន"}\r
+                        other{"000 លាន"}\r
                     }\r
                     1000000000{\r
-                        other{"0​កោដិ"}\r
+                        other{"0 ប៊ីលាន"}\r
                     }\r
                     10000000000{\r
-                        other{"0​ដប់​កោដិ"}\r
+                        other{"00 ប៊ីលាន"}\r
                     }\r
                     100000000000{\r
-                        other{"0​រយ​កោដិ"}\r
+                        other{"000 ប៊ីលាន"}\r
                     }\r
                     1000000000000{\r
-                        other{"0​ពាន់​កោដិ"}\r
+                        other{"0 ទ្រីលាន"}\r
                     }\r
                     10000000000000{\r
-                        other{"0​មឺុន​កោដិ"}\r
+                        other{"00 ទ្រីលាន"}\r
                     }\r
                     100000000000000{\r
-                        other{"0​សែន​កោដិ"}\r
+                        other{"000 ទ្រីលាន"}\r
                     }\r
                 }\r
             }\r
             patternsShort{\r
                 currencyFormat{\r
                     1000{\r
-                        other{"¤0ពាន់"}\r
+                        other{"¤0 ពាន់"}\r
                     }\r
                     10000{\r
-                        other{"¤00ពាន់"}\r
+                        other{"¤00 ពាន់"}\r
                     }\r
                     100000{\r
-                        other{"¤000ពាន់"}\r
+                        other{"¤000 ពាន់"}\r
                     }\r
                     1000000{\r
-                        other{"¤0លាន"}\r
+                        other{"¤0 លាន"}\r
                     }\r
                     10000000{\r
-                        other{"¤0​ដប់​លាន"}\r
+                        other{"¤0លាន"}\r
                     }\r
                     100000000{\r
-                        other{"¤0​រយលាន"}\r
+                        other{"¤000 លាន"}\r
                     }\r
                     1000000000{\r
-                        other{"¤0​កោដិ"}\r
+                        other{"¤0 ប៊ីលាន"}\r
                     }\r
                     10000000000{\r
-                        other{"¤0​ដប់​កោដិ"}\r
+                        other{"¤00 ប៊ីលាន"}\r
                     }\r
                     100000000000{\r
-                        other{"¤0​រយ​កោដិ"}\r
+                        other{"¤000 ប៊ីលាន"}\r
                     }\r
                     1000000000000{\r
-                        other{"¤0​ពាន់​កោដិ"}\r
+                        other{"¤0 ទ្រីលាន"}\r
                     }\r
                     10000000000000{\r
-                        other{"¤0​មឺុន​កោដិ"}\r
+                        other{"¤00 ទ្រីលាន"}\r
                     }\r
                     100000000000000{\r
-                        other{"¤0​សែន​កោដិ"}\r
+                        other{"¤000 ទ្រីលាន"}\r
                     }\r
                 }\r
                 decimalFormat{\r
@@ -116,37 +118,37 @@ km{
                         other{"0ពាន់"}\r
                     }\r
                     10000{\r
-                        other{"0​មឺុន"}\r
+                        other{"00 ពាន់"}\r
                     }\r
                     100000{\r
-                        other{"0សែន"}\r
+                        other{"000 ពាន់"}\r
                     }\r
                     1000000{\r
-                        other{"0លាន"}\r
+                        other{"0 លាន"}\r
                     }\r
                     10000000{\r
-                        other{"0​ដប់​លាន"}\r
+                        other{"0លាន"}\r
                     }\r
                     100000000{\r
-                        other{"0​រយលាន"}\r
+                        other{"000 លាន"}\r
                     }\r
                     1000000000{\r
-                        other{"0​កោដិ"}\r
+                        other{"0 ប៊ីលាន"}\r
                     }\r
                     10000000000{\r
-                        other{"0​ដប់​កោដិ"}\r
+                        other{"00 ប៊ីលាន"}\r
                     }\r
                     100000000000{\r
-                        other{"0​រយ​កោដិ"}\r
+                        other{"000 ប៊ីលាន"}\r
                     }\r
                     1000000000000{\r
-                        other{"0​ពាន់​កោដិ"}\r
+                        other{"0 ទ្រីលាន"}\r
                     }\r
                     10000000000000{\r
-                        other{"0​មឺុន​កោដិ"}\r
+                        other{"00 ទ្រីលាន"}\r
                     }\r
                     100000000000000{\r
-                        other{"0​សែន​កោដិ"}\r
+                        other{"000 ទ្រីលាន"}\r
                     }\r
                 }\r
             }\r
@@ -176,7 +178,7 @@ km{
         minimumGroupingDigits{"1"}\r
         native{"khmr"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.88"}\r
     calendar{\r
         generic{\r
             DateTimePatterns{\r
@@ -376,10 +378,10 @@ km{
                 Ed{"d E"}\r
                 Ehm{"E h:mm a"}\r
                 Ehms{"E h:mm:ss a"}\r
-                Gy{"y នៃ G"}\r
-                GyMMM{"MMM y នៃ G"}\r
-                GyMMMEd{"E d MMM y នៃ G"}\r
-                GyMMMd{"d MMM y នៃ G"}\r
+                Gy{"y G"}\r
+                GyMMM{"MMM y G"}\r
+                GyMMMEd{"E d MMM y G"}\r
+                GyMMMd{"d MMM y G"}\r
                 H{"HH"}\r
                 Hm{"HH:mm"}\r
                 Hms{"HH:mm:ss"}\r
@@ -420,10 +422,10 @@ km{
                 format{\r
                     abbreviated{\r
                         "អាទិត្យ",\r
-                        "á\9e\85á\9f\90á\9e\93á\9f\92á\9e\91",\r
+                        "ចន្ទ",\r
                         "អង្គារ",\r
                         "ពុធ",\r
-                        "ព្រហស្បតិ៍",\r
+                        "ព្រហ",\r
                         "សុក្រ",\r
                         "សៅរ៍",\r
                     }\r
@@ -458,10 +460,10 @@ km{
                 stand-alone{\r
                     abbreviated{\r
                         "អាទិត្យ",\r
-                        "á\9e\85á\9f\90á\9e\93á\9f\92á\9e\91",\r
+                        "ចន្ទ",\r
                         "អង្គារ",\r
                         "ពុធ",\r
-                        "ព្រហស្បតិ៍",\r
+                        "ព្រហ",\r
                         "សុក្រ",\r
                         "សៅរ៍",\r
                     }\r
@@ -485,7 +487,7 @@ km{
                     }\r
                     wide{\r
                         "អាទិត្យ",\r
-                        "á\9e\85á\9f\90á\9e\93á\9f\92á\9e\91",\r
+                        "ចន្ទ",\r
                         "អង្គារ",\r
                         "ពុធ",\r
                         "ព្រហស្បតិ៍",\r
@@ -497,27 +499,27 @@ km{
             dayPeriod{\r
                 format{\r
                     abbreviated{\r
-                        afternoon1{"រសៀល"}\r
-                        evening1{"ល្ងាច"}\r
+                        afternoon1{"á\9e\93á\9f\85á\9e\96á\9f\81á\9e\9bá\9e\9aá\9e\9fá\9f\80á\9e\9b"}\r
+                        evening1{"á\9e\93á\9f\85á\9e\96á\9f\81á\9e\9bâ\80\8bá\9e\9bá\9f\92á\9e\84á\9e¶á\9e\85"}\r
                         midnight{"អធ្រាត្រ"}\r
-                        morning1{"ព្រឹក"}\r
-                        night1{"យប់"}\r
+                        morning1{"á\9e\93á\9f\85á\9e\96á\9f\81á\9e\9bâ\80\8bá\9e\96á\9f\92á\9e\9aá\9e¹á\9e\80"}\r
+                        night1{"á\9e\93á\9f\85á\9e\96á\9f\81á\9e\9bâ\80\8bá\9e\99á\9e\94á\9f\8b"}\r
                         noon{"ថ្ងៃត្រង់"}\r
                     }\r
                     narrow{\r
-                        afternoon1{"រសៀល"}\r
-                        evening1{"ល្ងាច"}\r
+                        afternoon1{"á\9e\93á\9f\85á\9e\96á\9f\81á\9e\9bá\9e\9aá\9e\9fá\9f\80á\9e\9b"}\r
+                        evening1{"á\9e\93á\9f\85á\9e\96á\9f\81á\9e\9bâ\80\8bá\9e\9bá\9f\92á\9e\84á\9e¶á\9e\85"}\r
                         midnight{"អធ្រាត្រ"}\r
-                        morning1{"ព្រឹក"}\r
-                        night1{"យប់"}\r
+                        morning1{"á\9e\93á\9f\85á\9e\96á\9f\81á\9e\9bâ\80\8bá\9e\96á\9f\92á\9e\9aá\9e¹á\9e\80"}\r
+                        night1{"á\9e\93á\9f\85á\9e\96á\9f\81á\9e\9bâ\80\8bá\9e\99á\9e\94á\9f\8b"}\r
                         noon{"ថ្ងៃត្រង់"}\r
                     }\r
                     wide{\r
-                        afternoon1{"រសៀល"}\r
-                        evening1{"ល្ងាច"}\r
+                        afternoon1{"á\9e\93á\9f\85á\9e\96á\9f\81á\9e\9bá\9e\9aá\9e\9fá\9f\80á\9e\9b"}\r
+                        evening1{"á\9e\93á\9f\85á\9e\96á\9f\81á\9e\9bâ\80\8bá\9e\9bá\9f\92á\9e\84á\9e¶á\9e\85"}\r
                         midnight{"អធ្រាត្រ"}\r
-                        morning1{"ព្រឹក"}\r
-                        night1{"យប់"}\r
+                        morning1{"á\9e\93á\9f\85á\9e\96á\9f\81á\9e\9bâ\80\8bá\9e\96á\9f\92á\9e\9aá\9e¹á\9e\80"}\r
+                        night1{"á\9e\93á\9f\85á\9e\96á\9f\81á\9e\9bâ\80\8bá\9e\99á\9e\94á\9f\8b"}\r
                         noon{"ថ្ងៃត្រង់"}\r
                     }\r
                 }\r
index 28fe6e6f2fd476577ebd2d8c30aa7d47ffdca11d..8b5eba9430506fe55f987203f83d59cd35ab7c23 100644 (file)
@@ -47,7 +47,9 @@ kn{
         }\r
         latn{\r
             miscPatterns{\r
+                approximately{"~{0}"}\r
                 atLeast{"{0}+"}\r
+                atMost{"≤{0}"}\r
                 range{"{0}–{1}"}\r
             }\r
             patterns{\r
@@ -238,7 +240,7 @@ kn{
         minimumGroupingDigits{"1"}\r
         native{"knda"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.88"}\r
     calendar{\r
         buddhist{\r
             eras{\r
@@ -717,8 +719,8 @@ kn{
                 yQQQ{"QQQ y"}\r
                 yQQQQ{"QQQQ y"}\r
                 yw{\r
-                    one{"'week' w 'of' y"}\r
-                    other{"'week' w 'of' y"}\r
+                    one{"'week' w 'of' Y"}\r
+                    other{"'week' w 'of' Y"}\r
                 }\r
             }\r
             dayNames{\r
@@ -1543,9 +1545,9 @@ kn{
     characterLabel{\r
         activities{"ಚಟುವಟಿಕೆ"}\r
         african_scripts{"ಆಫ್ರಿಕಾದ ಲಿಪಿ"}\r
-        american_scripts{"à²\85ಮà³\87ರಿà²\95ಾದ à²²à²¿à²ªà²¿à²\97ಳà³\81"}\r
+        american_scripts{"à²\85ಮà³\87ರಿà²\95ನà³\8d à²²à²¿à²ªà²¿"}\r
         animal{"ಪ್ರಾಣಿ"}\r
-        animals_nature{"ಪà³\8dರಾಣಿà²\97ಳà³\81 à²®à²¤à³\8dತà³\81 ಪ್ರಕೃತಿ"}\r
+        animals_nature{"ಪà³\8dರಾಣಿà²\97ಳà³\81 à²\85ಥವಾ ಪ್ರಕೃತಿ"}\r
         arrows{"ಬಾಣ"}\r
         body{"ದೇಹ"}\r
         box_drawing{"ಬಾಕ್ಸ್ ಡ್ರಾಯಿಂಗ್"}\r
@@ -1554,7 +1556,7 @@ kn{
         bullets_stars{"ಬುಲೆಟ್ ಅಥವಾ ಸ್ಟಾರ್"}\r
         consonantal_jamo{"ವ್ಯಂಜನಗಳ ಜಮೊ"}\r
         currency_symbols{"ಕರೆನ್ಸಿ ಚಿಹ್ನೆ"}\r
-        dash_connector{"ಡ್ಯಾಶ್ / ಕನೆಕ್ಟರ್"}\r
+        dash_connector{"ಡ್ಯಾಶ್ ಅಥವಾ ಕನೆಕ್ಟರ್"}\r
         digits{"ಅಂಕಿ"}\r
         dingbats{"ಡಿಂಗ್‌ಬ್ಯಾಟ್"}\r
         divination_symbols{"ದೈವತ್ವದ ಚಿಹ್ನೆ"}\r
@@ -1607,9 +1609,9 @@ kn{
         place{"ಸ್ಥಳ"}\r
         plant{"ಗಿಡ"}\r
         punctuation{"ವಿರಾಮಚಿಹ್ನೆ"}\r
-        rightwards_arrows{"ಬಲಭಾಗದ ಬಾಣಗಳು"}\r
-        sign_standard_symbols{"ಸೈನ್ / ಸ್ಟ್ಯಾಂಡರ್ಡ್ ಚಿಹ್ನೆಗಳು"}\r
-        small_form_variant{"ಸà³\8dಮಾಲà³\8d à²«à²¾à²°à³\8dಮà³\8d à²µà³\87ರಿಯà²\82à²\9fà³\8dಸà³\8d"}\r
+        rightwards_arrows{"ಬಲಭಾಗದ ಬಾಣ"}\r
+        sign_standard_symbols{"ಸೈನ್ ಅಥವಾ ಚಿಹ್ನೆ"}\r
+        small_form_variant{"à²\9aಿà²\95à³\8dà²\95 à²°à³\82ಪಾà²\82ತರà²\97ಳà³\81"}\r
         smiley{"ಸ್ಮೈಲೀ"}\r
         smileys_people{"ಸ್ಮೈಲಿ ಅಥವಾ ವ್ಯಕ್ತಿ"}\r
         south_asian_scripts{"ದಕ್ಷಿಣ ಏಷಿಯಾದ ಲಿಪಿ"}\r
@@ -2514,8 +2516,13 @@ kn{
         general{\r
             lenient{\r
                 "[.․。︒﹒.。]",\r
+                "['ʼ՚᾽᾿’']",\r
+                "[%٪﹪%]",\r
+                "[؉‰]",\r
                 "[\$﹩$$]",\r
                 "[£₤]",\r
+                "[¥¥]",\r
+                "[₩₩]",\r
                 "[₨₹{Rp}{Rs}]",\r
             }\r
         }\r
index 6d38c94d563a9c632acf2008ef2aaba16d6ad654..392f7fbca261b6f83dfbab83b8f623cd3d1cc766 100644 (file)
@@ -51,7 +51,9 @@ ko{
         default{"latn"}\r
         latn{\r
             miscPatterns{\r
+                approximately{"~{0}"}\r
                 atLeast{"{0}+"}\r
+                atMost{"≤{0}"}\r
                 range{"{0}~{1}"}\r
             }\r
             patterns{\r
@@ -205,9 +207,24 @@ ko{
         minimumGroupingDigits{"1"}\r
         native{"latn"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.91"}\r
     calendar{\r
         buddhist{\r
+            availableFormats{\r
+                GyMMM{"G y년 MMM"}\r
+                GyMMMEEEEd{"G y년 MMM d일 EEEE"}\r
+                GyMMMEd{"G y년 MMM d일 (E)"}\r
+                GyMMMd{"G y년 MMM d일"}\r
+                MMMEEEEd{"MMM d일 EEEE"}\r
+                MMMEd{"MMM d일 (E)"}\r
+                MMMMd{"MMMM d일"}\r
+                MMMd{"MMM d일"}\r
+                yyyyMMM{"G y년 MMM"}\r
+                yyyyMMMEEEEd{"G y년 MMM d일 EEEE"}\r
+                yyyyMMMEd{"G y년 MMM d일 (E)"}\r
+                yyyyMMMM{"G y년 MMMM"}\r
+                yyyyMMMd{"G y년 MMM d일"}\r
+            }\r
             eras{\r
                 abbreviated{\r
                     "불기",\r
@@ -245,14 +262,14 @@ ko{
                 EBhms{"E B h:mm:ss"}\r
                 EEEEd{"d일 EEEE"}\r
                 Ed{"d일 (E)"}\r
-                Gy{"U년"}\r
-                GyMMM{"U년 MMM"}\r
-                GyMMMEEEEd{"U년 MMM d일 EEEE"}\r
-                GyMMMEd{"U년 MMM d일 (E)"}\r
-                GyMMMd{"U년 MMM d일"}\r
+                Gy{"r년(U년)"}\r
+                GyMMM{"r년(U년) MMM"}\r
+                GyMMMEEEEd{"r년(U년) MMM d일 EEEE"}\r
+                GyMMMEd{"r년(U년) MMM d일 (E)"}\r
+                GyMMMd{"r년 MMM d일"}\r
                 H{"H시"}\r
                 Hm{"HH:mm"}\r
-                Hms{"H시 m분 s초"}\r
+                Hms{"HH:mm:ss"}\r
                 M{"MMM"}\r
                 MEEEEd{"M. d. EEEE"}\r
                 MEd{"M. d. (E)"}\r
@@ -262,29 +279,29 @@ ko{
                 MMMMd{"MMMM d일"}\r
                 MMMd{"MMM d일"}\r
                 Md{"M. d."}\r
-                UM{"U MM"}\r
-                UMMM{"U MMM"}\r
-                UMMMd{"U MMM d"}\r
-                UMd{"U MM-d"}\r
+                UM{"U년 MMM"}\r
+                UMMM{"U MMM"}\r
+                UMMMd{"U년 MMM d일"}\r
+                UMd{"U년 M. d."}\r
                 d{"d일"}\r
                 h{"a h시"}\r
                 hm{"a h:mm"}\r
                 hms{"a h:mm:ss"}\r
                 ms{"mm:ss"}\r
-                y{"U년"}\r
-                yMd{"U. M. d."}\r
-                yyyy{"U년"}\r
-                yyyyM{"U. M."}\r
-                yyyyMEEEEd{"U. M. d. EEEE"}\r
-                yyyyMEd{"U. M. d. (E)"}\r
-                yyyyMMM{"U년 MMM"}\r
-                yyyyMMMEEEEd{"U년 MMM d일 EEEE"}\r
-                yyyyMMMEd{"U년 MMM d일 (E)"}\r
-                yyyyMMMM{"U년 MMMM"}\r
-                yyyyMMMd{"U년 MMM d일"}\r
-                yyyyMd{"U. M. d."}\r
-                yyyyQQQ{"U년 QQQ"}\r
-                yyyyQQQQ{"U년 QQQQ"}\r
+                y{"r년(U년)"}\r
+                yMd{"r. M. d."}\r
+                yyyy{"r년(U년)"}\r
+                yyyyM{"r. M."}\r
+                yyyyMEEEEd{"r. M. d. EEEE"}\r
+                yyyyMEd{"r. M. d. (E)"}\r
+                yyyyMMM{"r년(U년) MMM"}\r
+                yyyyMMMEEEEd{"r년(U년) MMM d일 EEEE"}\r
+                yyyyMMMEd{"r년(U년) MMM d일 (E)"}\r
+                yyyyMMMM{"r년(U년) MMMM"}\r
+                yyyyMMMd{"r년 MMM d일"}\r
+                yyyyMd{"r. M. d."}\r
+                yyyyQQQ{"r년(U년) QQQ"}\r
+                yyyyQQQQ{"r년(U년) QQQQ"}\r
             }\r
             cyclicNameSets{\r
                 solarTerms{\r
@@ -1671,6 +1688,21 @@ ko{
             }\r
         }\r
         japanese{\r
+            availableFormats{\r
+                GyMMM{"G y년 MMM"}\r
+                GyMMMEEEEd{"G y년 MMM d일 EEEE"}\r
+                GyMMMEd{"G y년 MMM d일 (E)"}\r
+                GyMMMd{"G y년 MMM d일"}\r
+                MMMEEEEd{"MMM d일 EEEE"}\r
+                MMMEd{"MMM d일 (E)"}\r
+                MMMMd{"MMMM d일"}\r
+                MMMd{"MMM d일"}\r
+                yyyyMMM{"G y년 MMM"}\r
+                yyyyMMMEEEEd{"G y년 MMM d일 EEEE"}\r
+                yyyyMMMEd{"G y년 MMM d일 (E)"}\r
+                yyyyMMMM{"G y년 MMMM"}\r
+                yyyyMMMd{"G y년 MMM d일"}\r
+            }\r
             eras{\r
                 abbreviated{\r
                     "다이카 (645 ~ 650)",\r
@@ -1909,6 +1941,7 @@ ko{
                     "다이쇼",\r
                     "쇼와",\r
                     "헤이세이",\r
+                    "Qqqq",\r
                 }\r
             }\r
         }\r
@@ -1977,6 +2010,21 @@ ko{
             }\r
         }\r
         roc{\r
+            availableFormats{\r
+                GyMMM{"G y년 MMM"}\r
+                GyMMMEEEEd{"G y년 MMM d일 EEEE"}\r
+                GyMMMEd{"G y년 MMM d일 (E)"}\r
+                GyMMMd{"G y년 MMM d일"}\r
+                MMMEEEEd{"MMM d일 EEEE"}\r
+                MMMEd{"MMM d일 (E)"}\r
+                MMMMd{"MMMM d일"}\r
+                MMMd{"MMM d일"}\r
+                yyyyMMM{"G y년 MMM"}\r
+                yyyyMMMEEEEd{"G y년 MMM d일 EEEE"}\r
+                yyyyMMMEd{"G y년 MMM d일 (E)"}\r
+                yyyyMMMM{"G y년 MMMM"}\r
+                yyyyMMMd{"G y년 MMM d일"}\r
+            }\r
             eras{\r
                 abbreviated{\r
                     "중화민국전",\r
@@ -2027,7 +2075,7 @@ ko{
         ideographic_desc_characters{"상형 설명 문자"}\r
         japanese_kana{"일본어 가나"}\r
         kanbun{"간분"}\r
-        kanji{"지"}\r
+        kanji{"지"}\r
         keycap{"키 캡"}\r
         leftwards_arrows{"왼쪽 방향 화살표"}\r
         leftwards_rightwards_arrows{"양방향 화살표"}\r
@@ -2815,8 +2863,13 @@ ko{
         general{\r
             lenient{\r
                 "[.․。︒﹒.。]",\r
+                "['ʼ՚᾽᾿’']",\r
+                "[%٪﹪%]",\r
+                "[؉‰]",\r
                 "[\$﹩$$]",\r
                 "[£₤]",\r
+                "[¥¥]",\r
+                "[₩₩]",\r
                 "[₨₹{Rp}{Rs}]",\r
             }\r
         }\r
index a4f6e0c7885af4ab51a1d434df95b046779bb506..4e7a5f77a4438c3dfd56b569df6b11dddd475ec8 100644 (file)
@@ -8,7 +8,15 @@ kok{
         "{ढ\u093C} ण त थ द ध न प फ {फ\u093C} ब भ म य {य\u093C} र ल व श ष स ह ळ ऽ ा ि "\r
         "ी \u0941 \u0942 \u0943 \u0944 \u0945 \u0947 \u0948 ॉ ो ौ \u094D]"\r
     }\r
+    ExemplarCharactersIndex{\r
+        "[अ आ इ ई उ ऊ ऋ ऌ ऍ ए ऐ ऑ ओ औ क ख ग घ ङ च छ ज झ ञ ट ठ ड ढ ण त थ द ध न प फ ब भ"\r
+        " म य र ल व श ष स ह ळ]"\r
+    }\r
     ExemplarCharactersNumbers{"[\\- , . % ‰ + 0० 1१ 2२ 3३ 4४ 5५ 6६ 7७ 8८ 9९]"}\r
+    ExemplarCharactersPunctuation{\r
+        "[\\- ‐ – — , ; \\: ! ? . … ' ‘ ’ \u0022 “ ” ( ) \\[ \\] § @ * / \\& # † ‡ ′ "\r
+        "″]"\r
+    }\r
     NumberElements{\r
         default{"latn"}\r
         deva{\r
@@ -28,7 +36,7 @@ kok{
         }\r
         latn{\r
             miscPatterns{\r
-                atLeast{"⩾{0}"}\r
+                atLeast{"â\89¥{0}"}\r
                 range{"{0}–{1}"}\r
             }\r
             patterns{\r
@@ -180,7 +188,7 @@ kok{
         minimumGroupingDigits{"1"}\r
         native{"deva"}\r
     }\r
-    Version{"2.1.38.69"}\r
+    Version{"2.1.44.88"}\r
     calendar{\r
         generic{\r
             DateTimePatterns{\r
@@ -198,8 +206,111 @@ kok{
                 "{1} {0}",\r
                 "{1} {0}",\r
             }\r
+            availableFormats{\r
+                Bh{"h B"}\r
+                Bhm{"h:mm B"}\r
+                Bhms{"h:mm:ss B"}\r
+                E{"ccc"}\r
+                EBhm{"E h:mm B"}\r
+                EBhms{"E h:mm:ss B"}\r
+                EHm{"E HH:mm"}\r
+                EHms{"E HH:mm:ss"}\r
+                Ed{"E, d"}\r
+                Ehm{"E h:mm a"}\r
+                Ehms{"E h:mm:ss a"}\r
+                Gy{"y G"}\r
+                GyMMM{"MMM y G"}\r
+                GyMMMEd{"E d, MMM y G"}\r
+                GyMMMd{"d MMM y G"}\r
+                H{"HH"}\r
+                Hm{"HH:mm"}\r
+                Hms{"HH:mm:ss"}\r
+                M{"L"}\r
+                MEd{"E, dd-MM"}\r
+                MMM{"LLL"}\r
+                MMMEd{"E d, MMM"}\r
+                MMMMd{"d MMMM"}\r
+                MMMd{"d MMM"}\r
+                Md{"dd-MM"}\r
+                d{"d"}\r
+                h{"h a"}\r
+                hm{"h:mm a"}\r
+                hms{"h:mm:ss a"}\r
+                ms{"mm:ss"}\r
+                y{"y G"}\r
+                yyyy{"y G"}\r
+                yyyyM{"MM-y GGGG"}\r
+                yyyyMEd{"E, d/M/y GGGGG"}\r
+                yyyyMMM{"MMM y G"}\r
+                yyyyMMMEd{"E, d MMM y G"}\r
+                yyyyMMMM{"MMMM y G"}\r
+                yyyyMMMd{"d MMM y G"}\r
+                yyyyMd{"d/M/y GGGGG"}\r
+                yyyyQQQ{"QQQ y G"}\r
+                yyyyQQQQ{"QQQQ y G"}\r
+            }\r
             intervalFormats{\r
+                M{\r
+                    M{"MM–MM"}\r
+                }\r
+                MEd{\r
+                    M{"E, dd-MM, E dd-MM"}\r
+                    d{"E, d/M – E, d/M"}\r
+                }\r
+                MMM{\r
+                    M{"MMM–MMM"}\r
+                }\r
+                MMMEd{\r
+                    M{"E, d MMM – E, d MMM"}\r
+                    d{"E, d MMM – E, d MMM"}\r
+                }\r
+                MMMd{\r
+                    M{"d MMM – d MMM"}\r
+                    d{"d–d MMM"}\r
+                }\r
+                Md{\r
+                    M{"d/M – d/M"}\r
+                    d{"d/M–d/M"}\r
+                }\r
+                d{\r
+                    d{"d–d"}\r
+                }\r
                 fallback{"{0} – {1}"}\r
+                y{\r
+                    y{"y–y G"}\r
+                }\r
+                yM{\r
+                    M{"M/y – M/y GGGGG"}\r
+                    y{"M/y – M/y GGGGG"}\r
+                }\r
+                yMEd{\r
+                    M{"E, d/M/y – E, d/M/y GGGGG"}\r
+                    d{"E, d/M/y – E, d/M/y GGGGG"}\r
+                    y{"E, d/M/y – E, d/M/y GGGGG"}\r
+                }\r
+                yMMM{\r
+                    M{"MMM–MMM y G"}\r
+                    y{"MMM y G – MMM y"}\r
+                }\r
+                yMMMEd{\r
+                    M{"E, d, MMM y – E, d, MMM y G"}\r
+                    d{"E, d MMM – E, d MMM, yG"}\r
+                    y{"E, d, MMM y – E, d, MMM y G"}\r
+                }\r
+                yMMMM{\r
+                    M{"MMMM – MMMM y G"}\r
+                    y{"MMMM y – MMMM y G"}\r
+                }\r
+                yMMMd{\r
+                    M{"d MMM – d MMM, y G"}\r
+                    d{"d–d MMM, y G"}\r
+                    y{"d, MMM y – d, MMM y G"}\r
+                }\r
+                yMd{\r
+                    M{"d/M/y – d/M/y GGGGG"}\r
+                    d{"d/M/y – d/M/y GGGGG"}\r
+                    y{"d/M/y – d/M/y GGGGG"}\r
+                }\r
             }\r
         }\r
         gregorian{\r
@@ -282,7 +393,7 @@ kok{
                 yQQQ{"y QQQ"}\r
                 yQQQQ{"y QQQQ"}\r
                 yw{\r
-                    other{"'week' w 'of' y"}\r
+                    other{"'week' w 'of' Y"}\r
                 }\r
             }\r
             dayNames{\r
index 8faca4e5de439e8f2bc887b09b5abbce7162e9e6..c81b77bd79ffd1b7902879e1a01aa190a0cba1b9 100644 (file)
@@ -32,7 +32,7 @@ ks{
         }\r
         native{"arabext"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.41.34"}\r
     calendar{\r
         generic{\r
             DateTimePatterns{\r
index bcc7fd6e823fdf2a5d07e2152aab47c31dcb0afa..293bf146c104f8cf1982047d1d46d98e9100bcea 100644 (file)
@@ -161,7 +161,7 @@ ksh{
         }\r
         native{"latn"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.41.34"}\r
     calendar{\r
         buddhist{\r
             DateTimePatterns{\r
diff --git a/source/data/locales/ku.txt b/source/data/locales/ku.txt
new file mode 100644 (file)
index 0000000..d3c9458
--- /dev/null
@@ -0,0 +1,474 @@
+// © 2016 and later: Unicode, Inc. and others.\r
+// License & terms of use: http://www.unicode.org/copyright.html#License\r
+ku{\r
+    AuxExemplarCharacters{"[á à ă â å ä ã ā æ é è ĕ ë ē í ì ĭ ï ī ñ ó ò ŏ ô ø ō œ ß ú ù ŭ ū ÿ]"}\r
+    Ellipsis{\r
+        final{"{0}…"}\r
+        initial{"…{0}"}\r
+        medial{"{0}…{1}"}\r
+        word-final{"{0} …"}\r
+        word-initial{"… {0}"}\r
+        word-medial{"{0} … {1}"}\r
+    }\r
+    ExemplarCharacters{"[a b c ç d e ê f g h i î j k l m n o p q r s ş t u û v w x y z]"}\r
+    ExemplarCharactersIndex{"[A B C Ç D E Ê F G H I Î J K L M N O P Q R S Ş T U Û V W X Y Z]"}\r
+    ExemplarCharactersPunctuation{\r
+        "[\\- ‐ – — , ; \\: ! ? . … ' ‘ ’ \u0022 “ ” ( ) \\[ \\] § @ * / \\& # † ‡ ′ "\r
+        "″]"\r
+    }\r
+    MoreInformation{"?"}\r
+    NumberElements{\r
+        default{"latn"}\r
+        latn{\r
+            miscPatterns{\r
+                atLeast{"≥{0}"}\r
+                range{"{0}–{1}"}\r
+            }\r
+            patterns{\r
+                accountingFormat{"#,##0.00 ¤;(#,##0.00 ¤)"}\r
+                currencyFormat{"#,##0.00 ¤"}\r
+                decimalFormat{"#,##0.###"}\r
+                percentFormat{"%#,##0"}\r
+                scientificFormat{"#E0"}\r
+            }\r
+            symbols{\r
+                decimal{","}\r
+                exponential{"E"}\r
+                group{"."}\r
+                infinity{"∞"}\r
+                minusSign{"-"}\r
+                nan{"NaN"}\r
+                perMille{"‰"}\r
+                percentSign{"%"}\r
+                plusSign{"+"}\r
+                superscriptingExponent{"×"}\r
+            }\r
+        }\r
+        minimalPairs{\r
+            plural{\r
+                one{"rojek"}\r
+                other{"{0} roj"}\r
+            }\r
+        }\r
+        minimumGroupingDigits{"1"}\r
+        native{"latn"}\r
+    }\r
+    Version{"2.1.44.82"}\r
+    calendar{\r
+        generic{\r
+            DateTimePatterns{\r
+                "HH:mm:ss zzzz",\r
+                "HH:mm:ss z",\r
+                "HH:mm:ss",\r
+                "HH:mm",\r
+                "G y MMMM d, EEEE",\r
+                "G y MMMM d",\r
+                "G y MMM d",\r
+                "GGGGG y-MM-dd",\r
+                "{1} {0}",\r
+                "{1} {0}",\r
+                "{1} {0}",\r
+                "{1} {0}",\r
+                "{1} {0}",\r
+            }\r
+            availableFormats{\r
+                E{"ccc"}\r
+                d{"d"}\r
+            }\r
+        }\r
+        gregorian{\r
+            dayNames{\r
+                format{\r
+                    abbreviated{\r
+                        "yş",\r
+                        "dş",\r
+                        "sş",\r
+                        "çş",\r
+                        "pş",\r
+                        "în",\r
+                        "ş",\r
+                    }\r
+                    narrow{\r
+                        "Y",\r
+                        "D",\r
+                        "S",\r
+                        "Ç",\r
+                        "P",\r
+                        "Î",\r
+                        "Ş",\r
+                    }\r
+                    short{\r
+                        "yş",\r
+                        "dş",\r
+                        "sş",\r
+                        "çş",\r
+                        "pş",\r
+                        "în",\r
+                        "ş",\r
+                    }\r
+                    wide{\r
+                        "yekşem",\r
+                        "duşem",\r
+                        "sêşem",\r
+                        "çarşem",\r
+                        "pêncşem",\r
+                        "în",\r
+                        "şemî",\r
+                    }\r
+                }\r
+                stand-alone{\r
+                    abbreviated{\r
+                        "yş",\r
+                        "dş",\r
+                        "sş",\r
+                        "çş",\r
+                        "pş",\r
+                        "în",\r
+                        "ş",\r
+                    }\r
+                    narrow{\r
+                        "Y",\r
+                        "D",\r
+                        "S",\r
+                        "Ç",\r
+                        "P",\r
+                        "Î",\r
+                        "Ş",\r
+                    }\r
+                    short{\r
+                        "yş",\r
+                        "dş",\r
+                        "sş",\r
+                        "çş",\r
+                        "pş",\r
+                        "în",\r
+                        "ş",\r
+                    }\r
+                    wide{\r
+                        "yekşem",\r
+                        "duşem",\r
+                        "sêşem",\r
+                        "çarşem",\r
+                        "pêncşem",\r
+                        "în",\r
+                        "şemî",\r
+                    }\r
+                }\r
+            }\r
+            eras{\r
+                abbreviated{\r
+                    "BZ",\r
+                    "PZ",\r
+                }\r
+                wide{\r
+                    "berî zayînê",\r
+                    "piştî zayînê",\r
+                }\r
+            }\r
+            intervalFormats{\r
+                H{\r
+                    H{"HH–HH"}\r
+                }\r
+                Hm{\r
+                    H{"HH:mm–HH:mm"}\r
+                    m{"HH:mm–HH:mm"}\r
+                }\r
+                Hmv{\r
+                    H{"HH:mm–HH:mm v"}\r
+                    m{"HH:mm–HH:mm v"}\r
+                }\r
+                Hv{\r
+                    H{"HH–HH v"}\r
+                }\r
+                fallback{"{0} – {1}"}\r
+            }\r
+            monthNames{\r
+                format{\r
+                    abbreviated{\r
+                        "rêb",\r
+                        "reş",\r
+                        "ada",\r
+                        "avr",\r
+                        "gul",\r
+                        "pûş",\r
+                        "tîr",\r
+                        "gel",\r
+                        "rez",\r
+                        "kew",\r
+                        "ser",\r
+                        "ber",\r
+                    }\r
+                    narrow{\r
+                        "R",\r
+                        "R",\r
+                        "A",\r
+                        "A",\r
+                        "G",\r
+                        "P",\r
+                        "T",\r
+                        "G",\r
+                        "R",\r
+                        "K",\r
+                        "S",\r
+                        "B",\r
+                    }\r
+                    wide{\r
+                        "rêbendanê",\r
+                        "reşemiyê",\r
+                        "adarê",\r
+                        "avrêlê",\r
+                        "gulanê",\r
+                        "pûşperê",\r
+                        "tîrmehê",\r
+                        "gelawêjê",\r
+                        "rezberê",\r
+                        "kewçêrê",\r
+                        "sermawezê",\r
+                        "berfanbarê",\r
+                    }\r
+                }\r
+                stand-alone{\r
+                    abbreviated{\r
+                        "rêb",\r
+                        "reş",\r
+                        "ada",\r
+                        "avr",\r
+                        "gul",\r
+                        "pûş",\r
+                        "tîr",\r
+                        "gel",\r
+                        "rez",\r
+                        "kew",\r
+                        "ser",\r
+                        "ber",\r
+                    }\r
+                    narrow{\r
+                        "R",\r
+                        "R",\r
+                        "A",\r
+                        "A",\r
+                        "G",\r
+                        "P",\r
+                        "T",\r
+                        "G",\r
+                        "R",\r
+                        "K",\r
+                        "S",\r
+                        "B",\r
+                    }\r
+                    wide{\r
+                        "rêbendan",\r
+                        "reşemî",\r
+                        "adar",\r
+                        "avrêl",\r
+                        "gulan",\r
+                        "pûşper",\r
+                        "tîrmeh",\r
+                        "gelawêj",\r
+                        "rezber",\r
+                        "kewçêr",\r
+                        "sermawez",\r
+                        "berfanbar",\r
+                    }\r
+                }\r
+            }\r
+            quarters{\r
+                format{\r
+                    abbreviated{\r
+                        "Ç1",\r
+                        "Ç2",\r
+                        "Ç3",\r
+                        "Ç4",\r
+                    }\r
+                    narrow{\r
+                        "1",\r
+                        "2",\r
+                        "3",\r
+                        "4",\r
+                    }\r
+                }\r
+                stand-alone{\r
+                    abbreviated{\r
+                        "Ç1",\r
+                        "Ç2",\r
+                        "Ç3",\r
+                        "Ç4",\r
+                    }\r
+                    narrow{\r
+                        "1",\r
+                        "2",\r
+                        "3",\r
+                        "4",\r
+                    }\r
+                }\r
+            }\r
+        }\r
+    }\r
+    characterLabel{\r
+        animal{"heywan"}\r
+        animals_nature{"heywan an xweza"}\r
+    }\r
+    delimiters{\r
+        alternateQuotationEnd{"’"}\r
+        alternateQuotationStart{"‘"}\r
+        quotationEnd{"”"}\r
+        quotationStart{"“"}\r
+    }\r
+    fields{\r
+        day{\r
+            dn{"roj"}\r
+            relative{\r
+                "-1"{"duh"}\r
+                "0"{"îro"}\r
+                "1"{"sibe"}\r
+            }\r
+        }\r
+        day-narrow{\r
+            dn{"r."}\r
+        }\r
+        day-short{\r
+            dn{"r."}\r
+        }\r
+        era{\r
+            dn{"serdem"}\r
+        }\r
+        hour{\r
+            dn{"saet"}\r
+        }\r
+        hour-narrow{\r
+            dn{"st."}\r
+        }\r
+        hour-short{\r
+            dn{"st."}\r
+        }\r
+        minute{\r
+            dn{"deqîqe"}\r
+        }\r
+        minute-narrow{\r
+            dn{"d."}\r
+        }\r
+        minute-short{\r
+            dn{"d."}\r
+        }\r
+        month{\r
+            dn{"meh"}\r
+        }\r
+        month-narrow{\r
+            dn{"m."}\r
+        }\r
+        month-short{\r
+            dn{"m."}\r
+        }\r
+        quarter{\r
+            dn{"çarêk"}\r
+        }\r
+        quarter-narrow{\r
+            dn{"çrk."}\r
+        }\r
+        quarter-short{\r
+            dn{"çrk."}\r
+        }\r
+        second{\r
+            dn{"saniye"}\r
+        }\r
+        second-narrow{\r
+            dn{"s."}\r
+        }\r
+        second-short{\r
+            dn{"s."}\r
+        }\r
+        week{\r
+            dn{"hefte"}\r
+        }\r
+        week-narrow{\r
+            dn{"hf."}\r
+        }\r
+        week-short{\r
+            dn{"hf."}\r
+        }\r
+        year{\r
+            dn{"sal"}\r
+            relative{\r
+                "-1"{"par"}\r
+                "0"{"îsal"}\r
+                "1"{"sala piştî"}\r
+            }\r
+        }\r
+        year-narrow{\r
+            dn{"sl"}\r
+        }\r
+        year-short{\r
+            dn{"sal"}\r
+        }\r
+    }\r
+    listPattern{\r
+        or{\r
+            2{"{0} an {1}"}\r
+            end{"{0} an {1}"}\r
+            middle{"{0}, {1}"}\r
+            start{"{0}, {1}"}\r
+        }\r
+        standard{\r
+            2{"{0} û {1}"}\r
+            end{"{0} û {1}"}\r
+            middle{"{0}, {1}"}\r
+            start{"{0}, {1}"}\r
+        }\r
+        standard-short{\r
+            2{"{0} û {1}"}\r
+            end{"{0} û {1}"}\r
+            middle{"{0}, {1}"}\r
+            start{"{0}, {1}"}\r
+        }\r
+        unit{\r
+            2{"{0} û {1}"}\r
+            end{"{0} û {1}"}\r
+            middle{"{0}, {1}"}\r
+            start{"{0}, {1}"}\r
+        }\r
+        unit-narrow{\r
+            2{"{0} {1}"}\r
+            end{"{0} {1}"}\r
+            middle{"{0} {1}"}\r
+            start{"{0} {1}"}\r
+        }\r
+        unit-short{\r
+            2{"{0} û {1}"}\r
+            end{"{0} û {1}"}\r
+            middle{"{0}, {1}"}\r
+            start{"{0}, {1}"}\r
+        }\r
+    }\r
+    parse{\r
+        date{\r
+            lenient{\r
+                "[\\--/]",\r
+                "[\\:∶]",\r
+            }\r
+        }\r
+        general{\r
+            lenient{\r
+                "[.․。︒﹒.。]",\r
+                "['ʼ՚᾽᾿’']",\r
+                "[%٪﹪%]",\r
+                "[؉‰]",\r
+                "[\$﹩$$]",\r
+                "[£₤]",\r
+                "[¥¥]",\r
+                "[₩₩]",\r
+                "[₨₹{Rp}{Rs}]",\r
+            }\r
+        }\r
+        number{\r
+            lenient{\r
+                "[\\-‒⁻₋−➖﹣-]",\r
+                "[,،٫、︐︑﹐﹑,、]",\r
+                "[+⁺₊➕﬩﹢+]",\r
+            }\r
+            stricter{\r
+                "[,٫︐﹐,]",\r
+                "[.․﹒.。]",\r
+            }\r
+        }\r
+    }\r
+}\r
diff --git a/source/data/locales/ku_TR.txt b/source/data/locales/ku_TR.txt
new file mode 100644 (file)
index 0000000..6307c34
--- /dev/null
@@ -0,0 +1,5 @@
+// © 2016 and later: Unicode, Inc. and others.\r
+// License & terms of use: http://www.unicode.org/copyright.html#License\r
+ku_TR{\r
+    Version{"2.1.44.82"}\r
+}\r
index 57748127ce35652b7cb58a98d444ca19f4b87082..57ccd1409526ea6b4b0dfbff5b317e2ccc6590df 100644 (file)
@@ -9,7 +9,7 @@ kw{
             }\r
         }\r
     }\r
-    Version{"2.1.38.69"}\r
+    Version{"2.1.43.65"}\r
     calendar{\r
         gregorian{\r
             AmPmMarkers{\r
index 26e742509d14c6243d8042546d1d13b172ecd16e..7077ae36d521caceeb48e9ed910955bee14797ca 100644 (file)
@@ -10,7 +10,7 @@ ky{
         word-initial{"… {0}"}\r
         word-medial{"{0} … {1}"}\r
     }\r
-    ExemplarCharacters{"[а б г д е ё ж з и й к л м н ӊ о ө п р с т у ү х ч ш ъ ы э ю я]"}\r
+    ExemplarCharacters{"[а б г д е ё ж з и й к л м н ң о ө п р с т у ү х ч ш ъ ы э ю я]"}\r
     ExemplarCharactersIndex{"[А Б В Г Д Е Ё Ж З И Й К Л М Н Ң О Ө П Р С Т У Ү Ф Х Ц Ч Ш Щ Ъ Ы Ь Э Ю Я]"}\r
     ExemplarCharactersNumbers{"[  \\- , % ‰ + 0 1 2 3 4 5 6 7 8 9]"}\r
     ExemplarCharactersPunctuation{\r
@@ -22,7 +22,9 @@ ky{
         default{"latn"}\r
         latn{\r
             miscPatterns{\r
+                approximately{"~{0}"}\r
                 atLeast{"{0}+"}\r
+                atMost{"≤{0}"}\r
                 range{"{0}–{1}"}\r
             }\r
             patterns{\r
@@ -35,16 +37,16 @@ ky{
             patternsLong{\r
                 decimalFormat{\r
                     1000{\r
-                        one{"0 миӊ"}\r
-                        other{"0 миӊ"}\r
+                        one{"0 миң"}\r
+                        other{"0 миң"}\r
                     }\r
                     10000{\r
-                        one{"00 миӊ"}\r
-                        other{"00 миӊ"}\r
+                        one{"00 миң"}\r
+                        other{"00 миң"}\r
                     }\r
                     100000{\r
-                        one{"000 миӊ"}\r
-                        other{"000 миӊ"}\r
+                        one{"000 миң"}\r
+                        other{"000 миң"}\r
                     }\r
                     1000000{\r
                         one{"0 миллион"}\r
@@ -87,16 +89,16 @@ ky{
             patternsShort{\r
                 currencyFormat{\r
                     1000{\r
-                        one{"0 миӊ ¤"}\r
-                        other{"0 миӊ ¤"}\r
+                        one{"0 миң ¤"}\r
+                        other{"0 миң ¤"}\r
                     }\r
                     10000{\r
-                        one{"00 миӊ ¤"}\r
-                        other{"00 миӊ ¤"}\r
+                        one{"00 миң ¤"}\r
+                        other{"00 миң ¤"}\r
                     }\r
                     100000{\r
-                        one{"000 миӊ ¤"}\r
-                        other{"000 миӊ ¤"}\r
+                        one{"000 миң ¤"}\r
+                        other{"000 миң ¤"}\r
                     }\r
                     1000000{\r
                         one{"0 млн ¤"}\r
@@ -137,16 +139,16 @@ ky{
                 }\r
                 decimalFormat{\r
                     1000{\r
-                        one{"0 миӊ"}\r
-                        other{"0 миӊ"}\r
+                        one{"0 миң"}\r
+                        other{"0 миң"}\r
                     }\r
                     10000{\r
-                        one{"00 миӊ"}\r
-                        other{"00 миӊ"}\r
+                        one{"00 миң"}\r
+                        other{"00 миң"}\r
                     }\r
                     100000{\r
-                        one{"000 миӊ"}\r
-                        other{"000 миӊ"}\r
+                        one{"000 миң"}\r
+                        other{"000 миң"}\r
                     }\r
                     1000000{\r
                         one{"0 млн"}\r
@@ -212,7 +214,7 @@ ky{
         minimumGroupingDigits{"1"}\r
         native{"latn"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.65"}\r
     calendar{\r
         generic{\r
             DateTimePatterns{\r
@@ -274,6 +276,20 @@ ky{
                 yyyyQQQQ{"G y-'ж'. QQQQ"}\r
             }\r
             intervalFormats{\r
+                H{\r
+                    H{"HH–HH"}\r
+                }\r
+                Hm{\r
+                    H{"HH:mm–HH:mm"}\r
+                    m{"HH:mm–HH:mm"}\r
+                }\r
+                Hmv{\r
+                    H{"HH:mm–HH:mm v"}\r
+                    m{"HH:mm–HH:mm v"}\r
+                }\r
+                Hv{\r
+                    H{"HH–HH v"}\r
+                }\r
                 M{\r
                     M{"M–M"}\r
                 }\r
@@ -300,6 +316,9 @@ ky{
                     d{"d–d"}\r
                 }\r
                 fallback{"{0} - {1}"}\r
+                hmv{\r
+                    m{"h:mm–h:mm a v"}\r
+                }\r
                 y{\r
                     y{"y-'ж'.–y-'ж'. G"}\r
                 }\r
@@ -443,13 +462,13 @@ ky{
                         "И",\r
                     }\r
                     short{\r
-                        "жек.",\r
-                        "дүй.",\r
-                        "шейш.",\r
-                        "шарш.",\r
-                        "бейш.",\r
-                        "жума",\r
-                        "ишм.",\r
+                        "жш.",\r
+                        "дш.",\r
+                        "шш.",\r
+                        "шр.",\r
+                        "бш.",\r
+                        "жм.",\r
+                        "иш.",\r
                     }\r
                     wide{\r
                         "жекшемби",\r
@@ -481,7 +500,7 @@ ky{
                         "И",\r
                     }\r
                     short{\r
-                        "жк",\r
+                        "жш.",\r
                         "дш.",\r
                         "шш.",\r
                         "шр.",\r
@@ -904,7 +923,7 @@ ky{
                 "-1"{"кечээ"}\r
                 "-2"{"мурдагы күнү"}\r
                 "0"{"бүгүн"}\r
-                "1"{"эртеӊ"}\r
+                "1"{"эртең"}\r
                 "2"{"бүрсүгүнү"}\r
             }\r
             relativeTime{\r
@@ -924,7 +943,7 @@ ky{
                 "-1"{"кечээ"}\r
                 "-2"{"мурдагы күнү"}\r
                 "0"{"бүгүн"}\r
-                "1"{"эртеӊ"}\r
+                "1"{"эртең"}\r
                 "2"{"бүрсүгүнү"}\r
             }\r
             relativeTime{\r
@@ -944,7 +963,7 @@ ky{
                 "-1"{"кечээ"}\r
                 "-2"{"мурдагы күнү"}\r
                 "0"{"бүгүн"}\r
-                "1"{"эртеӊ"}\r
+                "1"{"эртең"}\r
                 "2"{"бүрсүгүнү"}\r
             }\r
             relativeTime{\r
@@ -971,10 +990,10 @@ ky{
             dn{"ТЧ/ТК"}\r
         }\r
         dayperiod-narrow{\r
-            dn{"ТЧ/ТК"}\r
+            dn{"тң/тк"}\r
         }\r
         dayperiod-short{\r
-            dn{"ТЧ/ТК"}\r
+            dn{"тң/тк"}\r
         }\r
         era{\r
             dn{"заман"}\r
@@ -1767,4 +1786,36 @@ ky{
         US{"АКШ"}\r
         metric{"Метрикалык өлчөө тутуму"}\r
     }\r
+    parse{\r
+        date{\r
+            lenient{\r
+                "[\\--/]",\r
+                "[\\:∶]",\r
+            }\r
+        }\r
+        general{\r
+            lenient{\r
+                "[.․。︒﹒.。]",\r
+                "['ʼ՚᾽᾿’']",\r
+                "[%٪﹪%]",\r
+                "[؉‰]",\r
+                "[\$﹩$$]",\r
+                "[£₤]",\r
+                "[¥¥]",\r
+                "[₩₩]",\r
+                "[₨₹{Rp}{Rs}]",\r
+            }\r
+        }\r
+        number{\r
+            lenient{\r
+                "[\\-‒⁻₋−➖﹣-]",\r
+                "[,،٫、︐︑﹐﹑,、]",\r
+                "[+⁺₊➕﬩﹢+]",\r
+            }\r
+            stricter{\r
+                "[,٫︐﹐,]",\r
+                "[.․﹒.。]",\r
+            }\r
+        }\r
+    }\r
 }\r
index 9887831743750d947a8d934f99c5687fcb598dd9..140839fb417884e0f228a35808b20d51bb7b9a80 100644 (file)
@@ -25,7 +25,7 @@ lb{
         default{"latn"}\r
         latn{\r
             miscPatterns{\r
-                atLeast{"⩾ {0}"}\r
+                atLeast{"â\89¥ {0}"}\r
                 range{"{0}–{1}"}\r
             }\r
             patterns{\r
@@ -156,7 +156,7 @@ lb{
         minimumGroupingDigits{"1"}\r
         native{"latn"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.91"}\r
     calendar{\r
         buddhist{\r
             eras{\r
index 254db275c5edc01211f18ca6962592b513b99917..0c65aa3df51e8864bd8198fcd5906c10949c59fc 100644 (file)
@@ -111,7 +111,9 @@ lo{
         }\r
         latn{\r
             miscPatterns{\r
+                approximately{"~{0}"}\r
                 atLeast{"{0}+"}\r
+                atMost{"≤{0}"}\r
                 range{"{0}–{1}"}\r
             }\r
             patterns{\r
@@ -266,7 +268,7 @@ lo{
         minimumGroupingDigits{"1"}\r
         native{"laoo"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.50"}\r
     calendar{\r
         chinese{\r
             DateTimePatterns{\r
@@ -1845,6 +1847,7 @@ lo{
                     "ໄຕໂຊ",\r
                     "ໂຊວາ",\r
                     "ຮີຊີ",\r
+                    "Qqqq",\r
                 }\r
             }\r
         }\r
index 3a3ad97edcdf2c03918ad1d68b79dd1a9b38bb5c..ee598cfae16533cfad1a1d23a9a92f2f122f4061 100644 (file)
@@ -31,7 +31,7 @@ lrc{
         }\r
         native{"arabext"}\r
     }\r
-    Version{"2.1.38.69"}\r
+    Version{"2.1.43.65"}\r
     calendar{\r
         default{"persian"}\r
         generic{\r
@@ -78,6 +78,66 @@ lrc{
                 "{1} {0}",\r
                 "{1} {0}",\r
             }\r
+            dayNames{\r
+                format{\r
+                    abbreviated{\r
+                        "Sun",\r
+                        "Mon",\r
+                        "Tue",\r
+                        "Wed",\r
+                        "Thu",\r
+                        "Fri",\r
+                        "Sat",\r
+                    }\r
+                    narrow{\r
+                        "S",\r
+                        "M",\r
+                        "T",\r
+                        "W",\r
+                        "T",\r
+                        "F",\r
+                        "S",\r
+                    }\r
+                    wide{\r
+                        "Sun",\r
+                        "Mon",\r
+                        "Tue",\r
+                        "Wed",\r
+                        "Thu",\r
+                        "Fri",\r
+                        "Sat",\r
+                    }\r
+                }\r
+                stand-alone{\r
+                    abbreviated{\r
+                        "Sun",\r
+                        "Mon",\r
+                        "Tue",\r
+                        "Wed",\r
+                        "Thu",\r
+                        "Fri",\r
+                        "Sat",\r
+                    }\r
+                    narrow{\r
+                        "S",\r
+                        "M",\r
+                        "T",\r
+                        "W",\r
+                        "T",\r
+                        "F",\r
+                        "S",\r
+                    }\r
+                    wide{\r
+                        "Sun",\r
+                        "Mon",\r
+                        "Tue",\r
+                        "Wed",\r
+                        "Thu",\r
+                        "Fri",\r
+                        "Sat",\r
+                    }\r
+                }\r
+            }\r
             eras{\r
                 abbreviated{\r
                     "BCE",\r
index e093f631aa59592449b192010f89ea5b0e311d6e..3f699108d4166f88c3f9157fb3da6dcd3df4de3b 100644 (file)
@@ -25,7 +25,9 @@ lt{
         default{"latn"}\r
         latn{\r
             miscPatterns{\r
-                atLeast{"⩾{0}"}\r
+                approximately{"~{0}"}\r
+                atLeast{"≥{0}"}\r
+                atMost{"≤{0}"}\r
                 range{"{0}–{1}"}\r
             }\r
             patterns{\r
@@ -290,7 +292,7 @@ lt{
         minimumGroupingDigits{"1"}\r
         native{"latn"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.91"}\r
     calendar{\r
         buddhist{\r
             eras{\r
@@ -2466,6 +2468,7 @@ lt{
                     "Taišo",\r
                     "Šova",\r
                     "Heisei",\r
+                    "Qqqq",\r
                 }\r
             }\r
         }\r
@@ -3733,8 +3736,13 @@ lt{
         general{\r
             lenient{\r
                 "[.․。︒﹒.。]",\r
+                "['ʼ՚᾽᾿’']",\r
+                "[%٪﹪%]",\r
+                "[؉‰]",\r
                 "[\$﹩$$]",\r
                 "[£₤]",\r
+                "[¥¥]",\r
+                "[₩₩]",\r
                 "[₨₹{Rp}{Rs}]",\r
             }\r
         }\r
index 650424a92f047b007ff4e451acda6042c3a30bc0..79d1fb6e1e93fd3daf91a882b23e42d483021d7d 100644 (file)
@@ -22,7 +22,9 @@ lv{
         default{"latn"}\r
         latn{\r
             miscPatterns{\r
-                atLeast{"⩾{0}"}\r
+                approximately{"~{0}"}\r
+                atLeast{"≥{0}"}\r
+                atMost{"≤{0}"}\r
                 range{"{0}–{1}"}\r
             }\r
             patterns{\r
@@ -134,29 +136,29 @@ lv{
                         zero{"0 mljrd'.' ¤"}\r
                     }\r
                     10000000000{\r
-                        one{"¤00 mljrd'.'"}\r
-                        other{"¤00 mljrd'.'"}\r
-                        zero{"¤00 mljrd'.'"}\r
+                        one{"00 mljrd'.' ¤"}\r
+                        other{"00 mljrd'.' ¤"}\r
+                        zero{"00 mljrd'.' ¤"}\r
                     }\r
                     100000000000{\r
-                        one{"¤000 mljrd'.'"}\r
-                        other{"¤000 mljrd'.'"}\r
-                        zero{"¤000 mljrd'.'"}\r
+                        one{"000 mljrd'.' ¤"}\r
+                        other{"000 mljrd'.' ¤"}\r
+                        zero{"000 mljrd'.' ¤"}\r
                     }\r
                     1000000000000{\r
-                        one{"¤0 trilj'.'"}\r
-                        other{"¤0 trilj'.'"}\r
-                        zero{"¤0 trilj'.'"}\r
+                        one{"0 trilj'.' ¤"}\r
+                        other{"0 trilj'.' ¤"}\r
+                        zero{"0 trilj'.' ¤"}\r
                     }\r
                     10000000000000{\r
-                        one{"¤00 trilj'.'"}\r
-                        other{"¤00 trilj'.'"}\r
-                        zero{"¤00 trilj'.'"}\r
+                        one{"00 trilj'.' ¤"}\r
+                        other{"00 trilj'.' ¤"}\r
+                        zero{"00 trilj'.' ¤"}\r
                     }\r
                     100000000000000{\r
-                        one{"¤000 trilj'.'"}\r
-                        other{"¤000 trilj'.'"}\r
-                        zero{"¤000 trilj'.'"}\r
+                        one{"000 trilj'.' ¤"}\r
+                        other{"000 trilj'.' ¤"}\r
+                        zero{"000 trilj'.' ¤"}\r
                     }\r
                 }\r
                 decimalFormat{\r
@@ -250,7 +252,7 @@ lv{
         minimumGroupingDigits{"2"}\r
         native{"latn"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.91"}\r
     calendar{\r
         buddhist{\r
             eras{\r
@@ -438,7 +440,7 @@ lv{
                 "EEEE, y. 'gada' d. MMMM G",\r
                 "y. 'gada' d. MMMM G",\r
                 "y. 'gada' d. MMM G",\r
-                "dd.MM.y GGGGG",\r
+                "dd.MM.y. GGGGG",\r
                 "{1}, {0}",\r
                 "{1} 'plkst'. {0}",\r
                 "{1} 'plkst'. {0}",\r
@@ -486,7 +488,7 @@ lv{
                 yyyyMMMM{"y. 'g'. MMMM G"}\r
                 yyyyMMMd{"y. 'g'. d. MMM G"}\r
                 yyyyMd{"d.MM.y. G"}\r
-                yyyyQQQ{"QQQ y G"}\r
+                yyyyQQQ{"y. 'g'. QQQ G"}\r
                 yyyyQQQQ{"y. 'gada' QQQQ G"}\r
             }\r
             intervalFormats{\r
@@ -508,8 +510,8 @@ lv{
                     M{"MM–MM"}\r
                 }\r
                 MEd{\r
-                    M{"E, dd.MM–E, dd.MM"}\r
-                    d{"E, dd.MM–E, dd.MM"}\r
+                    M{"E, dd.MM.–E, dd.MM."}\r
+                    d{"E, dd.MM.–E, dd.MM."}\r
                 }\r
                 MMM{\r
                     M{"MMM–MMM"}\r
@@ -523,7 +525,7 @@ lv{
                     d{"d.–d. MMM"}\r
                 }\r
                 Md{\r
-                    M{"dd.MM–dd.MM"}\r
+                    M{"dd.MM.–dd.MM."}\r
                     d{"dd.MM.–dd.MM."}\r
                 }\r
                 d{\r
@@ -845,8 +847,8 @@ lv{
                     M{"MM.–MM."}\r
                 }\r
                 MEd{\r
-                    M{"E, dd.MM – E, dd.MM"}\r
-                    d{"E, dd.MM – E, dd.MM"}\r
+                    M{"E, dd.MM. – E, dd.MM."}\r
+                    d{"E, dd.MM. – E, dd.MM."}\r
                 }\r
                 MMM{\r
                     M{"LLL–LLL"}\r
@@ -860,7 +862,7 @@ lv{
                     d{"d.–d. MMM"}\r
                 }\r
                 Md{\r
-                    M{"dd.MM–dd.MM"}\r
+                    M{"dd.MM.–dd.MM."}\r
                     d{"dd.MM.–dd.MM."}\r
                 }\r
                 d{\r
@@ -1379,7 +1381,7 @@ lv{
         flags{"karogi"}\r
         food_drink{"ēdieni un dzērieni"}\r
         format{"formāts"}\r
-        format_whitespace{"formāts un baltstarpas rakstzīme"}\r
+        format_whitespace{"formatēšanas un nedrukājama rakstzīme"}\r
         full_width_form_variant{"pilna platuma formu varianti"}\r
         geometric_shapes{"ģeometriskās figūras"}\r
         half_width_form_variant{"pusplatuma formu varianti"}\r
@@ -1437,7 +1439,7 @@ lv{
         vocalic_jamo{"skanīgie džamo"}\r
         weather{"laikapstākļi"}\r
         western_asian_scripts{"Rietumāzijas rakstības"}\r
-        whitespace{"baltstarpa"}\r
+        whitespace{"nedrukājama rakstzīme"}\r
     }\r
     delimiters{\r
         alternateQuotationEnd{"’"}\r
@@ -1552,13 +1554,13 @@ lv{
             }\r
             relativeTime{\r
                 future{\r
-                    one{"pēc {0} piektdienas"}\r
-                    other{"pēc {0} piektdienām"}\r
+                    one{"pēc {0} piektd."}\r
+                    other{"pēc {0} piektd."}\r
                     zero{"pēc {0} piektdienām"}\r
                 }\r
                 past{\r
-                    one{"pirms {0} piektdienas"}\r
-                    other{"pirms {0} piektdienām"}\r
+                    one{"pirms {0} piektd."}\r
+                    other{"pirms {0} piektd."}\r
                     zero{"pirms {0} piektdienām"}\r
                 }\r
             }\r
@@ -1571,13 +1573,13 @@ lv{
             }\r
             relativeTime{\r
                 future{\r
-                    one{"pēc {0} piektdienas"}\r
-                    other{"pēc {0} piektdienām"}\r
+                    one{"pēc {0} piektd."}\r
+                    other{"pēc {0} piektd."}\r
                     zero{"pēc {0} piektdienām"}\r
                 }\r
                 past{\r
-                    one{"pirms {0} piektdienas"}\r
-                    other{"pirms {0} piektdienām"}\r
+                    one{"pirms {0} piektd."}\r
+                    other{"pirms {0} piektd."}\r
                     zero{"pirms {0} piektdienām"}\r
                 }\r
             }\r
@@ -1705,13 +1707,13 @@ lv{
             }\r
             relativeTime{\r
                 future{\r
-                    one{"pēc {0} pirmdienas"}\r
-                    other{"pēc {0} pirmdienām"}\r
+                    one{"pēc {0} pirmd."}\r
+                    other{"pēc {0} pirmd."}\r
                     zero{"pēc {0} pirmdienām"}\r
                 }\r
                 past{\r
-                    one{"pirms {0} pirmdienas"}\r
-                    other{"pirms {0} pirmdienām"}\r
+                    one{"pirms {0} pirmd."}\r
+                    other{"pirms {0} pirmd."}\r
                     zero{"pirms {0} pirmdienām"}\r
                 }\r
             }\r
@@ -1724,13 +1726,13 @@ lv{
             }\r
             relativeTime{\r
                 future{\r
-                    one{"pēc {0} pirmdienas"}\r
-                    other{"pēc {0} pirmdienām"}\r
+                    one{"pēc {0} pirmd."}\r
+                    other{"pēc {0} pirmd."}\r
                     zero{"pēc {0} pirmdienām"}\r
                 }\r
                 past{\r
-                    one{"pirms {0} pirmdienas"}\r
-                    other{"pirms {0} pirmdienām"}\r
+                    one{"pirms {0} pirmd."}\r
+                    other{"pirms {0} pirmd."}\r
                     zero{"pirms {0} pirmdienām"}\r
                 }\r
             }\r
@@ -1862,13 +1864,13 @@ lv{
             }\r
             relativeTime{\r
                 future{\r
-                    one{"pēc {0} sestdienas"}\r
-                    other{"pēc {0} sestdienām"}\r
+                    one{"pēc {0} sestd."}\r
+                    other{"pēc {0} sestd."}\r
                     zero{"pēc {0} sestdienām"}\r
                 }\r
                 past{\r
-                    one{"pirms {0} sestdienas"}\r
-                    other{"pirms {0} sestdienām"}\r
+                    one{"pirms {0} sestd."}\r
+                    other{"pirms {0} sestd."}\r
                     zero{"pirms {0} sestdienām"}\r
                 }\r
             }\r
@@ -1881,13 +1883,13 @@ lv{
             }\r
             relativeTime{\r
                 future{\r
-                    one{"pēc {0} sestdienas"}\r
-                    other{"pēc {0} sestdienām"}\r
+                    one{"pēc {0} sestd."}\r
+                    other{"pēc {0} sestd."}\r
                     zero{"pēc {0} sestdienām"}\r
                 }\r
                 past{\r
-                    one{"pirms {0} sestdienas"}\r
-                    other{"pirms {0} sestdienām"}\r
+                    one{"pirms {0} sestd."}\r
+                    other{"pirms {0} sestd."}\r
                     zero{"pirms {0} sestdienām"}\r
                 }\r
             }\r
@@ -1967,13 +1969,13 @@ lv{
             }\r
             relativeTime{\r
                 future{\r
-                    one{"pēc {0} svētdienas"}\r
-                    other{"pēc {0} svētdienām"}\r
+                    one{"pēc {0} svētd."}\r
+                    other{"pēc {0} svētd."}\r
                     zero{"pēc {0} svētdienām"}\r
                 }\r
                 past{\r
-                    one{"pirms {0} svētdienas"}\r
-                    other{"pirms {0} svētdienām"}\r
+                    one{"pirms {0} svētd."}\r
+                    other{"pirms {0} svētd."}\r
                     zero{"pirms {0} svētdienām"}\r
                 }\r
             }\r
@@ -1986,13 +1988,13 @@ lv{
             }\r
             relativeTime{\r
                 future{\r
-                    one{"pēc {0} svētdienas"}\r
-                    other{"pēc {0} svētdienām"}\r
+                    one{"pēc {0} svētd."}\r
+                    other{"pēc {0} svētd."}\r
                     zero{"pēc {0} svētdienām"}\r
                 }\r
                 past{\r
-                    one{"pirms {0} svētdienas"}\r
-                    other{"pirms {0} svētdienām"}\r
+                    one{"pirms {0} svētd."}\r
+                    other{"pirms {0} svētd."}\r
                     zero{"pirms {0} svētdienām"}\r
                 }\r
             }\r
@@ -2024,13 +2026,13 @@ lv{
             }\r
             relativeTime{\r
                 future{\r
-                    one{"pēc {0} ceturtdienas"}\r
-                    other{"pēc {0} ceturtdienām"}\r
+                    one{"pēc {0} ceturtd."}\r
+                    other{"pēc {0} ceturtd."}\r
                     zero{"pēc {0} ceturtdienām"}\r
                 }\r
                 past{\r
-                    one{"pirms {0} ceturtdienas"}\r
-                    other{"pirms {0} ceturtdienām"}\r
+                    one{"pirms {0} ceturtd."}\r
+                    other{"pirms {0} ceturtd."}\r
                     zero{"pirms {0} ceturtdienām"}\r
                 }\r
             }\r
@@ -2043,13 +2045,13 @@ lv{
             }\r
             relativeTime{\r
                 future{\r
-                    one{"pēc {0} ceturtdienas"}\r
-                    other{"pēc {0} ceturtdienām"}\r
+                    one{"pēc {0} ceturtd."}\r
+                    other{"pēc {0} ceturtd."}\r
                     zero{"pēc {0} ceturtdienām"}\r
                 }\r
                 past{\r
-                    one{"pirms {0} ceturtdienas"}\r
-                    other{"pirms {0} ceturtdienām"}\r
+                    one{"pirms {0} ceturtd."}\r
+                    other{"pirms {0} ceturtd."}\r
                     zero{"pirms {0} ceturtdienām"}\r
                 }\r
             }\r
@@ -2081,13 +2083,13 @@ lv{
             }\r
             relativeTime{\r
                 future{\r
-                    one{"pēc {0} otrdienas"}\r
-                    other{"pēc {0} otrdienām"}\r
+                    one{"pēc {0} otrd."}\r
+                    other{"pēc {0} otrd."}\r
                     zero{"pēc {0} otrdienām"}\r
                 }\r
                 past{\r
-                    one{"pirms {0} otrdienas"}\r
-                    other{"pirms {0} otrdienām"}\r
+                    one{"pirms {0} otrd."}\r
+                    other{"pirms {0} otrd."}\r
                     zero{"pirms {0} otrdienām"}\r
                 }\r
             }\r
@@ -2100,13 +2102,13 @@ lv{
             }\r
             relativeTime{\r
                 future{\r
-                    one{"pēc {0} otrdienas"}\r
-                    other{"pēc {0} otrdienām"}\r
+                    one{"pēc {0} otrd."}\r
+                    other{"pēc {0} otrd."}\r
                     zero{"pēc {0} otrdienām"}\r
                 }\r
                 past{\r
-                    one{"pirms {0} otrdienas"}\r
-                    other{"pirms {0} otrdienām"}\r
+                    one{"pirms {0} otrd."}\r
+                    other{"pirms {0} otrd."}\r
                     zero{"pirms {0} otrdienām"}\r
                 }\r
             }\r
@@ -2138,13 +2140,13 @@ lv{
             }\r
             relativeTime{\r
                 future{\r
-                    one{"pēc {0} trešdienas"}\r
-                    other{"pēc {0} trešdienām"}\r
+                    one{"pēc {0} trešd."}\r
+                    other{"pēc {0} trešd."}\r
                     zero{"pēc {0} trešdienām"}\r
                 }\r
                 past{\r
-                    one{"pirms {0} trešdienas"}\r
-                    other{"pirms {0} trešdienām"}\r
+                    one{"pirms {0} trešd."}\r
+                    other{"pirms {0} trešd."}\r
                     zero{"pirms {0} trešdienām"}\r
                 }\r
             }\r
@@ -2157,13 +2159,13 @@ lv{
             }\r
             relativeTime{\r
                 future{\r
-                    one{"pēc {0} trešdienas"}\r
-                    other{"pēc {0} trešdienām"}\r
+                    one{"pēc {0} trešd."}\r
+                    other{"pēc {0} trešd."}\r
                     zero{"pēc {0} trešdienām"}\r
                 }\r
                 past{\r
-                    one{"pirms {0} trešdienas"}\r
-                    other{"pirms {0} trešdienām"}\r
+                    one{"pirms {0} trešd."}\r
+                    other{"pirms {0} trešd."}\r
                     zero{"pirms {0} trešdienām"}\r
                 }\r
             }\r
@@ -2361,8 +2363,13 @@ lv{
         general{\r
             lenient{\r
                 "[.․。︒﹒.。]",\r
+                "['ʼ՚᾽᾿’']",\r
+                "[%٪﹪%]",\r
+                "[؉‰]",\r
                 "[\$﹩$$]",\r
                 "[£₤]",\r
+                "[¥¥]",\r
+                "[₩₩]",\r
                 "[₨₹{Rp}{Rs}]",\r
             }\r
         }\r
index 37f50e954ecbed6e416e56f3df8a48256b84bd1b..7dcf8019c0715d89431ab8eb5ac5126089d2ca87 100644 (file)
@@ -8,7 +8,7 @@ mg{
     NumberElements{\r
         latn{\r
             miscPatterns{\r
-                atLeast{"⩾{0}"}\r
+                atLeast{"â\89¥{0}"}\r
                 range{"{0}–{1}"}\r
             }\r
             patterns{\r
@@ -33,7 +33,7 @@ mg{
         }\r
         minimumGroupingDigits{"1"}\r
     }\r
-    Version{"2.1.39.11"}\r
+    Version{"2.1.43.94"}\r
     calendar{\r
         generic{\r
             DateTimePatterns{\r
diff --git a/source/data/locales/mi.txt b/source/data/locales/mi.txt
new file mode 100644 (file)
index 0000000..8f78430
--- /dev/null
@@ -0,0 +1,616 @@
+// © 2016 and later: Unicode, Inc. and others.\r
+// License & terms of use: http://www.unicode.org/copyright.html#License\r
+mi{\r
+    AuxExemplarCharacters{"[b c d f g j l q s v x y z]"}\r
+    ExemplarCharacters{"[a ā e ē h i ī k m n {ng} o ō p r t u ū w {wh}]"}\r
+    ExemplarCharactersIndex{"[A E H I K M N O P R T U W]"}\r
+    NumberElements{\r
+        default{"latn"}\r
+        latn{\r
+            miscPatterns{\r
+                atLeast{"≥{0}"}\r
+                range{"{0}–{1}"}\r
+            }\r
+            patterns{\r
+                accountingFormat{"¤ #,##0.00"}\r
+                currencyFormat{"¤ #,##0.00"}\r
+                decimalFormat{"#,##0.###"}\r
+                percentFormat{"#,##0%"}\r
+                scientificFormat{"#E0"}\r
+            }\r
+            patternsLong{\r
+                decimalFormat{\r
+                    1000{\r
+                        other{"0K"}\r
+                    }\r
+                    10000{\r
+                        other{"00K"}\r
+                    }\r
+                    100000{\r
+                        other{"000K"}\r
+                    }\r
+                    1000000{\r
+                        other{"0M"}\r
+                    }\r
+                    10000000{\r
+                        other{"00M"}\r
+                    }\r
+                    100000000{\r
+                        other{"000M"}\r
+                    }\r
+                    1000000000{\r
+                        other{"0G"}\r
+                    }\r
+                    10000000000{\r
+                        other{"00G"}\r
+                    }\r
+                    100000000000{\r
+                        other{"000G"}\r
+                    }\r
+                    1000000000000{\r
+                        other{"0T"}\r
+                    }\r
+                    10000000000000{\r
+                        other{"00T"}\r
+                    }\r
+                    100000000000000{\r
+                        other{"000T"}\r
+                    }\r
+                }\r
+            }\r
+            patternsShort{\r
+                currencyFormat{\r
+                    1000{\r
+                        other{"¤ 0K"}\r
+                    }\r
+                    10000{\r
+                        other{"¤ 00K"}\r
+                    }\r
+                    100000{\r
+                        other{"¤ 000K"}\r
+                    }\r
+                    1000000{\r
+                        other{"¤ 0M"}\r
+                    }\r
+                    10000000{\r
+                        other{"¤ 00M"}\r
+                    }\r
+                    100000000{\r
+                        other{"¤ 000M"}\r
+                    }\r
+                    1000000000{\r
+                        other{"¤ 0G"}\r
+                    }\r
+                    10000000000{\r
+                        other{"¤ 00G"}\r
+                    }\r
+                    100000000000{\r
+                        other{"¤ 000G"}\r
+                    }\r
+                    1000000000000{\r
+                        other{"¤ 0T"}\r
+                    }\r
+                    10000000000000{\r
+                        other{"¤ 00T"}\r
+                    }\r
+                    100000000000000{\r
+                        other{"¤ 000T"}\r
+                    }\r
+                }\r
+                decimalFormat{\r
+                    1000{\r
+                        other{"0K"}\r
+                    }\r
+                    10000{\r
+                        other{"00K"}\r
+                    }\r
+                    100000{\r
+                        other{"000K"}\r
+                    }\r
+                    1000000{\r
+                        other{"0M"}\r
+                    }\r
+                    10000000{\r
+                        other{"00M"}\r
+                    }\r
+                    100000000{\r
+                        other{"000M"}\r
+                    }\r
+                    1000000000{\r
+                        other{"0G"}\r
+                    }\r
+                    10000000000{\r
+                        other{"00G"}\r
+                    }\r
+                    100000000000{\r
+                        other{"000G"}\r
+                    }\r
+                    1000000000000{\r
+                        other{"0T"}\r
+                    }\r
+                    10000000000000{\r
+                        other{"00T"}\r
+                    }\r
+                    100000000000000{\r
+                        other{"000T"}\r
+                    }\r
+                }\r
+            }\r
+            symbols{\r
+                decimal{"."}\r
+                exponential{"E"}\r
+                group{","}\r
+                infinity{"∞"}\r
+                minusSign{"-"}\r
+                nan{"NaN"}\r
+                perMille{"‰"}\r
+                percentSign{"%"}\r
+                plusSign{"+"}\r
+                superscriptingExponent{"×"}\r
+            }\r
+        }\r
+        minimumGroupingDigits{"1"}\r
+        native{"latn"}\r
+    }\r
+    Version{"2.1.44.15"}\r
+    calendar{\r
+        generic{\r
+            DateTimePatterns{\r
+                "h:mm:ss a zzzz",\r
+                "h:mm:ss a z",\r
+                "h:mm:ss",\r
+                "h:mm",\r
+                "G y MMMM d, EEEE",\r
+                "G y MMMM d",\r
+                "G y MMM d",\r
+                "GGGGG y-MM-dd",\r
+                "{1} {0}",\r
+                "{1} {0}",\r
+                "{1} {0}",\r
+                "{1} {0}",\r
+                "{1} {0}",\r
+            }\r
+            intervalFormats{\r
+                M{\r
+                    M{"MM–MM"}\r
+                }\r
+                MEd{\r
+                    M{"MM-dd, E – MM-dd, E"}\r
+                    d{"MM-dd, E – MM-dd, E"}\r
+                }\r
+                MMM{\r
+                    M{"LLL–LLL"}\r
+                }\r
+                MMMEd{\r
+                    M{"MMM d, E – MMM d, E"}\r
+                    d{"MMM d, E – MMM d, E"}\r
+                }\r
+                MMMd{\r
+                    M{"MMM d – MMM d"}\r
+                    d{"MMM d–d"}\r
+                }\r
+                Md{\r
+                    M{"MM-dd – MM-dd"}\r
+                    d{"MM-dd – MM-dd"}\r
+                }\r
+                d{\r
+                    d{"d–d"}\r
+                }\r
+                fallback{"{0} ki te {1}"}\r
+                y{\r
+                    y{"G y–y"}\r
+                }\r
+                yM{\r
+                    M{"GGGGG y-MM – y-MM"}\r
+                    y{"GGGGG y-MM – y-MM"}\r
+                }\r
+                yMEd{\r
+                    M{"GGGGG y-MM-dd, E – y-MM-dd, E"}\r
+                    d{"GGGGG y-MM-dd, E – y-MM-dd, E"}\r
+                    y{"GGGGG y-MM-dd, E – y-MM-dd, E"}\r
+                }\r
+                yMMM{\r
+                    M{"G y MMM–MMM"}\r
+                    y{"G y MMM – y MMM"}\r
+                }\r
+                yMMMEd{\r
+                    M{"G y MMM d, E – MMM d, E"}\r
+                    d{"G y MMM d, E – MMM d, E"}\r
+                    y{"G y MMM d, E – y MMM d, E"}\r
+                }\r
+                yMMMM{\r
+                    M{"G y MMMM–MMMM"}\r
+                    y{"G y MMMM – y MMMM"}\r
+                }\r
+                yMMMd{\r
+                    M{"G y MMM d – MMM d"}\r
+                    d{"G y MMM d–d"}\r
+                    y{"G y MMM d – y MMM d"}\r
+                }\r
+                yMd{\r
+                    M{"GGGGG y-MM-dd – y-MM-dd"}\r
+                    d{"GGGGG y-MM-dd – y-MM-dd"}\r
+                    y{"GGGGG y-MM-dd – y-MM-dd"}\r
+                }\r
+            }\r
+        }\r
+        gregorian{\r
+            AmPmMarkers{\r
+                "AM",\r
+                "PM",\r
+            }\r
+            AmPmMarkersAbbr{\r
+                "AM",\r
+                "PM",\r
+            }\r
+            AmPmMarkersNarrow{\r
+                "AM",\r
+                "PM",\r
+            }\r
+            DateTimePatterns{\r
+                "h:mm:ss a zzzz",\r
+                "h:mm:ss a z",\r
+                "h:mm:ss",\r
+                "h:mm",\r
+                "y MMMM d, EEEE",\r
+                "y MMMM d",\r
+                "y MMM d",\r
+                "y-MM-dd",\r
+                "{1} {0}",\r
+                "{1} {0}",\r
+                "{1} {0}",\r
+                "{1} {0}",\r
+                "{1} {0}",\r
+            }\r
+            dayNames{\r
+                format{\r
+                    abbreviated{\r
+                        "Tap",\r
+                        "Hin",\r
+                        "Tū",\r
+                        "Apa",\r
+                        "Par",\r
+                        "Mer",\r
+                        "Hor",\r
+                    }\r
+                    narrow{\r
+                        "T",\r
+                        "H",\r
+                        "T",\r
+                        "A",\r
+                        "P",\r
+                        "M",\r
+                        "H",\r
+                    }\r
+                    short{\r
+                        "Tap",\r
+                        "Hin",\r
+                        "Tū",\r
+                        "Apa",\r
+                        "Par",\r
+                        "Mer",\r
+                        "Hor",\r
+                    }\r
+                    wide{\r
+                        "Rātapu",\r
+                        "Rāhina",\r
+                        "Rātū",\r
+                        "Rāapa",\r
+                        "Rāpare",\r
+                        "Rāmere",\r
+                        "Rāhoroi",\r
+                    }\r
+                }\r
+                stand-alone{\r
+                    abbreviated{\r
+                        "Tap",\r
+                        "Hin",\r
+                        "Tū",\r
+                        "Apa",\r
+                        "Par",\r
+                        "Mer",\r
+                        "Hor",\r
+                    }\r
+                    narrow{\r
+                        "T",\r
+                        "H",\r
+                        "T",\r
+                        "A",\r
+                        "P",\r
+                        "M",\r
+                        "H",\r
+                    }\r
+                    short{\r
+                        "Tap",\r
+                        "Hin",\r
+                        "Tū",\r
+                        "Apa",\r
+                        "Par",\r
+                        "Mer",\r
+                        "Hor",\r
+                    }\r
+                    wide{\r
+                        "Rātapu",\r
+                        "Rāhina",\r
+                        "Rātū",\r
+                        "Rāapa",\r
+                        "Rāpare",\r
+                        "Rāmere",\r
+                        "Rāhoroi",\r
+                    }\r
+                }\r
+            }\r
+            dayPeriod{\r
+                stand-alone{\r
+                    abbreviated{\r
+                        am{"AM"}\r
+                        pm{"PM"}\r
+                    }\r
+                    narrow{\r
+                        am{"AM"}\r
+                        pm{"PM"}\r
+                    }\r
+                    wide{\r
+                        am{"AM"}\r
+                        pm{"PM"}\r
+                    }\r
+                }\r
+            }\r
+            eras{\r
+                abbreviated{\r
+                    "BCE",\r
+                    "CE",\r
+                }\r
+                wide{\r
+                    "BCE",\r
+                    "CE",\r
+                }\r
+            }\r
+            intervalFormats{\r
+                fallback{"{0} ki te {1}"}\r
+            }\r
+            monthNames{\r
+                format{\r
+                    abbreviated{\r
+                        "Kohi",\r
+                        "Hui",\r
+                        "Pou",\r
+                        "Pae",\r
+                        "Hara",\r
+                        "Pipi",\r
+                        "Hōngo",\r
+                        "Here",\r
+                        "Mahu",\r
+                        "Nuku",\r
+                        "Rangi",\r
+                        "Haki",\r
+                    }\r
+                    narrow{\r
+                        "K",\r
+                        "H",\r
+                        "P",\r
+                        "P",\r
+                        "H",\r
+                        "P",\r
+                        "H",\r
+                        "H",\r
+                        "M",\r
+                        "N",\r
+                        "R",\r
+                        "H",\r
+                    }\r
+                    wide{\r
+                        "Kohitātea",\r
+                        "Huitanguru",\r
+                        "Poutūterangi",\r
+                        "Paengawhāwhā",\r
+                        "Haratua",\r
+                        "Pipiri",\r
+                        "Hōngongoi",\r
+                        "Hereturikōkā",\r
+                        "Mahuru",\r
+                        "Whiringa-ā-nuku",\r
+                        "Whiringa-ā-rangi",\r
+                        "Hakihea",\r
+                    }\r
+                }\r
+                stand-alone{\r
+                    abbreviated{\r
+                        "Kohi",\r
+                        "Hui",\r
+                        "Pou",\r
+                        "Pae",\r
+                        "Hara",\r
+                        "Pipi",\r
+                        "Hōngo",\r
+                        "Here",\r
+                        "Mahu",\r
+                        "Nuku",\r
+                        "Rangi",\r
+                        "Haki",\r
+                    }\r
+                    narrow{\r
+                        "K",\r
+                        "H",\r
+                        "P",\r
+                        "P",\r
+                        "H",\r
+                        "P",\r
+                        "H",\r
+                        "H",\r
+                        "M",\r
+                        "N",\r
+                        "R",\r
+                        "H",\r
+                    }\r
+                    wide{\r
+                        "Kohitātea",\r
+                        "Huitanguru",\r
+                        "Poutūterangi",\r
+                        "Paengawhāwhā",\r
+                        "Haratua",\r
+                        "Pipiri",\r
+                        "Hōngongoi",\r
+                        "Hereturikōkā",\r
+                        "Mahuru",\r
+                        "Whiringa-ā-nuku",\r
+                        "Whiringa-ā-rangi",\r
+                        "Hakihea",\r
+                    }\r
+                }\r
+            }\r
+            quarters{\r
+                format{\r
+                    abbreviated{\r
+                        "HW1",\r
+                        "HW2",\r
+                        "HW3",\r
+                        "HW4",\r
+                    }\r
+                    narrow{\r
+                        "1",\r
+                        "2",\r
+                        "3",\r
+                        "4",\r
+                    }\r
+                    wide{\r
+                        "Hauwhā tuatahi",\r
+                        "Hauwhā tuarua",\r
+                        "Hauwhā tuatoru",\r
+                        "Hauwhā tuawhā",\r
+                    }\r
+                }\r
+                stand-alone{\r
+                    abbreviated{\r
+                        "HW1",\r
+                        "HW2",\r
+                        "HW3",\r
+                        "HW4",\r
+                    }\r
+                    narrow{\r
+                        "1",\r
+                        "2",\r
+                        "3",\r
+                        "4",\r
+                    }\r
+                    wide{\r
+                        "Hauwhā tuatahi",\r
+                        "Hauwhā tuarua",\r
+                        "Hauwhā tuatoru",\r
+                        "Hauwhā tuawhā",\r
+                    }\r
+                }\r
+            }\r
+        }\r
+    }\r
+    delimiters{\r
+        alternateQuotationEnd{"’"}\r
+        alternateQuotationStart{"‘"}\r
+        quotationEnd{"”"}\r
+        quotationStart{"“"}\r
+    }\r
+    fields{\r
+        day{\r
+            dn{"rā"}\r
+            relative{\r
+                "-1"{"inanahi"}\r
+                "0"{"āianei"}\r
+                "1"{"āpōpō"}\r
+            }\r
+        }\r
+        day-narrow{\r
+            dn{"rā"}\r
+        }\r
+        day-short{\r
+            dn{"rā"}\r
+        }\r
+        dayperiod{\r
+            dn{"AM/PM"}\r
+        }\r
+        era{\r
+            dn{"wā"}\r
+        }\r
+        hour{\r
+            dn{"hāora"}\r
+        }\r
+        hour-narrow{\r
+            dn{"hr"}\r
+        }\r
+        hour-short{\r
+            dn{"hr"}\r
+        }\r
+        minute{\r
+            dn{"meneti"}\r
+        }\r
+        minute-narrow{\r
+            dn{"men"}\r
+        }\r
+        minute-short{\r
+            dn{"men"}\r
+        }\r
+        month{\r
+            dn{"marama"}\r
+        }\r
+        month-narrow{\r
+            dn{"m"}\r
+        }\r
+        month-short{\r
+            dn{"m"}\r
+        }\r
+        quarter{\r
+            dn{"hauwhā"}\r
+        }\r
+        quarter-narrow{\r
+            dn{"hw"}\r
+        }\r
+        quarter-short{\r
+            dn{"hw"}\r
+        }\r
+        second{\r
+            dn{"hēkona"}\r
+        }\r
+        second-narrow{\r
+            dn{"hēk"}\r
+        }\r
+        second-short{\r
+            dn{"hēk"}\r
+        }\r
+        week{\r
+            dn{"wiki"}\r
+        }\r
+        week-narrow{\r
+            dn{"w"}\r
+        }\r
+        week-short{\r
+            dn{"w"}\r
+        }\r
+        weekday{\r
+            dn{"rā o te wiki"}\r
+        }\r
+        year{\r
+            dn{"tau"}\r
+        }\r
+        year-narrow{\r
+            dn{"t"}\r
+        }\r
+        year-short{\r
+            dn{"t"}\r
+        }\r
+        zone{\r
+            dn{"rohe wā"}\r
+        }\r
+    }\r
+    listPattern{\r
+        standard{\r
+            2{"{0}, {1}"}\r
+            end{"{0}, {1}"}\r
+            middle{"{0}, {1}"}\r
+            start{"{0}, {1}"}\r
+        }\r
+    }\r
+    measurementSystemNames{\r
+        UK{"UK"}\r
+        US{"US"}\r
+        metric{"Ngahuru"}\r
+    }\r
+}\r
diff --git a/source/data/locales/mi_NZ.txt b/source/data/locales/mi_NZ.txt
new file mode 100644 (file)
index 0000000..cbc8f00
--- /dev/null
@@ -0,0 +1,5 @@
+// © 2016 and later: Unicode, Inc. and others.\r
+// License & terms of use: http://www.unicode.org/copyright.html#License\r
+mi_NZ{\r
+    Version{"2.1.44.15"}\r
+}\r
index fd5e759d098597d3033efee599dda3098c4dbc47..0dac45befcfb14d1e561e31d293bbcbdb7dc07e1 100644 (file)
@@ -19,7 +19,9 @@ mk{
         default{"latn"}\r
         latn{\r
             miscPatterns{\r
+                approximately{"~{0}"}\r
                 atLeast{"{0}+"}\r
+                atMost{"≤{0}"}\r
                 range{"{0}–{1}"}\r
             }\r
             patterns{\r
@@ -213,7 +215,7 @@ mk{
         minimumGroupingDigits{"1"}\r
         native{"latn"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.65"}\r
     calendar{\r
         buddhist{\r
             DateTimePatterns{\r
@@ -2416,6 +2418,11 @@ mk{
         }\r
         quarter-narrow{\r
             dn{"тромес."}\r
+            relative{\r
+                "-1"{"последното тромесечје"}\r
+                "0"{"ова тромесечје"}\r
+                "1"{"следното тромесечје"}\r
+            }\r
             relativeTime{\r
                 future{\r
                     one{"за {0} тромес."}\r
@@ -2429,6 +2436,11 @@ mk{
         }\r
         quarter-short{\r
             dn{"тромес."}\r
+            relative{\r
+                "-1"{"последното тромесечје"}\r
+                "0"{"ова тромесечје"}\r
+                "1"{"следното тромесечје"}\r
+            }\r
             relativeTime{\r
                 future{\r
                     one{"за {0} тромес."}\r
@@ -2938,8 +2950,13 @@ mk{
         general{\r
             lenient{\r
                 "[.․。︒﹒.。]",\r
+                "['ʼ՚᾽᾿’']",\r
+                "[%٪﹪%]",\r
+                "[؉‰]",\r
                 "[\$﹩$$]",\r
                 "[£₤]",\r
+                "[¥¥]",\r
+                "[₩₩]",\r
                 "[₨₹{Rp}{Rs}]",\r
             }\r
         }\r
index fd676563b3a124eeff28ea9104e54caff0a69ddd..a0fb4eeff4cca71f6648d2ffd85d740016c2e11e 100644 (file)
@@ -26,7 +26,9 @@ ml{
         default{"latn"}\r
         latn{\r
             miscPatterns{\r
+                approximately{"~{0}"}\r
                 atLeast{"{0}+"}\r
+                atMost{"≤{0}"}\r
                 range{"{0}-{1}"}\r
             }\r
             patterns{\r
@@ -239,7 +241,7 @@ ml{
         }\r
         native{"mlym"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.50"}\r
     calendar{\r
         buddhist{\r
             eras{\r
@@ -2023,6 +2025,11 @@ ml{
         }\r
         quarter-narrow{\r
             dn{"പാദം"}\r
+            relative{\r
+                "-1"{"കഴിഞ്ഞ പാദം"}\r
+                "0"{"ഈ പാദം"}\r
+                "1"{"അടുത്ത പാദം"}\r
+            }\r
             relativeTime{\r
                 future{\r
                     one{"{0} പാദത്തിൽ"}\r
@@ -2036,6 +2043,11 @@ ml{
         }\r
         quarter-short{\r
             dn{"പാദം"}\r
+            relative{\r
+                "-1"{"കഴിഞ്ഞ പാദം"}\r
+                "0"{"ഈ പാദം"}\r
+                "1"{"അടുത്ത പാദം"}\r
+            }\r
             relativeTime{\r
                 future{\r
                     one{"{0} പാദത്തിൽ"}\r
@@ -2545,8 +2557,13 @@ ml{
         general{\r
             lenient{\r
                 "[.․。︒﹒.。]",\r
+                "['ʼ՚᾽᾿’']",\r
+                "[%٪﹪%]",\r
+                "[؉‰]",\r
                 "[\$﹩$$]",\r
                 "[£₤]",\r
+                "[¥¥]",\r
+                "[₩₩]",\r
                 "[₨₹{Rp}{Rs}]",\r
             }\r
         }\r
index 219cf1ade2a444dba19c8b3924c73740c3c19588..6fd066b823ae24ca9d9f2ccd75f2b9b91d626a17 100644 (file)
@@ -21,7 +21,9 @@ mn{
         default{"latn"}\r
         latn{\r
             miscPatterns{\r
-                atLeast{"⩾{0}"}\r
+                approximately{"~{0}"}\r
+                atLeast{"≥{0}"}\r
+                atMost{"≤{0}"}\r
                 range{"{0}–{1}"}\r
             }\r
             patterns{\r
@@ -136,36 +138,36 @@ mn{
                 }\r
                 decimalFormat{\r
                     1000{\r
-                        one{"0мянга"}\r
-                        other{"0мянга"}\r
+                        one{"0 мянга"}\r
+                        other{"0 мянга"}\r
                     }\r
                     10000{\r
-                        one{"00мянга"}\r
-                        other{"00мянга"}\r
+                        one{"00 мянга"}\r
+                        other{"00 мянга"}\r
                     }\r
                     100000{\r
-                        one{"000мянга"}\r
-                        other{"000мянга"}\r
+                        one{"000 мянга"}\r
+                        other{"000 мянга"}\r
                     }\r
                     1000000{\r
-                        one{"0сая"}\r
-                        other{"0сая"}\r
+                        one{"0 сая"}\r
+                        other{"0 сая"}\r
                     }\r
                     10000000{\r
-                        one{"00сая"}\r
-                        other{"00сая"}\r
+                        one{"00 сая"}\r
+                        other{"00 сая"}\r
                     }\r
                     100000000{\r
-                        one{"000сая"}\r
-                        other{"000сая"}\r
+                        one{"000 сая"}\r
+                        other{"000 сая"}\r
                     }\r
                     1000000000{\r
-                        one{"0тэрбум"}\r
-                        other{"0тэрбум"}\r
+                        one{"0 тэрбум"}\r
+                        other{"0 тэрбум"}\r
                     }\r
                     10000000000{\r
-                        one{"00тэрбум"}\r
-                        other{"00тэрбум"}\r
+                        one{"00 тэрбум"}\r
+                        other{"00 тэрбум"}\r
                     }\r
                     100000000000{\r
                         one{"000Т"}\r
@@ -212,7 +214,7 @@ mn{
         minimumGroupingDigits{"1"}\r
         native{"latn"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.94"}\r
     calendar{\r
         generic{\r
             DateTimePatterns{\r
@@ -220,58 +222,58 @@ mn{
                 "HH:mm:ss (z)",\r
                 "HH:mm:ss",\r
                 "HH:mm",\r
-                "EEEE, y 'оны' MM 'сарын' dd",\r
-                "y 'оны' MM 'сарын' dd",\r
-                "y MM d",\r
-                "y-MM-dd",\r
+                "G y 'оны' MMMM'ын' d. cccc 'гараг'",\r
+                "G y 'оны' MM 'сарын' dd",\r
+                "G y 'оны' MMM'ын' d",\r
+                "GGGGG y.MM.dd",\r
+                "{1} {0}",\r
                 "{1} {0}",\r
                 "{1} {0}",\r
                 "{1} {0}",\r
                 "{1} {0}",\r
-                "{1}, {0}",\r
             }\r
             availableFormats{\r
-                Bh{"h B"}\r
-                Bhm{"h:mm B"}\r
-                Bhms{"h:mm:ss B"}\r
+                Bh{"B h 'ц'"}\r
+                Bhm{"B h:mm"}\r
+                Bhms{"B h:mm:ss"}\r
                 E{"ccc"}\r
-                EBhm{"E h:mm B"}\r
-                EBhms{"E h:mm:ss B"}\r
-                EHm{"E HH:mm"}\r
-                EHms{"E HH:mm:ss"}\r
-                Ed{"dd E"}\r
-                Ehm{"E h:mm a"}\r
-                Ehms{"E h:mm:ss a"}\r
-                Gy{"y"}\r
-                GyMMM{"G y MMM"}\r
-                GyMMMEd{"G y MMM d, E"}\r
-                GyMMMd{"G y MMM d"}\r
-                H{"HH"}\r
+                EBhm{"E. B h:mm"}\r
+                EBhms{"E. B h:mm:ss"}\r
+                EHm{"E. HH:mm"}\r
+                EHms{"E. HH:mm:ss"}\r
+                Ed{"dd. E"}\r
+                Ehm{"E. h:mm a"}\r
+                Ehms{"E. h:mm:ss a"}\r
+                Gy{"y"}\r
+                GyMMM{"G y 'оны' MMM"}\r
+                GyMMMEd{"G y 'оны' MMM'ын' d. E"}\r
+                GyMMMd{"G y 'оны' MMM'ын' d"}\r
+                H{"HH 'ц'"}\r
                 Hm{"HH:mm"}\r
                 Hms{"HH:mm:ss"}\r
-                M{"L"}\r
-                MEd{"E, M-d"}\r
+                M{"LLLLL"}\r
+                MEd{"MMMMM/dd. E"}\r
                 MMM{"LLL"}\r
-                MMMEd{"MMM d, E"}\r
-                MMMMd{"MMMM d"}\r
-                MMMd{"MMM d"}\r
-                Md{"M-d"}\r
+                MMMEd{"MMM'ын' d. E"}\r
+                MMMMd{"MMMM'ын' d"}\r
+                MMMd{"MMM'ын' d"}\r
+                Md{"MMMMM/dd"}\r
                 d{"d"}\r
-                h{"h a"}\r
+                h{"h 'ц' a"}\r
                 hm{"h:mm a"}\r
                 hms{"h:mm:ss a"}\r
                 ms{"mm:ss"}\r
                 y{"G y"}\r
                 yyyy{"G y"}\r
-                yyyyM{"GGGGG y-MM"}\r
-                yyyyMEd{"GGGGG y-MM-dd, E"}\r
-                yyyyMMM{"G y MMM"}\r
-                yyyyMMMEd{"G y MMM d, E"}\r
-                yyyyMMMM{"G y MMMM"}\r
-                yyyyMMMd{"G y MMM d"}\r
-                yyyyMd{"GGGGG y-MM-dd"}\r
-                yyyyQQQ{"G y QQQ"}\r
-                yyyyQQQQ{"G y QQQQ"}\r
+                yyyyM{"GGGGG y MMMMM"}\r
+                yyyyMEd{"GGGGG y.MM.dd. E"}\r
+                yyyyMMM{"G y 'оны' MMM"}\r
+                yyyyMMMEd{"G y 'оны' MMM'ын' d. E"}\r
+                yyyyMMMM{"G y 'оны' MMM"}\r
+                yyyyMMMd{"G y 'оны' MMM'ын' d"}\r
+                yyyyMd{"GGGGG y.MM.dd"}\r
+                yyyyQQQ{"G y 'оны' QQQ"}\r
+                yyyyQQQQ{"G y 'оны' QQQQ"}\r
             }\r
             intervalFormats{\r
                 H{\r
@@ -289,26 +291,26 @@ mn{
                     H{"HH–HH v"}\r
                 }\r
                 M{\r
-                    M{"M – M"}\r
+                    M{"MMMMM – MMMMM 'сар'"}\r
                 }\r
                 MEd{\r
-                    M{"E, MM/dd – E, MM/dd"}\r
-                    d{"E, MM/dd – E, MM/dd"}\r
+                    M{"MMMMM/d E – MMMMM/d E"}\r
+                    d{"MMMMM/d E – MMMMM/d E"}\r
                 }\r
                 MMM{\r
-                    M{"MMM – MMM"}\r
+                    M{"MMMMM – MMMMM 'сар'"}\r
                 }\r
                 MMMEd{\r
-                    M{"E, MM/dd – E, MM/dd"}\r
-                    d{"E, MM/dd – E, MM/dd"}\r
+                    M{"MMMMM/d E – MMMMM/d E"}\r
+                    d{"MMMMM/d E – MMMMM/d E"}\r
                 }\r
                 MMMd{\r
-                    M{"MM/d – MM/d"}\r
-                    d{"MMM d–d"}\r
+                    M{"MMMMM/d – MMMMM/d"}\r
+                    d{"MMMMM/d – d"}\r
                 }\r
                 Md{\r
-                    M{"MM/dd–MM/dd"}\r
-                    d{"MM/dd–MM/dd"}\r
+                    M{"MMMMM/d – MMMMM/d"}\r
+                    d{"MMMMM/d – MMMMM/d"}\r
                 }\r
                 d{\r
                     d{"d – d"}\r
@@ -336,51 +338,51 @@ mn{
                     y{"G y–y"}\r
                 }\r
                 yM{\r
-                    M{"GGGGG y-MM – y-MM"}\r
-                    y{"GGGGG y-MM – y-MM"}\r
+                    M{"GGGGG y 'оны' MMMMM–MMMMM 'сар'"}\r
+                    y{"GGGGG y 'оны' MMMMM 'сар' – y 'оны' MMMMM 'сар'"}\r
                 }\r
                 yMEd{\r
-                    M{"GGGGG y-MM-dd, E – y-MM-dd, E"}\r
-                    d{"GGGGG y-MM-dd, E – y-MM-dd, E"}\r
-                    y{"GGGGG y-MM-dd, E – y-MM-dd, E"}\r
+                    M{"GGGGG y 'оны' MMMMM/dd E – MMMMM/dd E"}\r
+                    d{"GGGGG y 'оны' MMMMM/dd E – MMMMM/dd E"}\r
+                    y{"GGGGG y 'оны' MMMMM/dd E – y 'оны' MMMMM/dd E"}\r
                 }\r
                 yMMM{\r
-                    M{"G y MMM–MMM"}\r
-                    y{"G y MMM – y MMM"}\r
+                    M{"G y 'оны' MMMMM – MMMMM 'сар'"}\r
+                    y{"G y 'оны' MMMMM 'сар' – y 'оны' MMMMM 'сар'"}\r
                 }\r
                 yMMMEd{\r
-                    M{"G y MMM d, E – MMM d, E"}\r
-                    d{"G y MMM d, E – MMM d, E"}\r
-                    y{"G y MMM d, E – y MMM d, E"}\r
+                    M{"G y 'оны' MMMMM/dd E – MMMMM/dd E"}\r
+                    d{"G y 'оны' MMMMM/dd E – MMMMM/dd E"}\r
+                    y{"G y 'оны' MMMMM/dd E – y 'оны' MMMMM/dd E"}\r
                 }\r
                 yMMMM{\r
-                    M{"G y MMMM–MMMM"}\r
-                    y{"G y MMMM – y MMMM"}\r
+                    M{"G y 'оны' MMMMM – MMMMM 'сар'"}\r
+                    y{"G y 'оны' MMMMM 'сар' – y 'оны' MMMMM 'сар'"}\r
                 }\r
                 yMMMd{\r
-                    M{"G y MMM d – MMM d"}\r
-                    d{"G y MMM d–d"}\r
-                    y{"G y MMM d – y MMM d"}\r
+                    M{"G y 'оны' MMMMM/dd – MMMMM/dd"}\r
+                    d{"G y 'оны' MMMMM/dd – dd"}\r
+                    y{"G y 'оны' MMMMM/dd – y 'оны' MMMMM/dd"}\r
                 }\r
                 yMd{\r
-                    M{"GGGGG y-MM-dd – y-MM-dd"}\r
-                    d{"GGGGG y-MM-dd – y-MM-dd"}\r
-                    y{"GGGGG y-MM-dd – y-MM-dd"}\r
+                    M{"GGGGG y 'оны' MMMMM/dd – MMMMM/dd"}\r
+                    d{"GGGGG y 'оны' MMMMM/dd – MMMMM/dd"}\r
+                    y{"GGGGG y 'оны' MMMMM/dd – y 'оны' MMMMM/dd"}\r
                 }\r
             }\r
         }\r
         gregorian{\r
             AmPmMarkers{\r
-                "ү.ө",\r
-                "ү.х",\r
+                "ү.ө.",\r
+                "ү.х.",\r
             }\r
             AmPmMarkersAbbr{\r
-                "Ò®Ó¨",\r
-                "ҮХ",\r
+                "Ò¯.Ó©.",\r
+                "Ò¯.Ñ\85.",\r
             }\r
             AmPmMarkersNarrow{\r
-                "үө",\r
-                "үх",\r
+                "ү.ө.",\r
+                "ү.х.",\r
             }\r
             DateTimePatterns{\r
                 "HH:mm:ss (zzzz)",\r
@@ -389,7 +391,7 @@ mn{
                 "HH:mm",\r
                 "y.MM.dd, EEEE",\r
                 "y.MM.dd",\r
-                "y.MM.dd",\r
+                "y 'оны' MMM'ын' d",\r
                 "y.MM.dd",\r
                 "{1} {0}",\r
                 "{1} {0}",\r
@@ -398,56 +400,56 @@ mn{
                 "{1} {0}",\r
             }\r
             appendItems{\r
-                Timezone{"{0} {1}"}\r
+                Timezone{"{0} ({1})"}\r
             }\r
             availableFormats{\r
-                Bh{"B h"}\r
+                Bh{"B h 'ц'"}\r
                 Bhm{"B h:mm"}\r
                 Bhms{"B h:mm:ss"}\r
                 E{"ccc"}\r
-                EBhm{"E, B h:mm"}\r
-                EBhms{"E, B h:mm:ss"}\r
-                EHm{"E HH:mm"}\r
-                EHms{"E HH:mm:ss"}\r
-                Ed{"dd E"}\r
-                Ehm{"E h:mm a"}\r
-                Ehms{"E h:mm:ss a"}\r
+                EBhm{"E. B h:mm"}\r
+                EBhms{"E. B h:mm:ss"}\r
+                EHm{"E. HH:mm"}\r
+                EHms{"E. HH:mm:ss"}\r
+                Ed{"dd. E"}\r
+                Ehm{"E. h:mm a"}\r
+                Ehms{"E. h:mm:ss a"}\r
                 Gy{"G y"}\r
                 GyMMM{"G y 'оны' MMM"}\r
-                GyMMMEd{"G y 'оны' MMM'ын' d, E"}\r
+                GyMMMEd{"G y 'оны' MMM'ын' d. E"}\r
                 GyMMMd{"G y 'оны' MMM'ын' d"}\r
                 H{"HH 'ц'"}\r
                 Hm{"HH:mm"}\r
                 Hms{"HH:mm:ss"}\r
-                Hmsv{"HH:mm:ss v"}\r
-                Hmv{"HH:mm v"}\r
-                M{"L"}\r
-                MEd{"MM/dd, E"}\r
+                Hmsv{"HH:mm:ss (v)"}\r
+                Hmv{"HH:mm (v)"}\r
+                M{"LLLLL"}\r
+                MEd{"MMMMM/dd. E"}\r
                 MMM{"LLL"}\r
-                MMMEd{"MMM'ын' d, E"}\r
+                MMMEd{"MMM'ын' d. E"}\r
                 MMMMW{\r
-                    one{"MMM'ын' W-'р' 'долоо' 'хоног'"}\r
-                    other{"MMM'ын' W-'р' 'долоо' 'хоног'"}\r
+                    one{"MMMM'ын' W-'р' 'долоо' 'хоног'"}\r
+                    other{"MMMM'ын' W-'р' 'долоо' 'хоног'"}\r
                 }\r
-                MMMMd{"MMM'ын' d"}\r
+                MMMMd{"MMMM'ын' d"}\r
                 MMMd{"MMM'ын' d"}\r
-                Md{"MM/dd"}\r
+                Md{"MMMMM/dd"}\r
                 d{"d"}\r
-                h{"h a"}\r
+                h{"h 'ц' a"}\r
                 hm{"h:mm a"}\r
                 hms{"h:mm:ss a"}\r
-                hmsv{"h:mm:ss a v"}\r
-                hmv{"h:mm a v"}\r
+                hmsv{"h:mm:ss a (v)"}\r
+                hmv{"h:mm a (v)"}\r
                 ms{"mm:ss"}\r
                 y{"y"}\r
-                yM{"y M"}\r
-                yMEd{"y.MM.dd, E"}\r
+                yM{"y MMMMM"}\r
+                yMEd{"y.MM.dd. E"}\r
                 yMMM{"y 'оны' MMM"}\r
-                yMMMEd{"y.MM.dd, E"}\r
+                yMMMEd{"y 'оны' MMM'ын' d. E"}\r
                 yMMMM{"y 'оны' MMM"}\r
-                yMMMd{"y.MM.dd"}\r
+                yMMMd{"y 'оны' MMM'ын' d"}\r
                 yMd{"y.MM.dd"}\r
-                yQQQ{"y QQQ"}\r
+                yQQQ{"y 'оны' QQQ"}\r
                 yQQQQ{"y 'оны' QQQQ"}\r
                 yw{\r
                     one{"Y 'оны' w-'р' 'долоо' 'хоног'"}\r
@@ -522,13 +524,13 @@ mn{
                         "Бя",\r
                     }\r
                     wide{\r
-                        "ням",\r
-                        "даваа",\r
-                        "мягмар",\r
-                        "лхагва",\r
-                        "пүрэв",\r
-                        "баасан",\r
-                        "бямба",\r
+                        "Ð\9dям",\r
+                        "Ð\94аваа",\r
+                        "Ð\9cягмар",\r
+                        "Ð\9bхагва",\r
+                        "Ð\9fүрэв",\r
+                        "Ð\91аасан",\r
+                        "Ð\91ямба",\r
                     }\r
                 }\r
             }\r
@@ -562,33 +564,33 @@ mn{
                 stand-alone{\r
                     abbreviated{\r
                         afternoon1{"өдөр"}\r
-                        am{"Ò®Ó¨"}\r
+                        am{"Ò¯.Ó©."}\r
                         evening1{"орой"}\r
                         midnight{"шөнө дунд"}\r
                         morning1{"өглөө"}\r
                         night1{"шөнө"}\r
                         noon{"үд дунд"}\r
-                        pm{"ҮХ"}\r
+                        pm{"Ò¯.Ñ\85."}\r
                     }\r
                     narrow{\r
                         afternoon1{"өдөр"}\r
-                        am{"Ò®Ó¨"}\r
+                        am{"Ò¯.Ó©."}\r
                         evening1{"орой"}\r
                         midnight{"шөнө дунд"}\r
                         morning1{"өглөө"}\r
                         night1{"шөнө"}\r
                         noon{"үд дунд"}\r
-                        pm{"ҮХ"}\r
+                        pm{"Ò¯.Ñ\85."}\r
                     }\r
                     wide{\r
                         afternoon1{"өдөр"}\r
-                        am{"Ò®Ó¨"}\r
+                        am{"Ò¯.Ó©."}\r
                         evening1{"орой"}\r
                         midnight{"шөнө дунд"}\r
                         morning1{"өглөө"}\r
                         night1{"шөнө"}\r
                         noon{"үд дунд"}\r
-                        pm{"ҮХ"}\r
+                        pm{"Ò¯.Ñ\85."}\r
                     }\r
                 }\r
             }\r
@@ -623,33 +625,33 @@ mn{
                     m{"HH:mm – HH:mm"}\r
                 }\r
                 Hmv{\r
-                    H{"HH:mm – HH:mm v"}\r
-                    m{"HH:mm – HH:mm v"}\r
+                    H{"HH:mm – HH:mm (v)"}\r
+                    m{"HH:mm – HH:mm (v)"}\r
                 }\r
                 Hv{\r
-                    H{"HH – HH 'ц' v"}\r
+                    H{"HH – HH 'ц' (v)"}\r
                 }\r
                 M{\r
-                    M{"M – M-'р' 'сар'"}\r
+                    M{"MMMMM – MMMMM 'сар'"}\r
                 }\r
                 MEd{\r
-                    M{"E, MM/dd – E, MM/dd"}\r
-                    d{"E, MM/dd – E, MM/dd"}\r
+                    M{"MMMMM/d E – MMMMM/d E"}\r
+                    d{"MMMMM/d E – MMMMM/d E"}\r
                 }\r
                 MMM{\r
-                    M{"MMM – MMM"}\r
+                    M{"MMMMM – MMMMM 'сар'"}\r
                 }\r
                 MMMEd{\r
-                    M{"E, MM/dd – E, MM/dd"}\r
-                    d{"E, MM/dd – E, MM/dd"}\r
+                    M{"MMMMM/d E – MMMMM/d E"}\r
+                    d{"MMMMM/d E – MMMMM/d E"}\r
                 }\r
                 MMMd{\r
-                    M{"MM/d – MM/d"}\r
-                    d{"MM/d–d"}\r
+                    M{"MMMMM/d – MMMMM/d"}\r
+                    d{"MMMMM/d – d"}\r
                 }\r
                 Md{\r
-                    M{"MM/dd–MM/dd"}\r
-                    d{"MM/dd–MM/dd"}\r
+                    M{"MMMMM/d – MMMMM/d"}\r
+                    d{"MMMMM/d – MMMMM/d"}\r
                 }\r
                 d{\r
                     d{"d – d"}\r
@@ -665,48 +667,48 @@ mn{
                     m{"h:mm – h:mm a"}\r
                 }\r
                 hmv{\r
-                    a{"h:mm a – h:mm a v"}\r
-                    h{"h:mm – h:mm a v"}\r
-                    m{"h:mm – h:mm a v"}\r
+                    a{"h:mm a – h:mm a (v)"}\r
+                    h{"h:mm – h:mm a (v)"}\r
+                    m{"h:mm – h:mm a (v)"}\r
                 }\r
                 hv{\r
-                    a{"h a – h a v"}\r
-                    h{"h – h a v"}\r
+                    a{"h a – h a (v)"}\r
+                    h{"h – h a (v)"}\r
                 }\r
                 y{\r
                     y{"y – y"}\r
                 }\r
                 yM{\r
-                    M{"y/MM–MM"}\r
-                    y{"y/MM – y/MM"}\r
+                    M{"y 'оны' MMMMM–MMMMM 'сар'"}\r
+                    y{"y 'оны' MMMMM 'сар' – y 'оны' MMMMM 'сар'"}\r
                 }\r
                 yMEd{\r
-                    M{"E, y/MM/dd – E, y/MM/dd"}\r
-                    d{"E, y/MM/dd – E, y/MM/dd"}\r
-                    y{"E, y/MM/dd – E, y/MM/dd"}\r
+                    M{"y 'оны' MMMMM/dd E – MMMMM/dd E"}\r
+                    d{"y 'оны' MMMMM/dd E – MMMMM/dd E"}\r
+                    y{"y 'оны' MMMMM/dd E – y 'оны' MMMMM/dd E"}\r
                 }\r
                 yMMM{\r
-                    M{"y/MM–MM"}\r
-                    y{"y/MM – y/MM"}\r
+                    M{"y 'оны' MMMMM – MMMMM 'сар'"}\r
+                    y{"y 'оны' MMMMM 'сар' – y 'оны' MMMMM 'сар'"}\r
                 }\r
                 yMMMEd{\r
-                    M{"E, y/MM/dd – E, y/MM/dd"}\r
-                    d{"E, y/MM/dd – E, y/MM/dd"}\r
-                    y{"E, y/MM/dd – E, y/MM/dd"}\r
+                    M{"y 'оны' MMMMM/dd E – MMMMM/dd E"}\r
+                    d{"y 'оны' MMMMM/dd E – MMMMM/dd E"}\r
+                    y{"y 'оны' MMMMM/dd E – y 'оны' MMMMM/dd E"}\r
                 }\r
                 yMMMM{\r
-                    M{"y 'оны' MM–MM-'р' 'сар'"}\r
-                    y{"y/MM –y/MM"}\r
+                    M{"y 'оны' MMMMM – MMMMM 'сар'"}\r
+                    y{"y 'оны' MMMMM 'сар' – y 'оны' MMMMM 'сар'"}\r
                 }\r
                 yMMMd{\r
-                    M{"y/MM/dd – MM/dd"}\r
-                    d{"y/MM/d–d"}\r
-                    y{"y/MM/dd – y/MM/dd"}\r
+                    M{"y 'оны' MMMMM/dd – MMMMM/dd"}\r
+                    d{"y 'оны' MMMMM/dd – dd"}\r
+                    y{"y 'оны' MMMMM/dd – y 'оны' MMMMM/dd"}\r
                 }\r
                 yMd{\r
-                    M{"y/MM/dd –MM/dd"}\r
-                    d{"y/MM/dd–dd"}\r
-                    y{"y/MM/dd – y/MM/dd"}\r
+                    M{"y 'оны' MMMMM/dd – MMMMM/dd"}\r
+                    d{"y 'оны' MMMMM/dd – MMMMM/dd"}\r
+                    y{"y 'оны' MMMMM/dd – y 'оны' MMMMM/dd"}\r
                 }\r
             }\r
             monthNames{\r
@@ -740,18 +742,18 @@ mn{
                         "XII",\r
                     }\r
                     wide{\r
-                        "Ð\9dэгдүгээр сар",\r
-                        "Хоёрдугаар сар",\r
-                        "Ð\93уравдугаар сар",\r
-                        "Ð\94өрөвдүгээр сар",\r
-                        "Тавдугаар сар",\r
-                        "Ð\97ургаадугаар сар",\r
-                        "Ð\94олдугаар сар",\r
-                        "Ð\9dаймдугаар сар",\r
-                        "Ð\95сдүгээр сар",\r
-                        "Ð\90равдугаар сар",\r
-                        "Ð\90рван нэгдүгээр сар",\r
-                        "Ð\90рван хоёрдугаар сар",\r
+                        "нэгдүгээр сар",\r
+                        "хоёрдугаар сар",\r
+                        "гуравдугаар сар",\r
+                        "дөрөвдүгээр сар",\r
+                        "тавдугаар сар",\r
+                        "зургаадугаар сар",\r
+                        "долоодугаар сар",\r
+                        "наймдугаар сар",\r
+                        "есдүгээр сар",\r
+                        "аравдугаар сар",\r
+                        "арван нэгдүгээр сар",\r
+                        "арван хоёрдугаар сар",\r
                     }\r
                 }\r
                 stand-alone{\r
@@ -790,7 +792,7 @@ mn{
                         "Дөрөвдүгээр сар",\r
                         "Тавдугаар сар",\r
                         "Зургаадугаар сар",\r
-                        "Долдугаар сар",\r
+                        "Ð\94олоодÑ\83гааÑ\80 Ñ\81аÑ\80",\r
                         "Наймдугаар сар",\r
                         "Есдүгээр сар",\r
                         "Аравдугаар сар",\r
@@ -822,10 +824,10 @@ mn{
                 }\r
                 stand-alone{\r
                     abbreviated{\r
-                        "I",\r
-                        "II",\r
-                        "III",\r
-                        "IV",\r
+                        "I улирал",\r
+                        "II улирал",\r
+                        "III улирал",\r
+                        "IV улирал",\r
                     }\r
                     narrow{\r
                         "I",\r
@@ -949,8 +951,8 @@ mn{
             }\r
             relativeTime{\r
                 future{\r
-                    one{"{0} өдөрт"}\r
-                    other{"{0} өдөрт"}\r
+                    one{"{0} өдрийн дараа"}\r
+                    other{"{0} өдрийн дараа"}\r
                 }\r
                 past{\r
                     one{"{0} өдрийн өмнө"}\r
@@ -962,8 +964,8 @@ mn{
             dn{"өдөр"}\r
             relativeTime{\r
                 future{\r
-                    one{"{0} өдөрт"}\r
-                    other{"{0} өдөрт"}\r
+                    one{"{0} өдрийн дараа"}\r
+                    other{"{0} өдрийн дараа"}\r
                 }\r
                 past{\r
                     one{"{0} өдрийн өмнө"}\r
@@ -975,8 +977,8 @@ mn{
             dn{"өдөр"}\r
             relativeTime{\r
                 future{\r
-                    one{"{0} өдөрт"}\r
-                    other{"{0} өдөрт"}\r
+                    one{"{0} өдрийн дараа"}\r
+                    other{"{0} өдрийн дараа"}\r
                 }\r
                 past{\r
                     one{"{0} өдрийн өмнө"}\r
@@ -985,13 +987,13 @@ mn{
             }\r
         }\r
         dayOfYear{\r
-            dn{"Ð\96илийн Ó©Ð´Ó©Ñ\80"}\r
+            dn{"жилийн Ñ\85оног"}\r
         }\r
         dayOfYear-narrow{\r
-            dn{"Ð\96илийн Ó©Ð´Ó©Ñ\80"}\r
+            dn{"жилийн Ñ\85оног"}\r
         }\r
         dayOfYear-short{\r
-            dn{"Ð\96илийн Ó©Ð´Ó©Ñ\80"}\r
+            dn{"жилийн Ñ\85оног"}\r
         }\r
         dayperiod{\r
             dn{"ү.ө./ү.х."}\r
@@ -1019,8 +1021,8 @@ mn{
             }\r
             relativeTime{\r
                 future{\r
-                    one{"{0} баасан гарагт"}\r
-                    other{"{0} баасан гарагт"}\r
+                    one{"{0} баасан гарагийн дараа"}\r
+                    other{"{0} баасан гарагийн дараа"}\r
                 }\r
                 past{\r
                     one{"{0} баасан гарагийн өмнө"}\r
@@ -1030,35 +1032,35 @@ mn{
         }\r
         fri-narrow{\r
             relative{\r
-                "-1"{"өнгөÑ\80Ñ\81өн Ð±Ð°Ð°Ñ\81ан Ð³Ð°Ñ\80аг"}\r
-                "0"{"Ñ\8dнÑ\8d Ð±Ð°Ð°Ñ\81ан Ð³Ð°Ñ\80аг"}\r
-                "1"{"иÑ\80Ñ\8dÑ\85 Ð±Ð°Ð°Ñ\81ан Ð³Ð°Ñ\80аг"}\r
+                "-1"{"өнгөÑ\80Ñ\81өн Ð\91а"}\r
+                "0"{"Ñ\8dнÑ\8d Ð\91а"}\r
+                "1"{"иÑ\80Ñ\8dÑ\85 Ð\91а"}\r
             }\r
             relativeTime{\r
                 future{\r
-                    one{"{0} Ð±Ð°Ð°Ñ\81ан Ð³Ð°Ñ\80агÑ\82"}\r
-                    other{"{0} Ð±Ð°Ð°Ñ\81ан Ð³Ð°Ñ\80агÑ\82"}\r
+                    one{"{0} Ð\91а Ð´Ð°Ñ\80аа"}\r
+                    other{"{0} Ð\91а Ð´Ð°Ñ\80аа"}\r
                 }\r
                 past{\r
-                    one{"{0} Ð±Ð°Ð°Ñ\81ан Ð³Ð°Ñ\80агийн өмнө"}\r
-                    other{"{0} Ð±Ð°Ð°Ñ\81ан Ð³Ð°Ñ\80агийн өмнө"}\r
+                    one{"{0} Ð\91а өмнө"}\r
+                    other{"{0} Ð\91а өмнө"}\r
                 }\r
             }\r
         }\r
         fri-short{\r
             relative{\r
-                "-1"{"өнгөÑ\80Ñ\81өн Ð±Ð°Ð°Ñ\81ан Ð³Ð°Ñ\80аг"}\r
-                "0"{"Ñ\8dнÑ\8d Ð±Ð°Ð°Ñ\81ан Ð³Ð°Ñ\80аг"}\r
-                "1"{"иÑ\80Ñ\8dÑ\85 Ð±Ð°Ð°Ñ\81ан Ð³Ð°Ñ\80аг"}\r
+                "-1"{"өнгөÑ\80Ñ\81өн Ð\91а"}\r
+                "0"{"Ñ\8dнÑ\8d Ð\91а"}\r
+                "1"{"иÑ\80Ñ\8dÑ\85 Ð\91а"}\r
             }\r
             relativeTime{\r
                 future{\r
-                    one{"{0} Ð±Ð°Ð°Ñ\81ан Ð³Ð°Ñ\80агÑ\82"}\r
-                    other{"{0} Ð±Ð°Ð°Ñ\81ан Ð³Ð°Ñ\80агÑ\82"}\r
+                    one{"{0} Ð\91а Ð´Ð°Ñ\80аа"}\r
+                    other{"{0} Ð\91а Ð´Ð°Ñ\80аа"}\r
                 }\r
                 past{\r
-                    one{"{0} Ð±Ð°Ð°Ñ\81ан Ð³Ð°Ñ\80агийн өмнө"}\r
-                    other{"{0} Ð±Ð°Ð°Ñ\81ан Ð³Ð°Ñ\80агийн өмнө"}\r
+                    one{"{0} Ð\91а өмнө"}\r
+                    other{"{0} Ð\91а өмнө"}\r
                 }\r
             }\r
         }\r
@@ -1069,8 +1071,8 @@ mn{
             }\r
             relativeTime{\r
                 future{\r
-                    one{"{0} цагт"}\r
-                    other{"{0} цагт"}\r
+                    one{"{0} цагийн дараа"}\r
+                    other{"{0} цагийн дараа"}\r
                 }\r
                 past{\r
                     one{"{0} цагийн өмнө"}\r
@@ -1079,28 +1081,28 @@ mn{
             }\r
         }\r
         hour-narrow{\r
-            dn{"ц."}\r
+            dn{"ц"}\r
             relativeTime{\r
                 future{\r
-                    one{"{0} цагт"}\r
-                    other{"{0} цагт"}\r
+                    one{"{0} ц дараа"}\r
+                    other{"{0} ц дараа"}\r
                 }\r
                 past{\r
-                    one{"{0} ц. өмнө"}\r
-                    other{"{0} ц. өмнө"}\r
+                    one{"{0} ц өмнө"}\r
+                    other{"{0} ц өмнө"}\r
                 }\r
             }\r
         }\r
         hour-short{\r
-            dn{"ц."}\r
+            dn{"ц"}\r
             relativeTime{\r
                 future{\r
-                    one{"{0} цагт"}\r
-                    other{"{0} цагт"}\r
+                    one{"{0} ц дараа"}\r
+                    other{"{0} ц дараа"}\r
                 }\r
                 past{\r
-                    one{"{0} ц. өмнө"}\r
-                    other{"{0} ц. өмнө"}\r
+                    one{"{0} ц өмнө"}\r
+                    other{"{0} ц өмнө"}\r
                 }\r
             }\r
         }\r
@@ -1111,8 +1113,8 @@ mn{
             }\r
             relativeTime{\r
                 future{\r
-                    one{"{0} Ð¼Ð¸Ð½Ñ\83Ñ\82Ñ\8bн Ð´Ð¾Ñ\82оÑ\80"}\r
-                    other{"{0} Ð¼Ð¸Ð½Ñ\83Ñ\82Ñ\8bн Ð´Ð¾Ñ\82оÑ\80"}\r
+                    one{"{0} Ð¼Ð¸Ð½Ñ\83Ñ\82Ñ\8bн Ð´Ð°Ñ\80аа"}\r
+                    other{"{0} Ð¼Ð¸Ð½Ñ\83Ñ\82Ñ\8bн Ð´Ð°Ñ\80аа"}\r
                 }\r
                 past{\r
                     one{"{0} минутын өмнө"}\r
@@ -1121,28 +1123,28 @@ mn{
             }\r
         }\r
         minute-narrow{\r
-            dn{"мин."}\r
+            dn{"мин"}\r
             relativeTime{\r
                 future{\r
-                    one{"{0} мин. дотор"}\r
-                    other{"{0} мин. дотор"}\r
+                    one{"{0} мин дараа"}\r
+                    other{"{0} мин дараа"}\r
                 }\r
                 past{\r
-                    one{"{0} мин. өмнө"}\r
-                    other{"{0} мин. өмнө"}\r
+                    one{"{0} мин өмнө"}\r
+                    other{"{0} мин өмнө"}\r
                 }\r
             }\r
         }\r
         minute-short{\r
-            dn{"мин."}\r
+            dn{"мин"}\r
             relativeTime{\r
                 future{\r
-                    one{"{0} мин. дотор"}\r
-                    other{"{0} мин. дотор"}\r
+                    one{"{0} мин дараа"}\r
+                    other{"{0} мин дараа"}\r
                 }\r
                 past{\r
-                    one{"{0} мин. өмнө"}\r
-                    other{"{0} мин. өмнө"}\r
+                    one{"{0} мин өмнө"}\r
+                    other{"{0} мин өмнө"}\r
                 }\r
             }\r
         }\r
@@ -1154,8 +1156,8 @@ mn{
             }\r
             relativeTime{\r
                 future{\r
-                    one{"{0} даваа гарагт"}\r
-                    other{"{0} даваа гарагт"}\r
+                    one{"{0} даваа гарагийн дараа"}\r
+                    other{"{0} даваа гарагийн дараа"}\r
                 }\r
                 past{\r
                     one{"{0} даваа гарагийн өмнө"}\r
@@ -1165,35 +1167,35 @@ mn{
         }\r
         mon-narrow{\r
             relative{\r
-                "-1"{"өнгөÑ\80Ñ\81өн Ð´Ð°Ð²Ð°а"}\r
-                "0"{"Ñ\8dнÑ\8d Ð´Ð°Ð²Ð°а"}\r
-                "1"{"иÑ\80Ñ\8dÑ\85 Ð´Ð°Ð²Ð°а"}\r
+                "-1"{"өнгөÑ\80Ñ\81өн Ð\94а"}\r
+                "0"{"Ñ\8dнÑ\8d Ð\94а"}\r
+                "1"{"иÑ\80Ñ\8dÑ\85 Ð\94а"}\r
             }\r
             relativeTime{\r
                 future{\r
-                    one{"{0} Ð´Ð°Ð²Ð°Ð° Ð³Ð°Ñ\80агÑ\82"}\r
-                    other{"{0} Ð´Ð°Ð²Ð°Ð° Ð³Ð°Ñ\80агÑ\82"}\r
+                    one{"{0} Ð\94а Ð´Ð°Ñ\80аа"}\r
+                    other{"{0} Ð\94а Ð´Ð°Ñ\80аа"}\r
                 }\r
                 past{\r
-                    one{"{0} Ð´Ð°Ð²Ð°Ð° Ð³Ð°Ñ\80агийн өмнө"}\r
-                    other{"{0} Ð´Ð°Ð²Ð°Ð° Ð³Ð°Ñ\80агийн өмнө"}\r
+                    one{"{0} Ð\94а өмнө"}\r
+                    other{"{0} Ð\94а өмнө"}\r
                 }\r
             }\r
         }\r
         mon-short{\r
             relative{\r
-                "-1"{"өнгөÑ\80Ñ\81өн Ð´Ð°Ð²Ð°а"}\r
-                "0"{"Ñ\8dнÑ\8d Ð´Ð°Ð²Ð°Ð° Ð³Ð°Ñ\80аг"}\r
-                "1"{"иÑ\80Ñ\8dÑ\85 Ð´Ð°Ð²Ð°Ð° Ð³Ð°Ñ\80аг"}\r
+                "-1"{"өнгөÑ\80Ñ\81өн Ð\94а"}\r
+                "0"{"Ñ\8dнÑ\8d Ð\94а"}\r
+                "1"{"иÑ\80Ñ\8dÑ\85 Ð\94а"}\r
             }\r
             relativeTime{\r
                 future{\r
-                    one{"{0} Ð´Ð°Ð²Ð°Ð° Ð³Ð°Ñ\80агÑ\82"}\r
-                    other{"{0} Ð´Ð°Ð²Ð°Ð° Ð³Ð°Ñ\80агÑ\82"}\r
+                    one{"{0} Ð\94а Ð´Ð°Ñ\80аа"}\r
+                    other{"{0} Ð\94а Ð´Ð°Ñ\80аа"}\r
                 }\r
                 past{\r
-                    one{"{0} Ð´Ð°Ð²Ð°Ð° Ð³Ð°Ñ\80агийн өмнө"}\r
-                    other{"{0} Ð´Ð°Ð²Ð°Ð° Ð³Ð°Ñ\80агийн өмнө"}\r
+                    one{"{0} Ð\94а өмнө"}\r
+                    other{"{0} Ð\94а өмнө"}\r
                 }\r
             }\r
         }\r
@@ -1206,8 +1208,8 @@ mn{
             }\r
             relativeTime{\r
                 future{\r
-                    one{"{0} сард"}\r
-                    other{"{0} сард"}\r
+                    one{"{0} сарын дараа"}\r
+                    other{"{0} сарын дараа"}\r
                 }\r
                 past{\r
                     one{"{0} сарын өмнө"}\r
@@ -1219,8 +1221,8 @@ mn{
             dn{"сар"}\r
             relativeTime{\r
                 future{\r
-                    one{"+{0} сард"}\r
-                    other{"+{0} сард"}\r
+                    one{"{0} сарын дараа"}\r
+                    other{"{0} сарын дараа"}\r
                 }\r
                 past{\r
                     one{"{0} сарын өмнө"}\r
@@ -1232,8 +1234,8 @@ mn{
             dn{"сар"}\r
             relativeTime{\r
                 future{\r
-                    one{"{0} сард"}\r
-                    other{"{0} сард"}\r
+                    one{"{0} сарын дараа"}\r
+                    other{"{0} сарын дараа"}\r
                 }\r
                 past{\r
                     one{"{0} сарын өмнө"}\r
@@ -1250,8 +1252,8 @@ mn{
             }\r
             relativeTime{\r
                 future{\r
-                    one{"{0} Ñ\83лиÑ\80алд"}\r
-                    other{"{0} Ñ\83лиÑ\80алд"}\r
+                    one{"{0} Ñ\83лиÑ\80лÑ\8bн Ð´Ð°Ñ\80аа"}\r
+                    other{"{0} Ñ\83лиÑ\80лÑ\8bн Ð´Ð°Ñ\80аа"}\r
                 }\r
                 past{\r
                     one{"{0} улирлын өмнө"}\r
@@ -1263,8 +1265,8 @@ mn{
             dn{"улирал"}\r
             relativeTime{\r
                 future{\r
-                    one{"{0} Ñ\83лиÑ\80алд"}\r
-                    other{"{0} Ñ\83лиÑ\80алд"}\r
+                    one{"{0} Ñ\83лиÑ\80лÑ\8bн Ð´Ð°Ñ\80аа"}\r
+                    other{"{0} Ñ\83лиÑ\80лÑ\8bн Ð´Ð°Ñ\80аа"}\r
                 }\r
                 past{\r
                     one{"{0} улирлын өмнө"}\r
@@ -1276,8 +1278,8 @@ mn{
             dn{"улирал"}\r
             relativeTime{\r
                 future{\r
-                    one{"{0} Ñ\83лиÑ\80алд"}\r
-                    other{"{0} Ñ\83лиÑ\80алд"}\r
+                    one{"{0} Ñ\83лиÑ\80лÑ\8bн Ð´Ð°Ñ\80аа"}\r
+                    other{"{0} Ñ\83лиÑ\80лÑ\8bн Ð´Ð°Ñ\80аа"}\r
                 }\r
                 past{\r
                     one{"{0} улирлын өмнө"}\r
@@ -1293,8 +1295,8 @@ mn{
             }\r
             relativeTime{\r
                 future{\r
-                    one{"{0} бямба гарагт"}\r
-                    other{"{0} бямба гарагт"}\r
+                    one{"{0} бямба гарагийн дараа"}\r
+                    other{"{0} бямба гарагийн дараа"}\r
                 }\r
                 past{\r
                     one{"{0} бямба гарагийн өмнө"}\r
@@ -1304,35 +1306,35 @@ mn{
         }\r
         sat-narrow{\r
             relative{\r
-                "-1"{"өнгөÑ\80Ñ\81өн Ð±Ñ\8fмба"}\r
-                "0"{"Ñ\8dнÑ\8d Ð±Ñ\8fмба"}\r
-                "1"{"иÑ\80Ñ\8dÑ\85 Ð±Ñ\8fмба"}\r
+                "-1"{"өнгөÑ\80Ñ\81өн Ð\91Ñ\8f"}\r
+                "0"{"Ñ\8dнÑ\8d Ð\91Ñ\8f"}\r
+                "1"{"иÑ\80Ñ\8dÑ\85 Ð\91Ñ\8f"}\r
             }\r
             relativeTime{\r
                 future{\r
-                    one{"{0} Ð±Ñ\8fмба Ð³Ð°Ñ\80агÑ\82"}\r
-                    other{"{0} Ð±Ñ\8fмба Ð³Ð°Ñ\80агÑ\82"}\r
+                    one{"{0} Ð\91Ñ\8f Ð´Ð°Ñ\80аа"}\r
+                    other{"{0} Ð\91Ñ\8f Ð´Ð°Ñ\80аа"}\r
                 }\r
                 past{\r
-                    one{"{0} Ð±Ñ\8fмба Ð³Ð°Ñ\80агийн өмнө"}\r
-                    other{"{0} Ð±Ñ\8fмба Ð³Ð°Ñ\80агийн өмнө"}\r
+                    one{"{0} Ð\91Ñ\8f өмнө"}\r
+                    other{"{0} Ð\91Ñ\8f өмнө"}\r
                 }\r
             }\r
         }\r
         sat-short{\r
             relative{\r
-                "-1"{"өнгөÑ\80Ñ\81өн Ð±Ñ\8fмба"}\r
-                "0"{"Ñ\8dнÑ\8d Ð±Ñ\8fмба"}\r
-                "1"{"иÑ\80Ñ\8dÑ\85 Ð±Ñ\8fмба"}\r
+                "-1"{"өнгөÑ\80Ñ\81өн Ð\91Ñ\8f"}\r
+                "0"{"Ñ\8dнÑ\8d Ð\91Ñ\8f"}\r
+                "1"{"иÑ\80Ñ\8dÑ\85 Ð\91Ñ\8f"}\r
             }\r
             relativeTime{\r
                 future{\r
-                    one{"{0} Ð±Ñ\8fмба Ð³Ð°Ñ\80агÑ\82"}\r
-                    other{"{0} Ð±Ñ\8fмба Ð³Ð°Ñ\80агÑ\82"}\r
+                    one{"{0} Ð\91Ñ\8f Ð´Ð°Ñ\80аа"}\r
+                    other{"{0} Ð\91Ñ\8f Ð´Ð°Ñ\80аа"}\r
                 }\r
                 past{\r
-                    one{"{0} Ð±Ñ\8fмба Ð³Ð°Ñ\80агийн өмнө"}\r
-                    other{"{0} Ð±Ñ\8fмба Ð³Ð°Ñ\80агийн өмнө"}\r
+                    one{"{0} Ð\91Ñ\8f өмнө"}\r
+                    other{"{0} Ð\91Ñ\8f өмнө"}\r
                 }\r
             }\r
         }\r
@@ -1343,8 +1345,8 @@ mn{
             }\r
             relativeTime{\r
                 future{\r
-                    one{"{0} Ñ\81екÑ\83ндÑ\8bн Ð´Ð¾Ñ\82оÑ\80"}\r
-                    other{"{0} Ñ\81екÑ\83ндÑ\8bн Ð´Ð¾Ñ\82оÑ\80"}\r
+                    one{"{0} Ñ\81екÑ\83ндÑ\8bн Ð´Ð°Ñ\80аа"}\r
+                    other{"{0} Ñ\81екÑ\83ндÑ\8bн Ð´Ð°Ñ\80аа"}\r
                 }\r
                 past{\r
                     one{"{0} секундын өмнө"}\r
@@ -1353,28 +1355,28 @@ mn{
             }\r
         }\r
         second-narrow{\r
-            dn{"сек."}\r
+            dn{"сек"}\r
             relativeTime{\r
                 future{\r
-                    one{"{0} сек. дотор"}\r
-                    other{"{0} сек. дотор"}\r
+                    one{"{0} сек дараа"}\r
+                    other{"{0} сек дараа"}\r
                 }\r
                 past{\r
-                    one{"{0} сек. өмнө"}\r
-                    other{"{0} сек. өмнө"}\r
+                    one{"{0} сек өмнө"}\r
+                    other{"{0} сек өмнө"}\r
                 }\r
             }\r
         }\r
         second-short{\r
-            dn{"сек."}\r
+            dn{"сек"}\r
             relativeTime{\r
                 future{\r
-                    one{"{0} сек. дотор"}\r
-                    other{"{0} сек. дотор"}\r
+                    one{"{0} сек дараа"}\r
+                    other{"{0} сек дараа"}\r
                 }\r
                 past{\r
-                    one{"{0} сек. өмнө"}\r
-                    other{"{0} сек. өмнө"}\r
+                    one{"{0} сек өмнө"}\r
+                    other{"{0} сек өмнө"}\r
                 }\r
             }\r
         }\r
@@ -1386,8 +1388,8 @@ mn{
             }\r
             relativeTime{\r
                 future{\r
-                    one{"{0} ням гарагт"}\r
-                    other{"{0} ням гарагт"}\r
+                    one{"{0} ням гарагийн дараа"}\r
+                    other{"{0} ням гарагийн дараа"}\r
                 }\r
                 past{\r
                     one{"{0} ням гарагийн өмнө"}\r
@@ -1397,35 +1399,35 @@ mn{
         }\r
         sun-narrow{\r
             relative{\r
-                "-1"{"өнгөÑ\80Ñ\81өн Ð½Ñ\8fм."}\r
-                "0"{"Ñ\8dнÑ\8d Ð½Ñ\8fм"}\r
-                "1"{"иÑ\80Ñ\8dÑ\85 Ð½Ñ\8fм."}\r
+                "-1"{"өнгөÑ\80Ñ\81өн Ð\9dÑ\8f"}\r
+                "0"{"Ñ\8dнÑ\8d Ð\9dÑ\8f"}\r
+                "1"{"иÑ\80Ñ\8dÑ\85 Ð\9dÑ\8f"}\r
             }\r
             relativeTime{\r
                 future{\r
-                    one{"{0} Ð½Ñ\8fм Ð³Ð°Ñ\80агÑ\82"}\r
-                    other{"{0} Ð½Ñ\8fм Ð³Ð°Ñ\80агÑ\82"}\r
+                    one{"{0} Ð\9dÑ\8f Ð´Ð°Ñ\80аа"}\r
+                    other{"{0} Ð\9dÑ\8f Ð´Ð°Ñ\80аа"}\r
                 }\r
                 past{\r
-                    one{"{0} Ð½Ñ\8fм Ð³Ð°Ñ\80агийн өмнө"}\r
-                    other{"{0} Ð½Ñ\8fм Ð³Ð°Ñ\80агийн өмнө"}\r
+                    one{"{0} Ð\9dÑ\8f өмнө"}\r
+                    other{"{0} Ð\9dÑ\8f өмнө"}\r
                 }\r
             }\r
         }\r
         sun-short{\r
             relative{\r
-                "-1"{"өнгөÑ\80Ñ\81өн Ð½Ñ\8fм."}\r
-                "0"{"Ñ\8dнÑ\8d Ð½Ñ\8fм."}\r
-                "1"{"иÑ\80Ñ\8dÑ\85 Ð½Ñ\8fм."}\r
+                "-1"{"өнгөÑ\80Ñ\81өн Ð\9dÑ\8f"}\r
+                "0"{"Ñ\8dнÑ\8d Ð\9dÑ\8f"}\r
+                "1"{"иÑ\80Ñ\8dÑ\85 Ð\9dÑ\8f"}\r
             }\r
             relativeTime{\r
                 future{\r
-                    one{"{0} Ð½Ñ\8fм Ð³Ð°Ñ\80агÑ\82"}\r
-                    other{"{0} Ð½Ñ\8fм Ð³Ð°Ñ\80агÑ\82"}\r
+                    one{"{0} Ð\9dÑ\8f Ð´Ð°Ñ\80аа"}\r
+                    other{"{0} Ð\9dÑ\8f Ð´Ð°Ñ\80аа"}\r
                 }\r
                 past{\r
-                    one{"{0} Ð½Ñ\8fм Ð³Ð°Ñ\80агийн өмнө"}\r
-                    other{"{0} Ð½Ñ\8fм Ð³Ð°Ñ\80агийн өмнө"}\r
+                    one{"{0} Ð\9dÑ\8f өмнө"}\r
+                    other{"{0} Ð\9dÑ\8f өмнө"}\r
                 }\r
             }\r
         }\r
@@ -1437,8 +1439,8 @@ mn{
             }\r
             relativeTime{\r
                 future{\r
-                    one{"{0} пүрэв гарагт"}\r
-                    other{"{0} пүрэв гарагт"}\r
+                    one{"{0} пүрэв гарагийн дараа"}\r
+                    other{"{0} пүрэв гарагийн дараа"}\r
                 }\r
                 past{\r
                     one{"{0} пүрэв гарагийн өмнө"}\r
@@ -1448,35 +1450,35 @@ mn{
         }\r
         thu-narrow{\r
             relative{\r
-                "-1"{"өнгөÑ\80Ñ\81өн Ð¿ү"}\r
-                "0"{"Ñ\8dнÑ\8d Ð¿ү"}\r
-                "1"{"иÑ\80Ñ\8dÑ\85 Ð¿ү"}\r
+                "-1"{"өнгөÑ\80Ñ\81өн Ð\9fү"}\r
+                "0"{"Ñ\8dнÑ\8d Ð\9fү"}\r
+                "1"{"иÑ\80Ñ\8dÑ\85 Ð\9fү"}\r
             }\r
             relativeTime{\r
                 future{\r
-                    one{"{0} Ð¿Ò¯Ñ\80Ñ\8dв Ð³Ð°Ñ\80агÑ\82"}\r
-                    other{"{0} Ð¿Ò¯Ñ\80Ñ\8dв Ð³Ð°Ñ\80агÑ\82"}\r
+                    one{"{0} Ð\9fÒ¯ Ð´Ð°Ñ\80аа"}\r
+                    other{"{0} Ð\9fÒ¯ Ð´Ð°Ñ\80аа"}\r
                 }\r
                 past{\r
-                    one{"{0} Ð¿Ò¯Ñ\80Ñ\8dв Ð³Ð°Ñ\80агийн өмнө"}\r
-                    other{"{0} Ð¿Ò¯Ñ\80Ñ\8dв Ð³Ð°Ñ\80агийн өмнө"}\r
+                    one{"{0} Ð\9fÒ¯ өмнө"}\r
+                    other{"{0} Ð\9fÒ¯ өмнө"}\r
                 }\r
             }\r
         }\r
         thu-short{\r
             relative{\r
-                "-1"{"өнгөÑ\80Ñ\81өн Ð¿Ò¯Ñ\80Ñ\8dв"}\r
-                "0"{"Ñ\8dнÑ\8d Ð¿Ò¯Ñ\80Ñ\8dв"}\r
-                "1"{"иÑ\80Ñ\8dÑ\85 Ð¿Ò¯Ñ\80Ñ\8dв"}\r
+                "-1"{"өнгөÑ\80Ñ\81өн Ð\9fÒ¯"}\r
+                "0"{"Ñ\8dнÑ\8d Ð\9fÒ¯"}\r
+                "1"{"иÑ\80Ñ\8dÑ\85 Ð\9fÒ¯"}\r
             }\r
             relativeTime{\r
                 future{\r
-                    one{"{0} Ð¿Ò¯Ñ\80Ñ\8dв Ð³Ð°Ñ\80агÑ\82"}\r
-                    other{"{0} Ð¿Ò¯Ñ\80Ñ\8dв Ð³Ð°Ñ\80агÑ\82"}\r
+                    one{"{0} Ð\9fÒ¯ Ð´Ð°Ñ\80аа"}\r
+                    other{"{0} Ð\9fÒ¯ Ð´Ð°Ñ\80аа"}\r
                 }\r
                 past{\r
-                    one{"{0} Ð¿Ò¯Ñ\80Ñ\8dв Ð³Ð°Ñ\80агийн өмнө"}\r
-                    other{"{0} Ð¿Ò¯Ñ\80Ñ\8dв Ð³Ð°Ñ\80агийн өмнө"}\r
+                    one{"{0} Ð\9fÒ¯ өмнө"}\r
+                    other{"{0} Ð\9fÒ¯ өмнө"}\r
                 }\r
             }\r
         }\r
@@ -1488,8 +1490,8 @@ mn{
             }\r
             relativeTime{\r
                 future{\r
-                    one{"{0} мягмар гарагт"}\r
-                    other{"{0} мягмар гарагт"}\r
+                    one{"{0} мягмар гарагийн дараа"}\r
+                    other{"{0} мягмар гарагийн дараа"}\r
                 }\r
                 past{\r
                     one{"{0} мягмар гарагийн өмнө"}\r
@@ -1499,35 +1501,35 @@ mn{
         }\r
         tue-narrow{\r
             relative{\r
-                "-1"{"өнгөÑ\80Ñ\81өн Ð¼Ñ\8fгмаÑ\80"}\r
-                "0"{"Ñ\8dнÑ\8d Ð¼Ñ\8fгмаÑ\80"}\r
-                "1"{"иÑ\80Ñ\8dÑ\85 Ð¼Ñ\8fгмаÑ\80"}\r
+                "-1"{"өнгөÑ\80Ñ\81өн Ð\9cÑ\8f"}\r
+                "0"{"Ñ\8dнÑ\8d Ð\9cÑ\8f"}\r
+                "1"{"иÑ\80Ñ\8dÑ\85 Ð\9cÑ\8f"}\r
             }\r
             relativeTime{\r
                 future{\r
-                    one{"{0} Ð¼Ñ\8fгмаÑ\80 Ð³Ð°Ñ\80агÑ\82"}\r
-                    other{"{0} Ð¼Ñ\8fгмаÑ\80 Ð³Ð°Ñ\80агÑ\82"}\r
+                    one{"{0} Ð\9cÑ\8f Ð´Ð°Ñ\80аа"}\r
+                    other{"{0} Ð\9cÑ\8f Ð´Ð°Ñ\80аа"}\r
                 }\r
                 past{\r
-                    one{"{0} Ð¼Ñ\8fгмаÑ\80 Ð³Ð°Ñ\80агийн өмнө"}\r
-                    other{"{0} Ð¼Ñ\8fгмаÑ\80 Ð³Ð°Ñ\80агийн өмнө"}\r
+                    one{"{0} Ð\9cÑ\8f өмнө"}\r
+                    other{"{0} Ð\9cÑ\8f өмнө"}\r
                 }\r
             }\r
         }\r
         tue-short{\r
             relative{\r
-                "-1"{"өнгөÑ\80Ñ\81өн Ð¼Ñ\8fгмаÑ\80"}\r
-                "0"{"Ñ\8dнÑ\8d Ð¼Ñ\8fгмаÑ\80"}\r
-                "1"{"иÑ\80Ñ\8dÑ\85 Ð¼Ñ\8fгмаÑ\80"}\r
+                "-1"{"өнгөÑ\80Ñ\81өн Ð\9cÑ\8f"}\r
+                "0"{"Ñ\8dнÑ\8d Ð\9cÑ\8f"}\r
+                "1"{"иÑ\80Ñ\8dÑ\85 Ð\9cÑ\8f"}\r
             }\r
             relativeTime{\r
                 future{\r
-                    one{"{0} Ð¼Ñ\8fгмаÑ\80 Ð³Ð°Ñ\80агÑ\82"}\r
-                    other{"{0} Ð¼Ñ\8fгмаÑ\80 Ð³Ð°Ñ\80агÑ\82"}\r
+                    one{"{0} Ð\9cÑ\8f Ð´Ð°Ñ\80аа"}\r
+                    other{"{0} Ð\9cÑ\8f Ð´Ð°Ñ\80аа"}\r
                 }\r
                 past{\r
-                    one{"{0} Ð¼Ñ\8fгмаÑ\80 Ð³Ð°Ñ\80агийн өмнө"}\r
-                    other{"{0} Ð¼Ñ\8fгмаÑ\80 Ð³Ð°Ñ\80агийн өмнө"}\r
+                    one{"{0} Ð\9cÑ\8f өмнө"}\r
+                    other{"{0} Ð\9cÑ\8f өмнө"}\r
                 }\r
             }\r
         }\r
@@ -1539,8 +1541,8 @@ mn{
             }\r
             relativeTime{\r
                 future{\r
-                    one{"{0} лхагва гарагт"}\r
-                    other{"{0} лхагва гарагт"}\r
+                    one{"{0} лхагва гарагийн дараа"}\r
+                    other{"{0} лхагва гарагийн дараа"}\r
                 }\r
                 past{\r
                     one{"{0} лхагва гарагийн өмнө"}\r
@@ -1550,35 +1552,35 @@ mn{
         }\r
         wed-narrow{\r
             relative{\r
-                "-1"{"өнгөÑ\80Ñ\81өн Ð»ха"}\r
-                "0"{"Ñ\8dнÑ\8d Ð»ха"}\r
-                "1"{"иÑ\80Ñ\8dÑ\85 Ð»ха"}\r
+                "-1"{"өнгөÑ\80Ñ\81өн Ð\9bха"}\r
+                "0"{"Ñ\8dнÑ\8d Ð\9bха"}\r
+                "1"{"иÑ\80Ñ\8dÑ\85 Ð\9bха"}\r
             }\r
             relativeTime{\r
                 future{\r
-                    one{"{0} Ð»Ñ\85агва Ð³Ð°Ñ\80агÑ\82"}\r
-                    other{"{0} Ð»Ñ\85агва Ð³Ð°Ñ\80агÑ\82"}\r
+                    one{"{0} Ð\9bÑ\85а Ð´Ð°Ñ\80аа"}\r
+                    other{"{0} Ð\9bÑ\85а Ð´Ð°Ñ\80аа"}\r
                 }\r
                 past{\r
-                    one{"{0} Ð»Ñ\85агва Ð³Ð°Ñ\80агийн өмнө"}\r
-                    other{"{0} Ð»Ñ\85агва Ð³Ð°Ñ\80агийн өмнө"}\r
+                    one{"{0} Ð\9bÑ\85а өмнө"}\r
+                    other{"{0} Ð\9bÑ\85а өмнө"}\r
                 }\r
             }\r
         }\r
         wed-short{\r
             relative{\r
-                "-1"{"өнгөÑ\80Ñ\81өн Ð»Ñ\85агва"}\r
-                "0"{"Ñ\8dнÑ\8d Ð»Ñ\85агва"}\r
-                "1"{"иÑ\80Ñ\8dÑ\85 Ð»Ñ\85агва"}\r
+                "-1"{"өнгөÑ\80Ñ\81өн Ð\9bÑ\85а"}\r
+                "0"{"Ñ\8dнÑ\8d Ð\9bÑ\85а"}\r
+                "1"{"иÑ\80Ñ\8dÑ\85 Ð\9bÑ\85а"}\r
             }\r
             relativeTime{\r
                 future{\r
-                    one{"{0} Ð»Ñ\85агва Ð³Ð°Ñ\80агÑ\82"}\r
-                    other{"{0} Ð»Ñ\85агва Ð³Ð°Ñ\80агÑ\82"}\r
+                    one{"{0} Ð\9bÑ\85а Ð´Ð°Ñ\80аа"}\r
+                    other{"{0} Ð\9bÑ\85а Ð´Ð°Ñ\80аа"}\r
                 }\r
                 past{\r
-                    one{"{0} Ð»Ñ\85агва Ð³Ð°Ñ\80агийн өмнө"}\r
-                    other{"{0} Ð»Ñ\85агва Ð³Ð°Ñ\80агийн өмнө"}\r
+                    one{"{0} Ð\9bÑ\85а өмнө"}\r
+                    other{"{0} Ð\9bÑ\85а өмнө"}\r
                 }\r
             }\r
         }\r
@@ -1589,25 +1591,25 @@ mn{
                 "0"{"энэ долоо хоног"}\r
                 "1"{"ирэх долоо хоног"}\r
             }\r
-            relativePeriod{"{0} дэх долоо хоног"}\r
+            relativePeriod{"{0} долоо хоног"}\r
             relativeTime{\r
                 future{\r
-                    one{"{0} 7 хоногт"}\r
-                    other{"{0} 7 хоногт"}\r
+                    one{"{0} долоо хоногийн дараа"}\r
+                    other{"{0} долоо хоногийн дараа"}\r
                 }\r
                 past{\r
-                    one{"{0} 7 хоногийн өмнө"}\r
-                    other{"{0} 7 хоногийн өмнө"}\r
+                    one{"{0} долоо хоногийн өмнө"}\r
+                    other{"{0} долоо хоногийн өмнө"}\r
                 }\r
             }\r
         }\r
         week-narrow{\r
-            dn{"7х"}\r
-            relativePeriod{"{0} дэх долоо хоног"}\r
+            dn{"7 хоног"}\r
+            relativePeriod{"{0}-н 7 хоног"}\r
             relativeTime{\r
                 future{\r
-                    one{"{0} 7 хоногт"}\r
-                    other{"{0} 7 хоногт"}\r
+                    one{"{0} 7 хоногийн дараа"}\r
+                    other{"{0} 7 хоногийн дараа"}\r
                 }\r
                 past{\r
                     one{"{0} 7 хоногийн өмнө"}\r
@@ -1616,12 +1618,12 @@ mn{
             }\r
         }\r
         week-short{\r
-            dn{"7х"}\r
-            relativePeriod{"{0} дэх долоо хоног"}\r
+            dn{"7 хоног"}\r
+            relativePeriod{"{0}-н 7 хоног"}\r
             relativeTime{\r
                 future{\r
-                    one{"{0} 7 хоногт"}\r
-                    other{"{0} 7 хоногт"}\r
+                    one{"{0} 7 хоногийн дараа"}\r
+                    other{"{0} 7 хоногийн дараа"}\r
                 }\r
                 past{\r
                     one{"{0} 7 хоногийн өмнө"}\r
@@ -1630,13 +1632,13 @@ mn{
             }\r
         }\r
         weekOfMonth{\r
-            dn{"Сарын долоо хоног"}\r
+            dn{"сарын долоо хоног"}\r
         }\r
         weekOfMonth-narrow{\r
-            dn{"Сарын долоо хоног"}\r
+            dn{"сарын 7 хоног"}\r
         }\r
         weekOfMonth-short{\r
-            dn{"Сарын долоо хоног"}\r
+            dn{"сарын 7 хоног"}\r
         }\r
         weekday{\r
             dn{"гараг"}\r
@@ -1648,13 +1650,13 @@ mn{
             dn{"гараг"}\r
         }\r
         weekdayOfMonth{\r
-            dn{"Ð\90жлын өдөр"}\r
+            dn{"ажлын өдөр"}\r
         }\r
         weekdayOfMonth-narrow{\r
-            dn{"Ð\90жлын өдөр"}\r
+            dn{"ажлын өдөр"}\r
         }\r
         weekdayOfMonth-short{\r
-            dn{"Ð\90жлын өдөр"}\r
+            dn{"ажлын өдөр"}\r
         }\r
         year{\r
             dn{"жил"}\r
@@ -1665,8 +1667,8 @@ mn{
             }\r
             relativeTime{\r
                 future{\r
-                    one{"{0} Ð¶Ð¸Ð»Ð¸Ð¹Ð½ Ð´Ð¾Ñ\82оÑ\80"}\r
-                    other{"{0} Ð¶Ð¸Ð»Ð¸Ð¹Ð½ Ð´Ð¾Ñ\82оÑ\80"}\r
+                    one{"{0} Ð¶Ð¸Ð»Ð¸Ð¹Ð½ Ð´Ð°Ñ\80аа"}\r
+                    other{"{0} Ð¶Ð¸Ð»Ð¸Ð¹Ð½ Ð´Ð°Ñ\80аа"}\r
                 }\r
                 past{\r
                     one{"{0} жилийн өмнө"}\r
@@ -1678,12 +1680,12 @@ mn{
             dn{"жил"}\r
             relativeTime{\r
                 future{\r
-                    one{"+{0} жилд"}\r
-                    other{"+{0} жилд"}\r
+                    one{"{0} жилийн дараа"}\r
+                    other{"{0} жилийн дараа"}\r
                 }\r
                 past{\r
-                    one{"-{0} жил.н өмнө"}\r
-                    other{"-{0} жил.н өмнө"}\r
+                    one{"{0} жилийн өмнө"}\r
+                    other{"{0} жилийн өмнө"}\r
                 }\r
             }\r
         }\r
@@ -1691,8 +1693,8 @@ mn{
             dn{"жил"}\r
             relativeTime{\r
                 future{\r
-                    one{"{0} Ð¶Ð¸Ð»Ð¸Ð¹Ð½ Ð´Ð¾Ñ\82оÑ\80"}\r
-                    other{"{0} Ð¶Ð¸Ð»Ð¸Ð¹Ð½ Ð´Ð¾Ñ\82оÑ\80"}\r
+                    one{"{0} Ð¶Ð¸Ð»Ð¸Ð¹Ð½ Ð´Ð°Ñ\80аа"}\r
+                    other{"{0} Ð¶Ð¸Ð»Ð¸Ð¹Ð½ Ð´Ð°Ñ\80аа"}\r
                 }\r
                 past{\r
                     one{"{0} жилийн өмнө"}\r
index b75291a4bac40f0b6eeedabc88ab3b761fefa58f..4e8b3afe06443a91483f21f0f5ec4fb50abea02e 100644 (file)
@@ -47,7 +47,9 @@ mr{
         }\r
         latn{\r
             miscPatterns{\r
+                approximately{"~{0}"}\r
                 atLeast{"{0}+"}\r
+                atMost{"≤{0}"}\r
                 range{"{0}–{1}"}\r
             }\r
             patterns{\r
@@ -241,7 +243,7 @@ mr{
         minimumGroupingDigits{"1"}\r
         native{"deva"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.65"}\r
     calendar{\r
         buddhist{\r
             eras{\r
@@ -2519,8 +2521,13 @@ mr{
         general{\r
             lenient{\r
                 "[.․。︒﹒.。]",\r
+                "['ʼ՚᾽᾿’']",\r
+                "[%٪﹪%]",\r
+                "[؉‰]",\r
                 "[\$﹩$$]",\r
                 "[£₤]",\r
+                "[¥¥]",\r
+                "[₩₩]",\r
                 "[₨₹{Rp}{Rs}]",\r
             }\r
         }\r
index 76daa14983bbb207427117aea03de3f115964928..3f3e40de362dbb2bedfa0af588642cdcbb9a8f17 100644 (file)
@@ -25,7 +25,9 @@ ms{
         default{"latn"}\r
         latn{\r
             miscPatterns{\r
+                approximately{"~{0}"}\r
                 atLeast{"{0}+"}\r
+                atMost{"≤{0}"}\r
                 range{"{0}–{1}"}\r
             }\r
             patterns{\r
@@ -180,7 +182,7 @@ ms{
         minimumGroupingDigits{"1"}\r
         native{"latn"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.91"}\r
     calendar{\r
         buddhist{\r
             eras{\r
@@ -1790,7 +1792,7 @@ ms{
         japanese_kana{"Kana Jepun"}\r
         kanbun{"Kanbun"}\r
         kanji{"Kanji"}\r
-        keycap{"keycap"}\r
+        keycap{"butang kekunci"}\r
         leftwards_arrows{"anak panah ke kiri"}\r
         leftwards_rightwards_arrows{"anak panah ke kiri dan ke kanan"}\r
         letterlike_symbols{"Simbol Ala Huruf"}\r
@@ -2643,8 +2645,13 @@ ms{
         general{\r
             lenient{\r
                 "[.․。︒﹒.。]",\r
+                "['ʼ՚᾽᾿’']",\r
+                "[%٪﹪%]",\r
+                "[؉‰]",\r
                 "[\$﹩$$]",\r
                 "[£₤]",\r
+                "[¥¥]",\r
+                "[₩₩]",\r
                 "[₨₹{Rp}{Rs}]",\r
             }\r
         }\r
index c1ac6875d8866e607cc792d467a0b1752f11575e..28cb283b59feec3e203a84d778531f21577f3eb5 100644 (file)
@@ -19,10 +19,13 @@ mt{
         default{"latn"}\r
         latn{\r
             miscPatterns{\r
-                atLeast{"⩾{0}"}\r
+                approximately{"~{0}"}\r
+                atLeast{"≥{0}"}\r
+                atMost{"≤{0}"}\r
                 range{"{0}–{1}"}\r
             }\r
             patterns{\r
+                accountingFormat{"¤#,##0.00"}\r
                 currencyFormat{"¤#,##0.00"}\r
                 decimalFormat{"#,##0.###"}\r
                 percentFormat{"#,##0%"}\r
@@ -45,7 +48,7 @@ mt{
         minimumGroupingDigits{"1"}\r
         native{"latn"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.94"}\r
     calendar{\r
         generic{\r
             DateTimePatterns{\r
@@ -183,7 +186,12 @@ mt{
                 Timezone{"{0} {1}"}\r
             }\r
             availableFormats{\r
+                Bh{"h B"}\r
+                Bhm{"h:mm B"}\r
+                Bhms{"h:mm:ss B"}\r
                 E{"ccc"}\r
+                EBhm{"E h:mm B"}\r
+                EBhms{"E h:mm:ss B"}\r
                 EHm{"E HH:mm"}\r
                 EHms{"E HH:mm:ss"}\r
                 Ed{"d, E"}\r
@@ -196,10 +204,18 @@ mt{
                 H{"HH"}\r
                 Hm{"HH:mm"}\r
                 Hms{"HH:mm:ss"}\r
+                Hmsv{"HH:mm:ss v"}\r
+                Hmv{"HH:mm v"}\r
                 M{"L"}\r
                 MEd{"E, M-d"}\r
                 MMM{"LLL"}\r
                 MMMEd{"E, d 'ta'’ MMM"}\r
+                MMMMW{\r
+                    few{"W 'ġimgħa' 'ta''' MMMM"}\r
+                    many{"W 'ġimgħa' 'ta''' MMMM"}\r
+                    one{"W 'ġimgħa' 'ta''' MMMM"}\r
+                    other{"W 'ġimgħa' 'ta''' MMMM"}\r
+                }\r
                 MMMMd{"d 'ta'’ MMMM"}\r
                 MMMd{"MMM d"}\r
                 Md{"MM-dd"}\r
@@ -207,6 +223,8 @@ mt{
                 h{"h a"}\r
                 hm{"h:mm a"}\r
                 hms{"h:mm:ss a"}\r
+                hmsv{"h:mm:ss a v"}\r
+                hmv{"h:mm a v"}\r
                 ms{"mm:ss"}\r
                 y{"y"}\r
                 yM{"y-MM"}\r
@@ -215,8 +233,15 @@ mt{
                 yMMMEd{"E, d 'ta'’ MMM, y"}\r
                 yMMMM{"MMMM y"}\r
                 yMMMd{"d 'ta'’ MMM, y"}\r
+                yMd{"M/d/y"}\r
                 yQQQ{"QQQ - y"}\r
                 yQQQQ{"QQQQ - y"}\r
+                yw{\r
+                    few{"w 'ġimgħa' 'ta''' Y"}\r
+                    many{"w 'ġimgħa' 'ta''' Y"}\r
+                    one{"w 'ġimgħa' 'ta''' Y"}\r
+                    other{"w 'ġimgħa' 'ta''' Y"}\r
+                }\r
             }\r
             dayNames{\r
                 format{\r
@@ -325,6 +350,10 @@ mt{
                     "Qabel Kristu",\r
                     "Wara Kristu",\r
                 }\r
+                wide%variant{\r
+                    "QEK",\r
+                    "EK",\r
+                }\r
             }\r
             intervalFormats{\r
                 H{\r
@@ -405,6 +434,10 @@ mt{
                     d{"E, d MMM – E, d MMM, y"}\r
                     y{"E, d 'ta'’ MMM y – E, d 'ta'’ MMM y"}\r
                 }\r
+                yMMMM{\r
+                    M{"MMMM – MMMM y"}\r
+                    y{"MMMM y – MMMM y"}\r
+                }\r
                 yMMMd{\r
                     M{"y MMM d – MMM d"}\r
                     d{"d – d MMM y"}\r
@@ -558,21 +591,199 @@ mt{
     }\r
     fields{\r
         day{\r
-            dn{"Jum"}\r
+            dn{"jum"}\r
             relative{\r
-                "-1"{"Ilbieraħ"}\r
-                "0"{"Illum"}\r
-                "1"{"Għada"}\r
+                "-1"{"lbieraħ"}\r
+                "0"{"illum"}\r
+                "1"{"għada"}\r
+            }\r
+            relativeTime{\r
+                future{\r
+                    few{"fi żmien {0} ġurnata oħra"}\r
+                    many{"fi żmien {0} ġurnata oħra"}\r
+                    one{"fi żmien ġurnata"}\r
+                    other{"fi żmien {0} ġurnata oħra"}\r
+                }\r
+                past{\r
+                    few{"{0} ġranet ilu"}\r
+                    many{"{0}-il ġurnata ilu"}\r
+                    one{"ġurnata ilu"}\r
+                    other{"{0}-il ġurnata ilu"}\r
+                }\r
+            }\r
+        }\r
+        day-narrow{\r
+            dn{"Jum"}\r
+            relativeTime{\r
+                future{\r
+                    few{"fi żmien {0} ġurnata oħra"}\r
+                    many{"fi żmien {0} ġurnata oħra"}\r
+                    one{"fi żmien ġurnata"}\r
+                    other{"fi żmien {0} ġurnata oħra"}\r
+                }\r
+                past{\r
+                    few{"{0} ġranet ilu"}\r
+                    many{"{0}-il ġurnata ilu"}\r
+                    one{"ġurnata ilu"}\r
+                    other{"{0}-il ġurnata ilu"}\r
+                }\r
+            }\r
+        }\r
+        day-short{\r
+            dn{"Jum"}\r
+            relativeTime{\r
+                future{\r
+                    few{"fi żmien {0} ġurnata oħra"}\r
+                    many{"fi żmien {0} ġurnata oħra"}\r
+                    one{"fi żmien ġurnata"}\r
+                    other{"fi żmien {0} ġurnata oħra"}\r
+                }\r
+                past{\r
+                    few{"{0} ġranet ilu"}\r
+                    many{"{0}-il ġurnata ilu"}\r
+                    one{"ġurnata ilu"}\r
+                    other{"{0}-il ġurnata ilu"}\r
+                }\r
             }\r
         }\r
+        dayOfYear{\r
+            dn{"jum tas-sena"}\r
+        }\r
+        dayOfYear-narrow{\r
+            dn{"jum tas-sena"}\r
+        }\r
+        dayperiod{\r
+            dn{"AM/PM"}\r
+        }\r
+        dayperiod-narrow{\r
+            dn{"AM/PM"}\r
+        }\r
+        dayperiod-short{\r
+            dn{"AM/PM"}\r
+        }\r
         era{\r
-            dn{"Epoka"}\r
+            dn{"Era"}\r
+        }\r
+        era-narrow{\r
+            dn{"Era"}\r
+        }\r
+        era-short{\r
+            dn{"Era"}\r
+        }\r
+        fri{\r
+            relative{\r
+                "-1"{"last Friday"}\r
+                "0"{"this Friday"}\r
+                "1"{"next Friday"}\r
+            }\r
         }\r
         hour{\r
-            dn{"Siegħa"}\r
+            dn{"siegħa"}\r
+            relative{\r
+                "0"{"din is-siegħa"}\r
+            }\r
+            relativeTime{\r
+                future{\r
+                    few{"fi żmien {0} sigħat"}\r
+                    many{"fi żmien{0} sigħat"}\r
+                    one{"fi żmien siegħa oħra"}\r
+                    other{"fi żmien {0} sigħat"}\r
+                }\r
+                past{\r
+                    few{"{0} sigħat ilu"}\r
+                    many{"{0} sigħat ilu"}\r
+                    one{"siegħa ilu"}\r
+                    other{"{0} sigħat ilu"}\r
+                }\r
+            }\r
+        }\r
+        hour-narrow{\r
+            dn{"siegħa"}\r
+            relativeTime{\r
+                future{\r
+                    few{"fi żmien {0} sigħat"}\r
+                    many{"fi żmien {0} sigħat"}\r
+                    one{"fi żmien siegħa oħra"}\r
+                    other{"fi żmien {0} sigħat"}\r
+                }\r
+                past{\r
+                    few{"{0} sigħat ilu"}\r
+                    many{"{0} sigħat ilu"}\r
+                    one{"siegħa ilu"}\r
+                    other{"{0} sigħat ilu"}\r
+                }\r
+            }\r
+        }\r
+        hour-short{\r
+            dn{"siegħa"}\r
+            relativeTime{\r
+                future{\r
+                    few{"fi żmien {0} sigħat"}\r
+                    many{"+{0} h"}\r
+                    one{"fi żmien siegħa oħra"}\r
+                    other{"fi żmien {0} sigħat"}\r
+                }\r
+                past{\r
+                    few{"{0} sigħat ilu"}\r
+                    many{"{0} sigħat ilu"}\r
+                    one{"siegħa ilu"}\r
+                    other{"{0} sigħat ilu"}\r
+                }\r
+            }\r
         }\r
         minute{\r
-            dn{"Minuta"}\r
+            dn{"minuta"}\r
+            relative{\r
+                "0"{"din il-minuta"}\r
+            }\r
+            relativeTime{\r
+                future{\r
+                    few{"sa {0} minuti oħra"}\r
+                    many{"sa {0} minuti oħra"}\r
+                    one{"sa minuta oħra"}\r
+                    other{"sa {0} minuti oħra"}\r
+                }\r
+                past{\r
+                    few{"{0} minuti ilu"}\r
+                    many{"{0} minuti ilu"}\r
+                    one{"minuta ilu"}\r
+                    other{"{0} minuti ilu"}\r
+                }\r
+            }\r
+        }\r
+        minute-narrow{\r
+            dn{"m"}\r
+            relativeTime{\r
+                future{\r
+                    few{"sa {0} min. oħra"}\r
+                    many{"+{0} min"}\r
+                    one{"sa min. oħra"}\r
+                    other{"sa {0} min. oħra"}\r
+                }\r
+                past{\r
+                    few{"{0} min. ilu"}\r
+                    many{"{0} min. ilu"}\r
+                    one{"min. ilu"}\r
+                    other{"{0} min. ilu"}\r
+                }\r
+            }\r
+        }\r
+        minute-short{\r
+            dn{"min."}\r
+            relativeTime{\r
+                future{\r
+                    few{"sa {0} min. oħra"}\r
+                    many{"sa {0} min. oħra"}\r
+                    one{"sa min. oħra"}\r
+                    other{"sa {0} min. oħra"}\r
+                }\r
+                past{\r
+                    few{"{0} min. ilu"}\r
+                    many{"{0} minuti ilu"}\r
+                    one{"min. ilu"}\r
+                    other{"{0} min. ilu"}\r
+                }\r
+            }\r
         }\r
         mon{\r
             relative{\r
@@ -581,53 +792,415 @@ mt{
                 "1"{"It-Tnejn li ġej"}\r
             }\r
         }\r
+        mon-narrow{\r
+            relative{\r
+                "-1"{"it-Tn. li għadda"}\r
+                "0"{"it-Tn. li ġej"}\r
+                "1"{"it-Tn. ta’ wara"}\r
+            }\r
+        }\r
+        mon-short{\r
+            relative{\r
+                "-1"{"it-Tn. li għadda"}\r
+                "0"{"it-Tn. li ġej"}\r
+                "1"{"it-Tn. ta’ wara"}\r
+            }\r
+        }\r
         month{\r
-            dn{"Xahar"}\r
+            dn{"xahar"}\r
             relative{\r
                 "-1"{"Ix-xahar li għadda"}\r
                 "0"{"Dan ix-xahar"}\r
                 "1"{"Ix-xahar id-dieħel"}\r
             }\r
+            relativeTime{\r
+                future{\r
+                    few{"fi {0} xhur oħra"}\r
+                    many{"fi {0} xhur oħra"}\r
+                    one{"sa xahar ieħor"}\r
+                    other{"fi {0} xhur oħra"}\r
+                }\r
+                past{\r
+                    few{"{0} xhur ilu"}\r
+                    many{"{0} xhur ilu"}\r
+                    one{"xahar ilu"}\r
+                    other{"{0} xhur ilu"}\r
+                }\r
+            }\r
+        }\r
+        month-narrow{\r
+            dn{"Xahar"}\r
+            relativeTime{\r
+                future{\r
+                    few{"sa {0} xhur oħra"}\r
+                    many{"sa {0} xhur oħra"}\r
+                    one{"sa xahar ieħor"}\r
+                    other{"sa {0} xhur oħra"}\r
+                }\r
+                past{\r
+                    few{"{0} xhur ilu"}\r
+                    many{"{0} xhur ilu"}\r
+                    one{"xahar ilu"}\r
+                    other{"{0} xhur ilu"}\r
+                }\r
+            }\r
+        }\r
+        month-short{\r
+            dn{"Xahar"}\r
+            relativeTime{\r
+                future{\r
+                    few{"sa {0} xhur oħra"}\r
+                    many{"sa {0} xhur oħra"}\r
+                    one{"sa xahar ieħor"}\r
+                    other{"sa {0} xhur oħra"}\r
+                }\r
+                past{\r
+                    few{"{0} xhur ilu"}\r
+                    many{"{0} xhur ilu"}\r
+                    one{"{0} xahar ilu"}\r
+                    other{"{0} xhur ilu"}\r
+                }\r
+            }\r
+        }\r
+        quarter{\r
+            relative{\r
+                "-1"{"il-kwart ta’ sena li għadda"}\r
+                "0"{"il-kwart ta’ sena li qegħdin fih"}\r
+                "1"{"il-kwart li jmiss tas-sena"}\r
+            }\r
+            relativeTime{\r
+                future{\r
+                    few{"f’{0} kwarti ta’ sena oħrajn"}\r
+                    many{"f’{0} kwarti ta’ sena oħrajn"}\r
+                    one{"f’{0} kwarti ta’ sena oħrajn"}\r
+                    other{"f’{0} kwarti ta’ sena oħrajn"}\r
+                }\r
+                past{\r
+                    few{"{0} kwarti ta’ sena li għaddew"}\r
+                    many{"{0} kwarti ta’ sena li għaddew"}\r
+                    one{"il-kwart ta’ sena li għadda"}\r
+                    other{"{0} kwarti ta’ sena li għaddew"}\r
+                }\r
+            }\r
+        }\r
+        quarter-narrow{\r
+            dn{\r
+                "l-ewwel kwart tas-sena, it-tieni kwart tas-sena, it-tielet kwart tas"\r
+                "-sena, ir-raba’ kwart tas-sena"\r
+            }\r
+            relative{\r
+                "-1"{"il-kwart ta’ sena li għadda"}\r
+                "0"{"il-kwart ta’ sena li qegħdin fih"}\r
+                "1"{"il-kwart li jmiss tas-sena"}\r
+            }\r
+            relativeTime{\r
+                future{\r
+                    few{"f’{0} kwarti ta’ sena oħrajn"}\r
+                    many{"f’{0} kwarti ta’ sena oħrajn"}\r
+                    one{"fi kwart ta’ sena ieħor"}\r
+                    other{"f’{0} kwarti ta’ sena oħrajn"}\r
+                }\r
+                past{\r
+                    few{"{0} kwarti ta’ sena ilu"}\r
+                    many{"{0} kwarti ta’ sena ilu"}\r
+                    one{"fil-kwart tas-sena li għadda"}\r
+                    other{"{0} kwarti ta’ sena ilu"}\r
+                }\r
+            }\r
+        }\r
+        quarter-short{\r
+            relative{\r
+                "-1"{"il-kwart ta’ sena li għadda"}\r
+                "0"{"il-kwart ta’ sena li qegħdin fih"}\r
+                "1"{"il-kwart li jmiss tas-sena"}\r
+            }\r
+            relativeTime{\r
+                future{\r
+                    few{"f’{0} kwarti ta’ sena oħrajn"}\r
+                    many{"f’{0} kwarti ta’ sena oħrajn"}\r
+                    one{"fil-kwart tas-sena li ġej"}\r
+                    other{"f’{0} kwarti ta’ sena oħrajn"}\r
+                }\r
+                past{\r
+                    few{"{0} kwarti ta’ sena ilu"}\r
+                    many{"{0} kwarti ta’ sena ilu"}\r
+                    one{"fil-kwart tas-sena li għadda"}\r
+                    other{"{0} kwarti ta’ sena ilu"}\r
+                }\r
+            }\r
         }\r
         second{\r
-            dn{"Sekonda"}\r
+            dn{"sekonda"}\r
+            relative{\r
+                "0"{"issa"}\r
+            }\r
+            relativeTime{\r
+                future{\r
+                    few{"sa {0} sekondi oħra"}\r
+                    many{"sa {0} sekondi oħra"}\r
+                    one{"sa {0} sekondi oħra"}\r
+                    other{"sa {0} sekondi oħra"}\r
+                }\r
+                past{\r
+                    few{"{0} sekondi ilu"}\r
+                    many{"{0} sekondi ilu"}\r
+                    one{"sekonda ilu"}\r
+                    other{"{0} sekondi ilu"}\r
+                }\r
+            }\r
+        }\r
+        second-narrow{\r
+            dn{"s"}\r
+            relativeTime{\r
+                future{\r
+                    few{"sa {0} sek. oħra"}\r
+                    many{"sa {0} sek. oħra"}\r
+                    one{"sa sek. oħra"}\r
+                    other{"sa {0} sek. oħra"}\r
+                }\r
+                past{\r
+                    few{"{0} sek. ilu"}\r
+                    many{"{0} sek. ilu"}\r
+                    one{"sek. ilu"}\r
+                    other{"{0} sek. ilu"}\r
+                }\r
+            }\r
+        }\r
+        second-short{\r
+            dn{"sek."}\r
+            relativeTime{\r
+                future{\r
+                    few{"sa {0} sek. oħra"}\r
+                    many{"sa {0} sek. oħra"}\r
+                    one{"sa {0} sekondi oħra"}\r
+                    other{"sa {0} sekondi oħra"}\r
+                }\r
+                past{\r
+                    few{"{0} sek. ilu"}\r
+                    many{"{0} sek. ilu"}\r
+                    one{"sek. ilu"}\r
+                    other{"{0} sek. ilu"}\r
+                }\r
+            }\r
         }\r
         sun{\r
             relative{\r
                 "-1"{"Il-Ħadd li għadda"}\r
-                "0"{"Dan il-Ħadd"}\r
-                "1"{"Il-Ħadd li ġej"}\r
+                "0"{"il-Ħadd li ġej"}\r
+                "1"{"il-Ħadd ta’ wara"}\r
+            }\r
+            relativeTime{\r
+                future{\r
+                    few{"sa {0} Ħdud oħra"}\r
+                    many{"sa {0} Ħdud oħra"}\r
+                    one{"sa Ħadd ieħor"}\r
+                    other{"sa {0} Ħdud oħra"}\r
+                }\r
+                past{\r
+                    few{"{0} Ħdud ilu"}\r
+                    many{"{0} Ħdud ilu"}\r
+                    one{"il-Ħadd li għadda"}\r
+                    other{"{0} Ħdud ilu"}\r
+                }\r
+            }\r
+        }\r
+        sun-narrow{\r
+            relative{\r
+                "-1"{"il-Ħd. li għadda"}\r
+                "0"{"il-Ħd. li ġej"}\r
+                "1"{"il-Ħd. ta’ wara"}\r
+            }\r
+            relativeTime{\r
+                future{\r
+                    few{"sa {0} Ħd. oħra"}\r
+                    many{"sa {0} Ħd. oħra"}\r
+                    one{"sa Ħd. ieħor"}\r
+                    other{"sa {0} Ħd. oħra"}\r
+                }\r
+                past{\r
+                    few{"{0} Ħd. ilu"}\r
+                    many{"{0} Ħd. ilu"}\r
+                    one{"{0} Ħd. ilu"}\r
+                    other{"{0} Ħd. ilu"}\r
+                }\r
+            }\r
+        }\r
+        sun-short{\r
+            relative{\r
+                "-1"{"il-Ħd. li għadda"}\r
+                "0"{"il-Ħd. li ġej"}\r
+                "1"{"il-Ħd. ta’ wara"}\r
+            }\r
+            relativeTime{\r
+                future{\r
+                    few{"sa {0} Ħd. oħra"}\r
+                    many{"sa {0} Ħd. oħra"}\r
+                    one{"sa Ħd. ieħor"}\r
+                    other{"sa {0} Ħd. oħra"}\r
+                }\r
+                past{\r
+                    few{"{0} Ħd. ilu"}\r
+                    many{"{0} Ħd. ilu"}\r
+                    one{"il-Ħd. li għadda"}\r
+                    other{"{0} Ħd. ilu"}\r
+                }\r
+            }\r
+        }\r
+        tue{\r
+            relative{\r
+                "-1"{"it-Tlieta li għaddiet"}\r
+                "0"{"it-Tlieta li ġejja"}\r
+                "1"{"it-Tlieta ta’ wara"}\r
             }\r
         }\r
         week{\r
-            dn{"Ä imgħa"}\r
+            dn{"Ä¡imgħa"}\r
             relative{\r
-                "-1"{"Il-ġimgħa li għaddiet"}\r
-                "0"{"Din il-ġimgħa"}\r
-                "1"{"Il-ġimgħa d-dieħla"}\r
+                "-1"{"il-ġimgħa li għaddiet"}\r
+                "0"{"din il-ġimgħa"}\r
+                "1"{"il-ġimgħa d-dieħla"}\r
+            }\r
+            relativePeriod{"fil-ġimgħa ta’ {0}"}\r
+            relativeTime{\r
+                future{\r
+                    few{"sa {0} ġimgħat oħra"}\r
+                    many{"sa {0} ġimgħat oħra"}\r
+                    one{"sa ġimgħa oħra"}\r
+                    other{"sa {0} ġimgħat oħra"}\r
+                }\r
+                past{\r
+                    few{"{0} ġimgħat ilu"}\r
+                    many{"{0} ġimgħat ilu"}\r
+                    one{"ġimgħa ilu"}\r
+                    other{"{0} ġimgħat ilu"}\r
+                }\r
             }\r
         }\r
+        week-narrow{\r
+            relativePeriod{"fil-ġimgħa ta’ {0}"}\r
+            relativeTime{\r
+                future{\r
+                    few{"sa {0} ġimgħat oħra"}\r
+                    many{"sa {0} ġimgħat oħra"}\r
+                    one{"sa ġimgħa oħra"}\r
+                    other{"sa {0} ġimgħat oħra"}\r
+                }\r
+                past{\r
+                    few{"{0} ġimgħat ilu"}\r
+                    many{"{0} ġimgħat ilu"}\r
+                    one{"ġimgħa ilu"}\r
+                    other{"{0} ġimgħat ilu"}\r
+                }\r
+            }\r
+        }\r
+        week-short{\r
+            relativePeriod{"fil-ġimgħa ta’ {0}"}\r
+            relativeTime{\r
+                future{\r
+                    few{"sa {0} ġimgħat oħra"}\r
+                    many{"sa {0} ġimgħat oħra"}\r
+                    one{"sa ġimgħa oħra"}\r
+                    other{"+{0} w"}\r
+                }\r
+                past{\r
+                    few{"{0} ġimgħat ilu"}\r
+                    many{"{0} ġimgħat ilu"}\r
+                    one{"ġimgħa ilu"}\r
+                    other{"{0} ġimgħat ilu"}\r
+                }\r
+            }\r
+        }\r
+        weekOfMonth{\r
+            dn{"ġimgħa tax-xahar"}\r
+        }\r
+        weekOfMonth-narrow{\r
+            dn{"ġimgħa tax-xahar"}\r
+        }\r
+        weekOfMonth-short{\r
+            dn{"ġimgħa tax-xahar"}\r
+        }\r
         weekday{\r
-            dn{"Jum tal-Ġimgħa"}\r
+            dn{"jum tal-ġimgħa"}\r
+        }\r
+        weekday-narrow{\r
+            dn{"jum tal-ġimgħa"}\r
+        }\r
+        weekday-short{\r
+            dn{"jum tal-ġimgħa"}\r
+        }\r
+        weekdayOfMonth{\r
+            dn{"jum tax-xahar"}\r
+        }\r
+        weekdayOfMonth-narrow{\r
+            dn{"Weekday Of Month"}\r
+        }\r
+        weekdayOfMonth-short{\r
+            dn{"jum tax-xahar"}\r
         }\r
         year{\r
             dn{"Sena"}\r
             relative{\r
-                "-1"{"Is-sena li għaddiet"}\r
+                "-1"{"is-sena l-oħra"}\r
                 "0"{"din is-sena"}\r
-                "1"{"Is-sena d-dieħla"}\r
+                "1"{"is-sena d-dieħla"}\r
             }\r
             relativeTime{\r
+                future{\r
+                    few{"fi żmien {0} snin oħra"}\r
+                    many{"fi żmien {0} snin oħra"}\r
+                    one{"fi żmien sena"}\r
+                    other{"fi żmien {0} snin oħra"}\r
+                }\r
                 past{\r
                     few{"{0} snin ilu"}\r
                     many{"{0} snin ilu"}\r
-                    one{"{0} sena ilu"}\r
+                    one{"sena ilu"}\r
+                    other{"{0} snin ilu"}\r
+                }\r
+            }\r
+        }\r
+        year-narrow{\r
+            dn{"Sena"}\r
+            relativeTime{\r
+                future{\r
+                    few{"fi żmien {0} snin oħra"}\r
+                    many{"fi żmien {0} snin oħra"}\r
+                    one{"fi żmien sena"}\r
+                    other{"fi żmien {0} snin oħra"}\r
+                }\r
+                past{\r
+                    few{"{0} snin ilu"}\r
+                    many{"{0} snin ilu"}\r
+                    one{"sena ilu"}\r
+                    other{"{0} snin ilu"}\r
+                }\r
+            }\r
+        }\r
+        year-short{\r
+            dn{"Sena"}\r
+            relativeTime{\r
+                future{\r
+                    few{"fi żmien {0} snin oħra"}\r
+                    many{"fi żmien {0} snin oħra"}\r
+                    one{"fi żmien sena"}\r
+                    other{"fi żmien {0} snin oħra"}\r
+                }\r
+                past{\r
+                    few{"{0} snin ilu"}\r
+                    many{"{0} snin ilu"}\r
+                    one{"sa sena ilu"}\r
                     other{"{0} snin ilu"}\r
                 }\r
             }\r
         }\r
         zone{\r
-            dn{"Żona"}\r
+            dn{"żona tal-ħin"}\r
+        }\r
+        zone-narrow{\r
+            dn{"żona"}\r
+        }\r
+        zone-short{\r
+            dn{"żona"}\r
         }\r
     }\r
     listPattern{\r
index 00c86792426a5d85df1adb38306bf8a0bfc0ad28..7db74b5c40942e6db6459391038a0c0f0eb3fa3c 100644 (file)
@@ -26,7 +26,9 @@ my{
         default{"mymr"}\r
         latn{\r
             miscPatterns{\r
+                approximately{"~{0}"}\r
                 atLeast{"{0} နှင့်အထက်"}\r
+                atMost{"≤{0}"}\r
                 range{"{0} - {1}"}\r
             }\r
             patterns{\r
@@ -201,7 +203,7 @@ my{
         }\r
         native{"mymr"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.88"}\r
     calendar{\r
         generic{\r
             DateTimePatterns{\r
@@ -440,7 +442,7 @@ my{
                 yQQQ{"y QQQ"}\r
                 yQQQQ{"y QQQQ"}\r
                 yw{\r
-                    other{"y ခု w ပတ်မြောက်"}\r
+                    other{"Y ခု w ပတ်မြောက်"}\r
                 }\r
             }\r
             dayNames{\r
@@ -584,7 +586,7 @@ my{
             eras{\r
                 abbreviated{\r
                     "ဘီစီ",\r
-                    "á\80¡á\80±á\80\92ီ",\r
+                    "á\80¡á\80\92á\80±ီ",\r
                 }\r
                 abbreviated%variant{\r
                     "ဘီစီအီး",\r
@@ -1668,8 +1670,13 @@ my{
         general{\r
             lenient{\r
                 "[.․。︒﹒.。]",\r
+                "['ʼ՚᾽᾿’']",\r
+                "[%٪﹪%]",\r
+                "[؉‰]",\r
                 "[\$﹩$$]",\r
                 "[£₤]",\r
+                "[¥¥]",\r
+                "[₩₩]",\r
                 "[₨₹{Rp}{Rs}]",\r
             }\r
         }\r
index beb2a95e48952f7e6dc80dded1f250cd832a9e9c..20ee82a52bb6edc41396cb7bff39e50053db5351 100644 (file)
@@ -21,7 +21,7 @@ mzn{
         default{"arabext"}\r
         native{"arabext"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.41.34"}\r
     calendar{\r
         default{"persian"}\r
         gregorian{\r
index 09052b30ff480a0858f1277f351f09e8ee015a97..0e6a80a1e6196723497a137a8ef4d3ca4139bfc3 100644 (file)
@@ -18,10 +18,11 @@ nb{
     NumberElements{\r
         arab{\r
             miscPatterns{\r
-                atLeast{"⩾{0}"}\r
+                atLeast{"â\89¥{0}"}\r
                 range{"{0}–{1}"}\r
             }\r
             patterns{\r
+                accountingFormat{"¤ #,##0.00"}\r
                 currencyFormat{"¤ #,##0.00"}\r
                 decimalFormat{"#,##0.###"}\r
                 percentFormat{"#,##0 %"}\r
@@ -44,7 +45,7 @@ nb{
         }\r
         arabext{\r
             miscPatterns{\r
-                atLeast{"⩾{0}"}\r
+                atLeast{"â\89¥{0}"}\r
                 range{"{0}–{1}"}\r
             }\r
             patterns{\r
@@ -71,7 +72,7 @@ nb{
         }\r
         bali{\r
             miscPatterns{\r
-                atLeast{"⩾{0}"}\r
+                atLeast{"â\89¥{0}"}\r
                 range{"{0}–{1}"}\r
             }\r
             patterns{\r
@@ -97,7 +98,7 @@ nb{
         }\r
         beng{\r
             miscPatterns{\r
-                atLeast{"⩾{0}"}\r
+                atLeast{"â\89¥{0}"}\r
                 range{"{0}–{1}"}\r
             }\r
             patterns{\r
@@ -123,7 +124,7 @@ nb{
         }\r
         brah{\r
             miscPatterns{\r
-                atLeast{"⩾{0}"}\r
+                atLeast{"â\89¥{0}"}\r
                 range{"{0}–{1}"}\r
             }\r
             patterns{\r
@@ -149,7 +150,7 @@ nb{
         }\r
         cakm{\r
             miscPatterns{\r
-                atLeast{"⩾{0}"}\r
+                atLeast{"â\89¥{0}"}\r
                 range{"{0}–{1}"}\r
             }\r
             patterns{\r
@@ -175,7 +176,7 @@ nb{
         }\r
         cham{\r
             miscPatterns{\r
-                atLeast{"⩾{0}"}\r
+                atLeast{"â\89¥{0}"}\r
                 range{"{0}–{1}"}\r
             }\r
             patterns{\r
@@ -202,7 +203,7 @@ nb{
         default{"latn"}\r
         deva{\r
             miscPatterns{\r
-                atLeast{"⩾{0}"}\r
+                atLeast{"â\89¥{0}"}\r
                 range{"{0}–{1}"}\r
             }\r
             patterns{\r
@@ -228,7 +229,7 @@ nb{
         }\r
         fullwide{\r
             miscPatterns{\r
-                atLeast{"⩾{0}"}\r
+                atLeast{"â\89¥{0}"}\r
                 range{"{0}–{1}"}\r
             }\r
             patterns{\r
@@ -254,7 +255,7 @@ nb{
         }\r
         gujr{\r
             miscPatterns{\r
-                atLeast{"⩾{0}"}\r
+                atLeast{"â\89¥{0}"}\r
                 range{"{0}–{1}"}\r
             }\r
             patterns{\r
@@ -280,7 +281,7 @@ nb{
         }\r
         guru{\r
             miscPatterns{\r
-                atLeast{"⩾{0}"}\r
+                atLeast{"â\89¥{0}"}\r
                 range{"{0}–{1}"}\r
             }\r
             patterns{\r
@@ -306,7 +307,7 @@ nb{
         }\r
         hanidec{\r
             miscPatterns{\r
-                atLeast{"⩾{0}"}\r
+                atLeast{"â\89¥{0}"}\r
                 range{"{0}–{1}"}\r
             }\r
             patterns{\r
@@ -332,7 +333,7 @@ nb{
         }\r
         java{\r
             miscPatterns{\r
-                atLeast{"⩾{0}"}\r
+                atLeast{"â\89¥{0}"}\r
                 range{"{0}–{1}"}\r
             }\r
             patterns{\r
@@ -358,7 +359,7 @@ nb{
         }\r
         kali{\r
             miscPatterns{\r
-                atLeast{"⩾{0}"}\r
+                atLeast{"â\89¥{0}"}\r
                 range{"{0}–{1}"}\r
             }\r
             patterns{\r
@@ -384,7 +385,7 @@ nb{
         }\r
         khmr{\r
             miscPatterns{\r
-                atLeast{"⩾{0}"}\r
+                atLeast{"â\89¥{0}"}\r
                 range{"{0}–{1}"}\r
             }\r
             patterns{\r
@@ -410,7 +411,7 @@ nb{
         }\r
         knda{\r
             miscPatterns{\r
-                atLeast{"⩾{0}"}\r
+                atLeast{"â\89¥{0}"}\r
                 range{"{0}–{1}"}\r
             }\r
             patterns{\r
@@ -436,7 +437,7 @@ nb{
         }\r
         lana{\r
             miscPatterns{\r
-                atLeast{"⩾{0}"}\r
+                atLeast{"â\89¥{0}"}\r
                 range{"{0}–{1}"}\r
             }\r
             patterns{\r
@@ -462,7 +463,7 @@ nb{
         }\r
         lanatham{\r
             miscPatterns{\r
-                atLeast{"⩾{0}"}\r
+                atLeast{"â\89¥{0}"}\r
                 range{"{0}–{1}"}\r
             }\r
             patterns{\r
@@ -488,7 +489,7 @@ nb{
         }\r
         laoo{\r
             miscPatterns{\r
-                atLeast{"⩾{0}"}\r
+                atLeast{"â\89¥{0}"}\r
                 range{"{0}–{1}"}\r
             }\r
             patterns{\r
@@ -514,7 +515,9 @@ nb{
         }\r
         latn{\r
             miscPatterns{\r
-                atLeast{"⩾{0}"}\r
+                approximately{"~{0}"}\r
+                atLeast{"≥{0}"}\r
+                atMost{"≤{0}"}\r
                 range{"{0}–{1}"}\r
             }\r
             patterns{\r
@@ -641,40 +644,40 @@ nb{
                         other{"000k"}\r
                     }\r
                     1000000{\r
-                        one{"0 mill"}\r
-                        other{"0 mill"}\r
+                        one{"0 mill'.'"}\r
+                        other{"0 mill'.'"}\r
                     }\r
                     10000000{\r
-                        one{"00 mill"}\r
-                        other{"00 mill"}\r
+                        one{"00 mill'.'"}\r
+                        other{"00 mill'.'"}\r
                     }\r
                     100000000{\r
-                        one{"000 mill"}\r
-                        other{"000 mill"}\r
+                        one{"000 mill'.'"}\r
+                        other{"000 mill'.'"}\r
                     }\r
                     1000000000{\r
-                        one{"0 mrd"}\r
-                        other{"0 mrd"}\r
+                        one{"0 mrd'.'"}\r
+                        other{"0 mrd'.'"}\r
                     }\r
                     10000000000{\r
-                        one{"00 mrd"}\r
-                        other{"00 mrd"}\r
+                        one{"00 mrd'.'"}\r
+                        other{"00 mrd'.'"}\r
                     }\r
                     100000000000{\r
-                        one{"000 mrd"}\r
-                        other{"000 mrd"}\r
+                        one{"000 mrd'.'"}\r
+                        other{"000 mrd'.'"}\r
                     }\r
                     1000000000000{\r
-                        one{"0 bill"}\r
-                        other{"0 bill"}\r
+                        one{"0 bill'.'"}\r
+                        other{"0 bill'.'"}\r
                     }\r
                     10000000000000{\r
-                        one{"00 bill"}\r
-                        other{"00 bill"}\r
+                        one{"00 bill'.'"}\r
+                        other{"00 bill'.'"}\r
                     }\r
                     100000000000000{\r
-                        one{"000 bill"}\r
-                        other{"000 bill"}\r
+                        one{"000 bill'.'"}\r
+                        other{"000 bill'.'"}\r
                     }\r
                 }\r
             }\r
@@ -695,7 +698,7 @@ nb{
         }\r
         lepc{\r
             miscPatterns{\r
-                atLeast{"⩾{0}"}\r
+                atLeast{"â\89¥{0}"}\r
                 range{"{0}–{1}"}\r
             }\r
             patterns{\r
@@ -721,7 +724,7 @@ nb{
         }\r
         limb{\r
             miscPatterns{\r
-                atLeast{"⩾{0}"}\r
+                atLeast{"â\89¥{0}"}\r
                 range{"{0}–{1}"}\r
             }\r
             patterns{\r
@@ -747,7 +750,7 @@ nb{
         }\r
         minimalPairs{\r
             ordinal{\r
-                other{"Ta {0}. svingen til høyre."}\r
+                other{"Ta {0}. sving til høyre."}\r
             }\r
             plural{\r
                 one{"{0} dag"}\r
@@ -757,7 +760,7 @@ nb{
         minimumGroupingDigits{"1"}\r
         mlym{\r
             miscPatterns{\r
-                atLeast{"⩾{0}"}\r
+                atLeast{"â\89¥{0}"}\r
                 range{"{0}–{1}"}\r
             }\r
             patterns{\r
@@ -783,7 +786,7 @@ nb{
         }\r
         mong{\r
             miscPatterns{\r
-                atLeast{"⩾{0}"}\r
+                atLeast{"â\89¥{0}"}\r
                 range{"{0}–{1}"}\r
             }\r
             patterns{\r
@@ -809,7 +812,7 @@ nb{
         }\r
         mtei{\r
             miscPatterns{\r
-                atLeast{"⩾{0}"}\r
+                atLeast{"â\89¥{0}"}\r
                 range{"{0}–{1}"}\r
             }\r
             patterns{\r
@@ -835,7 +838,7 @@ nb{
         }\r
         mymr{\r
             miscPatterns{\r
-                atLeast{"⩾{0}"}\r
+                atLeast{"â\89¥{0}"}\r
                 range{"{0}–{1}"}\r
             }\r
             patterns{\r
@@ -861,7 +864,7 @@ nb{
         }\r
         mymrshan{\r
             miscPatterns{\r
-                atLeast{"⩾{0}"}\r
+                atLeast{"â\89¥{0}"}\r
                 range{"{0}–{1}"}\r
             }\r
             patterns{\r
@@ -888,7 +891,7 @@ nb{
         native{"latn"}\r
         nkoo{\r
             miscPatterns{\r
-                atLeast{"⩾{0}"}\r
+                atLeast{"â\89¥{0}"}\r
                 range{"{0}–{1}"}\r
             }\r
             patterns{\r
@@ -914,7 +917,7 @@ nb{
         }\r
         olck{\r
             miscPatterns{\r
-                atLeast{"⩾{0}"}\r
+                atLeast{"â\89¥{0}"}\r
                 range{"{0}–{1}"}\r
             }\r
             patterns{\r
@@ -940,7 +943,7 @@ nb{
         }\r
         orya{\r
             miscPatterns{\r
-                atLeast{"⩾{0}"}\r
+                atLeast{"â\89¥{0}"}\r
                 range{"{0}–{1}"}\r
             }\r
             patterns{\r
@@ -966,7 +969,7 @@ nb{
         }\r
         osma{\r
             miscPatterns{\r
-                atLeast{"⩾{0}"}\r
+                atLeast{"â\89¥{0}"}\r
                 range{"{0}–{1}"}\r
             }\r
             patterns{\r
@@ -992,7 +995,7 @@ nb{
         }\r
         saur{\r
             miscPatterns{\r
-                atLeast{"⩾{0}"}\r
+                atLeast{"â\89¥{0}"}\r
                 range{"{0}–{1}"}\r
             }\r
             patterns{\r
@@ -1018,7 +1021,7 @@ nb{
         }\r
         shrd{\r
             miscPatterns{\r
-                atLeast{"⩾{0}"}\r
+                atLeast{"â\89¥{0}"}\r
                 range{"{0}–{1}"}\r
             }\r
             patterns{\r
@@ -1044,7 +1047,7 @@ nb{
         }\r
         sora{\r
             miscPatterns{\r
-                atLeast{"⩾{0}"}\r
+                atLeast{"â\89¥{0}"}\r
                 range{"{0}–{1}"}\r
             }\r
             patterns{\r
@@ -1070,7 +1073,7 @@ nb{
         }\r
         sund{\r
             miscPatterns{\r
-                atLeast{"⩾{0}"}\r
+                atLeast{"â\89¥{0}"}\r
                 range{"{0}–{1}"}\r
             }\r
             patterns{\r
@@ -1096,7 +1099,7 @@ nb{
         }\r
         takr{\r
             miscPatterns{\r
-                atLeast{"⩾{0}"}\r
+                atLeast{"â\89¥{0}"}\r
                 range{"{0}–{1}"}\r
             }\r
             patterns{\r
@@ -1122,7 +1125,7 @@ nb{
         }\r
         talu{\r
             miscPatterns{\r
-                atLeast{"⩾{0}"}\r
+                atLeast{"â\89¥{0}"}\r
                 range{"{0}–{1}"}\r
             }\r
             patterns{\r
@@ -1148,7 +1151,7 @@ nb{
         }\r
         tamldec{\r
             miscPatterns{\r
-                atLeast{"⩾{0}"}\r
+                atLeast{"â\89¥{0}"}\r
                 range{"{0}–{1}"}\r
             }\r
             patterns{\r
@@ -1174,7 +1177,7 @@ nb{
         }\r
         telu{\r
             miscPatterns{\r
-                atLeast{"⩾{0}"}\r
+                atLeast{"â\89¥{0}"}\r
                 range{"{0}–{1}"}\r
             }\r
             patterns{\r
@@ -1200,7 +1203,7 @@ nb{
         }\r
         thai{\r
             miscPatterns{\r
-                atLeast{"⩾{0}"}\r
+                atLeast{"â\89¥{0}"}\r
                 range{"{0}–{1}"}\r
             }\r
             patterns{\r
@@ -1226,7 +1229,7 @@ nb{
         }\r
         tibt{\r
             miscPatterns{\r
-                atLeast{"⩾{0}"}\r
+                atLeast{"â\89¥{0}"}\r
                 range{"{0}–{1}"}\r
             }\r
             patterns{\r
@@ -1252,7 +1255,7 @@ nb{
         }\r
         vaii{\r
             miscPatterns{\r
-                atLeast{"⩾{0}"}\r
+                atLeast{"â\89¥{0}"}\r
                 range{"{0}–{1}"}\r
             }\r
             patterns{\r
@@ -1277,7 +1280,7 @@ nb{
             }\r
         }\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.2"}\r
     calendar{\r
         buddhist{\r
             DateTimePatterns{\r
@@ -1369,9 +1372,11 @@ nb{
                 }\r
                 fallback{"{0}–{1}"}\r
                 h{\r
+                    a{"h a–h a"}\r
                     h{"h–h a"}\r
                 }\r
                 hv{\r
+                    a{"h a–h a v"}\r
                     h{"h–h a v"}\r
                 }\r
                 y{\r
@@ -1434,6 +1439,7 @@ nb{
                 GyMMM{"MMM r(U)"}\r
                 GyMMMEd{"E d. MMM r(U)"}\r
                 GyMMMd{"d. MMM r"}\r
+                H{"HH"}\r
                 M{"L."}\r
                 MEd{"E dd.MM."}\r
                 MMM{"LLL"}\r
@@ -1446,6 +1452,7 @@ nb{
                 UMMMd{"d. MMM U"}\r
                 UMd{"d.MM. U"}\r
                 d{"d."}\r
+                h{"h a"}\r
                 y{"r(U)"}\r
                 yMd{"dd.MM.r"}\r
                 yyyy{"r(U)"}\r
@@ -2513,9 +2520,11 @@ nb{
                 }\r
                 fallback{"{0}–{1}"}\r
                 h{\r
+                    a{"h a–h a"}\r
                     h{"h–h a"}\r
                 }\r
                 hv{\r
+                    a{"h a–h a v"}\r
                     h{"h–h a v"}\r
                 }\r
                 y{\r
@@ -3735,9 +3744,11 @@ nb{
                 }\r
                 fallback{"{0}–{1}"}\r
                 h{\r
+                    a{"h a–h a"}\r
                     h{"h–h a"}\r
                 }\r
                 hv{\r
+                    a{"h a–h a v"}\r
                     h{"h–h a v"}\r
                 }\r
                 y{\r
@@ -4612,9 +4623,11 @@ nb{
                 }\r
                 fallback{"{0}–{1}"}\r
                 h{\r
+                    a{"h a–h a"}\r
                     h{"h–h a"}\r
                 }\r
                 hv{\r
+                    a{"h a–h a v"}\r
                     h{"h–h a v"}\r
                 }\r
                 y{\r
@@ -4846,9 +4859,11 @@ nb{
                 }\r
                 fallback{"{0}–{1}"}\r
                 h{\r
+                    a{"h a–h a"}\r
                     h{"h–h a"}\r
                 }\r
                 hv{\r
+                    a{"h a–h a v"}\r
                     h{"h–h a v"}\r
                 }\r
                 y{\r
@@ -5068,9 +5083,11 @@ nb{
                 }\r
                 fallback{"{0}–{1}"}\r
                 h{\r
+                    a{"h a–h a"}\r
                     h{"h–h a"}\r
                 }\r
                 hv{\r
+                    a{"h a–h a v"}\r
                     h{"h–h a v"}\r
                 }\r
                 y{\r
@@ -5483,6 +5500,7 @@ nb{
                     "Taishō",\r
                     "Shōwa",\r
                     "Heisei",\r
+                    "Qqqq",\r
                 }\r
                 narrow{\r
                     "Taika (645–650)",\r
@@ -5721,6 +5739,7 @@ nb{
                     "T",\r
                     "S",\r
                     "H",\r
+                    "Q",\r
                 }\r
                 wide{\r
                     "Taika (645–650)",\r
@@ -5959,6 +5978,7 @@ nb{
                     "Taishō",\r
                     "Shōwa",\r
                     "Heisei",\r
+                    "Qqqq",\r
                 }\r
             }\r
             intervalFormats{\r
@@ -5995,9 +6015,11 @@ nb{
                 }\r
                 fallback{"{0}–{1}"}\r
                 h{\r
+                    a{"h a–h a"}\r
                     h{"h–h a"}\r
                 }\r
                 hv{\r
+                    a{"h a–h a v"}\r
                     h{"h–h a v"}\r
                 }\r
                 y{\r
@@ -6127,9 +6149,11 @@ nb{
                 }\r
                 fallback{"{0}–{1}"}\r
                 h{\r
+                    a{"h a–h a"}\r
                     h{"h–h a"}\r
                 }\r
                 hv{\r
+                    a{"h a–h a v"}\r
                     h{"h–h a v"}\r
                 }\r
                 y{\r
@@ -6352,9 +6376,11 @@ nb{
                 }\r
                 fallback{"{0}–{1}"}\r
                 h{\r
+                    a{"h a–h a"}\r
                     h{"h–h a"}\r
                 }\r
                 hv{\r
+                    a{"h a–h a v"}\r
                     h{"h–h a v"}\r
                 }\r
                 y{\r
index e639e44ea92719a9479161de86a95607d44c9569..bd1a2c5f56af4247cd3649bab38678cb6830fed8 100644 (file)
@@ -43,7 +43,9 @@ ne{
         }\r
         latn{\r
             miscPatterns{\r
+                approximately{"~{0}"}\r
                 atLeast{"{0}+"}\r
+                atMost{"≤{0}"}\r
                 range{"{0}–{1}"}\r
             }\r
             patterns{\r
@@ -235,7 +237,7 @@ ne{
         minimumGroupingDigits{"1"}\r
         native{"deva"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.50"}\r
     calendar{\r
         generic{\r
             DateTimePatterns{\r
index bf6c95dc36aea65e0ebc1c8ff4249a78a51ec0fe..57bccfb1b2e2e97697b681cd4346fd3ba7c0e463 100644 (file)
@@ -24,10 +24,13 @@ nl{
     NumberElements{\r
         arab{\r
             miscPatterns{\r
+                approximately{"~{0}"}\r
                 atLeast{"{0}+"}\r
+                atMost{"≤{0}"}\r
                 range{"{0}-{1}"}\r
             }\r
             patterns{\r
+                accountingFormat{"#,##0.00 ¤"}\r
                 currencyFormat{"#,##0.00 ¤"}\r
                 decimalFormat{"#,##0.###"}\r
                 percentFormat{"#,##0 %"}\r
@@ -39,15 +42,20 @@ nl{
                 group{"٬"}\r
                 infinity{"∞"}\r
                 list{"؛"}\r
+                minusSign{"؜-"}\r
                 nan{"NaN"}\r
                 perMille{"؉"}\r
+                percentSign{"٪؜"}\r
+                plusSign{"؜+"}\r
                 superscriptingExponent{"×"}\r
                 timeSeparator{":"}\r
             }\r
         }\r
         arabext{\r
             miscPatterns{\r
+                approximately{"~{0}"}\r
                 atLeast{"{0}+"}\r
+                atMost{"≤{0}"}\r
                 range{"{0}-{1}"}\r
             }\r
             patterns{\r
@@ -74,7 +82,9 @@ nl{
         }\r
         bali{\r
             miscPatterns{\r
+                approximately{"~{0}"}\r
                 atLeast{"{0}+"}\r
+                atMost{"≤{0}"}\r
                 range{"{0}-{1}"}\r
             }\r
             patterns{\r
@@ -101,7 +111,9 @@ nl{
         }\r
         beng{\r
             miscPatterns{\r
+                approximately{"~{0}"}\r
                 atLeast{"{0}+"}\r
+                atMost{"≤{0}"}\r
                 range{"{0}-{1}"}\r
             }\r
             patterns{\r
@@ -128,7 +140,9 @@ nl{
         }\r
         brah{\r
             miscPatterns{\r
+                approximately{"~{0}"}\r
                 atLeast{"{0}+"}\r
+                atMost{"≤{0}"}\r
                 range{"{0}-{1}"}\r
             }\r
             patterns{\r
@@ -155,7 +169,9 @@ nl{
         }\r
         cakm{\r
             miscPatterns{\r
+                approximately{"~{0}"}\r
                 atLeast{"{0}+"}\r
+                atMost{"≤{0}"}\r
                 range{"{0}-{1}"}\r
             }\r
             patterns{\r
@@ -182,7 +198,9 @@ nl{
         }\r
         cham{\r
             miscPatterns{\r
+                approximately{"~{0}"}\r
                 atLeast{"{0}+"}\r
+                atMost{"≤{0}"}\r
                 range{"{0}-{1}"}\r
             }\r
             patterns{\r
@@ -210,7 +228,9 @@ nl{
         default{"latn"}\r
         deva{\r
             miscPatterns{\r
+                approximately{"~{0}"}\r
                 atLeast{"{0}+"}\r
+                atMost{"≤{0}"}\r
                 range{"{0}-{1}"}\r
             }\r
             patterns{\r
@@ -237,7 +257,67 @@ nl{
         }\r
         fullwide{\r
             miscPatterns{\r
+                approximately{"~{0}"}\r
                 atLeast{"{0}+"}\r
+                atMost{"≤{0}"}\r
+                range{"{0}-{1}"}\r
+            }\r
+            patterns{\r
+                accountingFormat{"¤ #,##0.00;(¤ #,##0.00)"}\r
+                currencyFormat{"¤ #,##0.00;¤ -#,##0.00"}\r
+                decimalFormat{"#,##0.###"}\r
+                percentFormat{"#,##0%"}\r
+                scientificFormat{"#E0"}\r
+            }\r
+            symbols{\r
+                decimal{","}\r
+                exponential{"E"}\r
+                group{"."}\r
+                infinity{"∞"}\r
+                list{";"}\r
+                minusSign{"-"}\r
+                nan{"NaN"}\r
+                perMille{"‰"}\r
+                percentSign{"%"}\r
+                plusSign{"+"}\r
+                superscriptingExponent{"×"}\r
+                timeSeparator{":"}\r
+            }\r
+        }\r
+        gong{\r
+            miscPatterns{\r
+                approximately{"~{0}"}\r
+                atLeast{"{0}+"}\r
+                atMost{"≤{0}"}\r
+                range{"{0}-{1}"}\r
+            }\r
+            patterns{\r
+                accountingFormat{"¤ #,##0.00;(¤ #,##0.00)"}\r
+                currencyFormat{"¤ #,##0.00;¤ -#,##0.00"}\r
+                decimalFormat{"#,##0.###"}\r
+                percentFormat{"#,##0%"}\r
+                scientificFormat{"#E0"}\r
+            }\r
+            symbols{\r
+                decimal{","}\r
+                exponential{"E"}\r
+                group{"."}\r
+                infinity{"∞"}\r
+                list{";"}\r
+                minusSign{"-"}\r
+                nan{"NaN"}\r
+                perMille{"‰"}\r
+                percentSign{"%"}\r
+                plusSign{"+"}\r
+                superscriptingExponent{"×"}\r
+                timeSeparator{":"}\r
+            }\r
+        }\r
+        gonm{\r
+            miscPatterns{\r
+                approximately{"~{0}"}\r
+                atLeast{"{0}+"}\r
+                atMost{"≤{0}"}\r
                 range{"{0}-{1}"}\r
             }\r
             patterns{\r
@@ -264,7 +344,9 @@ nl{
         }\r
         gujr{\r
             miscPatterns{\r
+                approximately{"~{0}"}\r
                 atLeast{"{0}+"}\r
+                atMost{"≤{0}"}\r
                 range{"{0}-{1}"}\r
             }\r
             patterns{\r
@@ -291,7 +373,9 @@ nl{
         }\r
         guru{\r
             miscPatterns{\r
+                approximately{"~{0}"}\r
                 atLeast{"{0}+"}\r
+                atMost{"≤{0}"}\r
                 range{"{0}-{1}"}\r
             }\r
             patterns{\r
@@ -318,7 +402,9 @@ nl{
         }\r
         hanidec{\r
             miscPatterns{\r
+                approximately{"~{0}"}\r
                 atLeast{"{0}+"}\r
+                atMost{"≤{0}"}\r
                 range{"{0}-{1}"}\r
             }\r
             patterns{\r
@@ -345,7 +431,9 @@ nl{
         }\r
         java{\r
             miscPatterns{\r
+                approximately{"~{0}"}\r
                 atLeast{"{0}+"}\r
+                atMost{"≤{0}"}\r
                 range{"{0}-{1}"}\r
             }\r
             patterns{\r
@@ -372,7 +460,9 @@ nl{
         }\r
         kali{\r
             miscPatterns{\r
+                approximately{"~{0}"}\r
                 atLeast{"{0}+"}\r
+                atMost{"≤{0}"}\r
                 range{"{0}-{1}"}\r
             }\r
             patterns{\r
@@ -399,7 +489,9 @@ nl{
         }\r
         khmr{\r
             miscPatterns{\r
+                approximately{"~{0}"}\r
                 atLeast{"{0}+"}\r
+                atMost{"≤{0}"}\r
                 range{"{0}-{1}"}\r
             }\r
             patterns{\r
@@ -426,7 +518,9 @@ nl{
         }\r
         knda{\r
             miscPatterns{\r
+                approximately{"~{0}"}\r
                 atLeast{"{0}+"}\r
+                atMost{"≤{0}"}\r
                 range{"{0}-{1}"}\r
             }\r
             patterns{\r
@@ -453,7 +547,9 @@ nl{
         }\r
         lana{\r
             miscPatterns{\r
+                approximately{"~{0}"}\r
                 atLeast{"{0}+"}\r
+                atMost{"≤{0}"}\r
                 range{"{0}-{1}"}\r
             }\r
             patterns{\r
@@ -480,7 +576,9 @@ nl{
         }\r
         lanatham{\r
             miscPatterns{\r
+                approximately{"~{0}"}\r
                 atLeast{"{0}+"}\r
+                atMost{"≤{0}"}\r
                 range{"{0}-{1}"}\r
             }\r
             patterns{\r
@@ -507,7 +605,9 @@ nl{
         }\r
         laoo{\r
             miscPatterns{\r
+                approximately{"~{0}"}\r
                 atLeast{"{0}+"}\r
+                atMost{"≤{0}"}\r
                 range{"{0}-{1}"}\r
             }\r
             patterns{\r
@@ -534,7 +634,9 @@ nl{
         }\r
         latn{\r
             miscPatterns{\r
+                approximately{"~{0}"}\r
                 atLeast{"{0}+"}\r
+                atMost{"≤{0}"}\r
                 range{"{0}-{1}"}\r
             }\r
             patterns{\r
@@ -715,7 +817,9 @@ nl{
         }\r
         lepc{\r
             miscPatterns{\r
+                approximately{"~{0}"}\r
                 atLeast{"{0}+"}\r
+                atMost{"≤{0}"}\r
                 range{"{0}-{1}"}\r
             }\r
             patterns{\r
@@ -742,7 +846,9 @@ nl{
         }\r
         limb{\r
             miscPatterns{\r
+                approximately{"~{0}"}\r
                 atLeast{"{0}+"}\r
+                atMost{"≤{0}"}\r
                 range{"{0}-{1}"}\r
             }\r
             patterns{\r
@@ -779,7 +885,9 @@ nl{
         minimumGroupingDigits{"1"}\r
         mlym{\r
             miscPatterns{\r
+                approximately{"~{0}"}\r
                 atLeast{"{0}+"}\r
+                atMost{"≤{0}"}\r
                 range{"{0}-{1}"}\r
             }\r
             patterns{\r
@@ -806,7 +914,9 @@ nl{
         }\r
         mong{\r
             miscPatterns{\r
+                approximately{"~{0}"}\r
                 atLeast{"{0}+"}\r
+                atMost{"≤{0}"}\r
                 range{"{0}-{1}"}\r
             }\r
             patterns{\r
@@ -833,7 +943,9 @@ nl{
         }\r
         mtei{\r
             miscPatterns{\r
+                approximately{"~{0}"}\r
                 atLeast{"{0}+"}\r
+                atMost{"≤{0}"}\r
                 range{"{0}-{1}"}\r
             }\r
             patterns{\r
@@ -860,7 +972,9 @@ nl{
         }\r
         mymr{\r
             miscPatterns{\r
+                approximately{"~{0}"}\r
                 atLeast{"{0}+"}\r
+                atMost{"≤{0}"}\r
                 range{"{0}-{1}"}\r
             }\r
             patterns{\r
@@ -887,7 +1001,9 @@ nl{
         }\r
         mymrshan{\r
             miscPatterns{\r
+                approximately{"~{0}"}\r
                 atLeast{"{0}+"}\r
+                atMost{"≤{0}"}\r
                 range{"{0}-{1}"}\r
             }\r
             patterns{\r
@@ -915,7 +1031,9 @@ nl{
         native{"latn"}\r
         nkoo{\r
             miscPatterns{\r
+                approximately{"~{0}"}\r
                 atLeast{"{0}+"}\r
+                atMost{"≤{0}"}\r
                 range{"{0}-{1}"}\r
             }\r
             patterns{\r
@@ -942,7 +1060,9 @@ nl{
         }\r
         olck{\r
             miscPatterns{\r
+                approximately{"~{0}"}\r
                 atLeast{"{0}+"}\r
+                atMost{"≤{0}"}\r
                 range{"{0}-{1}"}\r
             }\r
             patterns{\r
@@ -969,7 +1089,9 @@ nl{
         }\r
         orya{\r
             miscPatterns{\r
+                approximately{"~{0}"}\r
                 atLeast{"{0}+"}\r
+                atMost{"≤{0}"}\r
                 range{"{0}-{1}"}\r
             }\r
             patterns{\r
@@ -996,7 +1118,38 @@ nl{
         }\r
         osma{\r
             miscPatterns{\r
+                approximately{"~{0}"}\r
+                atLeast{"{0}+"}\r
+                atMost{"≤{0}"}\r
+                range{"{0}-{1}"}\r
+            }\r
+            patterns{\r
+                accountingFormat{"¤ #,##0.00;(¤ #,##0.00)"}\r
+                currencyFormat{"¤ #,##0.00;¤ -#,##0.00"}\r
+                decimalFormat{"#,##0.###"}\r
+                percentFormat{"#,##0%"}\r
+                scientificFormat{"#E0"}\r
+            }\r
+            symbols{\r
+                decimal{","}\r
+                exponential{"E"}\r
+                group{"."}\r
+                infinity{"∞"}\r
+                list{";"}\r
+                minusSign{"-"}\r
+                nan{"NaN"}\r
+                perMille{"‰"}\r
+                percentSign{"%"}\r
+                plusSign{"+"}\r
+                superscriptingExponent{"×"}\r
+                timeSeparator{":"}\r
+            }\r
+        }\r
+        rohg{\r
+            miscPatterns{\r
+                approximately{"~{0}"}\r
                 atLeast{"{0}+"}\r
+                atMost{"≤{0}"}\r
                 range{"{0}-{1}"}\r
             }\r
             patterns{\r
@@ -1023,7 +1176,9 @@ nl{
         }\r
         saur{\r
             miscPatterns{\r
+                approximately{"~{0}"}\r
                 atLeast{"{0}+"}\r
+                atMost{"≤{0}"}\r
                 range{"{0}-{1}"}\r
             }\r
             patterns{\r
@@ -1050,7 +1205,9 @@ nl{
         }\r
         shrd{\r
             miscPatterns{\r
+                approximately{"~{0}"}\r
                 atLeast{"{0}+"}\r
+                atMost{"≤{0}"}\r
                 range{"{0}-{1}"}\r
             }\r
             patterns{\r
@@ -1077,7 +1234,9 @@ nl{
         }\r
         sora{\r
             miscPatterns{\r
+                approximately{"~{0}"}\r
                 atLeast{"{0}+"}\r
+                atMost{"≤{0}"}\r
                 range{"{0}-{1}"}\r
             }\r
             patterns{\r
@@ -1104,7 +1263,9 @@ nl{
         }\r
         sund{\r
             miscPatterns{\r
+                approximately{"~{0}"}\r
                 atLeast{"{0}+"}\r
+                atMost{"≤{0}"}\r
                 range{"{0}-{1}"}\r
             }\r
             patterns{\r
@@ -1131,7 +1292,9 @@ nl{
         }\r
         takr{\r
             miscPatterns{\r
+                approximately{"~{0}"}\r
                 atLeast{"{0}+"}\r
+                atMost{"≤{0}"}\r
                 range{"{0}-{1}"}\r
             }\r
             patterns{\r
@@ -1158,7 +1321,9 @@ nl{
         }\r
         talu{\r
             miscPatterns{\r
+                approximately{"~{0}"}\r
                 atLeast{"{0}+"}\r
+                atMost{"≤{0}"}\r
                 range{"{0}-{1}"}\r
             }\r
             patterns{\r
@@ -1185,7 +1350,9 @@ nl{
         }\r
         tamldec{\r
             miscPatterns{\r
+                approximately{"~{0}"}\r
                 atLeast{"{0}+"}\r
+                atMost{"≤{0}"}\r
                 range{"{0}-{1}"}\r
             }\r
             patterns{\r
@@ -1212,7 +1379,9 @@ nl{
         }\r
         telu{\r
             miscPatterns{\r
+                approximately{"~{0}"}\r
                 atLeast{"{0}+"}\r
+                atMost{"≤{0}"}\r
                 range{"{0}-{1}"}\r
             }\r
             patterns{\r
@@ -1239,7 +1408,9 @@ nl{
         }\r
         thai{\r
             miscPatterns{\r
+                approximately{"~{0}"}\r
                 atLeast{"{0}+"}\r
+                atMost{"≤{0}"}\r
                 range{"{0}-{1}"}\r
             }\r
             patterns{\r
@@ -1266,7 +1437,9 @@ nl{
         }\r
         tibt{\r
             miscPatterns{\r
+                approximately{"~{0}"}\r
                 atLeast{"{0}+"}\r
+                atMost{"≤{0}"}\r
                 range{"{0}-{1}"}\r
             }\r
             patterns{\r
@@ -1293,7 +1466,9 @@ nl{
         }\r
         vaii{\r
             miscPatterns{\r
+                approximately{"~{0}"}\r
                 atLeast{"{0}+"}\r
+                atMost{"≤{0}"}\r
                 range{"{0}-{1}"}\r
             }\r
             patterns{\r
@@ -1319,7 +1494,7 @@ nl{
             }\r
         }\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.45.14"}\r
     calendar{\r
         buddhist{\r
             DateTimePatterns{\r
@@ -1375,6 +1550,104 @@ nl{
                     "BE",\r
                 }\r
             }\r
+            intervalFormats{\r
+                H{\r
+                    H{"HH–HH"}\r
+                }\r
+                Hm{\r
+                    H{"HH:mm–HH:mm"}\r
+                    m{"HH:mm–HH:mm"}\r
+                }\r
+                Hmv{\r
+                    H{"HH:mm–HH:mm v"}\r
+                    m{"HH:mm–HH:mm v"}\r
+                }\r
+                Hv{\r
+                    H{"HH–HH v"}\r
+                }\r
+                M{\r
+                    M{"M–M"}\r
+                }\r
+                MEd{\r
+                    M{"E dd-MM – E dd-MM"}\r
+                    d{"E dd-MM – E dd-MM"}\r
+                }\r
+                MMM{\r
+                    M{"MMM–MMM"}\r
+                }\r
+                MMMEd{\r
+                    M{"E d MMM – E d MMM"}\r
+                    d{"E d – E d MMM"}\r
+                }\r
+                MMMM{\r
+                    M{"MMMM–MMMM"}\r
+                }\r
+                MMMd{\r
+                    M{"d MMM – d MMM"}\r
+                    d{"d–d MMM"}\r
+                }\r
+                Md{\r
+                    M{"dd-MM – dd-MM"}\r
+                    d{"dd-MM – dd-MM"}\r
+                }\r
+                d{\r
+                    d{"d–d"}\r
+                }\r
+                fallback{"{0} - {1}"}\r
+                h{\r
+                    a{"h a – h a"}\r
+                    h{"h–h a"}\r
+                }\r
+                hm{\r
+                    a{"h:mm a – h:mm a"}\r
+                    h{"h:mm–h:mm a"}\r
+                    m{"h:mm–h:mm a"}\r
+                }\r
+                hmv{\r
+                    a{"h:mm a – h:mm a v"}\r
+                    h{"h:mm–h:mm a v"}\r
+                    m{"h:mm–h:mm a v"}\r
+                }\r
+                hv{\r
+                    a{"h a – h a v"}\r
+                    h{"h–h a v"}\r
+                }\r
+                y{\r
+                    y{"y–y G"}\r
+                }\r
+                yM{\r
+                    M{"MM-y – MM-y G"}\r
+                    y{"MM-y – MM-y G"}\r
+                }\r
+                yMEd{\r
+                    M{"E dd-MM-y – E dd-MM-y G"}\r
+                    d{"E dd-MM-y – E dd-MM-y G"}\r
+                    y{"E dd-MM-y – E dd-MM-y G"}\r
+                }\r
+                yMMM{\r
+                    M{"MMM–MMM y G"}\r
+                    y{"MMM y – MMM y G"}\r
+                }\r
+                yMMMEd{\r
+                    M{"E d MMM – E d MMM y G"}\r
+                    d{"E d – E d MMM y G"}\r
+                    y{"E d MMM y – E d MMM y G"}\r
+                }\r
+                yMMMM{\r
+                    M{"MMMM–MMMM y G"}\r
+                    y{"MMMM y – MMMM y G"}\r
+                }\r
+                yMMMd{\r
+                    M{"d MMM – d MMM y G"}\r
+                    d{"d–d MMM y G"}\r
+                    y{"d MMM y – d MMM y G"}\r
+                }\r
+                yMd{\r
+                    M{"dd-MM-y – dd-MM-y G"}\r
+                    d{"dd-MM-y – dd-MM-y G"}\r
+                    y{"dd-MM-y – dd-MM-y G"}\r
+                }\r
+            }\r
         }\r
         chinese{\r
             DateTimePatterns{\r
@@ -1393,7 +1666,12 @@ nl{
                 "{1} {0}",\r
             }\r
             availableFormats{\r
+                Bh{"h B"}\r
+                Bhm{"h:mm B"}\r
+                Bhms{"h:mm:ss B"}\r
                 E{"ccc"}\r
+                EBhm{"E h:mm B"}\r
+                EBhms{"E h:mm:ss B"}\r
                 Ed{"E d"}\r
                 Gy{"U"}\r
                 GyMMM{"MMM U"}\r
@@ -2393,8 +2671,47 @@ nl{
             }\r
         }\r
         coptic{\r
+            DateTimePatterns{\r
+                "HH:mm:ss zzzz",\r
+                "HH:mm:ss z",\r
+                "HH:mm:ss",\r
+                "HH:mm",\r
+                "EEEE d MMMM y G",\r
+                "d MMMM y G",\r
+                "d MMM y G",\r
+                "dd-MM-yy GGGGG",\r
+                "{1} {0}",\r
+                "{1} 'om' {0}",\r
+                "{1} 'om' {0}",\r
+                "{1} {0}",\r
+                "{1} {0}",\r
+            }\r
             availableFormats{\r
                 E{"ccc"}\r
+                Ed{"E d"}\r
+                Gy{"y G"}\r
+                GyMMM{"MMM y G"}\r
+                GyMMMEd{"E d MMM y G"}\r
+                GyMMMd{"d MMM y G"}\r
+                M{"L"}\r
+                MEd{"E d-M"}\r
+                MMM{"LLL"}\r
+                MMMEd{"E d MMM"}\r
+                MMMMd{"d MMMM"}\r
+                MMMd{"d MMM"}\r
+                Md{"d-M"}\r
+                d{"d"}\r
+                y{"y G"}\r
+                yyyy{"y G"}\r
+                yyyyM{"M-y GGGGG"}\r
+                yyyyMEd{"E d-M-y GGGGG"}\r
+                yyyyMMM{"MMM y G"}\r
+                yyyyMMMEd{"E d MMM y G"}\r
+                yyyyMMMM{"MMMM y G"}\r
+                yyyyMMMd{"d MMM y G"}\r
+                yyyyMd{"d-M-y GGGGG"}\r
+                yyyyQQQ{"QQQ y G"}\r
+                yyyyQQQQ{"QQQQ y G"}\r
             }\r
             eras{\r
                 abbreviated{\r
@@ -2410,42 +2727,140 @@ nl{
                     "ERA1",\r
                 }\r
             }\r
-            monthNames{\r
-                format{\r
-                    abbreviated{\r
-                        "Tut",\r
-                        "Babah",\r
-                        "Hatur",\r
-                        "Kiyahk",\r
-                        "Tubah",\r
-                        "Amshir",\r
-                        "Baramhat",\r
-                        "Baramundah",\r
-                        "Bashans",\r
-                        "Ba’unah",\r
-                        "Abib",\r
-                        "Misra",\r
-                        "Nasi",\r
-                    }\r
-                    narrow{\r
-                        "1",\r
-                        "2",\r
-                        "3",\r
-                        "4",\r
-                        "5",\r
-                        "6",\r
-                        "7",\r
-                        "8",\r
-                        "9",\r
-                        "10",\r
-                        "11",\r
-                        "12",\r
-                        "13",\r
-                    }\r
-                    wide{\r
-                        "Tut",\r
-                        "Babah",\r
-                        "Hatur",\r
+            intervalFormats{\r
+                H{\r
+                    H{"HH–HH"}\r
+                }\r
+                Hm{\r
+                    H{"HH:mm–HH:mm"}\r
+                    m{"HH:mm–HH:mm"}\r
+                }\r
+                Hmv{\r
+                    H{"HH:mm–HH:mm v"}\r
+                    m{"HH:mm–HH:mm v"}\r
+                }\r
+                Hv{\r
+                    H{"HH–HH v"}\r
+                }\r
+                M{\r
+                    M{"M–M"}\r
+                }\r
+                MEd{\r
+                    M{"E dd-MM – E dd-MM"}\r
+                    d{"E dd-MM – E dd-MM"}\r
+                }\r
+                MMM{\r
+                    M{"MMM–MMM"}\r
+                }\r
+                MMMEd{\r
+                    M{"E d MMM – E d MMM"}\r
+                    d{"E d – E d MMM"}\r
+                }\r
+                MMMM{\r
+                    M{"MMMM–MMMM"}\r
+                }\r
+                MMMd{\r
+                    M{"d MMM – d MMM"}\r
+                    d{"d–d MMM"}\r
+                }\r
+                Md{\r
+                    M{"dd-MM – dd-MM"}\r
+                    d{"dd-MM – dd-MM"}\r
+                }\r
+                d{\r
+                    d{"d–d"}\r
+                }\r
+                fallback{"{0} - {1}"}\r
+                h{\r
+                    a{"h a – h a"}\r
+                    h{"h–h a"}\r
+                }\r
+                hm{\r
+                    a{"h:mm a – h:mm a"}\r
+                    h{"h:mm–h:mm a"}\r
+                    m{"h:mm–h:mm a"}\r
+                }\r
+                hmv{\r
+                    a{"h:mm a – h:mm a v"}\r
+                    h{"h:mm–h:mm a v"}\r
+                    m{"h:mm–h:mm a v"}\r
+                }\r
+                hv{\r
+                    a{"h a – h a v"}\r
+                    h{"h–h a v"}\r
+                }\r
+                y{\r
+                    y{"y–y G"}\r
+                }\r
+                yM{\r
+                    M{"MM-y – MM-y G"}\r
+                    y{"MM-y – MM-y G"}\r
+                }\r
+                yMEd{\r
+                    M{"E dd-MM-y – E dd-MM-y G"}\r
+                    d{"E dd-MM-y – E dd-MM-y G"}\r
+                    y{"E dd-MM-y – E dd-MM-y G"}\r
+                }\r
+                yMMM{\r
+                    M{"MMM–MMM y G"}\r
+                    y{"MMM y – MMM y G"}\r
+                }\r
+                yMMMEd{\r
+                    M{"E d MMM – E d MMM y G"}\r
+                    d{"E d – E d MMM y G"}\r
+                    y{"E d MMM y – E d MMM y G"}\r
+                }\r
+                yMMMM{\r
+                    M{"MMMM–MMMM y G"}\r
+                    y{"MMMM y – MMMM y G"}\r
+                }\r
+                yMMMd{\r
+                    M{"d MMM – d MMM y G"}\r
+                    d{"d–d MMM y G"}\r
+                    y{"d MMM y – d MMM y G"}\r
+                }\r
+                yMd{\r
+                    M{"dd-MM-y – dd-MM-y G"}\r
+                    d{"dd-MM-y – dd-MM-y G"}\r
+                    y{"dd-MM-y – dd-MM-y G"}\r
+                }\r
+            }\r
+            monthNames{\r
+                format{\r
+                    abbreviated{\r
+                        "Tut",\r
+                        "Babah",\r
+                        "Hatur",\r
+                        "Kiyahk",\r
+                        "Tubah",\r
+                        "Amshir",\r
+                        "Baramhat",\r
+                        "Baramundah",\r
+                        "Bashans",\r
+                        "Ba’unah",\r
+                        "Abib",\r
+                        "Misra",\r
+                        "Nasi",\r
+                    }\r
+                    narrow{\r
+                        "1",\r
+                        "2",\r
+                        "3",\r
+                        "4",\r
+                        "5",\r
+                        "6",\r
+                        "7",\r
+                        "8",\r
+                        "9",\r
+                        "10",\r
+                        "11",\r
+                        "12",\r
+                        "13",\r
+                    }\r
+                    wide{\r
+                        "Tut",\r
+                        "Babah",\r
+                        "Hatur",\r
                         "Kiyahk",\r
                         "Tubah",\r
                         "Amshir",\r
@@ -2508,6 +2923,53 @@ nl{
             }\r
         }\r
         dangi{\r
+            DateTimePatterns{\r
+                "HH:mm:ss zzzz",\r
+                "HH:mm:ss z",\r
+                "HH:mm:ss",\r
+                "HH:mm",\r
+                "EEEE d MMMM r (U)",\r
+                "d MMMM r (U)",\r
+                "d MMM r",\r
+                "dd-MM-r",\r
+                "{1} {0}",\r
+                "{1} 'om' {0}",\r
+                "{1} 'om' {0}",\r
+                "{1} {0}",\r
+                "{1} {0}",\r
+            }\r
+            availableFormats{\r
+                E{"ccc"}\r
+                Ed{"E d"}\r
+                Gy{"r (U)"}\r
+                GyMMM{"MMM r (U)"}\r
+                GyMMMEd{"E d MMM r (U)"}\r
+                GyMMMd{"d MMM r"}\r
+                M{"L"}\r
+                MEd{"E d-M"}\r
+                MMM{"LLL"}\r
+                MMMEd{"E d MMM"}\r
+                MMMMd{"d MMMM"}\r
+                MMMd{"d MMM"}\r
+                Md{"d-M"}\r
+                UM{"MM U"}\r
+                UMMM{"MMM U"}\r
+                UMMMd{"d MMM U"}\r
+                UMd{"d-MM U"}\r
+                d{"d"}\r
+                y{"r (U)"}\r
+                yMd{"d-M-r"}\r
+                yyyy{"r (U)"}\r
+                yyyyM{"M-r"}\r
+                yyyyMEd{"E d-M-r"}\r
+                yyyyMMM{"MMM r (U)"}\r
+                yyyyMMMEd{"E d MMM r (U)"}\r
+                yyyyMMMM{"MMMM r (U)"}\r
+                yyyyMMMd{"d MMM r"}\r
+                yyyyMd{"d-M-r"}\r
+                yyyyQQQ{"QQQ r (U)"}\r
+                yyyyQQQQ{"QQQQ r (U)"}\r
+            }\r
             cyclicNameSets{\r
                 dayParts{\r
                     format{\r
@@ -3254,6 +3716,101 @@ nl{
                     }\r
                 }\r
             }\r
+            intervalFormats{\r
+                H{\r
+                    H{"HH–HH"}\r
+                }\r
+                Hm{\r
+                    H{"HH:mm–HH:mm"}\r
+                    m{"HH:mm–HH:mm"}\r
+                }\r
+                Hmv{\r
+                    H{"HH:mm–HH:mm v"}\r
+                    m{"HH:mm–HH:mm v"}\r
+                }\r
+                Hv{\r
+                    H{"HH–HH v"}\r
+                }\r
+                M{\r
+                    M{"MM–MM"}\r
+                }\r
+                MEd{\r
+                    M{"MM-dd, E – MM-dd, E"}\r
+                    d{"MM-dd, E – MM-dd, E"}\r
+                }\r
+                MMM{\r
+                    M{"LLL–LLL"}\r
+                }\r
+                MMMEd{\r
+                    M{"MMM d, E – MMM d, E"}\r
+                    d{"MMM d, E – MMM d, E"}\r
+                }\r
+                MMMd{\r
+                    M{"MMM d – MMM d"}\r
+                    d{"MMM d–d"}\r
+                }\r
+                Md{\r
+                    M{"MM-dd – MM-dd"}\r
+                    d{"MM-dd – MM-dd"}\r
+                }\r
+                d{\r
+                    d{"d–d"}\r
+                }\r
+                fallback{"{0} – {1}"}\r
+                h{\r
+                    a{"h a – h a"}\r
+                    h{"h–h a"}\r
+                }\r
+                hm{\r
+                    a{"h:mm a – h:mm a"}\r
+                    h{"h:mm–h:mm a"}\r
+                    m{"h:mm–h:mm a"}\r
+                }\r
+                hmv{\r
+                    a{"h:mm a – h:mm a v"}\r
+                    h{"h:mm–h:mm a v"}\r
+                    m{"h:mm–h:mm a v"}\r
+                }\r
+                hv{\r
+                    a{"h a – h a v"}\r
+                    h{"h–h a v"}\r
+                }\r
+                y{\r
+                    y{"U–U"}\r
+                }\r
+                yM{\r
+                    M{"y-MM – y-MM"}\r
+                    y{"y-MM – y-MM"}\r
+                }\r
+                yMEd{\r
+                    M{"y-MM-dd, E – y-MM-dd, E"}\r
+                    d{"y-MM-dd, E – y-MM-dd, E"}\r
+                    y{"y-MM-dd, E – y-MM-dd, E"}\r
+                }\r
+                yMMM{\r
+                    M{"U MMM–MMM"}\r
+                    y{"U MMM – U MMM"}\r
+                }\r
+                yMMMEd{\r
+                    M{"U MMM d, E – MMM d, E"}\r
+                    d{"U MMM d, E – MMM d, E"}\r
+                    y{"U MMM d, E – U MMM d, E"}\r
+                }\r
+                yMMMM{\r
+                    M{"U MMMM–MMMM"}\r
+                    y{"U MMMM – U MMMM"}\r
+                }\r
+                yMMMd{\r
+                    M{"U MMM d – MMM d"}\r
+                    d{"U MMM d–d"}\r
+                    y{"U MMM d – U MMM d"}\r
+                }\r
+                yMd{\r
+                    M{"y-MM-dd – y-MM-dd"}\r
+                    d{"y-MM-dd – y-MM-dd"}\r
+                    y{"y-MM-dd – y-MM-dd"}\r
+                }\r
+            }\r
             monthNames{\r
                 format{\r
                     abbreviated{\r
@@ -3391,6 +3948,7 @@ nl{
                 "{1} {0}",\r
             }\r
             availableFormats{\r
+                E{"ccc"}\r
                 Ed{"E d"}\r
                 Gy{"y G"}\r
                 GyMMM{"MMM y G"}\r
@@ -3431,9 +3989,23 @@ nl{
                 }\r
             }\r
             intervalFormats{\r
-                M{\r
-                    M{"M–M"}\r
-                }\r
+                H{\r
+                    H{"HH–HH"}\r
+                }\r
+                Hm{\r
+                    H{"HH:mm–HH:mm"}\r
+                    m{"HH:mm–HH:mm"}\r
+                }\r
+                Hmv{\r
+                    H{"HH:mm–HH:mm v"}\r
+                    m{"HH:mm–HH:mm v"}\r
+                }\r
+                Hv{\r
+                    H{"HH–HH v"}\r
+                }\r
+                M{\r
+                    M{"M–M"}\r
+                }\r
                 MEd{\r
                     M{"E dd-MM – E dd-MM"}\r
                     d{"E dd-MM – E dd-MM"}\r
@@ -3459,6 +4031,25 @@ nl{
                 d{\r
                     d{"d–d"}\r
                 }\r
+                fallback{"{0} - {1}"}\r
+                h{\r
+                    a{"h a – h a"}\r
+                    h{"h–h a"}\r
+                }\r
+                hm{\r
+                    a{"h:mm a – h:mm a"}\r
+                    h{"h:mm–h:mm a"}\r
+                    m{"h:mm–h:mm a"}\r
+                }\r
+                hmv{\r
+                    a{"h:mm a – h:mm a v"}\r
+                    h{"h:mm–h:mm a v"}\r
+                    m{"h:mm–h:mm a v"}\r
+                }\r
+                hv{\r
+                    a{"h a – h a v"}\r
+                    h{"h–h a v"}\r
+                }\r
                 y{\r
                     y{"y–y G"}\r
                 }\r
@@ -3784,7 +4375,7 @@ nl{
                 "EEEE d MMMM y",\r
                 "d MMMM y",\r
                 "d MMM y",\r
-                "dd-MM-yy",\r
+                "dd-MM-y",\r
                 "{1} {0}",\r
                 "{1} 'om' {0}",\r
                 "{1} 'om' {0}",\r
@@ -3929,25 +4520,25 @@ nl{
             dayPeriod{\r
                 format{\r
                     abbreviated{\r
-                        afternoon1{"â\80\98s middags"}\r
-                        evening1{"â\80\98s avonds"}\r
+                        afternoon1{"â\80\99s middags"}\r
+                        evening1{"â\80\99s avonds"}\r
                         midnight{"middernacht"}\r
-                        morning1{"â\80\98s ochtends"}\r
-                        night1{"â\80\98s nachts"}\r
+                        morning1{"â\80\99s ochtends"}\r
+                        night1{"â\80\99s nachts"}\r
                     }\r
                     narrow{\r
-                        afternoon1{"â\80\98s middags"}\r
-                        evening1{"â\80\98s avonds"}\r
+                        afternoon1{"â\80\99s middags"}\r
+                        evening1{"â\80\99s avonds"}\r
                         midnight{"middernacht"}\r
-                        morning1{"â\80\98s ochtends"}\r
-                        night1{"â\80\98s nachts"}\r
+                        morning1{"â\80\99s ochtends"}\r
+                        night1{"â\80\99s nachts"}\r
                     }\r
                     wide{\r
-                        afternoon1{"â\80\98s middags"}\r
-                        evening1{"â\80\98s avonds"}\r
+                        afternoon1{"â\80\99s middags"}\r
+                        evening1{"â\80\99s avonds"}\r
                         midnight{"middernacht"}\r
-                        morning1{"â\80\98s ochtends"}\r
-                        night1{"â\80\98s nachts"}\r
+                        morning1{"â\80\99s ochtends"}\r
+                        night1{"â\80\99s nachts"}\r
                     }\r
                 }\r
                 stand-alone{\r
@@ -4253,6 +4844,33 @@ nl{
                 "{1} {0}",\r
                 "{1} {0}",\r
             }\r
+            availableFormats{\r
+                E{"ccc"}\r
+                Ed{"E d"}\r
+                Gy{"y G"}\r
+                GyMMM{"MMM y G"}\r
+                GyMMMEd{"E d MMM y G"}\r
+                GyMMMd{"d MMM y G"}\r
+                M{"L"}\r
+                MEd{"E d MMM"}\r
+                MMM{"LLL"}\r
+                MMMEd{"E d MMM"}\r
+                MMMMd{"d MMMM"}\r
+                MMMd{"d MMM"}\r
+                Md{"d MMM"}\r
+                d{"d"}\r
+                y{"y"}\r
+                yyyy{"y G"}\r
+                yyyyM{"M-y GGGGG"}\r
+                yyyyMEd{"E d-M-y GGGGG"}\r
+                yyyyMMM{"MMM y G"}\r
+                yyyyMMMEd{"E d MMM y G"}\r
+                yyyyMMMM{"MMMM y G"}\r
+                yyyyMMMd{"d MMM y G"}\r
+                yyyyMd{"d-M-y GGGGG"}\r
+                yyyyQQQ{"QQQ y G"}\r
+                yyyyQQQQ{"QQQQ y G"}\r
+            }\r
             eras{\r
                 abbreviated{\r
                     "AM",\r
@@ -4264,6 +4882,104 @@ nl{
                     "AM",\r
                 }\r
             }\r
+            intervalFormats{\r
+                H{\r
+                    H{"HH–HH"}\r
+                }\r
+                Hm{\r
+                    H{"HH:mm–HH:mm"}\r
+                    m{"HH:mm–HH:mm"}\r
+                }\r
+                Hmv{\r
+                    H{"HH:mm–HH:mm v"}\r
+                    m{"HH:mm–HH:mm v"}\r
+                }\r
+                Hv{\r
+                    H{"HH–HH v"}\r
+                }\r
+                M{\r
+                    M{"M–M"}\r
+                }\r
+                MEd{\r
+                    M{"E dd-MM – E dd-MM"}\r
+                    d{"E dd-MM – E dd-MM"}\r
+                }\r
+                MMM{\r
+                    M{"MMM–MMM"}\r
+                }\r
+                MMMEd{\r
+                    M{"E d MMM – E d MMM"}\r
+                    d{"E d – E d MMM"}\r
+                }\r
+                MMMM{\r
+                    M{"MMMM–MMMM"}\r
+                }\r
+                MMMd{\r
+                    M{"d MMM – d MMM"}\r
+                    d{"d–d MMM"}\r
+                }\r
+                Md{\r
+                    M{"dd-MM – dd-MM"}\r
+                    d{"dd-MM – dd-MM"}\r
+                }\r
+                d{\r
+                    d{"d–d"}\r
+                }\r
+                fallback{"{0} - {1}"}\r
+                h{\r
+                    a{"h a – h a"}\r
+                    h{"h–h a"}\r
+                }\r
+                hm{\r
+                    a{"h:mm a – h:mm a"}\r
+                    h{"h:mm–h:mm a"}\r
+                    m{"h:mm–h:mm a"}\r
+                }\r
+                hmv{\r
+                    a{"h:mm a – h:mm a v"}\r
+                    h{"h:mm–h:mm a v"}\r
+                    m{"h:mm–h:mm a v"}\r
+                }\r
+                hv{\r
+                    a{"h a – h a v"}\r
+                    h{"h–h a v"}\r
+                }\r
+                y{\r
+                    y{"y–y G"}\r
+                }\r
+                yM{\r
+                    M{"MM-y – MM-y G"}\r
+                    y{"MM-y – MM-y G"}\r
+                }\r
+                yMEd{\r
+                    M{"E dd-MM-y – E dd-MM-y G"}\r
+                    d{"E dd-MM-y – E dd-MM-y G"}\r
+                    y{"E dd-MM-y – E dd-MM-y G"}\r
+                }\r
+                yMMM{\r
+                    M{"MMM–MMM y G"}\r
+                    y{"MMM y – MMM y G"}\r
+                }\r
+                yMMMEd{\r
+                    M{"E d MMM – E d MMM y G"}\r
+                    d{"E d – E d MMM y G"}\r
+                    y{"E d MMM y – E d MMM y G"}\r
+                }\r
+                yMMMM{\r
+                    M{"MMMM–MMMM y G"}\r
+                    y{"MMMM y – MMMM y G"}\r
+                }\r
+                yMMMd{\r
+                    M{"d MMM – d MMM y G"}\r
+                    d{"d–d MMM y G"}\r
+                    y{"d MMM y – d MMM y G"}\r
+                }\r
+                yMd{\r
+                    M{"dd-MM-y – dd-MM-y G"}\r
+                    d{"dd-MM-y – dd-MM-y G"}\r
+                    y{"dd-MM-y – dd-MM-y G"}\r
+                }\r
+            }\r
             monthNames{\r
                 format{\r
                     abbreviated{\r
@@ -4368,6 +5084,48 @@ nl{
             }\r
         }\r
         indian{\r
+            DateTimePatterns{\r
+                "HH:mm:ss zzzz",\r
+                "HH:mm:ss z",\r
+                "HH:mm:ss",\r
+                "HH:mm",\r
+                "EEEE d MMMM y G",\r
+                "d MMMM y G",\r
+                "d MMM y G",\r
+                "dd-MM-yy GGGGG",\r
+                "{1} {0}",\r
+                "{1} 'om' {0}",\r
+                "{1} 'om' {0}",\r
+                "{1} {0}",\r
+                "{1} {0}",\r
+            }\r
+            availableFormats{\r
+                E{"ccc"}\r
+                Ed{"E d"}\r
+                Gy{"y G"}\r
+                GyMMM{"MMM y G"}\r
+                GyMMMEd{"E d MMM y G"}\r
+                GyMMMd{"d MMM y G"}\r
+                M{"L"}\r
+                MEd{"E d-M"}\r
+                MMM{"LLL"}\r
+                MMMEd{"E d MMM"}\r
+                MMMMd{"d MMMM"}\r
+                MMMd{"d MMM"}\r
+                Md{"d-M"}\r
+                d{"d"}\r
+                y{"y G"}\r
+                yyyy{"y G"}\r
+                yyyyM{"M-y GGGGG"}\r
+                yyyyMEd{"E d-M-y GGGGG"}\r
+                yyyyMMM{"MMM y G"}\r
+                yyyyMMMEd{"E d MMM y G"}\r
+                yyyyMMMM{"MMMM y G"}\r
+                yyyyMMMd{"d MMM y G"}\r
+                yyyyMd{"d-M-y GGGGG"}\r
+                yyyyQQQ{"QQQ y G"}\r
+                yyyyQQQQ{"QQQQ y G"}\r
+            }\r
             eras{\r
                 abbreviated{\r
                     "Saka",\r
@@ -4379,58 +5137,156 @@ nl{
                     "Saka",\r
                 }\r
             }\r
-            monthNames{\r
-                format{\r
-                    abbreviated{\r
-                        "Chaitra",\r
-                        "Vaishakha",\r
-                        "Jyeshtha",\r
-                        "Aashaadha",\r
-                        "Shraavana",\r
-                        "Bhaadrapada",\r
-                        "Ashvina",\r
-                        "Kaartika",\r
-                        "Agrahayana",\r
-                        "Pausha",\r
-                        "Maagha",\r
-                        "Phaalguna",\r
-                    }\r
-                    narrow{\r
-                        "1",\r
-                        "2",\r
-                        "3",\r
-                        "4",\r
-                        "5",\r
-                        "6",\r
-                        "7",\r
-                        "8",\r
-                        "9",\r
-                        "10",\r
-                        "11",\r
-                        "12",\r
-                    }\r
-                    wide{\r
-                        "Chaitra",\r
-                        "Vaishakha",\r
-                        "Jyeshtha",\r
-                        "Aashaadha",\r
-                        "Shraavana",\r
-                        "Bhaadrapada",\r
-                        "Ashvina",\r
-                        "Kaartika",\r
-                        "Agrahayana",\r
-                        "Pausha",\r
-                        "Maagha",\r
-                        "Phaalguna",\r
-                    }\r
+            intervalFormats{\r
+                H{\r
+                    H{"HH–HH"}\r
                 }\r
-                stand-alone{\r
-                    abbreviated{\r
-                        "Chaitra",\r
-                        "Vaishakha",\r
-                        "Jyeshtha",\r
-                        "Aashaadha",\r
-                        "Shraavana",\r
+                Hm{\r
+                    H{"HH:mm–HH:mm"}\r
+                    m{"HH:mm–HH:mm"}\r
+                }\r
+                Hmv{\r
+                    H{"HH:mm–HH:mm v"}\r
+                    m{"HH:mm–HH:mm v"}\r
+                }\r
+                Hv{\r
+                    H{"HH–HH v"}\r
+                }\r
+                M{\r
+                    M{"M–M"}\r
+                }\r
+                MEd{\r
+                    M{"E dd-MM – E dd-MM"}\r
+                    d{"E dd-MM – E dd-MM"}\r
+                }\r
+                MMM{\r
+                    M{"MMM–MMM"}\r
+                }\r
+                MMMEd{\r
+                    M{"E d MMM – E d MMM"}\r
+                    d{"E d – E d MMM"}\r
+                }\r
+                MMMM{\r
+                    M{"MMMM–MMMM"}\r
+                }\r
+                MMMd{\r
+                    M{"d MMM – d MMM"}\r
+                    d{"d–d MMM"}\r
+                }\r
+                Md{\r
+                    M{"dd-MM – dd-MM"}\r
+                    d{"dd-MM – dd-MM"}\r
+                }\r
+                d{\r
+                    d{"d–d"}\r
+                }\r
+                fallback{"{0} - {1}"}\r
+                h{\r
+                    a{"h a – h a"}\r
+                    h{"h–h a"}\r
+                }\r
+                hm{\r
+                    a{"h:mm a – h:mm a"}\r
+                    h{"h:mm–h:mm a"}\r
+                    m{"h:mm–h:mm a"}\r
+                }\r
+                hmv{\r
+                    a{"h:mm a – h:mm a v"}\r
+                    h{"h:mm–h:mm a v"}\r
+                    m{"h:mm–h:mm a v"}\r
+                }\r
+                hv{\r
+                    a{"h a – h a v"}\r
+                    h{"h–h a v"}\r
+                }\r
+                y{\r
+                    y{"y–y G"}\r
+                }\r
+                yM{\r
+                    M{"MM-y – MM-y G"}\r
+                    y{"MM-y – MM-y G"}\r
+                }\r
+                yMEd{\r
+                    M{"E dd-MM-y – E dd-MM-y G"}\r
+                    d{"E dd-MM-y – E dd-MM-y G"}\r
+                    y{"E dd-MM-y – E dd-MM-y G"}\r
+                }\r
+                yMMM{\r
+                    M{"MMM–MMM y G"}\r
+                    y{"MMM y – MMM y G"}\r
+                }\r
+                yMMMEd{\r
+                    M{"E d MMM – E d MMM y G"}\r
+                    d{"E d – E d MMM y G"}\r
+                    y{"E d MMM y – E d MMM y G"}\r
+                }\r
+                yMMMM{\r
+                    M{"MMMM–MMMM y G"}\r
+                    y{"MMMM y – MMMM y G"}\r
+                }\r
+                yMMMd{\r
+                    M{"d MMM – d MMM y G"}\r
+                    d{"d–d MMM y G"}\r
+                    y{"d MMM y – d MMM y G"}\r
+                }\r
+                yMd{\r
+                    M{"dd-MM-y – dd-MM-y G"}\r
+                    d{"dd-MM-y – dd-MM-y G"}\r
+                    y{"dd-MM-y – dd-MM-y G"}\r
+                }\r
+            }\r
+            monthNames{\r
+                format{\r
+                    abbreviated{\r
+                        "Chaitra",\r
+                        "Vaishakha",\r
+                        "Jyeshtha",\r
+                        "Aashaadha",\r
+                        "Shraavana",\r
+                        "Bhaadrapada",\r
+                        "Ashvina",\r
+                        "Kaartika",\r
+                        "Agrahayana",\r
+                        "Pausha",\r
+                        "Maagha",\r
+                        "Phaalguna",\r
+                    }\r
+                    narrow{\r
+                        "1",\r
+                        "2",\r
+                        "3",\r
+                        "4",\r
+                        "5",\r
+                        "6",\r
+                        "7",\r
+                        "8",\r
+                        "9",\r
+                        "10",\r
+                        "11",\r
+                        "12",\r
+                    }\r
+                    wide{\r
+                        "Chaitra",\r
+                        "Vaishakha",\r
+                        "Jyeshtha",\r
+                        "Aashaadha",\r
+                        "Shraavana",\r
+                        "Bhaadrapada",\r
+                        "Ashvina",\r
+                        "Kaartika",\r
+                        "Agrahayana",\r
+                        "Pausha",\r
+                        "Maagha",\r
+                        "Phaalguna",\r
+                    }\r
+                }\r
+                stand-alone{\r
+                    abbreviated{\r
+                        "Chaitra",\r
+                        "Vaishakha",\r
+                        "Jyeshtha",\r
+                        "Aashaadha",\r
+                        "Shraavana",\r
                         "Bhaadrapada",\r
                         "Ashvina",\r
                         "Kaartika",\r
@@ -4487,6 +5343,7 @@ nl{
                 "{1} {0}",\r
             }\r
             availableFormats{\r
+                E{"ccc"}\r
                 Ed{"E d"}\r
                 Gy{"y G"}\r
                 GyMMM{"MMM y G"}\r
@@ -4523,6 +5380,104 @@ nl{
                     "Saʻna Hizjria",\r
                 }\r
             }\r
+            intervalFormats{\r
+                H{\r
+                    H{"HH–HH"}\r
+                }\r
+                Hm{\r
+                    H{"HH:mm–HH:mm"}\r
+                    m{"HH:mm–HH:mm"}\r
+                }\r
+                Hmv{\r
+                    H{"HH:mm–HH:mm v"}\r
+                    m{"HH:mm–HH:mm v"}\r
+                }\r
+                Hv{\r
+                    H{"HH–HH v"}\r
+                }\r
+                M{\r
+                    M{"M–M"}\r
+                }\r
+                MEd{\r
+                    M{"E dd-MM – E dd-MM"}\r
+                    d{"E dd-MM – E dd-MM"}\r
+                }\r
+                MMM{\r
+                    M{"MMM–MMM"}\r
+                }\r
+                MMMEd{\r
+                    M{"E d MMM – E d MMM"}\r
+                    d{"E d – E d MMM"}\r
+                }\r
+                MMMM{\r
+                    M{"MMMM–MMMM"}\r
+                }\r
+                MMMd{\r
+                    M{"d MMM – d MMM"}\r
+                    d{"d–d MMM"}\r
+                }\r
+                Md{\r
+                    M{"dd-MM – dd-MM"}\r
+                    d{"dd-MM – dd-MM"}\r
+                }\r
+                d{\r
+                    d{"d–d"}\r
+                }\r
+                fallback{"{0} - {1}"}\r
+                h{\r
+                    a{"h a – h a"}\r
+                    h{"h–h a"}\r
+                }\r
+                hm{\r
+                    a{"h:mm a – h:mm a"}\r
+                    h{"h:mm–h:mm a"}\r
+                    m{"h:mm–h:mm a"}\r
+                }\r
+                hmv{\r
+                    a{"h:mm a – h:mm a v"}\r
+                    h{"h:mm–h:mm a v"}\r
+                    m{"h:mm–h:mm a v"}\r
+                }\r
+                hv{\r
+                    a{"h a – h a v"}\r
+                    h{"h–h a v"}\r
+                }\r
+                y{\r
+                    y{"y–y G"}\r
+                }\r
+                yM{\r
+                    M{"MM-y – MM-y G"}\r
+                    y{"MM-y – MM-y G"}\r
+                }\r
+                yMEd{\r
+                    M{"E dd-MM-y – E dd-MM-y G"}\r
+                    d{"E dd-MM-y – E dd-MM-y G"}\r
+                    y{"E dd-MM-y – E dd-MM-y G"}\r
+                }\r
+                yMMM{\r
+                    M{"MMM–MMM y G"}\r
+                    y{"MMM y – MMM y G"}\r
+                }\r
+                yMMMEd{\r
+                    M{"E d MMM – E d MMM y G"}\r
+                    d{"E d – E d MMM y G"}\r
+                    y{"E d MMM y – E d MMM y G"}\r
+                }\r
+                yMMMM{\r
+                    M{"MMMM–MMMM y G"}\r
+                    y{"MMMM y – MMMM y G"}\r
+                }\r
+                yMMMd{\r
+                    M{"d MMM – d MMM y G"}\r
+                    d{"d–d MMM y G"}\r
+                    y{"d MMM y – d MMM y G"}\r
+                }\r
+                yMd{\r
+                    M{"dd-MM-y – dd-MM-y G"}\r
+                    d{"dd-MM-y – dd-MM-y G"}\r
+                    y{"dd-MM-y – dd-MM-y G"}\r
+                }\r
+            }\r
             monthNames{\r
                 format{\r
                     abbreviated{\r
@@ -4631,6 +5586,7 @@ nl{
                 "{1} {0}",\r
             }\r
             availableFormats{\r
+                E{"ccc"}\r
                 Ed{"E d"}\r
                 Gy{"y G"}\r
                 GyMMM{"MMM y G"}\r
@@ -4894,6 +5850,7 @@ nl{
                     "Taishō",\r
                     "Shōwa",\r
                     "Heisei",\r
+                    "Qqqq",\r
                 }\r
                 narrow{\r
                     "Taika (645–650)",\r
@@ -5042,14 +5999,14 @@ nl{
                     "Kengen (1302–1303)",\r
                     "Kagen (1303–1306)",\r
                     "Tokuji (1306–1308)",\r
-                    "Enk (1308–1311)",\r
+                    "Enkei (1308–1311)",\r
                     "Ōchō (1311–1312)",\r
                     "Shōwa (1312–1317)",\r
                     "Bunpō (1317–1319)",\r
                     "Genō (1319–1321)",\r
                     "Genkō (1321–1324)",\r
                     "Shōchū (1324–1326)",\r
-                    "Karyaku (1326–1329)",\r
+                    "Kareki (1326–1329)",\r
                     "Gentoku (1329–1331)",\r
                     "Genkō (1331–1334)",\r
                     "Kenmu (1334–1336)",\r
@@ -5110,7 +6067,7 @@ nl{
                     "Kyōhō (1716–1736)",\r
                     "Genbun (1736–1741)",\r
                     "Kanpō (1741–1744)",\r
-                    "Enk (1744–1748)",\r
+                    "Enkei (1744–1748)",\r
                     "Kan’en (1748–1751)",\r
                     "Hōreki (1751–1764)",\r
                     "Meiwa (1764–1772)",\r
@@ -5132,6 +6089,7 @@ nl{
                     "T",\r
                     "S",\r
                     "H",\r
+                    "Q",\r
                 }\r
                 wide{\r
                     "Taika (645–650)",\r
@@ -5370,21 +6328,260 @@ nl{
                     "Taishō",\r
                     "Shōwa",\r
                     "Heisei",\r
+                    "Qqqq",\r
                 }\r
             }\r
-        }\r
-        persian{\r
-            eras{\r
-                abbreviated{\r
-                    "AP",\r
-                }\r
-                narrow{\r
+            intervalFormats{\r
+                H{\r
+                    H{"HH–HH"}\r
+                }\r
+                Hm{\r
+                    H{"HH:mm–HH:mm"}\r
+                    m{"HH:mm–HH:mm"}\r
+                }\r
+                Hmv{\r
+                    H{"HH:mm–HH:mm v"}\r
+                    m{"HH:mm–HH:mm v"}\r
+                }\r
+                Hv{\r
+                    H{"HH–HH v"}\r
+                }\r
+                M{\r
+                    M{"M–M"}\r
+                }\r
+                MEd{\r
+                    M{"E dd-MM – E dd-MM"}\r
+                    d{"E dd-MM – E dd-MM"}\r
+                }\r
+                MMM{\r
+                    M{"MMM–MMM"}\r
+                }\r
+                MMMEd{\r
+                    M{"E d MMM – E d MMM"}\r
+                    d{"E d – E d MMM"}\r
+                }\r
+                MMMM{\r
+                    M{"MMMM–MMMM"}\r
+                }\r
+                MMMd{\r
+                    M{"d MMM – d MMM"}\r
+                    d{"d–d MMM"}\r
+                }\r
+                Md{\r
+                    M{"dd-MM – dd-MM"}\r
+                    d{"dd-MM – dd-MM"}\r
+                }\r
+                d{\r
+                    d{"d–d"}\r
+                }\r
+                fallback{"{0} - {1}"}\r
+                h{\r
+                    a{"h a – h a"}\r
+                    h{"h–h a"}\r
+                }\r
+                hm{\r
+                    a{"h:mm a – h:mm a"}\r
+                    h{"h:mm–h:mm a"}\r
+                    m{"h:mm–h:mm a"}\r
+                }\r
+                hmv{\r
+                    a{"h:mm a – h:mm a v"}\r
+                    h{"h:mm–h:mm a v"}\r
+                    m{"h:mm–h:mm a v"}\r
+                }\r
+                hv{\r
+                    a{"h a – h a v"}\r
+                    h{"h–h a v"}\r
+                }\r
+                y{\r
+                    y{"y–y G"}\r
+                }\r
+                yM{\r
+                    M{"MM-y – MM-y G"}\r
+                    y{"MM-y – MM-y G"}\r
+                }\r
+                yMEd{\r
+                    M{"E dd-MM-y – E dd-MM-y G"}\r
+                    d{"E dd-MM-y – E dd-MM-y G"}\r
+                    y{"E dd-MM-y – E dd-MM-y G"}\r
+                }\r
+                yMMM{\r
+                    M{"MMM–MMM y G"}\r
+                    y{"MMM y – MMM y G"}\r
+                }\r
+                yMMMEd{\r
+                    M{"E d MMM – E d MMM y G"}\r
+                    d{"E d – E d MMM y G"}\r
+                    y{"E d MMM y – E d MMM y G"}\r
+                }\r
+                yMMMM{\r
+                    M{"MMMM–MMMM y G"}\r
+                    y{"MMMM y – MMMM y G"}\r
+                }\r
+                yMMMd{\r
+                    M{"d MMM – d MMM y G"}\r
+                    d{"d–d MMM y G"}\r
+                    y{"d MMM y – d MMM y G"}\r
+                }\r
+                yMd{\r
+                    M{"dd-MM-y – dd-MM-y G"}\r
+                    d{"dd-MM-y – dd-MM-y G"}\r
+                    y{"dd-MM-y – dd-MM-y G"}\r
+                }\r
+            }\r
+        }\r
+        persian{\r
+            DateTimePatterns{\r
+                "HH:mm:ss zzzz",\r
+                "HH:mm:ss z",\r
+                "HH:mm:ss",\r
+                "HH:mm",\r
+                "EEEE d MMMM y G",\r
+                "d MMMM y G",\r
+                "d MMM y G",\r
+                "dd-MM-yy GGGGG",\r
+                "{1} {0}",\r
+                "{1} 'om' {0}",\r
+                "{1} 'om' {0}",\r
+                "{1} {0}",\r
+                "{1} {0}",\r
+            }\r
+            availableFormats{\r
+                E{"ccc"}\r
+                Ed{"E d"}\r
+                Gy{"y G"}\r
+                GyMMM{"MMM y G"}\r
+                GyMMMEd{"E d MMM y G"}\r
+                GyMMMd{"d MMM y G"}\r
+                M{"L"}\r
+                MEd{"E d-M"}\r
+                MMM{"LLL"}\r
+                MMMEd{"E d MMM"}\r
+                MMMMd{"d MMMM"}\r
+                MMMd{"d MMM"}\r
+                Md{"d-M"}\r
+                d{"d"}\r
+                y{"y G"}\r
+                yyyy{"y G"}\r
+                yyyyM{"M-y GGGGG"}\r
+                yyyyMEd{"E d-M-y GGGGG"}\r
+                yyyyMMM{"MMM y G"}\r
+                yyyyMMMEd{"E d MMM y G"}\r
+                yyyyMMMM{"MMMM y G"}\r
+                yyyyMMMd{"d MMM y G"}\r
+                yyyyMd{"d-M-y GGGGG"}\r
+                yyyyQQQ{"QQQ y G"}\r
+                yyyyQQQQ{"QQQQ y G"}\r
+            }\r
+            eras{\r
+                abbreviated{\r
+                    "AP",\r
+                }\r
+                narrow{\r
                     "AP",\r
                 }\r
                 wide{\r
                     "AP",\r
                 }\r
             }\r
+            intervalFormats{\r
+                H{\r
+                    H{"HH–HH"}\r
+                }\r
+                Hm{\r
+                    H{"HH:mm–HH:mm"}\r
+                    m{"HH:mm–HH:mm"}\r
+                }\r
+                Hmv{\r
+                    H{"HH:mm–HH:mm v"}\r
+                    m{"HH:mm–HH:mm v"}\r
+                }\r
+                Hv{\r
+                    H{"HH–HH v"}\r
+                }\r
+                M{\r
+                    M{"M–M"}\r
+                }\r
+                MEd{\r
+                    M{"E dd-MM – E dd-MM"}\r
+                    d{"E dd-MM – E dd-MM"}\r
+                }\r
+                MMM{\r
+                    M{"MMM–MMM"}\r
+                }\r
+                MMMEd{\r
+                    M{"E d MMM – E d MMM"}\r
+                    d{"E d – E d MMM"}\r
+                }\r
+                MMMM{\r
+                    M{"MMMM–MMMM"}\r
+                }\r
+                MMMd{\r
+                    M{"d MMM – d MMM"}\r
+                    d{"d–d MMM"}\r
+                }\r
+                Md{\r
+                    M{"dd-MM – dd-MM"}\r
+                    d{"dd-MM – dd-MM"}\r
+                }\r
+                d{\r
+                    d{"d–d"}\r
+                }\r
+                fallback{"{0} - {1}"}\r
+                h{\r
+                    a{"h a – h a"}\r
+                    h{"h–h a"}\r
+                }\r
+                hm{\r
+                    a{"h:mm a – h:mm a"}\r
+                    h{"h:mm–h:mm a"}\r
+                    m{"h:mm–h:mm a"}\r
+                }\r
+                hmv{\r
+                    a{"h:mm a – h:mm a v"}\r
+                    h{"h:mm–h:mm a v"}\r
+                    m{"h:mm–h:mm a v"}\r
+                }\r
+                hv{\r
+                    a{"h a – h a v"}\r
+                    h{"h–h a v"}\r
+                }\r
+                y{\r
+                    y{"y–y G"}\r
+                }\r
+                yM{\r
+                    M{"MM-y – MM-y G"}\r
+                    y{"MM-y – MM-y G"}\r
+                }\r
+                yMEd{\r
+                    M{"E dd-MM-y – E dd-MM-y G"}\r
+                    d{"E dd-MM-y – E dd-MM-y G"}\r
+                    y{"E dd-MM-y – E dd-MM-y G"}\r
+                }\r
+                yMMM{\r
+                    M{"MMM–MMM y G"}\r
+                    y{"MMM y – MMM y G"}\r
+                }\r
+                yMMMEd{\r
+                    M{"E d MMM – E d MMM y G"}\r
+                    d{"E d – E d MMM y G"}\r
+                    y{"E d MMM y – E d MMM y G"}\r
+                }\r
+                yMMMM{\r
+                    M{"MMMM–MMMM y G"}\r
+                    y{"MMMM y – MMMM y G"}\r
+                }\r
+                yMMMd{\r
+                    M{"d MMM – d MMM y G"}\r
+                    d{"d–d MMM y G"}\r
+                    y{"d MMM y – d MMM y G"}\r
+                }\r
+                yMd{\r
+                    M{"dd-MM-y – dd-MM-y G"}\r
+                    d{"dd-MM-y – dd-MM-y G"}\r
+                    y{"dd-MM-y – dd-MM-y G"}\r
+                }\r
+            }\r
             monthNames{\r
                 format{\r
                     abbreviated{\r
@@ -5493,6 +6690,7 @@ nl{
                 "{1} {0}",\r
             }\r
             availableFormats{\r
+                E{"ccc"}\r
                 Ed{"E d"}\r
                 Gy{"y G"}\r
                 GyMMM{"MMM y G"}\r
@@ -5532,6 +6730,104 @@ nl{
                     "Minguo",\r
                 }\r
             }\r
+            intervalFormats{\r
+                H{\r
+                    H{"HH–HH"}\r
+                }\r
+                Hm{\r
+                    H{"HH:mm–HH:mm"}\r
+                    m{"HH:mm–HH:mm"}\r
+                }\r
+                Hmv{\r
+                    H{"HH:mm–HH:mm v"}\r
+                    m{"HH:mm–HH:mm v"}\r
+                }\r
+                Hv{\r
+                    H{"HH–HH v"}\r
+                }\r
+                M{\r
+                    M{"M–M"}\r
+                }\r
+                MEd{\r
+                    M{"E dd-MM – E dd-MM"}\r
+                    d{"E dd-MM – E dd-MM"}\r
+                }\r
+                MMM{\r
+                    M{"MMM–MMM"}\r
+                }\r
+                MMMEd{\r
+                    M{"E d MMM – E d MMM"}\r
+                    d{"E d – E d MMM"}\r
+                }\r
+                MMMM{\r
+                    M{"MMMM–MMMM"}\r
+                }\r
+                MMMd{\r
+                    M{"d MMM – d MMM"}\r
+                    d{"d–d MMM"}\r
+                }\r
+                Md{\r
+                    M{"dd-MM – dd-MM"}\r
+                    d{"dd-MM – dd-MM"}\r
+                }\r
+                d{\r
+                    d{"d–d"}\r
+                }\r
+                fallback{"{0} - {1}"}\r
+                h{\r
+                    a{"h a – h a"}\r
+                    h{"h–h a"}\r
+                }\r
+                hm{\r
+                    a{"h:mm a – h:mm a"}\r
+                    h{"h:mm–h:mm a"}\r
+                    m{"h:mm–h:mm a"}\r
+                }\r
+                hmv{\r
+                    a{"h:mm a – h:mm a v"}\r
+                    h{"h:mm–h:mm a v"}\r
+                    m{"h:mm–h:mm a v"}\r
+                }\r
+                hv{\r
+                    a{"h a – h a v"}\r
+                    h{"h–h a v"}\r
+                }\r
+                y{\r
+                    y{"y–y G"}\r
+                }\r
+                yM{\r
+                    M{"MM-y – MM-y G"}\r
+                    y{"MM-y – MM-y G"}\r
+                }\r
+                yMEd{\r
+                    M{"E dd-MM-y – E dd-MM-y G"}\r
+                    d{"E dd-MM-y – E dd-MM-y G"}\r
+                    y{"E dd-MM-y – E dd-MM-y G"}\r
+                }\r
+                yMMM{\r
+                    M{"MMM–MMM y G"}\r
+                    y{"MMM y – MMM y G"}\r
+                }\r
+                yMMMEd{\r
+                    M{"E d MMM – E d MMM y G"}\r
+                    d{"E d – E d MMM y G"}\r
+                    y{"E d MMM y – E d MMM y G"}\r
+                }\r
+                yMMMM{\r
+                    M{"MMMM–MMMM y G"}\r
+                    y{"MMMM y – MMMM y G"}\r
+                }\r
+                yMMMd{\r
+                    M{"d MMM – d MMM y G"}\r
+                    d{"d–d MMM y G"}\r
+                    y{"d MMM y – d MMM y G"}\r
+                }\r
+                yMd{\r
+                    M{"dd-MM-y – dd-MM-y G"}\r
+                    d{"dd-MM-y – dd-MM-y G"}\r
+                    y{"dd-MM-y – dd-MM-y G"}\r
+                }\r
+            }\r
         }\r
     }\r
     characterLabel{\r
@@ -6552,8 +7848,13 @@ nl{
         general{\r
             lenient{\r
                 "[.․。︒﹒.。]",\r
+                "['ʼ՚᾽᾿’']",\r
+                "[%٪﹪%]",\r
+                "[؉‰]",\r
                 "[\$﹩$$]",\r
                 "[£₤]",\r
+                "[¥¥]",\r
+                "[₩₩]",\r
                 "[₨₹{Rp}{Rs}]",\r
             }\r
         }\r
index 5c0e95df890fd42af6241b52920f3dc45defdbe4..a0bf9d95aa5cbacae15ce2a83f13c6a72f34fdb5 100644 (file)
@@ -4,11 +4,11 @@ nl_BE{
     NumberElements{\r
         latn{\r
             patterns{\r
-                currencyFormat{"#,##0.00 ¤"}\r
+                currencyFormat{"¤ #,##0.00"}\r
             }\r
         }\r
     }\r
-    Version{"2.1.38.39"}\r
+    Version{"2.1.43.2"}\r
     calendar{\r
         generic{\r
             DateTimePatterns{\r
@@ -67,7 +67,7 @@ nl_BE{
                 "EEEE d MMMM y",\r
                 "d MMMM y",\r
                 "d MMM y",\r
-                "d/MM/yy",\r
+                "d/MM/y",\r
                 "{1} {0}",\r
                 "{1} 'om' {0}",\r
                 "{1} 'om' {0}",\r
index 0f6c09bf5e76db835b630a794c989499ee81cc84..9f9e7c010846d0988a64c2709dce5fb78956efa3 100644 (file)
@@ -9,7 +9,7 @@ nn{
         default{"latn"}\r
         latn{\r
             miscPatterns{\r
-                atLeast{"⩾{0}"}\r
+                atLeast{"â\89¥{0}"}\r
                 range{"{0}‒{1}"}\r
             }\r
             patterns{\r
@@ -98,7 +98,7 @@ nn{
         minimumGroupingDigits{"1"}\r
         native{"latn"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.94"}\r
     calendar{\r
         generic{\r
             DateTimePatterns{\r
index f554f94e6a1509320a90afa98a50c29a41bd58f5..d41f3644554f3bb47bd8f064f79c772f20a39995 100644 (file)
@@ -8,7 +8,7 @@ om{
         default{"latn"}\r
         latn{\r
             miscPatterns{\r
-                atLeast{"⩾{0}"}\r
+                atLeast{"â\89¥{0}"}\r
                 range{"{0}–{1}"}\r
             }\r
             patterns{\r
@@ -35,7 +35,7 @@ om{
         native{"latn"}\r
         traditional{"ethi"}\r
     }\r
-    Version{"2.1.38.69"}\r
+    Version{"2.1.43.94"}\r
     calendar{\r
         generic{\r
             DateTimePatterns{\r
index eaa4db76467e439a8c9b866f666b0de94af605cd..37fa2d8835e4353a6cf9cb302f3675f0f7658cf4 100644 (file)
@@ -20,19 +20,25 @@ or{
         " ଲ ଳ ଶ ଷ ସ ହ {କ\u0B4Dଷ}]"\r
     }\r
     ExemplarCharactersNumbers{"[\\- , . % ‰ + 0୦ 1୧ 2୨ 3୩ 4୪ 5୫ 6୬ 7୭ 8୮ 9୯]"}\r
+    ExemplarCharactersPunctuation{\r
+        "[\\- ‐ – — , ; \\: ! ? . … ' ‘ ’ \u0022 “ ” ( ) \\[ \\] § @ * / \\& # † ‡ ′ "\r
+        "″]"\r
+    }\r
     MoreInformation{"?"}\r
     NumberElements{\r
         default{"latn"}\r
         latn{\r
             miscPatterns{\r
+                approximately{"~{0}"}\r
                 atLeast{"{0}+"}\r
+                atMost{"≤{0}"}\r
                 range{"{0}–{1}"}\r
             }\r
             patterns{\r
-                accountingFormat{"¤#,##,##0.00;(¤#,##,##0.00)"}\r
-                currencyFormat{"¤ #,##,##0.00"}\r
+                accountingFormat{"¤#,##0.00;(¤#,##0.00)"}\r
+                currencyFormat{"¤#,##0.00"}\r
                 decimalFormat{"#,##,##0.###"}\r
-                percentFormat{"#,##,##0%"}\r
+                percentFormat{"#,##0%"}\r
                 scientificFormat{"#E0"}\r
             }\r
             patternsLong{\r
@@ -215,9 +221,9 @@ or{
         native{"orya"}\r
         orya{\r
             patterns{\r
-                currencyFormat{"¤#,##,##0.00"}\r
+                currencyFormat{"¤#,##0.00"}\r
                 decimalFormat{"#,##,##0.###"}\r
-                percentFormat{"#,##,##0%"}\r
+                percentFormat{"#,##0%"}\r
                 scientificFormat{"#E0"}\r
             }\r
             symbols{\r
@@ -234,7 +240,7 @@ or{
             }\r
         }\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.65"}\r
     calendar{\r
         generic{\r
             DateTimePatterns{\r
@@ -796,7 +802,7 @@ or{
         african_scripts{"ଆଫ୍ରିକୀୟ ସ୍କ୍ରିପ୍ଟ"}\r
         american_scripts{"ଆମେରିକୀୟ ସ୍କ୍ରିପ୍ଟ"}\r
         animal{"ପଶୁ"}\r
-        animals_nature{"ପà­\8dରାଣà­\80 କିମ୍ବା ପ୍ରକୃତି"}\r
+        animals_nature{"ପଶà­\81 କିମ୍ବା ପ୍ରକୃତି"}\r
         arrows{"ତୀର"}\r
         body{"ଶରୀର"}\r
         box_drawing{"ବକ୍ସ ଅଙ୍କନ କରିବା"}\r
@@ -1709,8 +1715,13 @@ or{
         general{\r
             lenient{\r
                 "[.․。︒﹒.。]",\r
+                "['ʼ՚᾽᾿’']",\r
+                "[%٪﹪%]",\r
+                "[؉‰]",\r
                 "[\$﹩$$]",\r
                 "[£₤]",\r
+                "[¥¥]",\r
+                "[₩₩]",\r
                 "[₨₹{Rp}{Rs}]",\r
             }\r
         }\r
index afe2c19646442d20c17bde4a32171dd559a53446..e9d223c7f6a51fdbdd79f653b301cca0f318293b 100644 (file)
@@ -64,7 +64,9 @@ pa{
         }\r
         latn{\r
             miscPatterns{\r
+                approximately{"~{0}"}\r
                 atLeast{"{0}+"}\r
+                atMost{"≤{0}"}\r
                 range{"{0}–{1}"}\r
             }\r
             patterns{\r
@@ -254,7 +256,7 @@ pa{
         minimumGroupingDigits{"1"}\r
         native{"guru"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.65"}\r
     calendar{\r
         buddhist{\r
             DateTimePatterns{\r
@@ -283,6 +285,9 @@ pa{
                     "ਈਸਵੀ ਪੂਰਵ",\r
                 }\r
             }\r
+            intervalFormats{\r
+                fallback{"{0} – {1}"}\r
+            }\r
         }\r
         coptic{\r
             eras{\r
@@ -508,6 +513,19 @@ pa{
                 }\r
             }\r
         }\r
+        ethiopic-amete-alem{\r
+            eras{\r
+                abbreviated{\r
+                    "ERA0",\r
+                }\r
+                narrow{\r
+                    "ERA0",\r
+                }\r
+                wide{\r
+                    "ERA0",\r
+                }\r
+            }\r
+        }\r
         generic{\r
             DateTimePatterns{\r
                 "h:mm:ss a zzzz",\r
@@ -570,6 +588,20 @@ pa{
                 yyyyQQQQ{"QQQQ y G"}\r
             }\r
             intervalFormats{\r
+                H{\r
+                    H{"HH–HH"}\r
+                }\r
+                Hm{\r
+                    H{"HH:mm–HH:mm"}\r
+                    m{"HH:mm–HH:mm"}\r
+                }\r
+                Hmv{\r
+                    H{"HH:mm–HH:mm v"}\r
+                    m{"HH:mm–HH:mm v"}\r
+                }\r
+                Hv{\r
+                    H{"HH–HH v"}\r
+                }\r
                 M{\r
                     M{"MM–MM"}\r
                 }\r
@@ -596,6 +628,24 @@ pa{
                     d{"d – d"}\r
                 }\r
                 fallback{"{0} – {1}"}\r
+                h{\r
+                    a{"h a – h a"}\r
+                    h{"h–h a"}\r
+                }\r
+                hm{\r
+                    a{"h:mm a – h:mm a"}\r
+                    h{"h:mm–h:mm a"}\r
+                    m{"h:mm–h:mm a"}\r
+                }\r
+                hmv{\r
+                    a{"h:mm a – h:mm a v"}\r
+                    h{"h:mm–h:mm a v"}\r
+                    m{"h:mm–h:mm a v"}\r
+                }\r
+                hv{\r
+                    a{"h a – h a v"}\r
+                    h{"h–h a v"}\r
+                }\r
                 y{\r
                     y{"y – y G"}\r
                 }\r
@@ -1550,11 +1600,11 @@ pa{
         }\r
     }\r
     characterLabel{\r
-        activities{"ਸਰਗਰਮੀਆਂ"}\r
-        african_scripts{"à¨\85ਫਰà©\80à¨\95ਨ à¨²à¨¿à©±à¨ªà©\80à¨\86à¨\82"}\r
-        american_scripts{"à¨\85ਮਰà©\80à¨\95à©\80 à¨²à¨¿à©±à¨ªà©\80à¨\86à¨\82"}\r
+        activities{"ਸਰਗਰਮੀ"}\r
+        african_scripts{"à¨\85ਫਰà©\80à¨\95à©\80 à¨²à¨¿à¨ªà©\80"}\r
+        american_scripts{"à¨\85ਮਰà©\80à¨\95à©\80 à¨²à¨¿à¨ªà©\80"}\r
         animal{"ਜਾਨਵਰ"}\r
-        animals_nature{"ਪਸ਼à©\82 à¨\85ਤà©\87 ਕੁਦਰਤ"}\r
+        animals_nature{"à¨\9cਾਨਵਰ à¨\9cਾà¨\82 ਕੁਦਰਤ"}\r
         arrows{"ਤੀਰ"}\r
         body{"ਸਰੀਰ"}\r
         box_drawing{"ਬਾਕਸ ਡਰਾਇੰਗ"}\r
@@ -1563,15 +1613,15 @@ pa{
         bullets_stars{"ਬਿੰਦੀਆਂ/ਤਾਰੇ"}\r
         consonantal_jamo{"ਵਿਅੰਜਨਾਤਮਕ ਜਾਮੋ"}\r
         currency_symbols{"ਮੁਦਰਾ ਚਿੰਨ੍ਹ"}\r
-        dash_connector{"ਡੈਸ਼/ਕਨੈਕਟਰ"}\r
+        dash_connector{"ਡੈਸ਼ ਜਾਂ ਕਨੈਕਟਰ"}\r
         digits{"ਅੰਕ"}\r
-        dingbats{"ਡਿੰਗਬੈਟ"}\r
+        dingbats{"ਡਿੰਗਬੈਟ"}\r
         divination_symbols{"ਭਵਿੱਖਬਾਣੀ ਚਿੰਨ੍ਹ"}\r
         downwards_arrows{"ਹੇਠਾਂ ਨੂੰ ਤੀਰ"}\r
         downwards_upwards_arrows{"ਹੇਠ ਉੱਪਰ ਵੱਲ ਤੀਰ"}\r
-        east_asian_scripts{"ਪà©\82ਰਬà©\80 à¨\8fਸ਼à©\80à¨\86à¨\88 à¨²à¨¿à©±à¨ªà©\80à¨\86à¨\82"}\r
+        east_asian_scripts{"ਪà©\82ਰਬà©\80 à¨\8fਸ਼à©\80à¨\86à¨\88 à¨²à¨¿à¨ªà©\80"}\r
         emoji{"ਇਮੋਜੀ"}\r
-        european_scripts{"ਯà©\82ਰਪà©\80 à¨²à¨¿à©±à¨ªà©\80à¨\86à¨\82"}\r
+        european_scripts{"ਯà©\82ਰਪà©\80 à¨²à¨¿à¨ªà©\80"}\r
         female{"ਔਰਤ"}\r
         flag{"ਝੰਡਾ"}\r
         flags{"ਝੰਡੇ"}\r
@@ -1579,18 +1629,18 @@ pa{
         format{"ਬਣਤਰ"}\r
         format_whitespace{"ਬਣਤਰ ਅਤੇ ਖਾਲੀ ਸਥਾਨ"}\r
         full_width_form_variant{"ਪੂਰਨ-ਚੌੜਾਈ ਰੂਪੀ ਰੂਪਾਂਤਰ"}\r
-        geometric_shapes{"à¨\9cਿà¨\86ਮਿਤà©\80 à¨\86à¨\95à©\8dਰਿਤà©\80à¨\86à¨\82"}\r
+        geometric_shapes{"à¨\9cਿà¨\86ਮਿਤà©\80 à¨¸à¨¼à¨\95ਲ"}\r
         half_width_form_variant{"ਅਰਧ-ਚੌੜਾਈ ਰੂਪੀ ਰੂਪਾਂਤਰ"}\r
         han_characters{"ਹਾਨ ਅੱਖਰ"}\r
         han_radicals{"ਹਾਨ ਮੂਲ ਸ਼ਬਦ"}\r
         hanja{"ਹਾਂਜਾ"}\r
         hanzi_simplified{"ਹਾਂਜ਼ੀ (ਸਰਲ)"}\r
-        hanzi_traditional{"ਹਾà¨\82à¨\9c਼à©\80 (ਰਿਵਾà¨\87ਤà©\80)"}\r
+        hanzi_traditional{"ਹਾਂਜ਼ੀ (ਰਵਾਇਤੀ)"}\r
         heart{"ਦਿਲ"}\r
-        historic_scripts{"à¨\87ਤਿਹਾਸà¨\95 à¨²à¨¿à©±à¨ªà©\80à¨\86à¨\82"}\r
+        historic_scripts{"à¨\87ਤਿਹਾਸà¨\95 à¨²à¨¿à¨ªà©\80"}\r
         ideographic_desc_characters{"ਇਡਿਓਗ੍ਰਾਫਿਕ ਵੇਰਵਾ ਅੱਖਰ"}\r
         japanese_kana{"ਜਪਾਨੀ ਕਾਨਾ"}\r
-        kanbun{"ਕਾਨਬੁਨ (ਚੀਨੀ ਕਲਾਸਿਕ)"}\r
+        kanbun{"ਕਾਨਬੁਨ"}\r
         kanji{"ਕਾਂਜੀ"}\r
         keycap{"ਕੀਕੈਪ"}\r
         leftwards_arrows{"ਖੱਬੇ ਪਾਸੇ ਵੱਲ ਤੀਰ"}\r
@@ -1599,9 +1649,9 @@ pa{
         limited_use{"ਸੀਮਿਤ ਵਰਤੋਂ"}\r
         male{"ਪੁਰਸ਼"}\r
         math_symbols{"ਗਣਿਤ ਚਿੰਨ੍ਹ"}\r
-        middle_eastern_scripts{"ਮੱਧ à¨ªà©\82ਰਬà©\80 à¨²à¨¿à©±à¨ªà©\80à¨\86à¨\82"}\r
+        middle_eastern_scripts{"ਮੱਧ à¨ªà©\82ਰਬà©\80 à¨²à¨¿à¨ªà©\80"}\r
         miscellaneous{"ਫੁਟਕਲ"}\r
-        modern_scripts{"à¨\86ਧà©\81ਨਿà¨\95 à¨²à¨¿à©±à¨ªà©\80à¨\86à¨\82"}\r
+        modern_scripts{"à¨\86ਧà©\81ਨਿà¨\95 à¨²à¨¿à¨ªà©\80"}\r
         modifier{"ਵਿਸ਼ੇਸ਼ਕ"}\r
         musical_symbols{"ਸੰਗੀਤ ਚਿੰਨ੍ਹ"}\r
         nature{"ਕੁਦਰਤ"}\r
@@ -1621,20 +1671,20 @@ pa{
         small_form_variant{"ਛੋਟੇ ਰੂਪ ਦੇ ਰੂਪਾਂਤਰ"}\r
         smiley{"ਸਮਾਈਲੀ"}\r
         smileys_people{"ਸਮਾਇਲੀ ਅਤੇ ਲੋਕ"}\r
-        south_asian_scripts{"ਦੱà¨\96ਣà©\80 à¨\8fਸ਼à©\80à¨\86à¨\88 à¨²à¨¿à©±à¨ªà©\80à¨\86à¨\82"}\r
-        southeast_asian_scripts{"ਦੱà¨\96ਣ-ਪà©\82ਰਬà©\80 à¨\8fਸ਼à©\80à¨\86à¨\88 à¨²à¨¿à©±à¨ªà©\80à¨\86à¨\82"}\r
+        south_asian_scripts{"ਦੱà¨\96ਣà©\80 à¨\8fਸ਼à©\80à¨\86à¨\88 à¨²à¨¿à¨ªà©\80"}\r
+        southeast_asian_scripts{"ਦੱà¨\96ਣ-ਪà©\82ਰਬà©\80 à¨\8fਸ਼à©\80à¨\86à¨\88 à¨²à¨¿à¨ªà©\80"}\r
         spacing{"ਵਿੱਥ"}\r
         sport{"ਖੇਡ"}\r
         symbols{"ਚਿੰਨ੍ਹ"}\r
         technical_symbols{"ਤਕਨੀਕੀ ਚਿੰਨ੍ਹ"}\r
         tone_marks{"ਧੁਨੀ ਨਿਸ਼ਾਨ"}\r
         travel{"ਯਾਤਰਾ"}\r
-        travel_places{"ਯਾਤਰਾ à¨\85ਤà©\87 à¨¸à¨¥à¨¾à¨¨"}\r
+        travel_places{"ਸਫਰ à¨\9cਾà¨\82 à¨¥à¨¾à¨\82"}\r
         upwards_arrows{"ਉੱਪਰ ਵੱਲ ਤੀਰ"}\r
         variant_forms{"ਭਿੰਨ ਰੂਪ"}\r
         vocalic_jamo{"ਵੋਕੈਲਿਕ ਜਾਮੋ"}\r
         weather{"ਮੌਸਮ"}\r
-        western_asian_scripts{"ਪੱà¨\9bਮà©\80 à¨\8fਸ਼à©\80à¨\86à¨\88 à¨²à¨¿à©±à¨ªà©\80à¨\86à¨\82"}\r
+        western_asian_scripts{"ਪੱà¨\9bਮà©\80 à¨\8fਸ਼à©\80à¨\86à¨\88 à¨²à¨¿à¨ªà©\80"}\r
         whitespace{"ਵ੍ਹਾਈਟ ਸਪੇਸ"}\r
     }\r
     delimiters{\r
@@ -1664,6 +1714,11 @@ pa{
         }\r
         day-narrow{\r
             dn{"ਦਿਨ"}\r
+            relative{\r
+                "-1"{"ਬੀਤਿਆ ਕੱਲ੍ਹ"}\r
+                "0"{"ਅੱਜ"}\r
+                "1"{"ਭਲਕੇ"}\r
+            }\r
             relativeTime{\r
                 future{\r
                     one{"{0} ਦਿਨ ਵਿੱਚ"}\r
@@ -1677,6 +1732,11 @@ pa{
         }\r
         day-short{\r
             dn{"ਦਿਨ"}\r
+            relative{\r
+                "-1"{"ਬੀਤਿਆ ਕੱਲ੍ਹ"}\r
+                "0"{"ਅੱਜ"}\r
+                "1"{"ਭਲਕੇ"}\r
+            }\r
             relativeTime{\r
                 future{\r
                     one{"{0} ਦਿਨ ਵਿੱਚ"}\r
@@ -1784,6 +1844,9 @@ pa{
         }\r
         hour-narrow{\r
             dn{"ਘੰ"}\r
+            relative{\r
+                "0"{"ਇਸ ਘੰਟੇ"}\r
+            }\r
             relativeTime{\r
                 future{\r
                     one{"{0} ਘੰਟੇ ਵਿੱਚ"}\r
@@ -1797,6 +1860,9 @@ pa{
         }\r
         hour-short{\r
             dn{"ਘੰਟਾ"}\r
+            relative{\r
+                "0"{"ਇਸ ਘੰਟੇ"}\r
+            }\r
             relativeTime{\r
                 future{\r
                     one{"{0} ਘੰਟੇ ਵਿੱਚ"}\r
@@ -1826,6 +1892,9 @@ pa{
         }\r
         minute-narrow{\r
             dn{"ਮਿੰਟ"}\r
+            relative{\r
+                "0"{"ਇਸ ਮਿੰਟ"}\r
+            }\r
             relativeTime{\r
                 future{\r
                     one{"{0} ਮਿੰਟ ਵਿੱਚ"}\r
@@ -1839,6 +1908,9 @@ pa{
         }\r
         minute-short{\r
             dn{"ਮਿੰਟ"}\r
+            relative{\r
+                "0"{"ਇਸ ਮਿੰਟ"}\r
+            }\r
             relativeTime{\r
                 future{\r
                     one{"{0} ਮਿੰਟ ਵਿੱਚ"}\r
@@ -1982,11 +2054,11 @@ pa{
             }\r
             relativeTime{\r
                 future{\r
-                    one{"{0} ਤਿਮਾਹੀਆਂ ਵਿੱਚ"}\r
+                    one{"{0} ਤਿਮਾਹੀ ਵਿੱਚ"}\r
                     other{"{0} ਤਿਮਾਹੀਆਂ ਵਿੱਚ"}\r
                 }\r
                 past{\r
-                    one{"{0} ਤਿਮਾਹੀਆਂ ਪਹਿਲਾਂ"}\r
+                    one{"{0} ਤਿਮਾਹੀ ਪਹਿਲਾਂ"}\r
                     other{"{0} ਤਿਮਾਹੀਆਂ ਪਹਿਲਾਂ"}\r
                 }\r
             }\r
@@ -2078,6 +2150,9 @@ pa{
         }\r
         second-narrow{\r
             dn{"ਸਕਿੰਟ"}\r
+            relative{\r
+                "0"{"ਹੁਣ"}\r
+            }\r
             relativeTime{\r
                 future{\r
                     one{"{0} ਸਕਿੰਟ ਵਿੱਚ"}\r
@@ -2091,6 +2166,9 @@ pa{
         }\r
         second-short{\r
             dn{"ਸਕਿੰਟ"}\r
+            relative{\r
+                "0"{"ਹੁਣ"}\r
+            }\r
             relativeTime{\r
                 future{\r
                     one{"{0} ਸਕਿੰਟ ਵਿੱਚ"}\r
@@ -2456,7 +2534,7 @@ pa{
     }\r
     listPattern{\r
         or{\r
-            2{"{0} or {1}"}\r
+            2{"{0} ਜਾਂ {1}"}\r
             end{"{0}, or {1}"}\r
             middle{"{0}, {1}"}\r
             start{"{0}, {1}"}\r
@@ -2507,8 +2585,13 @@ pa{
         general{\r
             lenient{\r
                 "[.․。︒﹒.。]",\r
+                "['ʼ՚᾽᾿’']",\r
+                "[%٪﹪%]",\r
+                "[؉‰]",\r
                 "[\$﹩$$]",\r
                 "[£₤]",\r
+                "[¥¥]",\r
+                "[₩₩]",\r
                 "[₨₹{Rp}{Rs}]",\r
             }\r
         }\r
index b5d6bfa1fe77e56c0ad5f12c0a2b2dab31b9e76e..a9431c9023c6d9ec1ad90a3619af7a6599f3461e 100644 (file)
@@ -22,7 +22,9 @@ pl{
         default{"latn"}\r
         latn{\r
             miscPatterns{\r
+                approximately{"~{0}"}\r
                 atLeast{"{0}+"}\r
+                atMost{"≤{0}"}\r
                 range{"{0}–{1}"}\r
             }\r
             patterns{\r
@@ -287,7 +289,7 @@ pl{
         minimumGroupingDigits{"2"}\r
         native{"latn"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.50"}\r
     calendar{\r
         buddhist{\r
             eras{\r
@@ -976,6 +978,10 @@ pl{
                     "p.n.e.",\r
                     "n.e.",\r
                 }\r
+                abbreviated%variant{\r
+                    "BCE",\r
+                    "CE",\r
+                }\r
                 wide{\r
                     "przed naszą erą",\r
                     "naszej ery",\r
@@ -2778,8 +2784,13 @@ pl{
         general{\r
             lenient{\r
                 "[.․。︒﹒.。]",\r
+                "['ʼ՚᾽᾿’']",\r
+                "[%٪﹪%]",\r
+                "[؉‰]",\r
                 "[\$﹩$$]",\r
                 "[£₤]",\r
+                "[¥¥]",\r
+                "[₩₩]",\r
                 "[₨₹{Rp}{Rs}]",\r
             }\r
         }\r
index 917ec42cdba389177a05f29be622b8b9bfda42d4..31e94c9904fb857761529d0a4ccf50a93e475bbc 100644 (file)
Binary files a/source/data/locales/pool.res and b/source/data/locales/pool.res differ
index dc98601eec878be08919c428a348367ac27c7fc5..600ffd1f048875cbde24bd7d9bab3e167e1bb989 100644 (file)
@@ -15,7 +15,12 @@ ps{
         " ء ب پ ت ټ ث ج ځ چ څ ح خ د ډ ذ ر ړ ز ژ ږ س ش ښ ص ض ط ظ ع غ ف ق ک ګ گ ل م ن ڼ"\r
         " ه ة و ؤ ی ي ې ۍ ئ]"\r
     }\r
+    ExemplarCharactersIndex{\r
+        "[آ ا ء ب پ ت ټ ث ج ځ چ څ ح خ د ډ ذ ر ړ ز ژ ږ س ش ښ ص ض ط ظ ع غ ف ق ک ګ ل م ن"\r
+        " ڼ ه و ی]"\r
+    }\r
     ExemplarCharactersNumbers{"[\u200E \\- , ٫ ٬ . % ٪ ‰ ؉ + − 0۰ 1۱ 2۲ 3۳ 4۴ 5۵ 6۶ 7۷ 8۸ 9۹]"}\r
+    ExemplarCharactersPunctuation{"[، ; \\: ! ۔ ' ‘ ( ) \\[ \\] \\{ \\} /]"}\r
     MoreInformation{"?"}\r
     NumberElements{\r
         arabext{\r
@@ -41,7 +46,9 @@ ps{
         default{"arabext"}\r
         latn{\r
             miscPatterns{\r
-                atLeast{"⩾{0}"}\r
+                approximately{"~{0}"}\r
+                atLeast{"≥{0}"}\r
+                atMost{"≤{0}"}\r
                 range{"{0}–{1}"}\r
             }\r
             patterns{\r
@@ -230,7 +237,7 @@ ps{
         minimumGroupingDigits{"1"}\r
         native{"arabext"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.94"}\r
     calendar{\r
         default{"persian"}\r
         generic{\r
@@ -944,7 +951,7 @@ ps{
                 format{\r
                     abbreviated{\r
                         "محرم",\r
-                        "د ØµÙ\81رÛ\90 Ø¯",\r
+                        "صÙ\81رÙ\87",\r
                         "ربيع",\r
                         "ربيع II",\r
                         "جماعه",\r
@@ -988,7 +995,7 @@ ps{
                 stand-alone{\r
                     abbreviated{\r
                         "محرم",\r
-                        "د ØµÙ\81رÛ\90 Ø¯",\r
+                        "صÙ\81رÙ\87",\r
                         "ربيع",\r
                         "ربيع II",\r
                         "جماعه",\r
@@ -1130,25 +1137,25 @@ ps{
         }\r
     }\r
     characterLabel{\r
-        activities{"سرگرمی"}\r
-        african_scripts{"افریقی سکریپټ"}\r
-        american_scripts{"امریکی سکریپټ"}\r
-        animal{"د څارويو"}\r
-        animals_nature{"د څارويو او يا د قدرت"}\r
-        arrows{"تÛ\8cر"}\r
-        body{"جسم"}\r
+        activities{"فعاليت"}\r
+        african_scripts{"افريقايي سکريپټ"}\r
+        american_scripts{"امريکايي سکريپټ"}\r
+        animal{"څاروی"}\r
+        animals_nature{"څاروی يا قدرت"}\r
+        arrows{"غشÛ\8c"}\r
+        body{"وجود"}\r
         box_drawing{"د بکس انځور"}\r
         braille{"بریل"}\r
         building{"ودانۍ"}\r
         bullets_stars{"ګولۍ یا ستوری"}\r
         consonantal_jamo{"کنسینټل جامو"}\r
-        currency_symbols{"د اسعارو د سمبول"}\r
+        currency_symbols{"د پېسو سمبول"}\r
         dash_connector{"ډش یا نښلونکی"}\r
         digits{"عدد"}\r
         dingbats{"ڈنگبت"}\r
-        divination_symbols{"غÛ\8cب Ø¯Ø§Ù\86Û\8c سمبول"}\r
-        downwards_arrows{"Ú\9aکتÙ\87 ØªÛ\8cر"}\r
-        downwards_upwards_arrows{"Ú\9aکتÙ\87 Ù¾Ù\88رتÙ\87 ØªÛ\8cر"}\r
+        divination_symbols{"د Ø§Ù¼Ú©Ù\84 سمبول"}\r
+        downwards_arrows{"Ú\9aکتÙ\87 ØºØ´Û\8c"}\r
+        downwards_upwards_arrows{"Ú\9aکتÙ\87 Ù¾Ù\88رتÙ\87 ØºØ´Û\8c"}\r
         east_asian_scripts{"د ختيځې اسيا سکرېپټ"}\r
         emoji{"ایموجی"}\r
         european_scripts{"اروپایي سکرېپټ"}\r
@@ -1157,10 +1164,10 @@ ps{
         flags{"بيرغونه"}\r
         food_drink{"خواړه او څښاک"}\r
         format{"بڼه"}\r
-        format_whitespace{"بڼه او سپیټ اسپیس"}\r
-        full_width_form_variant{"بشپÚ\93 - Ú\86Ù\88Ú© Ù\88Ù\8aÛ\8cرټ"}\r
-        geometric_shapes{"جاميټري شکل"}\r
-        half_width_form_variant{"نیم چوک ويیرټ"}\r
+        format_whitespace{"بڼه او سپين ځای"}\r
+        full_width_form_variant{"د Ø¨Ø´Ù¾Ú\93 Ù¾Ø±Ø§Ø®ØªÙ\8aا Ø¨Ù\84Ù\87 Ø¨Ú¼Ù\87"}\r
+        geometric_shapes{"جيوميتريکي شکل"}\r
+        half_width_form_variant{"د نيمايي پراختيا بله بڼه"}\r
         han_characters{"د حني کرکټر"}\r
         han_radicals{"د حني سخت دريځه"}\r
         hanja{"هانجا"}\r
@@ -1168,14 +1175,14 @@ ps{
         hanzi_traditional{"حنيزي (روايتي)"}\r
         heart{"زړه"}\r
         historic_scripts{"تاريخي سکرېپټ"}\r
-        ideographic_desc_characters{"د اډیګرافیک تفصیل کرکټر"}\r
+        ideographic_desc_characters{"د اډیګرافیک ډيسک کرکټر"}\r
         japanese_kana{"جاپاني کانا"}\r
         kanbun{"کنبن"}\r
         kanji{"کانجی"}\r
         keycap{"کیکاپ"}\r
-        leftwards_arrows{"پاتې دي تير"}\r
-        leftwards_rightwards_arrows{"پاتې دي سمه لار تير"}\r
-        letterlike_symbols{"خط Ù\84Ú©Ù\87 سمبول"}\r
+        leftwards_arrows{"کڼ اړخ ته غشی"}\r
+        leftwards_rightwards_arrows{"کڼ اړخ او ښۍ اړخ ته غشی"}\r
+        letterlike_symbols{"د ØªÙ\88رÙ\8a Ù¾Ù\87 Ú\85Û\90ر سمبول"}\r
         limited_use{"د محدود استعمال"}\r
         male{"نارینه"}\r
         math_symbols{"ریاضی سمبول"}\r
@@ -1185,37 +1192,37 @@ ps{
         modifier{"بدلوونی"}\r
         musical_symbols{"د موسيقي سمبول"}\r
         nature{"قدرت"}\r
-        nonspacing{"ناپایه کول"}\r
-        numbers{"شمېره"}\r
+        nonspacing{"بې واټنه کول"}\r
+        numbers{"شمېرې"}\r
         objects{"څيز"}\r
         other{"نور"}\r
         paired{"جوړه"}\r
         person{"شخص"}\r
-        phonetic_alphabet{"صوتيک الفبا"}\r
+        phonetic_alphabet{"صوتي الفبا"}\r
         pictographs{"پکٹوګراف"}\r
         place{"ځای"}\r
         plant{"نبات"}\r
-        punctuation{"پنکچوییسن"}\r
-        rightwards_arrows{"سمه لار تیر"}\r
+        punctuation{"تنقيط"}\r
+        rightwards_arrows{"ښۍ اړخ ته غشی"}\r
         sign_standard_symbols{"نښه یا سمبول"}\r
-        small_form_variant{"کوچنۍ ويیرټ"}\r
-        smiley{"مسکراھٹ"}\r
-        smileys_people{"مسکراھٹ یا شخص"}\r
-        south_asian_scripts{"جÙ\86Ù\88بÙ\8a Ø§Ø³Û\8cا Ø³Ú©Ø±Û\90پټ"}\r
-        southeast_asian_scripts{"د Ø¬Ù\86Ù\88ب Ø®ØªÛ\8cÚ\81Û\90 Ø¢Ø³Û\8cا Ø³Ú©Ø±Û\90پټ"}\r
-        spacing{"Ù\81اصÙ\84Ù\87"}\r
-        sport{"کھیل"}\r
+        small_form_variant{"کوچنۍ بله بڼه"}\r
+        smiley{"مسکېدلې"}\r
+        smileys_people{"مسکېدلي يا شخص"}\r
+        south_asian_scripts{"د Ø³Ù\88Ù\8aÙ\84Ù\8a Ø¢Ø³Ù\8aا Ø³Ú©Ø±Ù\8aپټ"}\r
+        southeast_asian_scripts{"د Ø³Ù\88Ù\8aÙ\84Ù\8a Ø®ØªÙ\8aÚ\81 Ø¢Ø³Ù\8aا Ø³Ú©Ø±Ù\8aپټ"}\r
+        spacing{"Ù\88اټÙ\86 Ù\88رکÙ\88Ù\84"}\r
+        sport{"لوبه"}\r
         symbols{"سمبول"}\r
         technical_symbols{"تخنیکي سمبول"}\r
         tone_marks{"ټون نښه"}\r
         travel{"سفر"}\r
         travel_places{"سفر یا ځای"}\r
-        upwards_arrows{"Ù¾Ù\88رتÙ\87 ØªÛ\8cرÙ\88Ù\86Ù\87"}\r
-        variant_forms{"ويیرټ"}\r
+        upwards_arrows{"Ù¾Ù\88رتÙ\87 ØºØ´Ù\8a"}\r
+        variant_forms{"بله بڼه"}\r
         vocalic_jamo{"غږ جامو"}\r
         weather{"موسم"}\r
-        western_asian_scripts{"غربي آسیا د سکرېپټ"}\r
-        whitespace{"سپیټ اسپیس"}\r
+        western_asian_scripts{"لويديځ آسيايي سکريپټ"}\r
+        whitespace{"سپين ځای"}\r
     }\r
     delimiters{\r
         alternateQuotationEnd{"’"}\r
@@ -2033,13 +2040,13 @@ ps{
             start{"{0}, {1}"}\r
         }\r
         unit-narrow{\r
-            2{"{0} او {1}"}\r
-            end{"{0}, {1}"}\r
-            middle{"{0}, {1}"}\r
-            start{"{0}, {1}"}\r
+            2{"{0} {1}"}\r
+            end{"{0} {1}"}\r
+            middle{"{0} {1}"}\r
+            start{"{0} {1}"}\r
         }\r
         unit-short{\r
-            2{"{0} او {1}"}\r
+            2{"{0} و {1}"}\r
             end{"{0}, {1}"}\r
             middle{"{0}, {1}"}\r
             start{"{0}, {1}"}\r
@@ -2050,4 +2057,36 @@ ps{
         US{"امريکايي"}\r
         metric{"مېټرک"}\r
     }\r
+    parse{\r
+        date{\r
+            lenient{\r
+                "[\\--/]",\r
+                "[\\:∶]",\r
+            }\r
+        }\r
+        general{\r
+            lenient{\r
+                "[.․。︒﹒.。]",\r
+                "['ʼ՚᾽᾿’']",\r
+                "[%٪﹪%]",\r
+                "[؉‰]",\r
+                "[\$﹩$$]",\r
+                "[£₤]",\r
+                "[¥¥]",\r
+                "[₩₩]",\r
+                "[₨₹{Rp}{Rs}]",\r
+            }\r
+        }\r
+        number{\r
+            lenient{\r
+                "[\\-‒⁻₋−➖﹣-]",\r
+                "[,،٫、︐︑﹐﹑,、]",\r
+                "[+⁺₊➕﬩﹢+]",\r
+            }\r
+            stricter{\r
+                "[,٫︐﹐,]",\r
+                "[.․﹒.。]",\r
+            }\r
+        }\r
+    }\r
 }\r
index e46eb4ceab621e7ceef0083ace51679c6f4f8a1c..ee466780153f52248346c8228613d599bef45794 100644 (file)
@@ -25,7 +25,9 @@ pt{
         default{"latn"}\r
         latn{\r
             miscPatterns{\r
+                approximately{"~{0}"}\r
                 atLeast{"+{0}"}\r
+                atMost{"≤{0}"}\r
                 range{"{0}–{1}"}\r
             }\r
             patterns{\r
@@ -90,52 +92,52 @@ pt{
             patternsShort{\r
                 currencyFormat{\r
                     1000{\r
-                        one{"¤0 mil"}\r
-                        other{"¤0 mil"}\r
+                        one{"¤ 0 mil"}\r
+                        other{"¤ 0 mil"}\r
                     }\r
                     10000{\r
-                        one{"¤00 mil"}\r
-                        other{"¤00 mil"}\r
+                        one{"¤ 00 mil"}\r
+                        other{"¤ 00 mil"}\r
                     }\r
                     100000{\r
-                        one{"¤000 mil"}\r
-                        other{"¤000 mil"}\r
+                        one{"¤ 000 mil"}\r
+                        other{"¤ 000 mil"}\r
                     }\r
                     1000000{\r
-                        one{"¤0 mi"}\r
-                        other{"¤0 mi"}\r
+                        one{"¤ 0 mi"}\r
+                        other{"¤ 0 mi"}\r
                     }\r
                     10000000{\r
-                        one{"¤00 mi"}\r
-                        other{"¤00 mi"}\r
+                        one{"¤ 00 mi"}\r
+                        other{"¤ 00 mi"}\r
                     }\r
                     100000000{\r
-                        one{"¤000 mi"}\r
-                        other{"¤000 mi"}\r
+                        one{"¤ 000 mi"}\r
+                        other{"¤ 000 mi"}\r
                     }\r
                     1000000000{\r
-                        one{"¤0 bi"}\r
-                        other{"¤0 bi"}\r
+                        one{"¤ 0 bi"}\r
+                        other{"¤ 0 bi"}\r
                     }\r
                     10000000000{\r
-                        one{"¤00 bi"}\r
-                        other{"¤00 bi"}\r
+                        one{"¤ 00 bi"}\r
+                        other{"¤ 00 bi"}\r
                     }\r
                     100000000000{\r
-                        one{"¤000 bi"}\r
-                        other{"¤000 bi"}\r
+                        one{"¤ 000 bi"}\r
+                        other{"¤ 000 bi"}\r
                     }\r
                     1000000000000{\r
-                        one{"¤0 tri"}\r
-                        other{"¤0 tri"}\r
+                        one{"¤ 0 tri"}\r
+                        other{"¤ 0 tri"}\r
                     }\r
                     10000000000000{\r
-                        one{"¤00 tri"}\r
-                        other{"¤00 tri"}\r
+                        one{"¤ 00 tri"}\r
+                        other{"¤ 00 tri"}\r
                     }\r
                     100000000000000{\r
-                        one{"¤000 tri"}\r
-                        other{"¤000 tri"}\r
+                        one{"¤ 000 tri"}\r
+                        other{"¤ 000 tri"}\r
                     }\r
                 }\r
                 decimalFormat{\r
@@ -206,17 +208,17 @@ pt{
         }\r
         minimalPairs{\r
             ordinal{\r
-                other{"{0}º livro"}\r
+                other{"Pegue a {0}ª à direita."}\r
             }\r
             plural{\r
-                one{"{0} ponto"}\r
-                other{"{0} pontos"}\r
+                one{"{0} dia"}\r
+                other{"{0} dias"}\r
             }\r
         }\r
         minimumGroupingDigits{"1"}\r
         native{"latn"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.65"}\r
     calendar{\r
         buddhist{\r
             eras{\r
@@ -570,7 +572,7 @@ pt{
                 "HH:mm",\r
                 "EEEE, d 'de' MMMM 'de' y G",\r
                 "d 'de' MMMM 'de' y G",\r
-                "dd/MM/y G",\r
+                "d MMM y G",\r
                 "dd/MM/y GGGGG",\r
                 "{1} {0}",\r
                 "{1} {0}",\r
@@ -651,7 +653,7 @@ pt{
                 }\r
                 MMMEd{\r
                     M{"E, d 'de' MMM – E, d 'de' MMM"}\r
-                    d{"E, d – E, d 'de' MMM"}\r
+                    d{"E, d 'de' MMM – E, d 'de' MMM"}\r
                 }\r
                 MMMd{\r
                     M{"d 'de' MMM – d 'de' MMM"}\r
@@ -701,7 +703,7 @@ pt{
                 }\r
                 yMMMEd{\r
                     M{"E, d 'de' MMM – E, d 'de' MMM 'de' y G"}\r
-                    d{"E, d – E, d 'de' MMM 'de' y G"}\r
+                    d{"E, d 'de' MMM – E, d 'de' MMM 'de' y G"}\r
                     y{"E, d 'de' MMM 'de' y – E, d 'de' MMM 'de' y G"}\r
                 }\r
                 yMMMM{\r
@@ -1675,15 +1677,15 @@ pt{
         east_asian_scripts{"escrita do leste asiático"}\r
         emoji{"emoji"}\r
         european_scripts{"escrita europeia"}\r
-        female{"mulher"}\r
+        female{"feminino"}\r
         flag{"bandeira"}\r
         flags{"bandeiras"}\r
         food_drink{"comidas e bebidas"}\r
         format{"formato"}\r
         format_whitespace{"formato e espaço em branco"}\r
-        full_width_form_variant{"variação com largura completa"}\r
+        full_width_form_variant{"variante de largura inteira"}\r
         geometric_shapes{"forma geométrica"}\r
-        half_width_form_variant{"variação com meia largura"}\r
+        half_width_form_variant{"variante de meia largura"}\r
         han_characters{"caractere Han"}\r
         han_radicals{"radical Han"}\r
         hanja{"hanja"}\r
@@ -1700,9 +1702,9 @@ pt{
         leftwards_rightwards_arrows{"seta para a esquerda e para a direita"}\r
         letterlike_symbols{"símbolo de letra"}\r
         limited_use{"uso limitado"}\r
-        male{"homem"}\r
+        male{"masculino"}\r
         math_symbols{"símbolo matemático"}\r
-        middle_eastern_scripts{"escrita do oriente médio"}\r
+        middle_eastern_scripts{"escrita do Oriente Médio"}\r
         miscellaneous{"diversos"}\r
         modern_scripts{"escrita moderna"}\r
         modifier{"modificador"}\r
@@ -1721,7 +1723,7 @@ pt{
         punctuation{"pontuação"}\r
         rightwards_arrows{"seta para a direita"}\r
         sign_standard_symbols{"sinal ou símbolo"}\r
-        small_form_variant{"variações pequenas"}\r
+        small_form_variant{"variantes pequenas"}\r
         smiley{"smiley"}\r
         smileys_people{"smiley ou pessoa"}\r
         south_asian_scripts{"escrita do sul asiático"}\r
@@ -1732,7 +1734,7 @@ pt{
         technical_symbols{"símbolo técnico"}\r
         tone_marks{"marca de tom"}\r
         travel{"viagem"}\r
-        travel_places{"turismo ou lugar"}\r
+        travel_places{"viagem ou lugar"}\r
         upwards_arrows{"setas para cima"}\r
         variant_forms{"variante"}\r
         vocalic_jamo{"jamo vocálico"}\r
@@ -1784,8 +1786,8 @@ pt{
                     other{"em {0} dias"}\r
                 }\r
                 past{\r
-                    one{"{0} dia atrás"}\r
-                    other{"{0} dias atrás"}\r
+                    one{"há {0} dia"}\r
+                    other{"há {0} dias"}\r
                 }\r
             }\r
         }\r
@@ -1801,8 +1803,8 @@ pt{
                     other{"em {0} dias"}\r
                 }\r
                 past{\r
-                    one{"{0} dia atrás"}\r
-                    other{"{0} dias atrás"}\r
+                    one{"há {0} dia"}\r
+                    other{"há {0} dias"}\r
                 }\r
             }\r
         }\r
@@ -1818,8 +1820,8 @@ pt{
                     other{"em {0} dias"}\r
                 }\r
                 past{\r
-                    one{"{0} dia atrás"}\r
-                    other{"{0} dias atrás"}\r
+                    one{"há {0} dia"}\r
+                    other{"há {0} dias"}\r
                 }\r
             }\r
         }\r
@@ -1858,11 +1860,11 @@ pt{
             }\r
             relativeTime{\r
                 future{\r
-                    one{"em {0} sextas-feiras"}\r
+                    one{"em {0} sexta-feira"}\r
                     other{"em {0} sextas-feiras"}\r
                 }\r
                 past{\r
-                    one{"há {0} sextas-feiras"}\r
+                    one{"há {0} sexta-feira"}\r
                     other{"há {0} sextas-feiras"}\r
                 }\r
             }\r
@@ -1875,12 +1877,12 @@ pt{
             }\r
             relativeTime{\r
                 future{\r
-                    one{"em {0} sextas-feiras"}\r
-                    other{"em {0} sextas-feiras"}\r
+                    one{"em {0} sex."}\r
+                    other{"em {0} sex."}\r
                 }\r
                 past{\r
-                    one{"há {0} sextas-feiras"}\r
-                    other{"há {0} sextas-feiras"}\r
+                    one{"há {0} sex."}\r
+                    other{"há {0} sex."}\r
                 }\r
             }\r
         }\r
@@ -1892,12 +1894,12 @@ pt{
             }\r
             relativeTime{\r
                 future{\r
-                    one{"em {0} sextas-feiras"}\r
-                    other{"em {0} sextas-feiras"}\r
+                    one{"em {0} sex."}\r
+                    other{"em {0} sex."}\r
                 }\r
                 past{\r
-                    one{"há {0} sextas-feiras"}\r
-                    other{"há {0} sextas-feiras"}\r
+                    one{"há {0} sex."}\r
+                    other{"há {0} sex."}\r
                 }\r
             }\r
         }\r
@@ -1912,8 +1914,8 @@ pt{
                     other{"em {0} horas"}\r
                 }\r
                 past{\r
-                    one{"{0} hora atrás"}\r
-                    other{"{0} horas atrás"}\r
+                    one{"há {0} hora"}\r
+                    other{"há {0} horas"}\r
                 }\r
             }\r
         }\r
@@ -1925,8 +1927,8 @@ pt{
                     other{"em {0} h"}\r
                 }\r
                 past{\r
-                    one{"{0} h atrás"}\r
-                    other{"{0} h atrás"}\r
+                    one{"há {0} h"}\r
+                    other{"há {0} h"}\r
                 }\r
             }\r
         }\r
@@ -1938,8 +1940,8 @@ pt{
                     other{"em {0} h"}\r
                 }\r
                 past{\r
-                    one{"{0} h atrás"}\r
-                    other{"{0} h atrás"}\r
+                    one{"há {0} h"}\r
+                    other{"há {0} h"}\r
                 }\r
             }\r
         }\r
@@ -1954,8 +1956,8 @@ pt{
                     other{"em {0} minutos"}\r
                 }\r
                 past{\r
-                    one{"{0} minuto atrás"}\r
-                    other{"{0} minutos atrás"}\r
+                    one{"há {0} minuto"}\r
+                    other{"há {0} minutos"}\r
                 }\r
             }\r
         }\r
@@ -1967,8 +1969,8 @@ pt{
                     other{"em {0} min."}\r
                 }\r
                 past{\r
-                    one{"{0} min. atrás"}\r
-                    other{"{0} min. atrás"}\r
+                    one{"há {0} min."}\r
+                    other{"há {0} min."}\r
                 }\r
             }\r
         }\r
@@ -1980,8 +1982,8 @@ pt{
                     other{"em {0} min."}\r
                 }\r
                 past{\r
-                    one{"{0} min. atrás"}\r
-                    other{"{0} min. atrás"}\r
+                    one{"há {0} min."}\r
+                    other{"há {0} min."}\r
                 }\r
             }\r
         }\r
@@ -1997,8 +1999,8 @@ pt{
                     other{"em {0} segundas-feiras"}\r
                 }\r
                 past{\r
-                    one{"{0} segunda-feira atrás"}\r
-                    other{"{{0} segundas-feiras atrás"}\r
+                    one{"há {0} segunda-feira"}\r
+                    other{"{0} segundas-feiras atrás"}\r
                 }\r
             }\r
         }\r
@@ -2014,8 +2016,8 @@ pt{
                     other{"em {0} seg."}\r
                 }\r
                 past{\r
-                    one{"há {0} segundas-feiras"}\r
-                    other{"há {0} segundas-feiras"}\r
+                    one{"há {0} seg."}\r
+                    other{"há {0} seg."}\r
                 }\r
             }\r
         }\r
@@ -2031,8 +2033,8 @@ pt{
                     other{"em {0} seg."}\r
                 }\r
                 past{\r
-                    one{"{0} seg. atrás"}\r
-                    other{"{0} seg. atrás"}\r
+                    one{"há {0} seg."}\r
+                    other{"há {0} seg."}\r
                 }\r
             }\r
         }\r
@@ -2049,8 +2051,8 @@ pt{
                     other{"em {0} meses"}\r
                 }\r
                 past{\r
-                    one{"{0} mês atrás"}\r
-                    other{"{0} meses atrás"}\r
+                    one{"há {0} mês"}\r
+                    other{"há {0} meses"}\r
                 }\r
             }\r
         }\r
@@ -2067,8 +2069,8 @@ pt{
                     other{"em {0} meses"}\r
                 }\r
                 past{\r
-                    one{"{0} mês atrás"}\r
-                    other{"{0} meses atrás"}\r
+                    one{"há {0} mês"}\r
+                    other{"há {0} meses"}\r
                 }\r
             }\r
         }\r
@@ -2085,8 +2087,8 @@ pt{
                     other{"em {0} meses"}\r
                 }\r
                 past{\r
-                    one{"{0} mês atrás"}\r
-                    other{"{0} meses atrás"}\r
+                    one{"há {0} mês"}\r
+                    other{"há {0} meses"}\r
                 }\r
             }\r
         }\r
@@ -2103,33 +2105,43 @@ pt{
                     other{"em {0} trimestres"}\r
                 }\r
                 past{\r
-                    one{"{0} trimestre atrás"}\r
-                    other{"{0} trimestres atrás"}\r
+                    one{"há {0} trimestre"}\r
+                    other{"há {0} trimestres"}\r
                 }\r
             }\r
         }\r
         quarter-narrow{\r
             dn{"trim."}\r
+            relative{\r
+                "-1"{"último trimestre"}\r
+                "0"{"este trimestre"}\r
+                "1"{"próximo trimestre"}\r
+            }\r
             relativeTime{\r
                 future{\r
                     one{"em {0} trim."}\r
                     other{"em {0} trim."}\r
                 }\r
                 past{\r
-                    one{"{0} trim. atrás"}\r
-                    other{"{0} trim. atrás"}\r
+                    one{"há {0} trim."}\r
+                    other{"há {0} trim."}\r
                 }\r
             }\r
         }\r
         quarter-short{\r
             dn{"trim."}\r
+            relative{\r
+                "-1"{"último trimestre"}\r
+                "0"{"este trimestre"}\r
+                "1"{"próximo trimestre"}\r
+            }\r
             relativeTime{\r
                 future{\r
                     one{"em {0} trim."}\r
                     other{"em {0} trim."}\r
                 }\r
                 past{\r
-                    one{"{0} trim. atrás"}\r
+                    one{"há {0} trim."}\r
                     other{"{0} trim. atrás"}\r
                 }\r
             }\r
@@ -2146,8 +2158,8 @@ pt{
                     other{"em {0} sábados"}\r
                 }\r
                 past{\r
-                    one{"{0} sábado atrás"}\r
-                    other{"{0} sábados atrás"}\r
+                    one{"há {0} sábado"}\r
+                    other{"há {0} sábados"}\r
                 }\r
             }\r
         }\r
@@ -2163,8 +2175,8 @@ pt{
                     other{"em {0} sáb."}\r
                 }\r
                 past{\r
-                    one{"{0} sáb. atrás"}\r
-                    other{"{0} sáb. atrás"}\r
+                    one{"há {0} sáb."}\r
+                    other{"há {0} sáb."}\r
                 }\r
             }\r
         }\r
@@ -2180,8 +2192,8 @@ pt{
                     other{"em {0} sáb."}\r
                 }\r
                 past{\r
-                    one{"{0} sáb. atrás"}\r
-                    other{"{0} sáb. atrás"}\r
+                    one{"há {0} sáb."}\r
+                    other{"há {0} sáb."}\r
                 }\r
             }\r
         }\r
@@ -2196,8 +2208,8 @@ pt{
                     other{"em {0} segundos"}\r
                 }\r
                 past{\r
-                    one{"{0} segundo atrás"}\r
-                    other{"{0} segundos atrás"}\r
+                    one{"há {0} segundo"}\r
+                    other{"há {0} segundos"}\r
                 }\r
             }\r
         }\r
@@ -2209,8 +2221,8 @@ pt{
                     other{"em {0} seg."}\r
                 }\r
                 past{\r
-                    one{"{0} seg. atrás"}\r
-                    other{"{0} seg. atrás"}\r
+                    one{"há {0} seg."}\r
+                    other{"há {0} seg."}\r
                 }\r
             }\r
         }\r
@@ -2222,8 +2234,8 @@ pt{
                     other{"em {0} seg."}\r
                 }\r
                 past{\r
-                    one{"{0} seg. atrás"}\r
-                    other{"{0} seg. atrás"}\r
+                    one{"há {0} seg."}\r
+                    other{"há {0} seg."}\r
                 }\r
             }\r
         }\r
@@ -2239,8 +2251,8 @@ pt{
                     other{"em {0} domingos"}\r
                 }\r
                 past{\r
-                    one{"{0} domingo atrás"}\r
-                    other{"{0} domingos atrás"}\r
+                    one{"há {0} domigo"}\r
+                    other{"há {0} domigos"}\r
                 }\r
             }\r
         }\r
@@ -2256,8 +2268,8 @@ pt{
                     other{"em {0} dom."}\r
                 }\r
                 past{\r
-                    one{"{0} dom. atrás"}\r
-                    other{"{0} dom. atrás"}\r
+                    one{"há {0} dom."}\r
+                    other{"há {0} dom."}\r
                 }\r
             }\r
         }\r
@@ -2273,8 +2285,8 @@ pt{
                     other{"em {0} dom."}\r
                 }\r
                 past{\r
-                    one{"{0} dom. atrás"}\r
-                    other{"{0} dom. atrás"}\r
+                    one{"há {0} dom."}\r
+                    other{"há {0} dom."}\r
                 }\r
             }\r
         }\r
@@ -2286,11 +2298,11 @@ pt{
             }\r
             relativeTime{\r
                 future{\r
-                    one{"em {0} quintas-feiras"}\r
+                    one{"em {0} quinta-feira"}\r
                     other{"em {0} quintas-feiras"}\r
                 }\r
                 past{\r
-                    one{"há {0} quintas-feiras"}\r
+                    one{"há {0} quinta-feira"}\r
                     other{"há {0} quintas-feiras"}\r
                 }\r
             }\r
@@ -2299,16 +2311,16 @@ pt{
             relative{\r
                 "-1"{"qui. passada"}\r
                 "0"{"esta qui."}\r
-                "1"{"próx. qui"}\r
+                "1"{"próxima qui."}\r
             }\r
             relativeTime{\r
                 future{\r
-                    one{"em {0} quintas-feiras"}\r
-                    other{"em {0} quintas-feiras"}\r
+                    one{"em {0} qui."}\r
+                    other{"em {0} qui."}\r
                 }\r
                 past{\r
-                    one{"há {0} quintas-feiras"}\r
-                    other{"há {0} quintas-feiras"}\r
+                    one{"há {0} qui."}\r
+                    other{"há {0} qui."}\r
                 }\r
             }\r
         }\r
@@ -2316,16 +2328,16 @@ pt{
             relative{\r
                 "-1"{"qui. passada"}\r
                 "0"{"esta qui."}\r
-                "1"{"próx. qui"}\r
+                "1"{"próxima qui."}\r
             }\r
             relativeTime{\r
                 future{\r
-                    one{"em {0} quintas-feiras"}\r
-                    other{"em {0} quintas-feiras"}\r
+                    one{"em {0} qui."}\r
+                    other{"em {0} qui."}\r
                 }\r
                 past{\r
-                    one{"há {0} quintas-feiras"}\r
-                    other{"há {0} quintas-feiras"}\r
+                    one{"há {0} qui."}\r
+                    other{"há {0} qui."}\r
                 }\r
             }\r
         }\r
@@ -2354,12 +2366,12 @@ pt{
             }\r
             relativeTime{\r
                 future{\r
-                    one{"em {0} terças-feiras"}\r
-                    other{"em {0} terças-feiras"}\r
+                    one{"em {0} ter."}\r
+                    other{"em {0} ter."}\r
                 }\r
                 past{\r
-                    one{"há {0} terças-feiras"}\r
-                    other{"há {0} terças-feiras"}\r
+                    one{"há {0} ter."}\r
+                    other{"há {0} ter."}\r
                 }\r
             }\r
         }\r
@@ -2371,12 +2383,12 @@ pt{
             }\r
             relativeTime{\r
                 future{\r
-                    one{"em {0} terças-feiras"}\r
-                    other{"em {0} terças-feiras"}\r
+                    one{"em {0} ter."}\r
+                    other{"em {0} ter."}\r
                 }\r
                 past{\r
-                    one{"há {0} terças-feiras"}\r
-                    other{"há {0} terças-feiras"}\r
+                    one{"há {0} ter."}\r
+                    other{"há {0} ter."}\r
                 }\r
             }\r
         }\r
@@ -2388,7 +2400,7 @@ pt{
             }\r
             relativeTime{\r
                 future{\r
-                    one{"em {0} quartas-feiras"}\r
+                    one{"em {0} quarta-feira"}\r
                     other{"em {0} quartas-feiras"}\r
                 }\r
                 past{\r
@@ -2405,12 +2417,12 @@ pt{
             }\r
             relativeTime{\r
                 future{\r
-                    one{"em {0} quartas-feiras"}\r
-                    other{"em {0} quartas-feiras"}\r
+                    one{"em {0} qua."}\r
+                    other{"em {0} qua."}\r
                 }\r
                 past{\r
-                    one{"há {0} quartas-feiras"}\r
-                    other{"há {0} quartas-feiras"}\r
+                    one{"há {0} qua."}\r
+                    other{"há {0} qua."}\r
                 }\r
             }\r
         }\r
@@ -2422,12 +2434,12 @@ pt{
             }\r
             relativeTime{\r
                 future{\r
-                    one{"em {0} quartas-feiras"}\r
-                    other{"em {0} quartas-feiras"}\r
+                    one{"em {0} qua."}\r
+                    other{"em {0} qua."}\r
                 }\r
                 past{\r
-                    one{"há {0} quartas-feiras"}\r
-                    other{"há {0} quartas-feiras"}\r
+                    one{"há {0} qua."}\r
+                    other{"há {0} qua."}\r
                 }\r
             }\r
         }\r
@@ -2445,8 +2457,8 @@ pt{
                     other{"em {0} semanas"}\r
                 }\r
                 past{\r
-                    one{"{0} semana atrás"}\r
-                    other{"{0} semanas atrás"}\r
+                    one{"há {0} semana"}\r
+                    other{"há {0} semanas"}\r
                 }\r
             }\r
         }\r
@@ -2464,8 +2476,8 @@ pt{
                     other{"em {0} sem."}\r
                 }\r
                 past{\r
-                    one{"{0} sem. atrás"}\r
-                    other{"{0} sem. atrás"}\r
+                    one{"há {0} sem."}\r
+                    other{"há {0} sem."}\r
                 }\r
             }\r
         }\r
@@ -2483,8 +2495,8 @@ pt{
                     other{"em {0} sem."}\r
                 }\r
                 past{\r
-                    one{"{0} sem. atrás"}\r
-                    other{"{0} sem. atrás"}\r
+                    one{"há {0} sem."}\r
+                    other{"há {0} sem."}\r
                 }\r
             }\r
         }\r
@@ -2528,8 +2540,8 @@ pt{
                     other{"em {0} anos"}\r
                 }\r
                 past{\r
-                    one{"{0} ano atrás"}\r
-                    other{"{0} anos atrás"}\r
+                    one{"há {0} ano"}\r
+                    other{"há {0} anos"}\r
                 }\r
             }\r
         }\r
@@ -2546,7 +2558,7 @@ pt{
                     other{"em {0} anos"}\r
                 }\r
                 past{\r
-                    one{"{0} ano atrás"}\r
+                    one{"há {0} ano"}\r
                     other{"{0} anos atrás"}\r
                 }\r
             }\r
@@ -2564,8 +2576,8 @@ pt{
                     other{"em {0} anos"}\r
                 }\r
                 past{\r
-                    one{"{0} ano atrás"}\r
-                    other{"{0} anos atrás"}\r
+                    one{"há {0} ano"}\r
+                    other{"há {0} anos"}\r
                 }\r
             }\r
         }\r
@@ -2629,5 +2641,29 @@ pt{
                 "[\\:∶]",\r
             }\r
         }\r
+        general{\r
+            lenient{\r
+                "[.․。︒﹒.。]",\r
+                "['ʼ՚᾽᾿’']",\r
+                "[%٪﹪%]",\r
+                "[؉‰]",\r
+                "[\$﹩$$]",\r
+                "[£₤]",\r
+                "[¥¥]",\r
+                "[₩₩]",\r
+                "[₨₹{Rp}{Rs}]",\r
+            }\r
+        }\r
+        number{\r
+            lenient{\r
+                "[\\-‒⁻₋−➖﹣-]",\r
+                "[,،٫、︐︑﹐﹑,、]",\r
+                "[+⁺₊➕﬩﹢+]",\r
+            }\r
+            stricter{\r
+                "[,٫︐﹐,]",\r
+                "[.․﹒.。]",\r
+            }\r
+        }\r
     }\r
 }\r
index 084db727a66f97fa996aa05d060de13be9908933..5057f1295799a6983448596f962ef456a38a7f9e 100644 (file)
@@ -149,14 +149,10 @@ pt_PT{
             ordinal{\r
                 other{"{0}.º lugar"}\r
             }\r
-            plural{\r
-                one{"{0} dia"}\r
-                other{"{0} dias"}\r
-            }\r
         }\r
         minimumGroupingDigits{"2"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.9"}\r
     calendar{\r
         buddhist{\r
             DateTimePatterns{\r
@@ -166,7 +162,7 @@ pt_PT{
                 "HH:mm",\r
                 "EEEE, d 'de' MMMM 'de' y G",\r
                 "d 'de' MMMM 'de' y G",\r
-                "dd/MM/y G",\r
+                "d MMM y G",\r
                 "d/M/y G",\r
                 "{1}, {0}",\r
                 "{1} 'às' {0}",\r
@@ -242,7 +238,7 @@ pt_PT{
                 "HH:mm",\r
                 "EEEE, d 'de' MMMM 'de' y G",\r
                 "d 'de' MMMM 'de' y G",\r
-                "dd/MM/y G",\r
+                "d MMM y G",\r
                 "d/M/y G",\r
                 "{1}, {0}",\r
                 "{1} 'às' {0}",\r
@@ -493,7 +489,7 @@ pt_PT{
                 "HH:mm",\r
                 "EEEE, d 'de' MMMM 'de' y G",\r
                 "d 'de' MMMM 'de' y G",\r
-                "dd/MM/y G",\r
+                "d MMM y G",\r
                 "d/M/y G",\r
                 "{1}, {0}",\r
                 "{1} 'às' {0}",\r
@@ -530,7 +526,7 @@ pt_PT{
                 "HH:mm",\r
                 "EEEE, d 'de' MMMM 'de' y G",\r
                 "d 'de' MMMM 'de' y G",\r
-                "dd/MM/y G",\r
+                "d MMM y G",\r
                 "d/M/y G",\r
                 "{1}, {0}",\r
                 "{1} 'às' {0}",\r
@@ -564,7 +560,7 @@ pt_PT{
                 "HH:mm",\r
                 "EEEE, d 'de' MMMM 'de' y G",\r
                 "d 'de' MMMM 'de' y G",\r
-                "dd/MM/y G",\r
+                "d MMM y G",\r
                 "d/M/y G",\r
                 "{1}, {0}",\r
                 "{1} 'às' {0}",\r
@@ -581,26 +577,21 @@ pt_PT{
         dash_connector{"travessão ou elemento de ligação"}\r
         divination_symbols{"símbolo de divinação"}\r
         east_asian_scripts{"escrita leste-asiática"}\r
-        female{"feminino"}\r
         food_drink{"comida e bebida"}\r
-        full_width_form_variant{"variante de largura inteira"}\r
-        half_width_form_variant{"variante de meia largura"}\r
         han_characters{"carácter Han"}\r
         hanzi_simplified{"hanzi (simplificado)"}\r
         hanzi_traditional{"hanzi (tradicional)"}\r
         ideographic_desc_characters{"carácter de descrição ideográfica"}\r
         letterlike_symbols{"símbolo parecido com uma letra"}\r
-        male{"masculino"}\r
-        middle_eastern_scripts{"escrita do Médio Oriente"}\r
+        limited_use{"de uso limitado"}\r
+        middle_eastern_scripts{"escrita médio-oriental"}\r
         other{"outro"}\r
-        small_form_variant{"variantes pequenas"}\r
         south_asian_scripts{"escrita sul-asiática"}\r
         southeast_asian_scripts{"escrita sudeste-asiática"}\r
         sport{"desporto"}\r
         travel{"viagens"}\r
-        travel_places{"viagem ou lugar"}\r
         vocalic_jamo{"jamo vogal"}\r
-        weather{"tempo"}\r
+        weather{"meteorologia"}\r
         western_asian_scripts{"escrita oeste-asiática"}\r
     }\r
     contextTransforms{\r
@@ -629,10 +620,6 @@ pt_PT{
                     one{"dentro de {0} dia"}\r
                     other{"dentro de {0} dias"}\r
                 }\r
-                past{\r
-                    one{"há {0} dia"}\r
-                    other{"há {0} dias"}\r
-                }\r
             }\r
         }\r
         day-narrow{\r
@@ -667,12 +654,11 @@ pt_PT{
                     one{"dentro de {0} dia"}\r
                     other{"dentro de {0} dias"}\r
                 }\r
-                past{\r
-                    one{"há {0} dia"}\r
-                    other{"há {0} dias"}\r
-                }\r
             }\r
         }\r
+        dayperiod{\r
+            dn{"am/pm"}\r
+        }\r
         dayperiod-narrow{\r
             dn{"am/pm"}\r
         }\r
@@ -685,10 +671,6 @@ pt_PT{
                     one{"dentro de {0} sexta-feira"}\r
                     other{"dentro de {0} sextas-feiras"}\r
                 }\r
-                past{\r
-                    one{"há {0} sexta-feira"}\r
-                    other{"há {0} sextas-feiras"}\r
-                }\r
             }\r
         }\r
         fri-narrow{\r
@@ -697,10 +679,6 @@ pt_PT{
                     one{"dentro de {0} sex."}\r
                     other{"dentro de {0} sex."}\r
                 }\r
-                past{\r
-                    one{"há {0} sex."}\r
-                    other{"há {0} sex."}\r
-                }\r
             }\r
         }\r
         fri-short{\r
@@ -726,10 +704,6 @@ pt_PT{
                     one{"dentro de {0} hora"}\r
                     other{"dentro de {0} horas"}\r
                 }\r
-                past{\r
-                    one{"há {0} hora"}\r
-                    other{"há {0} horas"}\r
-                }\r
             }\r
         }\r
         hour-narrow{\r
@@ -750,10 +724,6 @@ pt_PT{
                     one{"dentro de {0} h"}\r
                     other{"dentro de {0} h"}\r
                 }\r
-                past{\r
-                    one{"há {0} h"}\r
-                    other{"há {0} h"}\r
-                }\r
             }\r
         }\r
         minute{\r
@@ -762,10 +732,6 @@ pt_PT{
                     one{"dentro de {0} minuto"}\r
                     other{"dentro de {0} minutos"}\r
                 }\r
-                past{\r
-                    one{"há {0} minuto"}\r
-                    other{"há {0} minutos"}\r
-                }\r
             }\r
         }\r
         minute-narrow{\r
@@ -808,10 +774,6 @@ pt_PT{
                     one{"dentro de {0} seg."}\r
                     other{"dentro de {0} seg."}\r
                 }\r
-                past{\r
-                    one{"há {0} seg."}\r
-                    other{"há {0} seg."}\r
-                }\r
             }\r
         }\r
         mon-short{\r
@@ -837,10 +799,6 @@ pt_PT{
                     one{"dentro de {0} mês"}\r
                     other{"dentro de {0} meses"}\r
                 }\r
-                past{\r
-                    one{"há {0} mês"}\r
-                    other{"há {0} meses"}\r
-                }\r
             }\r
         }\r
         month-narrow{\r
@@ -861,10 +819,6 @@ pt_PT{
                     one{"dentro de {0} mês"}\r
                     other{"dentro de {0} meses"}\r
                 }\r
-                past{\r
-                    one{"há {0} mês"}\r
-                    other{"há {0} meses"}\r
-                }\r
             }\r
         }\r
         quarter{\r
@@ -878,10 +832,6 @@ pt_PT{
                     one{"dentro de {0} trimestre"}\r
                     other{"dentro de {0} trimestres"}\r
                 }\r
-                past{\r
-                    one{"há {0} trimestre"}\r
-                    other{"há {0} trimestres"}\r
-                }\r
             }\r
         }\r
         quarter-narrow{\r
@@ -924,10 +874,6 @@ pt_PT{
                     one{"dentro de {0} sábado"}\r
                     other{"dentro de {0} sábados"}\r
                 }\r
-                past{\r
-                    one{"há {0} sábado"}\r
-                    other{"há {0} sábados"}\r
-                }\r
             }\r
         }\r
         sat-narrow{\r
@@ -936,10 +882,6 @@ pt_PT{
                     one{"dentro de {0} sáb."}\r
                     other{"dentro de {0} sáb."}\r
                 }\r
-                past{\r
-                    one{"há {0} sáb."}\r
-                    other{"há {0} sáb."}\r
-                }\r
             }\r
         }\r
         sat-short{\r
@@ -965,10 +907,6 @@ pt_PT{
                     one{"dentro de {0} segundo"}\r
                     other{"dentro de {0} segundos"}\r
                 }\r
-                past{\r
-                    one{"há {0} segundo"}\r
-                    other{"há {0} segundos"}\r
-                }\r
             }\r
         }\r
         second-narrow{\r
@@ -1015,10 +953,6 @@ pt_PT{
                     one{"dentro de {0} dom."}\r
                     other{"dentro de {0} dom."}\r
                 }\r
-                past{\r
-                    one{"há {0} dom."}\r
-                    other{"há {0} dom."}\r
-                }\r
             }\r
         }\r
         sun-short{\r
@@ -1040,27 +974,14 @@ pt_PT{
                     one{"dentro de {0} quinta-feira"}\r
                     other{"dentro de {0} quintas-feiras"}\r
                 }\r
-                past{\r
-                    one{"há {0} quinta-feira"}\r
-                    other{"há {0} quintas-feiras"}\r
-                }\r
             }\r
         }\r
         thu-narrow{\r
-            relative{\r
-                "-1"{"qui. passada"}\r
-                "0"{"esta qui."}\r
-                "1"{"próxima qui."}\r
-            }\r
             relativeTime{\r
                 future{\r
                     one{"dentro de {0} qui."}\r
                     other{"dentro de {0} qui."}\r
                 }\r
-                past{\r
-                    one{"há {0} qui."}\r
-                    other{"há {0} qui."}\r
-                }\r
             }\r
         }\r
         thu-short{\r
@@ -1094,10 +1015,6 @@ pt_PT{
                     one{"dentro de {0} ter."}\r
                     other{"dentro de {0} ter."}\r
                 }\r
-                past{\r
-                    one{"há {0} ter."}\r
-                    other{"há {0} ter."}\r
-                }\r
             }\r
         }\r
         tue-short{\r
@@ -1135,10 +1052,6 @@ pt_PT{
                     one{"dentro de {0} qua."}\r
                     other{"dentro de {0} qua."}\r
                 }\r
-                past{\r
-                    one{"há {0} qua."}\r
-                    other{"há {0} qua."}\r
-                }\r
             }\r
         }\r
         wed-short{\r
@@ -1164,10 +1077,6 @@ pt_PT{
                     one{"dentro de {0} semana"}\r
                     other{"dentro de {0} semanas"}\r
                 }\r
-                past{\r
-                    one{"há {0} semana"}\r
-                    other{"há {0} semanas"}\r
-                }\r
             }\r
         }\r
         week-narrow{\r
@@ -1189,10 +1098,6 @@ pt_PT{
                     one{"dentro de {0} sem."}\r
                     other{"dentro de {0} sem."}\r
                 }\r
-                past{\r
-                    one{"há {0} sem."}\r
-                    other{"há {0} sem."}\r
-                }\r
             }\r
         }\r
         weekday-narrow{\r
@@ -1207,10 +1112,6 @@ pt_PT{
                     one{"dentro de {0} ano"}\r
                     other{"dentro de {0} anos"}\r
                 }\r
-                past{\r
-                    one{"há {0} ano"}\r
-                    other{"há {0} anos"}\r
-                }\r
             }\r
         }\r
         year-narrow{\r
@@ -1231,10 +1132,6 @@ pt_PT{
                     one{"dentro de {0} ano"}\r
                     other{"dentro de {0} anos"}\r
                 }\r
-                past{\r
-                    one{"há {0} ano"}\r
-                    other{"há {0} anos"}\r
-                }\r
             }\r
         }\r
         zone-narrow{\r
index 0191cdddb9c9d87ab465745932cd355dc6e199b1..53a5b55b7973297e20734b71792160c6ce8ca14b 100644 (file)
@@ -11,7 +11,9 @@ qu{
     NumberElements{\r
         latn{\r
             miscPatterns{\r
-                atLeast{"⩾{0}"}\r
+                approximately{"~{0}"}\r
+                atLeast{"≥{0}"}\r
+                atMost{"≤{0}"}\r
                 range{"{0}–{1}"}\r
             }\r
             patterns{\r
@@ -152,9 +154,133 @@ qu{
                 superscriptingExponent{"×"}\r
             }\r
         }\r
+        minimumGroupingDigits{"1"}\r
     }\r
-    Version{"2.1.38.72"}\r
+    Version{"2.1.43.94"}\r
     calendar{\r
+        generic{\r
+            DateTimePatterns{\r
+                "HH:mm:ss zzzz",\r
+                "HH:mm:ss z",\r
+                "HH:mm:ss",\r
+                "HH:mm",\r
+                "EEEE, d MMMM y, G",\r
+                "d MMMM y, G",\r
+                "d MMM y, G",\r
+                "d/M/y GGGGG",\r
+                "{1} {0}",\r
+                "{1} {0}",\r
+                "{1} {0}",\r
+                "{1} {0}",\r
+                "{1} {0}",\r
+            }\r
+            availableFormats{\r
+                Bh{"h B"}\r
+                Bhm{"h:mm B"}\r
+                Bhms{"h:mm:ss B"}\r
+                E{"ccc"}\r
+                EBhm{"E h:mm B"}\r
+                EBhms{"E h:mm:ss B"}\r
+                EHm{"E HH:mm"}\r
+                EHms{"E HH:mm:ss"}\r
+                Ed{"E, d"}\r
+                Ehm{"E h:mm a"}\r
+                Ehms{"E h:mm:ss a"}\r
+                Gy{"y G"}\r
+                GyMMM{"MMM y G"}\r
+                GyMMMEd{"E, d MMMM y G"}\r
+                GyMMMd{"d MMM y G"}\r
+                H{"HH"}\r
+                Hm{"HH:mm"}\r
+                Hms{"HH:mm:ss"}\r
+                M{"L"}\r
+                MEd{"E, dd-MM"}\r
+                MMM{"LLL"}\r
+                MMMEd{"E, d MMMM"}\r
+                MMMMd{"d MMMM"}\r
+                MMMd{"d MMM"}\r
+                Md{"dd-MM"}\r
+                d{"d"}\r
+                h{"h a"}\r
+                hm{"h:mm a"}\r
+                hms{"h:mm:ss a"}\r
+                ms{"mm:ss"}\r
+                y{"y G"}\r
+                yyyy{"y G"}\r
+                yyyyM{"MM-y GGGGG"}\r
+                yyyyMEd{"E, dd-MM-y GGGGG"}\r
+                yyyyMMM{"MMM y G"}\r
+                yyyyMMMEd{"E, d MMM y G"}\r
+                yyyyMMMM{"MMMM y G"}\r
+                yyyyMMMd{"d MMM y G"}\r
+                yyyyMd{"dd-MM-y GGGGG"}\r
+                yyyyQQQ{"QQQ y G"}\r
+                yyyyQQQQ{"QQQQ y G"}\r
+            }\r
+            intervalFormats{\r
+                M{\r
+                    M{"MM–MM"}\r
+                }\r
+                MEd{\r
+                    M{"E, dd-MM – E, dd-MM"}\r
+                    d{"E, dd-MM – E, dd-MM"}\r
+                }\r
+                MMM{\r
+                    M{"LLL–LLL"}\r
+                }\r
+                MMMEd{\r
+                    M{"E, d MMM – E, d MMM"}\r
+                    d{"E, d MMM – E, d MMM"}\r
+                }\r
+                MMMd{\r
+                    M{"d MMM – d MMM"}\r
+                    d{"d–d MMM"}\r
+                }\r
+                Md{\r
+                    M{"dd-MM – dd-MM"}\r
+                    d{"dd-MM – dd-MM"}\r
+                }\r
+                d{\r
+                    d{"d–d"}\r
+                }\r
+                fallback{"{0} – {1}"}\r
+                y{\r
+                    y{"y–y G"}\r
+                }\r
+                yM{\r
+                    M{"MM-y – MM-y GGGGG"}\r
+                    y{"MM-y – MM-y GGGGG"}\r
+                }\r
+                yMEd{\r
+                    M{"E, dd-MM-y – E, dd-MM-y GGGGG"}\r
+                    d{"E, dd-MM-y – E, dd-MM-y GGGGG"}\r
+                    y{"E, dd-MM-y – E, dd-MM-y GGGGG"}\r
+                }\r
+                yMMM{\r
+                    M{"MMM–MMM y G"}\r
+                    y{"MMM y – MMM y G"}\r
+                }\r
+                yMMMEd{\r
+                    M{"E, d MMM – E, d MMM y G"}\r
+                    d{"E, d MMM y – E, d MMM y G"}\r
+                    y{"E, d MMM y – E, d MMM y G"}\r
+                }\r
+                yMMMM{\r
+                    M{"MMMM–MMMM y G"}\r
+                    y{"MMMM y – MMMM y G"}\r
+                }\r
+                yMMMd{\r
+                    M{"d MMM – d MMM y G"}\r
+                    d{"d–d MMM y G"}\r
+                    y{"d MMM y – d MMM y G"}\r
+                }\r
+                yMd{\r
+                    M{"dd-MM-y – dd-MM-y GGGGG"}\r
+                    d{"dd-MM-y – dd-MM-y GGGGG"}\r
+                    y{"dd-MM-y – dd-MM-y GGGGG"}\r
+                }\r
+            }\r
+        }\r
         gregorian{\r
             AmPmMarkers{\r
                 "a.m.",\r
@@ -583,6 +709,687 @@ qu{
             }\r
         }\r
     }\r
+    fields{\r
+        day{\r
+            dn{"Day"}\r
+            relative{\r
+                "-1"{"qayna punchaw"}\r
+                "0"{"kunan punchaw"}\r
+                "1"{"paqarin"}\r
+            }\r
+            relativeTime{\r
+                future{\r
+                    other{"+{0} d"}\r
+                }\r
+                past{\r
+                    other{"-{0} d"}\r
+                }\r
+            }\r
+        }\r
+        day-narrow{\r
+            dn{"Day"}\r
+            relativeTime{\r
+                future{\r
+                    other{"+{0} d"}\r
+                }\r
+                past{\r
+                    other{"-{0} d"}\r
+                }\r
+            }\r
+        }\r
+        day-short{\r
+            dn{"Day"}\r
+            relativeTime{\r
+                future{\r
+                    other{"+{0} d"}\r
+                }\r
+                past{\r
+                    other{"-{0} d"}\r
+                }\r
+            }\r
+        }\r
+        dayOfYear{\r
+            dn{"Day Of Year"}\r
+        }\r
+        dayOfYear-narrow{\r
+            dn{"Day Of Year"}\r
+        }\r
+        dayOfYear-short{\r
+            dn{"Day Of Year"}\r
+        }\r
+        dayperiod{\r
+            dn{"Dayperiod"}\r
+        }\r
+        dayperiod-narrow{\r
+            dn{"Dayperiod"}\r
+        }\r
+        dayperiod-short{\r
+            dn{"Dayperiod"}\r
+        }\r
+        era{\r
+            dn{"Era"}\r
+        }\r
+        era-narrow{\r
+            dn{"Era"}\r
+        }\r
+        era-short{\r
+            dn{"Era"}\r
+        }\r
+        fri{\r
+            relative{\r
+                "-1"{"Qayna Viernes"}\r
+                "0"{"kunan Viernes"}\r
+                "1"{"hamuq Viernes"}\r
+            }\r
+            relativeTime{\r
+                future{\r
+                    other{"+{0} Viernes"}\r
+                }\r
+                past{\r
+                    other{"-{0} Viernes"}\r
+                }\r
+            }\r
+        }\r
+        fri-narrow{\r
+            relative{\r
+                "-1"{"Qayna Viernes"}\r
+                "0"{"kunan Viernes"}\r
+                "1"{"hamuq Viernes"}\r
+            }\r
+            relativeTime{\r
+                future{\r
+                    other{"+{0} Viernes"}\r
+                }\r
+                past{\r
+                    other{"-{0} Viernes"}\r
+                }\r
+            }\r
+        }\r
+        fri-short{\r
+            relative{\r
+                "-1"{"Qayna Viernes"}\r
+                "0"{"kunan Viernes"}\r
+                "1"{"hamuq Viernes"}\r
+            }\r
+            relativeTime{\r
+                future{\r
+                    other{"+{0} Viernes"}\r
+                }\r
+                past{\r
+                    other{"-{0} Viernes"}\r
+                }\r
+            }\r
+        }\r
+        hour{\r
+            dn{"Hour"}\r
+            relative{\r
+                "0"{"kay hora"}\r
+            }\r
+            relativeTime{\r
+                future{\r
+                    other{"+{0} h"}\r
+                }\r
+                past{\r
+                    other{"-{0} h"}\r
+                }\r
+            }\r
+        }\r
+        hour-narrow{\r
+            dn{"Hour"}\r
+            relativeTime{\r
+                future{\r
+                    other{"+{0} h"}\r
+                }\r
+                past{\r
+                    other{"-{0} h"}\r
+                }\r
+            }\r
+        }\r
+        hour-short{\r
+            dn{"Hour"}\r
+            relativeTime{\r
+                future{\r
+                    other{"+{0} h"}\r
+                }\r
+                past{\r
+                    other{"-{0} h"}\r
+                }\r
+            }\r
+        }\r
+        minute{\r
+            dn{"Minute"}\r
+            relative{\r
+                "0"{"kay minuto"}\r
+            }\r
+            relativeTime{\r
+                future{\r
+                    other{"+{0} min"}\r
+                }\r
+                past{\r
+                    other{"-{0} min"}\r
+                }\r
+            }\r
+        }\r
+        minute-narrow{\r
+            dn{"Minute"}\r
+            relativeTime{\r
+                future{\r
+                    other{"+{0} min"}\r
+                }\r
+                past{\r
+                    other{"-{0} min"}\r
+                }\r
+            }\r
+        }\r
+        minute-short{\r
+            dn{"Minute"}\r
+            relativeTime{\r
+                future{\r
+                    other{"+{0} min"}\r
+                }\r
+                past{\r
+                    other{"-{0} min"}\r
+                }\r
+            }\r
+        }\r
+        mon{\r
+            relative{\r
+                "-1"{"qayna Lunes"}\r
+                "0"{"kunan Lunes"}\r
+                "1"{"hamuq Lunes"}\r
+            }\r
+            relativeTime{\r
+                future{\r
+                    other{"+{0} Lunes"}\r
+                }\r
+                past{\r
+                    other{"-{0} Lunes"}\r
+                }\r
+            }\r
+        }\r
+        mon-narrow{\r
+            relative{\r
+                "-1"{"qayna Lunes"}\r
+                "0"{"kunan Lunes"}\r
+                "1"{"next Monday"}\r
+            }\r
+            relativeTime{\r
+                future{\r
+                    other{"+{0} Lunes"}\r
+                }\r
+                past{\r
+                    other{"-{0} Lunes"}\r
+                }\r
+            }\r
+        }\r
+        mon-short{\r
+            relative{\r
+                "-1"{"qayna Lunes"}\r
+                "0"{"kunan Lunes"}\r
+                "1"{"hamuq Lunes"}\r
+            }\r
+            relativeTime{\r
+                future{\r
+                    other{"+{0} Lunes"}\r
+                }\r
+                past{\r
+                    other{"-{0} Lunes"}\r
+                }\r
+            }\r
+        }\r
+        month{\r
+            dn{"Month"}\r
+            relative{\r
+                "-1"{"qayna killa"}\r
+                "0"{"kunan killa"}\r
+                "1"{"hamuq killa"}\r
+            }\r
+            relativeTime{\r
+                future{\r
+                    other{"+{0} m"}\r
+                }\r
+                past{\r
+                    other{"-{0} m"}\r
+                }\r
+            }\r
+        }\r
+        month-narrow{\r
+            dn{"Month"}\r
+            relativeTime{\r
+                future{\r
+                    other{"+{0} m"}\r
+                }\r
+                past{\r
+                    other{"-{0} m"}\r
+                }\r
+            }\r
+        }\r
+        month-short{\r
+            dn{"Month"}\r
+            relativeTime{\r
+                future{\r
+                    other{"+{0} m"}\r
+                }\r
+                past{\r
+                    other{"-{0} m"}\r
+                }\r
+            }\r
+        }\r
+        quarter{\r
+            dn{"Quarter"}\r
+            relative{\r
+                "-1"{"qayna kimsa killa"}\r
+                "0"{"kunan kimsa killa"}\r
+                "1"{"hamuq kimsa killa"}\r
+            }\r
+            relativeTime{\r
+                future{\r
+                    other{"+{0} Q"}\r
+                }\r
+                past{\r
+                    other{"-{0} Q"}\r
+                }\r
+            }\r
+        }\r
+        quarter-narrow{\r
+            dn{"Quarter"}\r
+            relativeTime{\r
+                future{\r
+                    other{"+{0} Q"}\r
+                }\r
+                past{\r
+                    other{"-{0} Q"}\r
+                }\r
+            }\r
+        }\r
+        quarter-short{\r
+            dn{"Quarter"}\r
+            relativeTime{\r
+                future{\r
+                    other{"+{0} Q"}\r
+                }\r
+                past{\r
+                    other{"-{0} Q"}\r
+                }\r
+            }\r
+        }\r
+        sat{\r
+            relative{\r
+                "-1"{"qayna Sábado"}\r
+                "0"{"kunan Sábado"}\r
+                "1"{"hamuq Sábado"}\r
+            }\r
+            relativeTime{\r
+                future{\r
+                    other{"+{0} Sábado"}\r
+                }\r
+                past{\r
+                    other{"-{0} Sábado"}\r
+                }\r
+            }\r
+        }\r
+        sat-narrow{\r
+            relative{\r
+                "-1"{"qayna Sábado"}\r
+                "0"{"kunan Sábado"}\r
+                "1"{"next Saturday"}\r
+            }\r
+            relativeTime{\r
+                future{\r
+                    other{"+{0} Sábado"}\r
+                }\r
+                past{\r
+                    other{"-{0} Sábado"}\r
+                }\r
+            }\r
+        }\r
+        sat-short{\r
+            relative{\r
+                "-1"{"qayna Sábado"}\r
+                "0"{"kunan Sábado"}\r
+                "1"{"hamuq Sábado"}\r
+            }\r
+            relativeTime{\r
+                future{\r
+                    other{"+{0} Sábado"}\r
+                }\r
+                past{\r
+                    other{"-{0} Sábado"}\r
+                }\r
+            }\r
+        }\r
+        second{\r
+            dn{"Second"}\r
+            relative{\r
+                "0"{"now"}\r
+            }\r
+            relativeTime{\r
+                future{\r
+                    other{"+{0} s"}\r
+                }\r
+                past{\r
+                    other{"-{0} s"}\r
+                }\r
+            }\r
+        }\r
+        second-narrow{\r
+            dn{"Second"}\r
+            relativeTime{\r
+                future{\r
+                    other{"+{0} s"}\r
+                }\r
+                past{\r
+                    other{"-{0} s"}\r
+                }\r
+            }\r
+        }\r
+        second-short{\r
+            dn{"Second"}\r
+            relativeTime{\r
+                future{\r
+                    other{"+{0} s"}\r
+                }\r
+                past{\r
+                    other{"-{0} s"}\r
+                }\r
+            }\r
+        }\r
+        sun{\r
+            relative{\r
+                "-1"{"qayna domingo"}\r
+                "0"{"kunan domingo"}\r
+                "1"{"hamuq domingo"}\r
+            }\r
+            relativeTime{\r
+                future{\r
+                    other{"+{0} Domingopi"}\r
+                }\r
+                past{\r
+                    other{"-{0} Domingopi"}\r
+                }\r
+            }\r
+        }\r
+        sun-narrow{\r
+            relative{\r
+                "-1"{"qayna domingo"}\r
+                "0"{"kunan domingo"}\r
+                "1"{"hamuq domingo"}\r
+            }\r
+            relativeTime{\r
+                future{\r
+                    other{"+{0} Domingopi"}\r
+                }\r
+                past{\r
+                    other{"-{0} Domingopi"}\r
+                }\r
+            }\r
+        }\r
+        sun-short{\r
+            relative{\r
+                "-1"{"qayna domingo"}\r
+                "0"{"kunan domingo"}\r
+                "1"{"hamuq domingo"}\r
+            }\r
+            relativeTime{\r
+                future{\r
+                    other{"+{0} Domingopi"}\r
+                }\r
+                past{\r
+                    other{"-{0} Domingopi"}\r
+                }\r
+            }\r
+        }\r
+        thu{\r
+            relative{\r
+                "-1"{"qayna Jueves"}\r
+                "0"{"kunan Jueves"}\r
+                "1"{"hamuq Jueves"}\r
+            }\r
+            relativeTime{\r
+                future{\r
+                    other{"+{0} Jueves"}\r
+                }\r
+                past{\r
+                    other{"-{0} Jueves"}\r
+                }\r
+            }\r
+        }\r
+        thu-narrow{\r
+            relative{\r
+                "-1"{"qayna Jueves"}\r
+                "0"{"kunan Jueves"}\r
+                "1"{"hamuq Jueves"}\r
+            }\r
+            relativeTime{\r
+                future{\r
+                    other{"+{0} Jueves"}\r
+                }\r
+                past{\r
+                    other{"-{0} Jueves"}\r
+                }\r
+            }\r
+        }\r
+        thu-short{\r
+            relative{\r
+                "-1"{"qayna Jueves"}\r
+                "0"{"kunan Jueves"}\r
+                "1"{"hamuq Jueves"}\r
+            }\r
+            relativeTime{\r
+                future{\r
+                    other{"+{0} Jueves"}\r
+                }\r
+                past{\r
+                    other{"-{0} Jueves"}\r
+                }\r
+            }\r
+        }\r
+        tue{\r
+            relative{\r
+                "-1"{"qayna Martes"}\r
+                "0"{"kunan Martes"}\r
+                "1"{"hamuq Martes"}\r
+            }\r
+            relativeTime{\r
+                future{\r
+                    other{"+{0} Martes"}\r
+                }\r
+                past{\r
+                    other{"-{0} Martes"}\r
+                }\r
+            }\r
+        }\r
+        tue-narrow{\r
+            relative{\r
+                "-1"{"qayna Martes"}\r
+                "0"{"kunan Martes"}\r
+                "1"{"hamuq Martes"}\r
+            }\r
+            relativeTime{\r
+                future{\r
+                    other{"+{0} Martes"}\r
+                }\r
+                past{\r
+                    other{"-{0} Martes"}\r
+                }\r
+            }\r
+        }\r
+        tue-short{\r
+            relative{\r
+                "-1"{"qayna Martes"}\r
+                "0"{"kunan Martes"}\r
+                "1"{"hamuq Martes"}\r
+            }\r
+            relativeTime{\r
+                future{\r
+                    other{"+{0} Martes"}\r
+                }\r
+                past{\r
+                    other{"-{0} Martes"}\r
+                }\r
+            }\r
+        }\r
+        wed{\r
+            relative{\r
+                "-1"{"Qayna Miércoles"}\r
+                "0"{"kunan Miércoles"}\r
+                "1"{"hamuq Miércoles"}\r
+            }\r
+            relativeTime{\r
+                future{\r
+                    other{"+{0} Miércoles"}\r
+                }\r
+                past{\r
+                    other{"-{0} Miércoles"}\r
+                }\r
+            }\r
+        }\r
+        wed-narrow{\r
+            relative{\r
+                "-1"{"Qayna Miércoles"}\r
+                "0"{"kunan Miércoles"}\r
+                "1"{"hamuq Miércoles"}\r
+            }\r
+            relativeTime{\r
+                future{\r
+                    other{"+{0} Miércoles"}\r
+                }\r
+                past{\r
+                    other{"-{0} Miércoles"}\r
+                }\r
+            }\r
+        }\r
+        wed-short{\r
+            relative{\r
+                "-1"{"Qayna Miércoles"}\r
+                "0"{"kunan Miércoles"}\r
+                "1"{"hamuq Miércoles"}\r
+            }\r
+            relativeTime{\r
+                future{\r
+                    other{"+{0} Miércoles"}\r
+                }\r
+                past{\r
+                    other{"-{0} Miércoles"}\r
+                }\r
+            }\r
+        }\r
+        week{\r
+            dn{"Week"}\r
+            relative{\r
+                "-1"{"qayna semana"}\r
+                "0"{"kunan semana"}\r
+                "1"{"hamuq semana"}\r
+            }\r
+            relativePeriod{"{0} semanapi"}\r
+            relativeTime{\r
+                future{\r
+                    other{"+{0} w"}\r
+                }\r
+                past{\r
+                    other{"-{0} w"}\r
+                }\r
+            }\r
+        }\r
+        week-narrow{\r
+            dn{"Week"}\r
+            relativePeriod{"{0} semanapi"}\r
+            relativeTime{\r
+                future{\r
+                    other{"+{0} w"}\r
+                }\r
+                past{\r
+                    other{"-{0} w"}\r
+                }\r
+            }\r
+        }\r
+        week-short{\r
+            dn{"Week"}\r
+            relativePeriod{"{0} semanapi"}\r
+            relativeTime{\r
+                future{\r
+                    other{"+{0} w"}\r
+                }\r
+                past{\r
+                    other{"-{0} w"}\r
+                }\r
+            }\r
+        }\r
+        weekOfMonth{\r
+            dn{"Week Of Month"}\r
+        }\r
+        weekOfMonth-narrow{\r
+            dn{"Week Of Month"}\r
+        }\r
+        weekOfMonth-short{\r
+            dn{"Week Of Month"}\r
+        }\r
+        weekday{\r
+            dn{"Day of the Week"}\r
+        }\r
+        weekday-narrow{\r
+            dn{"Day of the Week"}\r
+        }\r
+        weekday-short{\r
+            dn{"Day of the Week"}\r
+        }\r
+        weekdayOfMonth{\r
+            dn{"Weekday Of Month"}\r
+        }\r
+        weekdayOfMonth-narrow{\r
+            dn{"Weekday Of Month"}\r
+        }\r
+        weekdayOfMonth-short{\r
+            dn{"Weekday Of Month"}\r
+        }\r
+        year{\r
+            dn{"Year"}\r
+            relative{\r
+                "-1"{"qayna wata"}\r
+                "0"{"kunan wata"}\r
+                "1"{"hamuq wata"}\r
+            }\r
+            relativeTime{\r
+                future{\r
+                    other{"+{0} y"}\r
+                }\r
+                past{\r
+                    other{"-{0} y"}\r
+                }\r
+            }\r
+        }\r
+        year-narrow{\r
+            dn{"Year"}\r
+            relativeTime{\r
+                future{\r
+                    other{"+{0} y"}\r
+                }\r
+                past{\r
+                    other{"-{0} y"}\r
+                }\r
+            }\r
+        }\r
+        year-short{\r
+            dn{"Year"}\r
+            relativeTime{\r
+                future{\r
+                    other{"+{0} y"}\r
+                }\r
+                past{\r
+                    other{"-{0} y"}\r
+                }\r
+            }\r
+        }\r
+        zone{\r
+            dn{"Zone"}\r
+        }\r
+        zone-narrow{\r
+            dn{"Zone"}\r
+        }\r
+        zone-short{\r
+            dn{"Zone"}\r
+        }\r
+    }\r
     layout{\r
         characters{"left-to-right"}\r
         lines{"top-to-bottom"}\r
index 627c2c87f88fb93e10d0be843f6935a0d80b3a15..797c3aff4893ef8dcbc51e76e9f2d7e266689b47 100644 (file)
@@ -1,6 +1,6 @@
 # © 2016 and later: Unicode, Inc. and others.\r
 # License & terms of use: http://www.unicode.org/copyright.html#License\r
-GENRB_CLDR_VERSION = 33.1\r
+GENRB_CLDR_VERSION = 34\r
 # A list of txt's to build\r
 # Note:\r
 #\r
@@ -97,30 +97,30 @@ GENRB_SOURCE = af.txt af_NA.txt af_ZA.txt agq.txt\
  es_PY.txt es_SV.txt es_US.txt es_UY.txt es_VE.txt\\r
  et.txt et_EE.txt eu.txt eu_ES.txt ewo.txt\\r
  ewo_CM.txt fa.txt fa_AF.txt fa_IR.txt ff.txt\\r
- ff_CM.txt ff_GN.txt ff_MR.txt ff_SN.txt fi.txt\\r
- fi_FI.txt fil.txt fil_PH.txt fo.txt fo_DK.txt\\r
- fo_FO.txt fr.txt fr_BE.txt fr_BF.txt fr_BI.txt\\r
- fr_BJ.txt fr_BL.txt fr_CA.txt fr_CD.txt fr_CF.txt\\r
- fr_CG.txt fr_CH.txt fr_CI.txt fr_CM.txt fr_DJ.txt\\r
- fr_DZ.txt fr_FR.txt fr_GA.txt fr_GF.txt fr_GN.txt\\r
- fr_GP.txt fr_GQ.txt fr_HT.txt fr_KM.txt fr_LU.txt\\r
- fr_MA.txt fr_MC.txt fr_MF.txt fr_MG.txt fr_ML.txt\\r
- fr_MQ.txt fr_MR.txt fr_MU.txt fr_NC.txt fr_NE.txt\\r
- fr_PF.txt fr_PM.txt fr_RE.txt fr_RW.txt fr_SC.txt\\r
- fr_SN.txt fr_SY.txt fr_TD.txt fr_TG.txt fr_TN.txt\\r
- fr_VU.txt fr_WF.txt fr_YT.txt fur.txt fur_IT.txt\\r
fy.txt fy_NL.txt ga.txt ga_IE.txt gd.txt\\r
- gd_GB.txt gl.txt gl_ES.txt gsw.txt gsw_CH.txt\\r
- gsw_FR.txt gsw_LI.txt gu.txt gu_IN.txt guz.txt\\r
guz_KE.txt gv.txt gv_IM.txt ha.txt ha_GH.txt\\r
- ha_NE.txt ha_NG.txt haw.txt haw_US.txt he.txt\\r
- he_IL.txt hi.txt hi_IN.txt hr.txt hr_BA.txt\\r
- hr_HR.txt hsb.txt hsb_DE.txt hu.txt hu_HU.txt\\r
hy.txt hy_AM.txt id.txt id_ID.txt ig.txt\\r
- ig_NG.txt ii.txt ii_CN.txt is.txt is_IS.txt\\r
- it.txt it_CH.txt it_IT.txt it_SM.txt it_VA.txt\\r
- ja.txt ja_JP.txt jgo.txt jgo_CM.txt jmc.txt\\r
- jmc_TZ.txt ka.txt ka_GE.txt kab.txt kab_DZ.txt\\r
+ fi.txt fi_FI.txt fil.txt fil_PH.txt fo.txt\\r
+ fo_DK.txt fo_FO.txt fr.txt fr_BE.txt fr_BF.txt\\r
+ fr_BI.txt fr_BJ.txt fr_BL.txt fr_CA.txt fr_CD.txt\\r
+ fr_CF.txt fr_CG.txt fr_CH.txt fr_CI.txt fr_CM.txt\\r
+ fr_DJ.txt fr_DZ.txt fr_FR.txt fr_GA.txt fr_GF.txt\\r
+ fr_GN.txt fr_GP.txt fr_GQ.txt fr_HT.txt fr_KM.txt\\r
+ fr_LU.txt fr_MA.txt fr_MC.txt fr_MF.txt fr_MG.txt\\r
+ fr_ML.txt fr_MQ.txt fr_MR.txt fr_MU.txt fr_NC.txt\\r
+ fr_NE.txt fr_PF.txt fr_PM.txt fr_RE.txt fr_RW.txt\\r
+ fr_SC.txt fr_SN.txt fr_SY.txt fr_TD.txt fr_TG.txt\\r
+ fr_TN.txt fr_VU.txt fr_WF.txt fr_YT.txt fur.txt\\r
+ fur_IT.txt fy.txt fy_NL.txt ga.txt ga_IE.txt\\r
gd.txt gd_GB.txt gl.txt gl_ES.txt gsw.txt\\r
+ gsw_CH.txt gsw_FR.txt gsw_LI.txt gu.txt gu_IN.txt\\r
+ guz.txt guz_KE.txt gv.txt gv_IM.txt ha.txt\\r
ha_GH.txt ha_NE.txt ha_NG.txt haw.txt haw_US.txt\\r
+ he.txt he_IL.txt hi.txt hi_IN.txt hr.txt\\r
+ hr_BA.txt hr_HR.txt hsb.txt hsb_DE.txt hu.txt\\r
+ hu_HU.txt hy.txt hy_AM.txt ia.txt ia_001.txt\\r
id.txt id_ID.txt ig.txt ig_NG.txt ii.txt\\r
+ ii_CN.txt is.txt is_IS.txt it.txt it_CH.txt\\r
+ it_IT.txt it_SM.txt it_VA.txt ja.txt ja_JP.txt\\r
+ jgo.txt jgo_CM.txt jmc.txt jmc_TZ.txt jv.txt\\r
+ jv_ID.txt ka.txt ka_GE.txt kab.txt kab_DZ.txt\\r
  kam.txt kam_KE.txt kde.txt kde_TZ.txt kea.txt\\r
  kea_CV.txt khq.txt khq_ML.txt ki.txt ki_KE.txt\\r
  kk.txt kk_KZ.txt kkj.txt kkj_CM.txt kl.txt\\r
@@ -128,59 +128,61 @@ GENRB_SOURCE = af.txt af_NA.txt af_ZA.txt agq.txt\
  kn.txt kn_IN.txt ko.txt ko_KP.txt ko_KR.txt\\r
  kok.txt kok_IN.txt ks.txt ks_IN.txt ksb.txt\\r
  ksb_TZ.txt ksf.txt ksf_CM.txt ksh.txt ksh_DE.txt\\r
- kw.txt kw_GB.txt ky.txt ky_KG.txt lag.txt\\r
- lag_TZ.txt lb.txt lb_LU.txt lg.txt lg_UG.txt\\r
- lkt.txt lkt_US.txt ln.txt ln_AO.txt ln_CD.txt\\r
- ln_CF.txt ln_CG.txt lo.txt lo_LA.txt lrc.txt\\r
- lrc_IQ.txt lrc_IR.txt lt.txt lt_LT.txt lu.txt\\r
- lu_CD.txt luo.txt luo_KE.txt luy.txt luy_KE.txt\\r
- lv.txt lv_LV.txt mas.txt mas_KE.txt mas_TZ.txt\\r
- mer.txt mer_KE.txt mfe.txt mfe_MU.txt mg.txt\\r
- mg_MG.txt mgh.txt mgh_MZ.txt mgo.txt mgo_CM.txt\\r
- mk.txt mk_MK.txt ml.txt ml_IN.txt mn.txt\\r
- mn_MN.txt mr.txt mr_IN.txt ms.txt ms_BN.txt\\r
- ms_MY.txt ms_SG.txt mt.txt mt_MT.txt mua.txt\\r
- mua_CM.txt my.txt my_MM.txt mzn.txt mzn_IR.txt\\r
- naq.txt naq_NA.txt nb.txt nb_NO.txt nb_SJ.txt\\r
- nd.txt nd_ZW.txt nds.txt nds_DE.txt nds_NL.txt\\r
- ne.txt ne_IN.txt ne_NP.txt nl.txt nl_AW.txt\\r
- nl_BE.txt nl_BQ.txt nl_CW.txt nl_NL.txt nl_SR.txt\\r
- nl_SX.txt nmg.txt nmg_CM.txt nn.txt nn_NO.txt\\r
- nnh.txt nnh_CM.txt nus.txt nus_SS.txt nyn.txt\\r
- nyn_UG.txt om.txt om_ET.txt om_KE.txt or.txt\\r
- or_IN.txt os.txt os_GE.txt os_RU.txt pa.txt\\r
- pa_Arab.txt pa_Arab_PK.txt pa_Guru.txt pa_Guru_IN.txt pl.txt\\r
- pl_PL.txt ps.txt ps_AF.txt pt.txt pt_AO.txt\\r
- pt_BR.txt pt_CH.txt pt_CV.txt pt_GQ.txt pt_GW.txt\\r
- pt_LU.txt pt_MO.txt pt_MZ.txt pt_PT.txt pt_ST.txt\\r
- pt_TL.txt qu.txt qu_BO.txt qu_EC.txt qu_PE.txt\\r
- rm.txt rm_CH.txt rn.txt rn_BI.txt ro.txt\\r
- ro_MD.txt ro_RO.txt rof.txt rof_TZ.txt ru.txt\\r
- ru_BY.txt ru_KG.txt ru_KZ.txt ru_MD.txt ru_RU.txt\\r
- ru_UA.txt rw.txt rw_RW.txt rwk.txt rwk_TZ.txt\\r
- sah.txt sah_RU.txt saq.txt saq_KE.txt sbp.txt\\r
- sbp_TZ.txt se.txt se_FI.txt se_NO.txt se_SE.txt\\r
- seh.txt seh_MZ.txt ses.txt ses_ML.txt sg.txt\\r
- sg_CF.txt shi.txt shi_Latn.txt shi_Latn_MA.txt shi_Tfng.txt\\r
- shi_Tfng_MA.txt si.txt si_LK.txt sk.txt sk_SK.txt\\r
- sl.txt sl_SI.txt smn.txt smn_FI.txt sn.txt\\r
- sn_ZW.txt so.txt so_DJ.txt so_ET.txt so_KE.txt\\r
- so_SO.txt sq.txt sq_AL.txt sq_MK.txt sq_XK.txt\\r
- sr.txt sr_Cyrl.txt sr_Cyrl_BA.txt sr_Cyrl_ME.txt sr_Cyrl_RS.txt\\r
- sr_Cyrl_XK.txt sr_Latn.txt sr_Latn_BA.txt sr_Latn_ME.txt sr_Latn_RS.txt\\r
- sr_Latn_XK.txt sv.txt sv_AX.txt sv_FI.txt sv_SE.txt\\r
- sw.txt sw_CD.txt sw_KE.txt sw_TZ.txt sw_UG.txt\\r
- ta.txt ta_IN.txt ta_LK.txt ta_MY.txt ta_SG.txt\\r
- te.txt te_IN.txt teo.txt teo_KE.txt teo_UG.txt\\r
- tg.txt tg_TJ.txt th.txt th_TH.txt ti.txt\\r
- ti_ER.txt ti_ET.txt to.txt to_TO.txt tr.txt\\r
- tr_CY.txt tr_TR.txt tt.txt tt_RU.txt twq.txt\\r
- twq_NE.txt tzm.txt tzm_MA.txt ug.txt ug_CN.txt\\r
- uk.txt uk_UA.txt ur.txt ur_IN.txt ur_PK.txt\\r
- uz.txt uz_Arab.txt uz_Arab_AF.txt uz_Cyrl.txt uz_Cyrl_UZ.txt\\r
- uz_Latn.txt uz_Latn_UZ.txt vai.txt vai_Latn.txt vai_Latn_LR.txt\\r
- vai_Vaii.txt vai_Vaii_LR.txt vi.txt vi_VN.txt vun.txt\\r
- vun_TZ.txt wae.txt wae_CH.txt wo.txt wo_SN.txt\\r
+ ku.txt ku_TR.txt kw.txt kw_GB.txt ky.txt\\r
+ ky_KG.txt lag.txt lag_TZ.txt lb.txt lb_LU.txt\\r
+ lg.txt lg_UG.txt lkt.txt lkt_US.txt ln.txt\\r
+ ln_AO.txt ln_CD.txt ln_CF.txt ln_CG.txt lo.txt\\r
+ lo_LA.txt lrc.txt lrc_IQ.txt lrc_IR.txt lt.txt\\r
+ lt_LT.txt lu.txt lu_CD.txt luo.txt luo_KE.txt\\r
+ luy.txt luy_KE.txt lv.txt lv_LV.txt mas.txt\\r
+ mas_KE.txt mas_TZ.txt mer.txt mer_KE.txt mfe.txt\\r
+ mfe_MU.txt mg.txt mg_MG.txt mgh.txt mgh_MZ.txt\\r
+ mgo.txt mgo_CM.txt mi.txt mi_NZ.txt mk.txt\\r
+ mk_MK.txt ml.txt ml_IN.txt mn.txt mn_MN.txt\\r
+ mr.txt mr_IN.txt ms.txt ms_BN.txt ms_MY.txt\\r
+ ms_SG.txt mt.txt mt_MT.txt mua.txt mua_CM.txt\\r
+ my.txt my_MM.txt mzn.txt mzn_IR.txt naq.txt\\r
+ naq_NA.txt nb.txt nb_NO.txt nb_SJ.txt nd.txt\\r
+ nd_ZW.txt nds.txt nds_DE.txt nds_NL.txt ne.txt\\r
+ ne_IN.txt ne_NP.txt nl.txt nl_AW.txt nl_BE.txt\\r
+ nl_BQ.txt nl_CW.txt nl_NL.txt nl_SR.txt nl_SX.txt\\r
+ nmg.txt nmg_CM.txt nn.txt nn_NO.txt nnh.txt\\r
+ nnh_CM.txt nus.txt nus_SS.txt nyn.txt nyn_UG.txt\\r
+ om.txt om_ET.txt om_KE.txt or.txt or_IN.txt\\r
+ os.txt os_GE.txt os_RU.txt pa.txt pa_Arab.txt\\r
+ pa_Arab_PK.txt pa_Guru.txt pa_Guru_IN.txt pl.txt pl_PL.txt\\r
+ ps.txt ps_AF.txt pt.txt pt_AO.txt pt_BR.txt\\r
+ pt_CH.txt pt_CV.txt pt_GQ.txt pt_GW.txt pt_LU.txt\\r
+ pt_MO.txt pt_MZ.txt pt_PT.txt pt_ST.txt pt_TL.txt\\r
+ qu.txt qu_BO.txt qu_EC.txt qu_PE.txt rm.txt\\r
+ rm_CH.txt rn.txt rn_BI.txt ro.txt ro_MD.txt\\r
+ ro_RO.txt rof.txt rof_TZ.txt ru.txt ru_BY.txt\\r
+ ru_KG.txt ru_KZ.txt ru_MD.txt ru_RU.txt ru_UA.txt\\r
+ rw.txt rw_RW.txt rwk.txt rwk_TZ.txt sah.txt\\r
+ sah_RU.txt saq.txt saq_KE.txt sbp.txt sbp_TZ.txt\\r
+ sd.txt sd_PK.txt se.txt se_FI.txt se_NO.txt\\r
+ se_SE.txt seh.txt seh_MZ.txt ses.txt ses_ML.txt\\r
+ sg.txt sg_CF.txt shi.txt shi_Latn.txt shi_Latn_MA.txt\\r
+ shi_Tfng.txt shi_Tfng_MA.txt si.txt si_LK.txt sk.txt\\r
+ sk_SK.txt sl.txt sl_SI.txt smn.txt smn_FI.txt\\r
+ sn.txt sn_ZW.txt so.txt so_DJ.txt so_ET.txt\\r
+ so_KE.txt so_SO.txt sq.txt sq_AL.txt sq_MK.txt\\r
+ sq_XK.txt sr.txt sr_Cyrl.txt sr_Cyrl_BA.txt sr_Cyrl_ME.txt\\r
+ sr_Cyrl_RS.txt sr_Cyrl_XK.txt sr_Latn.txt sr_Latn_BA.txt sr_Latn_ME.txt\\r
+ sr_Latn_RS.txt sr_Latn_XK.txt sv.txt sv_AX.txt sv_FI.txt\\r
+ sv_SE.txt sw.txt sw_CD.txt sw_KE.txt sw_TZ.txt\\r
+ sw_UG.txt ta.txt ta_IN.txt ta_LK.txt ta_MY.txt\\r
+ ta_SG.txt te.txt te_IN.txt teo.txt teo_KE.txt\\r
+ teo_UG.txt tg.txt tg_TJ.txt th.txt th_TH.txt\\r
+ ti.txt ti_ER.txt ti_ET.txt tk.txt tk_TM.txt\\r
+ to.txt to_TO.txt tr.txt tr_CY.txt tr_TR.txt\\r
+ tt.txt tt_RU.txt twq.txt twq_NE.txt tzm.txt\\r
+ tzm_MA.txt ug.txt ug_CN.txt uk.txt uk_UA.txt\\r
+ ur.txt ur_IN.txt ur_PK.txt uz.txt uz_Arab.txt\\r
+ uz_Arab_AF.txt uz_Cyrl.txt uz_Cyrl_UZ.txt uz_Latn.txt uz_Latn_UZ.txt\\r
+ vai.txt vai_Latn.txt vai_Latn_LR.txt vai_Vaii.txt vai_Vaii_LR.txt\\r
+ vi.txt vi_VN.txt vun.txt vun_TZ.txt wae.txt\\r
+ wae_CH.txt wo.txt wo_SN.txt xh.txt xh_ZA.txt\\r
  xog.txt xog_UG.txt yav.txt yav_CM.txt yi.txt\\r
  yi_001.txt yo.txt yo_BJ.txt yo_NG.txt yue.txt\\r
  yue_Hans.txt yue_Hans_CN.txt yue_Hant.txt yue_Hant_HK.txt zgh.txt\\r
index 6dd3a7c220bb4abd91a9836b7dcb71a58828dfd5..65bf7f1df3c58878a89fd9ceca1b62864bf3f55e 100644 (file)
@@ -8,7 +8,7 @@ rm{
     NumberElements{\r
         latn{\r
             miscPatterns{\r
-                atLeast{"⩾{0}"}\r
+                atLeast{"â\89¥{0}"}\r
                 range{"{0}–{1}"}\r
             }\r
             patterns{\r
@@ -35,7 +35,7 @@ rm{
         }\r
         minimumGroupingDigits{"1"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.94"}\r
     calendar{\r
         generic{\r
             DateTimePatterns{\r
index 6bc997ca2b410ff3f267d99b1b841268852e93f9..89f1e35c6637cbe674f1c0e70f07d28b2b120bcf 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 ro{\r
-    AuxExemplarCharacters{"[á à å ä ç é è ê ë ñ ö q ş ţ ü w y]"}\r
+    AuxExemplarCharacters{"[á à å ä ç é è ê ë ñ ö q ş ţ ü]"}\r
     Ellipsis{\r
         final{"{0}…"}\r
         initial{"…{0}"}\r
@@ -10,7 +10,7 @@ ro{
         word-initial{"…{0}"}\r
         word-medial{"{0} … {1}"}\r
     }\r
-    ExemplarCharacters{"[a ă â b c d e f g h i î j k l m n o p r s ș t ț u v x z]"}\r
+    ExemplarCharacters{"[a ă â b c d e f g h i î j k l m n o p r s ș t ț u v w x y z]"}\r
     ExemplarCharactersIndex{"[A Ă Â B C D E F G H I Î J K L M N O P Q R S Ș T Ț U V W X Y Z]"}\r
     ExemplarCharactersNumbers{"[\\- , . % ‰ + 0 1 2 3 4 5 6 7 8 9]"}\r
     ExemplarCharactersPunctuation{"[\\- ‐ – — , ; \\: ! ? . … ' ‘ \u0022 “ ” „ « » ( ) \\[ \\] @ * /]"}\r
@@ -19,7 +19,9 @@ ro{
         default{"latn"}\r
         latn{\r
             miscPatterns{\r
-                atLeast{"⩾{0}"}\r
+                approximately{"~{0}"}\r
+                atLeast{"≥{0}"}\r
+                atMost{"≤{0}"}\r
                 range{"{0} - {1}"}\r
             }\r
             patterns{\r
@@ -248,9 +250,52 @@ ro{
         minimumGroupingDigits{"1"}\r
         native{"latn"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.94"}\r
     calendar{\r
         buddhist{\r
+            DateTimePatterns{\r
+                "HH:mm:ss zzzz",\r
+                "HH:mm:ss z",\r
+                "HH:mm:ss",\r
+                "HH:mm",\r
+                "EEEE, d MMMM y G",\r
+                "d MMMM y G",\r
+                "dd.MM.y G",\r
+                "dd.MM.y GGGGG",\r
+                "{1}, {0}",\r
+                "{1} 'la' {0}",\r
+                "{1} 'la' {0}",\r
+                "{1}, {0}",\r
+                "{1}, {0}",\r
+            }\r
+            availableFormats{\r
+                E{"ccc"}\r
+                Ed{"E d"}\r
+                Gy{"y G"}\r
+                GyMMM{"MMM y G"}\r
+                GyMMMEd{"E, d MMM y G"}\r
+                GyMMMd{"d MMM y G"}\r
+                M{"L"}\r
+                MEd{"E, dd.MM"}\r
+                MMM{"LLL"}\r
+                MMMEd{"E, d MMM"}\r
+                MMMMEd{"E, d MMMM"}\r
+                MMMMd{"d MMMM"}\r
+                MMMd{"d MMM"}\r
+                Md{"dd.MM"}\r
+                d{"d"}\r
+                y{"y"}\r
+                yyyy{"y G"}\r
+                yyyyM{"MM.y G"}\r
+                yyyyMEd{"E, dd.MM.y G"}\r
+                yyyyMMM{"MMM y G"}\r
+                yyyyMMMEd{"E, d MMM y G"}\r
+                yyyyMMMM{"MMMM y G"}\r
+                yyyyMMMd{"d MMM y G"}\r
+                yyyyMd{"dd.MM.y G"}\r
+                yyyyQQQ{"QQQ y G"}\r
+                yyyyQQQQ{"QQQQ y G"}\r
+            }\r
             eras{\r
                 abbreviated{\r
                     "e.b.",\r
@@ -262,6 +307,101 @@ ro{
                     "era budistă",\r
                 }\r
             }\r
+            intervalFormats{\r
+                H{\r
+                    H{"HH–HH"}\r
+                }\r
+                Hm{\r
+                    H{"HH:mm–HH:mm"}\r
+                    m{"HH:mm–HH:mm"}\r
+                }\r
+                Hmv{\r
+                    H{"HH:mm–HH:mm v"}\r
+                    m{"HH:mm–HH:mm v"}\r
+                }\r
+                Hv{\r
+                    H{"HH–HH v"}\r
+                }\r
+                M{\r
+                    M{"M–M"}\r
+                }\r
+                MEd{\r
+                    M{"E, dd.MM – E, dd.MM"}\r
+                    d{"E, dd.MM – E, dd.MM"}\r
+                }\r
+                MMM{\r
+                    M{"MMM–MMM"}\r
+                }\r
+                MMMEd{\r
+                    M{"E, d MMM – E, d MMM"}\r
+                    d{"E, d MMM – E, d MMM"}\r
+                }\r
+                MMMd{\r
+                    M{"d MMM – d MMM"}\r
+                    d{"d–d MMM"}\r
+                }\r
+                Md{\r
+                    M{"dd.MM – dd.MM"}\r
+                    d{"dd.MM – dd.MM"}\r
+                }\r
+                d{\r
+                    d{"d–d"}\r
+                }\r
+                fallback{"{0} – {1}"}\r
+                h{\r
+                    a{"h a – h a"}\r
+                    h{"h–h a"}\r
+                }\r
+                hm{\r
+                    a{"h:mm a – h:mm a"}\r
+                    h{"h:mm–h:mm a"}\r
+                    m{"h:mm–h:mm a"}\r
+                }\r
+                hmv{\r
+                    a{"h:mm a – h:mm a v"}\r
+                    h{"h:mm–h:mm a v"}\r
+                    m{"h:mm–h:mm a v"}\r
+                }\r
+                hv{\r
+                    a{"h a – h a v"}\r
+                    h{"h–h a v"}\r
+                }\r
+                y{\r
+                    y{"y–y G"}\r
+                }\r
+                yM{\r
+                    M{"MM.y – MM.y G"}\r
+                    y{"MM.y – MM.y G"}\r
+                }\r
+                yMEd{\r
+                    M{"E, dd.MM.y – E, dd.MM.y G"}\r
+                    d{"E, dd.MM.y – E, dd.MM.y G"}\r
+                    y{"E, dd.MM.y – E, dd.MM.y G"}\r
+                }\r
+                yMMM{\r
+                    M{"MMM–MMM y G"}\r
+                    y{"MMM y – MMM y G"}\r
+                }\r
+                yMMMEd{\r
+                    M{"E, d MMM – E, d MMM y G"}\r
+                    d{"E, d MMM – E, d MMM y G"}\r
+                    y{"E, d MMM y – E, d MMM y G"}\r
+                }\r
+                yMMMM{\r
+                    M{"MMMM–MMMM y G"}\r
+                    y{"MMMM y – MMMM y G"}\r
+                }\r
+                yMMMd{\r
+                    M{"d MMM – d MMM y G"}\r
+                    d{"d–d MMM y G"}\r
+                    y{"d MMM y – d MMM y G"}\r
+                }\r
+                yMd{\r
+                    M{"dd.MM.y – dd.MM.y G"}\r
+                    d{"dd.MM.y – dd.MM.y G"}\r
+                    y{"dd.MM.y – dd.MM.y G"}\r
+                }\r
+            }\r
         }\r
         chinese{\r
             monthNames{\r
@@ -1755,6 +1895,13 @@ ro{
         }\r
         day-narrow{\r
             dn{"zi"}\r
+            relative{\r
+                "-1"{"ieri"}\r
+                "-2"{"alaltăieri"}\r
+                "0"{"azi"}\r
+                "1"{"mâine"}\r
+                "2"{"poimâine"}\r
+            }\r
             relativeTime{\r
                 future{\r
                     few{"+{0} zile"}\r
@@ -1770,6 +1917,13 @@ ro{
         }\r
         day-short{\r
             dn{"zi"}\r
+            relative{\r
+                "-1"{"ieri"}\r
+                "-2"{"alaltăieri"}\r
+                "0"{"azi"}\r
+                "1"{"mâine"}\r
+                "2"{"poimâine"}\r
+            }\r
             relativeTime{\r
                 future{\r
                     few{"peste {0} zile"}\r
@@ -1887,6 +2041,9 @@ ro{
         }\r
         hour-narrow{\r
             dn{"h"}\r
+            relative{\r
+                "0"{"ora aceasta"}\r
+            }\r
             relativeTime{\r
                 future{\r
                     few{"+{0} h"}\r
@@ -1902,6 +2059,9 @@ ro{
         }\r
         hour-short{\r
             dn{"h"}\r
+            relative{\r
+                "0"{"ora aceasta"}\r
+            }\r
             relativeTime{\r
                 future{\r
                     few{"peste {0} h"}\r
@@ -1935,6 +2095,9 @@ ro{
         }\r
         minute-narrow{\r
             dn{"m"}\r
+            relative{\r
+                "0"{"minutul acesta"}\r
+            }\r
             relativeTime{\r
                 future{\r
                     few{"+{0} m"}\r
@@ -1950,6 +2113,9 @@ ro{
         }\r
         minute-short{\r
             dn{"min."}\r
+            relative{\r
+                "0"{"minutul acesta"}\r
+            }\r
             relativeTime{\r
                 future{\r
                     few{"peste {0} min."}\r
@@ -2042,6 +2208,11 @@ ro{
         }\r
         month-narrow{\r
             dn{"lună"}\r
+            relative{\r
+                "-1"{"luna trecută"}\r
+                "0"{"luna aceasta"}\r
+                "1"{"luna viitoare"}\r
+            }\r
             relativeTime{\r
                 future{\r
                     few{"+{0} luni"}\r
@@ -2057,6 +2228,11 @@ ro{
         }\r
         month-short{\r
             dn{"lună"}\r
+            relative{\r
+                "-1"{"luna trecută"}\r
+                "0"{"luna aceasta"}\r
+                "1"{"luna viitoare"}\r
+            }\r
             relativeTime{\r
                 future{\r
                     few{"peste {0} luni"}\r
@@ -2145,7 +2321,7 @@ ro{
                 past{\r
                     few{"sâmbătă, acum {0} săptămâni"}\r
                     one{"sâmbătă, acum {0} săptămână"}\r
-                    other{"sâmbătă, acum de {0} săptămâni"}\r
+                    other{"sâmbătă, acum {0} de săptămâni"}\r
                 }\r
             }\r
         }\r
@@ -2207,6 +2383,9 @@ ro{
         }\r
         second-narrow{\r
             dn{"s"}\r
+            relative{\r
+                "0"{"acum"}\r
+            }\r
             relativeTime{\r
                 future{\r
                     few{"+{0} s"}\r
@@ -2222,6 +2401,9 @@ ro{
         }\r
         second-short{\r
             dn{"sec."}\r
+            relative{\r
+                "0"{"acum"}\r
+            }\r
             relativeTime{\r
                 future{\r
                     few{"peste {0} sec."}\r
@@ -2486,6 +2668,11 @@ ro{
         }\r
         week-narrow{\r
             dn{"săpt."}\r
+            relative{\r
+                "-1"{"săpt. trecută"}\r
+                "0"{"săptămâna aceasta"}\r
+                "1"{"săpt. viitoare"}\r
+            }\r
             relativePeriod{"săpt. cu {0}"}\r
             relativeTime{\r
                 future{\r
@@ -2502,6 +2689,11 @@ ro{
         }\r
         week-short{\r
             dn{"săpt."}\r
+            relative{\r
+                "-1"{"săpt. trecută"}\r
+                "0"{"săpt. aceasta"}\r
+                "1"{"săpt. viitoare"}\r
+            }\r
             relativePeriod{"săpt. cu {0}"}\r
             relativeTime{\r
                 future{\r
@@ -2565,6 +2757,11 @@ ro{
         }\r
         year-narrow{\r
             dn{"an"}\r
+            relative{\r
+                "-1"{"anul trecut"}\r
+                "0"{"anul acesta"}\r
+                "1"{"anul viitor"}\r
+            }\r
             relativeTime{\r
                 future{\r
                     few{"+{0} ani"}\r
@@ -2580,6 +2777,11 @@ ro{
         }\r
         year-short{\r
             dn{"an"}\r
+            relative{\r
+                "-1"{"anul trecut"}\r
+                "0"{"anul acesta"}\r
+                "1"{"anul viitor"}\r
+            }\r
             relativeTime{\r
                 future{\r
                     few{"peste {0} ani"}\r
@@ -2646,4 +2848,36 @@ ro{
         US{"american"}\r
         metric{"metric"}\r
     }\r
+    parse{\r
+        date{\r
+            lenient{\r
+                "[\\--/]",\r
+                "[\\:∶]",\r
+            }\r
+        }\r
+        general{\r
+            lenient{\r
+                "[.․。︒﹒.。]",\r
+                "['ʼ՚᾽᾿’']",\r
+                "[%٪﹪%]",\r
+                "[؉‰]",\r
+                "[\$﹩$$]",\r
+                "[£₤]",\r
+                "[¥¥]",\r
+                "[₩₩]",\r
+                "[₨₹{Rp}{Rs}]",\r
+            }\r
+        }\r
+        number{\r
+            lenient{\r
+                "[\\-‒⁻₋−➖﹣-]",\r
+                "[,،٫、︐︑﹐﹑,、]",\r
+                "[+⁺₊➕﬩﹢+]",\r
+            }\r
+            stricter{\r
+                "[,٫︐﹐,]",\r
+                "[.․﹒.。]",\r
+            }\r
+        }\r
+    }\r
 }\r
index 1626e000e33d879a3217fb4aae1c784148d39893..8ecc9b72a30c8b2e57e5d8da0e3eb15e02f0ca17 100644 (file)
@@ -58,7 +58,9 @@ root{
         default{"latn"}\r
         latn{\r
             miscPatterns{\r
-                atLeast{"⩾{0}"}\r
+                approximately{"~{0}"}\r
+                atLeast{"≥{0}"}\r
+                atMost{"≤{0}"}\r
                 range{"{0}–{1}"}\r
             }\r
             patterns{\r
@@ -172,7 +174,7 @@ root{
         minimumGroupingDigits{"1"}\r
         native{"latn"}\r
     }\r
-    Version{"2.1.41.58"}\r
+    Version{"2.1.44.91"}\r
     calendar{\r
         buddhist{\r
             AmPmMarkers:alias{"/LOCALE/calendar/gregorian/AmPmMarkers"}\r
@@ -807,6 +809,44 @@ root{
                 wide:alias{"/LOCALE/calendar/generic/eras/abbreviated"}\r
             }\r
             intervalFormats{\r
+                Gy{\r
+                    G{"G y – G y"}\r
+                    y{"G y–y"}\r
+                }\r
+                GyM{\r
+                    G{"GGGGG y-MM – GGGGG y-MM"}\r
+                    M{"GGGGG y-MM – y-MM"}\r
+                    y{"GGGGG y-MM – y-MM"}\r
+                }\r
+                GyMEd{\r
+                    G{"GGGGG y-MM-dd, E – GGGGG y-MM-dd, E"}\r
+                    M{"GGGGG y-MM-dd, E – y-MM-dd, E"}\r
+                    d{"GGGGG y-MM-dd, E – y-MM-dd, E"}\r
+                    y{"GGGGG y-MM-dd, E – y-MM-dd, E"}\r
+                }\r
+                GyMMM{\r
+                    G{"G y MMM – G y MMM"}\r
+                    M{"G y MMM–MMM"}\r
+                    y{"G y MMM – y MMM"}\r
+                }\r
+                GyMMMEd{\r
+                    G{"G y MMM d, E – G y MMM d, E"}\r
+                    M{"G y MMM d, E – MMM d, E"}\r
+                    d{"G y MMM d, E – MMM d, E"}\r
+                    y{"G y MMM d, E – y MMM d, E"}\r
+                }\r
+                GyMMMd{\r
+                    G{"G y MMM d – G y MMM d"}\r
+                    M{"G y MMM d – MMM d"}\r
+                    d{"G y MMM d–d"}\r
+                    y{"G y MMM d – y MMM d"}\r
+                }\r
+                GyMd{\r
+                    G{"GGGGG y-MM-dd – GGGGG y-MM-dd"}\r
+                    M{"GGGGG y-MM-dd – y-MM-dd"}\r
+                    d{"GGGGG y-MM-dd – y-MM-dd"}\r
+                    y{"GGGGG y-MM-dd – y-MM-dd"}\r
+                }\r
                 H{\r
                     H{"HH–HH"}\r
                 }\r
@@ -1067,6 +1107,44 @@ root{
                 wide:alias{"/LOCALE/calendar/gregorian/eras/abbreviated"}\r
             }\r
             intervalFormats{\r
+                Gy{\r
+                    G{"G y – G y"}\r
+                    y{"G y–y"}\r
+                }\r
+                GyM{\r
+                    G{"GGGGG y-MM – GGGGG y-MM"}\r
+                    M{"GGGGG y-MM – y-MM"}\r
+                    y{"GGGGG y-MM – y-MM"}\r
+                }\r
+                GyMEd{\r
+                    G{"GGGGG y-MM-dd, E – GGGGG y-MM-dd, E"}\r
+                    M{"GGGGG y-MM-dd, E – y-MM-dd, E"}\r
+                    d{"GGGGG y-MM-dd, E – y-MM-dd, E"}\r
+                    y{"GGGGG y-MM-dd, E – y-MM-dd, E"}\r
+                }\r
+                GyMMM{\r
+                    G{"G y MMM – G y MMM"}\r
+                    M{"G y MMM–MMM"}\r
+                    y{"G y MMM – y MMM"}\r
+                }\r
+                GyMMMEd{\r
+                    G{"G y MMM d, E – G y MMM d, E"}\r
+                    M{"G y MMM d, E – MMM d, E"}\r
+                    d{"G y MMM d, E – MMM d, E"}\r
+                    y{"G y MMM d, E – y MMM d, E"}\r
+                }\r
+                GyMMMd{\r
+                    G{"G y MMM d – G y MMM d"}\r
+                    M{"G y MMM d – MMM d"}\r
+                    d{"G y MMM d–d"}\r
+                    y{"G y MMM d – y MMM d"}\r
+                }\r
+                GyMd{\r
+                    G{"GGGGG y-MM-dd – GGGGG y-MM-dd"}\r
+                    M{"GGGGG y-MM-dd – y-MM-dd"}\r
+                    d{"GGGGG y-MM-dd – y-MM-dd"}\r
+                    y{"GGGGG y-MM-dd – y-MM-dd"}\r
+                }\r
                 H{\r
                     H{"HH–HH"}\r
                 }\r
@@ -1713,6 +1791,7 @@ root{
                     "Taishō",\r
                     "Shōwa",\r
                     "Heisei",\r
+                    "Qqqq",\r
                 }\r
                 narrow{\r
                     "Taika (645–650)",\r
@@ -1951,6 +2030,7 @@ root{
                     "T",\r
                     "S",\r
                     "H",\r
+                    "Q",\r
                 }\r
                 wide:alias{"/LOCALE/calendar/japanese/eras/abbreviated"}\r
             }\r
@@ -2437,12 +2517,30 @@ root{
             middle{"{0}, {1}"}\r
             start{"{0}, {1}"}\r
         }\r
+        or-narrow{\r
+            2:alias{"/LOCALE/listPattern/or-short/2"}\r
+            end:alias{"/LOCALE/listPattern/or-short/end"}\r
+            middle:alias{"/LOCALE/listPattern/or-short/middle"}\r
+            start:alias{"/LOCALE/listPattern/or-short/start"}\r
+        }\r
+        or-short{\r
+            2:alias{"/LOCALE/listPattern/or/2"}\r
+            end:alias{"/LOCALE/listPattern/or/end"}\r
+            middle:alias{"/LOCALE/listPattern/or/middle"}\r
+            start:alias{"/LOCALE/listPattern/or/start"}\r
+        }\r
         standard{\r
             2{"{0}, {1}"}\r
             end{"{0}, {1}"}\r
             middle{"{0}, {1}"}\r
             start{"{0}, {1}"}\r
         }\r
+        standard-narrow{\r
+            2:alias{"/LOCALE/listPattern/standard-short/2"}\r
+            end:alias{"/LOCALE/listPattern/standard-short/end"}\r
+            middle:alias{"/LOCALE/listPattern/standard-short/middle"}\r
+            start:alias{"/LOCALE/listPattern/standard-short/start"}\r
+        }\r
         standard-short{\r
             2:alias{"/LOCALE/listPattern/standard/2"}\r
             end:alias{"/LOCALE/listPattern/standard/end"}\r
@@ -2477,20 +2575,25 @@ root{
         date{\r
             lenient{\r
                 "[\\--/]",\r
-                "[\\:∶]",\r
+                "[\\:∶︓﹕:]",\r
             }\r
         }\r
         general{\r
             lenient{\r
                 "[.․。︒﹒.。]",\r
-                "[\$﹩$$]",\r
-                "[£₤]",\r
+                "['ʼ՚᾽᾿’']",\r
+                "[%٪﹪%]",\r
+                "[؉‰]",\r
+                "[\$﹩$]",\r
+                "[£₤£]",\r
+                "[¥¥]",\r
+                "[₩₩]",\r
                 "[₨₹{Rp}{Rs}]",\r
             }\r
         }\r
         number{\r
             lenient{\r
-                "[\\-â\80\92⁻₋−➖﹣-]",\r
+                "[\\-â\80\90â\80\92â\80\93⁻₋−➖﹣-]",\r
                 "[,،٫、︐︑﹐﹑,、]",\r
                 "[+⁺₊➕﬩﹢+]",\r
             }\r
index 9edef62d2a0b308bded51b5bac8bff1c0a8c5a1d..d325d2d0b6427803446df7adabd42fa2cd309141 100644 (file)
@@ -25,7 +25,9 @@ ru{
         default{"latn"}\r
         latn{\r
             miscPatterns{\r
-                atLeast{"⩾{0}"}\r
+                approximately{"≈{0}"}\r
+                atLeast{"≥{0}"}\r
+                atMost{"≤{0}"}\r
                 range{"{0}–{1}"}\r
             }\r
             patterns{\r
@@ -290,7 +292,7 @@ ru{
         minimumGroupingDigits{"1"}\r
         native{"latn"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.45.15"}\r
     calendar{\r
         buddhist{\r
             eras{\r
@@ -307,10 +309,10 @@ ru{
         }\r
         chinese{\r
             DateTimePatterns{\r
-                "H:mm:ss zzzz",\r
-                "H:mm:ss z",\r
-                "H:mm:ss",\r
-                "H:mm",\r
+                "HH:mm:ss zzzz",\r
+                "HH:mm:ss z",\r
+                "HH:mm:ss",\r
+                "HH:mm",\r
                 "EEEE, d MMMM U",\r
                 "d MMMM U",\r
                 "dd.MM U",\r
@@ -643,10 +645,10 @@ ru{
         }\r
         generic{\r
             DateTimePatterns{\r
-                "H:mm:ss zzzz",\r
-                "H:mm:ss z",\r
-                "H:mm:ss",\r
-                "H:mm",\r
+                "HH:mm:ss zzzz",\r
+                "HH:mm:ss z",\r
+                "HH:mm:ss",\r
+                "HH:mm",\r
                 "EEEE, d MMMM y 'г'. G",\r
                 "d MMMM y 'г'. G",\r
                 "d MMM y 'г'. G",\r
@@ -813,10 +815,10 @@ ru{
                 "PM",\r
             }\r
             DateTimePatterns{\r
-                "H:mm:ss zzzz",\r
-                "H:mm:ss z",\r
-                "H:mm:ss",\r
-                "H:mm",\r
+                "HH:mm:ss zzzz",\r
+                "HH:mm:ss z",\r
+                "HH:mm:ss",\r
+                "HH:mm",\r
                 "EEEE, d MMMM y 'г'.",\r
                 "d MMMM y 'г'.",\r
                 "d MMM y 'г'.",\r
@@ -846,11 +848,11 @@ ru{
                 GyMMM{"LLL y G"}\r
                 GyMMMEd{"E, d MMM y 'г'. G"}\r
                 GyMMMd{"d MMM y 'г'. G"}\r
-                H{"H"}\r
-                Hm{"H:mm"}\r
-                Hms{"H:mm:ss"}\r
-                Hmsv{"H:mm:ss v"}\r
-                Hmv{"H:mm v"}\r
+                H{"HH"}\r
+                Hm{"HH:mm"}\r
+                Hms{"HH:mm:ss"}\r
+                Hmsv{"HH:mm:ss v"}\r
+                Hmv{"HH:mm v"}\r
                 M{"L"}\r
                 MEd{"E, dd.MM"}\r
                 MMM{"LLL"}\r
@@ -1033,6 +1035,10 @@ ru{
                     "до н. э.",\r
                     "н. э.",\r
                 }\r
+                abbreviated%variant{\r
+                    "BCE",\r
+                    "н. э.",\r
+                }\r
                 narrow{\r
                     "до н.э.",\r
                     "н.э.",\r
@@ -1048,18 +1054,18 @@ ru{
             }\r
             intervalFormats{\r
                 H{\r
-                    H{"HH"}\r
+                    H{"HH–HH"}\r
                 }\r
                 Hm{\r
-                    H{"H:mm–H:mm"}\r
-                    m{"H:mm–H:mm"}\r
+                    H{"HH:mm–HH:mm"}\r
+                    m{"HH:mm–HH:mm"}\r
                 }\r
                 Hmv{\r
-                    H{"H:mm–H:mm v"}\r
-                    m{"H:mm–H:mm v"}\r
+                    H{"HH:mm–HH:mm v"}\r
+                    m{"HH:mm–HH:mm v"}\r
                 }\r
                 Hv{\r
-                    H{"HH v"}\r
+                    H{"HH–HH v"}\r
                 }\r
                 M{\r
                     M{"M–M"}\r
@@ -1837,6 +1843,7 @@ ru{
                     "Эпоха Тайсьо",\r
                     "Сьова",\r
                     "Эпоха Хэйсэй",\r
+                    "Qqqq",\r
                 }\r
             }\r
         }\r
@@ -1984,7 +1991,7 @@ ru{
         emoji{"эмодзи"}\r
         european_scripts{"письменности Европы"}\r
         female{"женщины"}\r
-        flag{"флаги"}\r
+        flag{"флаг"}\r
         flags{"флаги"}\r
         food_drink{"еда и напитки"}\r
         format{"форматирование"}\r
@@ -3161,8 +3168,13 @@ ru{
         general{\r
             lenient{\r
                 "[.․。︒﹒.。]",\r
+                "['ʼ՚᾽᾿’']",\r
+                "[%٪﹪%]",\r
+                "[؉‰]",\r
                 "[\$﹩$$]",\r
                 "[£₤]",\r
+                "[¥¥]",\r
+                "[₩₩]",\r
                 "[₨₹{Rp}{Rs}]",\r
             }\r
         }\r
index 64d98bfb3a0c6cf24c47fdc3ded736f781e54459..f5e8fcfde76ad03135c589e468cd0a6c2ae7ca00 100644 (file)
@@ -4,65 +4,14 @@ ru_UA{
     NumberElements{\r
         minimumGroupingDigits{"2"}\r
     }\r
-    Version{"2.1.38.39"}\r
+    Version{"2.1.43.65"}\r
     calendar{\r
-        generic{\r
-            DateTimePatterns{\r
-                "HH:mm:ss zzzz",\r
-                "HH:mm:ss z",\r
-                "HH:mm:ss",\r
-                "HH:mm",\r
-                "EEEE, d MMMM y 'г'. G",\r
-                "d MMMM y 'г'. G",\r
-                "d MMM y 'г'. G",\r
-                "dd.MM.y G",\r
-                "{1}, {0}",\r
-                "{1}, {0}",\r
-                "{1}, {0}",\r
-                "{1}, {0}",\r
-                "{1}, {0}",\r
-            }\r
-        }\r
         gregorian{\r
-            DateTimePatterns{\r
-                "HH:mm:ss zzzz",\r
-                "HH:mm:ss z",\r
-                "HH:mm:ss",\r
-                "HH:mm",\r
-                "EEEE, d MMMM y 'г'.",\r
-                "d MMMM y 'г'.",\r
-                "d MMM y 'г'.",\r
-                "dd.MM.y",\r
-                "{1}, {0}",\r
-                "{1}, {0}",\r
-                "{1}, {0}",\r
-                "{1}, {0}",\r
-                "{1}, {0}",\r
-            }\r
             availableFormats{\r
                 GyMMM{"LLL y 'г'. G"}\r
-                H{"HH"}\r
-                Hm{"HH:mm"}\r
-                Hms{"HH:mm:ss"}\r
-                Hmsv{"HH:mm:ss v"}\r
-                Hmv{"HH:mm v"}\r
                 yMEd{"ccc, d.MM.y"}\r
             }\r
             intervalFormats{\r
-                H{\r
-                    H{"HH–HH"}\r
-                }\r
-                Hm{\r
-                    H{"HH:mm–HH:mm"}\r
-                    m{"HH:mm–HH:mm"}\r
-                }\r
-                Hmv{\r
-                    H{"HH:mm–HH:mm v"}\r
-                    m{"HH:mm–HH:mm v"}\r
-                }\r
-                Hv{\r
-                    H{"HH–HH v"}\r
-                }\r
                 yMMM{\r
                     y{"LLL y – LLL y"}\r
                 }\r
index e6f9e1d224a25762be56b1e828c2f345e0f575ee..39a04393835c7a9b1c42421f6f99bdb0b906331b 100644 (file)
@@ -7,7 +7,7 @@ rw{
     NumberElements{\r
         latn{\r
             miscPatterns{\r
-                atLeast{"⩾{0}"}\r
+                atLeast{"â\89¥{0}"}\r
                 range{"{0}–{1}"}\r
             }\r
             patterns{\r
@@ -32,7 +32,7 @@ rw{
         }\r
         minimumGroupingDigits{"1"}\r
     }\r
-    Version{"2.1.38.72"}\r
+    Version{"2.1.44.88"}\r
     calendar{\r
         generic{\r
             DateTimePatterns{\r
@@ -126,7 +126,7 @@ rw{
                 yQQQ{"y QQQ"}\r
                 yQQQQ{"y QQQQ"}\r
                 yw{\r
-                    other{"'week' w 'of' y"}\r
+                    other{"'week' w 'of' Y"}\r
                 }\r
             }\r
             dayNames{\r
index 5282aa3a4d91bdd73999636b68d4f916ae5e77a4..994334b7dc0622751e66ab00538365a4b86d8fd7 100644 (file)
@@ -19,7 +19,7 @@ sah{
         default{"latn"}\r
         latn{\r
             miscPatterns{\r
-                atLeast{"⩾{0}"}\r
+                atLeast{"â\89¥{0}"}\r
                 range{"{0}–{1}"}\r
             }\r
             patterns{\r
@@ -164,7 +164,7 @@ sah{
         minimumGroupingDigits{"1"}\r
         native{"latn"}\r
     }\r
-    Version{"2.1.38.69"}\r
+    Version{"2.1.43.94"}\r
     calendar{\r
         generic{\r
             DateTimePatterns{\r
diff --git a/source/data/locales/sd.txt b/source/data/locales/sd.txt
new file mode 100644 (file)
index 0000000..a669300
--- /dev/null
@@ -0,0 +1,1714 @@
+// © 2016 and later: Unicode, Inc. and others.\r
+// License & terms of use: http://www.unicode.org/copyright.html#License\r
+sd{\r
+    AuxExemplarCharacters{"[ئ]"}\r
+    Ellipsis{\r
+        final{"{0}…"}\r
+        initial{"…{0}"}\r
+        medial{"{0}…{1}"}\r
+        word-final{"{0} …"}\r
+        word-initial{"… {0}"}\r
+        word-medial{"{0} … {1}"}\r
+    }\r
+    ExemplarCharacters{\r
+        "[آ ا ب ٻ پ ڀ ت ث ٺ ٽ ٿ ج {جھ} ڃ ڄ چ ڇ ح خ د ذ ڊ ڌ ڍ ڏ ر ز ڙ س ش ص ض ط ظ ع غ "\r
+        "ف ڦ ق ک ڪ گ {گھ} ڱ ڳ ل م ن ڻ ه ھ و ي]"\r
+    }\r
+    ExemplarCharactersIndex{\r
+        "[ا ب ٻ پ ڀ ت ث ٺ ٽ ٿ ج {جھ} ڃ ڄ چ ڇ ح خ د ذ ڊ ڌ ڍ ڏ ر ز ڙ س ش ص ض ط ظ ع غ ف "\r
+        "ڦ ق ک ڪ گ {گھ} ڱ ڳ ل م ن ڻ ه ھ و ي]"\r
+    }\r
+    ExemplarCharactersNumbers{"[\\- , . % ‰ + 0 1 2 3 4 5 6 7 8 9]"}\r
+    ExemplarCharactersPunctuation{"[⹁ ⁏ \\: ! ۔ ‘ ( ) \\[ \\] \\{ \\} /]"}\r
+    MoreInformation{"?"}\r
+    NumberElements{\r
+        default{"arab"}\r
+        latn{\r
+            miscPatterns{\r
+                approximately{"~{0}"}\r
+                atLeast{"≥{0}"}\r
+                atMost{"≤{0}"}\r
+                range{"{0}–{1}"}\r
+            }\r
+            patterns{\r
+                accountingFormat{"¤ #,##0.00"}\r
+                currencyFormat{"¤ #,##0.00"}\r
+                decimalFormat{"#,##0.###"}\r
+                percentFormat{"#,##0%"}\r
+                scientificFormat{"#E0"}\r
+            }\r
+            patternsLong{\r
+                decimalFormat{\r
+                    1000{\r
+                        one{"0 ھزار"}\r
+                        other{"0 ھزار"}\r
+                    }\r
+                    10000{\r
+                        one{"00 ھزار"}\r
+                        other{"00K"}\r
+                    }\r
+                    100000{\r
+                        one{"000K"}\r
+                        other{"000K"}\r
+                    }\r
+                    1000000{\r
+                        one{"0M"}\r
+                        other{"0M"}\r
+                    }\r
+                    10000000{\r
+                        one{"00M"}\r
+                        other{"00M"}\r
+                    }\r
+                    100000000{\r
+                        one{"000M"}\r
+                        other{"000M"}\r
+                    }\r
+                    1000000000{\r
+                        one{"0G"}\r
+                        other{"0G"}\r
+                    }\r
+                    10000000000{\r
+                        one{"00G"}\r
+                        other{"00G"}\r
+                    }\r
+                    100000000000{\r
+                        one{"000G"}\r
+                        other{"000G"}\r
+                    }\r
+                    1000000000000{\r
+                        one{"0T"}\r
+                        other{"0T"}\r
+                    }\r
+                    10000000000000{\r
+                        one{"00T"}\r
+                        other{"00T"}\r
+                    }\r
+                    100000000000000{\r
+                        one{"000T"}\r
+                        other{"000T"}\r
+                    }\r
+                }\r
+            }\r
+            patternsShort{\r
+                currencyFormat{\r
+                    1000{\r
+                        one{"¤ 0K"}\r
+                        other{"¤ 0K"}\r
+                    }\r
+                    10000{\r
+                        one{"¤ 00K"}\r
+                        other{"¤ 00K"}\r
+                    }\r
+                    100000{\r
+                        one{"¤ 000K"}\r
+                        other{"¤ 000K"}\r
+                    }\r
+                    1000000{\r
+                        one{"¤ 0M"}\r
+                        other{"¤ 0M"}\r
+                    }\r
+                    10000000{\r
+                        one{"¤ 00M"}\r
+                        other{"¤ 00M"}\r
+                    }\r
+                    100000000{\r
+                        one{"¤ 000M"}\r
+                        other{"¤ 000M"}\r
+                    }\r
+                    1000000000{\r
+                        one{"¤ 0G"}\r
+                        other{"¤ 0G"}\r
+                    }\r
+                    10000000000{\r
+                        one{"¤ 00G"}\r
+                        other{"¤ 00G"}\r
+                    }\r
+                    100000000000{\r
+                        one{"¤ 000G"}\r
+                        other{"¤ 000G"}\r
+                    }\r
+                    1000000000000{\r
+                        one{"¤ 0T"}\r
+                        other{"¤ 0T"}\r
+                    }\r
+                    10000000000000{\r
+                        one{"¤ 00T"}\r
+                        other{"¤ 00T"}\r
+                    }\r
+                    100000000000000{\r
+                        one{"¤ 000T"}\r
+                        other{"¤ 000T"}\r
+                    }\r
+                }\r
+                decimalFormat{\r
+                    1000{\r
+                        one{"0K"}\r
+                        other{"0K"}\r
+                    }\r
+                    10000{\r
+                        one{"00K"}\r
+                        other{"00K"}\r
+                    }\r
+                    100000{\r
+                        one{"000K"}\r
+                        other{"000K"}\r
+                    }\r
+                    1000000{\r
+                        one{"0M"}\r
+                        other{"0M"}\r
+                    }\r
+                    10000000{\r
+                        one{"00M"}\r
+                        other{"00M"}\r
+                    }\r
+                    100000000{\r
+                        one{"000M"}\r
+                        other{"000M"}\r
+                    }\r
+                    1000000000{\r
+                        one{"0G"}\r
+                        other{"0G"}\r
+                    }\r
+                    10000000000{\r
+                        one{"00G"}\r
+                        other{"00G"}\r
+                    }\r
+                    100000000000{\r
+                        one{"000G"}\r
+                        other{"000G"}\r
+                    }\r
+                    1000000000000{\r
+                        one{"0T"}\r
+                        other{"0T"}\r
+                    }\r
+                    10000000000000{\r
+                        one{"00T"}\r
+                        other{"00T"}\r
+                    }\r
+                    100000000000000{\r
+                        one{"000T"}\r
+                        other{"000T"}\r
+                    }\r
+                }\r
+            }\r
+            symbols{\r
+                decimal{"."}\r
+                exponential{"E"}\r
+                group{","}\r
+                infinity{"∞"}\r
+                minusSign{"-"}\r
+                nan{"NaN"}\r
+                perMille{"‰"}\r
+                percentSign{"%"}\r
+                plusSign{"+"}\r
+                superscriptingExponent{"×"}\r
+            }\r
+        }\r
+        minimalPairs{\r
+            ordinal{\r
+                other{"کاٻي تي {0} نمبر گهر."}\r
+            }\r
+            plural{\r
+                one{"{0} ڪتاب"}\r
+                other{"{0} ڪتابون"}\r
+            }\r
+        }\r
+        minimumGroupingDigits{"1"}\r
+        native{"arab"}\r
+    }\r
+    Version{"2.1.43.94"}\r
+    calendar{\r
+        generic{\r
+            DateTimePatterns{\r
+                "h:mm:ss a zzzz",\r
+                "h:mm:ss a z",\r
+                "h:mm:ss a",\r
+                "h:mm a",\r
+                "G y MMMM d, EEEE",\r
+                "G y MMMM d",\r
+                "G y MMM d",\r
+                "GGGGG y-MM-dd",\r
+                "{1} {0}",\r
+                "{1} {0}",\r
+                "{1} {0}",\r
+                "{1} {0}",\r
+                "{1} {0}",\r
+            }\r
+            availableFormats{\r
+                Bh{"h B"}\r
+                Bhm{"h:mm B"}\r
+                Bhms{"h:mm:ss B"}\r
+                E{"ccc"}\r
+                EBhm{"E h:mm B"}\r
+                EBhms{"E h:mm:ss B"}\r
+                EHm{"E HH:mm"}\r
+                EHms{"E HH:mm:ss"}\r
+                Ed{"d, E"}\r
+                Ehm{"E h:mm a"}\r
+                Ehms{"E h:mm:ss a"}\r
+                Gy{"G y"}\r
+                GyMMM{"G y MMM"}\r
+                GyMMMEd{"G y MMM d, E"}\r
+                GyMMMd{"G y MMM d"}\r
+                H{"HH"}\r
+                Hm{"HH:mm"}\r
+                Hms{"HH:mm:ss"}\r
+                M{"L"}\r
+                MEd{"MM-dd, E"}\r
+                MMM{"LLL"}\r
+                MMMEd{"MMM d, E"}\r
+                MMMMd{"MMMM d"}\r
+                MMMd{"MMM d"}\r
+                Md{"MM-dd"}\r
+                d{"d"}\r
+                h{"h a"}\r
+                hm{"h:mm a"}\r
+                hms{"h:mm:ss a"}\r
+                ms{"mm:ss"}\r
+                y{"G y"}\r
+                yyyy{"G y"}\r
+                yyyyM{"GGGGG y-MM"}\r
+                yyyyMEd{"GGGGG y-MM-dd, E"}\r
+                yyyyMMM{"G y MMM"}\r
+                yyyyMMMEd{"G y MMM d, E"}\r
+                yyyyMMMM{"G y MMMM"}\r
+                yyyyMMMd{"G y MMM d"}\r
+                yyyyMd{"GGGGG y-MM-dd"}\r
+                yyyyQQQ{"G y QQQ"}\r
+                yyyyQQQQ{"G y QQQQ"}\r
+            }\r
+            intervalFormats{\r
+                M{\r
+                    M{"MM–MM"}\r
+                }\r
+                MEd{\r
+                    M{"MM-dd, E – MM-dd, E"}\r
+                    d{"MM-dd, E – MM-dd, E"}\r
+                }\r
+                MMM{\r
+                    M{"LLL–LLL"}\r
+                }\r
+                MMMEd{\r
+                    M{"MMM d, E – MMM d, E"}\r
+                    d{"MMM d, E – MMM d, E"}\r
+                }\r
+                MMMd{\r
+                    M{"MMM d – MMM d"}\r
+                    d{"MMM d–d"}\r
+                }\r
+                Md{\r
+                    M{"MM-dd – MM-dd"}\r
+                    d{"MM-dd – MM-dd"}\r
+                }\r
+                d{\r
+                    d{"d–d"}\r
+                }\r
+                fallback{"{0} – {1}"}\r
+                y{\r
+                    y{"G y–y"}\r
+                }\r
+                yM{\r
+                    M{"GGGGG y-MM – y-MM"}\r
+                    y{"GGGGG y-MM – y-MM"}\r
+                }\r
+                yMEd{\r
+                    M{"GGGGG y-MM-dd, E – y-MM-dd, E"}\r
+                    d{"GGGGG y-MM-dd, E – y-MM-dd, E"}\r
+                    y{"GGGGG y-MM-dd, E – y-MM-dd, E"}\r
+                }\r
+                yMMM{\r
+                    M{"G y MMM–MMM"}\r
+                    y{"G y MMM – y MMM"}\r
+                }\r
+                yMMMEd{\r
+                    M{"G y MMM d, E – MMM d, E"}\r
+                    d{"G y MMM d, E – MMM d, E"}\r
+                    y{"G y MMM d, E – y MMM d, E"}\r
+                }\r
+                yMMMM{\r
+                    M{"G y MMMM–MMMM"}\r
+                    y{"G y MMMM – y MMMM"}\r
+                }\r
+                yMMMd{\r
+                    M{"G y MMM d – MMM d"}\r
+                    d{"G y MMM d–d"}\r
+                    y{"G y MMM d – y MMM d"}\r
+                }\r
+                yMd{\r
+                    M{"GGGGG y-MM-dd – y-MM-dd"}\r
+                    d{"GGGGG y-MM-dd – y-MM-dd"}\r
+                    y{"GGGGG y-MM-dd – y-MM-dd"}\r
+                }\r
+            }\r
+        }\r
+        gregorian{\r
+            AmPmMarkers{\r
+                "صبح، منجهند",\r
+                "منجهند، شام",\r
+            }\r
+            AmPmMarkersAbbr{\r
+                "صبح، منجهند",\r
+                "شام، منجهند",\r
+            }\r
+            AmPmMarkersNarrow{\r
+                "صبح، منجهند",\r
+                "منجهند، شام",\r
+            }\r
+            DateTimePatterns{\r
+                "h:mm:ss a zzzz",\r
+                "h:mm:ss a z",\r
+                "h:mm:ss a",\r
+                "h:mm a",\r
+                "y MMMM d, EEEE",\r
+                "y MMMM d",\r
+                "y MMM d",\r
+                "y-MM-dd",\r
+                "{1} {0}",\r
+                "{1} {0}",\r
+                "{1} {0}",\r
+                "{1} {0}",\r
+                "{1} {0}",\r
+            }\r
+            appendItems{\r
+                Timezone{"{0} {1}"}\r
+            }\r
+            availableFormats{\r
+                Bh{"h B"}\r
+                Bhm{"h:mm B"}\r
+                Bhms{"h:mm:ss B"}\r
+                E{"ccc"}\r
+                EBhm{"E h:mm B"}\r
+                EBhms{"E h:mm:ss B"}\r
+                EHm{"E HH:mm"}\r
+                EHms{"E HH:mm:ss"}\r
+                Ed{"d, E"}\r
+                Ehm{"E h:mm a"}\r
+                Ehms{"E h:mm:ss a"}\r
+                Gy{"G y"}\r
+                GyMMM{"G y MMM"}\r
+                GyMMMEd{"G y MMM d, E"}\r
+                GyMMMd{"G y MMM d"}\r
+                H{"HH"}\r
+                Hm{"HH:mm"}\r
+                Hms{"HH:mm:ss"}\r
+                Hmsv{"HH:mm:ss v"}\r
+                Hmv{"HH:mm v"}\r
+                M{"L"}\r
+                MEd{"MM-dd, E"}\r
+                MMM{"LLL"}\r
+                MMMEd{"MMM d, E"}\r
+                MMMMW{\r
+                    one{"ھفتو W جو MMMM"}\r
+                    other{"ھفتو W جو MMMM"}\r
+                }\r
+                MMMMd{"MMMM d"}\r
+                MMMd{"MMM d"}\r
+                Md{"MM-dd"}\r
+                d{"d"}\r
+                h{"h a"}\r
+                hm{"h:mm a"}\r
+                hms{"h:mm:ss a"}\r
+                hmsv{"h:mm:ss a v"}\r
+                hmv{"h:mm a v"}\r
+                ms{"mm:ss"}\r
+                y{"y"}\r
+                yM{"y-MM"}\r
+                yMEd{"y-MM-dd, E"}\r
+                yMMM{"y MMM"}\r
+                yMMMEd{"y MMM d, E"}\r
+                yMMMM{"y MMMM"}\r
+                yMMMd{"y MMM d"}\r
+                yMd{"y-MM-dd"}\r
+                yQQQ{"y QQQ"}\r
+                yQQQQ{"y QQQQ"}\r
+                yw{\r
+                    one{"ھفتو w جو Y"}\r
+                    other{"ھفتو w جو Y"}\r
+                }\r
+            }\r
+            dayNames{\r
+                format{\r
+                    abbreviated{\r
+                        "آچر",\r
+                        "سومر",\r
+                        "اڱارو",\r
+                        "اربع",\r
+                        "خميس",\r
+                        "جمعو",\r
+                        "ڇنڇر",\r
+                    }\r
+                    narrow{\r
+                        "آچر",\r
+                        "سو",\r
+                        "اڱارو",\r
+                        "اربع",\r
+                        "خم",\r
+                        "جمعو",\r
+                        "ڇنڇر",\r
+                    }\r
+                    short{\r
+                        "آچر",\r
+                        "سومر",\r
+                        "اڱارو",\r
+                        "اربع",\r
+                        "خميس",\r
+                        "جمعو",\r
+                        "ڇنڇر",\r
+                    }\r
+                    wide{\r
+                        "آچر",\r
+                        "سومر",\r
+                        "اڱارو",\r
+                        "اربع",\r
+                        "خميس",\r
+                        "جمعو",\r
+                        "ڇنڇر",\r
+                    }\r
+                }\r
+                stand-alone{\r
+                    abbreviated{\r
+                        "آچر",\r
+                        "سومر",\r
+                        "اڱارو",\r
+                        "اربع",\r
+                        "خميس",\r
+                        "جمعو",\r
+                        "ڇنڇر",\r
+                    }\r
+                    narrow{\r
+                        "آچر",\r
+                        "سو",\r
+                        "اڱارو",\r
+                        "اربع",\r
+                        "خم",\r
+                        "جمعو",\r
+                        "ڇنڇر",\r
+                    }\r
+                    short{\r
+                        "آچر",\r
+                        "سومر",\r
+                        "اڱارو",\r
+                        "اربع",\r
+                        "خميس",\r
+                        "جمعو",\r
+                        "ڇنڇر",\r
+                    }\r
+                    wide{\r
+                        "آچر",\r
+                        "سومر",\r
+                        "اڱارو",\r
+                        "اربع",\r
+                        "خميس",\r
+                        "جمعو",\r
+                        "ڇنڇر",\r
+                    }\r
+                }\r
+            }\r
+            dayPeriod{\r
+                stand-alone{\r
+                    abbreviated{\r
+                        am{"صبح، منجهند"}\r
+                        pm{"منجهند، شام"}\r
+                    }\r
+                    narrow{\r
+                        am{"صبح، منجهند"}\r
+                        pm{"منجهند، شام"}\r
+                    }\r
+                    wide{\r
+                        am{"صبح، منجهند"}\r
+                        pm{"منجهند، شام"}\r
+                    }\r
+                }\r
+            }\r
+            eras{\r
+                abbreviated{\r
+                    "BC",\r
+                    "CD",\r
+                }\r
+                abbreviated%variant{\r
+                    "BCE",\r
+                    "CE",\r
+                }\r
+                wide{\r
+                    "مسيح کان اڳ",\r
+                    "عيسوي کان پهرين",\r
+                }\r
+                wide%variant{\r
+                    "عام دور کان پهرين",\r
+                    "عام دور",\r
+                }\r
+            }\r
+            intervalFormats{\r
+                H{\r
+                    H{"HH–HH"}\r
+                }\r
+                Hm{\r
+                    H{"HH:mm–HH:mm"}\r
+                    m{"HH:mm–HH:mm"}\r
+                }\r
+                Hmv{\r
+                    H{"HH:mm–HH:mm v"}\r
+                    m{"HH:mm–HH:mm v"}\r
+                }\r
+                Hv{\r
+                    H{"HH–HH v"}\r
+                }\r
+                M{\r
+                    M{"MM–MM"}\r
+                }\r
+                MEd{\r
+                    M{"MM-dd, E – MM-dd, E"}\r
+                    d{"MM-dd, E – MM-dd, E"}\r
+                }\r
+                MMM{\r
+                    M{"LLL–LLL"}\r
+                }\r
+                MMMEd{\r
+                    M{"MMM d, E – MMM d, E"}\r
+                    d{"MMM d, E – MMM d, E"}\r
+                }\r
+                MMMd{\r
+                    M{"MMM d – MMM d"}\r
+                    d{"MMM d–d"}\r
+                }\r
+                Md{\r
+                    M{"MM-dd – MM-dd"}\r
+                    d{"MM-dd – MM-dd"}\r
+                }\r
+                d{\r
+                    d{"d–d"}\r
+                }\r
+                fallback{"{0} – {1}"}\r
+                h{\r
+                    a{"h a – h a"}\r
+                    h{"h–h a"}\r
+                }\r
+                hm{\r
+                    a{"h:mm a – h:mm a"}\r
+                    h{"h:mm–h:mm a"}\r
+                    m{"h:mm–h:mm a"}\r
+                }\r
+                hmv{\r
+                    a{"h:mm a – h:mm a v"}\r
+                    h{"h:mm–h:mm a v"}\r
+                    m{"h:mm–h:mm a v"}\r
+                }\r
+                hv{\r
+                    a{"h a – h a v"}\r
+                    h{"h–h a v"}\r
+                }\r
+                y{\r
+                    y{"y–y"}\r
+                }\r
+                yM{\r
+                    M{"y-MM – y-MM"}\r
+                    y{"y-MM – y-MM"}\r
+                }\r
+                yMEd{\r
+                    M{"y-MM-dd, E – y-MM-dd, E"}\r
+                    d{"y-MM-dd, E – y-MM-dd, E"}\r
+                    y{"y-MM-dd, E – y-MM-dd, E"}\r
+                }\r
+                yMMM{\r
+                    M{"y MMM–MMM"}\r
+                    y{"y MMM – y MMM"}\r
+                }\r
+                yMMMEd{\r
+                    M{"y MMM d, E – MMM d, E"}\r
+                    d{"y MMM d, E – MMM d, E"}\r
+                    y{"y MMM d, E – y MMM d, E"}\r
+                }\r
+                yMMMM{\r
+                    M{"y MMMM–MMMM"}\r
+                    y{"y MMMM – y MMMM"}\r
+                }\r
+                yMMMd{\r
+                    M{"y MMM d – MMM d"}\r
+                    d{"y MMM d–d"}\r
+                    y{"y MMM d – y MMM d"}\r
+                }\r
+                yMd{\r
+                    M{"y-MM-dd – y-MM-dd"}\r
+                    d{"y-MM-dd – y-MM-dd"}\r
+                    y{"y-MM-dd – y-MM-dd"}\r
+                }\r
+            }\r
+            monthNames{\r
+                format{\r
+                    abbreviated{\r
+                        "جنوري",\r
+                        "فيبروري",\r
+                        "مارچ",\r
+                        "اپريل",\r
+                        "مئي",\r
+                        "جون",\r
+                        "جولاءِ",\r
+                        "آگسٽ",\r
+                        "سيپٽمبر",\r
+                        "آڪٽوبر",\r
+                        "نومبر",\r
+                        "ڊسمبر",\r
+                    }\r
+                    narrow{\r
+                        "J",\r
+                        "F",\r
+                        "M",\r
+                        "A",\r
+                        "M",\r
+                        "J",\r
+                        "J",\r
+                        "A",\r
+                        "S",\r
+                        "O",\r
+                        "N",\r
+                        "D",\r
+                    }\r
+                    wide{\r
+                        "جنوري",\r
+                        "فيبروري",\r
+                        "مارچ",\r
+                        "اپريل",\r
+                        "مئي",\r
+                        "جون",\r
+                        "جولاءِ",\r
+                        "آگسٽ",\r
+                        "سيپٽمبر",\r
+                        "آڪٽوبر",\r
+                        "نومبر",\r
+                        "ڊسمبر",\r
+                    }\r
+                }\r
+                stand-alone{\r
+                    abbreviated{\r
+                        "جنوري",\r
+                        "فيبروري",\r
+                        "مارچ",\r
+                        "اپريل",\r
+                        "مئي",\r
+                        "جون",\r
+                        "جولاءِ",\r
+                        "آگسٽ",\r
+                        "سيپٽمبر",\r
+                        "آڪٽوبر",\r
+                        "نومبر",\r
+                        "ڊسمبر",\r
+                    }\r
+                    narrow{\r
+                        "J",\r
+                        "F",\r
+                        "M",\r
+                        "A",\r
+                        "M",\r
+                        "J",\r
+                        "J",\r
+                        "A",\r
+                        "S",\r
+                        "O",\r
+                        "N",\r
+                        "D",\r
+                    }\r
+                    wide{\r
+                        "جنوري",\r
+                        "فيبروري",\r
+                        "مارچ",\r
+                        "اپريل",\r
+                        "مئي",\r
+                        "جون",\r
+                        "جولاءِ",\r
+                        "آگسٽ",\r
+                        "سيپٽمبر",\r
+                        "آڪٽوبر",\r
+                        "نومبر",\r
+                        "ڊسمبر",\r
+                    }\r
+                }\r
+            }\r
+            quarters{\r
+                format{\r
+                    abbreviated{\r
+                        "Q1",\r
+                        "Q2",\r
+                        "Q3",\r
+                        "Q5",\r
+                    }\r
+                    narrow{\r
+                        "1",\r
+                        "2",\r
+                        "3",\r
+                        "4",\r
+                    }\r
+                    wide{\r
+                        "پهرين ٽي ماهي",\r
+                        "ٻين ٽي ماهي",\r
+                        "ٽين ٽي ماهي",\r
+                        "چوٿين ٽي ماهي",\r
+                    }\r
+                }\r
+                stand-alone{\r
+                    abbreviated{\r
+                        "Q1",\r
+                        "Q2",\r
+                        "Q3",\r
+                        "Q4",\r
+                    }\r
+                    narrow{\r
+                        "1",\r
+                        "2",\r
+                        "3",\r
+                        "4",\r
+                    }\r
+                    wide{\r
+                        "پهرين ٽي ماهي",\r
+                        "ٻين ٽي ماهي",\r
+                        "ٽين ٽي ماهي",\r
+                        "چوٿين ٽي ماهي",\r
+                    }\r
+                }\r
+            }\r
+        }\r
+    }\r
+    characterLabel{\r
+        activities{"سرگرمي"}\r
+        african_scripts{"آفريقي رسم الخط"}\r
+        american_scripts{"آمريڪي رسم الخط"}\r
+        animal{"جانور"}\r
+        animals_nature{"جانور يا قدرت"}\r
+        arrows{"تير"}\r
+        body{"جسم"}\r
+        box_drawing{"دٻي جي ڊرائنگ"}\r
+        braille{"بريلي"}\r
+        building{"عمارت"}\r
+        bullets_stars{"گولي يا تارو"}\r
+        consonantal_jamo{"حرف صحيح جامو"}\r
+        currency_symbols{"سڪي جي نشاني"}\r
+        dash_connector{"ڊيش يا ڪنيڪٽر"}\r
+        digits{"انگ"}\r
+        dingbats{"احمق ماڻهو"}\r
+        divination_symbols{"اڳڪٿي جي نشاني"}\r
+        downwards_arrows{"هيٺ تير جو نشان"}\r
+        downwards_upwards_arrows{"هيٺ مٿي تير جو نشان"}\r
+        east_asian_scripts{"اوڀر ايشيائي رسم الخط"}\r
+        emoji{"ايموجي"}\r
+        european_scripts{"يورپي رسم الخط"}\r
+        female{"مادي"}\r
+        flag{"جهنڊو"}\r
+        flags{"جهنڊا"}\r
+        food_drink{"کاڌو ۽ پاڻي"}\r
+        format{"فارميٽ"}\r
+        format_whitespace{"فارميٽ ۽ خالي جڳي"}\r
+        full_width_form_variant{"پوري چوڙائي ويريئنٽ"}\r
+        geometric_shapes{"جاميٽري شڪل"}\r
+        half_width_form_variant{"اڌ چوڙائي ويريئنٽ"}\r
+        han_characters{"هان حرف"}\r
+        han_radicals{"هان ريڊيڪل"}\r
+        hanja{"هنجا"}\r
+        hanzi_simplified{"هانزي (آسان ڪيل)"}\r
+        hanzi_traditional{"هانزي (رواجي)"}\r
+        heart{"دل"}\r
+        historic_scripts{"تاريخي رسم الخط"}\r
+        ideographic_desc_characters{"تصورنگاري وضاحت حرف"}\r
+        japanese_kana{"جاپاني ڪنا"}\r
+        kanbun{"ڪانبون"}\r
+        kanji{"ڪانجي"}\r
+        keycap{"ڪي ڪيپ"}\r
+        leftwards_arrows{"کاٻي پاسي تير"}\r
+        leftwards_rightwards_arrows{"کاٻي پاسي ساڄي پاسي تير"}\r
+        letterlike_symbols{"اکر جهڙي نشاني"}\r
+        limited_use{"محدود-استعمال"}\r
+        male{"مرد"}\r
+        math_symbols{"رياضي جي نشاني"}\r
+        middle_eastern_scripts{"وچ اوڀاريون رسم الخط"}\r
+        miscellaneous{"متفرق"}\r
+        modern_scripts{"جديد رسم الخط"}\r
+        modifier{"ترميم ڪندڙ"}\r
+        musical_symbols{"موسيقي جي نشاني"}\r
+        nature{"فطرت"}\r
+        nonspacing{"بغير وٿي"}\r
+        numbers{"عدد"}\r
+        objects{"شئي"}\r
+        other{"ٻيا"}\r
+        paired{"جوڙو"}\r
+        person{"شخص"}\r
+        phonetic_alphabet{"صوتياتي رسم الخط"}\r
+        pictographs{"تصويري نشاني"}\r
+        place{"جڳھَ"}\r
+        plant{"ٻوٽو"}\r
+        punctuation{"اوقاف"}\r
+        rightwards_arrows{"ساڄي پاسي تير"}\r
+        sign_standard_symbols{"نشاني يا علامت"}\r
+        small_form_variant{"ننڍا ويريئنٽ"}\r
+        smiley{"هنس مک"}\r
+        smileys_people{"هنس مک يا شخص"}\r
+        south_asian_scripts{"ڏکڻ ايشيائي رسم الخط"}\r
+        southeast_asian_scripts{"ڏکڻ-اوڀر ايشيائي رسم الخط"}\r
+        spacing{"وٿي"}\r
+        sport{"راند"}\r
+        symbols{"علامت"}\r
+        technical_symbols{"تڪنيڪي علامت"}\r
+        tone_marks{"ٽون مارڪ"}\r
+        travel{"سفر"}\r
+        travel_places{"سفر يا جڳھَ"}\r
+        upwards_arrows{"مٿي تير"}\r
+        variant_forms{"ويريئنٽ"}\r
+        vocalic_jamo{"ووڪلڪ جامو"}\r
+        weather{"موسم"}\r
+        western_asian_scripts{"مغربي ايشيائي رسم الخط"}\r
+        whitespace{"خالي جڳھَ"}\r
+    }\r
+    delimiters{\r
+        alternateQuotationEnd{"’"}\r
+        alternateQuotationStart{"‘"}\r
+        quotationEnd{"”"}\r
+        quotationStart{"“"}\r
+    }\r
+    fields{\r
+        day{\r
+            dn{"ڏينهن"}\r
+            relative{\r
+                "-1"{"ڪل"}\r
+                "0"{"اڄ"}\r
+                "1"{"سڀاڻي"}\r
+            }\r
+            relativeTime{\r
+                future{\r
+                    one{"{0} ڏينهن ۾"}\r
+                    other{"{0} ڏينهن ۾"}\r
+                }\r
+                past{\r
+                    one{"{0} ڏينهن پهرين"}\r
+                    other{"{0} ڏينهن پهرين"}\r
+                }\r
+            }\r
+        }\r
+        day-narrow{\r
+            dn{"ڏينهن"}\r
+            relativeTime{\r
+                future{\r
+                    one{"{0} ڏينهن ۾"}\r
+                    other{"{0} ڏينهن ۾"}\r
+                }\r
+                past{\r
+                    one{"{0} ڏينهن پهرين"}\r
+                    other{"{0} ڏينهن پهرين"}\r
+                }\r
+            }\r
+        }\r
+        day-short{\r
+            dn{"ڏينهن"}\r
+            relativeTime{\r
+                future{\r
+                    one{"{0} ڏينهن ۾"}\r
+                    other{"{0} ڏينهن ۾"}\r
+                }\r
+                past{\r
+                    one{"{0} ڏينهن پهرين"}\r
+                    other{"{0} ڏينهن پهرين"}\r
+                }\r
+            }\r
+        }\r
+        dayOfYear{\r
+            dn{"سال جو ڏينهن"}\r
+        }\r
+        dayOfYear-narrow{\r
+            dn{"سال جو ڏينهن"}\r
+        }\r
+        dayOfYear-short{\r
+            dn{"سال جو ڏينهن"}\r
+        }\r
+        dayperiod{\r
+            dn{"صبح/شام"}\r
+        }\r
+        dayperiod-narrow{\r
+            dn{"صبح، منجهند/منجهند، شام"}\r
+        }\r
+        dayperiod-short{\r
+            dn{"صبح، منجهند/منجهند، شام"}\r
+        }\r
+        era{\r
+            dn{"دور"}\r
+        }\r
+        era-narrow{\r
+            dn{"دور"}\r
+        }\r
+        era-short{\r
+            dn{"دور"}\r
+        }\r
+        fri{\r
+            relative{\r
+                "-1"{"پوئين جمعي"}\r
+                "0"{"هن جمعي"}\r
+                "1"{"اڳين جمعي"}\r
+            }\r
+            relativeTime{\r
+                future{\r
+                    one{"{0} جمعن ۾"}\r
+                    other{"{0} جمعن ۾"}\r
+                }\r
+                past{\r
+                    one{"{0} جمعا پهرين"}\r
+                    other{"{0} جمعا پهرين"}\r
+                }\r
+            }\r
+        }\r
+        fri-narrow{\r
+            relative{\r
+                "-1"{"پوئين جمعي"}\r
+                "0"{"هن جمعي"}\r
+                "1"{"اڳين جمعي"}\r
+            }\r
+            relativeTime{\r
+                future{\r
+                    one{"{0} جمعن ۾"}\r
+                    other{"{0} جمعن ۾"}\r
+                }\r
+                past{\r
+                    one{"{0} جمعا پهرين"}\r
+                    other{"{0} جمعا پهرين"}\r
+                }\r
+            }\r
+        }\r
+        fri-short{\r
+            relative{\r
+                "-1"{"پوئين جمعي"}\r
+                "0"{"هن جمعي"}\r
+                "1"{"اڳين جمعي"}\r
+            }\r
+            relativeTime{\r
+                future{\r
+                    one{"{0} جمعن ۾"}\r
+                    other{"{0} جمعن ۾"}\r
+                }\r
+                past{\r
+                    one{"{0} جمعا پهرين"}\r
+                    other{"{0} جمعا پهرين"}\r
+                }\r
+            }\r
+        }\r
+        hour{\r
+            dn{"ڪلاڪ"}\r
+            relative{\r
+                "0"{"هن ڪلڪ"}\r
+            }\r
+            relativeTime{\r
+                future{\r
+                    one{"{0} ڪلاڪ ۾"}\r
+                    other{"{0} ڪلاڪ ۾"}\r
+                }\r
+                past{\r
+                    one{"{0} ڪلاڪ پهرين"}\r
+                    other{"{0} ڪلاڪ پهرين"}\r
+                }\r
+            }\r
+        }\r
+        hour-narrow{\r
+            dn{"ڪلاڪ"}\r
+            relativeTime{\r
+                future{\r
+                    one{"{0} ڪلاڪ ۾"}\r
+                    other{"{0} ڪلاڪ ۾"}\r
+                }\r
+                past{\r
+                    one{"{0} ڪلاڪ پهرين"}\r
+                    other{"{0} ڪلاڪ پهرين"}\r
+                }\r
+            }\r
+        }\r
+        hour-short{\r
+            dn{"ڪلاڪ"}\r
+            relativeTime{\r
+                future{\r
+                    one{"{0} ڪلاڪ ۾"}\r
+                    other{"{0} ڪلاڪ ۾"}\r
+                }\r
+                past{\r
+                    one{"{0} ڪلاڪ پهرين"}\r
+                    other{"{0} ڪلاڪ پهرين"}\r
+                }\r
+            }\r
+        }\r
+        minute{\r
+            dn{"منٽ"}\r
+            relative{\r
+                "0"{"هن منٽ"}\r
+            }\r
+            relativeTime{\r
+                future{\r
+                    one{"{0} منٽن ۾"}\r
+                    other{"+{0} min"}\r
+                }\r
+                past{\r
+                    one{"{0} منٽ پهرين"}\r
+                    other{"{0} منٽ پهرين"}\r
+                }\r
+            }\r
+        }\r
+        minute-narrow{\r
+            dn{"منٽ"}\r
+            relativeTime{\r
+                future{\r
+                    one{"{0} منٽن ۾"}\r
+                    other{"{0} منٽن ۾"}\r
+                }\r
+                past{\r
+                    one{"{0} منٽ پهرين"}\r
+                    other{"{0} منٽ پهرين"}\r
+                }\r
+            }\r
+        }\r
+        minute-short{\r
+            dn{"منٽ"}\r
+            relativeTime{\r
+                future{\r
+                    one{"{0} منٽن ۾"}\r
+                    other{"{0} منٽن ۾"}\r
+                }\r
+                past{\r
+                    one{"{0} منٽ پهرين"}\r
+                    other{"{0} منٽ پهرين"}\r
+                }\r
+            }\r
+        }\r
+        mon{\r
+            relative{\r
+                "-1"{"پوئين سومر"}\r
+                "0"{"هن سومر"}\r
+                "1"{"اڳين سومر"}\r
+            }\r
+            relativeTime{\r
+                future{\r
+                    one{"{0} سومرن ۾"}\r
+                    other{"{0} سومرن ۾"}\r
+                }\r
+                past{\r
+                    one{"{0} سومر پهرين"}\r
+                    other{"{0} سومر پهرين"}\r
+                }\r
+            }\r
+        }\r
+        mon-narrow{\r
+            relative{\r
+                "-1"{"پوئين سومر"}\r
+                "0"{"هن سومر"}\r
+                "1"{"اڳين سومر"}\r
+            }\r
+            relativeTime{\r
+                future{\r
+                    one{"{0} سومرن ۾"}\r
+                    other{"{0} سومرن ۾"}\r
+                }\r
+                past{\r
+                    one{"{0} سومر پهرين"}\r
+                    other{"{0} سومر پهرين"}\r
+                }\r
+            }\r
+        }\r
+        mon-short{\r
+            relative{\r
+                "-1"{"پوئين سومر"}\r
+                "0"{"هن سومر"}\r
+                "1"{"اڳين سومر"}\r
+            }\r
+            relativeTime{\r
+                future{\r
+                    one{"{0} سومرن ۾"}\r
+                    other{"{0} سومرن ۾"}\r
+                }\r
+                past{\r
+                    one{"{0} سومر پهرين"}\r
+                    other{"{0} سومر پهرين"}\r
+                }\r
+            }\r
+        }\r
+        month{\r
+            dn{"مهينو"}\r
+            relative{\r
+                "-1"{"پوئين مهيني"}\r
+                "0"{"هن مهيني"}\r
+                "1"{"اڳين مهيني"}\r
+            }\r
+            relativeTime{\r
+                future{\r
+                    one{"{0} مهينن ۾"}\r
+                    other{"{0} مهينن ۾"}\r
+                }\r
+                past{\r
+                    one{"{0} مهينا پهرين"}\r
+                    other{"{0} مهينا پهرين"}\r
+                }\r
+            }\r
+        }\r
+        month-narrow{\r
+            dn{"مهينو"}\r
+            relativeTime{\r
+                future{\r
+                    one{"{0} مهينن ۾"}\r
+                    other{"{0} مهينن ۾"}\r
+                }\r
+                past{\r
+                    one{"{0} مهينا پهرين"}\r
+                    other{"{0} مهينا پهرين"}\r
+                }\r
+            }\r
+        }\r
+        month-short{\r
+            dn{"مهينو"}\r
+            relativeTime{\r
+                future{\r
+                    one{"{0} مهينن ۾"}\r
+                    other{"{0} مهينن ۾"}\r
+                }\r
+                past{\r
+                    one{"{0} مهينا پهرين"}\r
+                    other{"{0} مهينا پهرين"}\r
+                }\r
+            }\r
+        }\r
+        quarter{\r
+            dn{"ٽي ماهي"}\r
+            relative{\r
+                "-1"{"پوئين ٽي ماهي"}\r
+                "0"{"هن ٽي ماهي"}\r
+                "1"{"اڳين ٽي ماهي"}\r
+            }\r
+            relativeTime{\r
+                future{\r
+                    one{"{0} ٽي ماهي ۾"}\r
+                    other{"{0} ٽي ماهي ۾"}\r
+                }\r
+                past{\r
+                    one{"{0} ٽي ماهي پهرين"}\r
+                    other{"{0} ٽي ماهي پهرين"}\r
+                }\r
+            }\r
+        }\r
+        quarter-narrow{\r
+            dn{"ٽي ماهي"}\r
+            relativeTime{\r
+                future{\r
+                    one{"{0} ٽي ماهي ۾"}\r
+                    other{"{0} ٽي ماهي ۾"}\r
+                }\r
+                past{\r
+                    one{"{0} ٽي ماهي پهرين"}\r
+                    other{"{0} ٽي ماهي پهرين"}\r
+                }\r
+            }\r
+        }\r
+        quarter-short{\r
+            dn{"ٽي ماهي"}\r
+            relativeTime{\r
+                future{\r
+                    one{"{0} ٽي ماهي ۾"}\r
+                    other{"{0} ٽي ماهي ۾"}\r
+                }\r
+                past{\r
+                    one{"{0} ٽي ماهي پهرين"}\r
+                    other{"{0} ٽي ماهي پهرين"}\r
+                }\r
+            }\r
+        }\r
+        sat{\r
+            relative{\r
+                "-1"{"پوئين ڇنڇر"}\r
+                "0"{"هن ڇنڇر"}\r
+                "1"{"اڳين ڇنڇر"}\r
+            }\r
+            relativeTime{\r
+                future{\r
+                    one{"{0} ڇنڇرن ۾"}\r
+                    other{"{0} ڇنڇرن ۾"}\r
+                }\r
+                past{\r
+                    one{"{0} ڇنڇر پهرين"}\r
+                    other{"{0} ڇنڇر پهرين"}\r
+                }\r
+            }\r
+        }\r
+        sat-narrow{\r
+            relative{\r
+                "-1"{"پوئين ڇنڇر"}\r
+                "0"{"هن ڇنڇر"}\r
+                "1"{"اڳين ڇنڇر"}\r
+            }\r
+            relativeTime{\r
+                future{\r
+                    one{"{0} ڇنڇرن ۾"}\r
+                    other{"{0} ڇنڇرن ۾"}\r
+                }\r
+                past{\r
+                    one{"{0} ڇنڇر پهرين"}\r
+                    other{"{0} ڇنڇر پهرين"}\r
+                }\r
+            }\r
+        }\r
+        sat-short{\r
+            relative{\r
+                "-1"{"پوئين ڇنڇر"}\r
+                "0"{"هن ڇنڇر"}\r
+                "1"{"اڳين ڇنڇر"}\r
+            }\r
+            relativeTime{\r
+                future{\r
+                    one{"{0} ڇنڇرن ۾"}\r
+                    other{"{0} ڇنڇرن ۾"}\r
+                }\r
+                past{\r
+                    one{"{0} ڇنڇر پهرين"}\r
+                    other{"{0} ڇنڇر پهرين"}\r
+                }\r
+            }\r
+        }\r
+        second{\r
+            dn{"سيڪنڊ"}\r
+            relative{\r
+                "0"{"هاڻي"}\r
+            }\r
+            relativeTime{\r
+                future{\r
+                    one{"{0} سيڪنڊن ۾"}\r
+                    other{"{0} سيڪنڊن ۾"}\r
+                }\r
+                past{\r
+                    one{"{0} سيڪنڊ پهرين"}\r
+                    other{"{0} سيڪنڊ پهرين"}\r
+                }\r
+            }\r
+        }\r
+        second-narrow{\r
+            dn{"سيڪنڊ"}\r
+            relativeTime{\r
+                future{\r
+                    one{"{0} سيڪنڊن ۾"}\r
+                    other{"{0} سيڪنڊن ۾"}\r
+                }\r
+                past{\r
+                    one{"{0} سيڪنڊ پهرين"}\r
+                    other{"{0} سيڪنڊ پهرين"}\r
+                }\r
+            }\r
+        }\r
+        second-short{\r
+            dn{"سيڪنڊ"}\r
+            relativeTime{\r
+                future{\r
+                    one{"{0} سيڪنڊن ۾"}\r
+                    other{"{0} سيڪنڊن ۾"}\r
+                }\r
+                past{\r
+                    one{"{0} سيڪنڊ پهرين"}\r
+                    other{"{0} سيڪنڊ پهرين"}\r
+                }\r
+            }\r
+        }\r
+        sun{\r
+            relative{\r
+                "-1"{"پوئين آچر"}\r
+                "0"{"هن آچر"}\r
+                "1"{"اڳين آچر"}\r
+            }\r
+            relativeTime{\r
+                future{\r
+                    one{"{0} آچرن ۾"}\r
+                    other{"{0} آچرن ۾"}\r
+                }\r
+                past{\r
+                    one{"{0} آچر پهرين"}\r
+                    other{"{0} آچر پهرين"}\r
+                }\r
+            }\r
+        }\r
+        sun-narrow{\r
+            relative{\r
+                "-1"{"پوئين آچر"}\r
+                "0"{"هن آچر"}\r
+                "1"{"اڳين آچر"}\r
+            }\r
+            relativeTime{\r
+                future{\r
+                    one{"{0} آچرن ۾"}\r
+                    other{"{0} آچرن ۾"}\r
+                }\r
+                past{\r
+                    one{"{0} آچر پهرين"}\r
+                    other{"{0} آچر پهرين"}\r
+                }\r
+            }\r
+        }\r
+        sun-short{\r
+            relative{\r
+                "-1"{"پوئين آچر"}\r
+                "0"{"هن آچر"}\r
+                "1"{"اڳين آچر"}\r
+            }\r
+            relativeTime{\r
+                future{\r
+                    one{"{0} آچرن ۾"}\r
+                    other{"{0} آچرن ۾"}\r
+                }\r
+                past{\r
+                    one{"{0} آچر پهرين"}\r
+                    other{"{0} آچر پهرين"}\r
+                }\r
+            }\r
+        }\r
+        thu{\r
+            relative{\r
+                "-1"{"پوئين خميس"}\r
+                "0"{"هن خميس"}\r
+                "1"{"اڳين خميس"}\r
+            }\r
+            relativeTime{\r
+                future{\r
+                    one{"{0} خميسن ۾"}\r
+                    other{"{0} خميسن ۾"}\r
+                }\r
+                past{\r
+                    one{"{0} خميس پهرين"}\r
+                    other{"{0} خميس پهرين"}\r
+                }\r
+            }\r
+        }\r
+        thu-narrow{\r
+            relative{\r
+                "-1"{"پوئين خميس"}\r
+                "0"{"هن خميس"}\r
+                "1"{"اڳين خميس"}\r
+            }\r
+            relativeTime{\r
+                future{\r
+                    one{"{0} خميسن ۾"}\r
+                    other{"{0} خميسن ۾"}\r
+                }\r
+                past{\r
+                    one{"{0} خميس پهرين"}\r
+                    other{"{0} خميس پهرين"}\r
+                }\r
+            }\r
+        }\r
+        thu-short{\r
+            relative{\r
+                "-1"{"پوئين خميس"}\r
+                "0"{"هن خميس"}\r
+                "1"{"اڳين خميس"}\r
+            }\r
+            relativeTime{\r
+                future{\r
+                    one{"{0} خميسن ۾"}\r
+                    other{"{0} خميسن ۾"}\r
+                }\r
+                past{\r
+                    one{"{0} خميس پهرين"}\r
+                    other{"{0} خميس پهرين"}\r
+                }\r
+            }\r
+        }\r
+        tue{\r
+            relative{\r
+                "-1"{"پوئين اڱاري"}\r
+                "0"{"هن اڱاري"}\r
+                "1"{"اڳين اڱاري"}\r
+            }\r
+            relativeTime{\r
+                future{\r
+                    one{"{0} اڱارن ۾"}\r
+                    other{"{0} اڱارن ۾"}\r
+                }\r
+                past{\r
+                    one{"{0} اڱارا پهرين"}\r
+                    other{"{0} اڱارا پهرين"}\r
+                }\r
+            }\r
+        }\r
+        tue-narrow{\r
+            relative{\r
+                "-1"{"پوئين اڱاري"}\r
+                "0"{"هن اڱاري"}\r
+                "1"{"اڳين اڱاري"}\r
+            }\r
+            relativeTime{\r
+                future{\r
+                    one{"{0} اڱارن ۾"}\r
+                    other{"{0} اڱارن ۾"}\r
+                }\r
+                past{\r
+                    one{"{0} اڱارا پهرين"}\r
+                    other{"{0} اڱارا پهرين"}\r
+                }\r
+            }\r
+        }\r
+        tue-short{\r
+            relative{\r
+                "-1"{"پوئين اڱاري"}\r
+                "0"{"هن اڱاري"}\r
+                "1"{"اڳين اڱاري"}\r
+            }\r
+            relativeTime{\r
+                future{\r
+                    one{"{0} اڱارن ۾"}\r
+                    other{"{0} اڱارن ۾"}\r
+                }\r
+                past{\r
+                    one{"{0} اڱارا پهرين"}\r
+                    other{"{0} اڱارا پهرين"}\r
+                }\r
+            }\r
+        }\r
+        wed{\r
+            relative{\r
+                "-1"{"پوئين اربع"}\r
+                "0"{"هن اربع"}\r
+                "1"{"اڳين اربع"}\r
+            }\r
+            relativeTime{\r
+                future{\r
+                    one{"{0} اربعن ۾"}\r
+                    other{"{0} اربعن ۾"}\r
+                }\r
+                past{\r
+                    one{"{0} اربعا پهرين"}\r
+                    other{"{0} اربعا پهرين"}\r
+                }\r
+            }\r
+        }\r
+        wed-narrow{\r
+            relative{\r
+                "-1"{"پوئين اربع"}\r
+                "0"{"هن اربع"}\r
+                "1"{"اڳين اربع"}\r
+            }\r
+            relativeTime{\r
+                future{\r
+                    one{"{0} اربعن ۾"}\r
+                    other{"{0} اربعن ۾"}\r
+                }\r
+                past{\r
+                    one{"{0} اربعا پهرين"}\r
+                    other{"{0} اربعا پهرين"}\r
+                }\r
+            }\r
+        }\r
+        wed-short{\r
+            relative{\r
+                "-1"{"پوئين اربع"}\r
+                "0"{"هن اربع"}\r
+                "1"{"اڳين اربع"}\r
+            }\r
+            relativeTime{\r
+                future{\r
+                    one{"{0} اربعن ۾"}\r
+                    other{"{0} اربعن ۾"}\r
+                }\r
+                past{\r
+                    one{"{0} اربعا پهرين"}\r
+                    other{"{0} اربعا پهرين"}\r
+                }\r
+            }\r
+        }\r
+        week{\r
+            dn{"هفتو"}\r
+            relative{\r
+                "-1"{"پوئين هفتي"}\r
+                "0"{"هن هفتي"}\r
+                "1"{"اڳين هفتي"}\r
+            }\r
+            relativePeriod{"{0} جي هفتي"}\r
+            relativeTime{\r
+                future{\r
+                    one{"{0} هفتن ۾"}\r
+                    other{"{0} هفتن ۾"}\r
+                }\r
+                past{\r
+                    one{"{0} هفتا پهرين"}\r
+                    other{"{0} هفتا پهرين"}\r
+                }\r
+            }\r
+        }\r
+        week-narrow{\r
+            dn{"هفتو"}\r
+            relativePeriod{"{0} جي هفتي"}\r
+            relativeTime{\r
+                future{\r
+                    one{"{0} هفتن ۾"}\r
+                    other{"{0} هفتن ۾"}\r
+                }\r
+                past{\r
+                    one{"{0} هفتا پهرين"}\r
+                    other{"{0} هفتا پهرين"}\r
+                }\r
+            }\r
+        }\r
+        week-short{\r
+            dn{"هفتو"}\r
+            relativePeriod{"{0} جي هفتي"}\r
+            relativeTime{\r
+                future{\r
+                    one{"{0} هفتن ۾"}\r
+                    other{"{0} هفتن ۾"}\r
+                }\r
+                past{\r
+                    one{"{0} هفتا پهرين"}\r
+                    other{"{0} هفتا پهرين"}\r
+                }\r
+            }\r
+        }\r
+        weekOfMonth{\r
+            dn{"مهيني جي هفتي"}\r
+        }\r
+        weekOfMonth-narrow{\r
+            dn{"مهيني جي هفتي"}\r
+        }\r
+        weekOfMonth-short{\r
+            dn{"مهيني جي هفتي"}\r
+        }\r
+        weekday{\r
+            dn{"هفتي جو ڏينهن"}\r
+        }\r
+        weekday-narrow{\r
+            dn{"هفتي جو ڏينهن"}\r
+        }\r
+        weekday-short{\r
+            dn{"هفتي جو ڏينهن"}\r
+        }\r
+        weekdayOfMonth{\r
+            dn{"مهيني جي موڪل جو ڏينهن"}\r
+        }\r
+        weekdayOfMonth-narrow{\r
+            dn{"مهيني جي موڪل جو ڏينهن"}\r
+        }\r
+        weekdayOfMonth-short{\r
+            dn{"مهيني جي موڪل جو ڏينهن"}\r
+        }\r
+        year{\r
+            dn{"سال"}\r
+            relative{\r
+                "-1"{"پويون سال"}\r
+                "0"{"پويون سال"}\r
+                "1"{"پويون سال"}\r
+            }\r
+            relativeTime{\r
+                future{\r
+                    one{"{0} سالن ۾"}\r
+                    other{"{0} سالن ۾"}\r
+                }\r
+                past{\r
+                    one{"{0} سال پهرين"}\r
+                    other{"{0} سال پهرين"}\r
+                }\r
+            }\r
+        }\r
+        year-narrow{\r
+            dn{"سال"}\r
+            relativeTime{\r
+                future{\r
+                    one{"{0} سالن ۾"}\r
+                    other{"{0} سالن ۾"}\r
+                }\r
+                past{\r
+                    one{"{0} سال پهرين"}\r
+                    other{"{0} سال پهرين"}\r
+                }\r
+            }\r
+        }\r
+        year-short{\r
+            dn{"سال"}\r
+            relativeTime{\r
+                future{\r
+                    one{"{0} سالن ۾"}\r
+                    other{"{0} سالن ۾"}\r
+                }\r
+                past{\r
+                    one{"{0} سال پهرين"}\r
+                    other{"{0} سال پهرين"}\r
+                }\r
+            }\r
+        }\r
+        zone{\r
+            dn{"ٽائيم زون"}\r
+        }\r
+        zone-narrow{\r
+            dn{"ٽائيم زون"}\r
+        }\r
+        zone-short{\r
+            dn{"ٽائيم زون"}\r
+        }\r
+    }\r
+    layout{\r
+        characters{"right-to-left"}\r
+        lines{"top-to-bottom"}\r
+    }\r
+    listPattern{\r
+        or{\r
+            2{"{0} يا {1}"}\r
+            end{"{0}, يا {1}"}\r
+            middle{"{0}, {1}"}\r
+            start{"{0}, {1}"}\r
+        }\r
+        standard{\r
+            2{"{0} ۽ {1}"}\r
+            end{"{0}، ۽ {1}"}\r
+            middle{"{0}, {1}"}\r
+            start{"{0}, {1}"}\r
+        }\r
+        standard-short{\r
+            2{"{0} ۽ {1}"}\r
+            end{"{0}، ۽ {1}"}\r
+            middle{"{0}, {1}"}\r
+            start{"{0}, {1}"}\r
+        }\r
+        unit{\r
+            2{"{0}, {1}"}\r
+            end{"{0}, {1}"}\r
+            middle{"{0}, {1}"}\r
+            start{"{0}, {1}"}\r
+        }\r
+        unit-narrow{\r
+            2{"{0}, {1}"}\r
+            end{"{0}, {1}"}\r
+            middle{"{0}, {1}"}\r
+            start{"{0}, {1}"}\r
+        }\r
+        unit-short{\r
+            2{"{0}, {1}"}\r
+            end{"{0}, {1}"}\r
+            middle{"{0}, {1}"}\r
+            start{"{0}, {1}"}\r
+        }\r
+    }\r
+    measurementSystemNames{\r
+        UK{"برطانيه"}\r
+        US{"آمريڪا"}\r
+        metric{"ميٽرڪ"}\r
+    }\r
+    parse{\r
+        date{\r
+            lenient{\r
+                "[\\--/]",\r
+                "[\\:∶]",\r
+            }\r
+        }\r
+        general{\r
+            lenient{\r
+                "[.․。︒﹒.。]",\r
+                "['ʼ՚᾽᾿’']",\r
+                "[%٪﹪%]",\r
+                "[؉‰]",\r
+                "[\$﹩$$]",\r
+                "[£₤]",\r
+                "[¥¥]",\r
+                "[₩₩]",\r
+                "[₨₹{Rp}{Rs}]",\r
+            }\r
+        }\r
+        number{\r
+            lenient{\r
+                "[\\-‒⁻₋−➖﹣-]",\r
+                "[,،٫、︐︑﹐﹑,、]",\r
+                "[+⁺₊➕﬩﹢+]",\r
+            }\r
+            stricter{\r
+                "[,٫︐﹐,]",\r
+                "[.․﹒.。]",\r
+            }\r
+        }\r
+    }\r
+}\r
diff --git a/source/data/locales/sd_PK.txt b/source/data/locales/sd_PK.txt
new file mode 100644 (file)
index 0000000..ae61c39
--- /dev/null
@@ -0,0 +1,5 @@
+// © 2016 and later: Unicode, Inc. and others.\r
+// License & terms of use: http://www.unicode.org/copyright.html#License\r
+sd_PK{\r
+    Version{"2.1.38.39"}\r
+}\r
index b6ca1893c2c16dae033930c37947ba42f85cdd56..4e6d6dd29fa0b3fdbbaaeecdeaf2044e61732229 100644 (file)
@@ -11,7 +11,7 @@ se{
     NumberElements{\r
         latn{\r
             miscPatterns{\r
-                atLeast{"⩾{0}"}\r
+                atLeast{"â\89¥{0}"}\r
                 range{"{0}–{1}"}\r
             }\r
             patterns{\r
@@ -166,7 +166,7 @@ se{
         }\r
         minimumGroupingDigits{"1"}\r
     }\r
-    Version{"2.1.38.69"}\r
+    Version{"2.1.43.94"}\r
     calendar{\r
         gregorian{\r
             AmPmMarkers{\r
index 4014e671962113e42535e54463ad4fb8541f38d0..1694a3cabddc3a7502b52dfb225a240fdc8efea3 100644 (file)
@@ -62,7 +62,7 @@ se_FI{
             }\r
         }\r
     }\r
-    Version{"2.1.38.73"}\r
+    Version{"2.1.44.88"}\r
     calendar{\r
         generic{\r
             DateTimePatterns{\r
@@ -196,9 +196,9 @@ se_FI{
                 MEd{"E d.M"}\r
                 MMMEd{"E d MMM"}\r
                 MMMMW{\r
-                    one{"MMMM:a 'vahkku' W"}\r
-                    other{"MMM:a 'vahkku' W"}\r
-                    two{"MMMM:a 'vahkku' W"}\r
+                    one{"MMMM':a vahkku' W"}\r
+                    other{"MMMM':a vahkku' W"}\r
+                    two{"MMMM':a vahkku' W"}\r
                 }\r
                 MMMMd{"d MMMM"}\r
                 MMMd{"d MMM"}\r
@@ -1279,6 +1279,10 @@ se_FI{
         }\r
         year-short{\r
             dn{"j."}\r
+            relative{\r
+                "0"{"dán jagi"}\r
+                "1"{"boahtte jagi"}\r
+            }\r
             relativeTime{\r
                 future{\r
                     one{"{0} j. siste"}\r
index e34882628841671f20df22a3e8cfad63b5bdb462..5f5482ed923e626110a0876d6bfaf246bb62a715 100644 (file)
@@ -29,7 +29,9 @@ si{
         default{"latn"}\r
         latn{\r
             miscPatterns{\r
+                approximately{"~{0}"}\r
                 atLeast{"{0}+"}\r
+                atMost{"≤{0}"}\r
                 range{"{0}–{1}"}\r
             }\r
             patterns{\r
@@ -219,7 +221,7 @@ si{
         minimumGroupingDigits{"1"}\r
         native{"latn"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.50"}\r
     calendar{\r
         generic{\r
             DateTimePatterns{\r
@@ -1818,8 +1820,13 @@ si{
         general{\r
             lenient{\r
                 "[.․。︒﹒.。]",\r
+                "['ʼ՚᾽᾿’']",\r
+                "[%٪﹪%]",\r
+                "[؉‰]",\r
                 "[\$﹩$$]",\r
                 "[£₤]",\r
+                "[¥¥]",\r
+                "[₩₩]",\r
                 "[₨₹{Rp}{Rs}]",\r
             }\r
         }\r
index 8a0383f463752b388f3dbdb5827904f1cd4a796b..3b2682bd1841ec777478b2673a800cacb3bc71ec 100644 (file)
@@ -22,7 +22,9 @@ sk{
         default{"latn"}\r
         latn{\r
             miscPatterns{\r
+                approximately{"~{0}"}\r
                 atLeast{"{0}+"}\r
+                atMost{"≤{0}"}\r
                 range{"{0} – {1}"}\r
             }\r
             patterns{\r
@@ -287,7 +289,7 @@ sk{
         minimumGroupingDigits{"1"}\r
         native{"latn"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.65"}\r
     calendar{\r
         buddhist{\r
             eras{\r
@@ -715,10 +717,10 @@ sk{
                 yQQQ{"QQQ y"}\r
                 yQQQQ{"QQQQ y"}\r
                 yw{\r
-                    few{"w. 'týždeň' 'v' 'roku' Y"}\r
-                    many{"w. 'týždeň' 'v' 'roku' Y"}\r
-                    one{"w. 'týždeň' 'v' 'roku' Y"}\r
-                    other{"w. 'týždeň' 'v' 'roku' Y"}\r
+                    few{"w. 'týždeň' 'roka' Y"}\r
+                    many{"w. 'týždeň' 'roka' Y"}\r
+                    one{"w. 'týždeň' 'roka' Y"}\r
+                    other{"w. 'týždeň' 'roka' Y"}\r
                 }\r
             }\r
             dayNames{\r
@@ -2595,4 +2597,36 @@ sk{
         US{"americký"}\r
         metric{"metrický"}\r
     }\r
+    parse{\r
+        date{\r
+            lenient{\r
+                "[\\--/]",\r
+                "[\\:∶]",\r
+            }\r
+        }\r
+        general{\r
+            lenient{\r
+                "[.․。︒﹒.。]",\r
+                "['ʼ՚᾽᾿’']",\r
+                "[%٪﹪%]",\r
+                "[؉‰]",\r
+                "[\$﹩$$]",\r
+                "[£₤]",\r
+                "[¥¥]",\r
+                "[₩₩]",\r
+                "[₨₹{Rp}{Rs}]",\r
+            }\r
+        }\r
+        number{\r
+            lenient{\r
+                "[\\-‒⁻₋−➖﹣-]",\r
+                "[,،٫、︐︑﹐﹑,、]",\r
+                "[+⁺₊➕﬩﹢+]",\r
+            }\r
+            stricter{\r
+                "[,٫︐﹐,]",\r
+                "[.․﹒.。]",\r
+            }\r
+        }\r
+    }\r
 }\r
index b18daee6387e2339cf5bb4054b119a435a582ee1..2c7b70ee7f7f6dbafd1859fbb556e8493a76440a 100644 (file)
@@ -22,7 +22,9 @@ sl{
         default{"latn"}\r
         latn{\r
             miscPatterns{\r
-                atLeast{"⩾{0}"}\r
+                approximately{"~{0}"}\r
+                atLeast{"≥{0}"}\r
+                atMost{"≤{0}"}\r
                 range{"{0}–{1}"}\r
             }\r
             patterns{\r
@@ -287,7 +289,7 @@ sl{
         minimumGroupingDigits{"1"}\r
         native{"latn"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.91"}\r
     calendar{\r
         buddhist{\r
             eras{\r
@@ -1724,6 +1726,13 @@ sl{
         }\r
         day-narrow{\r
             dn{"dan"}\r
+            relative{\r
+                "-1"{"včeraj"}\r
+                "-2"{"predvčerajšnjim"}\r
+                "0"{"danes"}\r
+                "1"{"jutri"}\r
+                "2"{"pojutrišnjem"}\r
+            }\r
             relativeTime{\r
                 future{\r
                     few{"čez {0} dni"}\r
@@ -1741,6 +1750,13 @@ sl{
         }\r
         day-short{\r
             dn{"dan"}\r
+            relative{\r
+                "-1"{"včeraj"}\r
+                "-2"{"predvčerajšnjim"}\r
+                "0"{"danes"}\r
+                "1"{"jutri"}\r
+                "2"{"pojutrišnjem"}\r
+            }\r
             relativeTime{\r
                 future{\r
                     few{"čez {0} dni"}\r
@@ -2041,6 +2057,11 @@ sl{
         }\r
         month-narrow{\r
             dn{"mes."}\r
+            relative{\r
+                "-1"{"prejšnji mesec"}\r
+                "0"{"ta mesec"}\r
+                "1"{"naslednji mesec"}\r
+            }\r
             relativeTime{\r
                 future{\r
                     few{"čez {0} mes."}\r
@@ -2058,6 +2079,11 @@ sl{
         }\r
         month-short{\r
             dn{"mes."}\r
+            relative{\r
+                "-1"{"prejšnji mesec"}\r
+                "0"{"ta mesec"}\r
+                "1"{"naslednji mesec"}\r
+            }\r
             relativeTime{\r
                 future{\r
                     few{"čez {0} mes."}\r
@@ -2533,6 +2559,11 @@ sl{
         }\r
         week-narrow{\r
             dn{"ted."}\r
+            relative{\r
+                "-1"{"prejšnji teden"}\r
+                "0"{"ta teden"}\r
+                "1"{"naslednji teden"}\r
+            }\r
             relativePeriod{"v tednu {0}"}\r
             relativeTime{\r
                 future{\r
@@ -2551,6 +2582,11 @@ sl{
         }\r
         week-short{\r
             dn{"ted."}\r
+            relative{\r
+                "-1"{"prejšnji teden"}\r
+                "0"{"ta teden"}\r
+                "1"{"naslednji teden"}\r
+            }\r
             relativePeriod{"v tednu {0}"}\r
             relativeTime{\r
                 future{\r
@@ -2618,6 +2654,11 @@ sl{
         }\r
         year-narrow{\r
             dn{"leto"}\r
+            relative{\r
+                "-1"{"lani"}\r
+                "0"{"letos"}\r
+                "1"{"naslednje leto"}\r
+            }\r
             relativeTime{\r
                 future{\r
                     few{"čez {0} leta"}\r
@@ -2635,6 +2676,11 @@ sl{
         }\r
         year-short{\r
             dn{"leto"}\r
+            relative{\r
+                "-1"{"lani"}\r
+                "0"{"letos"}\r
+                "1"{"naslednje leto"}\r
+            }\r
             relativeTime{\r
                 future{\r
                     few{"čez {0} leta"}\r
@@ -2713,8 +2759,13 @@ sl{
         general{\r
             lenient{\r
                 "[.․。︒﹒.。]",\r
+                "['ʼ՚᾽᾿’']",\r
+                "[%٪﹪%]",\r
+                "[؉‰]",\r
                 "[\$﹩$$]",\r
                 "[£₤]",\r
+                "[¥¥]",\r
+                "[₩₩]",\r
                 "[₨₹{Rs}]",\r
             }\r
         }\r
index 6881a8c2b906d76e787bfdbf7db2e381f9b08e24..bf985df245771c1bfbfbcb971d4895aca00190bb 100644 (file)
@@ -8,7 +8,7 @@ sn{
     NumberElements{\r
         latn{\r
             miscPatterns{\r
-                atLeast{"⩾{0}"}\r
+                atLeast{"â\89¥{0}"}\r
                 range{"{0}–{1}"}\r
             }\r
             patterns{\r
@@ -33,7 +33,7 @@ sn{
         }\r
         minimumGroupingDigits{"1"}\r
     }\r
-    Version{"2.1.39.11"}\r
+    Version{"2.1.43.94"}\r
     calendar{\r
         generic{\r
             DateTimePatterns{\r
index 8d5606b5f91c980cf5a1eea6f2886a0cdd6dfbcd..3d95742e25a0b6a414654c9926253f0f030ea8ad 100644 (file)
@@ -1,12 +1,36 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 so{\r
+    AuxExemplarCharacters{"[]"}\r
+    Ellipsis{\r
+        final{"{0}…"}\r
+        initial{"…{0}"}\r
+        medial{"{0}…{1}"}\r
+        word-final{"{0} …"}\r
+        word-initial{"… {0}"}\r
+        word-medial{"{0} … {1}"}\r
+    }\r
     ExemplarCharacters{"[a b c d e f g h i j k l m n o p q r s t u v w x y z]"}\r
+    ExemplarCharactersIndex{"[B C D F G H J K L M N Q R S T W X Y]"}\r
     ExemplarCharactersNumbers{"[\\- , . % ‰ + 0 1 2 3 4 5 6 7 8 9]"}\r
+    ExemplarCharactersPunctuation{\r
+        "[\\- ‐ – — , ; \\: ! ? . … ' ‘ ’ \u0022 “ ” ( ) \\[ \\] § @ * / \\& # † ‡ ′ "\r
+        "″]"\r
+    }\r
+    MoreInformation{"?"}\r
     NumberElements{\r
+        default{"latn"}\r
         latn{\r
+            miscPatterns{\r
+                atLeast{"≥{0}"}\r
+                range{"{0}–{1}"}\r
+            }\r
             patterns{\r
+                accountingFormat{"¤#,##0.00"}\r
                 currencyFormat{"¤#,##0.00"}\r
+                decimalFormat{"#,##0.###"}\r
+                percentFormat{"#,##0%"}\r
+                scientificFormat{"#E0"}\r
             }\r
             patternsLong{\r
                 decimalFormat{\r
@@ -26,11 +50,21 @@ so{
             }\r
             symbols{\r
                 decimal{"."}\r
+                exponential{"E"}\r
                 group{","}\r
+                infinity{"∞"}\r
+                minusSign{"-"}\r
+                nan{"NaN"}\r
+                perMille{"‰"}\r
+                percentSign{"%"}\r
+                plusSign{"+"}\r
+                superscriptingExponent{"×"}\r
             }\r
         }\r
+        minimumGroupingDigits{"1"}\r
+        native{"latn"}\r
     }\r
-    Version{"2.1.38.69"}\r
+    Version{"2.1.43.94"}\r
     calendar{\r
         generic{\r
             DateTimePatterns{\r
@@ -38,10 +72,10 @@ so{
                 "h:mm:ss a z",\r
                 "h:mm:ss a",\r
                 "h:mm a",\r
-                "EEEE, MMMM dd, y G",\r
-                "dd MMMM y G",\r
-                "dd-MMM-y G",\r
-                "dd/MM/yy GGGGG",\r
+                "G y MMMM d, EEEE",\r
+                "G y MMMM d",\r
+                "G y MMM d",\r
+                "GGGGG y-MM-dd",\r
                 "{1} {0}",\r
                 "{1} {0}",\r
                 "{1} {0}",\r
@@ -49,6 +83,17 @@ so{
                 "{1} {0}",\r
             }\r
             availableFormats{\r
+                E{"ccc"}\r
+                EHm{"E HH:mm"}\r
+                EHms{"E HH:mm:ss"}\r
+                Ed{"d, E"}\r
+                Ehm{"E h:mm a"}\r
+                Ehms{"E h:mm:ss a"}\r
+                Gy{"G y"}\r
+                GyMMM{"G y MMM"}\r
+                GyMMMEd{"G y MMM d, E"}\r
+                GyMMMd{"G y MMM d"}\r
+                H{"HH"}\r
                 Hm{"HH:mm"}\r
                 Hms{"HH:mm:ss"}\r
                 M{"L"}\r
@@ -60,7 +105,9 @@ so{
                 MMMd{"MMM d"}\r
                 Md{"M/d"}\r
                 d{"d"}\r
+                h{"h a"}\r
                 hm{"h:mm a"}\r
+                hms{"h:mm:ss a"}\r
                 ms{"mm:ss"}\r
                 y{"y"}\r
                 yM{"M/y"}\r
@@ -70,6 +117,47 @@ so{
                 yMMMM{"MMMM y"}\r
                 yQQQ{"QQQ y"}\r
                 yQQQQ{"QQQQ y"}\r
+                yyyy{"G y"}\r
+                yyyyM{"GGGGG y-MM"}\r
+                yyyyMEd{"GGGGG y-MM-dd, E"}\r
+                yyyyMMM{"G y MMM"}\r
+                yyyyMMMEd{"G y MMM d, E"}\r
+                yyyyMMMM{"G y MMMM"}\r
+                yyyyMMMd{"G y MMM d"}\r
+                yyyyMd{"GGGGG y-MM-dd"}\r
+                yyyyQQQ{"G y QQQ"}\r
+                yyyyQQQQ{"G y QQQQ"}\r
+            }\r
+            intervalFormats{\r
+                fallback{"{0} – {1}"}\r
+                yMEd{\r
+                    M{"E, dd/MM/y – E, dd/MM/y"}\r
+                    d{"E, dd/MM/y – E, dd/MM/y"}\r
+                    y{"E, dd/MM/y – E, dd/MM/y"}\r
+                }\r
+                yMMM{\r
+                    M{"MMM–MMM y"}\r
+                    y{"MMM y – MMM y"}\r
+                }\r
+                yMMMEd{\r
+                    M{"E, MMM dd – E, MMM dd, y"}\r
+                    d{"E, MMM dd – E, MMM dd, y"}\r
+                    y{"E, MMM dd, y – E, MMM dd, y"}\r
+                }\r
+                yMMMM{\r
+                    M{"G y MMMM–MMMM"}\r
+                    y{"G y MMMM – y MMMM"}\r
+                }\r
+                yMMMd{\r
+                    M{"dd MMM – dd MMM y"}\r
+                    d{"dd–dd MMM y"}\r
+                    y{"dd MMM y – dd MMM y"}\r
+                }\r
+                yMd{\r
+                    M{"GGGGG y-MM-dd – y-MM-dd"}\r
+                    d{"GGGGG y-MM-dd – y-MM-dd"}\r
+                    y{"dd/MM/y – dd/MM/y"}\r
+                }\r
             }\r
         }\r
         gregorian{\r
@@ -100,9 +188,25 @@ so{
                 "{1} {0}",\r
                 "{1} {0}",\r
             }\r
+            appendItems{\r
+                Timezone{"{0} {1}"}\r
+            }\r
             availableFormats{\r
+                E{"ccc"}\r
+                EHm{"E HH:mm"}\r
+                EHms{"E HH:mm:ss"}\r
+                Ed{"d, E"}\r
+                Ehm{"E h:mm a"}\r
+                Ehms{"E h:mm:ss a"}\r
+                Gy{"G y"}\r
+                GyMMM{"G y MMM"}\r
+                GyMMMEd{"G y MMM d, E"}\r
+                GyMMMd{"G y MMM d"}\r
+                H{"HH"}\r
                 Hm{"HH:mm"}\r
                 Hms{"HH:mm:ss"}\r
+                Hmsv{"HH:mm:ss v"}\r
+                Hmv{"HH:mm v"}\r
                 M{"L"}\r
                 MEd{"E, M/d"}\r
                 MMM{"LLL"}\r
@@ -116,7 +220,11 @@ so{
                 MMMd{"MMM d"}\r
                 Md{"M/d"}\r
                 d{"d"}\r
+                h{"h a"}\r
                 hm{"h:mm a"}\r
+                hms{"h:mm:ss a"}\r
+                hmsv{"h:mm:ss a v"}\r
+                hmv{"h:mm a v"}\r
                 ms{"mm:ss"}\r
                 y{"y"}\r
                 yM{"M/y"}\r
@@ -124,8 +232,14 @@ so{
                 yMMM{"MMM y"}\r
                 yMMMEd{"E, MMM d, y"}\r
                 yMMMM{"MMMM y"}\r
+                yMMMd{"y MMM d"}\r
+                yMd{"y-MM-dd"}\r
                 yQQQ{"QQQ y"}\r
                 yQQQQ{"QQQQ y"}\r
+                yw{\r
+                    one{"'Usbuuca' w 'e' Y"}\r
+                    other{"'Usbuuca' w 'ee' Y"}\r
+                }\r
             }\r
             dayNames{\r
                 format{\r
@@ -167,6 +281,15 @@ so{
                     }\r
                 }\r
                 stand-alone{\r
+                    abbreviated{\r
+                        "Axd",\r
+                        "Isn",\r
+                        "Tal",\r
+                        "Arb",\r
+                        "Kha",\r
+                        "Jim",\r
+                        "Sab",\r
+                    }\r
                     narrow{\r
                         "A",\r
                         "I",\r
@@ -202,6 +325,10 @@ so{
                         am{"sn."}\r
                         pm{"gn."}\r
                     }\r
+                    narrow{\r
+                        am{"sn."}\r
+                        pm{"gn."}\r
+                    }\r
                     wide{\r
                         am{"sn."}\r
                         pm{"gn."}\r
@@ -213,10 +340,113 @@ so{
                     "CK",\r
                     "CD",\r
                 }\r
+                abbreviated%variant{\r
+                    "BCE",\r
+                    "CE",\r
+                }\r
                 wide{\r
                     "CK",\r
                     "CD",\r
                 }\r
+                wide%variant{\r
+                    "Ka hor taariikhda miilaadiga",\r
+                    "Taariikhda miilaadiga",\r
+                }\r
+            }\r
+            intervalFormats{\r
+                H{\r
+                    H{"HH–HH"}\r
+                }\r
+                Hm{\r
+                    H{"HH:mm–HH:mm"}\r
+                    m{"HH:mm–HH:mm"}\r
+                }\r
+                Hmv{\r
+                    H{"HH:mm–HH:mm v"}\r
+                    m{"HH:mm–HH:mm v"}\r
+                }\r
+                Hv{\r
+                    H{"HH–HH v"}\r
+                }\r
+                M{\r
+                    M{"M–M"}\r
+                }\r
+                MEd{\r
+                    M{"E, dd/MM – E, dd/MM"}\r
+                    d{"E, dd/MM – E, dd/MM"}\r
+                }\r
+                MMM{\r
+                    M{"MMM–MMM"}\r
+                }\r
+                MMMEd{\r
+                    M{"E, dd MMM – E, dd MMM"}\r
+                    d{"E, dd – E, dd MMM"}\r
+                }\r
+                MMMd{\r
+                    M{"dd MMM – dd MMM"}\r
+                    d{"dd–dd MMM"}\r
+                }\r
+                Md{\r
+                    M{"dd/MM – dd/MM"}\r
+                    d{"dd/MM – dd/MM"}\r
+                }\r
+                d{\r
+                    d{"d–d"}\r
+                }\r
+                fallback{"{0} - {1}"}\r
+                h{\r
+                    a{"h a – h a"}\r
+                    h{"h–h a"}\r
+                }\r
+                hm{\r
+                    a{"h:mm a – h:mm a"}\r
+                    h{"h:mm–h:mm a"}\r
+                    m{"h:mm–h:mm a"}\r
+                }\r
+                hmv{\r
+                    a{"h:mm a – h:mm a v"}\r
+                    h{"h:mm–h:mm a v"}\r
+                    m{"h:mm–h:mm a v"}\r
+                }\r
+                hv{\r
+                    a{"h a – h a v"}\r
+                    h{"h–h a v"}\r
+                }\r
+                y{\r
+                    y{"y–y"}\r
+                }\r
+                yM{\r
+                    M{"MM/y – MM/y"}\r
+                    y{"MM/y – MM/y"}\r
+                }\r
+                yMEd{\r
+                    M{"E, dd/MM/y – E, dd/MM/y"}\r
+                    d{"E, dd/MM/y – E, dd/MM/y"}\r
+                    y{"E, dd/MM/y – E, dd/MM/y"}\r
+                }\r
+                yMMM{\r
+                    M{"MMM–MMM y"}\r
+                    y{"MMM y – MMM y"}\r
+                }\r
+                yMMMEd{\r
+                    M{"E, MMM dd – E, MMM dd, y"}\r
+                    d{"E, MMM dd – E, MMM dd, y"}\r
+                    y{"E, MMM dd, y – E, MMM dd, y"}\r
+                }\r
+                yMMMM{\r
+                    M{"y MMMM–MMMM"}\r
+                    y{"y MMMM – y MMMM"}\r
+                }\r
+                yMMMd{\r
+                    M{"dd MMM – dd MMM y"}\r
+                    d{"dd–dd MMM y"}\r
+                    y{"dd MMM y – dd MMM y"}\r
+                }\r
+                yMd{\r
+                    M{"dd/MM/y – dd/MM/y"}\r
+                    d{"dd/MM/y – dd/MM/y"}\r
+                    y{"dd/MM/y – dd/MM/y"}\r
+                }\r
             }\r
             monthNames{\r
                 format{\r
@@ -225,14 +455,14 @@ so{
                         "Lab",\r
                         "Sad",\r
                         "Afr",\r
-                        "Sha",\r
-                        "Lix",\r
-                        "Tod",\r
-                        "Sid",\r
-                        "Sag",\r
-                        "Tob",\r
-                        "KIT",\r
-                        "LIT",\r
+                        "May",\r
+                        "Juun",\r
+                        "Luuliyo",\r
+                        "Og",\r
+                        "Sebtembar",\r
+                        "Oktoobar",\r
+                        "Nofembar",\r
+                        "Dec",\r
                     }\r
                     narrow{\r
                         "K",\r
@@ -263,6 +493,50 @@ so{
                         "Bisha Laba iyo Tobnaad",\r
                     }\r
                 }\r
+                stand-alone{\r
+                    abbreviated{\r
+                        "Jan",\r
+                        "Feb",\r
+                        "Mar",\r
+                        "Abr",\r
+                        "May",\r
+                        "Juun",\r
+                        "Luuliyo",\r
+                        "Og",\r
+                        "Seb",\r
+                        "Okt",\r
+                        "Nof",\r
+                        "Des",\r
+                    }\r
+                    narrow{\r
+                        "J",\r
+                        "F",\r
+                        "M",\r
+                        "A",\r
+                        "M",\r
+                        "J",\r
+                        "L",\r
+                        "O",\r
+                        "S",\r
+                        "O",\r
+                        "N",\r
+                        "D",\r
+                    }\r
+                    wide{\r
+                        "Jannaayo",\r
+                        "Febraayo",\r
+                        "Maarso",\r
+                        "Abriil",\r
+                        "May",\r
+                        "Juun",\r
+                        "Luuliyo",\r
+                        "Ogost",\r
+                        "Sebtembar",\r
+                        "Oktoobar",\r
+                        "Nofembar",\r
+                        "Desembar",\r
+                    }\r
+                }\r
             }\r
             quarters{\r
                 format{\r
@@ -286,6 +560,18 @@ so{
                     }\r
                 }\r
                 stand-alone{\r
+                    abbreviated{\r
+                        "R1",\r
+                        "R2",\r
+                        "R3",\r
+                        "R4",\r
+                    }\r
+                    narrow{\r
+                        "1",\r
+                        "2",\r
+                        "3",\r
+                        "4",\r
+                    }\r
                     wide{\r
                         "Rubaca 1aad",\r
                         "Rubaca 2aad",\r
@@ -322,6 +608,7 @@ so{
             }\r
         }\r
         day-narrow{\r
+            dn{"Maalin-dhuuban"}\r
             relativeTime{\r
                 future{\r
                     one{"+{0} d"}\r
@@ -369,6 +656,7 @@ so{
             }\r
         }\r
         hour-narrow{\r
+            dn{"Saacad-gaaban"}\r
             relativeTime{\r
                 future{\r
                     one{"+{0} h"}\r
@@ -381,6 +669,7 @@ so{
             }\r
         }\r
         hour-short{\r
+            dn{"Saacad-gaaban"}\r
             relativeTime{\r
                 future{\r
                     one{"+{0} h"}\r
@@ -409,6 +698,7 @@ so{
             }\r
         }\r
         minute-narrow{\r
+            dn{"Daqiiqad-dhuuban"}\r
             relativeTime{\r
                 future{\r
                     one{"+{0} min"}\r
@@ -421,6 +711,7 @@ so{
             }\r
         }\r
         minute-short{\r
+            dn{"Minute"}\r
             relativeTime{\r
                 future{\r
                     one{"+{0} min"}\r
@@ -434,6 +725,11 @@ so{
         }\r
         month{\r
             dn{"Month"}\r
+            relative{\r
+                "-1"{"Bishii la soo dhaafay"}\r
+                "0"{"Bishan"}\r
+                "1"{"Bisha xigta"}\r
+            }\r
             relativeTime{\r
                 future{\r
                     one{"+{0} m"}\r
@@ -446,6 +742,7 @@ so{
             }\r
         }\r
         month-narrow{\r
+            dn{"Bil-gaaban"}\r
             relativeTime{\r
                 future{\r
                     one{"+{0} m"}\r
@@ -458,6 +755,7 @@ so{
             }\r
         }\r
         month-short{\r
+            dn{"Bil-gaaban"}\r
             relativeTime{\r
                 future{\r
                     one{"+{0} m"}\r
@@ -483,6 +781,7 @@ so{
             }\r
         }\r
         quarter-narrow{\r
+            dn{"Rubuc-dhuuban"}\r
             relativeTime{\r
                 future{\r
                     one{"+{0} Q"}\r
@@ -495,6 +794,7 @@ so{
             }\r
         }\r
         quarter-short{\r
+            dn{"Rubuc-gaaban"}\r
             relativeTime{\r
                 future{\r
                     one{"+{0} Q"}\r
@@ -523,6 +823,7 @@ so{
             }\r
         }\r
         second-narrow{\r
+            dn{"Il-biriqsi-dhuuban"}\r
             relativeTime{\r
                 future{\r
                     one{"+{0} s"}\r
@@ -535,6 +836,7 @@ so{
             }\r
         }\r
         second-short{\r
+            dn{"Il-biriqsi-gaaban"}\r
             relativeTime{\r
                 future{\r
                     one{"+{0} s"}\r
@@ -565,6 +867,11 @@ so{
         }\r
         week{\r
             dn{"Week"}\r
+            relative{\r
+                "-1"{"Usbuucii la soo dhaafay"}\r
+                "0"{"Usbuucan"}\r
+                "1"{"Usbuuca xiga"}\r
+            }\r
             relativePeriod{"the week of {0}"}\r
             relativeTime{\r
                 future{\r
@@ -578,6 +885,7 @@ so{
             }\r
         }\r
         week-narrow{\r
+            dn{"Usbuuc-dhuuban"}\r
             relativePeriod{"the week of {0}"}\r
             relativeTime{\r
                 future{\r
@@ -591,6 +899,7 @@ so{
             }\r
         }\r
         week-short{\r
+            dn{"Usbuuc-gaaban"}\r
             relativePeriod{"the week of {0}"}\r
             relativeTime{\r
                 future{\r
@@ -608,6 +917,11 @@ so{
         }\r
         year{\r
             dn{"Year"}\r
+            relative{\r
+                "-1"{"Sannadkii la soo dhaafay"}\r
+                "0"{"Sannadkan"}\r
+                "1"{"Sannadka xiga"}\r
+            }\r
             relativeTime{\r
                 future{\r
                     one{"+{0} y"}\r
@@ -620,6 +934,7 @@ so{
             }\r
         }\r
         year-narrow{\r
+            dn{"Sannad-dhuuban"}\r
             relativeTime{\r
                 future{\r
                     one{"+{0} y"}\r
@@ -632,6 +947,7 @@ so{
             }\r
         }\r
         year-short{\r
+            dn{"Sanadkii"}\r
             relativeTime{\r
                 future{\r
                     one{"+{0} y"}\r
@@ -647,4 +963,79 @@ so{
             dn{"Zone"}\r
         }\r
     }\r
+    listPattern{\r
+        or{\r
+            2{"{0} ama {1}"}\r
+            end{"{0} ama {1}"}\r
+            middle{"{0}, {1}"}\r
+            start{"{0}, {1}"}\r
+        }\r
+        standard{\r
+            2{"{0} iyo {1}"}\r
+            end{"{0} iyo {1}"}\r
+            middle{"{0}, {1}"}\r
+            start{"{0}, {1}"}\r
+        }\r
+        standard-short{\r
+            2{"{0} iyo {1}"}\r
+            end{"{0} iyo {1}"}\r
+            middle{"{0}, {1}"}\r
+            start{"{0}, {1}"}\r
+        }\r
+        unit{\r
+            2{"{0} iyo {1}"}\r
+            end{"{0} iyo {1}"}\r
+            middle{"{0}, {1}"}\r
+            start{"{0}, {1}"}\r
+        }\r
+        unit-narrow{\r
+            2{"{0}, {1}"}\r
+            end{"{0}, {1}"}\r
+            middle{"{0}, {1}"}\r
+            start{"{0}, {1}"}\r
+        }\r
+        unit-short{\r
+            2{"{0}, {1}"}\r
+            end{"{0}, {1}"}\r
+            middle{"{0}, {1}"}\r
+            start{"{0}, {1}"}\r
+        }\r
+    }\r
+    measurementSystemNames{\r
+        UK{"UK"}\r
+        US{"US"}\r
+        metric{"Metrik"}\r
+    }\r
+    parse{\r
+        date{\r
+            lenient{\r
+                "[\\--/]",\r
+                "[\\:∶]",\r
+            }\r
+        }\r
+        general{\r
+            lenient{\r
+                "[.․。︒﹒.。]",\r
+                "['ʼ՚᾽᾿’']",\r
+                "[%٪﹪%]",\r
+                "[؉‰]",\r
+                "[\$﹩$$]",\r
+                "[£₤]",\r
+                "[¥¥]",\r
+                "[₩₩]",\r
+                "[₨₹{Rp}{Rs}]",\r
+            }\r
+        }\r
+        number{\r
+            lenient{\r
+                "[\\-‒⁻₋−➖﹣-]",\r
+                "[,،٫、︐︑﹐﹑,、]",\r
+                "[+⁺₊➕﬩﹢+]",\r
+            }\r
+            stricter{\r
+                "[,٫︐﹐,]",\r
+                "[.․﹒.。]",\r
+            }\r
+        }\r
+    }\r
 }\r
index b8225cffadc5aac254e62191baca13f7ebbf55b8..e144a8ae3a487dfdc3434fe68bd8e93cbbcf8abf 100644 (file)
@@ -28,7 +28,9 @@ sq{
         default{"latn"}\r
         latn{\r
             miscPatterns{\r
-                atLeast{">{0}"}\r
+                approximately{"≈{0}"}\r
+                atLeast{"≥{0}"}\r
+                atMost{"≤{0}"}\r
                 range{"{0}-{1}"}\r
             }\r
             patterns{\r
@@ -217,10 +219,10 @@ sq{
                 other{"{0} libra"}\r
             }\r
         }\r
-        minimumGroupingDigits{"1"}\r
+        minimumGroupingDigits{"2"}\r
         native{"latn"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.50"}\r
     calendar{\r
         generic{\r
             DateTimePatterns{\r
@@ -283,6 +285,20 @@ sq{
                 yyyyQQQQ{"QQQQ, y G"}\r
             }\r
             intervalFormats{\r
+                H{\r
+                    H{"HH–HH"}\r
+                }\r
+                Hm{\r
+                    H{"HH:mm–HH:mm"}\r
+                    m{"HH:mm–HH:mm"}\r
+                }\r
+                Hmv{\r
+                    H{"HH:mm–HH:mm v"}\r
+                    m{"HH:mm–HH:mm v"}\r
+                }\r
+                Hv{\r
+                    H{"HH–HH v"}\r
+                }\r
                 M{\r
                     M{"M – M"}\r
                 }\r
@@ -352,12 +368,12 @@ sq{
                 "e pasdites",\r
             }\r
             AmPmMarkersAbbr{\r
-                "e paradites",\r
-                "e pasdites",\r
+                "p.d.",\r
+                "m.d.",\r
             }\r
             AmPmMarkersNarrow{\r
-                "e paradites",\r
-                "e pasdites",\r
+                "p.d.",\r
+                "m.d.",\r
             }\r
             DateTimePatterns{\r
                 "h:mm:ss a, zzzz",\r
@@ -445,22 +461,22 @@ sq{
                         "Sht",\r
                     }\r
                     narrow{\r
-                        "D",\r
-                        "H",\r
-                        "M",\r
-                        "M",\r
-                        "E",\r
-                        "P",\r
-                        "Sh",\r
+                        "d",\r
+                        "h",\r
+                        "m",\r
+                        "m",\r
+                        "e",\r
+                        "p",\r
+                        "sh",\r
                     }\r
                     short{\r
-                        "Die",\r
-                        "Hën",\r
-                        "Mar",\r
-                        "Mër",\r
-                        "Enj",\r
-                        "Pre",\r
-                        "Sht",\r
+                        "die",\r
+                        "hën",\r
+                        "mar",\r
+                        "mër",\r
+                        "enj",\r
+                        "pre",\r
+                        "sht",\r
                     }\r
                     wide{\r
                         "e diel",\r
@@ -474,40 +490,40 @@ sq{
                 }\r
                 stand-alone{\r
                     abbreviated{\r
-                        "Die",\r
-                        "Hën",\r
-                        "Mar",\r
-                        "Mër",\r
-                        "Enj",\r
-                        "Pre",\r
-                        "Sht",\r
+                        "die",\r
+                        "hën",\r
+                        "mar",\r
+                        "mër",\r
+                        "enj",\r
+                        "pre",\r
+                        "sht",\r
                     }\r
                     narrow{\r
-                        "D",\r
-                        "H",\r
-                        "M",\r
-                        "M",\r
-                        "E",\r
-                        "P",\r
-                        "Sh",\r
+                        "d",\r
+                        "h",\r
+                        "m",\r
+                        "m",\r
+                        "e",\r
+                        "p",\r
+                        "sh",\r
                     }\r
                     short{\r
-                        "Die",\r
-                        "Hën",\r
-                        "Mar",\r
-                        "Mër",\r
-                        "Enj",\r
-                        "Pre",\r
-                        "Sht",\r
+                        "die",\r
+                        "hën",\r
+                        "mar",\r
+                        "mër",\r
+                        "enj",\r
+                        "pre",\r
+                        "sht",\r
                     }\r
                     wide{\r
-                        "E diel",\r
-                        "E hënë",\r
-                        "E martë",\r
-                        "E mërkurë",\r
-                        "E enjte",\r
-                        "E premte",\r
-                        "E shtunë",\r
+                        "e diel",\r
+                        "e hënë",\r
+                        "e martë",\r
+                        "e mërkurë",\r
+                        "e enjte",\r
+                        "e premte",\r
+                        "e shtunë",\r
                     }\r
                 }\r
             }\r
@@ -544,25 +560,25 @@ sq{
                 stand-alone{\r
                     abbreviated{\r
                         afternoon1{"pasdite"}\r
-                        am{"paradite"}\r
+                        am{"p.d."}\r
                         evening1{"mbrëmje"}\r
                         midnight{"mesnatë"}\r
                         morning1{"mëngjes"}\r
                         morning2{"paradite"}\r
                         night1{"natë"}\r
                         noon{"mesditë"}\r
-                        pm{"pasdite"}\r
+                        pm{"m.d."}\r
                     }\r
                     narrow{\r
                         afternoon1{"pasdite"}\r
-                        am{"paradite"}\r
+                        am{"p.d."}\r
                         evening1{"mbrëmje"}\r
                         midnight{"mesnatë"}\r
                         morning1{"mëngjes"}\r
                         morning2{"paradite"}\r
                         night1{"natë"}\r
                         noon{"mesditë"}\r
-                        pm{"pasdite"}\r
+                        pm{"m.d."}\r
                     }\r
                     wide{\r
                         afternoon1{"pasdite"}\r
@@ -745,46 +761,46 @@ sq{
                 }\r
                 stand-alone{\r
                     abbreviated{\r
-                        "Jan",\r
-                        "Shk",\r
-                        "Mar",\r
-                        "Pri",\r
-                        "Maj",\r
-                        "Qer",\r
-                        "Korr",\r
-                        "Gush",\r
-                        "Sht",\r
-                        "Tet",\r
-                        "Nën",\r
-                        "Dhj",\r
+                        "jan",\r
+                        "shk",\r
+                        "mar",\r
+                        "pri",\r
+                        "maj",\r
+                        "qer",\r
+                        "korr",\r
+                        "gush",\r
+                        "sht",\r
+                        "tet",\r
+                        "nën",\r
+                        "dhj",\r
                     }\r
                     narrow{\r
-                        "J",\r
-                        "Sh",\r
-                        "M",\r
-                        "P",\r
-                        "M",\r
-                        "Q",\r
-                        "K",\r
-                        "G",\r
-                        "Sh",\r
-                        "T",\r
-                        "N",\r
-                        "Dh",\r
+                        "j",\r
+                        "sh",\r
+                        "m",\r
+                        "p",\r
+                        "m",\r
+                        "q",\r
+                        "k",\r
+                        "g",\r
+                        "sh",\r
+                        "t",\r
+                        "n",\r
+                        "dh",\r
                     }\r
                     wide{\r
-                        "Janar",\r
-                        "Shkurt",\r
-                        "Mars",\r
-                        "Prill",\r
-                        "Maj",\r
-                        "Qershor",\r
-                        "Korrik",\r
-                        "Gusht",\r
-                        "Shtator",\r
-                        "Tetor",\r
-                        "Nëntor",\r
-                        "Dhjetor",\r
+                        "janar",\r
+                        "shkurt",\r
+                        "mars",\r
+                        "prill",\r
+                        "maj",\r
+                        "qershor",\r
+                        "korrik",\r
+                        "gusht",\r
+                        "shtator",\r
+                        "tetor",\r
+                        "nëntor",\r
+                        "dhjetor",\r
                     }\r
                 }\r
             }\r
@@ -1006,7 +1022,7 @@ sq{
             }\r
             relativeTime{\r
                 future{\r
-                    one{"pas {0} të premte"}\r
+                    one{"pas {0} të premteje"}\r
                     other{"pas {0} të premtesh"}\r
                 }\r
                 past{\r
@@ -1023,7 +1039,7 @@ sq{
             }\r
             relativeTime{\r
                 future{\r
-                    one{"pas {0} të premte"}\r
+                    one{"pas {0} të premteje"}\r
                     other{"pas {0} të premtesh"}\r
                 }\r
                 past{\r
@@ -1040,7 +1056,7 @@ sq{
             }\r
             relativeTime{\r
                 future{\r
-                    one{"pas {0} të premte"}\r
+                    one{"pas {0} të premteje"}\r
                     other{"pas {0} të premtesh"}\r
                 }\r
                 past{\r
@@ -1108,28 +1124,28 @@ sq{
             }\r
         }\r
         minute-narrow{\r
-            dn{"min."}\r
+            dn{"min"}\r
             relativeTime{\r
                 future{\r
-                    one{"pas {0} min."}\r
-                    other{"pas {0} min."}\r
+                    one{"pas {0} min"}\r
+                    other{"pas {0} min"}\r
                 }\r
                 past{\r
-                    one{"{0} min. më parë"}\r
-                    other{"{0} min. më parë"}\r
+                    one{"{0} min më parë"}\r
+                    other{"{0} min më parë"}\r
                 }\r
             }\r
         }\r
         minute-short{\r
-            dn{"min."}\r
+            dn{"min"}\r
             relativeTime{\r
                 future{\r
-                    one{"pas {0} min."}\r
-                    other{"pas {0} min."}\r
+                    one{"pas {0} min"}\r
+                    other{"pas {0} min"}\r
                 }\r
                 past{\r
-                    one{"{0} min. më parë"}\r
-                    other{"{0} min. më parë"}\r
+                    one{"{0} min më parë"}\r
+                    other{"{0} min më parë"}\r
                 }\r
             }\r
         }\r
@@ -1204,6 +1220,11 @@ sq{
         }\r
         month-narrow{\r
             dn{"muaj"}\r
+            relative{\r
+                "-1"{"muajin e kaluar"}\r
+                "0"{"këtë muaj"}\r
+                "1"{"muajin e ardhshëm"}\r
+            }\r
             relativeTime{\r
                 future{\r
                     one{"pas {0} muaji"}\r
@@ -1217,6 +1238,11 @@ sq{
         }\r
         month-short{\r
             dn{"muaj"}\r
+            relative{\r
+                "-1"{"muajin e kaluar"}\r
+                "0"{"këtë muaj"}\r
+                "1"{"muajin e ardhshëm"}\r
+            }\r
             relativeTime{\r
                 future{\r
                     one{"pas {0} muaji"}\r
@@ -1248,6 +1274,11 @@ sq{
         }\r
         quarter-narrow{\r
             dn{"tremujor"}\r
+            relative{\r
+                "-1"{"tremujorin e kaluar"}\r
+                "0"{"këtë tremujor"}\r
+                "1"{"tremujorin e ardhshëm"}\r
+            }\r
             relativeTime{\r
                 future{\r
                     one{"pas {0} tremujori"}\r
@@ -1261,6 +1292,11 @@ sq{
         }\r
         quarter-short{\r
             dn{"tremujor"}\r
+            relative{\r
+                "-1"{"tremujorin e kaluar"}\r
+                "0"{"këtë tremujor"}\r
+                "1"{"tremujorin e ardhshëm"}\r
+            }\r
             relativeTime{\r
                 future{\r
                     one{"pas {0} tremujori"}\r
@@ -1340,28 +1376,28 @@ sq{
             }\r
         }\r
         second-narrow{\r
-            dn{"sek."}\r
+            dn{"sek"}\r
             relativeTime{\r
                 future{\r
-                    one{"pas {0} sek."}\r
-                    other{"pas {0} sek."}\r
+                    one{"pas {0} sek"}\r
+                    other{"pas {0} sek"}\r
                 }\r
                 past{\r
-                    one{"{0} sek. më parë"}\r
-                    other{"{0} sek. më parë"}\r
+                    one{"{0} sek më parë"}\r
+                    other{"{0} sek më parë"}\r
                 }\r
             }\r
         }\r
         second-short{\r
-            dn{"sek."}\r
+            dn{"sek"}\r
             relativeTime{\r
                 future{\r
-                    one{"pas {0} sek."}\r
-                    other{"pas {0} sek."}\r
+                    one{"pas {0} sek"}\r
+                    other{"pas {0} sek"}\r
                 }\r
                 past{\r
-                    one{"{0} sek. më parë"}\r
-                    other{"{0} sek. më parë"}\r
+                    one{"{0} sek më parë"}\r
+                    other{"{0} sek më parë"}\r
                 }\r
             }\r
         }\r
@@ -1424,7 +1460,7 @@ sq{
             }\r
             relativeTime{\r
                 future{\r
-                    one{"pas {0} të enjte"}\r
+                    one{"pas {0} të enjteje"}\r
                     other{"pas {0} të enjtesh"}\r
                 }\r
                 past{\r
@@ -1441,7 +1477,7 @@ sq{
             }\r
             relativeTime{\r
                 future{\r
-                    one{"pas {0} të enjte"}\r
+                    one{"pas {0} të enjteje"}\r
                     other{"pas {0} të enjtesh"}\r
                 }\r
                 past{\r
@@ -1458,7 +1494,7 @@ sq{
             }\r
             relativeTime{\r
                 future{\r
-                    one{"pas {0} të enjte"}\r
+                    one{"pas {0} të enjteje"}\r
                     other{"pas {0} të enjtesh"}\r
                 }\r
                 past{\r
@@ -1590,6 +1626,11 @@ sq{
         }\r
         week-narrow{\r
             dn{"javë"}\r
+            relative{\r
+                "-1"{"javën e kaluar"}\r
+                "0"{"këtë javë"}\r
+                "1"{"javën e ardhshme"}\r
+            }\r
             relativePeriod{"java e {0}"}\r
             relativeTime{\r
                 future{\r
@@ -1604,6 +1645,11 @@ sq{
         }\r
         week-short{\r
             dn{"javë"}\r
+            relative{\r
+                "-1"{"javën e kaluar"}\r
+                "0"{"këtë javë"}\r
+                "1"{"javën e ardhshme"}\r
+            }\r
             relativePeriod{"java e {0}"}\r
             relativeTime{\r
                 future{\r
@@ -1646,9 +1692,9 @@ sq{
         year{\r
             dn{"vit"}\r
             relative{\r
-                "-1"{"vitin e kaluar"}\r
-                "0"{"këtë vit"}\r
-                "1"{"vitin e ardhshëm"}\r
+                "-1"{"vjet"}\r
+                "0"{"sivjet"}\r
+                "1"{"mot"}\r
             }\r
             relativeTime{\r
                 future{\r
@@ -1663,6 +1709,11 @@ sq{
         }\r
         year-narrow{\r
             dn{"vit"}\r
+            relative{\r
+                "-1"{"vitin e kaluar"}\r
+                "0"{"këtë vit"}\r
+                "1"{"vitin e ardhshëm"}\r
+            }\r
             relativeTime{\r
                 future{\r
                     one{"pas {0} viti"}\r
@@ -1676,6 +1727,11 @@ sq{
         }\r
         year-short{\r
             dn{"vit"}\r
+            relative{\r
+                "-1"{"vitin e kaluar"}\r
+                "0"{"këtë vit"}\r
+                "1"{"vitin e ardhshëm"}\r
+            }\r
             relativeTime{\r
                 future{\r
                     one{"pas {0} viti"}\r
@@ -1750,8 +1806,13 @@ sq{
         general{\r
             lenient{\r
                 "[.․。︒﹒.。]",\r
+                "['ʼ՚᾽᾿’']",\r
+                "[%٪﹪%]",\r
+                "[؉‰]",\r
                 "[\$﹩$$]",\r
                 "[£₤]",\r
+                "[¥¥]",\r
+                "[₩₩]",\r
                 "[₨₹{Rp}{Rs}]",\r
             }\r
         }\r
index 642bb50cd3219b11541ea7bee97025b8105943e2..8315219542d788a9fa5e7c185b198e3b4ddfbb9e 100644 (file)
@@ -19,7 +19,9 @@ sr{
         default{"latn"}\r
         latn{\r
             miscPatterns{\r
-                atLeast{"⩾{0}"}\r
+                approximately{"~{0}"}\r
+                atLeast{"≥{0}"}\r
+                atMost{"≤{0}"}\r
                 range{"{0}–{1}"}\r
             }\r
             patterns{\r
@@ -247,7 +249,7 @@ sr{
         minimumGroupingDigits{"1"}\r
         native{"latn"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.94"}\r
     calendar{\r
         buddhist{\r
             eras{\r
@@ -1256,6 +1258,7 @@ sr{
                     "Таишо",\r
                     "Шова",\r
                     "Хаисеи",\r
+                    "Qqqq",\r
                 }\r
             }\r
         }\r
@@ -1407,6 +1410,13 @@ sr{
         }\r
         day-narrow{\r
             dn{"д."}\r
+            relative{\r
+                "-1"{"јуче"}\r
+                "-2"{"прекјуче"}\r
+                "0"{"данас"}\r
+                "1"{"сутра"}\r
+                "2"{"прекосутра"}\r
+            }\r
             relativeTime{\r
                 future{\r
                     few{"за {0} д."}\r
@@ -1422,6 +1432,13 @@ sr{
         }\r
         day-short{\r
             dn{"д."}\r
+            relative{\r
+                "-1"{"јуче"}\r
+                "-2"{"прекјуче"}\r
+                "0"{"данас"}\r
+                "1"{"сутра"}\r
+                "2"{"прекосутра"}\r
+            }\r
             relativeTime{\r
                 future{\r
                     few{"за {0} д."}\r
@@ -2338,8 +2355,13 @@ sr{
         general{\r
             lenient{\r
                 "[.․。︒﹒.。]",\r
+                "['ʼ՚᾽᾿’']",\r
+                "[%٪﹪%]",\r
+                "[؉‰]",\r
                 "[\$﹩$$]",\r
                 "[£₤]",\r
+                "[¥¥]",\r
+                "[₩₩]",\r
                 "[₨₹{Rp}{Rs}]",\r
             }\r
         }\r
index 9604803007c57717d69f92c81c24aa15b190e5ed..606d263166f4093d87eeb7a9b02e735fe732e1d8 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 sr_Cyrl_BA{\r
-    Version{"2.1.38.69"}\r
+    Version{"2.1.44.88"}\r
     calendar{\r
         generic{\r
             intervalFormats{\r
@@ -30,21 +30,21 @@ sr_Cyrl_BA{
                     other{"W. 'сједмица' 'у' MMM"}\r
                 }\r
                 yw{\r
-                    few{"w. 'сједмица' 'у' y."}\r
-                    one{"w. 'сједмица' 'у' y."}\r
-                    other{"w. 'сједмица' 'у' y."}\r
+                    few{"w. 'сједмица' 'у' Y."}\r
+                    one{"w. 'сједмица' 'у' Y."}\r
+                    other{"w. 'сједмица' 'у' Y."}\r
                 }\r
             }\r
             dayNames{\r
                 format{\r
                     abbreviated{\r
-                        "нед.",\r
-                        "пон.",\r
-                        "ут.",\r
-                        "ср.",\r
-                        "чет.",\r
-                        "пет.",\r
-                        "суб.",\r
+                        "нед",\r
+                        "пон",\r
+                        "ут",\r
+                        "ср",\r
+                        "чет",\r
+                        "пет",\r
+                        "суб",\r
                     }\r
                     wide{\r
                         "недјеља",\r
@@ -58,13 +58,13 @@ sr_Cyrl_BA{
                 }\r
                 stand-alone{\r
                     abbreviated{\r
-                        "нед.",\r
-                        "пон.",\r
-                        "ут.",\r
-                        "ср.",\r
-                        "чет.",\r
-                        "пет.",\r
-                        "суб.",\r
+                        "нед",\r
+                        "пон",\r
+                        "ут",\r
+                        "ср",\r
+                        "чет",\r
+                        "пет",\r
+                        "суб",\r
                     }\r
                     wide{\r
                         "недјеља",\r
@@ -121,37 +121,45 @@ sr_Cyrl_BA{
                     "нове ере",\r
                 }\r
             }\r
-            monthNames{\r
-                format{\r
-                    abbreviated{\r
-                        "јан.",\r
-                        "феб.",\r
-                        "март",\r
-                        "апр.",\r
-                        "мај",\r
-                        "јун",\r
-                        "јул",\r
-                        "авг.",\r
-                        "септ.",\r
-                        "окт.",\r
-                        "нов.",\r
-                        "дец.",\r
-                    }\r
+            intervalFormats{\r
+                MEd{\r
+                    M{"E, MM-dd – E, MM-dd"}\r
+                    d{"E, MM-dd – E, MM-dd"}\r
+                }\r
+                Md{\r
+                    M{"MM-dd – MM-dd"}\r
+                    d{"MM-dd – MM-dd"}\r
+                }\r
+                yM{\r
+                    M{"y-MM – y-MM"}\r
+                    y{"y-MM – y-MM"}\r
+                }\r
+                yMEd{\r
+                    M{"E, y-MM-dd – E, y-MM-dd"}\r
+                    d{"E, y-MM-dd – E, y-MM-dd"}\r
+                    y{"E, y-MM-dd – E, y-MM-dd"}\r
                 }\r
+                yMd{\r
+                    M{"y-MM-dd – y-MM-dd"}\r
+                    d{"y-MM-dd – y-MM-dd"}\r
+                    y{"y-MM-dd – y-MM-dd"}\r
+                }\r
+            }\r
+            monthNames{\r
                 stand-alone{\r
                     abbreviated{\r
-                        "јан.",\r
-                        "феб.",\r
+                        "јан",\r
+                        "феб",\r
                         "март",\r
-                        "апр.",\r
+                        "апр",\r
                         "мај",\r
                         "јун",\r
                         "јул",\r
-                        "авг.",\r
-                        "септ.",\r
-                        "окт.",\r
-                        "нов.",\r
-                        "дец.",\r
+                        "авг",\r
+                        "септ",\r
+                        "окт",\r
+                        "нов",\r
+                        "дец",\r
                     }\r
                 }\r
             }\r
index 21a3a146196e645aab612894e984b9050cd2c881..9fb67926cbe6df204458e3dcc6195831fe2a5cf8 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 sr_Cyrl_ME{\r
-    Version{"2.1.38.69"}\r
+    Version{"2.1.44.88"}\r
     calendar{\r
         generic{\r
             intervalFormats{\r
@@ -27,9 +27,9 @@ sr_Cyrl_ME{
                     other{"W. 'сједмица' 'у' MMM"}\r
                 }\r
                 yw{\r
-                    few{"w. 'сједмица' 'у' y."}\r
-                    one{"w. 'сједмица' 'у' y."}\r
-                    other{"w. 'сједмица' 'у' y."}\r
+                    few{"w. 'сједмица' 'у' Y."}\r
+                    one{"w. 'сједмица' 'у' Y."}\r
+                    other{"w. 'сједмица' 'у' Y."}\r
                 }\r
             }\r
             dayNames{\r
index a1325e667aa4eb238556d430508014d0e750112d..bfc9b71eebe59a83a3f6946942096a5deb0b16a6 100644 (file)
@@ -20,7 +20,9 @@ sr_Latn{
         default{"latn"}\r
         latn{\r
             miscPatterns{\r
-                atLeast{"⩾{0}"}\r
+                approximately{"~{0}"}\r
+                atLeast{"≥{0}"}\r
+                atMost{"≤{0}"}\r
                 range{"{0}–{1}"}\r
             }\r
             patterns{\r
@@ -248,7 +250,7 @@ sr_Latn{
         minimumGroupingDigits{"1"}\r
         native{"latn"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.50"}\r
     calendar{\r
         buddhist{\r
             eras{\r
@@ -1257,6 +1259,7 @@ sr_Latn{
                     "Taišo",\r
                     "Šova",\r
                     "Haisei",\r
+                    "Qqqq",\r
                 }\r
             }\r
         }\r
@@ -1408,6 +1411,13 @@ sr_Latn{
         }\r
         day-narrow{\r
             dn{"d."}\r
+            relative{\r
+                "-1"{"juče"}\r
+                "-2"{"prekjuče"}\r
+                "0"{"danas"}\r
+                "1"{"sutra"}\r
+                "2"{"prekosutra"}\r
+            }\r
             relativeTime{\r
                 future{\r
                     few{"za {0} d."}\r
@@ -1423,6 +1433,13 @@ sr_Latn{
         }\r
         day-short{\r
             dn{"d."}\r
+            relative{\r
+                "-1"{"juče"}\r
+                "-2"{"prekjuče"}\r
+                "0"{"danas"}\r
+                "1"{"sutra"}\r
+                "2"{"prekosutra"}\r
+            }\r
             relativeTime{\r
                 future{\r
                     few{"za {0} d."}\r
@@ -2339,8 +2356,13 @@ sr_Latn{
         general{\r
             lenient{\r
                 "[.․。︒﹒.。]",\r
+                "['ʼ՚᾽᾿’']",\r
+                "[%٪﹪%]",\r
+                "[؉‰]",\r
                 "[\$﹩$$]",\r
                 "[£₤]",\r
+                "[¥¥]",\r
+                "[₩₩]",\r
                 "[₨₹{Rp}{Rs}]",\r
             }\r
         }\r
index ef898c9541db21c28426dc77ae84826c76043769..c22e64c4dcf22ff06f9f3daf2bf02a2d149795d6 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 sr_Latn_BA{\r
-    Version{"2.1.38.69"}\r
+    Version{"2.1.44.88"}\r
     calendar{\r
         generic{\r
             intervalFormats{\r
@@ -30,21 +30,21 @@ sr_Latn_BA{
                     other{"W. 'sjedmica' 'u' MMM"}\r
                 }\r
                 yw{\r
-                    few{"w. 'sjedmica' 'u' y."}\r
-                    one{"w. 'sjedmica' 'u' y."}\r
-                    other{"w. 'sjedmica' 'u' y."}\r
+                    few{"w. 'sjedmica' 'u' Y."}\r
+                    one{"w. 'sjedmica' 'u' Y."}\r
+                    other{"w. 'sjedmica' 'u' Y."}\r
                 }\r
             }\r
             dayNames{\r
                 format{\r
                     abbreviated{\r
-                        "ned.",\r
-                        "pon.",\r
-                        "ut.",\r
-                        "sr.",\r
-                        "čet.",\r
-                        "pet.",\r
-                        "sub.",\r
+                        "ned",\r
+                        "pon",\r
+                        "ut",\r
+                        "sr",\r
+                        "čet",\r
+                        "pet",\r
+                        "sub",\r
                     }\r
                     wide{\r
                         "nedjelja",\r
@@ -58,13 +58,13 @@ sr_Latn_BA{
                 }\r
                 stand-alone{\r
                     abbreviated{\r
-                        "ned.",\r
-                        "pon.",\r
-                        "ut.",\r
-                        "sr.",\r
-                        "čet.",\r
-                        "pet.",\r
-                        "sub.",\r
+                        "ned",\r
+                        "pon",\r
+                        "ut",\r
+                        "sr",\r
+                        "čet",\r
+                        "pet",\r
+                        "sub",\r
                     }\r
                     wide{\r
                         "nedjelja",\r
@@ -121,37 +121,45 @@ sr_Latn_BA{
                     "nove ere",\r
                 }\r
             }\r
-            monthNames{\r
-                format{\r
-                    abbreviated{\r
-                        "jan.",\r
-                        "feb.",\r
-                        "mart",\r
-                        "apr.",\r
-                        "maj",\r
-                        "jun",\r
-                        "jul",\r
-                        "avg.",\r
-                        "sept.",\r
-                        "okt.",\r
-                        "nov.",\r
-                        "dec.",\r
-                    }\r
+            intervalFormats{\r
+                MEd{\r
+                    M{"E, MM-dd – E, MM-dd"}\r
+                    d{"E, MM-dd – E, MM-dd"}\r
+                }\r
+                Md{\r
+                    M{"MM-dd – MM-dd"}\r
+                    d{"MM-dd – MM-dd"}\r
+                }\r
+                yM{\r
+                    M{"y-MM – y-MM"}\r
+                    y{"y-MM – y-MM"}\r
+                }\r
+                yMEd{\r
+                    M{"E, y-MM-dd – E, y-MM-dd"}\r
+                    d{"E, y-MM-dd – E, y-MM-dd"}\r
+                    y{"E, y-MM-dd – E, y-MM-dd"}\r
                 }\r
+                yMd{\r
+                    M{"y-MM-dd – y-MM-dd"}\r
+                    d{"y-MM-dd – y-MM-dd"}\r
+                    y{"y-MM-dd – y-MM-dd"}\r
+                }\r
+            }\r
+            monthNames{\r
                 stand-alone{\r
                     abbreviated{\r
-                        "jan.",\r
-                        "feb.",\r
+                        "jan",\r
+                        "feb",\r
                         "mart",\r
-                        "apr.",\r
+                        "apr",\r
                         "maj",\r
                         "jun",\r
                         "jul",\r
-                        "avg.",\r
-                        "sept.",\r
-                        "okt.",\r
-                        "nov.",\r
-                        "dec.",\r
+                        "avg",\r
+                        "sept",\r
+                        "okt",\r
+                        "nov",\r
+                        "dec",\r
                     }\r
                 }\r
             }\r
index f65e4f7656a66b781da3d1dd6f99e96593bbd84d..c096fd67e6a3dc59b61eb8eeb7e9cefa0cae3f46 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 sr_Latn_ME{\r
-    Version{"2.1.38.69"}\r
+    Version{"2.1.44.88"}\r
     calendar{\r
         generic{\r
             intervalFormats{\r
@@ -27,9 +27,9 @@ sr_Latn_ME{
                     other{"W. 'sjedmica' 'u' MMM"}\r
                 }\r
                 yw{\r
-                    few{"w. 'sjedmica' 'u' y."}\r
-                    one{"w. 'sjedmica' 'u' y."}\r
-                    other{"w. 'sjedmica' 'u' y."}\r
+                    few{"w. 'sjedmica' 'u' Y."}\r
+                    one{"w. 'sjedmica' 'u' Y."}\r
+                    other{"w. 'sjedmica' 'u' Y."}\r
                 }\r
             }\r
             dayNames{\r
index 5d3075084b76ca4a106c43ed1f371b2aea824a8d..b0697cbc59fd974df60a8b93bf8724152a04935c 100644 (file)
@@ -59,7 +59,9 @@ sv{
         }\r
         latn{\r
             miscPatterns{\r
-                atLeast{"⩾{0}"}\r
+                approximately{"~{0}"}\r
+                atLeast{"≥{0}"}\r
+                atMost{"≤{0}"}\r
                 range{"{0}‒{1}"}\r
             }\r
             patterns{\r
@@ -251,9 +253,12 @@ sv{
         minimumGroupingDigits{"1"}\r
         native{"latn"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.94"}\r
     calendar{\r
         buddhist{\r
+            availableFormats{\r
+                yyyyMMMM{"MMMM y G"}\r
+            }\r
             eras{\r
                 abbreviated{\r
                     "BE",\r
@@ -274,6 +279,9 @@ sv{
                     H{"HH:mm–HH:mm v"}\r
                     m{"HH:mm–HH:mm v"}\r
                 }\r
+                hmv{\r
+                    h{"h:mm–h:mm a v"}\r
+                }\r
             }\r
         }\r
         chinese{\r
@@ -1630,6 +1638,7 @@ sv{
                     "Taishō",\r
                     "Shōwa",\r
                     "Heisei",\r
+                    "Qqqq",\r
                 }\r
             }\r
         }\r
@@ -1641,6 +1650,9 @@ sv{
                 narrow{\r
                     "AP",\r
                 }\r
+                wide{\r
+                    "Anno Persarum",\r
+                }\r
             }\r
             intervalFormats{\r
                 Hm{\r
@@ -1751,7 +1763,7 @@ sv{
         arrows{"pilar"}\r
         body{"kropp"}\r
         box_drawing{"boxritning"}\r
-        braille{"blindskrift"}\r
+        braille{"punktskrift"}\r
         building{"byggnader"}\r
         bullets_stars{"punkter/stjärnor"}\r
         consonantal_jamo{"jamokonsonanter"}\r
@@ -1787,7 +1799,7 @@ sv{
         kanji{"japanska kanji"}\r
         keycap{"keycap"}\r
         leftwards_arrows{"vänsterpilar"}\r
-        leftwards_rightwards_arrows{"vänster/höger-pilar"}\r
+        leftwards_rightwards_arrows{"vänster-/högerpilar"}\r
         letterlike_symbols{"bokstavsliknande symboler"}\r
         limited_use{"begränsad användning"}\r
         male{"manlig"}\r
@@ -2110,8 +2122,8 @@ sv{
             }\r
             relativeTime{\r
                 future{\r
-                    one{"+{0} månd"}\r
-                    other{"+{0} månd"}\r
+                    one{"+{0} må."}\r
+                    other{"+{0} må."}\r
                 }\r
                 past{\r
                     one{"–{0} månd"}\r
@@ -2738,4 +2750,36 @@ sv{
         US{"USA-enheter"}\r
         metric{"SI-enheter"}\r
     }\r
+    parse{\r
+        date{\r
+            lenient{\r
+                "[\\--/]",\r
+                "[\\:∶]",\r
+            }\r
+        }\r
+        general{\r
+            lenient{\r
+                "[.․。︒﹒.。]",\r
+                "['ʼ՚᾽᾿’']",\r
+                "[%٪﹪%]",\r
+                "[؉‰]",\r
+                "[\$﹩$$]",\r
+                "[£₤]",\r
+                "[¥¥]",\r
+                "[₩₩]",\r
+                "[₨₹{Rp}{Rs}]",\r
+            }\r
+        }\r
+        number{\r
+            lenient{\r
+                "[\\-‒⁻₋−➖﹣-]",\r
+                "[,،٫、︐︑﹐﹑,、]",\r
+                "[+⁺₊➕﬩﹢+]",\r
+            }\r
+            stricter{\r
+                "[,٫︐﹐,]",\r
+                "[.․﹒.。]",\r
+            }\r
+        }\r
+    }\r
 }\r
index 9b3d5bfe3a68cb6d1ef7613e35fbd9343afa2ba9..1f000125ee8c012d72be865c3489ed770d1ed468 100644 (file)
@@ -11,6 +11,7 @@ sw{
         word-medial{"{0} … {1}"}\r
     }\r
     ExemplarCharacters{"[a b {ch} d e f g h i j k l m n o p r s t u v w y z]"}\r
+    ExemplarCharactersIndex{"[A B C D E F G H I J K L M N O P R S T U V W Y Z]"}\r
     ExemplarCharactersNumbers{"[\\- , . % ‰ + 0 1 2 3 4 5 6 7 8 9]"}\r
     ExemplarCharactersPunctuation{"[\\- , ; \\: ! ? . ' \u0022 ( ) \\[ \\] \\{ \\}]"}\r
     MoreInformation{"?"}\r
@@ -18,12 +19,14 @@ sw{
         default{"latn"}\r
         latn{\r
             miscPatterns{\r
-                atLeast{"⩾{0}"}\r
+                approximately{"~{0}"}\r
+                atLeast{"{0}+"}\r
+                atMost{"≤{0}"}\r
                 range{"{0}–{1}"}\r
             }\r
             patterns{\r
-                accountingFormat{"¤#,##0.00;(¤#,##0.00)"}\r
-                currencyFormat{"¤#,##0.00"}\r
+                accountingFormat{"¤ #,##0.00"}\r
+                currencyFormat{"¤ #,##0.00"}\r
                 decimalFormat{"#,##0.###"}\r
                 percentFormat{"#,##0%"}\r
                 scientificFormat{"#E0"}\r
@@ -83,52 +86,52 @@ sw{
             patternsShort{\r
                 currencyFormat{\r
                     1000{\r
-                        one{"¤elfu 0;¤elfu -0"}\r
-                        other{"¤elfu 0;¤elfu -0"}\r
+                        one{"¤ elfu0"}\r
+                        other{"¤ elfu0"}\r
                     }\r
                     10000{\r
-                        one{"¤elfu 00;¤elfu -00"}\r
-                        other{"¤elfu 00;¤elfu -00"}\r
+                        one{"¤ elfu00;¤elfu -00"}\r
+                        other{"¤ elfu00;¤elfu -00"}\r
                     }\r
                     100000{\r
-                        one{"¤laki 000;¤laki -000"}\r
-                        other{"¤laki 000;¤laki -000"}\r
+                        one{"¤ laki000;¤laki -000"}\r
+                        other{"¤ laki000;¤laki -000"}\r
                     }\r
                     1000000{\r
-                        one{"¤M0;¤M-0"}\r
-                        other{"¤M0;¤M-0"}\r
+                        one{"¤ 0M;¤-0M"}\r
+                        other{"¤ 0M"}\r
                     }\r
                     10000000{\r
-                        one{"¤M00;¤M-00"}\r
-                        other{"¤M00;¤M-00"}\r
+                        one{"¤ 00M;¤M-00M"}\r
+                        other{"¤ 00M;¤-00M"}\r
                     }\r
                     100000000{\r
-                        one{"¤M000;¤M-000"}\r
-                        other{"¤M000;¤M-000"}\r
+                        one{"¤ 000M;¤Milioni-000"}\r
+                        other{"¤ 000M"}\r
                     }\r
                     1000000000{\r
-                        one{"¤B0;¤B-0"}\r
-                        other{"¤B0;¤B-0"}\r
+                        one{"¤ 0B;¤-0B"}\r
+                        other{"¤ 0B;¤-0B"}\r
                     }\r
                     10000000000{\r
-                        one{"¤B00;¤B-00"}\r
-                        other{"¤B00;¤B-00"}\r
+                        one{"¤ 00B;¤-00B"}\r
+                        other{"¤ 00B;¤-00B"}\r
                     }\r
                     100000000000{\r
-                        one{"¤B000;¤B-000"}\r
-                        other{"¤B000;¤B-000"}\r
+                        one{"¤ 000B;¤-000B"}\r
+                        other{"¤ 000B;¤-000B"}\r
                     }\r
                     1000000000000{\r
-                        one{"¤T0;¤T-0"}\r
-                        other{"¤T0;¤T-0"}\r
+                        one{"¤ 0T;¤-0T"}\r
+                        other{"¤ 0T"}\r
                     }\r
                     10000000000000{\r
-                        one{"¤T00;¤T-00"}\r
-                        other{"¤T00;¤T-00"}\r
+                        one{"¤ 00T;¤-00T"}\r
+                        other{"¤ 00T"}\r
                     }\r
                     100000000000000{\r
-                        one{"¤T000;¤T-000"}\r
-                        other{"¤T000;¤T-000"}\r
+                        one{"¤ 000T;¤-000T"}\r
+                        other{"¤ 000T;¤-000T"}\r
                     }\r
                 }\r
                 decimalFormat{\r
@@ -145,40 +148,40 @@ sw{
                         other{"elfu 000;elfu -000"}\r
                     }\r
                     1000000{\r
-                        one{"M0;M-0"}\r
-                        other{"M0;M-0"}\r
+                        one{"0M;-0M"}\r
+                        other{"0M"}\r
                     }\r
                     10000000{\r
-                        one{"M00;M-00"}\r
-                        other{"M00;M-00"}\r
+                        one{"00M;-00M"}\r
+                        other{"00M"}\r
                     }\r
                     100000000{\r
-                        one{"M000;M-000"}\r
-                        other{"M000;M-000"}\r
+                        one{"000M;-000M"}\r
+                        other{"000M"}\r
                     }\r
                     1000000000{\r
-                        one{"B0;B-0"}\r
-                        other{"B0;B-0"}\r
+                        one{"0B;-0B"}\r
+                        other{"0B;-0B"}\r
                     }\r
                     10000000000{\r
-                        one{"B00;B-00"}\r
-                        other{"B00;B-00"}\r
+                        one{"00B;-00B"}\r
+                        other{"00B;-00B"}\r
                     }\r
                     100000000000{\r
-                        one{"B000;B-000"}\r
-                        other{"B000;B-000"}\r
+                        one{"000B;-000B"}\r
+                        other{"000B;-000B"}\r
                     }\r
                     1000000000000{\r
-                        one{"T0;T-0"}\r
-                        other{"T0;T-0"}\r
+                        one{"0T;-0T"}\r
+                        other{"0T"}\r
                     }\r
                     10000000000000{\r
-                        one{"T00;T-00"}\r
-                        other{"T00;T-00"}\r
+                        one{"00T;-00T"}\r
+                        other{"00T"}\r
                     }\r
                     100000000000000{\r
-                        one{"T000;T-000"}\r
-                        other{"T000;T-000"}\r
+                        one{"000T;-000T"}\r
+                        other{"000T"}\r
                     }\r
                 }\r
             }\r
@@ -209,7 +212,7 @@ sw{
         minimumGroupingDigits{"1"}\r
         native{"latn"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.65"}\r
     calendar{\r
         generic{\r
             DateTimePatterns{\r
@@ -961,6 +964,13 @@ sw{
         }\r
         day-narrow{\r
             dn{"siku"}\r
+            relative{\r
+                "-1"{"jana"}\r
+                "-2"{"juzi"}\r
+                "0"{"leo"}\r
+                "1"{"kesho"}\r
+                "2"{"kesho kutwa"}\r
+            }\r
             relativeTime{\r
                 future{\r
                     one{"baada ya siku {0}"}\r
@@ -974,6 +984,13 @@ sw{
         }\r
         day-short{\r
             dn{"siku"}\r
+            relative{\r
+                "-1"{"jana"}\r
+                "-2"{"juzi"}\r
+                "0"{"leo"}\r
+                "1"{"kesho"}\r
+                "2"{"kesho kutwa"}\r
+            }\r
             relativeTime{\r
                 future{\r
                     one{"baada ya siku {0}"}\r
@@ -1705,10 +1722,10 @@ sw{
             dn{"saa za eneo"}\r
         }\r
         zone-narrow{\r
-            dn{"saa za eneo"}\r
+            dn{"eneo"}\r
         }\r
         zone-short{\r
-            dn{"saa za eneo"}\r
+            dn{"eneo"}\r
         }\r
     }\r
     listPattern{\r
@@ -1764,8 +1781,13 @@ sw{
         general{\r
             lenient{\r
                 "[.․。︒﹒.。]",\r
+                "['ʼ՚᾽᾿’']",\r
+                "[%٪﹪%]",\r
+                "[؉‰]",\r
                 "[\$﹩$$]",\r
                 "[£₤]",\r
+                "[¥¥]",\r
+                "[₩₩]",\r
                 "[₨₹{Rp}{Rs}]",\r
             }\r
         }\r
index fb1e8a00730c8f7bcc8e4b25a3a2ab186ddf544e..e09a4d180f1a069454b6e5568730e0849044b798 100644 (file)
@@ -11,7 +11,7 @@ sw_CD{
             }\r
         }\r
     }\r
-    Version{"2.1.39.11"}\r
+    Version{"2.1.43.65"}\r
     calendar{\r
         generic{\r
             availableFormats{\r
index 1e2e4dc259030aff46ce315f795b14b0a79605cf..b54c08f2f93f4e4a7c902e584a443945659a47d0 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 sw_KE{\r
-    Version{"2.1.38.39"}\r
+    Version{"2.1.43.65"}\r
     calendar{\r
         generic{\r
             DateTimePatterns{\r
@@ -21,6 +21,10 @@ sw_KE{
             }\r
         }\r
         gregorian{\r
+            AmPmMarkers{\r
+                "AM",\r
+                "PM",\r
+            }\r
             DateTimePatterns{\r
                 "HH:mm:ss zzzz",\r
                 "HH:mm:ss z",\r
index 680e1cd89888ee772243170f81a1a1e93a93897f..a71a51bacb93cb1496231443a6f394fc2946c1f9 100644 (file)
@@ -24,7 +24,9 @@ ta{
         default{"latn"}\r
         latn{\r
             miscPatterns{\r
+                approximately{"~{0}"}\r
                 atLeast{"{0}+"}\r
+                atMost{"≤{0}"}\r
                 range{"{0}–{1}"}\r
             }\r
             patterns{\r
@@ -236,7 +238,7 @@ ta{
         }\r
         traditional{"taml"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.50"}\r
     calendar{\r
         buddhist{\r
             eras{\r
@@ -2407,6 +2409,9 @@ ta{
         zone{\r
             dn{"நேர மண்டலம்"}\r
         }\r
+        zone-narrow{\r
+            dn{"மண்டலம்"}\r
+        }\r
         zone-short{\r
             dn{"மண்டலம்"}\r
         }\r
@@ -2464,8 +2469,13 @@ ta{
         general{\r
             lenient{\r
                 "[.․。︒﹒.。]",\r
+                "['ʼ՚᾽᾿’']",\r
+                "[%٪﹪%]",\r
+                "[؉‰]",\r
                 "[\$﹩$$]",\r
                 "[£₤]",\r
+                "[¥¥]",\r
+                "[₩₩]",\r
                 "[₨₹{Rp}{Rs}]",\r
             }\r
         }\r
index 7022aeb65acb116035a798c94a179c0fe2ba7073..0094f9305db488e6d80c59f4d8af7fbcd2b83896 100644 (file)
@@ -26,7 +26,9 @@ te{
         default{"latn"}\r
         latn{\r
             miscPatterns{\r
+                approximately{"~{0}"}\r
                 atLeast{"{0}+"}\r
+                atMost{"≤{0}"}\r
                 range{"{0}–{1}"}\r
             }\r
             patterns{\r
@@ -238,7 +240,7 @@ te{
             }\r
         }\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.50"}\r
     calendar{\r
         buddhist{\r
             eras{\r
@@ -2494,8 +2496,13 @@ te{
         general{\r
             lenient{\r
                 "[.․。︒﹒.。]",\r
+                "['ʼ՚᾽᾿’']",\r
+                "[%٪﹪%]",\r
+                "[؉‰]",\r
                 "[\$﹩$$]",\r
                 "[£₤]",\r
+                "[¥¥]",\r
+                "[₩₩]",\r
                 "[₨₹{Rp}{Rs}]",\r
             }\r
         }\r
index e51e4680ae93979239a16780a33a33add86e5978..868e357c230d09c23e1cd10e95e80f836df4c8e1 100644 (file)
@@ -8,7 +8,7 @@ tg{
         default{"latn"}\r
         latn{\r
             miscPatterns{\r
-                atLeast{"⩾{0}"}\r
+                atLeast{"â\89¥{0}"}\r
                 range{"{0}–{1}"}\r
             }\r
             patterns{\r
@@ -34,7 +34,7 @@ tg{
         minimumGroupingDigits{"1"}\r
         native{"latn"}\r
     }\r
-    Version{"2.1.38.71"}\r
+    Version{"2.1.44.88"}\r
     calendar{\r
         generic{\r
             DateTimePatterns{\r
@@ -143,7 +143,7 @@ tg{
                 yQQQ{"QQQ y"}\r
                 yQQQQ{"QQQQ y"}\r
                 yw{\r
-                    other{"'ҳафтаи' w, y"}\r
+                    other{"'ҳафтаи' w, Y"}\r
                 }\r
             }\r
             dayNames{\r
index f72fcb6c4c75410eeaf789f9d44331560dbb89c9..cb469e98470aaefb6a0e6f1c8206e9e621539013 100644 (file)
@@ -27,7 +27,9 @@ th{
         default{"latn"}\r
         latn{\r
             miscPatterns{\r
+                approximately{"~{0}"}\r
                 atLeast{"{0}+"}\r
+                atMost{"≤{0}"}\r
                 range{"{0}-{1}"}\r
             }\r
             patterns{\r
@@ -181,7 +183,7 @@ th{
         minimumGroupingDigits{"1"}\r
         native{"thai"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.89"}\r
     calendar{\r
         buddhist{\r
             DateTimePatterns{\r
@@ -428,7 +430,7 @@ th{
                             "เกิงอู้",\r
                             "ซินเว่ย",\r
                             "เหรินเซิน",\r
-                            "à¸\81ุà¹\8bà¹\88ยà¹\82หยà¹\88ว",\r
+                            "กุ๋ยโหย่ว",\r
                             "เจ่ียซู",\r
                             "อี๋ฮ่าย",\r
                             "ปิ๋ิ่งจื่อ",\r
@@ -1228,7 +1230,7 @@ th{
                 MMMMEEEEd{"EEEEที่ d MMMM"}\r
                 MMMMEd{"E d MMMM"}\r
                 MMMMW{\r
-                    other{"สัปดาห์ที่ W ของ MMM"}\r
+                    other{"สัปดาห์ที่ W ของเดือนMMMM"}\r
                 }\r
                 MMMMd{"d MMMM"}\r
                 MMMd{"d MMM"}\r
@@ -1256,7 +1258,7 @@ th{
                 yQQQ{"QQQ y"}\r
                 yQQQQ{"QQQQ G y"}\r
                 yw{\r
-                    other{"สัปดาห์ที่ w ของ Y"}\r
+                    other{"สัปดาห์ที่ w ของปี Y"}\r
                 }\r
             }\r
             dayNames{\r
@@ -1357,7 +1359,7 @@ th{
                         midnight{"เที่ยงคืน"}\r
                         morning1{"เช้า"}\r
                         night1{"กลางคืน"}\r
-                        noon{"n"}\r
+                        noon{"เที่ยง"}\r
                     }\r
                     wide{\r
                         afternoon1{"ในตอนบ่าย"}\r
@@ -1411,7 +1413,7 @@ th{
             }\r
             eras{\r
                 abbreviated{\r
-                    "à¸\9bีà¸\81à¹\88อà¸\99 à¸\84.ศ.",\r
+                    "ก่อน ค.ศ.",\r
                     "ค.ศ.",\r
                 }\r
                 abbreviated%variant{\r
@@ -1427,7 +1429,7 @@ th{
                     "ส.ศ.",\r
                 }\r
                 wide{\r
-                    "à¸\9bีà¸\81à¹\88อà¸\99à¸\84ริสà¸\95à¹\8cศัà¸\81ราà¸\8a",\r
+                    "à¸\9bีà¸\81à¹\88อà¸\99à¸\84ริสà¸\95à¸\81าล",\r
                     "คริสต์ศักราช",\r
                 }\r
                 wide%variant{\r
@@ -2332,6 +2334,7 @@ th{
                     "ทะอิโช",\r
                     "โชวะ",\r
                     "เฮเซ",\r
+                    "Qqqq",\r
                 }\r
             }\r
         }\r
@@ -2491,7 +2494,7 @@ th{
         african_scripts{"สคริปต์แอฟริกัน"}\r
         american_scripts{"สคริปต์อเมริกัน"}\r
         animal{"สัตว์"}\r
-        animals_nature{"สัà¸\95วà¹\8cà¹\81ละธรรมชาติ"}\r
+        animals_nature{"สัà¸\95วà¹\8cหรือธรรมชาติ"}\r
         arrows{"ลูกศร"}\r
         body{"ร่างกาย"}\r
         box_drawing{"การวาดกล่อง"}\r
@@ -2557,7 +2560,7 @@ th{
         sign_standard_symbols{"เครื่องหมาย/สัญลักษณ์มาตรฐาน"}\r
         small_form_variant{"รูปแบบขนาดเล็ก"}\r
         smiley{"หน้ายิ้ม"}\r
-        smileys_people{"หà¸\99à¹\89ายิà¹\89มà¹\81ละรูปคน"}\r
+        smileys_people{"หà¸\99à¹\89ายิà¹\89มหรือรูปคน"}\r
         south_asian_scripts{"สคริปต์เอเชียใต้"}\r
         southeast_asian_scripts{"สคริปต์เอเชียตะวันออกเฉียงใต้"}\r
         spacing{"การเว้นวรรค"}\r
@@ -2566,7 +2569,7 @@ th{
         technical_symbols{"สัญลักษณ์ทางเทคนิค"}\r
         tone_marks{"วรรณยุกต์"}\r
         travel{"การเดินทาง"}\r
-        travel_places{"à¸\81ารà¹\80à¸\94ิà¸\99à¸\97าà¸\87à¹\81ละสถานที่"}\r
+        travel_places{"à¸\81ารà¹\80à¸\94ิà¸\99à¸\97าà¸\87หรือสถานที่"}\r
         upwards_arrows{"ลูกศรขึ้น"}\r
         variant_forms{"รูปแบบที่เปลี่ยนแปลง"}\r
         vocalic_jamo{"สระภาษาเกาหลี"}\r
@@ -2890,6 +2893,11 @@ th{
         }\r
         quarter-narrow{\r
             dn{"ไตรมาส"}\r
+            relative{\r
+                "-1"{"ไตรมาสที่แล้ว"}\r
+                "0"{"ไตรมาสนี้"}\r
+                "1"{"ไตรมาสหน้า"}\r
+            }\r
             relativeTime{\r
                 future{\r
                     other{"ใน {0} ไตรมาส"}\r
@@ -2901,6 +2909,11 @@ th{
         }\r
         quarter-short{\r
             dn{"ไตรมาส"}\r
+            relative{\r
+                "-1"{"ไตรมาสที่แล้ว"}\r
+                "0"{"ไตรมาสนี้"}\r
+                "1"{"ไตรมาสหน้า"}\r
+            }\r
             relativeTime{\r
                 future{\r
                     other{"ใน {0} ไตรมาส"}\r
@@ -3232,7 +3245,7 @@ th{
             dn{"สัปดาห์ของเดือน"}\r
         }\r
         weekday{\r
-            dn{"วัà¸\99à¹\83à¸\99สัปดาห์"}\r
+            dn{"วัà¸\99à¸\82อà¸\87สัปดาห์"}\r
         }\r
         weekday-narrow{\r
             dn{"วันของสัปดาห์"}\r
@@ -3360,8 +3373,13 @@ th{
         general{\r
             lenient{\r
                 "[.․。︒﹒.。]",\r
+                "['ʼ՚᾽᾿’']",\r
+                "[%٪﹪%]",\r
+                "[؉‰]",\r
                 "[\$﹩$$]",\r
                 "[£₤]",\r
+                "[¥¥]",\r
+                "[₩₩]",\r
                 "[₨₹{Rp}{Rs}]",\r
             }\r
         }\r
index 2f1a5da8c8479bae05ee73ab338cae5de42a9e01..5dc4880d620350fc9f8f708b4f317bdf6d60e894 100644 (file)
@@ -20,7 +20,7 @@ ti{
         default{"latn"}\r
         latn{\r
             miscPatterns{\r
-                atLeast{"⩾{0}"}\r
+                atLeast{"â\89¥{0}"}\r
                 range{"{0}–{1}"}\r
             }\r
             patterns{\r
@@ -202,7 +202,7 @@ ti{
         native{"latn"}\r
         traditional{"ethi"}\r
     }\r
-    Version{"2.1.38.72"}\r
+    Version{"2.1.44.88"}\r
     calendar{\r
         generic{\r
             DateTimePatterns{\r
@@ -312,8 +312,8 @@ ti{
                 yQQQ{"QQQ y"}\r
                 yQQQQ{"y QQQQ"}\r
                 yw{\r
-                    one{"መበል w ሰሙን ናይ y"}\r
-                    other{"መበል w ሰሙን ናይ y"}\r
+                    one{"መበል w ሰሙን ናይ Y"}\r
+                    other{"መበል w ሰሙን ናይ Y"}\r
                 }\r
             }\r
             dayNames{\r
@@ -386,9 +386,9 @@ ti{
                     wide{\r
                         "ሰንበት",\r
                         "ሰኑይ",\r
-                        "á\88°ሉስ",\r
+                        "á\88 ሉስ",\r
                         "ረቡዕ",\r
-                        "á\88\93ሙስ",\r
+                        "á\8a\83ሙስ",\r
                         "ዓርቢ",\r
                         "ቀዳም",\r
                     }\r
index e1884632f9704fa596ae55027d1456f0390fcc64..817dcc30160507e6c3abb6029fc9eef515768514 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 ti_ER{\r
-    Version{"2.1.38.73"}\r
+    Version{"2.1.43.65"}\r
     calendar{\r
         generic{\r
             DateTimePatterns{\r
diff --git a/source/data/locales/tk.txt b/source/data/locales/tk.txt
new file mode 100644 (file)
index 0000000..a7a28f1
--- /dev/null
@@ -0,0 +1,1731 @@
+// © 2016 and later: Unicode, Inc. and others.\r
+// License & terms of use: http://www.unicode.org/copyright.html#License\r
+tk{\r
+    AuxExemplarCharacters{"[c q v x]"}\r
+    Ellipsis{\r
+        final{"{0}…"}\r
+        initial{"…{0}"}\r
+        medial{"{0}…{1}"}\r
+        word-final{"{0} …"}\r
+        word-initial{"… {0}"}\r
+        word-medial{"{0} … {1}"}\r
+    }\r
+    ExemplarCharacters{"[a b ç d e ä f g h i j ž k l m n ň o ö p r s ş t u ü w y ý z]"}\r
+    ExemplarCharactersIndex{"[A B Ç D E Ä F G H I J Ž K L M N Ň O Ö P R S Ş T U Ü W Y Ý Z]"}\r
+    ExemplarCharactersNumbers{"[  \\- , % ‰ + 0 1 2 3 4 5 6 7 8 9]"}\r
+    ExemplarCharactersPunctuation{"[\\- – — , ; \\: ! ? . … \u0022 “ ” ( ) \\[ \\] \\{ \\} § @ * #]"}\r
+    MoreInformation{"?"}\r
+    NumberElements{\r
+        default{"latn"}\r
+        latn{\r
+            miscPatterns{\r
+                approximately{"~{0}"}\r
+                atLeast{"≥{0}"}\r
+                atMost{"≤{0}"}\r
+                range{"{0}–{1}"}\r
+            }\r
+            patterns{\r
+                accountingFormat{"#,##0.00 ¤"}\r
+                currencyFormat{"#,##0.00 ¤"}\r
+                decimalFormat{"#,##0.###"}\r
+                percentFormat{"#,##0 %"}\r
+                scientificFormat{"#E0"}\r
+            }\r
+            patternsLong{\r
+                decimalFormat{\r
+                    1000{\r
+                        one{"0 müň"}\r
+                        other{"0 müň"}\r
+                    }\r
+                    10000{\r
+                        one{"00 müň"}\r
+                        other{"00 müň"}\r
+                    }\r
+                    100000{\r
+                        one{"000 müň"}\r
+                        other{"000 müň"}\r
+                    }\r
+                    1000000{\r
+                        one{"0 million"}\r
+                        other{"0 million"}\r
+                    }\r
+                    10000000{\r
+                        one{"00 million"}\r
+                        other{"00 million"}\r
+                    }\r
+                    100000000{\r
+                        one{"000 million"}\r
+                        other{"000 million"}\r
+                    }\r
+                    1000000000{\r
+                        one{"0 milliard"}\r
+                        other{"0 milliard"}\r
+                    }\r
+                    10000000000{\r
+                        one{"00 milliard"}\r
+                        other{"00 milliard"}\r
+                    }\r
+                    100000000000{\r
+                        one{"000 milliard"}\r
+                        other{"000 milliard"}\r
+                    }\r
+                    1000000000000{\r
+                        one{"0 trillion"}\r
+                        other{"0 trillion"}\r
+                    }\r
+                    10000000000000{\r
+                        one{"00 trillion"}\r
+                        other{"00 trillion"}\r
+                    }\r
+                    100000000000000{\r
+                        one{"000 trillion"}\r
+                        other{"000 trillion"}\r
+                    }\r
+                }\r
+            }\r
+            patternsShort{\r
+                currencyFormat{\r
+                    1000{\r
+                        one{"0 müň ¤"}\r
+                        other{"0 müň ¤"}\r
+                    }\r
+                    10000{\r
+                        one{"00 müň ¤"}\r
+                        other{"00 müň ¤"}\r
+                    }\r
+                    100000{\r
+                        one{"000 müň ¤"}\r
+                        other{"000 müň ¤"}\r
+                    }\r
+                    1000000{\r
+                        one{"0 mln ¤"}\r
+                        other{"0 mln ¤"}\r
+                    }\r
+                    10000000{\r
+                        one{"00 mln ¤"}\r
+                        other{"00 mln ¤"}\r
+                    }\r
+                    100000000{\r
+                        one{"000 mln ¤"}\r
+                        other{"000 mln ¤"}\r
+                    }\r
+                    1000000000{\r
+                        one{"0 mlrd ¤"}\r
+                        other{"0 mlrd ¤"}\r
+                    }\r
+                    10000000000{\r
+                        one{"00 mlrd ¤"}\r
+                        other{"00 mlrd ¤"}\r
+                    }\r
+                    100000000000{\r
+                        one{"000 mlrd ¤"}\r
+                        other{"000 mlrd ¤"}\r
+                    }\r
+                    1000000000000{\r
+                        one{"0 trln ¤"}\r
+                        other{"0 trln ¤"}\r
+                    }\r
+                    10000000000000{\r
+                        one{"00 trln ¤"}\r
+                        other{"00 trln ¤"}\r
+                    }\r
+                    100000000000000{\r
+                        one{"000 trln ¤"}\r
+                        other{"000 trln ¤"}\r
+                    }\r
+                }\r
+                decimalFormat{\r
+                    1000{\r
+                        one{"0 müň"}\r
+                        other{"0 müň"}\r
+                    }\r
+                    10000{\r
+                        one{"00 müň"}\r
+                        other{"00 müň"}\r
+                    }\r
+                    100000{\r
+                        one{"000 müň"}\r
+                        other{"000 müň"}\r
+                    }\r
+                    1000000{\r
+                        one{"0 mln"}\r
+                        other{"0 mln"}\r
+                    }\r
+                    10000000{\r
+                        one{"00 mln"}\r
+                        other{"00 mln"}\r
+                    }\r
+                    100000000{\r
+                        one{"000 mln"}\r
+                        other{"000 mln"}\r
+                    }\r
+                    1000000000{\r
+                        one{"0 mlrd"}\r
+                        other{"0 mlrd"}\r
+                    }\r
+                    10000000000{\r
+                        one{"00 mlrd"}\r
+                        other{"00 mlrd"}\r
+                    }\r
+                    100000000000{\r
+                        one{"000 mlrd"}\r
+                        other{"000 mlrd"}\r
+                    }\r
+                    1000000000000{\r
+                        one{"0 trln"}\r
+                        other{"0 trln"}\r
+                    }\r
+                    10000000000000{\r
+                        one{"00 trln"}\r
+                        other{"00 trln"}\r
+                    }\r
+                    100000000000000{\r
+                        one{"000 trln"}\r
+                        other{"000 trln"}\r
+                    }\r
+                }\r
+            }\r
+            symbols{\r
+                decimal{","}\r
+                exponential{"E"}\r
+                group{" "}\r
+                infinity{"∞"}\r
+                list{";"}\r
+                minusSign{"-"}\r
+                nan{"san däl"}\r
+                perMille{"‰"}\r
+                percentSign{"%"}\r
+                plusSign{"+"}\r
+                superscriptingExponent{"×"}\r
+                timeSeparator{":"}\r
+            }\r
+        }\r
+        minimalPairs{\r
+            ordinal{\r
+                other{"Sagdan {0}-nj. öwrümden öwrüliň."}\r
+            }\r
+        }\r
+        minimumGroupingDigits{"1"}\r
+        native{"latn"}\r
+    }\r
+    Version{"2.1.43.65"}\r
+    calendar{\r
+        generic{\r
+            DateTimePatterns{\r
+                "HH:mm:ss zzzz",\r
+                "HH:mm:ss z",\r
+                "HH:mm:ss",\r
+                "HH:mm",\r
+                "d MMMM y G EEEE",\r
+                "d MMMM y G",\r
+                "d MMM y G",\r
+                "dd.MM.y GGGGG",\r
+                "{1} {0}",\r
+                "{1} {0}",\r
+                "{1} {0}",\r
+                "{1} {0}",\r
+                "{1} {0}",\r
+            }\r
+            availableFormats{\r
+                Bh{"h B"}\r
+                Bhm{"h:mm B"}\r
+                Bhms{"h:mm:ss B"}\r
+                E{"ccc"}\r
+                EBhm{"E h:mm B"}\r
+                EBhms{"E h:mm:ss B"}\r
+                EHm{"E HH:mm"}\r
+                EHms{"E HH:mm:ss"}\r
+                Ed{"d E"}\r
+                Ehm{"E h:mm a"}\r
+                Ehms{"E h:mm:ss a"}\r
+                Gy{"G y"}\r
+                GyMMM{"G y MMM"}\r
+                GyMMMEd{"G y MMM d, E"}\r
+                GyMMMd{"G y MMM d"}\r
+                H{"HH"}\r
+                Hm{"HH:mm"}\r
+                Hms{"HH:mm:ss"}\r
+                M{"L"}\r
+                MEd{"dd.MM E"}\r
+                MMM{"LLL"}\r
+                MMMEd{"d MMM E"}\r
+                MMMMEd{"d MMMM E"}\r
+                MMMMd{"d MMMM"}\r
+                MMMd{"d MMM"}\r
+                Md{"dd.MM"}\r
+                d{"d"}\r
+                h{"h a"}\r
+                hm{"h:mm a"}\r
+                hms{"h:mm:ss a"}\r
+                ms{"mm:ss"}\r
+                y{"y"}\r
+                yM{"MM.y"}\r
+                yMEd{"dd.MM.y E"}\r
+                yMMM{"MMM y"}\r
+                yMMMEd{"d MMM y E"}\r
+                yMMMM{"MMMM y"}\r
+                yMMMd{"d MMM y"}\r
+                yMd{"dd.MM.y"}\r
+                yyyy{"G y"}\r
+                yyyyM{"GGGGG y-MM"}\r
+                yyyyMEd{"GGGGG y-MM-dd, E"}\r
+                yyyyMMM{"G y MMM"}\r
+                yyyyMMMEd{"G y MMM d, E"}\r
+                yyyyMMMM{"G y MMMM"}\r
+                yyyyMMMd{"G y MMM d"}\r
+                yyyyMd{"GGGGG y-MM-dd"}\r
+                yyyyQQQ{"G y QQQ"}\r
+                yyyyQQQQ{"G y QQQQ"}\r
+            }\r
+            dayNames{\r
+                stand-alone{\r
+                    narrow{\r
+                        "Ý",\r
+                        "D",\r
+                        "S",\r
+                        "Ç",\r
+                        "P",\r
+                        "A",\r
+                        "Ş",\r
+                    }\r
+                }\r
+            }\r
+            intervalFormats{\r
+                M{\r
+                    M{"MM – MM"}\r
+                }\r
+                MEd{\r
+                    M{"dd.MM E – dd.MM E"}\r
+                    d{"dd.MM E – dd.MM E"}\r
+                }\r
+                MMM{\r
+                    M{"MMM–MMM"}\r
+                }\r
+                MMMEd{\r
+                    M{"d MMM E – d MMM E"}\r
+                    d{"d MMM E – d MMM E"}\r
+                }\r
+                MMMd{\r
+                    M{"d MMM – d MMM"}\r
+                    d{"d – d MMM"}\r
+                }\r
+                Md{\r
+                    M{"dd.MM – dd.MM"}\r
+                    d{"dd.MM – dd.MM"}\r
+                }\r
+                d{\r
+                    d{"d–d"}\r
+                }\r
+                fallback{"{0} - {1}"}\r
+                y{\r
+                    y{"y–y"}\r
+                }\r
+                yM{\r
+                    M{"MM.y – MM.y"}\r
+                    y{"MM.y – MM.y"}\r
+                }\r
+                yMEd{\r
+                    M{"dd.MM.y E – dd.MM.y E"}\r
+                    d{"dd.MM.y E – dd.MM.y E"}\r
+                    y{"dd.MM.y E – dd.MM.y E"}\r
+                }\r
+                yMMM{\r
+                    M{"MMM–MMM y"}\r
+                    y{"MMM y – MMM y"}\r
+                }\r
+                yMMMEd{\r
+                    M{"d MMM y E – d MMM y E"}\r
+                    d{"d MMM y E – d MMM y E"}\r
+                    y{"d MMM y E – d MMM y E"}\r
+                }\r
+                yMMMM{\r
+                    M{"MMMM–MMMM y"}\r
+                    y{"MMMM y – MMMM y"}\r
+                }\r
+                yMMMd{\r
+                    M{"d MMM – d MMM y"}\r
+                    d{"d – d MMM y"}\r
+                    y{"d MMM y – d MMM y"}\r
+                }\r
+                yMd{\r
+                    M{"dd.MM.y – dd.MM.y"}\r
+                    d{"dd.MM.y – dd.MM.y"}\r
+                    y{"dd.MM.y – dd.MM.y"}\r
+                }\r
+            }\r
+        }\r
+        gregorian{\r
+            AmPmMarkers{\r
+                "günortadan öň",\r
+                "günortadan soň",\r
+            }\r
+            AmPmMarkersAbbr{\r
+                "go.öň",\r
+                "go.soň",\r
+            }\r
+            AmPmMarkersNarrow{\r
+                "öň",\r
+                "soň",\r
+            }\r
+            DateTimePatterns{\r
+                "HH:mm:ss zzzz",\r
+                "HH:mm:ss z",\r
+                "HH:mm:ss",\r
+                "HH:mm",\r
+                "d MMMM y EEEE",\r
+                "d MMMM y",\r
+                "d MMM y",\r
+                "dd.MM.y",\r
+                "{1} {0}",\r
+                "{1} {0}",\r
+                "{1} {0}",\r
+                "{1} {0}",\r
+                "{1} {0}",\r
+            }\r
+            appendItems{\r
+                Timezone{"{0} {1}"}\r
+            }\r
+            availableFormats{\r
+                Bh{"h B"}\r
+                Bhm{"h:mm B"}\r
+                Bhms{"h:mm:ss B"}\r
+                E{"ccc"}\r
+                EBhm{"E h:mm B"}\r
+                EBhms{"E h:mm:ss B"}\r
+                EHm{"E HH:mm"}\r
+                EHms{"E HH:mm:ss"}\r
+                Ed{"d E"}\r
+                Ehm{"E h:mm a"}\r
+                Ehms{"E h:mm:ss a"}\r
+                Gy{"G y"}\r
+                GyMMM{"G y MMM"}\r
+                GyMMMEd{"G y MMM d, E"}\r
+                GyMMMd{"G y MMM d"}\r
+                H{"HH"}\r
+                Hm{"HH:mm"}\r
+                Hms{"HH:mm:ss"}\r
+                Hmsv{"HH:mm:ss v"}\r
+                Hmv{"HH:mm v"}\r
+                M{"L"}\r
+                MEd{"dd.MM E"}\r
+                MMM{"LLL"}\r
+                MMMEd{"d MMM E"}\r
+                MMMMEd{"d MMMM E"}\r
+                MMMMW{\r
+                    one{"'hepde' W, MMMM"}\r
+                    other{"'hepde' W, MMMM"}\r
+                }\r
+                MMMMd{"d MMMM"}\r
+                MMMd{"d MMM"}\r
+                Md{"dd.MM"}\r
+                d{"d"}\r
+                h{"h a"}\r
+                hm{"h:mm a"}\r
+                hms{"h:mm:ss a"}\r
+                hmsv{"h:mm:ss a v"}\r
+                hmv{"h:mm a v"}\r
+                mmss{"mm:ss"}\r
+                ms{"mm:ss"}\r
+                y{"y"}\r
+                yM{"MM.y"}\r
+                yMEd{"dd.MM.y E"}\r
+                yMMM{"MMM y"}\r
+                yMMMEd{"d MMM y E"}\r
+                yMMMM{"MMMM y"}\r
+                yMMMd{"d MMM y"}\r
+                yMd{"dd.MM.y"}\r
+                yQQQ{"y QQQ"}\r
+                yQQQQ{"y QQQQ"}\r
+                yw{\r
+                    one{"'hepde' w, Y"}\r
+                    other{"'hepde' w, Y"}\r
+                }\r
+            }\r
+            dayNames{\r
+                format{\r
+                    abbreviated{\r
+                        "ýek",\r
+                        "duş",\r
+                        "siş",\r
+                        "çar",\r
+                        "pen",\r
+                        "ann",\r
+                        "şen",\r
+                    }\r
+                    narrow{\r
+                        "Ý",\r
+                        "D",\r
+                        "S",\r
+                        "Ç",\r
+                        "P",\r
+                        "A",\r
+                        "Ş",\r
+                    }\r
+                    short{\r
+                        "ýb",\r
+                        "db",\r
+                        "sb",\r
+                        "çb",\r
+                        "pb",\r
+                        "an",\r
+                        "şb",\r
+                    }\r
+                    wide{\r
+                        "ýekşenbe",\r
+                        "duşenbe",\r
+                        "sişenbe",\r
+                        "çarşenbe",\r
+                        "penşenbe",\r
+                        "anna",\r
+                        "şenbe",\r
+                    }\r
+                }\r
+                stand-alone{\r
+                    abbreviated{\r
+                        "Ýek",\r
+                        "Duş",\r
+                        "Siş",\r
+                        "Çar",\r
+                        "Pen",\r
+                        "Ann",\r
+                        "Şen",\r
+                    }\r
+                    narrow{\r
+                        "Ý",\r
+                        "D",\r
+                        "S",\r
+                        "Ç",\r
+                        "P",\r
+                        "A",\r
+                        "Ş",\r
+                    }\r
+                    short{\r
+                        "Ýb",\r
+                        "Db",\r
+                        "Sb",\r
+                        "Çb",\r
+                        "Pb",\r
+                        "An",\r
+                        "Şb",\r
+                    }\r
+                    wide{\r
+                        "Ýekşenbe",\r
+                        "Duşenbe",\r
+                        "Sişenbe",\r
+                        "Çarşenbe",\r
+                        "Penşenbe",\r
+                        "Anna",\r
+                        "Şenbe",\r
+                    }\r
+                }\r
+            }\r
+            dayPeriod{\r
+                stand-alone{\r
+                    abbreviated{\r
+                        am{"g.öň"}\r
+                        pm{"g.soň"}\r
+                    }\r
+                    narrow{\r
+                        am{"öň"}\r
+                        pm{"soň"}\r
+                    }\r
+                    wide{\r
+                        am{"günortadan öň"}\r
+                        pm{"günortadan soň"}\r
+                    }\r
+                }\r
+            }\r
+            eras{\r
+                abbreviated{\r
+                    "B.e.öň",\r
+                    "B.e.",\r
+                }\r
+                abbreviated%variant{\r
+                    "b.e.öň",\r
+                    "b.e.",\r
+                }\r
+                wide{\r
+                    "Isadan öň",\r
+                    "Isadan soň",\r
+                }\r
+                wide%variant{\r
+                    "Biziň eramyzdan öň",\r
+                    "Biziň eramyz",\r
+                }\r
+            }\r
+            intervalFormats{\r
+                H{\r
+                    H{"HH–HH"}\r
+                }\r
+                Hm{\r
+                    H{"HH:mm–HH:mm"}\r
+                    m{"HH:mm–HH:mm"}\r
+                }\r
+                Hmv{\r
+                    H{"HH:mm–HH:mm v"}\r
+                    m{"HH:mm–HH:mm v"}\r
+                }\r
+                Hv{\r
+                    H{"HH–HH v"}\r
+                }\r
+                M{\r
+                    M{"MM – MM"}\r
+                }\r
+                MEd{\r
+                    M{"dd.MM E – dd.MM E"}\r
+                    d{"dd.MM E – dd.MM E"}\r
+                }\r
+                MMM{\r
+                    M{"MMM–MMM"}\r
+                }\r
+                MMMEd{\r
+                    M{"d MMM E – d MMM E"}\r
+                    d{"d MMM E – d MMM E"}\r
+                }\r
+                MMMd{\r
+                    M{"d MMM – d MMM"}\r
+                    d{"d – d MMM"}\r
+                }\r
+                Md{\r
+                    M{"dd.MM – dd.MM"}\r
+                    d{"dd.MM – dd.MM"}\r
+                }\r
+                d{\r
+                    d{"d–d"}\r
+                }\r
+                fallback{"{0} - {1}"}\r
+                h{\r
+                    a{"h a – h a"}\r
+                    h{"h–h a"}\r
+                }\r
+                hm{\r
+                    a{"h:mm a – h:mm a"}\r
+                    h{"h:mm–h:mm a"}\r
+                    m{"h:mm–h:mm a"}\r
+                }\r
+                hmv{\r
+                    a{"h:mm a – h:mm a v"}\r
+                    h{"h:mm–h:mm a v"}\r
+                    m{"h:mm–h:mm a v"}\r
+                }\r
+                hv{\r
+                    a{"h a – h a v"}\r
+                    h{"h–h a v"}\r
+                }\r
+                y{\r
+                    y{"y–y"}\r
+                }\r
+                yM{\r
+                    M{"MM.y – MM.y"}\r
+                    y{"MM.y – MM.y"}\r
+                }\r
+                yMEd{\r
+                    M{"dd.MM.y E – dd.MM.y E"}\r
+                    d{"dd.MM.y E – dd.MM.y E"}\r
+                    y{"dd.MM.y E – dd.MM.y E"}\r
+                }\r
+                yMMM{\r
+                    M{"MMM–MMM y"}\r
+                    y{"MMM y – MMM y"}\r
+                }\r
+                yMMMEd{\r
+                    M{"d MMM y E – d MMM y E"}\r
+                    d{"d MMM y E – d MMM y E"}\r
+                    y{"d MMM y E – d MMM y E"}\r
+                }\r
+                yMMMM{\r
+                    M{"MMMM–MMMM y"}\r
+                    y{"MMMM y – MMMM y"}\r
+                }\r
+                yMMMd{\r
+                    M{"d MMM – d MMM y"}\r
+                    d{"d – d MMM y"}\r
+                    y{"d MMM y – d MMM y"}\r
+                }\r
+                yMd{\r
+                    M{"dd.MM.y – dd.MM.y"}\r
+                    d{"dd.MM.y – dd.MM.y"}\r
+                    y{"dd.MM.y – dd.MM.y"}\r
+                }\r
+            }\r
+            monthNames{\r
+                format{\r
+                    abbreviated{\r
+                        "ýan",\r
+                        "few",\r
+                        "mart",\r
+                        "apr",\r
+                        "maý",\r
+                        "iýun",\r
+                        "iýul",\r
+                        "awg",\r
+                        "sen",\r
+                        "okt",\r
+                        "noý",\r
+                        "dek",\r
+                    }\r
+                    narrow{\r
+                        "Ý",\r
+                        "F",\r
+                        "M",\r
+                        "A",\r
+                        "M",\r
+                        "I",\r
+                        "I",\r
+                        "A",\r
+                        "S",\r
+                        "O",\r
+                        "N",\r
+                        "D",\r
+                    }\r
+                    wide{\r
+                        "ýanwar",\r
+                        "fewral",\r
+                        "mart",\r
+                        "aprel",\r
+                        "maý",\r
+                        "iýun",\r
+                        "iýul",\r
+                        "awgust",\r
+                        "sentýabr",\r
+                        "oktýabr",\r
+                        "noýabr",\r
+                        "dekabr",\r
+                    }\r
+                }\r
+                stand-alone{\r
+                    abbreviated{\r
+                        "Ýan",\r
+                        "Few",\r
+                        "Mar",\r
+                        "Apr",\r
+                        "Maý",\r
+                        "Iýun",\r
+                        "Iýul",\r
+                        "Awg",\r
+                        "Sen",\r
+                        "Okt",\r
+                        "Noý",\r
+                        "Dek",\r
+                    }\r
+                    narrow{\r
+                        "Ý",\r
+                        "F",\r
+                        "M",\r
+                        "A",\r
+                        "M",\r
+                        "I",\r
+                        "I",\r
+                        "A",\r
+                        "S",\r
+                        "O",\r
+                        "N",\r
+                        "D",\r
+                    }\r
+                    wide{\r
+                        "Ýanwar",\r
+                        "Fewral",\r
+                        "Mart",\r
+                        "Aprel",\r
+                        "Maý",\r
+                        "Iýun",\r
+                        "Iýul",\r
+                        "Awgust",\r
+                        "Sentýabr",\r
+                        "Oktýabr",\r
+                        "Noýabr",\r
+                        "Dekabr",\r
+                    }\r
+                }\r
+            }\r
+            quarters{\r
+                format{\r
+                    abbreviated{\r
+                        "1Ç",\r
+                        "2Ç",\r
+                        "3Ç",\r
+                        "4Ç",\r
+                    }\r
+                    narrow{\r
+                        "1",\r
+                        "2",\r
+                        "3",\r
+                        "4",\r
+                    }\r
+                    wide{\r
+                        "1-nji çärýek",\r
+                        "2-nji çärýek",\r
+                        "3-nji çärýek",\r
+                        "4-nji çärýek",\r
+                    }\r
+                }\r
+                stand-alone{\r
+                    abbreviated{\r
+                        "1Ç",\r
+                        "2Ç",\r
+                        "3Ç",\r
+                        "4Ç",\r
+                    }\r
+                    narrow{\r
+                        "1",\r
+                        "2",\r
+                        "3",\r
+                        "4",\r
+                    }\r
+                    wide{\r
+                        "1-nji çärýek",\r
+                        "2-nji çärýek",\r
+                        "3-nji çärýek",\r
+                        "4-nji çärýek",\r
+                    }\r
+                }\r
+            }\r
+        }\r
+    }\r
+    characterLabel{\r
+        activities{"işjeňlik"}\r
+        african_scripts{"Afrika elipbiýi"}\r
+        american_scripts{"Amerikan elipbiýi"}\r
+        animal{"haýwan"}\r
+        animals_nature{"haýwan ýa-da tebigat"}\r
+        arrows{"ok"}\r
+        body{"göwre"}\r
+        box_drawing{"guty çyzuwy"}\r
+        braille{"Braýl"}\r
+        building{"bina"}\r
+        bullets_stars{"ok ýa-da ýyldyz"}\r
+        consonantal_jamo{"çekimsizli jamo"}\r
+        currency_symbols{"pul birliginiň nyşany"}\r
+        dash_connector{"kese çyzyk ýa-da baglaýjy"}\r
+        digits{"san"}\r
+        dingbats{"dingbat"}\r
+        divination_symbols{"bilgiçlik nyşany"}\r
+        downwards_arrows{"aşaklygyna ok"}\r
+        downwards_upwards_arrows{"aşak-ýokary ok"}\r
+        east_asian_scripts{"Gündogar Aziýa elipbiýi"}\r
+        emoji{"emoji"}\r
+        european_scripts{"Ýewropa elipbiýi"}\r
+        female{"zenan"}\r
+        flag{"baýdak"}\r
+        flags{"baýdaklar"}\r
+        food_drink{"iýmit we içgiler"}\r
+        format{"format"}\r
+        format_whitespace{"format we boşluk"}\r
+        full_width_form_variant{"doly giňlik warianty"}\r
+        geometric_shapes{"geometrik şekil"}\r
+        half_width_form_variant{"ýarym giňlik warianty"}\r
+        han_characters{"Han elipbiýiniň harpy"}\r
+        han_radicals{"Han harpynyň köki"}\r
+        hanja{"hanja"}\r
+        hanzi_simplified{"Hanzi (ýönekeýleşdirilen)"}\r
+        hanzi_traditional{"Hanzi (adaty)"}\r
+        heart{"ýürek"}\r
+        historic_scripts{"taryhy elipbiý"}\r
+        ideographic_desc_characters{"ideografik düşündiriş harpy"}\r
+        japanese_kana{"ýapon kana"}\r
+        kanbun{"kanbun"}\r
+        kanji{"kandzi"}\r
+        keycap{"klawiş gapagy"}\r
+        leftwards_arrows{"çepe ok"}\r
+        leftwards_rightwards_arrows{"çepe-saga ok"}\r
+        letterlike_symbols{"harpa meňzeş nyşan"}\r
+        limited_use{"çäkli ulanyş"}\r
+        male{"erkek"}\r
+        math_symbols{"matematika nyşany"}\r
+        middle_eastern_scripts{"Ýakyn Gündogar elipbiýi"}\r
+        miscellaneous{"dürli"}\r
+        modern_scripts{"häzirki zaman elipbiýi"}\r
+        modifier{"modifikator"}\r
+        musical_symbols{"aýdym-saz nyşany"}\r
+        nature{"tebigat"}\r
+        nonspacing{"aralyksyz"}\r
+        numbers{"sanlar"}\r
+        objects{"obýekt"}\r
+        other{"başga"}\r
+        paired{"jübütlenen"}\r
+        person{"şahs"}\r
+        phonetic_alphabet{"fonetik elipbiý"}\r
+        pictographs{"piktograf"}\r
+        place{"ýer"}\r
+        plant{"ösümlik"}\r
+        punctuation{"dyngy"}\r
+        rightwards_arrows{"saga ok"}\r
+        sign_standard_symbols{"belgi ýa-da nyşan"}\r
+        small_form_variant{"kiçi wariantlar"}\r
+        smiley{"ýylgyryş"}\r
+        smileys_people{"ýylgyryş ýa-da şahys"}\r
+        south_asian_scripts{"Günorta Aziýa elipbiýi"}\r
+        southeast_asian_scripts{"Günorta-gündogar Aziýa elipbiýi"}\r
+        spacing{"aralykly"}\r
+        sport{"sport"}\r
+        symbols{"nyşan"}\r
+        technical_symbols{"tehniki nyşan"}\r
+        tone_marks{"äheň belgisi"}\r
+        travel{"syýahat"}\r
+        travel_places{"syýahat ýa-da ýer"}\r
+        upwards_arrows{"ýokarlygyna ok"}\r
+        variant_forms{"wariant"}\r
+        vocalic_jamo{"çekimli jamo"}\r
+        weather{"howa"}\r
+        western_asian_scripts{"Günbatar Aziýa elipbiýi"}\r
+        whitespace{"boşluk"}\r
+    }\r
+    contextTransforms{\r
+        languages:intvector{\r
+            0,\r
+            1,\r
+        }\r
+    }\r
+    delimiters{\r
+        alternateQuotationEnd{"”"}\r
+        alternateQuotationStart{"“"}\r
+        quotationEnd{"”"}\r
+        quotationStart{"“"}\r
+    }\r
+    fields{\r
+        day{\r
+            dn{"gün"}\r
+            relative{\r
+                "-1"{"düýn"}\r
+                "0"{"şu gün"}\r
+                "1"{"ertir"}\r
+            }\r
+            relativeTime{\r
+                future{\r
+                    one{"{0} günden"}\r
+                    other{"{0} günden"}\r
+                }\r
+                past{\r
+                    one{"{0} gün öň"}\r
+                    other{"{0} gün öň"}\r
+                }\r
+            }\r
+        }\r
+        day-narrow{\r
+            dn{"gün"}\r
+            relativeTime{\r
+                future{\r
+                    one{"{0} g-den"}\r
+                    other{"{0} g-den"}\r
+                }\r
+                past{\r
+                    one{"{0} g. öň"}\r
+                    other{"{0} g. öň"}\r
+                }\r
+            }\r
+        }\r
+        day-short{\r
+            dn{"gün"}\r
+            relativeTime{\r
+                future{\r
+                    one{"{0} g-den"}\r
+                    other{"{0} g-den"}\r
+                }\r
+                past{\r
+                    one{"{0} g. öň"}\r
+                    other{"{0} g. öň"}\r
+                }\r
+            }\r
+        }\r
+        dayOfYear{\r
+            dn{"ýylyň güni"}\r
+        }\r
+        dayOfYear-narrow{\r
+            dn{"ý. güni"}\r
+        }\r
+        dayOfYear-short{\r
+            dn{"ý. güni"}\r
+        }\r
+        dayperiod{\r
+            dn{"günortadan öň/günortadan soň"}\r
+        }\r
+        dayperiod-narrow{\r
+            dn{"GÖ/GS"}\r
+        }\r
+        dayperiod-short{\r
+            dn{"GÖ/GS"}\r
+        }\r
+        era{\r
+            dn{"era"}\r
+        }\r
+        era-narrow{\r
+            dn{"era"}\r
+        }\r
+        era-short{\r
+            dn{"era"}\r
+        }\r
+        fri{\r
+            relative{\r
+                "-1"{"geçen anna"}\r
+                "0"{"şu anna"}\r
+                "1"{"indiki anna"}\r
+            }\r
+            relativeTime{\r
+                future{\r
+                    one{"{0} annadan"}\r
+                    other{"{0} annadan"}\r
+                }\r
+                past{\r
+                    one{"{0} anna öň"}\r
+                    other{"{0} anna öň"}\r
+                }\r
+            }\r
+        }\r
+        fri-narrow{\r
+            relative{\r
+                "-1"{"geçen an"}\r
+                "0"{"şu an"}\r
+                "1"{"indiki an"}\r
+            }\r
+            relativeTime{\r
+                future{\r
+                    one{"{0} an-dan"}\r
+                    other{"{0} an-dan"}\r
+                }\r
+                past{\r
+                    one{"{0} an öň"}\r
+                    other{"{0} an öň"}\r
+                }\r
+            }\r
+        }\r
+        fri-short{\r
+            relative{\r
+                "-1"{"geçen an."}\r
+                "0"{"şu an."}\r
+                "1"{"indiki an."}\r
+            }\r
+            relativeTime{\r
+                future{\r
+                    one{"{0} an-dan"}\r
+                    other{"{0} an-dan"}\r
+                }\r
+                past{\r
+                    one{"{0} an. öň"}\r
+                    other{"{0} an. öň"}\r
+                }\r
+            }\r
+        }\r
+        hour{\r
+            dn{"sagat"}\r
+            relative{\r
+                "0"{"şu sagat"}\r
+            }\r
+            relativeTime{\r
+                future{\r
+                    one{"{0} sagatdan"}\r
+                    other{"{0} sagatdan"}\r
+                }\r
+                past{\r
+                    one{"{0} sagat öň"}\r
+                    other{"{0} sagat öň"}\r
+                }\r
+            }\r
+        }\r
+        hour-narrow{\r
+            dn{"sag."}\r
+            relativeTime{\r
+                future{\r
+                    one{"{0} sag-dan"}\r
+                    other{"{0} sag-dan"}\r
+                }\r
+                past{\r
+                    one{"{0} sag. öň"}\r
+                    other{"{0} sag. öň"}\r
+                }\r
+            }\r
+        }\r
+        hour-short{\r
+            dn{"sag."}\r
+            relativeTime{\r
+                future{\r
+                    one{"{0} sag-dan"}\r
+                    other{"{0} sag-dan"}\r
+                }\r
+                past{\r
+                    one{"{0} sag. öň"}\r
+                    other{"{0} sag. öň"}\r
+                }\r
+            }\r
+        }\r
+        minute{\r
+            dn{"minut"}\r
+            relative{\r
+                "0"{"şu minut"}\r
+            }\r
+            relativeTime{\r
+                future{\r
+                    one{"{0} minutdan"}\r
+                    other{"{0} minutdan"}\r
+                }\r
+                past{\r
+                    one{"{0} minut öň"}\r
+                    other{"{0} minut öň"}\r
+                }\r
+            }\r
+        }\r
+        minute-narrow{\r
+            dn{"min."}\r
+            relativeTime{\r
+                future{\r
+                    one{"{0} min-dan"}\r
+                    other{"{0} min-dan"}\r
+                }\r
+                past{\r
+                    one{"{0} min. öň"}\r
+                    other{"{0} min. öň"}\r
+                }\r
+            }\r
+        }\r
+        minute-short{\r
+            dn{"min."}\r
+            relativeTime{\r
+                future{\r
+                    one{"{0} min-dan"}\r
+                    other{"{0} min-dan"}\r
+                }\r
+                past{\r
+                    one{"{0} min. öň"}\r
+                    other{"{0} min. öň"}\r
+                }\r
+            }\r
+        }\r
+        mon{\r
+            relative{\r
+                "-1"{"geçen duşenbe"}\r
+                "0"{"şu duşenbe"}\r
+                "1"{"indiki duşenbe"}\r
+            }\r
+            relativeTime{\r
+                future{\r
+                    one{"{0} duşenbeden"}\r
+                    other{"{0} duşenbeden"}\r
+                }\r
+                past{\r
+                    one{"{0} duşenbe öň"}\r
+                    other{"{0} duşenbe öň"}\r
+                }\r
+            }\r
+        }\r
+        mon-narrow{\r
+            relative{\r
+                "-1"{"geçen db"}\r
+                "0"{"şu db"}\r
+                "1"{"indiki db"}\r
+            }\r
+            relativeTime{\r
+                future{\r
+                    one{"{0} db-den"}\r
+                    other{"{0} db-den"}\r
+                }\r
+                past{\r
+                    one{"{0} db öň"}\r
+                    other{"{0} db öň"}\r
+                }\r
+            }\r
+        }\r
+        mon-short{\r
+            relative{\r
+                "-1"{"geçen duş."}\r
+                "0"{"şu duş."}\r
+                "1"{"indiki duş."}\r
+            }\r
+            relativeTime{\r
+                future{\r
+                    one{"{0} duş-den"}\r
+                    other{"{0} duş-den"}\r
+                }\r
+                past{\r
+                    one{"{0} duş. öň"}\r
+                    other{"{0} duş. öň"}\r
+                }\r
+            }\r
+        }\r
+        month{\r
+            dn{"aý"}\r
+            relative{\r
+                "-1"{"geçen aý"}\r
+                "0"{"şu aý"}\r
+                "1"{"indiki aý"}\r
+            }\r
+            relativeTime{\r
+                future{\r
+                    one{"{0} aýdan"}\r
+                    other{"{0} aýdan"}\r
+                }\r
+                past{\r
+                    one{"{0} aý öň"}\r
+                    other{"{0} aý öň"}\r
+                }\r
+            }\r
+        }\r
+        month-narrow{\r
+            dn{"aý"}\r
+            relativeTime{\r
+                future{\r
+                    one{"{0} aýdan"}\r
+                    other{"{0} aýdan"}\r
+                }\r
+                past{\r
+                    one{"{0} aý öň"}\r
+                    other{"{0} aý öň"}\r
+                }\r
+            }\r
+        }\r
+        month-short{\r
+            dn{"aý"}\r
+            relativeTime{\r
+                future{\r
+                    one{"{0} aýdan"}\r
+                    other{"{0} aýdan"}\r
+                }\r
+                past{\r
+                    one{"{0} aý öň"}\r
+                    other{"{0} aý öň"}\r
+                }\r
+            }\r
+        }\r
+        quarter{\r
+            dn{"çärýek"}\r
+            relative{\r
+                "-1"{"geçen çärýek"}\r
+                "0"{"şu çärýek"}\r
+                "1"{"indiki çärýek"}\r
+            }\r
+            relativeTime{\r
+                future{\r
+                    one{"{0} çärýekden"}\r
+                    other{"{0} çärýekden"}\r
+                }\r
+                past{\r
+                    one{"{0} çärýek öň"}\r
+                    other{"{0} çärýek öň"}\r
+                }\r
+            }\r
+        }\r
+        quarter-narrow{\r
+            dn{"çär."}\r
+            relativeTime{\r
+                future{\r
+                    one{"{0} ç-den"}\r
+                    other{"{0} ç-den"}\r
+                }\r
+                past{\r
+                    one{"{0} ç. öň"}\r
+                    other{"{0} ç. öň"}\r
+                }\r
+            }\r
+        }\r
+        quarter-short{\r
+            dn{"çär."}\r
+            relativeTime{\r
+                future{\r
+                    one{"{0} çär-den"}\r
+                    other{"{0} çär-den"}\r
+                }\r
+                past{\r
+                    one{"{0} çär. öň"}\r
+                    other{"{0} çär. öň"}\r
+                }\r
+            }\r
+        }\r
+        sat{\r
+            relative{\r
+                "-1"{"geçen şenbe"}\r
+                "0"{"şu şenbe"}\r
+                "1"{"indiki şenbe"}\r
+            }\r
+            relativeTime{\r
+                future{\r
+                    one{"{0} şenbeden"}\r
+                    other{"{0} şenbeden"}\r
+                }\r
+                past{\r
+                    one{"{0} şenbe öň"}\r
+                    other{"{0} şenbe öň"}\r
+                }\r
+            }\r
+        }\r
+        sat-narrow{\r
+            relative{\r
+                "-1"{"geçen şb"}\r
+                "0"{"şu şb"}\r
+                "1"{"indiki şb"}\r
+            }\r
+            relativeTime{\r
+                future{\r
+                    one{"{0} şb-den"}\r
+                    other{"{0} şb-den"}\r
+                }\r
+                past{\r
+                    one{"{0} şb öň"}\r
+                    other{"{0} şb öň"}\r
+                }\r
+            }\r
+        }\r
+        sat-short{\r
+            relative{\r
+                "-1"{"geçen şen."}\r
+                "0"{"şu şen."}\r
+                "1"{"indiki şen."}\r
+            }\r
+            relativeTime{\r
+                future{\r
+                    one{"{0} şen-den"}\r
+                    other{"{0} şen-den"}\r
+                }\r
+                past{\r
+                    one{"{0} şen. öň"}\r
+                    other{"{0} şen. öň"}\r
+                }\r
+            }\r
+        }\r
+        second{\r
+            dn{"sekunt"}\r
+            relative{\r
+                "0"{"häzir"}\r
+            }\r
+            relativeTime{\r
+                future{\r
+                    one{"{0} sekuntdan"}\r
+                    other{"{0} sekuntdan"}\r
+                }\r
+                past{\r
+                    one{"{0} sekunt öň"}\r
+                    other{"{0} sekunt öň"}\r
+                }\r
+            }\r
+        }\r
+        second-narrow{\r
+            dn{"sek."}\r
+            relativeTime{\r
+                future{\r
+                    one{"{0} sek-dan"}\r
+                    other{"{0} sek-dan"}\r
+                }\r
+                past{\r
+                    one{"{0} sek. öň"}\r
+                    other{"{0} sek. öň"}\r
+                }\r
+            }\r
+        }\r
+        second-short{\r
+            dn{"sek."}\r
+            relativeTime{\r
+                future{\r
+                    one{"{0} sek-dan"}\r
+                    other{"{0} sek-dan"}\r
+                }\r
+                past{\r
+                    one{"{0} sek. öň"}\r
+                    other{"{0} sek. öň"}\r
+                }\r
+            }\r
+        }\r
+        sun{\r
+            relative{\r
+                "-1"{"geçen ýekşenbe"}\r
+                "0"{"şu ýekşenbe"}\r
+                "1"{"indiki çekşenbe"}\r
+            }\r
+            relativeTime{\r
+                future{\r
+                    one{"{0} ýekşenbeden"}\r
+                    other{"{0} ýekşenbe"}\r
+                }\r
+                past{\r
+                    one{"{0} ýekşenbe öň"}\r
+                    other{"{0} ýekşenbe öň"}\r
+                }\r
+            }\r
+        }\r
+        sun-narrow{\r
+            relative{\r
+                "-1"{"geçen ýb"}\r
+                "0"{"şu ýb"}\r
+                "1"{"indiki ýb"}\r
+            }\r
+            relativeTime{\r
+                future{\r
+                    one{"{0} ýb.-den"}\r
+                    other{"{0} ýb.-den"}\r
+                }\r
+                past{\r
+                    one{"{0} ýb öň"}\r
+                    other{"{0} ýb öň"}\r
+                }\r
+            }\r
+        }\r
+        sun-short{\r
+            relative{\r
+                "-1"{"geçen ýek."}\r
+                "0"{"şu ýek."}\r
+                "1"{"indiki ýek."}\r
+            }\r
+            relativeTime{\r
+                future{\r
+                    one{"{0} ýek-den"}\r
+                    other{"{0} ýek-den"}\r
+                }\r
+                past{\r
+                    one{"{0} ýek. öň"}\r
+                    other{"{0} ýek. öň"}\r
+                }\r
+            }\r
+        }\r
+        thu{\r
+            relative{\r
+                "-1"{"geçen penşenbe"}\r
+                "0"{"şu penşenbe"}\r
+                "1"{"indiki penşenbe"}\r
+            }\r
+            relativeTime{\r
+                future{\r
+                    one{"{0} penşenbeden"}\r
+                    other{"{0} penşenbeden"}\r
+                }\r
+                past{\r
+                    one{"{0} penşenbe öň"}\r
+                    other{"{0} penşenbe öň"}\r
+                }\r
+            }\r
+        }\r
+        thu-narrow{\r
+            relative{\r
+                "-1"{"geçen pb"}\r
+                "0"{"şu pb"}\r
+                "1"{"indiki pb"}\r
+            }\r
+            relativeTime{\r
+                future{\r
+                    one{"{0} pb-den"}\r
+                    other{"{0} pb-den"}\r
+                }\r
+                past{\r
+                    one{"{0} pb öň"}\r
+                    other{"{0} pb öň"}\r
+                }\r
+            }\r
+        }\r
+        thu-short{\r
+            relative{\r
+                "-1"{"geçen pen."}\r
+                "0"{"şu pen."}\r
+                "1"{"indiki pen."}\r
+            }\r
+            relativeTime{\r
+                future{\r
+                    one{"{0} pen-den"}\r
+                    other{"{0} pen-den"}\r
+                }\r
+                past{\r
+                    one{"{0} pen. öň"}\r
+                    other{"{0} pen. öň"}\r
+                }\r
+            }\r
+        }\r
+        tue{\r
+            relative{\r
+                "-1"{"geçen sişenbe"}\r
+                "0"{"şu sişenbe"}\r
+                "1"{"indiki sişenbe"}\r
+            }\r
+            relativeTime{\r
+                future{\r
+                    one{"{0} sişenbeden"}\r
+                    other{"{0} sişenbeden"}\r
+                }\r
+                past{\r
+                    one{"{0} sişenbe öň"}\r
+                    other{"{0} sişenbe öň"}\r
+                }\r
+            }\r
+        }\r
+        tue-narrow{\r
+            relative{\r
+                "-1"{"geçen sb"}\r
+                "0"{"şu sb"}\r
+                "1"{"indiki sb"}\r
+            }\r
+            relativeTime{\r
+                future{\r
+                    one{"{0} sb-den"}\r
+                    other{"{0} sb-den"}\r
+                }\r
+                past{\r
+                    one{"{0} sb öň"}\r
+                    other{"{0} sb öň"}\r
+                }\r
+            }\r
+        }\r
+        tue-short{\r
+            relative{\r
+                "-1"{"geçen siş."}\r
+                "0"{"şu siş."}\r
+                "1"{"indiki siş."}\r
+            }\r
+            relativeTime{\r
+                future{\r
+                    one{"{0} siş-den"}\r
+                    other{"{0} siş-den"}\r
+                }\r
+                past{\r
+                    one{"{0} siş. öň"}\r
+                    other{"{0} siş. öň"}\r
+                }\r
+            }\r
+        }\r
+        wed{\r
+            relative{\r
+                "-1"{"geçen çarşenbe"}\r
+                "0"{"şu çarşenbe"}\r
+                "1"{"indiki çarşenbe"}\r
+            }\r
+            relativeTime{\r
+                future{\r
+                    one{"{0} çarşenbeden"}\r
+                    other{"{0} çarşenbeden"}\r
+                }\r
+                past{\r
+                    one{"{0} çarşenbe öň"}\r
+                    other{"{0} çarşenbe öň"}\r
+                }\r
+            }\r
+        }\r
+        wed-narrow{\r
+            relative{\r
+                "-1"{"geçen çb"}\r
+                "0"{"şu çb"}\r
+                "1"{"indiki çb"}\r
+            }\r
+            relativeTime{\r
+                future{\r
+                    one{"{0} çb-den"}\r
+                    other{"{0} çb-den"}\r
+                }\r
+                past{\r
+                    one{"{0} çb öň"}\r
+                    other{"{0} çb öň"}\r
+                }\r
+            }\r
+        }\r
+        wed-short{\r
+            relative{\r
+                "-1"{"geçen çar."}\r
+                "0"{"şu çar."}\r
+                "1"{"indiki çar."}\r
+            }\r
+            relativeTime{\r
+                future{\r
+                    one{"{0} çar-den"}\r
+                    other{"{0} çar-den"}\r
+                }\r
+                past{\r
+                    one{"{0} çar. öň"}\r
+                    other{"{0} çar. öň"}\r
+                }\r
+            }\r
+        }\r
+        week{\r
+            dn{"hepde"}\r
+            relative{\r
+                "-1"{"geçen hepde"}\r
+                "0"{"şu hepde"}\r
+                "1"{"indiki hepde"}\r
+            }\r
+            relativePeriod{"{0} hepdesi"}\r
+            relativeTime{\r
+                future{\r
+                    one{"{0} hepdeden"}\r
+                    other{"{0} hepdeden"}\r
+                }\r
+                past{\r
+                    one{"{0} hepde öň"}\r
+                    other{"{0} hepde öň"}\r
+                }\r
+            }\r
+        }\r
+        week-narrow{\r
+            dn{"hep."}\r
+            relativePeriod{"{0} hepdesi"}\r
+            relativeTime{\r
+                future{\r
+                    one{"{0} h-den"}\r
+                    other{"{0} h-den"}\r
+                }\r
+                past{\r
+                    one{"{0} h. öň"}\r
+                    other{"{0} h. öň"}\r
+                }\r
+            }\r
+        }\r
+        week-short{\r
+            dn{"hep."}\r
+            relativePeriod{"{0} hepdesi"}\r
+            relativeTime{\r
+                future{\r
+                    one{"{0} hep-den"}\r
+                    other{"{0} hep-den"}\r
+                }\r
+                past{\r
+                    one{"{0} hep. öň"}\r
+                    other{"{0} hep. öň"}\r
+                }\r
+            }\r
+        }\r
+        weekOfMonth{\r
+            dn{"aýyň hepdesi"}\r
+        }\r
+        weekOfMonth-narrow{\r
+            dn{"hep./aý"}\r
+        }\r
+        weekOfMonth-short{\r
+            dn{"hep./aý"}\r
+        }\r
+        weekday{\r
+            dn{"hepdäniň güni"}\r
+        }\r
+        weekday-narrow{\r
+            dn{"hep. güni"}\r
+        }\r
+        weekday-short{\r
+            dn{"hep. güni"}\r
+        }\r
+        weekdayOfMonth{\r
+            dn{"aýda hepdäň güni"}\r
+        }\r
+        weekdayOfMonth-narrow{\r
+            dn{"aýda hep. güni"}\r
+        }\r
+        weekdayOfMonth-short{\r
+            dn{"aýda hep. güni"}\r
+        }\r
+        year{\r
+            dn{"ýyl"}\r
+            relative{\r
+                "-1"{"geçen ýyl"}\r
+                "0"{"şu ýyl"}\r
+                "1"{"indiki ýyl"}\r
+            }\r
+            relativeTime{\r
+                future{\r
+                    one{"{0} ýyldan"}\r
+                    other{"{0} ýyldan"}\r
+                }\r
+                past{\r
+                    one{"{0} ýyl öň"}\r
+                    other{"{0} ýyl öň"}\r
+                }\r
+            }\r
+        }\r
+        year-narrow{\r
+            dn{"ý."}\r
+            relativeTime{\r
+                future{\r
+                    one{"{0} ý-dan"}\r
+                    other{"{0} ý-dan"}\r
+                }\r
+                past{\r
+                    one{"{0} ý. öň"}\r
+                    other{"{0} ý. öň"}\r
+                }\r
+            }\r
+        }\r
+        year-short{\r
+            dn{"ý."}\r
+            relativeTime{\r
+                future{\r
+                    one{"{0} ý-dan"}\r
+                    other{"{0} ý-dan"}\r
+                }\r
+                past{\r
+                    one{"{0} ý. öň"}\r
+                    other{"{0} ý. öň"}\r
+                }\r
+            }\r
+        }\r
+        zone{\r
+            dn{"sagat guşaklygy"}\r
+        }\r
+        zone-narrow{\r
+            dn{"guşaklyk"}\r
+        }\r
+        zone-short{\r
+            dn{"guşaklyk"}\r
+        }\r
+    }\r
+    listPattern{\r
+        or{\r
+            2{"{0} ýa-da {1}"}\r
+            end{"{0} ýa-da {1}"}\r
+            middle{"{0}, {1}"}\r
+            start{"{0}, {1}"}\r
+        }\r
+        standard{\r
+            2{"{0} we {1}"}\r
+            end{"{0} we {1}"}\r
+            middle{"{0}, {1}"}\r
+            start{"{0}, {1}"}\r
+        }\r
+        standard-short{\r
+            2{"{0} we {1}"}\r
+            end{"{0} we {1}"}\r
+            middle{"{0}, {1}"}\r
+            start{"{0}, {1}"}\r
+        }\r
+        unit{\r
+            2{"{0} we {1}"}\r
+            end{"{0}, {1}"}\r
+            middle{"{0}, {1}"}\r
+            start{"{0}, {1}"}\r
+        }\r
+        unit-narrow{\r
+            2{"{0} {1}"}\r
+            end{"{0} {1}"}\r
+            middle{"{0} {1}"}\r
+            start{"{0} {1}"}\r
+        }\r
+        unit-short{\r
+            2{"{0}, {1}"}\r
+            end{"{0}, {1}"}\r
+            middle{"{0}, {1}"}\r
+            start{"{0}, {1}"}\r
+        }\r
+    }\r
+    measurementSystemNames{\r
+        UK{"Birleşen Patyşalyk"}\r
+        US{"ABŞ"}\r
+        metric{"Metrik"}\r
+    }\r
+    parse{\r
+        date{\r
+            lenient{\r
+                "[\\--/]",\r
+                "[\\:∶]",\r
+            }\r
+        }\r
+        general{\r
+            lenient{\r
+                "[.․。︒﹒.。]",\r
+                "['ʼ՚᾽᾿’']",\r
+                "[%٪﹪%]",\r
+                "[؉‰]",\r
+                "[\$﹩$$]",\r
+                "[£₤]",\r
+                "[¥¥]",\r
+                "[₩₩]",\r
+                "[₨₹{Rp}{Rs}]",\r
+            }\r
+        }\r
+        number{\r
+            lenient{\r
+                "[\\-‒⁻₋−➖﹣-]",\r
+                "[,،٫、︐︑﹐﹑,、]",\r
+                "[+⁺₊➕﬩﹢+]",\r
+            }\r
+            stricter{\r
+                "[,٫︐﹐,]",\r
+                "[.․﹒.。]",\r
+            }\r
+        }\r
+    }\r
+}\r
diff --git a/source/data/locales/tk_TM.txt b/source/data/locales/tk_TM.txt
new file mode 100644 (file)
index 0000000..8e8dc63
--- /dev/null
@@ -0,0 +1,5 @@
+// © 2016 and later: Unicode, Inc. and others.\r
+// License & terms of use: http://www.unicode.org/copyright.html#License\r
+tk_TM{\r
+    Version{"2.1.38.69"}\r
+}\r
index d4e61746f7e5d7099b58284717731ddc8d4f8ad7..4c22a7b790a9eccf18d1c98dff5a1c5264225e98 100644 (file)
@@ -166,7 +166,7 @@ to{
         minimumGroupingDigits{"1"}\r
         native{"latn"}\r
     }\r
-    Version{"2.1.38.39"}\r
+    Version{"2.1.44.88"}\r
     calendar{\r
         generic{\r
             DateTimePatterns{\r
@@ -1337,4 +1337,19 @@ to{
         US{"fakaʻamelika"}\r
         metric{"fakamita"}\r
     }\r
+    parse{\r
+        general{\r
+            lenient{\r
+                "[.․。︒﹒.。]",\r
+                "['ʼ՚᾽᾿’']",\r
+                "[%٪﹪%]",\r
+                "[؉‰]",\r
+                "[\$﹩$]",\r
+                "[£₤£]",\r
+                "[¥¥]",\r
+                "[₩₩]",\r
+                "[₨₹{Rp}{Rs}]",\r
+            }\r
+        }\r
+    }\r
 }\r
index 46b70ef22216ab3c16c41951d7c81ea671570e45..d94fbfbbddc8c5c5f7f064ffb1eea7e5ed0882df 100644 (file)
@@ -25,7 +25,9 @@ tr{
         default{"latn"}\r
         latn{\r
             miscPatterns{\r
+                approximately{"~{0}"}\r
                 atLeast{"{0}+"}\r
+                atMost{"≤{0}"}\r
                 range{"{0}–{1}"}\r
             }\r
             patterns{\r
@@ -216,7 +218,7 @@ tr{
         minimumGroupingDigits{"1"}\r
         native{"latn"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.91"}\r
     calendar{\r
         buddhist{\r
             eras{\r
@@ -2279,8 +2281,13 @@ tr{
         general{\r
             lenient{\r
                 "[.․。︒﹒.。]",\r
+                "['ʼ՚᾽᾿’']",\r
+                "[%٪﹪%]",\r
+                "[؉‰]",\r
                 "[\$﹩$$]",\r
                 "[£₤]",\r
+                "[¥¥]",\r
+                "[₩₩]",\r
                 "[₨₹{Rp}{Rs}]",\r
             }\r
         }\r
index 7313d2edc337d221df230563b7499ba8414c8331..465dfcdcd359998a1de26af01d6ab35c6176dd27 100644 (file)
@@ -1,6 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 tt{\r
+    AuxExemplarCharacters{"[ғ қ ӯ]"}\r
     ExemplarCharacters{\r
         "[а ә б в г д е ё ж җ з и й к л м н ң о ө п р с т у ү ф х һ ц ч ш щ ъ ы ь э ю"\r
         " я]"\r
@@ -10,6 +11,7 @@ tt{
         " Я]"\r
     }\r
     ExemplarCharactersNumbers{"[  \\- , % ‰ + 0 1 2 3 4 5 6 7 8 9]"}\r
+    ExemplarCharactersPunctuation{"[\\- ‐ – — , ; \\: ! ? . … ' ‘ ’ \u0022 “ ” ( ) \\[ \\] § @ * / \\& # ′ ″]"}\r
     NumberElements{\r
         default{"latn"}\r
         latn{\r
@@ -40,7 +42,7 @@ tt{
         minimumGroupingDigits{"1"}\r
         native{"latn"}\r
     }\r
-    Version{"2.1.38.72"}\r
+    Version{"2.1.44.88"}\r
     calendar{\r
         generic{\r
             DateTimePatterns{\r
@@ -135,7 +137,7 @@ tt{
                 yQQQ{"QQQ, y 'ел'"}\r
                 yQQQQ{"QQQQ, y 'ел'"}\r
                 yw{\r
-                    other{"y 'елның' w 'атнасы'"}\r
+                    other{"Y 'елның' w 'атнасы'"}\r
                 }\r
             }\r
             dayNames{\r
index a632083c47c3ffba69c40bee8bb2a41742e09411..921c39088a8abadb82a3074d967054da81fc86dc 100644 (file)
@@ -142,7 +142,7 @@ ug{
         }\r
         native{"arabext"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.88"}\r
     calendar{\r
         buddhist{\r
             eras{\r
@@ -406,8 +406,8 @@ ug{
                 yQQQ{"y QQQ"}\r
                 yQQQQ{"y QQQQ"}\r
                 yw{\r
-                    one{"y، w-ھەپتە"}\r
-                    other{"y، w-ھەپتە"}\r
+                    one{"Y، w-ھەپتە"}\r
+                    other{"Y، w-ھەپتە"}\r
                 }\r
             }\r
             dayNames{\r
index 3a082e35bd1a90669ef5e9918b588f149b556222..6757939deb69cff3ee0b079472405dd5fc604c33 100644 (file)
@@ -22,11 +22,13 @@ uk{
         default{"latn"}\r
         latn{\r
             miscPatterns{\r
+                approximately{"~{0}"}\r
                 atLeast{"{0}+"}\r
+                atMost{"≤{0}"}\r
                 range{"{0}–{1}"}\r
             }\r
             patterns{\r
-                accountingFormat{"#,##0.00¤;(#,##0.00¤)"}\r
+                accountingFormat{"#,##0.00 ¤"}\r
                 currencyFormat{"#,##0.00 ¤"}\r
                 decimalFormat{"#,##0.###"}\r
                 percentFormat{"#,##0%"}\r
@@ -288,7 +290,7 @@ uk{
         minimumGroupingDigits{"1"}\r
         native{"latn"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.65"}\r
     calendar{\r
         buddhist{\r
             eras{\r
@@ -873,7 +875,7 @@ uk{
                         afternoon1{"день"}\r
                         am{"дп"}\r
                         evening1{"вечір"}\r
-                        midnight{"північ"}\r
+                        midnight{"опÑ\96внÑ\96Ñ\87"}\r
                         morning1{"ранок"}\r
                         night1{"ніч"}\r
                         noon{"полудень"}\r
@@ -1463,9 +1465,9 @@ uk{
         female{"жінка"}\r
         flag{"прапор"}\r
         flags{"прапори"}\r
-        food_drink{"Ñ\97жа Ñ\96 напої"}\r
+        food_drink{"Ñ\97жа Ñ\82а напої"}\r
         format{"формат"}\r
-        format_whitespace{"Ñ\84оÑ\80маÑ\82 Ñ\96 Ð¿Ñ\80обÑ\96лÑ\8cний Ð·Ð½Ð°Ðº"}\r
+        format_whitespace{"Ñ\84оÑ\80маÑ\82 Ñ\96 Ð·Ð½Ð°Ðº Ð¿Ñ\80обÑ\96лÑ\83"}\r
         full_width_form_variant{"варіант повної ширини"}\r
         geometric_shapes{"геометрична фігура"}\r
         half_width_form_variant{"варіант половинної ширини"}\r
@@ -1487,7 +1489,7 @@ uk{
         limited_use{"обмеженого вжитку"}\r
         male{"чоловік"}\r
         math_symbols{"математичний символ"}\r
-        middle_eastern_scripts{"пиÑ\81Ñ\8cмо Ð¡ÐµÑ\80еднÑ\8cого Сходу"}\r
+        middle_eastern_scripts{"пиÑ\81Ñ\8cмо Ð\91лизÑ\8cкого Сходу"}\r
         miscellaneous{"некласифікований"}\r
         modern_scripts{"сучасне письмо"}\r
         modifier{"модифікатор"}\r
@@ -1507,7 +1509,7 @@ uk{
         rightwards_arrows{"Стрілки вправо"}\r
         sign_standard_symbols{"знак чи символ"}\r
         small_form_variant{"малі варіанти"}\r
-        smiley{"смалик"}\r
+        smiley{"Ñ\81майлик"}\r
         smileys_people{"смайлик чи людина"}\r
         south_asian_scripts{"південноазійське письмо"}\r
         southeast_asian_scripts{"південно-східне азійське письмо"}\r
@@ -1523,7 +1525,7 @@ uk{
         vocalic_jamo{"Корейські голосні"}\r
         weather{"погода"}\r
         western_asian_scripts{"західноазійське письмо"}\r
-        whitespace{"Ð\9fробіл"}\r
+        whitespace{"пробіл"}\r
     }\r
     contextTransforms{\r
         day-format-except-narrow:intvector{\r
@@ -1587,7 +1589,7 @@ uk{
             }\r
         }\r
         day-narrow{\r
-            dn{"д."}\r
+            dn{"д"}\r
             relative{\r
                 "-1"{"учора"}\r
                 "-2"{"позавчора"}\r
@@ -1641,7 +1643,7 @@ uk{
             dn{"день року"}\r
         }\r
         dayOfYear-short{\r
-            dn{"день року"}\r
+            dn{"д. року"}\r
         }\r
         dayperiod{\r
             dn{"дп/пп"}\r
@@ -1765,7 +1767,7 @@ uk{
             }\r
         }\r
         hour-short{\r
-            dn{"год"}\r
+            dn{"год."}\r
             relative{\r
                 "0"{"цієї години"}\r
             }\r
@@ -1825,7 +1827,7 @@ uk{
             }\r
         }\r
         minute-short{\r
-            dn{"хв"}\r
+            dn{"хв."}\r
             relative{\r
                 "0"{"цієї хвилини"}\r
             }\r
@@ -1930,7 +1932,7 @@ uk{
             }\r
         }\r
         month-narrow{\r
-            dn{"міс."}\r
+            dn{"м"}\r
             relative{\r
                 "-1"{"минулого місяця"}\r
                 "0"{"цього місяця"}\r
@@ -2438,7 +2440,7 @@ uk{
             }\r
         }\r
         week-narrow{\r
-            dn{"тиж."}\r
+            dn{"т"}\r
             relative{\r
                 "-1"{"минулого тижня"}\r
                 "0"{"цього тижня"}\r
@@ -2487,7 +2489,7 @@ uk{
             dn{"тиждень місяця"}\r
         }\r
         weekOfMonth-narrow{\r
-            dn{"тиж. місяця"}\r
+            dn{"тиж. міс."}\r
         }\r
         weekOfMonth-short{\r
             dn{"тиж. місяця"}\r
@@ -2496,19 +2498,19 @@ uk{
             dn{"день тижня"}\r
         }\r
         weekday-narrow{\r
-            dn{"день тижня"}\r
+            dn{"д тижня"}\r
         }\r
         weekday-short{\r
-            dn{"день тижня"}\r
+            dn{"д. тижня"}\r
         }\r
         weekdayOfMonth{\r
             dn{"день місяця"}\r
         }\r
         weekdayOfMonth-narrow{\r
-            dn{"день місяця"}\r
+            dn{"д місяця"}\r
         }\r
         weekdayOfMonth-short{\r
-            dn{"день місяця"}\r
+            dn{"д. місяця"}\r
         }\r
         year{\r
             dn{"рік"}\r
@@ -2533,7 +2535,7 @@ uk{
             }\r
         }\r
         year-narrow{\r
-            dn{"р."}\r
+            dn{"р"}\r
             relative{\r
                 "-1"{"торік"}\r
                 "0"{"цього року"}\r
@@ -2580,10 +2582,10 @@ uk{
             dn{"часовий пояс"}\r
         }\r
         zone-narrow{\r
-            dn{"часовий пояс"}\r
+            dn{"час. п."}\r
         }\r
         zone-short{\r
-            dn{"часовий пояс"}\r
+            dn{"час. пояс"}\r
         }\r
     }\r
     listPattern{\r
@@ -2639,8 +2641,13 @@ uk{
         general{\r
             lenient{\r
                 "[.․。︒﹒.。]",\r
+                "['ʼ՚᾽᾿’']",\r
+                "[%٪﹪%]",\r
+                "[؉‰]",\r
                 "[\$﹩$$]",\r
                 "[£₤]",\r
+                "[¥¥]",\r
+                "[₩₩]",\r
                 "[₨₹{Rp}{Rs}]",\r
             }\r
         }\r
index d3e3e3b922121453c5cf3e2864a082a94b3be2a7..9ef461cd35e94d3da4c0cd1d9a0895ca812ac622 100644 (file)
@@ -49,7 +49,9 @@ ur{
         default{"latn"}\r
         latn{\r
             miscPatterns{\r
-                atLeast{"⩾{0}"}\r
+                approximately{"~{0}"}\r
+                atLeast{"≥{0}"}\r
+                atMost{"≤{0}"}\r
                 range{"{0}–{1}"}\r
             }\r
             patterns{\r
@@ -240,7 +242,7 @@ ur{
         minimumGroupingDigits{"1"}\r
         native{"arabext"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.3"}\r
     calendar{\r
         buddhist{\r
             eras{\r
@@ -1370,7 +1372,7 @@ ur{
     }\r
     characterLabel{\r
         activities{"سرگرمی"}\r
-        african_scripts{"افریقی سکرپٹس"}\r
+        african_scripts{"اÙ\81رÛ\8cÙ\82Û\8c Ø§Ø³Ú©Ø±Ù¾Ù¹Ø³"}\r
         american_scripts{"امریکی سکرپٹس"}\r
         animal{"جانور"}\r
         animals_nature{"حیوانات و فطرت"}\r
@@ -1445,7 +1447,7 @@ ur{
         spacing{"فاصلہ بندی"}\r
         sport{"کھیل"}\r
         symbols{"علامات"}\r
-        technical_symbols{"تکنکی علامات"}\r
+        technical_symbols{"تکنیکی علامات"}\r
         tone_marks{"ٹون مارکس"}\r
         travel{"سفر"}\r
         travel_places{"سفر اور مقامات"}\r
@@ -1621,7 +1623,7 @@ ur{
             dn{"گھنٹہ"}\r
             relativeTime{\r
                 future{\r
-                    one{"{0} Ú¯Ú¾Ù\86Ù¹Û\81 میں"}\r
+                    one{"{0} Ú¯Ú¾Ù\86Ù¹Û\92 میں"}\r
                     other{"{0} گھنٹوں میں"}\r
                 }\r
                 past{\r
@@ -2330,8 +2332,13 @@ ur{
         general{\r
             lenient{\r
                 "[.․。︒﹒.。]",\r
+                "['ʼ՚᾽᾿’']",\r
+                "[%٪﹪%]",\r
+                "[؉‰]",\r
                 "[\$﹩$$]",\r
                 "[£₤]",\r
+                "[¥¥]",\r
+                "[₩₩]",\r
                 "[₨₹{Rp}{Rs}]",\r
             }\r
         }\r
index 49363b16511ebf4c957f6d8640d8ebef8524f917..96d9d7bd82e75e126537d31fe67e6fafa31e0381 100644 (file)
@@ -14,7 +14,7 @@ ur_IN{
             }\r
         }\r
     }\r
-    Version{"2.1.38.39"}\r
+    Version{"2.1.43.65"}\r
     fields{\r
         day-narrow{\r
             relativeTime{\r
index 54ccce1971d6eb6c179b7f8002ab5fbcbc5536fe..025933b59fdfa6ad71c3760c56c4a4bf2c90df0b 100644 (file)
@@ -43,7 +43,9 @@ uz{
         default{"latn"}\r
         latn{\r
             miscPatterns{\r
-                atLeast{"⩾{0}"}\r
+                approximately{"~{0}"}\r
+                atLeast{"≥{0}"}\r
+                atMost{"≤{0}"}\r
                 range{"{0}–{1}"}\r
             }\r
             patterns{\r
@@ -233,7 +235,7 @@ uz{
         minimumGroupingDigits{"1"}\r
         native{"latn"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.88"}\r
     calendar{\r
         generic{\r
             DateTimePatterns{\r
@@ -439,8 +441,8 @@ uz{
                 yQQQ{"y, QQQ"}\r
                 yQQQQ{"y, QQQQ"}\r
                 yw{\r
-                    one{"y, w-'hafta'"}\r
-                    other{"y, w-'hafta'"}\r
+                    one{"Y, w-'hafta'"}\r
+                    other{"Y, w-'hafta'"}\r
                 }\r
             }\r
             dayNames{\r
index 76ddae0bede949464d2d7afbec624a770eda07e7..47385f2d95a1e415b1c3a4840e89a2fd130b6529 100644 (file)
@@ -165,7 +165,7 @@ uz_Cyrl{
             }\r
         }\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.2"}\r
     calendar{\r
         generic{\r
             DateTimePatterns{\r
@@ -303,6 +303,11 @@ uz_Cyrl{
                 Timezone{"{0} {1}"}\r
             }\r
             availableFormats{\r
+                Bh{"B h"}\r
+                Bhm{"B h:mm"}\r
+                Bhms{"B h:mm:ss"}\r
+                EBhm{"E, B h:mm"}\r
+                EBhms{"E, B h:mm:ss"}\r
                 EHm{"E, HH:mm"}\r
                 EHms{"E, HH:mm:ss"}\r
                 Ed{"d, E"}\r
@@ -371,13 +376,13 @@ uz_Cyrl{
                         "Ш",\r
                     }\r
                     short{\r
-                        "Як",\r
-                        "Ð\94у",\r
-                        "Се",\r
-                        "Чо",\r
-                        "Ð\9fа",\r
-                        "Ð\96у",\r
-                        "Ша",\r
+                        "як",\r
+                        "ду",\r
+                        "се",\r
+                        "чо",\r
+                        "па",\r
+                        "Ðу",\r
+                        "ша",\r
                     }\r
                     wide{\r
                         "якшанба",\r
@@ -391,13 +396,13 @@ uz_Cyrl{
                 }\r
                 stand-alone{\r
                     abbreviated{\r
-                        "Якш",\r
-                        "Ð\94уш",\r
-                        "Сеш",\r
-                        "Чор",\r
-                        "Ð\9fай",\r
-                        "Ð\96ум",\r
-                        "Шан",\r
+                        "якш",\r
+                        "душ",\r
+                        "сеш",\r
+                        "чор",\r
+                        "пай",\r
+                        "Ðум",\r
+                        "шан",\r
                     }\r
                     narrow{\r
                         "Я",\r
@@ -409,22 +414,22 @@ uz_Cyrl{
                         "Ш",\r
                     }\r
                     short{\r
-                        "Як",\r
-                        "Ð\94у",\r
-                        "Се",\r
-                        "Чо",\r
-                        "Ð\9fа",\r
-                        "Ð\96у",\r
-                        "Ша",\r
+                        "як",\r
+                        "ду",\r
+                        "се",\r
+                        "чо",\r
+                        "па",\r
+                        "Ðу",\r
+                        "ша",\r
                     }\r
                     wide{\r
-                        "Якшанба",\r
-                        "Ð\94ушанба",\r
-                        "Сешанба",\r
-                        "Чоршанба",\r
-                        "Ð\9fайшанба",\r
-                        "Ð\96ума",\r
-                        "Шанба",\r
+                        "якшанба",\r
+                        "душанба",\r
+                        "сешанба",\r
+                        "чоршанба",\r
+                        "пайшанба",\r
+                        "Ðума",\r
+                        "шанба",\r
                     }\r
                 }\r
             }\r
@@ -495,7 +500,7 @@ uz_Cyrl{
                 }\r
                 abbreviated%variant{\r
                     "э.а.",\r
-                    "CE",\r
+                    "эрамиз",\r
                 }\r
                 wide{\r
                     "милоддан аввалги",\r
@@ -503,7 +508,7 @@ uz_Cyrl{
                 }\r
                 wide%variant{\r
                     "эрамиздан аввалги",\r
-                    "CE",\r
+                    "эрамиз",\r
                 }\r
             }\r
             intervalFormats{\r
@@ -648,18 +653,18 @@ uz_Cyrl{
                 }\r
                 stand-alone{\r
                     abbreviated{\r
-                        "Янв",\r
-                        "Фев",\r
-                        "Ð\9cар",\r
-                        "Ð\90пр",\r
-                        "Ð\9cай",\r
-                        "Ð\98юн",\r
-                        "Ð\98юл",\r
-                        "Ð\90вг",\r
-                        "Сен",\r
-                        "Ð\9eкт",\r
-                        "Ð\9dоя",\r
-                        "Ð\94ек",\r
+                        "янв",\r
+                        "фев",\r
+                        "мар",\r
+                        "апр",\r
+                        "май",\r
+                        "июн",\r
+                        "июл",\r
+                        "авг",\r
+                        "сен",\r
+                        "окт",\r
+                        "ноя",\r
+                        "дек",\r
                     }\r
                     narrow{\r
                         "Я",\r
@@ -676,18 +681,18 @@ uz_Cyrl{
                         "Д",\r
                     }\r
                     wide{\r
-                        "Январ",\r
-                        "Феврал",\r
-                        "Ð\9cарт",\r
-                        "Ð\90прел",\r
-                        "Ð\9cай",\r
-                        "Ð\98юн",\r
-                        "Ð\98юл",\r
-                        "Ð\90вгуст",\r
-                        "Сентябр",\r
-                        "Ð\9eктябр",\r
-                        "Ð\9dоябр",\r
-                        "Ð\94екабр",\r
+                        "январ",\r
+                        "феврал",\r
+                        "март",\r
+                        "апрел",\r
+                        "май",\r
+                        "июн",\r
+                        "июл",\r
+                        "август",\r
+                        "сентябр",\r
+                        "октябр",\r
+                        "ноябр",\r
+                        "декабр",\r
                     }\r
                 }\r
             }\r
index f146c3e4d0b6050bebab2bbc4c35508864fcc758..ee87fd36eff1e12e80b9dbd84f68b27344569f45 100644 (file)
@@ -26,7 +26,9 @@ vi{
         default{"latn"}\r
         latn{\r
             miscPatterns{\r
+                approximately{"~{0}"}\r
                 atLeast{"{0}+"}\r
+                atMost{"≤{0}"}\r
                 range{"{0}-{1}"}\r
             }\r
             patterns{\r
@@ -182,7 +184,7 @@ vi{
         minimumGroupingDigits{"1"}\r
         native{"latn"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.65"}\r
     calendar{\r
         buddhist{\r
             DateTimePatterns{\r
@@ -683,7 +685,7 @@ vi{
                 GyMMM{"MMM y G"}\r
                 GyMMMEd{"E, d MMM, y G"}\r
                 GyMMMd{"d MMM, y G"}\r
-                H{"HH'h'"}\r
+                H{"HH"}\r
                 Hm{"HH:mm"}\r
                 Hms{"HH:mm:ss"}\r
                 M{"L"}\r
@@ -696,7 +698,7 @@ vi{
                 MMdd{"dd-MM"}\r
                 Md{"dd/M"}\r
                 d{"'Ngày' dd"}\r
-                h{"h'h' a"}\r
+                h{"h a"}\r
                 hm{"h:mm a"}\r
                 hms{"h:mm:ss a"}\r
                 ms{"mm:ss"}\r
@@ -2407,8 +2409,13 @@ vi{
         general{\r
             lenient{\r
                 "[.․。︒﹒.。]",\r
+                "['ʼ՚᾽᾿’']",\r
+                "[%٪﹪%]",\r
+                "[؉‰]",\r
                 "[\$﹩$$]",\r
                 "[£₤]",\r
+                "[¥¥]",\r
+                "[₩₩]",\r
                 "[₨₹{Rp}{Rs}]",\r
             }\r
         }\r
index 56c4412210bcd33c2e8db474d2448228f81915a7..4948cbfcbe99b3d2b0efa59b53c811292e8da13a 100644 (file)
@@ -9,7 +9,7 @@ wo{
         default{"latn"}\r
         latn{\r
             miscPatterns{\r
-                atLeast{"⩾{0}"}\r
+                atLeast{"â\89¥{0}"}\r
                 range{"{0}–{1}"}\r
             }\r
             patterns{\r
@@ -35,7 +35,7 @@ wo{
         minimumGroupingDigits{"1"}\r
         native{"latn"}\r
     }\r
-    Version{"2.1.38.71"}\r
+    Version{"2.1.43.94"}\r
     calendar{\r
         generic{\r
             DateTimePatterns{\r
diff --git a/source/data/locales/xh.txt b/source/data/locales/xh.txt
new file mode 100644 (file)
index 0000000..d18a46c
--- /dev/null
@@ -0,0 +1,402 @@
+// © 2016 and later: Unicode, Inc. and others.\r
+// License & terms of use: http://www.unicode.org/copyright.html#License\r
+xh{\r
+    ExemplarCharacters{"[a b c d e f g h i j k l m n o p q r s t u v w x y z]"}\r
+    ExemplarCharactersIndex{"[A B C D E F G H I J K L M N O P Q R S T U V W X Y Z]"}\r
+    NumberElements{\r
+        latn{\r
+            patterns{\r
+                currencyFormat{"¤#,##0.00"}\r
+                decimalFormat{"#,##0.###"}\r
+                percentFormat{"#,##0%"}\r
+                scientificFormat{"#E0"}\r
+            }\r
+            symbols{\r
+                decimal{"."}\r
+                group{" "}\r
+                minusSign{"-"}\r
+                percentSign{"%"}\r
+                plusSign{"+"}\r
+            }\r
+        }\r
+    }\r
+    Version{"2.1.44.88"}\r
+    calendar{\r
+        gregorian{\r
+            AmPmMarkers{\r
+                "AM",\r
+                "PM",\r
+            }\r
+            DateTimePatterns{\r
+                "HH:mm:ss zzzz",\r
+                "HH:mm:ss z",\r
+                "HH:mm:ss",\r
+                "HH:mm",\r
+                "y MMMM d, EEEE",\r
+                "y MMMM d",\r
+                "y MMM d",\r
+                "y-MM-dd",\r
+                "{1} {0}",\r
+                "{1} {0}",\r
+                "{1} {0}",\r
+                "{1} {0}",\r
+                "{1} {0}",\r
+            }\r
+            appendItems{\r
+                Timezone{"{0} {1}"}\r
+            }\r
+            availableFormats{\r
+                E{"ccc"}\r
+                EHm{"E HH:mm"}\r
+                EHms{"E HH:mm:ss"}\r
+                Ed{"d, E"}\r
+                Ehm{"E h:mm a"}\r
+                Ehms{"E h:mm:ss a"}\r
+                Gy{"G y"}\r
+                GyMMM{"G y MMM"}\r
+                GyMMMEd{"G y MMM d, E"}\r
+                GyMMMd{"G y MMM d"}\r
+                H{"HH"}\r
+                Hm{"HH:mm"}\r
+                Hms{"HH:mm:ss"}\r
+                Hmsv{"HH:mm:ss v"}\r
+                Hmv{"HH:mm v"}\r
+                M{"L"}\r
+                MEd{"MM-dd, E"}\r
+                MMM{"LLL"}\r
+                MMMEd{"MMM d, E"}\r
+                MMMMW{\r
+                    one{"'week' W 'of' MMM"}\r
+                    other{"'week' W 'of' MMM"}\r
+                }\r
+                MMMMd{"MMMM d"}\r
+                MMMd{"MMM d"}\r
+                Md{"MM-dd"}\r
+                d{"d"}\r
+                h{"h a"}\r
+                hm{"h:mm a"}\r
+                hms{"h:mm:ss a"}\r
+                hmsv{"h:mm:ss a v"}\r
+                hmv{"h:mm a v"}\r
+                ms{"mm:ss"}\r
+                y{"y"}\r
+                yM{"y-MM"}\r
+                yMEd{"y-MM-dd, E"}\r
+                yMMM{"y MMM"}\r
+                yMMMEd{"y MMM d, E"}\r
+                yMMMM{"y MMMM"}\r
+                yMMMd{"y MMM d"}\r
+                yMd{"y-MM-dd"}\r
+                yQQQ{"y QQQ"}\r
+                yQQQQ{"y QQQQ"}\r
+                yw{\r
+                    one{"'week' w 'of' Y"}\r
+                    other{"'week' w 'of' Y"}\r
+                }\r
+            }\r
+            dayNames{\r
+                format{\r
+                    abbreviated{\r
+                        "Caw",\r
+                        "Mvu",\r
+                        "Bin",\r
+                        "Tha",\r
+                        "Sin",\r
+                        "Hla",\r
+                        "Mgq",\r
+                    }\r
+                    narrow{\r
+                        "S",\r
+                        "M",\r
+                        "T",\r
+                        "W",\r
+                        "T",\r
+                        "F",\r
+                        "S",\r
+                    }\r
+                    wide{\r
+                        "Cawe",\r
+                        "Mvulo",\r
+                        "Lwesibini",\r
+                        "Lwesithathu",\r
+                        "Lwesine",\r
+                        "Lwesihlanu",\r
+                        "Mgqibelo",\r
+                    }\r
+                }\r
+                stand-alone{\r
+                    abbreviated{\r
+                        "Caw",\r
+                        "Mvu",\r
+                        "Bin",\r
+                        "Tha",\r
+                        "Sin",\r
+                        "Hla",\r
+                        "Mgq",\r
+                    }\r
+                    narrow{\r
+                        "S",\r
+                        "M",\r
+                        "T",\r
+                        "W",\r
+                        "T",\r
+                        "F",\r
+                        "S",\r
+                    }\r
+                    wide{\r
+                        "Cawe",\r
+                        "Mvulo",\r
+                        "Lwesibini",\r
+                        "Lwesithathu",\r
+                        "Lwesine",\r
+                        "Lwesihlanu",\r
+                        "Mgqibelo",\r
+                    }\r
+                }\r
+            }\r
+            eras{\r
+                abbreviated{\r
+                    "BC",\r
+                    "AD",\r
+                }\r
+                abbreviated%variant{\r
+                    "BCE",\r
+                    "CE",\r
+                }\r
+            }\r
+            intervalFormats{\r
+                H{\r
+                    H{"HH–HH"}\r
+                }\r
+                Hm{\r
+                    H{"HH:mm–HH:mm"}\r
+                    m{"HH:mm–HH:mm"}\r
+                }\r
+                Hmv{\r
+                    H{"HH:mm–HH:mm v"}\r
+                    m{"HH:mm–HH:mm v"}\r
+                }\r
+                Hv{\r
+                    H{"HH–HH v"}\r
+                }\r
+                M{\r
+                    M{"MM–MM"}\r
+                }\r
+                MEd{\r
+                    M{"MM-dd, E – MM-dd, E"}\r
+                    d{"MM-dd, E – MM-dd, E"}\r
+                }\r
+                MMM{\r
+                    M{"LLL–LLL"}\r
+                }\r
+                MMMEd{\r
+                    M{"MMM d, E – MMM d, E"}\r
+                    d{"MMM d, E – MMM d, E"}\r
+                }\r
+                MMMd{\r
+                    M{"MMM d – MMM d"}\r
+                    d{"MMM d–d"}\r
+                }\r
+                Md{\r
+                    M{"MM-dd – MM-dd"}\r
+                    d{"MM-dd – MM-dd"}\r
+                }\r
+                d{\r
+                    d{"d–d"}\r
+                }\r
+                fallback{"{0} – {1}"}\r
+                h{\r
+                    a{"h a – h a"}\r
+                    h{"h–h a"}\r
+                }\r
+                hm{\r
+                    a{"h:mm a – h:mm a"}\r
+                    h{"h:mm–h:mm a"}\r
+                    m{"h:mm–h:mm a"}\r
+                }\r
+                hmv{\r
+                    a{"h:mm a – h:mm a v"}\r
+                    h{"h:mm–h:mm a v"}\r
+                    m{"h:mm–h:mm a v"}\r
+                }\r
+                hv{\r
+                    a{"h a – h a v"}\r
+                    h{"h–h a v"}\r
+                }\r
+                y{\r
+                    y{"y–y"}\r
+                }\r
+                yM{\r
+                    M{"y-MM – y-MM"}\r
+                    y{"y-MM – y-MM"}\r
+                }\r
+                yMEd{\r
+                    M{"y-MM-dd, E – y-MM-dd, E"}\r
+                    d{"y-MM-dd, E – y-MM-dd, E"}\r
+                    y{"y-MM-dd, E – y-MM-dd, E"}\r
+                }\r
+                yMMM{\r
+                    M{"y MMM–MMM"}\r
+                    y{"y MMM – y MMM"}\r
+                }\r
+                yMMMEd{\r
+                    M{"y MMM d, E – MMM d, E"}\r
+                    d{"y MMM d, E – MMM d, E"}\r
+                    y{"y MMM d, E – y MMM d, E"}\r
+                }\r
+                yMMMM{\r
+                    M{"y MMMM–MMMM"}\r
+                    y{"y MMMM – y MMMM"}\r
+                }\r
+                yMMMd{\r
+                    M{"y MMM d – MMM d"}\r
+                    d{"y MMM d–d"}\r
+                    y{"y MMM d – y MMM d"}\r
+                }\r
+                yMd{\r
+                    M{"y-MM-dd – y-MM-dd"}\r
+                    d{"y-MM-dd – y-MM-dd"}\r
+                    y{"y-MM-dd – y-MM-dd"}\r
+                }\r
+            }\r
+            monthNames{\r
+                format{\r
+                    abbreviated{\r
+                        "Jan",\r
+                        "Feb",\r
+                        "Mat",\r
+                        "Epr",\r
+                        "Mey",\r
+                        "Jun",\r
+                        "Jul",\r
+                        "Aga",\r
+                        "Sep",\r
+                        "Okt",\r
+                        "Nov",\r
+                        "Dis",\r
+                    }\r
+                    narrow{\r
+                        "1",\r
+                        "2",\r
+                        "3",\r
+                        "4",\r
+                        "5",\r
+                        "6",\r
+                        "7",\r
+                        "8",\r
+                        "9",\r
+                        "10",\r
+                        "11",\r
+                        "12",\r
+                    }\r
+                    wide{\r
+                        "Janyuwari",\r
+                        "Februwari",\r
+                        "Matshi",\r
+                        "Epreli",\r
+                        "Meyi",\r
+                        "Juni",\r
+                        "Julayi",\r
+                        "Agasti",\r
+                        "Septemba",\r
+                        "Okthoba",\r
+                        "Novemba",\r
+                        "Disemba",\r
+                    }\r
+                }\r
+                stand-alone{\r
+                    abbreviated{\r
+                        "Jan",\r
+                        "Feb",\r
+                        "Mat",\r
+                        "Epr",\r
+                        "Mey",\r
+                        "Jun",\r
+                        "Jul",\r
+                        "Aga",\r
+                        "Sep",\r
+                        "Okt",\r
+                        "Nov",\r
+                        "Dis",\r
+                    }\r
+                    narrow{\r
+                        "1",\r
+                        "2",\r
+                        "3",\r
+                        "4",\r
+                        "5",\r
+                        "6",\r
+                        "7",\r
+                        "8",\r
+                        "9",\r
+                        "10",\r
+                        "11",\r
+                        "12",\r
+                    }\r
+                    wide{\r
+                        "Janyuwari",\r
+                        "Februwari",\r
+                        "Matshi",\r
+                        "Epreli",\r
+                        "Meyi",\r
+                        "Juni",\r
+                        "Julayi",\r
+                        "Agasti",\r
+                        "Septemba",\r
+                        "Okthoba",\r
+                        "Novemba",\r
+                        "Disemba",\r
+                    }\r
+                }\r
+            }\r
+            quarters{\r
+                format{\r
+                    abbreviated{\r
+                        "Q1",\r
+                        "Q2",\r
+                        "Q3",\r
+                        "Q4",\r
+                    }\r
+                    narrow{\r
+                        "1",\r
+                        "2",\r
+                        "3",\r
+                        "4",\r
+                    }\r
+                    wide{\r
+                        "1 unyangantathu",\r
+                        "2 unyangantathu",\r
+                        "3 unyangantathu",\r
+                        "4 unyangantathu",\r
+                    }\r
+                }\r
+                stand-alone{\r
+                    abbreviated{\r
+                        "Q1",\r
+                        "Q2",\r
+                        "Q3",\r
+                        "Q4",\r
+                    }\r
+                    narrow{\r
+                        "1",\r
+                        "2",\r
+                        "3",\r
+                        "4",\r
+                    }\r
+                    wide{\r
+                        "1 unyangantathu",\r
+                        "2 unyangantathu",\r
+                        "3 unyangantathu",\r
+                        "4 unyangantathu",\r
+                    }\r
+                }\r
+            }\r
+        }\r
+    }\r
+    delimiters{\r
+        alternateQuotationEnd{"”"}\r
+        alternateQuotationStart{"“"}\r
+        quotationEnd{"’"}\r
+        quotationStart{"‘"}\r
+    }\r
+}\r
diff --git a/source/data/locales/xh_ZA.txt b/source/data/locales/xh_ZA.txt
new file mode 100644 (file)
index 0000000..f6d67ea
--- /dev/null
@@ -0,0 +1,5 @@
+// © 2016 and later: Unicode, Inc. and others.\r
+// License & terms of use: http://www.unicode.org/copyright.html#License\r
+xh_ZA{\r
+    Version{"2.1.44.82"}\r
+}\r
index 4a22cd3997b5376f6adc69f6069026c40b902f7b..98c989b18bdd40bfbb586bb62d8791683e116189 100644 (file)
@@ -11,7 +11,7 @@ yo{
     NumberElements{\r
         latn{\r
             miscPatterns{\r
-                atLeast{"⩾{0}"}\r
+                atLeast{"â\89¥{0}"}\r
                 range{"{0}–{1}"}\r
             }\r
             patterns{\r
@@ -36,7 +36,7 @@ yo{
         }\r
         minimumGroupingDigits{"1"}\r
     }\r
-    Version{"2.1.39.11"}\r
+    Version{"2.1.44.88"}\r
     calendar{\r
         generic{\r
             DateTimePatterns{\r
@@ -154,7 +154,7 @@ yo{
                 yQQQ{"QQQ y"}\r
                 yQQQQ{"QQQQ y"}\r
                 yw{\r
-                    other{"'week' w 'of' y"}\r
+                    other{"'week' w 'of' Y"}\r
                 }\r
             }\r
             dayNames{\r
index 52d92860041350d5b4b7d51a3ab97669d8502fa9..af2ad684953170f6c1ca5790fbed85a45f1c3ac3 100644 (file)
@@ -5,7 +5,7 @@ yo_BJ{
         "[a á à b d e é è ɛ {ɛ\u0301} {ɛ\u0300} f g {gb} h i í ì j k l m n o ó ò ɔ {ɔ"\r
         "\u0301} {ɔ\u0300} p r s {sh} t u ú ù w y]"\r
     }\r
-    Version{"2.1.39.11"}\r
+    Version{"2.1.44.53"}\r
     calendar{\r
         gregorian{\r
             AmPmMarkers{\r
index 0164e35eea7bb574c9b62a3b733b7296ae4a45f1..77cfbd02d86fa537388b38ca67d801cec1c11671 100644 (file)
@@ -105,7 +105,9 @@ yue{
         }\r
         latn{\r
             miscPatterns{\r
+                approximately{"~{0}"}\r
                 atLeast{"{0}+"}\r
+                atMost{"≤{0}"}\r
                 range{"{0}-{1}"}\r
             }\r
             patterns{\r
@@ -118,7 +120,7 @@ yue{
             patternsLong{\r
                 decimalFormat{\r
                     1000{\r
-                        other{"0"}\r
+                        other{"0"}\r
                     }\r
                     10000{\r
                         other{"0萬"}\r
@@ -158,7 +160,7 @@ yue{
             patternsShort{\r
                 currencyFormat{\r
                     1000{\r
-                        other{"¤0千"}\r
+                        other{"0"}\r
                     }\r
                     10000{\r
                         other{"¤0萬"}\r
@@ -196,7 +198,7 @@ yue{
                 }\r
                 decimalFormat{\r
                     1000{\r
-                        other{"0"}\r
+                        other{"0"}\r
                     }\r
                     10000{\r
                         other{"0萬"}\r
@@ -260,7 +262,7 @@ yue{
         native{"hanidec"}\r
         traditional{"hant"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.91"}\r
     calendar{\r
         buddhist{\r
             DateTimePatterns{\r
@@ -2394,6 +2396,7 @@ yue{
                     "大正",\r
                     "昭和",\r
                     "平成",\r
+                    "Qqqq",\r
                 }\r
             }\r
         }\r
index 8f0e4887c412f9c69177e44e02cb58bbcfbf53fa..87f5153fee8721e51667d87dbba676b154abda32 100644 (file)
@@ -103,7 +103,9 @@ yue_Hans{
         }\r
         latn{\r
             miscPatterns{\r
+                approximately{"~{0}"}\r
                 atLeast{"{0}+"}\r
+                atMost{"≤{0}"}\r
                 range{"{0}-{1}"}\r
             }\r
             patterns{\r
@@ -258,7 +260,7 @@ yue_Hans{
         native{"hanidec"}\r
         traditional{"hans"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.91"}\r
     calendar{\r
         buddhist{\r
             DateTimePatterns{\r
@@ -2392,6 +2394,7 @@ yue_Hans{
                     "大正",\r
                     "昭和",\r
                     "平成",\r
+                    "Qqqq",\r
                 }\r
             }\r
         }\r
index 9047f588315c35e119a6a7b96ecf750ae0e5862d..ec360fba2f520fbc6a5072c2be0da5c7b2128c1f 100644 (file)
@@ -7,7 +7,7 @@ zgh{
     NumberElements{\r
         latn{\r
             miscPatterns{\r
-                atLeast{"⩾{0}"}\r
+                atLeast{"â\89¥{0}"}\r
                 range{"{0}–{1}"}\r
             }\r
             patterns{\r
@@ -32,7 +32,7 @@ zgh{
         }\r
         minimumGroupingDigits{"1"}\r
     }\r
-    Version{"2.1.39.11"}\r
+    Version{"2.1.43.94"}\r
     calendar{\r
         generic{\r
             DateTimePatterns{\r
index 207f064131e59c4b538e8a7b9012ddef4e28f15c..a3d8d26dcfe4c0d25803b215e63997fd2fff7e96 100644 (file)
@@ -384,7 +384,9 @@ zh{
         }\r
         latn{\r
             miscPatterns{\r
+                approximately{"~{0}"}\r
                 atLeast{"{0}+"}\r
+                atMost{"≤{0}"}\r
                 range{"{0}-{1}"}\r
             }\r
             patterns{\r
@@ -825,7 +827,7 @@ zh{
             }\r
         }\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.76"}\r
     calendar{\r
         buddhist{\r
             DateTimePatterns{\r
@@ -3403,6 +3405,7 @@ zh{
                     "大正",\r
                     "昭和",\r
                     "平成",\r
+                    "Qqqq",\r
                 }\r
                 narrow{\r
                     "大化(645–650)",\r
@@ -3641,6 +3644,7 @@ zh{
                     "T",\r
                     "S",\r
                     "H",\r
+                    "Q",\r
                 }\r
                 wide{\r
                     "大化 (645–650)",\r
@@ -3879,6 +3883,7 @@ zh{
                     "大正",\r
                     "昭和",\r
                     "平成",\r
+                    "Qqqq",\r
                 }\r
             }\r
         }\r
@@ -5031,4 +5036,36 @@ zh{
         US{"美制"}\r
         metric{"公制"}\r
     }\r
+    parse{\r
+        date{\r
+            lenient{\r
+                "[\\--/]",\r
+                "[\\:∶]",\r
+            }\r
+        }\r
+        general{\r
+            lenient{\r
+                "[.․。︒﹒.。]",\r
+                "['ʼ՚᾽᾿’']",\r
+                "[%٪﹪%]",\r
+                "[؉‰]",\r
+                "[\$﹩$$]",\r
+                "[£₤]",\r
+                "[¥¥]",\r
+                "[₩₩]",\r
+                "[₨₹{Rp}{Rs}]",\r
+            }\r
+        }\r
+        number{\r
+            lenient{\r
+                "[\\-‒⁻₋−➖﹣-]",\r
+                "[,،٫、︐︑﹐﹑,、]",\r
+                "[+⁺₊➕﬩﹢+]",\r
+            }\r
+            stricter{\r
+                "[,٫︐﹐,]",\r
+                "[.․﹒.。]",\r
+            }\r
+        }\r
+    }\r
 }\r
index 7eb03a764c624a200e91a8f3c0da4be9f30c3eb1..b888e298581c050e5b418f35a4226230d609d0ac 100644 (file)
@@ -625,7 +625,9 @@ zh_Hant{
         }\r
         latn{\r
             miscPatterns{\r
+                approximately{"~{0}"}\r
                 atLeast{"{0}+"}\r
+                atMost{"≤{0}"}\r
                 range{"{0}-{1}"}\r
             }\r
             patterns{\r
@@ -1374,7 +1376,7 @@ zh_Hant{
             }\r
         }\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.91"}\r
     calendar{\r
         buddhist{\r
             DateTimePatterns{\r
@@ -4696,6 +4698,12 @@ zh_Hant{
                     }\r
                 }\r
                 stand-alone{\r
+                    abbreviated{\r
+                        "第1季",\r
+                        "第2季",\r
+                        "第3季",\r
+                        "第4季",\r
+                    }\r
                     narrow{\r
                         "1",\r
                         "2",\r
@@ -5737,6 +5745,7 @@ zh_Hant{
                     "大正",\r
                     "昭和",\r
                     "平成",\r
+                    "Qqqq",\r
                 }\r
                 narrow{\r
                     "大化",\r
@@ -5975,6 +5984,7 @@ zh_Hant{
                     "大正",\r
                     "昭和",\r
                     "平成",\r
+                    "Q",\r
                 }\r
                 wide{\r
                     "大化",\r
@@ -6213,6 +6223,7 @@ zh_Hant{
                     "大正",\r
                     "昭和",\r
                     "平成",\r
+                    "Qqqq",\r
                 }\r
             }\r
             intervalFormats{\r
index ed7a37edc5a89385d0a8fcee6d61c1180d414bd0..fd17bccaf5764ea9c383ca14c3c9cd82afd2d1c5 100644 (file)
@@ -11,6 +11,16 @@ zh_Hant_HK{
     }\r
     NumberElements{\r
         latn{\r
+            patternsLong{\r
+                decimalFormat{\r
+                    10000{\r
+                        other{"0萬"}\r
+                    }\r
+                    100000{\r
+                        other{"00萬"}\r
+                    }\r
+                }\r
+            }\r
             patternsShort{\r
                 currencyFormat{\r
                     1000{\r
@@ -91,7 +101,7 @@ zh_Hant_HK{
             }\r
         }\r
     }\r
-    Version{"2.1.39.11"}\r
+    Version{"2.1.43.65"}\r
     calendar{\r
         buddhist{\r
             availableFormats{\r
@@ -336,7 +346,6 @@ zh_Hant_HK{
                         evening1{"晚上"}\r
                         midnight{"午夜"}\r
                         morning1{"早上"}\r
-                        morning2{"上午"}\r
                         night1{"凌晨"}\r
                     }\r
                     narrow{\r
@@ -345,7 +354,6 @@ zh_Hant_HK{
                         evening1{"晚上"}\r
                         midnight{"午夜"}\r
                         morning1{"早上"}\r
-                        morning2{"上午"}\r
                         night1{"凌晨"}\r
                     }\r
                     wide{\r
@@ -354,7 +362,6 @@ zh_Hant_HK{
                         evening1{"晚上"}\r
                         midnight{"午夜"}\r
                         morning1{"早上"}\r
-                        morning2{"上午"}\r
                         night1{"凌晨"}\r
                     }\r
                 }\r
@@ -364,7 +371,6 @@ zh_Hant_HK{
                         afternoon2{"下午"}\r
                         evening1{"晚上"}\r
                         morning1{"早上"}\r
-                        morning2{"上午"}\r
                         night1{"凌晨"}\r
                     }\r
                     narrow{\r
@@ -372,7 +378,6 @@ zh_Hant_HK{
                         afternoon2{"下午"}\r
                         evening1{"晚上"}\r
                         morning1{"早上"}\r
-                        morning2{"上午"}\r
                         night1{"凌晨"}\r
                     }\r
                     wide{\r
@@ -380,7 +385,6 @@ zh_Hant_HK{
                         afternoon2{"下午"}\r
                         evening1{"晚上"}\r
                         morning1{"早上"}\r
-                        morning2{"上午"}\r
                         night1{"凌晨"}\r
                     }\r
                 }\r
index 43c2f1f45a41dee0d6669abce396f5ec420b8f05..953afbf50b5cfd694381003a87b807ac6e7bab64 100644 (file)
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 zh_Hant_MO{\r
     %%Parent{"zh_Hant_HK"}\r
-    Version{"2.1.38.39"}\r
+    Version{"2.1.43.65"}\r
 }\r
index 233d44e37bda0b487c5efc9125f810fa12b9d036..c6b1f2be13ba0035ac1ab9ff3d4cce4d1aa2f8ea 100644 (file)
@@ -20,12 +20,15 @@ zu{
         " y z]"\r
     }\r
     ExemplarCharactersNumbers{"[\\- , . % ‰ + 0 1 2 3 4 5 6 7 8 9]"}\r
+    ExemplarCharactersPunctuation{"[\\- , ; \\: ! ? . ( ) \\[ \\] \\{ \\}]"}\r
     MoreInformation{"?"}\r
     NumberElements{\r
         default{"latn"}\r
         latn{\r
             miscPatterns{\r
+                approximately{"~{0}"}\r
                 atLeast{"{0}+"}\r
+                atMost{"≤{0}"}\r
                 range{"{0}–{1}"}\r
             }\r
             patterns{\r
@@ -216,7 +219,7 @@ zu{
         minimumGroupingDigits{"1"}\r
         native{"latn"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.65"}\r
     calendar{\r
         generic{\r
             DateTimePatterns{\r
@@ -962,6 +965,11 @@ zu{
         }\r
         day-narrow{\r
             dn{"Usuku"}\r
+            relative{\r
+                "-1"{"izolo"}\r
+                "0"{"namhlanje"}\r
+                "1"{"kusasa"}\r
+            }\r
             relativeTime{\r
                 future{\r
                     one{"osukwini olungu-{0} oluzayo"}\r
@@ -975,6 +983,11 @@ zu{
         }\r
         day-short{\r
             dn{"Usuku"}\r
+            relative{\r
+                "-1"{"izolo"}\r
+                "0"{"namhlanje"}\r
+                "1"{"kusasa"}\r
+            }\r
             relativeTime{\r
                 future{\r
                     one{"osukwini olungu-{0} oluzayo"}\r
@@ -1765,8 +1778,13 @@ zu{
         general{\r
             lenient{\r
                 "[.․。︒﹒.。]",\r
+                "['ʼ՚᾽᾿’']",\r
+                "[%٪﹪%]",\r
+                "[؉‰]",\r
                 "[\$﹩$$]",\r
                 "[£₤]",\r
+                "[¥¥]",\r
+                "[₩₩]",\r
                 "[₨₹{Rp}{Rs}]",\r
             }\r
         }\r
index 6e7e768cab03c3a3dd49cef9cbbaf46bb8eb03b0..f4d945d070d63060987c0a767fab70e4c7a2204f 100644 (file)
 \r
 ##############################################################################\r
 # Keep the following in sync with the version - see common/unicode/uvernum.h\r
-U_ICUDATA_NAME=icudt62\r
+U_ICUDATA_NAME=icudt63\r
 ##############################################################################\r
 !IF "$(UWP)" == "UWP"\r
 # Optionally change the name of the data file for the UWP version.\r
-U_ICUDATA_NAME=icudt62\r
+U_ICUDATA_NAME=icudt63\r
 !ENDIF\r
 U_ICUDATA_ENDIAN_SUFFIX=l\r
 UNICODE_VERSION=11.0\r
@@ -33,6 +33,14 @@ ICU_LIB_TARGET=$(DLL_OUTPUT)\$(U_ICUDATA_NAME).dll
 !ENDIF\r
 !MESSAGE ICU data make path is $(ICUMAKE)\r
 \r
+!IF [py -3]!=0\r
+!MESSAGE Information: Unable to find Python 3. ICU versions 64 and later will require Python 3 to build.\r
+!MESSAGE Information: See ICU-10923 for more information: https://unicode-org.atlassian.net/browse/ICU-10923\r
+!ELSE\r
+!MESSAGE Information: Found Python 3. You are all set for ICU 64, which will require Python 3 to build.\r
+!MESSAGE Information: For more info on Python 3 requirement, see: https://unicode-org.atlassian.net/browse/ICU-10923\r
+!ENDIF\r
+\r
 # Suffixes for data files\r
 .SUFFIXES : .nrm .icu .ucm .cnv .dll .dat .res .txt .c\r
 \r
index e26b35b2bd58d5ad887e73605d1ad559dee0fabf..a96e68cb80355b212afe68b752362c241857a88b 100644 (file)
@@ -6,7 +6,7 @@
 // Corporation and others.  All Rights Reserved.\r
 //---------------------------------------------------------\r
 // Build tool: com.ibm.icu.dev.tool.currency.NumericCodeData\r
-// Build date: 2018-06-06T22:39:58Z\r
+// Build date: 2018-09-17T17:52:05Z\r
 //---------------------------------------------------------\r
 // >> !!! >>   THIS IS A MACHINE-GENERATED FILE   << !!! <<\r
 // >> !!! >>>            DO NOT EDIT             <<< !!! <<\r
@@ -270,9 +270,11 @@ currencyNumericCodes:table(nofallback){
         UYN:int{858}\r
         UYP:int{858}\r
         UYU:int{858}\r
+        UYW:int{927}\r
         UZS:int{860}\r
         VEB:int{862}\r
         VEF:int{937}\r
+        VES:int{928}\r
         VNC:int{704}\r
         VND:int{704}\r
         VUV:int{548}\r
index 7149b7699ff6079709aa89114588bda8cd32adae..ee49c689ecb039ebd0bf0d2ab4d9e9bd904d12b8 100644 (file)
@@ -8,6 +8,6 @@
 // ***************************************************************************\r
 \r
 icuver:table(nofallback){ \r
-    DataVersion { "62.1.0.0" }\r
-    ICUVersion  { "62.1.0.0" }\r
+    DataVersion { "63.1.0.0" }\r
+    ICUVersion  { "63.1.0.0" }\r
 }\r
index ac16f2700277c502d3b1a7eaecb829dcfdc1e9b9..d34784e95496cfddbf243b21eea2c5c6747c13cd 100644 (file)
@@ -422,9 +422,11 @@ keyTypeData:table(nofallback){
             uyi{""}\r
             uyp{""}\r
             uyu{""}\r
+            uyw{""}\r
             uzs{""}\r
             veb{""}\r
             vef{""}\r
+            ves{""}\r
             vnd{""}\r
             vnn{""}\r
             vuv{""}\r
@@ -488,6 +490,7 @@ keyTypeData:table(nofallback){
             remove{""}\r
             title{""}\r
             upper{""}\r
+            zawgyi{""}\r
         }\r
         em{\r
             default{""}\r
index 34cbc8d2ca6c0aa231175a156fca7cdee8208794..ab818b52854059f9ec3d0edfd2dbb2569f2639e8 100644 (file)
@@ -483,7 +483,7 @@ likelySubtags:table(nofallback){
     hui{"hui_Latn_ZZ"}\r
     hy{"hy_Armn_AM"}\r
     hz{"hz_Latn_NA"}\r
-    ia{"ia_Latn_FR"}\r
+    ia{"ia_Latn_001"}\r
     ian{"ian_Latn_ZZ"}\r
     iar{"iar_Latn_ZZ"}\r
     iba{"iba_Latn_MY"}\r
index 86513f00e22e4bb5d3d494b6d76ea5499da01079..13450b3a870345a7169d069671ed4323c132512e 100644 (file)
@@ -1495,18 +1495,6 @@ metadata:table(nofallback){
                 reason{"overlong"}\r
                 replacement{"MO"}\r
             }\r
-            cnhk{\r
-                reason{"overlong"}\r
-                replacement{"HK"}\r
-            }\r
-            cnmo{\r
-                reason{"overlong"}\r
-                replacement{"MO"}\r
-            }\r
-            cntw{\r
-                reason{"overlong"}\r
-                replacement{"TW"}\r
-            }\r
             cz10a{\r
                 reason{"deprecated"}\r
                 replacement{"cz110"}\r
@@ -4527,7 +4515,9 @@ metadata:table(nofallback){
         "eu_ES",\r
         "ewo_CM",\r
         "fa_IR",\r
-        "ff_SN",\r
+        "ff_Adlm_GN",\r
+        "ff_Latn",\r
+        "ff_Latn_SN",\r
         "fi_FI",\r
         "fil_PH",\r
         "fo_FO",\r
@@ -4553,7 +4543,7 @@ metadata:table(nofallback){
         "hsb_DE",\r
         "hu_HU",\r
         "hy_AM",\r
-        "ia_FR",\r
+        "ia_001",\r
         "id_ID",\r
         "ife_TG",\r
         "ig_NG",\r
@@ -4625,6 +4615,7 @@ metadata:table(nofallback){
         "mt_MT",\r
         "mua_CM",\r
         "my_MM",\r
+        "myv_RU",\r
         "mzn_IR",\r
         "naq_NA",\r
         "nb_NO",\r
@@ -4665,6 +4656,7 @@ metadata:table(nofallback){
         "sah_RU",\r
         "saq_KE",\r
         "sbp_TZ",\r
+        "sc_IT",\r
         "scn_IT",\r
         "sd_PK",\r
         "sdh_IR",\r
index 0d3c83b4bf587e816d7cd8a15ce1b814c0287fe8..db40cde0adad6deba981cf0ea8c3991f23d0335c 100644 (file)
@@ -28,4 +28,4 @@ MISC_SOURCE = \
 zoneinfo64.txt supplementalData.txt likelySubtags.txt plurals.txt \\r
 numberingSystems.txt icuver.txt icustd.txt metadata.txt metaZones.txt \\r
 windowsZones.txt keyTypeData.txt timezoneTypes.txt currencyNumericCodes.txt \\r
-genderList.txt dayPeriods.txt\r
+genderList.txt dayPeriods.txt pluralRanges.txt\r
diff --git a/source/data/misc/pluralRanges.txt b/source/data/misc/pluralRanges.txt
new file mode 100644 (file)
index 0000000..67a4dc5
--- /dev/null
@@ -0,0 +1,983 @@
+// © 2016 and later: Unicode, Inc. and others.\r
+// License & terms of use: http://www.unicode.org/copyright.html#License\r
+pluralRanges:table(nofallback){\r
+    locales{\r
+        af{"set05"}\r
+        ak{"set02"}\r
+        am{"set01"}\r
+        ar{"set18"}\r
+        as{"set01"}\r
+        az{"set04"}\r
+        be{"set15"}\r
+        bg{"set05"}\r
+        bn{"set01"}\r
+        bs{"set11"}\r
+        ca{"set05"}\r
+        cs{"set14"}\r
+        cy{"set17"}\r
+        da{"set06"}\r
+        de{"set04"}\r
+        el{"set04"}\r
+        en{"set05"}\r
+        es{"set05"}\r
+        et{"set05"}\r
+        eu{"set05"}\r
+        fa{"set02"}\r
+        fi{"set05"}\r
+        fil{"set06"}\r
+        fr{"set01"}\r
+        ga{"set16"}\r
+        gl{"set04"}\r
+        gsw{"set04"}\r
+        gu{"set01"}\r
+        he{"set13"}\r
+        hi{"set01"}\r
+        hr{"set11"}\r
+        hu{"set04"}\r
+        hy{"set01"}\r
+        ia{"set05"}\r
+        id{"set00"}\r
+        io{"set05"}\r
+        is{"set06"}\r
+        it{"set04"}\r
+        ja{"set00"}\r
+        ka{"set03"}\r
+        kk{"set04"}\r
+        km{"set00"}\r
+        kn{"set01"}\r
+        ko{"set00"}\r
+        ky{"set04"}\r
+        lo{"set00"}\r
+        lt{"set15"}\r
+        lv{"set09"}\r
+        mk{"set08"}\r
+        ml{"set04"}\r
+        mn{"set04"}\r
+        mr{"set01"}\r
+        ms{"set00"}\r
+        my{"set00"}\r
+        nb{"set05"}\r
+        ne{"set04"}\r
+        nl{"set04"}\r
+        or{"set02"}\r
+        pa{"set06"}\r
+        pl{"set14"}\r
+        ps{"set01"}\r
+        pt{"set01"}\r
+        ro{"set10"}\r
+        ru{"set15"}\r
+        sc{"set04"}\r
+        scn{"set04"}\r
+        sd{"set02"}\r
+        si{"set07"}\r
+        sk{"set14"}\r
+        sl{"set12"}\r
+        sq{"set04"}\r
+        sr{"set11"}\r
+        sv{"set05"}\r
+        sw{"set04"}\r
+        ta{"set04"}\r
+        te{"set04"}\r
+        th{"set00"}\r
+        tk{"set04"}\r
+        tr{"set04"}\r
+        ug{"set04"}\r
+        uk{"set15"}\r
+        ur{"set05"}\r
+        uz{"set04"}\r
+        vi{"set00"}\r
+        yue{"set00"}\r
+        zh{"set00"}\r
+        zu{"set01"}\r
+    }\r
+    rules{\r
+        set00{\r
+            {\r
+                "other",\r
+                "other",\r
+                "other",\r
+            }\r
+        }\r
+        set01{\r
+            {\r
+                "one",\r
+                "one",\r
+                "one",\r
+            }\r
+            {\r
+                "one",\r
+                "other",\r
+                "other",\r
+            }\r
+            {\r
+                "other",\r
+                "other",\r
+                "other",\r
+            }\r
+        }\r
+        set02{\r
+            {\r
+                "one",\r
+                "one",\r
+                "other",\r
+            }\r
+            {\r
+                "one",\r
+                "other",\r
+                "other",\r
+            }\r
+            {\r
+                "other",\r
+                "other",\r
+                "other",\r
+            }\r
+        }\r
+        set03{\r
+            {\r
+                "one",\r
+                "other",\r
+                "one",\r
+            }\r
+            {\r
+                "other",\r
+                "one",\r
+                "other",\r
+            }\r
+            {\r
+                "other",\r
+                "other",\r
+                "other",\r
+            }\r
+        }\r
+        set04{\r
+            {\r
+                "one",\r
+                "other",\r
+                "other",\r
+            }\r
+            {\r
+                "other",\r
+                "one",\r
+                "one",\r
+            }\r
+            {\r
+                "other",\r
+                "other",\r
+                "other",\r
+            }\r
+        }\r
+        set05{\r
+            {\r
+                "one",\r
+                "other",\r
+                "other",\r
+            }\r
+            {\r
+                "other",\r
+                "one",\r
+                "other",\r
+            }\r
+            {\r
+                "other",\r
+                "other",\r
+                "other",\r
+            }\r
+        }\r
+        set06{\r
+            {\r
+                "one",\r
+                "one",\r
+                "one",\r
+            }\r
+            {\r
+                "one",\r
+                "other",\r
+                "other",\r
+            }\r
+            {\r
+                "other",\r
+                "one",\r
+                "one",\r
+            }\r
+            {\r
+                "other",\r
+                "other",\r
+                "other",\r
+            }\r
+        }\r
+        set07{\r
+            {\r
+                "one",\r
+                "one",\r
+                "one",\r
+            }\r
+            {\r
+                "one",\r
+                "other",\r
+                "other",\r
+            }\r
+            {\r
+                "other",\r
+                "one",\r
+                "other",\r
+            }\r
+            {\r
+                "other",\r
+                "other",\r
+                "other",\r
+            }\r
+        }\r
+        set08{\r
+            {\r
+                "one",\r
+                "one",\r
+                "other",\r
+            }\r
+            {\r
+                "one",\r
+                "other",\r
+                "other",\r
+            }\r
+            {\r
+                "other",\r
+                "one",\r
+                "other",\r
+            }\r
+            {\r
+                "other",\r
+                "other",\r
+                "other",\r
+            }\r
+        }\r
+        set09{\r
+            {\r
+                "zero",\r
+                "zero",\r
+                "other",\r
+            }\r
+            {\r
+                "zero",\r
+                "one",\r
+                "one",\r
+            }\r
+            {\r
+                "zero",\r
+                "other",\r
+                "other",\r
+            }\r
+            {\r
+                "one",\r
+                "zero",\r
+                "other",\r
+            }\r
+            {\r
+                "one",\r
+                "one",\r
+                "one",\r
+            }\r
+            {\r
+                "one",\r
+                "other",\r
+                "other",\r
+            }\r
+            {\r
+                "other",\r
+                "zero",\r
+                "other",\r
+            }\r
+            {\r
+                "other",\r
+                "one",\r
+                "one",\r
+            }\r
+            {\r
+                "other",\r
+                "other",\r
+                "other",\r
+            }\r
+        }\r
+        set10{\r
+            {\r
+                "one",\r
+                "few",\r
+                "few",\r
+            }\r
+            {\r
+                "one",\r
+                "other",\r
+                "other",\r
+            }\r
+            {\r
+                "few",\r
+                "one",\r
+                "few",\r
+            }\r
+            {\r
+                "few",\r
+                "few",\r
+                "few",\r
+            }\r
+            {\r
+                "few",\r
+                "other",\r
+                "other",\r
+            }\r
+            {\r
+                "other",\r
+                "few",\r
+                "few",\r
+            }\r
+            {\r
+                "other",\r
+                "other",\r
+                "other",\r
+            }\r
+        }\r
+        set11{\r
+            {\r
+                "one",\r
+                "one",\r
+                "one",\r
+            }\r
+            {\r
+                "one",\r
+                "few",\r
+                "few",\r
+            }\r
+            {\r
+                "one",\r
+                "other",\r
+                "other",\r
+            }\r
+            {\r
+                "few",\r
+                "one",\r
+                "one",\r
+            }\r
+            {\r
+                "few",\r
+                "few",\r
+                "few",\r
+            }\r
+            {\r
+                "few",\r
+                "other",\r
+                "other",\r
+            }\r
+            {\r
+                "other",\r
+                "one",\r
+                "one",\r
+            }\r
+            {\r
+                "other",\r
+                "few",\r
+                "few",\r
+            }\r
+            {\r
+                "other",\r
+                "other",\r
+                "other",\r
+            }\r
+        }\r
+        set12{\r
+            {\r
+                "one",\r
+                "one",\r
+                "few",\r
+            }\r
+            {\r
+                "one",\r
+                "two",\r
+                "two",\r
+            }\r
+            {\r
+                "one",\r
+                "few",\r
+                "few",\r
+            }\r
+            {\r
+                "one",\r
+                "other",\r
+                "other",\r
+            }\r
+            {\r
+                "two",\r
+                "one",\r
+                "few",\r
+            }\r
+            {\r
+                "two",\r
+                "two",\r
+                "two",\r
+            }\r
+            {\r
+                "two",\r
+                "few",\r
+                "few",\r
+            }\r
+            {\r
+                "two",\r
+                "other",\r
+                "other",\r
+            }\r
+            {\r
+                "few",\r
+                "one",\r
+                "few",\r
+            }\r
+            {\r
+                "few",\r
+                "two",\r
+                "two",\r
+            }\r
+            {\r
+                "few",\r
+                "few",\r
+                "few",\r
+            }\r
+            {\r
+                "few",\r
+                "other",\r
+                "other",\r
+            }\r
+            {\r
+                "other",\r
+                "one",\r
+                "few",\r
+            }\r
+            {\r
+                "other",\r
+                "two",\r
+                "two",\r
+            }\r
+            {\r
+                "other",\r
+                "few",\r
+                "few",\r
+            }\r
+            {\r
+                "other",\r
+                "other",\r
+                "other",\r
+            }\r
+        }\r
+        set13{\r
+            {\r
+                "one",\r
+                "two",\r
+                "other",\r
+            }\r
+            {\r
+                "one",\r
+                "many",\r
+                "many",\r
+            }\r
+            {\r
+                "one",\r
+                "other",\r
+                "other",\r
+            }\r
+            {\r
+                "two",\r
+                "many",\r
+                "other",\r
+            }\r
+            {\r
+                "two",\r
+                "other",\r
+                "other",\r
+            }\r
+            {\r
+                "many",\r
+                "many",\r
+                "many",\r
+            }\r
+            {\r
+                "many",\r
+                "other",\r
+                "many",\r
+            }\r
+            {\r
+                "other",\r
+                "one",\r
+                "other",\r
+            }\r
+            {\r
+                "other",\r
+                "two",\r
+                "other",\r
+            }\r
+            {\r
+                "other",\r
+                "many",\r
+                "many",\r
+            }\r
+            {\r
+                "other",\r
+                "other",\r
+                "other",\r
+            }\r
+        }\r
+        set14{\r
+            {\r
+                "one",\r
+                "few",\r
+                "few",\r
+            }\r
+            {\r
+                "one",\r
+                "many",\r
+                "many",\r
+            }\r
+            {\r
+                "one",\r
+                "other",\r
+                "other",\r
+            }\r
+            {\r
+                "few",\r
+                "few",\r
+                "few",\r
+            }\r
+            {\r
+                "few",\r
+                "many",\r
+                "many",\r
+            }\r
+            {\r
+                "few",\r
+                "other",\r
+                "other",\r
+            }\r
+            {\r
+                "many",\r
+                "one",\r
+                "one",\r
+            }\r
+            {\r
+                "many",\r
+                "few",\r
+                "few",\r
+            }\r
+            {\r
+                "many",\r
+                "many",\r
+                "many",\r
+            }\r
+            {\r
+                "many",\r
+                "other",\r
+                "other",\r
+            }\r
+            {\r
+                "other",\r
+                "one",\r
+                "one",\r
+            }\r
+            {\r
+                "other",\r
+                "few",\r
+                "few",\r
+            }\r
+            {\r
+                "other",\r
+                "many",\r
+                "many",\r
+            }\r
+            {\r
+                "other",\r
+                "other",\r
+                "other",\r
+            }\r
+        }\r
+        set15{\r
+            {\r
+                "one",\r
+                "one",\r
+                "one",\r
+            }\r
+            {\r
+                "one",\r
+                "few",\r
+                "few",\r
+            }\r
+            {\r
+                "one",\r
+                "many",\r
+                "many",\r
+            }\r
+            {\r
+                "one",\r
+                "other",\r
+                "other",\r
+            }\r
+            {\r
+                "few",\r
+                "one",\r
+                "one",\r
+            }\r
+            {\r
+                "few",\r
+                "few",\r
+                "few",\r
+            }\r
+            {\r
+                "few",\r
+                "many",\r
+                "many",\r
+            }\r
+            {\r
+                "few",\r
+                "other",\r
+                "other",\r
+            }\r
+            {\r
+                "many",\r
+                "one",\r
+                "one",\r
+            }\r
+            {\r
+                "many",\r
+                "few",\r
+                "few",\r
+            }\r
+            {\r
+                "many",\r
+                "many",\r
+                "many",\r
+            }\r
+            {\r
+                "many",\r
+                "other",\r
+                "other",\r
+            }\r
+            {\r
+                "other",\r
+                "one",\r
+                "one",\r
+            }\r
+            {\r
+                "other",\r
+                "few",\r
+                "few",\r
+            }\r
+            {\r
+                "other",\r
+                "many",\r
+                "many",\r
+            }\r
+            {\r
+                "other",\r
+                "other",\r
+                "other",\r
+            }\r
+        }\r
+        set16{\r
+            {\r
+                "one",\r
+                "two",\r
+                "two",\r
+            }\r
+            {\r
+                "one",\r
+                "few",\r
+                "few",\r
+            }\r
+            {\r
+                "one",\r
+                "many",\r
+                "many",\r
+            }\r
+            {\r
+                "one",\r
+                "other",\r
+                "other",\r
+            }\r
+            {\r
+                "two",\r
+                "few",\r
+                "few",\r
+            }\r
+            {\r
+                "two",\r
+                "many",\r
+                "many",\r
+            }\r
+            {\r
+                "two",\r
+                "other",\r
+                "other",\r
+            }\r
+            {\r
+                "few",\r
+                "few",\r
+                "few",\r
+            }\r
+            {\r
+                "few",\r
+                "many",\r
+                "many",\r
+            }\r
+            {\r
+                "few",\r
+                "other",\r
+                "other",\r
+            }\r
+            {\r
+                "many",\r
+                "many",\r
+                "many",\r
+            }\r
+            {\r
+                "many",\r
+                "other",\r
+                "other",\r
+            }\r
+            {\r
+                "other",\r
+                "one",\r
+                "one",\r
+            }\r
+            {\r
+                "other",\r
+                "two",\r
+                "two",\r
+            }\r
+            {\r
+                "other",\r
+                "few",\r
+                "few",\r
+            }\r
+            {\r
+                "other",\r
+                "many",\r
+                "many",\r
+            }\r
+            {\r
+                "other",\r
+                "other",\r
+                "other",\r
+            }\r
+        }\r
+        set17{\r
+            {\r
+                "zero",\r
+                "one",\r
+                "one",\r
+            }\r
+            {\r
+                "zero",\r
+                "two",\r
+                "two",\r
+            }\r
+            {\r
+                "zero",\r
+                "few",\r
+                "few",\r
+            }\r
+            {\r
+                "zero",\r
+                "many",\r
+                "many",\r
+            }\r
+            {\r
+                "zero",\r
+                "other",\r
+                "other",\r
+            }\r
+            {\r
+                "one",\r
+                "two",\r
+                "two",\r
+            }\r
+            {\r
+                "one",\r
+                "few",\r
+                "few",\r
+            }\r
+            {\r
+                "one",\r
+                "many",\r
+                "many",\r
+            }\r
+            {\r
+                "one",\r
+                "other",\r
+                "other",\r
+            }\r
+            {\r
+                "two",\r
+                "few",\r
+                "few",\r
+            }\r
+            {\r
+                "two",\r
+                "many",\r
+                "many",\r
+            }\r
+            {\r
+                "two",\r
+                "other",\r
+                "other",\r
+            }\r
+            {\r
+                "few",\r
+                "many",\r
+                "many",\r
+            }\r
+            {\r
+                "few",\r
+                "other",\r
+                "other",\r
+            }\r
+            {\r
+                "many",\r
+                "other",\r
+                "other",\r
+            }\r
+            {\r
+                "other",\r
+                "one",\r
+                "one",\r
+            }\r
+            {\r
+                "other",\r
+                "two",\r
+                "two",\r
+            }\r
+            {\r
+                "other",\r
+                "few",\r
+                "few",\r
+            }\r
+            {\r
+                "other",\r
+                "many",\r
+                "many",\r
+            }\r
+            {\r
+                "other",\r
+                "other",\r
+                "other",\r
+            }\r
+        }\r
+        set18{\r
+            {\r
+                "zero",\r
+                "one",\r
+                "zero",\r
+            }\r
+            {\r
+                "zero",\r
+                "two",\r
+                "zero",\r
+            }\r
+            {\r
+                "zero",\r
+                "few",\r
+                "few",\r
+            }\r
+            {\r
+                "zero",\r
+                "many",\r
+                "many",\r
+            }\r
+            {\r
+                "zero",\r
+                "other",\r
+                "other",\r
+            }\r
+            {\r
+                "one",\r
+                "two",\r
+                "other",\r
+            }\r
+            {\r
+                "one",\r
+                "few",\r
+                "few",\r
+            }\r
+            {\r
+                "one",\r
+                "many",\r
+                "many",\r
+            }\r
+            {\r
+                "one",\r
+                "other",\r
+                "other",\r
+            }\r
+            {\r
+                "two",\r
+                "few",\r
+                "few",\r
+            }\r
+            {\r
+                "two",\r
+                "many",\r
+                "many",\r
+            }\r
+            {\r
+                "two",\r
+                "other",\r
+                "other",\r
+            }\r
+            {\r
+                "few",\r
+                "few",\r
+                "few",\r
+            }\r
+            {\r
+                "few",\r
+                "many",\r
+                "many",\r
+            }\r
+            {\r
+                "few",\r
+                "other",\r
+                "other",\r
+            }\r
+            {\r
+                "many",\r
+                "few",\r
+                "few",\r
+            }\r
+            {\r
+                "many",\r
+                "many",\r
+                "many",\r
+            }\r
+            {\r
+                "many",\r
+                "other",\r
+                "other",\r
+            }\r
+            {\r
+                "other",\r
+                "one",\r
+                "other",\r
+            }\r
+            {\r
+                "other",\r
+                "two",\r
+                "other",\r
+            }\r
+            {\r
+                "other",\r
+                "few",\r
+                "few",\r
+            }\r
+            {\r
+                "other",\r
+                "many",\r
+                "many",\r
+            }\r
+            {\r
+                "other",\r
+                "other",\r
+                "other",\r
+            }\r
+        }\r
+    }\r
+}\r
index ab1baa5dd9b84097f385241358c364d4256af058..7b8543ca1af0f88619e3142325e39e9aef88650c 100644 (file)
@@ -64,6 +64,7 @@ plurals:table(nofallback){
         hsb{"set22"}\r
         hu{"set8"}\r
         hy{"set2"}\r
+        ia{"set4"}\r
         id{"set0"}\r
         ig{"set0"}\r
         ii{"set0"}\r
@@ -149,6 +150,7 @@ plurals:table(nofallback){
         rwk{"set8"}\r
         sah{"set0"}\r
         saq{"set8"}\r
+        sc{"set4"}\r
         scn{"set4"}\r
         sd{"set8"}\r
         sdh{"set8"}\r
@@ -212,16 +214,16 @@ plurals:table(nofallback){
         af{"set35"}\r
         am{"set35"}\r
         ar{"set35"}\r
-        as{"set53"}\r
-        az{"set51"}\r
+        as{"set54"}\r
+        az{"set52"}\r
         be{"set40"}\r
         bg{"set35"}\r
-        bn{"set53"}\r
+        bn{"set54"}\r
         bs{"set35"}\r
         ca{"set49"}\r
         ce{"set35"}\r
         cs{"set35"}\r
-        cy{"set55"}\r
+        cy{"set56"}\r
         da{"set35"}\r
         de{"set35"}\r
         dsb{"set35"}\r
@@ -236,15 +238,17 @@ plurals:table(nofallback){
         fr{"set37"}\r
         fy{"set35"}\r
         ga{"set37"}\r
+        gd{"set50"}\r
         gl{"set35"}\r
         gsw{"set35"}\r
-        gu{"set52"}\r
+        gu{"set53"}\r
         he{"set35"}\r
-        hi{"set52"}\r
+        hi{"set53"}\r
         hr{"set35"}\r
         hsb{"set35"}\r
         hu{"set38"}\r
         hy{"set37"}\r
+        ia{"set35"}\r
         id{"set35"}\r
         in{"set35"}\r
         is{"set35"}\r
@@ -260,7 +264,7 @@ plurals:table(nofallback){
         lo{"set37"}\r
         lt{"set35"}\r
         lv{"set35"}\r
-        mk{"set50"}\r
+        mk{"set51"}\r
         ml{"set35"}\r
         mn{"set35"}\r
         mo{"set37"}\r
@@ -270,7 +274,7 @@ plurals:table(nofallback){
         nb{"set35"}\r
         ne{"set39"}\r
         nl{"set35"}\r
-        or{"set54"}\r
+        or{"set55"}\r
         pa{"set35"}\r
         pl{"set35"}\r
         prg{"set35"}\r
@@ -279,6 +283,7 @@ plurals:table(nofallback){
         ro{"set37"}\r
         root{"set35"}\r
         ru{"set35"}\r
+        sc{"set44"}\r
         scn{"set44"}\r
         sd{"set35"}\r
         sh{"set35"}\r
@@ -818,6 +823,12 @@ plurals:table(nofallback){
             }\r
         }\r
         set50{\r
+            few{"n = 3,13 @integer 3, 13"}\r
+            one{"n = 1,11 @integer 1, 11"}\r
+            other{" @integer 0, 5~19, 100, 1000, 10000, 100000, 1000000, …"}\r
+            two{"n = 2,12 @integer 2, 12"}\r
+        }\r
+        set51{\r
             many{\r
                 "i % 10 = 7,8 and i % 100 != 17,18 @integer 7, 8, 27, 28, 37, 38, 47,"\r
                 " 48, 57, 58, 67, 68, 77, 78, 87, 88, 107, 1007, …"\r
@@ -832,7 +843,7 @@ plurals:table(nofallback){
                 " 102, 1002, …"\r
             }\r
         }\r
-        set51{\r
+        set52{\r
             few{\r
                 "i % 10 = 3,4 or i % 1000 = 100,200,300,400,500,600,700,800,900 @inte"\r
                 "ger 3, 4, 13, 14, 23, 24, 33, 34, 43, 44, 53, 54, 63, 64, 73, 74, 10"\r
@@ -851,28 +862,28 @@ plurals:table(nofallback){
                 "00000, 1000000, …"\r
             }\r
         }\r
-        set52{\r
+        set53{\r
             few{"n = 4 @integer 4"}\r
             many{"n = 6 @integer 6"}\r
             one{"n = 1 @integer 1"}\r
             other{" @integer 0, 5, 7~20, 100, 1000, 10000, 100000, 1000000, …"}\r
             two{"n = 2,3 @integer 2, 3"}\r
         }\r
-        set53{\r
+        set54{\r
             few{"n = 4 @integer 4"}\r
             many{"n = 6 @integer 6"}\r
             one{"n = 1,5,7,8,9,10 @integer 1, 5, 7~10"}\r
             other{" @integer 0, 11~25, 100, 1000, 10000, 100000, 1000000, …"}\r
             two{"n = 2,3 @integer 2, 3"}\r
         }\r
-        set54{\r
+        set55{\r
             few{"n = 4 @integer 4"}\r
             many{"n = 6 @integer 6"}\r
             one{"n = 1,5,7..9 @integer 1, 5, 7~9"}\r
             other{" @integer 0, 10~24, 100, 1000, 10000, 100000, 1000000, …"}\r
             two{"n = 2,3 @integer 2, 3"}\r
         }\r
-        set55{\r
+        set56{\r
             few{"n = 3,4 @integer 3, 4"}\r
             many{"n = 5,6 @integer 5, 6"}\r
             one{"n = 1 @integer 1"}\r
index 1be25cb9c5f6662ab3a4f83a9d817da046a95544..9a3c1b6908c61b0767119910ade916f339d5e265 100644 (file)
@@ -6,8 +6,9 @@ supplementalData:table(nofallback){
             eras{\r
                 0{\r
                     start:intvector{\r
-                        -18457,\r
-                        643382272,\r
+                        -542,\r
+                        1,\r
+                        1,\r
                     }\r
                 }\r
             }\r
@@ -17,8 +18,9 @@ supplementalData:table(nofallback){
             eras{\r
                 0{\r
                     start:intvector{\r
-                        -33843,\r
-                        1352598528,\r
+                        -2636,\r
+                        1,\r
+                        1,\r
                     }\r
                 }\r
             }\r
@@ -28,14 +30,16 @@ supplementalData:table(nofallback){
             eras{\r
                 0{\r
                     end:intvector{\r
-                        -12383,\r
-                        368826367,\r
+                        284,\r
+                        8,\r
+                        28,\r
                     }\r
                 }\r
                 1{\r
                     start:intvector{\r
-                        -12383,\r
-                        368826368,\r
+                        284,\r
+                        8,\r
+                        29,\r
                     }\r
                 }\r
             }\r
@@ -45,8 +49,9 @@ supplementalData:table(nofallback){
             eras{\r
                 0{\r
                     start:intvector{\r
-                        -31610,\r
-                        -93940736,\r
+                        -2332,\r
+                        1,\r
+                        1,\r
                     }\r
                 }\r
             }\r
@@ -56,14 +61,16 @@ supplementalData:table(nofallback){
             eras{\r
                 0{\r
                     end:intvector{\r
-                        -14411,\r
-                        664902655,\r
+                        8,\r
+                        8,\r
+                        28,\r
                     }\r
                 }\r
                 1{\r
                     start:intvector{\r
-                        -14411,\r
-                        664902656,\r
+                        8,\r
+                        8,\r
+                        29,\r
                     }\r
                 }\r
             }\r
@@ -73,8 +80,9 @@ supplementalData:table(nofallback){
             eras{\r
                 0{\r
                     end:intvector{\r
-                        -54823,\r
-                        -2125298689,\r
+                        -5492,\r
+                        8,\r
+                        29,\r
                     }\r
                 }\r
             }\r
@@ -83,14 +91,16 @@ supplementalData:table(nofallback){
             eras{\r
                 0{\r
                     end:intvector{\r
-                        -14468,\r
-                        -477728769,\r
+                        0,\r
+                        12,\r
+                        31,\r
                     }\r
                 }\r
                 1{\r
                     start:intvector{\r
-                        -14468,\r
-                        -477728768,\r
+                        1,\r
+                        1,\r
+                        1,\r
                     }\r
                 }\r
             }\r
@@ -100,8 +110,9 @@ supplementalData:table(nofallback){
             eras{\r
                 0{\r
                     start:intvector{\r
-                        -42096,\r
-                        1167292416,\r
+                        -3760,\r
+                        10,\r
+                        7,\r
                     }\r
                 }\r
             }\r
@@ -111,8 +122,9 @@ supplementalData:table(nofallback){
             eras{\r
                 0{\r
                     start:intvector{\r
-                        -13895,\r
-                        -44389376,\r
+                        79,\r
+                        1,\r
+                        1,\r
                     }\r
                 }\r
             }\r
@@ -121,8 +133,9 @@ supplementalData:table(nofallback){
             eras{\r
                 0{\r
                     start:intvector{\r
-                        -9901,\r
-                        -1497369600,\r
+                        622,\r
+                        7,\r
+                        15,\r
                     }\r
                 }\r
             }\r
@@ -132,8 +145,9 @@ supplementalData:table(nofallback){
             eras{\r
                 0{\r
                     start:intvector{\r
-                        -9901,\r
-                        -1410969600,\r
+                        622,\r
+                        7,\r
+                        16,\r
                     }\r
                 }\r
             }\r
@@ -143,8 +157,9 @@ supplementalData:table(nofallback){
             eras{\r
                 0{\r
                     start:intvector{\r
-                        -9901,\r
-                        -1497369600,\r
+                        622,\r
+                        7,\r
+                        15,\r
                     }\r
                 }\r
             }\r
@@ -154,8 +169,9 @@ supplementalData:table(nofallback){
             eras{\r
                 0{\r
                     start:intvector{\r
-                        -9901,\r
-                        -1497369600,\r
+                        622,\r
+                        7,\r
+                        15,\r
                     }\r
                 }\r
             }\r
@@ -165,8 +181,9 @@ supplementalData:table(nofallback){
             eras{\r
                 0{\r
                     start:intvector{\r
-                        -9901,\r
-                        -1497369600,\r
+                        622,\r
+                        7,\r
+                        15,\r
                     }\r
                 }\r
             }\r
@@ -176,1418 +193,1662 @@ supplementalData:table(nofallback){
             eras{\r
                 0{\r
                     start:intvector{\r
-                        -9732,\r
-                        548124672,\r
+                        645,\r
+                        6,\r
+                        19,\r
                     }\r
                 }\r
                 1{\r
                     start:intvector{\r
-                        -9698,\r
-                        1572036608,\r
+                        650,\r
+                        2,\r
+                        15,\r
                     }\r
                 }\r
                 10{\r
                     start:intvector{\r
-                        -9114,\r
-                        1157535744,\r
+                        729,\r
+                        8,\r
+                        5,\r
                     }\r
                 }\r
                 100{\r
                     start:intvector{\r
-                        -5884,\r
-                        -819397632,\r
+                        1169,\r
+                        4,\r
+                        8,\r
                     }\r
                 }\r
                 101{\r
                     start:intvector{\r
-                        -5869,\r
-                        -1048707072,\r
+                        1171,\r
+                        4,\r
+                        21,\r
                     }\r
                 }\r
                 102{\r
                     start:intvector{\r
-                        -5837,\r
-                        504906752,\r
+                        1175,\r
+                        7,\r
+                        28,\r
                     }\r
                 }\r
                 103{\r
                     start:intvector{\r
-                        -5823,\r
-                        -156402688,\r
+                        1177,\r
+                        8,\r
+                        4,\r
                     }\r
                 }\r
                 104{\r
                     start:intvector{\r
-                        -5794,\r
-                        -294454272,\r
+                        1181,\r
+                        7,\r
+                        14,\r
                     }\r
                 }\r
                 105{\r
                     start:intvector{\r
-                        -5787,\r
-                        1324541952,\r
+                        1182,\r
+                        5,\r
+                        27,\r
                     }\r
                 }\r
                 106{\r
                     start:intvector{\r
-                        -5773,\r
-                        810999808,\r
+                        1184,\r
+                        4,\r
+                        16,\r
                     }\r
                 }\r
                 107{\r
                     start:intvector{\r
-                        -5764,\r
-                        -234673152,\r
+                        1185,\r
+                        8,\r
+                        14,\r
                     }\r
                 }\r
                 108{\r
                     start:intvector{\r
-                        -5729,\r
-                        702838784,\r
+                        1190,\r
+                        4,\r
+                        11,\r
                     }\r
                 }\r
                 109{\r
                     start:intvector{\r
-                        -5663,\r
-                        -1680770048,\r
+                        1199,\r
+                        4,\r
+                        27,\r
                     }\r
                 }\r
                 11{\r
                     start:intvector{\r
-                        -8970,\r
-                        -223922176,\r
+                        749,\r
+                        4,\r
+                        14,\r
                     }\r
                 }\r
                 110{\r
                     start:intvector{\r
-                        -5650,\r
-                        -664144896,\r
+                        1201,\r
+                        2,\r
+                        13,\r
                     }\r
                 }\r
                 111{\r
                     start:intvector{\r
-                        -5627,\r
-                        59374592,\r
+                        1204,\r
+                        2,\r
+                        20,\r
                     }\r
                 }\r
                 112{\r
                     start:intvector{\r
-                        -5611,\r
-                        200697856,\r
+                        1206,\r
+                        4,\r
+                        27,\r
                     }\r
                 }\r
                 113{\r
                     start:intvector{\r
-                        -5600,\r
-                        130457600,\r
+                        1207,\r
+                        10,\r
+                        25,\r
                     }\r
                 }\r
                 114{\r
                     start:intvector{\r
-                        -5576,\r
-                        -885324800,\r
+                        1211,\r
+                        3,\r
+                        9,\r
                     }\r
                 }\r
                 115{\r
                     start:intvector{\r
-                        -5556,\r
-                        -125470720,\r
+                        1213,\r
+                        12,\r
+                        6,\r
                     }\r
                 }\r
                 116{\r
                     start:intvector{\r
-                        -5516,\r
-                        1110004736,\r
+                        1219,\r
+                        4,\r
+                        12,\r
                     }\r
                 }\r
                 117{\r
                     start:intvector{\r
-                        -5494,\r
-                        1401524224,\r
+                        1222,\r
+                        4,\r
+                        13,\r
                     }\r
                 }\r
                 118{\r
                     start:intvector{\r
-                        -5475,\r
-                        2049945600,\r
+                        1224,\r
+                        11,\r
+                        20,\r
                     }\r
                 }\r
                 119{\r
                     start:intvector{\r
-                        -5472,\r
-                        -2083523584,\r
+                        1225,\r
+                        4,\r
+                        20,\r
                     }\r
                 }\r
                 12{\r
                     start:intvector{\r
-                        -8968,\r
-                        -1988256768,\r
+                        749,\r
+                        7,\r
+                        2,\r
                     }\r
                 }\r
                 120{\r
                     start:intvector{\r
-                        -5453,\r
-                        -398302208,\r
+                        1227,\r
+                        12,\r
+                        10,\r
                     }\r
                 }\r
                 121{\r
                     start:intvector{\r
-                        -5444,\r
-                        -86607872,\r
+                        1229,\r
+                        3,\r
+                        5,\r
                     }\r
                 }\r
                 122{\r
                     start:intvector{\r
-                        -5421,\r
-                        -1757255680,\r
+                        1232,\r
+                        4,\r
+                        2,\r
                     }\r
                 }\r
                 123{\r
                     start:intvector{\r
-                        -5413,\r
-                        837173248,\r
+                        1233,\r
+                        4,\r
+                        15,\r
                     }\r
                 }\r
                 124{\r
                     start:intvector{\r
-                        -5402,\r
-                        -1540834304,\r
+                        1234,\r
+                        11,\r
+                        5,\r
                     }\r
                 }\r
                 125{\r
                     start:intvector{\r
-                        -5395,\r
-                        164561920,\r
+                        1235,\r
+                        9,\r
+                        19,\r
                     }\r
                 }\r
                 126{\r
                     start:intvector{\r
-                        -5372,\r
-                        1690714112,\r
+                        1238,\r
+                        11,\r
+                        23,\r
                     }\r
                 }\r
                 127{\r
                     start:intvector{\r
-                        -5371,\r
-                        -332820480,\r
+                        1239,\r
+                        2,\r
+                        7,\r
                     }\r
                 }\r
                 128{\r
                     start:intvector{\r
-                        -5360,\r
-                        2077506560,\r
+                        1240,\r
+                        7,\r
+                        16,\r
                     }\r
                 }\r
                 129{\r
                     start:intvector{\r
-                        -5341,\r
-                        -1309839360,\r
+                        1243,\r
+                        2,\r
+                        26,\r
                     }\r
                 }\r
                 13{\r
                     start:intvector{\r
-                        -8908,\r
-                        1130272768,\r
+                        757,\r
+                        8,\r
+                        18,\r
                     }\r
                 }\r
                 130{\r
                     start:intvector{\r
-                        -5311,\r
-                        539309056,\r
+                        1247,\r
+                        2,\r
+                        28,\r
                     }\r
                 }\r
                 131{\r
                     start:intvector{\r
-                        -5296,\r
-                        828399616,\r
+                        1249,\r
+                        3,\r
+                        18,\r
                     }\r
                 }\r
                 132{\r
                     start:intvector{\r
-                        -5241,\r
-                        -1398568960,\r
+                        1256,\r
+                        10,\r
+                        5,\r
                     }\r
                 }\r
                 133{\r
                     start:intvector{\r
-                        -5238,\r
-                        -459470848,\r
+                        1257,\r
+                        3,\r
+                        14,\r
                     }\r
                 }\r
                 134{\r
                     start:intvector{\r
-                        -5223,\r
-                        -775180288,\r
+                        1259,\r
+                        3,\r
+                        26,\r
                     }\r
                 }\r
                 135{\r
                     start:intvector{\r
-                        -5215,\r
-                        -1957318656,\r
+                        1260,\r
+                        4,\r
+                        13,\r
                     }\r
                 }\r
                 136{\r
                     start:intvector{\r
-                        -5209,\r
-                        -683922432,\r
+                        1261,\r
+                        2,\r
+                        20,\r
                     }\r
                 }\r
                 137{\r
                     start:intvector{\r
-                        -5186,\r
-                        125997056,\r
+                        1264,\r
+                        2,\r
+                        28,\r
                     }\r
                 }\r
                 138{\r
                     start:intvector{\r
-                        -5105,\r
-                        -67721216,\r
+                        1275,\r
+                        4,\r
+                        25,\r
                     }\r
                 }\r
                 139{\r
                     start:intvector{\r
-                        -5084,\r
-                        -319634432,\r
+                        1278,\r
+                        2,\r
+                        29,\r
                     }\r
                 }\r
                 14{\r
                     start:intvector{\r
-                        -8854,\r
-                        -1899328512,\r
+                        765,\r
+                        1,\r
+                        7,\r
                     }\r
                 }\r
                 140{\r
                     start:intvector{\r
-                        -5009,\r
-                        -1811781632,\r
+                        1288,\r
+                        4,\r
+                        28,\r
                     }\r
                 }\r
                 141{\r
                     start:intvector{\r
-                        -4969,\r
-                        1324493824,\r
+                        1293,\r
+                        8,\r
+                        5,\r
                     }\r
                 }\r
                 142{\r
                     start:intvector{\r
-                        -4928,\r
-                        1400434688,\r
+                        1299,\r
+                        4,\r
+                        25,\r
                     }\r
                 }\r
                 143{\r
                     start:intvector{\r
-                        -4902,\r
-                        -1725282304,\r
+                        1302,\r
+                        11,\r
+                        21,\r
                     }\r
                 }\r
                 144{\r
                     start:intvector{\r
-                        -4897,\r
-                        -995318784,\r
+                        1303,\r
+                        8,\r
+                        5,\r
                     }\r
                 }\r
                 145{\r
                     start:intvector{\r
-                        -4872,\r
-                        1938266112,\r
+                        1306,\r
+                        12,\r
+                        14,\r
                     }\r
                 }\r
                 146{\r
                     start:intvector{\r
-                        -4859,\r
-                        -735276032,\r
+                        1308,\r
+                        10,\r
+                        9,\r
                     }\r
                 }\r
                 147{\r
                     start:intvector{\r
-                        -4840,\r
-                        -1901254656,\r
+                        1311,\r
+                        4,\r
+                        28,\r
                     }\r
                 }\r
                 148{\r
                     start:intvector{\r
-                        -4833,\r
-                        581741568,\r
+                        1312,\r
+                        3,\r
+                        20,\r
                     }\r
                 }\r
                 149{\r
                     start:intvector{\r
-                        -4798,\r
-                        -158681088,\r
+                        1317,\r
+                        2,\r
+                        3,\r
                     }\r
                 }\r
                 15{\r
                     start:intvector{\r
-                        -8835,\r
-                        -1337307136,\r
+                        767,\r
+                        8,\r
+                        16,\r
                     }\r
                 }\r
                 150{\r
                     start:intvector{\r
-                        -4781,\r
-                        1451442176,\r
+                        1319,\r
+                        4,\r
+                        28,\r
                     }\r
                 }\r
                 151{\r
                     start:intvector{\r
-                        -4768,\r
-                        -1049299968,\r
+                        1321,\r
+                        2,\r
+                        23,\r
                     }\r
                 }\r
                 152{\r
                     start:intvector{\r
-                        -4740,\r
-                        -1644384256,\r
+                        1324,\r
+                        12,\r
+                        9,\r
                     }\r
                 }\r
                 153{\r
                     start:intvector{\r
-                        -4730,\r
-                        -1134857216,\r
+                        1326,\r
+                        4,\r
+                        26,\r
                     }\r
                 }\r
                 154{\r
                     start:intvector{\r
-                        -4705,\r
-                        1280327680,\r
+                        1329,\r
+                        8,\r
+                        29,\r
                     }\r
                 }\r
                 155{\r
                     start:intvector{\r
-                        -4691,\r
-                        -1800181760,\r
+                        1331,\r
+                        8,\r
+                        9,\r
                     }\r
                 }\r
                 156{\r
                     start:intvector{\r
-                        -4673,\r
-                        -1003993088,\r
+                        1334,\r
+                        1,\r
+                        29,\r
                     }\r
                 }\r
                 157{\r
                     start:intvector{\r
-                        -4657,\r
-                        321897472,\r
+                        1336,\r
+                        2,\r
+                        29,\r
                     }\r
                 }\r
                 158{\r
                     start:intvector{\r
-                        -4627,\r
-                        -1494088704,\r
+                        1340,\r
+                        4,\r
+                        28,\r
                     }\r
                 }\r
                 159{\r
                     start:intvector{\r
-                        -4578,\r
-                        1003481088,\r
+                        1346,\r
+                        12,\r
+                        8,\r
                     }\r
                 }\r
                 16{\r
                     start:intvector{\r
-                        -8812,\r
-                        -1452754944,\r
+                        770,\r
+                        10,\r
+                        1,\r
                     }\r
                 }\r
                 160{\r
                     start:intvector{\r
-                        -4405,\r
-                        -775228416,\r
+                        1370,\r
+                        7,\r
+                        24,\r
                     }\r
                 }\r
                 161{\r
                     start:intvector{\r
-                        -4392,\r
-                        993964032,\r
+                        1372,\r
+                        4,\r
+                        1,\r
                     }\r
                 }\r
                 162{\r
                     start:intvector{\r
-                        -4369,\r
-                        1656116224,\r
+                        1375,\r
+                        5,\r
+                        27,\r
                     }\r
                 }\r
                 163{\r
                     start:intvector{\r
-                        -4341,\r
-                        1925031936,\r
+                        1379,\r
+                        3,\r
+                        22,\r
                     }\r
                 }\r
                 164{\r
                     start:intvector{\r
-                        -4327,\r
-                        1497889792,\r
+                        1381,\r
+                        2,\r
+                        10,\r
                     }\r
                 }\r
                 165{\r
                     start:intvector{\r
-                        -4304,\r
-                        -234125312,\r
+                        1384,\r
+                        4,\r
+                        28,\r
                     }\r
                 }\r
                 166{\r
                     start:intvector{\r
-                        -4305,\r
-                        -1209558016,\r
+                        1387,\r
+                        8,\r
+                        22,\r
                     }\r
                 }\r
                 167{\r
                     start:intvector{\r
-                        -4279,\r
-                        1403459584,\r
+                        1387,\r
+                        8,\r
+                        23,\r
                     }\r
                 }\r
                 168{\r
                     start:intvector{\r
-                        -4268,\r
-                        469219328,\r
+                        1389,\r
+                        2,\r
+                        9,\r
                     }\r
                 }\r
                 169{\r
                     start:intvector{\r
-                        -4260,\r
-                        1533480960,\r
+                        1390,\r
+                        3,\r
+                        26,\r
                     }\r
                 }\r
                 17{\r
                     start:intvector{\r
-                        -8737,\r
-                        -7302144,\r
+                        781,\r
+                        1,\r
+                        1,\r
                     }\r
                 }\r
                 170{\r
                     start:intvector{\r
-                        -4229,\r
-                        -948672512,\r
+                        1394,\r
+                        7,\r
+                        5,\r
                     }\r
                 }\r
                 171{\r
                     start:intvector{\r
-                        -3980,\r
-                        939438080,\r
+                        1428,\r
+                        4,\r
+                        27,\r
                     }\r
                 }\r
                 172{\r
                     start:intvector{\r
-                        -3970,\r
-                        844165120,\r
+                        1429,\r
+                        9,\r
+                        5,\r
                     }\r
                 }\r
                 173{\r
                     start:intvector{\r
-                        -3886,\r
-                        1478112256,\r
+                        1441,\r
+                        2,\r
+                        17,\r
                     }\r
                 }\r
                 174{\r
                     start:intvector{\r
-                        -3864,\r
-                        560031744,\r
+                        1444,\r
+                        2,\r
+                        5,\r
                     }\r
                 }\r
                 175{\r
                     start:intvector{\r
-                        -3824,\r
-                        1561339904,\r
+                        1449,\r
+                        7,\r
+                        28,\r
                     }\r
                 }\r
                 176{\r
                     start:intvector{\r
-                        -3802,\r
-                        1507259392,\r
+                        1452,\r
+                        7,\r
+                        25,\r
                     }\r
                 }\r
                 177{\r
                     start:intvector{\r
-                        -3780,\r
-                        1625978880,\r
+                        1455,\r
+                        7,\r
+                        25,\r
                     }\r
                 }\r
                 178{\r
                     start:intvector{\r
-                        -3764,\r
-                        1680902144,\r
+                        1457,\r
+                        9,\r
+                        28,\r
                     }\r
                 }\r
                 179{\r
                     start:intvector{\r
-                        -3740,\r
-                        553687040,\r
+                        1460,\r
+                        12,\r
+                        21,\r
                     }\r
                 }\r
                 18{\r
                     start:intvector{\r
-                        -8725,\r
-                        -138909696,\r
+                        782,\r
+                        8,\r
+                        19,\r
                     }\r
                 }\r
                 180{\r
                     start:intvector{\r
-                        -3702,\r
-                        1072929792,\r
+                        1466,\r
+                        2,\r
+                        28,\r
                     }\r
                 }\r
                 181{\r
                     start:intvector{\r
-                        -3695,\r
-                        -1491608576,\r
+                        1467,\r
+                        3,\r
+                        3,\r
                     }\r
                 }\r
                 182{\r
                     start:intvector{\r
-                        -3679,\r
-                        2080681984,\r
+                        1469,\r
+                        4,\r
+                        28,\r
                     }\r
                 }\r
                 183{\r
                     start:intvector{\r
-                        -3545,\r
-                        -1797502976,\r
+                        1487,\r
+                        7,\r
+                        29,\r
                     }\r
                 }\r
                 184{\r
                     start:intvector{\r
-                        -3530,\r
-                        -1076412416,\r
+                        1489,\r
+                        8,\r
+                        21,\r
                     }\r
                 }\r
                 185{\r
                     start:intvector{\r
-                        -3508,\r
-                        572474368,\r
+                        1492,\r
+                        7,\r
+                        19,\r
                     }\r
                 }\r
                 186{\r
                     start:intvector{\r
-                        -3445,\r
-                        1890334720,\r
+                        1501,\r
+                        2,\r
+                        29,\r
                     }\r
                 }\r
                 187{\r
                     start:intvector{\r
-                        -3423,\r
-                        2095454208,\r
+                        1504,\r
+                        2,\r
+                        30,\r
                     }\r
                 }\r
                 188{\r
                     start:intvector{\r
-                        -3295,\r
-                        -377726976,\r
+                        1521,\r
+                        8,\r
+                        23,\r
                     }\r
                 }\r
                 189{\r
                     start:intvector{\r
-                        -3243,\r
-                        1244540928,\r
+                        1528,\r
+                        8,\r
+                        20,\r
                     }\r
                 }\r
                 19{\r
                     start:intvector{\r
-                        -8550,\r
-                        1883980800,\r
+                        806,\r
+                        5,\r
+                        18,\r
                     }\r
                 }\r
                 190{\r
                     start:intvector{\r
-                        -3214,\r
-                        1020089344,\r
+                        1532,\r
+                        7,\r
+                        29,\r
                     }\r
                 }\r
                 191{\r
                     start:intvector{\r
-                        -3044,\r
-                        -228918272,\r
+                        1555,\r
+                        10,\r
+                        23,\r
                     }\r
                 }\r
                 192{\r
                     start:intvector{\r
-                        -3026,\r
-                        974237696,\r
+                        1558,\r
+                        2,\r
+                        28,\r
                     }\r
                 }\r
                 193{\r
                     start:intvector{\r
-                        -2937,\r
-                        2078948352,\r
+                        1570,\r
+                        4,\r
+                        23,\r
                     }\r
                 }\r
                 194{\r
                     start:intvector{\r
-                        -2913,\r
-                        1988533248,\r
+                        1573,\r
+                        7,\r
+                        28,\r
                     }\r
                 }\r
                 195{\r
                     start:intvector{\r
-                        -2771,\r
-                        -1948590080,\r
+                        1592,\r
+                        12,\r
+                        8,\r
                     }\r
                 }\r
                 196{\r
                     start:intvector{\r
-                        -2742,\r
-                        393925632,\r
+                        1596,\r
+                        10,\r
+                        27,\r
                     }\r
                 }\r
                 197{\r
                     start:intvector{\r
-                        -2605,\r
-                        -1940361216,\r
+                        1615,\r
+                        7,\r
+                        13,\r
                     }\r
                 }\r
                 198{\r
                     start:intvector{\r
-                        -2542,\r
-                        -17700864,\r
+                        1624,\r
+                        2,\r
+                        30,\r
                     }\r
                 }\r
                 199{\r
                     start:intvector{\r
-                        -2389,\r
-                        -939697152,\r
+                        1644,\r
+                        12,\r
+                        16,\r
                     }\r
                 }\r
                 2{\r
                     start:intvector{\r
-                        -9537,\r
-                        418301952,\r
+                        672,\r
+                        1,\r
+                        1,\r
                     }\r
                 }\r
                 20{\r
                     start:intvector{\r
-                        -8518,\r
-                        1389027328,\r
+                        810,\r
+                        9,\r
+                        19,\r
                     }\r
                 }\r
                 200{\r
                     start:intvector{\r
-                        -2365,\r
-                        154455040,\r
+                        1648,\r
+                        2,\r
+                        15,\r
                     }\r
                 }\r
                 201{\r
                     start:intvector{\r
-                        -2332,\r
-                        -981633024,\r
+                        1652,\r
+                        9,\r
+                        18,\r
                     }\r
                 }\r
                 202{\r
                     start:intvector{\r
-                        -2313,\r
-                        -1629211648,\r
+                        1655,\r
+                        4,\r
+                        13,\r
                     }\r
                 }\r
                 203{\r
                     start:intvector{\r
-                        -2289,\r
-                        -1287626752,\r
+                        1658,\r
+                        7,\r
+                        23,\r
                     }\r
                 }\r
                 204{\r
                     start:intvector{\r
-                        -2269,\r
-                        -182172672,\r
+                        1661,\r
+                        4,\r
+                        25,\r
                     }\r
                 }\r
                 205{\r
                     start:intvector{\r
-                        -2177,\r
-                        540603392,\r
+                        1673,\r
+                        9,\r
+                        21,\r
                     }\r
                 }\r
                 206{\r
                     start:intvector{\r
-                        -2118,\r
-                        289532928,\r
+                        1681,\r
+                        9,\r
+                        29,\r
                     }\r
                 }\r
                 207{\r
                     start:intvector{\r
-                        -2101,\r
-                        -1419878400,\r
+                        1684,\r
+                        2,\r
+                        21,\r
                     }\r
                 }\r
                 208{\r
                     start:intvector{\r
-                        -2067,\r
-                        -2037566464,\r
+                        1688,\r
+                        9,\r
+                        30,\r
                     }\r
                 }\r
                 209{\r
                     start:intvector{\r
-                        -1953,\r
-                        99929088,\r
+                        1704,\r
+                        3,\r
+                        13,\r
                     }\r
                 }\r
                 21{\r
                     start:intvector{\r
-                        -8420,\r
-                        40632320,\r
+                        824,\r
+                        1,\r
+                        5,\r
                     }\r
                 }\r
                 210{\r
                     start:intvector{\r
-                        -1901,\r
-                        1315229696,\r
+                        1711,\r
+                        4,\r
+                        25,\r
                     }\r
                 }\r
                 211{\r
                     start:intvector{\r
-                        -1863,\r
-                        970472448,\r
+                        1716,\r
+                        6,\r
+                        22,\r
                     }\r
                 }\r
                 212{\r
                     start:intvector{\r
-                        -1717,\r
-                        305247232,\r
+                        1736,\r
+                        4,\r
+                        28,\r
                     }\r
                 }\r
                 213{\r
                     start:intvector{\r
-                        -1682,\r
-                        -1731175424,\r
+                        1741,\r
+                        2,\r
+                        27,\r
                     }\r
                 }\r
                 214{\r
                     start:intvector{\r
-                        -1660,\r
-                        -2130855936,\r
+                        1744,\r
+                        2,\r
+                        21,\r
                     }\r
                 }\r
                 215{\r
                     start:intvector{\r
-                        -1628,\r
-                        -1070609408,\r
+                        1748,\r
+                        7,\r
+                        12,\r
                     }\r
                 }\r
                 216{\r
                     start:intvector{\r
-                        -1604,\r
-                        -297024512,\r
+                        1751,\r
+                        10,\r
+                        27,\r
                     }\r
                 }\r
                 217{\r
                     start:intvector{\r
-                        -1511,\r
-                        -2116183040,\r
+                        1764,\r
+                        6,\r
+                        2,\r
                     }\r
                 }\r
                 218{\r
                     start:intvector{\r
-                        -1449,\r
-                        -1514555392,\r
+                        1772,\r
+                        11,\r
+                        16,\r
                     }\r
                 }\r
                 219{\r
                     start:intvector{\r
-                        -1387,\r
-                        790039552,\r
+                        1781,\r
+                        4,\r
+                        2,\r
                     }\r
                 }\r
                 22{\r
                     start:intvector{\r
-                        -8347,\r
-                        1954419712,\r
+                        834,\r
+                        1,\r
+                        3,\r
                     }\r
                 }\r
                 220{\r
                     start:intvector{\r
-                        -1330,\r
-                        -1646063616,\r
+                        1789,\r
+                        1,\r
+                        25,\r
                     }\r
                 }\r
                 221{\r
                     start:intvector{\r
-                        -1242,\r
-                        -47985664,\r
+                        1801,\r
+                        2,\r
+                        5,\r
                     }\r
                 }\r
                 222{\r
                     start:intvector{\r
-                        -1219,\r
-                        589133824,\r
+                        1804,\r
+                        2,\r
+                        11,\r
                     }\r
                 }\r
                 223{\r
                     start:intvector{\r
-                        -1115,\r
-                        1810135040,\r
+                        1818,\r
+                        4,\r
+                        22,\r
                     }\r
                 }\r
                 224{\r
                     start:intvector{\r
-                        -1022,\r
-                        1114176512,\r
+                        1830,\r
+                        12,\r
+                        10,\r
                     }\r
                 }\r
                 225{\r
                     start:intvector{\r
-                        -920,\r
-                        -109054976,\r
+                        1844,\r
+                        12,\r
+                        2,\r
                     }\r
                 }\r
                 226{\r
                     start:intvector{\r
-                        -896,\r
-                        -977070080,\r
+                        1848,\r
+                        2,\r
+                        28,\r
                     }\r
                 }\r
                 227{\r
                     start:intvector{\r
-                        -846,\r
-                        1459132416,\r
+                        1854,\r
+                        11,\r
+                        27,\r
                     }\r
                 }\r
                 228{\r
                     start:intvector{\r
-                        -807,\r
-                        1398607872,\r
+                        1860,\r
+                        3,\r
+                        18,\r
                     }\r
                 }\r
                 229{\r
                     start:intvector{\r
-                        -800,\r
-                        537036800,\r
+                        1861,\r
+                        2,\r
+                        19,\r
                     }\r
                 }\r
                 23{\r
                     start:intvector{\r
-                        -8241,\r
-                        -1847080960,\r
+                        848,\r
+                        6,\r
+                        13,\r
                     }\r
                 }\r
                 230{\r
                     start:intvector{\r
-                        -778,\r
-                        742156288,\r
+                        1864,\r
+                        2,\r
+                        20,\r
                     }\r
                 }\r
                 231{\r
                     start:intvector{\r
-                        -770,\r
-                        1979217920,\r
+                        1865,\r
+                        4,\r
+                        7,\r
                     }\r
                 }\r
                 232{\r
                     start:intvector{\r
-                        -745,\r
-                        -1689931776,\r
+                        1868,\r
+                        9,\r
+                        8,\r
                     }\r
                 }\r
                 233{\r
                     start:intvector{\r
-                        -422,\r
-                        322598912,\r
+                        1912,\r
+                        7,\r
+                        30,\r
                     }\r
                 }\r
                 234{\r
                     start:intvector{\r
-                        -317,\r
-                        -393534464,\r
+                        1926,\r
+                        12,\r
+                        25,\r
                     }\r
                 }\r
                 235{\r
                     start:intvector{\r
-                        139,\r
-                        -1074621440,\r
+                        1989,\r
+                        1,\r
+                        8,\r
+                    }\r
+                }\r
+                236{\r
+                    named{"false"}\r
+                    start:intvector{\r
+                        2019,\r
+                        5,\r
+                        1,\r
                     }\r
                 }\r
                 24{\r
                     start:intvector{\r
-                        -8220,\r
-                        -1407794176,\r
+                        851,\r
+                        4,\r
+                        28,\r
                     }\r
                 }\r
                 25{\r
                     start:intvector{\r
-                        -8193,\r
-                        279856128,\r
+                        854,\r
+                        11,\r
+                        30,\r
                     }\r
                 }\r
                 26{\r
                     start:intvector{\r
-                        -8177,\r
-                        1889979392,\r
+                        857,\r
+                        2,\r
+                        21,\r
                     }\r
                 }\r
                 27{\r
                     start:intvector{\r
-                        -8161,\r
-                        821702656,\r
+                        859,\r
+                        4,\r
+                        15,\r
                     }\r
                 }\r
                 28{\r
                     start:intvector{\r
-                        -8029,\r
-                        2052419584,\r
+                        877,\r
+                        4,\r
+                        16,\r
                     }\r
                 }\r
                 29{\r
                     start:intvector{\r
-                        -7971,\r
-                        739516416,\r
+                        885,\r
+                        2,\r
+                        21,\r
                     }\r
                 }\r
                 3{\r
                     start:intvector{\r
-                        -9431,\r
-                        -13598720,\r
+                        686,\r
+                        7,\r
+                        20,\r
                     }\r
                 }\r
                 30{\r
                     start:intvector{\r
-                        -7941,\r
-                        -558069760,\r
+                        889,\r
+                        4,\r
+                        27,\r
                     }\r
                 }\r
                 31{\r
                     start:intvector{\r
-                        -7875,\r
-                        -115511296,\r
+                        898,\r
+                        4,\r
+                        26,\r
                     }\r
                 }\r
                 32{\r
                     start:intvector{\r
-                        -7851,\r
-                        -1588326400,\r
+                        901,\r
+                        7,\r
+                        15,\r
                     }\r
                 }\r
                 33{\r
                     start:intvector{\r
-                        -7691,\r
-                        1527873536,\r
+                        923,\r
+                        4,\r
+                        11,\r
                     }\r
                 }\r
                 34{\r
                     start:intvector{\r
-                        -7632,\r
-                        1881603072,\r
+                        931,\r
+                        4,\r
+                        26,\r
                     }\r
                 }\r
                 35{\r
                     start:intvector{\r
-                        -7580,\r
-                        1714503680,\r
+                        938,\r
+                        5,\r
+                        22,\r
                     }\r
                 }\r
                 36{\r
                     start:intvector{\r
-                        -7515,\r
-                        -348537856,\r
+                        947,\r
+                        4,\r
+                        22,\r
                     }\r
                 }\r
                 37{\r
                     start:intvector{\r
-                        -7437,\r
-                        801380352,\r
+                        957,\r
+                        10,\r
+                        27,\r
                     }\r
                 }\r
                 38{\r
                     start:intvector{\r
-                        -7413,\r
-                        2093365248,\r
+                        961,\r
+                        2,\r
+                        16,\r
                     }\r
                 }\r
                 39{\r
                     start:intvector{\r
-                        -7388,\r
-                        1855182848,\r
+                        964,\r
+                        7,\r
+                        10,\r
                     }\r
                 }\r
                 4{\r
                     start:intvector{\r
-                        -9323,\r
-                        -938866688,\r
+                        701,\r
+                        3,\r
+                        21,\r
                     }\r
                 }\r
                 40{\r
                     start:intvector{\r
-                        -7358,\r
-                        -2120803328,\r
+                        968,\r
+                        8,\r
+                        13,\r
                     }\r
                 }\r
                 41{\r
                     start:intvector{\r
-                        -7346,\r
-                        1524156416,\r
+                        970,\r
+                        3,\r
+                        25,\r
                     }\r
                 }\r
                 42{\r
                     start:intvector{\r
-                        -7319,\r
-                        -712527872,\r
+                        973,\r
+                        12,\r
+                        20,\r
                     }\r
                 }\r
                 43{\r
                     start:intvector{\r
-                        -7300,\r
-                        -1446506496,\r
+                        976,\r
+                        7,\r
+                        13,\r
                     }\r
                 }\r
                 44{\r
                     start:intvector{\r
-                        -7282,\r
-                        620649472,\r
+                        978,\r
+                        11,\r
+                        29,\r
                     }\r
                 }\r
                 45{\r
                     start:intvector{\r
-                        -7250,\r
-                        1248896000,\r
+                        983,\r
+                        4,\r
+                        15,\r
                     }\r
                 }\r
                 46{\r
                     start:intvector{\r
-                        -7235,\r
-                        1019586560,\r
+                        985,\r
+                        4,\r
+                        27,\r
                     }\r
                 }\r
                 47{\r
                     start:intvector{\r
-                        -7221,\r
-                        2061244416,\r
+                        987,\r
+                        4,\r
+                        5,\r
                     }\r
                 }\r
                 48{\r
                     start:intvector{\r
-                        -7204,\r
-                        -1289766912,\r
+                        989,\r
+                        8,\r
+                        8,\r
                     }\r
                 }\r
                 49{\r
                     start:intvector{\r
-                        -7195,\r
-                        -546072576,\r
+                        990,\r
+                        11,\r
+                        7,\r
                     }\r
                 }\r
                 5{\r
                     start:intvector{\r
-                        -9300,\r
-                        -708714496,\r
+                        704,\r
+                        5,\r
+                        10,\r
                     }\r
                 }\r
                 50{\r
                     start:intvector{\r
-                        -7163,\r
-                        1785141248,\r
+                        995,\r
+                        2,\r
+                        22,\r
                     }\r
                 }\r
                 51{\r
                     start:intvector{\r
-                        -7134,\r
-                        5489664,\r
+                        999,\r
+                        1,\r
+                        13,\r
                     }\r
                 }\r
                 52{\r
                     start:intvector{\r
-                        -7094,\r
-                        -1992169472,\r
+                        1004,\r
+                        7,\r
+                        20,\r
                     }\r
                 }\r
                 53{\r
                     start:intvector{\r
-                        -7032,\r
-                        2126825472,\r
+                        1012,\r
+                        12,\r
+                        25,\r
                     }\r
                 }\r
                 54{\r
                     start:intvector{\r
-                        -7000,\r
-                        1199872000,\r
+                        1017,\r
+                        4,\r
+                        23,\r
                     }\r
                 }\r
                 55{\r
                     start:intvector{\r
-                        -6972,\r
-                        259187712,\r
+                        1021,\r
+                        2,\r
+                        2,\r
                     }\r
                 }\r
                 56{\r
                     start:intvector{\r
-                        -6947,\r
-                        1489805312,\r
+                        1024,\r
+                        7,\r
+                        13,\r
                     }\r
                 }\r
                 57{\r
                     start:intvector{\r
-                        -6918,\r
-                        -92013568,\r
+                        1028,\r
+                        7,\r
+                        25,\r
                     }\r
                 }\r
                 58{\r
                     start:intvector{\r
-                        -6853,\r
-                        818879488,\r
+                        1037,\r
+                        4,\r
+                        21,\r
                     }\r
                 }\r
                 59{\r
                     start:intvector{\r
-                        -6827,\r
-                        1383329792,\r
+                        1040,\r
+                        11,\r
+                        10,\r
                     }\r
                 }\r
                 6{\r
                     start:intvector{\r
-                        -9273,\r
-                        -810431488,\r
+                        708,\r
+                        1,\r
+                        11,\r
                     }\r
                 }\r
                 60{\r
                     start:intvector{\r
-                        -6798,\r
-                        -25689088,\r
+                        1044,\r
+                        11,\r
+                        24,\r
                     }\r
                 }\r
                 61{\r
                     start:intvector{\r
-                        -6787,\r
-                        743037952,\r
+                        1046,\r
+                        4,\r
+                        14,\r
                     }\r
                 }\r
                 62{\r
                     start:intvector{\r
-                        -6738,\r
-                        -1115726848,\r
+                        1053,\r
+                        1,\r
+                        11,\r
                     }\r
                 }\r
                 63{\r
                     start:intvector{\r
-                        -6696,\r
-                        429014016,\r
+                        1058,\r
+                        8,\r
+                        29,\r
                     }\r
                 }\r
                 64{\r
                     start:intvector{\r
-                        -6646,\r
-                        -22318080,\r
+                        1065,\r
+                        8,\r
+                        2,\r
                     }\r
                 }\r
                 65{\r
                     start:intvector{\r
-                        -6618,\r
-                        653564928,\r
+                        1069,\r
+                        4,\r
+                        13,\r
                     }\r
                 }\r
                 66{\r
                     start:intvector{\r
-                        -6579,\r
-                        -1973926912,\r
+                        1074,\r
+                        8,\r
+                        23,\r
                     }\r
                 }\r
                 67{\r
                     start:intvector{\r
-                        -6555,\r
-                        1366625280,\r
+                        1077,\r
+                        11,\r
+                        17,\r
                     }\r
                 }\r
                 68{\r
                     start:intvector{\r
-                        -6531,\r
-                        325810176,\r
+                        1081,\r
+                        2,\r
+                        10,\r
                     }\r
                 }\r
                 69{\r
                     start:intvector{\r
-                        -6509,\r
-                        185329664,\r
+                        1084,\r
+                        2,\r
+                        7,\r
                     }\r
                 }\r
                 7{\r
                     start:intvector{\r
-                        -9217,\r
-                        -186200064,\r
+                        715,\r
+                        9,\r
+                        2,\r
                     }\r
                 }\r
                 70{\r
                     start:intvector{\r
-                        -6486,\r
-                        1193081856,\r
+                        1087,\r
+                        4,\r
+                        7,\r
                     }\r
                 }\r
                 71{\r
                     start:intvector{\r
-                        -6430,\r
-                        -922454016,\r
+                        1094,\r
+                        12,\r
+                        15,\r
                     }\r
                 }\r
                 72{\r
                     start:intvector{\r
-                        -6415,\r
-                        -2015763456,\r
+                        1096,\r
+                        12,\r
+                        17,\r
                     }\r
                 }\r
                 73{\r
                     start:intvector{\r
-                        -6408,\r
-                        1504032768,\r
+                        1097,\r
+                        11,\r
+                        21,\r
                     }\r
                 }\r
                 74{\r
                     start:intvector{\r
-                        -6395,\r
-                        1397457920,\r
+                        1099,\r
+                        8,\r
+                        28,\r
                     }\r
                 }\r
                 75{\r
                     start:intvector{\r
-                        -6362,\r
-                        236337152,\r
+                        1104,\r
+                        2,\r
+                        10,\r
                     }\r
                 }\r
                 76{\r
                     start:intvector{\r
-                        -6347,\r
-                        -313539584,\r
+                        1106,\r
+                        4,\r
+                        9,\r
                     }\r
                 }\r
                 77{\r
                     start:intvector{\r
-                        -6330,\r
-                        -147183616,\r
+                        1108,\r
+                        8,\r
+                        3,\r
                     }\r
                 }\r
                 78{\r
                     start:intvector{\r
-                        -6315,\r
-                        980874240,\r
+                        1110,\r
+                        7,\r
+                        13,\r
                     }\r
                 }\r
                 79{\r
                     start:intvector{\r
-                        -6293,\r
-                        1185993728,\r
+                        1113,\r
+                        7,\r
+                        13,\r
                     }\r
                 }\r
                 8{\r
                     start:intvector{\r
-                        -9200,\r
-                        819123200,\r
+                        717,\r
+                        11,\r
+                        17,\r
                     }\r
                 }\r
                 80{\r
                     start:intvector{\r
-                        -6259,\r
-                        -97861632,\r
+                        1118,\r
+                        4,\r
+                        3,\r
                     }\r
                 }\r
                 81{\r
                     start:intvector{\r
-                        -6244,\r
-                        -759171072,\r
+                        1120,\r
+                        4,\r
+                        10,\r
                     }\r
                 }\r
                 82{\r
                     start:intvector{\r
-                        -6214,\r
-                        312377344,\r
+                        1124,\r
+                        4,\r
+                        3,\r
                     }\r
                 }\r
                 83{\r
                     start:intvector{\r
-                        -6201,\r
-                        1415402496,\r
+                        1126,\r
+                        1,\r
+                        22,\r
                     }\r
                 }\r
                 84{\r
                     start:intvector{\r
-                        -6164,\r
-                        872812544,\r
+                        1131,\r
+                        1,\r
+                        29,\r
                     }\r
                 }\r
                 85{\r
                     start:intvector{\r
-                        -6153,\r
-                        2012172288,\r
+                        1132,\r
+                        8,\r
+                        11,\r
                     }\r
                 }\r
                 86{\r
                     start:intvector{\r
-                        -6133,\r
-                        1562426368,\r
+                        1135,\r
+                        4,\r
+                        27,\r
                     }\r
                 }\r
                 87{\r
                     start:intvector{\r
-                        -6088,\r
-                        -223669248,\r
+                        1141,\r
+                        7,\r
+                        10,\r
                     }\r
                 }\r
                 88{\r
                     start:intvector{\r
-                        -6082,\r
-                        -764673024,\r
+                        1142,\r
+                        4,\r
+                        28,\r
                     }\r
                 }\r
                 89{\r
                     start:intvector{\r
-                        -6068,\r
-                        943152128,\r
+                        1144,\r
+                        2,\r
+                        23,\r
                     }\r
                 }\r
                 9{\r
                     start:intvector{\r
-                        -9155,\r
-                        -621372416,\r
+                        724,\r
+                        2,\r
+                        4,\r
                     }\r
                 }\r
                 90{\r
                     start:intvector{\r
-                        -6058,\r
-                        -1805488128,\r
+                        1145,\r
+                        7,\r
+                        22,\r
                     }\r
                 }\r
                 91{\r
                     start:intvector{\r
-                        -6017,\r
-                        405420032,\r
+                        1151,\r
+                        1,\r
+                        26,\r
                     }\r
                 }\r
                 92{\r
                     start:intvector{\r
-                        -5990,\r
-                        -1399264256,\r
+                        1154,\r
+                        10,\r
+                        28,\r
                     }\r
                 }\r
                 93{\r
                     start:intvector{\r
-                        -5979,\r
-                        -1383104512,\r
+                        1156,\r
+                        4,\r
+                        27,\r
                     }\r
                 }\r
                 94{\r
                     start:intvector{\r
-                        -5957,\r
-                        -1869185024,\r
+                        1159,\r
+                        4,\r
+                        20,\r
                     }\r
                 }\r
                 95{\r
                     start:intvector{\r
-                        -5952,\r
-                        -448021504,\r
+                        1160,\r
+                        1,\r
+                        10,\r
                     }\r
                 }\r
                 96{\r
                     start:intvector{\r
-                        -5939,\r
-                        111570944,\r
+                        1161,\r
+                        9,\r
+                        4,\r
                     }\r
                 }\r
                 97{\r
                     start:intvector{\r
-                        -5928,\r
-                        -2093636608,\r
+                        1163,\r
+                        3,\r
+                        29,\r
                     }\r
                 }\r
                 98{\r
                     start:intvector{\r
-                        -5912,\r
-                        -1779513344,\r
+                        1165,\r
+                        6,\r
+                        5,\r
                     }\r
                 }\r
                 99{\r
                     start:intvector{\r
-                        -5903,\r
-                        -1727019008,\r
+                        1166,\r
+                        8,\r
+                        27,\r
                     }\r
                 }\r
             }\r
@@ -1597,8 +1858,9 @@ supplementalData:table(nofallback){
             eras{\r
                 0{\r
                     start:intvector{\r
-                        -9905,\r
-                        -1165500416,\r
+                        622,\r
+                        1,\r
+                        1,\r
                     }\r
                 }\r
             }\r
@@ -1608,14 +1870,16 @@ supplementalData:table(nofallback){
             eras{\r
                 0{\r
                     end:intvector{\r
-                        -427,\r
-                        -727931905,\r
+                        1911,\r
+                        12,\r
+                        31,\r
                     }\r
                 }\r
                 1{\r
                     start:intvector{\r
-                        -427,\r
-                        -727931904,\r
+                        1912,\r
+                        1,\r
+                        1,\r
                     }\r
                 }\r
             }\r
@@ -1841,7 +2105,7 @@ supplementalData:table(nofallback){
             "islamic-tbla",\r
         }\r
     }\r
-    cldrVersion{"33.1"}\r
+    cldrVersion{"34"}\r
     codeMappings{\r
         {\r
             "AA",\r
@@ -3980,6 +4244,10 @@ supplementalData:table(nofallback){
             "UYU",\r
             "858",\r
         }\r
+        {\r
+            "UYW",\r
+            "927",\r
+        }\r
         {\r
             "UZS",\r
             "860",\r
@@ -3988,6 +4256,10 @@ supplementalData:table(nofallback){
             "VEF",\r
             "937",\r
         }\r
+        {\r
+            "VES",\r
+            "928",\r
+        }\r
         {\r
             "VND",\r
             "704",\r
@@ -4159,8 +4431,10 @@ supplementalData:table(nofallback){
                 "MGF",\r
                 "MKN",\r
                 "MLF",\r
+                "MRO",\r
                 "MTL",\r
                 "MTP",\r
+                "MVP",\r
                 "MXP",\r
                 "MXV",\r
                 "MZE",\r
@@ -4193,6 +4467,7 @@ supplementalData:table(nofallback){
                 "UYI",\r
                 "UYP",\r
                 "VEB",\r
+                "VEF",\r
                 "VNN",\r
                 "XAG",\r
                 "XAU",\r
@@ -4310,7 +4585,7 @@ supplementalData:table(nofallback){
                 "MMK",\r
                 "MNT",\r
                 "MOP",\r
-                "MRO",\r
+                "MRU",\r
                 "MUR",\r
                 "MVR",\r
                 "MWK",\r
@@ -4364,7 +4639,7 @@ supplementalData:table(nofallback){
                 "USD",\r
                 "UYU",\r
                 "UZS",\r
-                "VEF",\r
+                "VES",\r
                 "VND",\r
                 "VUV",\r
                 "WST",\r
@@ -4770,7 +5045,7 @@ supplementalData:table(nofallback){
                 "cu",\r
                 "cua~c",\r
                 "cug~m",\r
-                "cuo~x",\r
+                "cuo~y",\r
                 "cv",\r
                 "cvg",\r
                 "cvn",\r
@@ -5104,7 +5379,7 @@ supplementalData:table(nofallback){
                 "gjr",\r
                 "gju",\r
                 "gka",\r
-                "gke",\r
+                "gkd~e",\r
                 "gkn~p",\r
                 "gku",\r
                 "gl",\r
@@ -5123,8 +5398,7 @@ supplementalData:table(nofallback){
                 "gmu~z",\r
                 "gn",\r
                 "gna~e",\r
-                "gng~i",\r
-                "gnk~n",\r
+                "gng~n",\r
                 "gnq~r",\r
                 "gnt~u",\r
                 "gnw",\r
@@ -5175,7 +5449,7 @@ supplementalData:table(nofallback){
                 "gyb",\r
                 "gyd~g",\r
                 "gyi",\r
-                "gyl~n",\r
+                "gyl~o",\r
                 "gyr",\r
                 "gyy",\r
                 "gza",\r
@@ -5212,6 +5486,7 @@ supplementalData:table(nofallback){
                 "hka",\r
                 "hke",\r
                 "hkk",\r
+                "hkn",\r
                 "hks",\r
                 "hla~b",\r
                 "hld~e",\r
@@ -5268,7 +5543,7 @@ supplementalData:table(nofallback){
                 "hwo",\r
                 "hy",\r
                 "hya",\r
-                "hyx",\r
+                "hyw~x",\r
                 "hz",\r
                 "ia",\r
                 "iai",\r
@@ -5646,7 +5921,7 @@ supplementalData:table(nofallback){
                 "lwg~h",\r
                 "lwl~m",\r
                 "lwo",\r
-                "lwt~u",\r
+                "lws~u",\r
                 "lww",\r
                 "lya",\r
                 "lyg",\r
@@ -5768,8 +6043,7 @@ supplementalData:table(nofallback){
                 "nlc",\r
                 "nle",\r
                 "nlg",\r
-                "nli~l",\r
-                "nln~o",\r
+                "nli~o",\r
                 "nlq~r",\r
                 "nlu~z",\r
                 "nma~z",\r
@@ -5836,6 +6110,7 @@ supplementalData:table(nofallback){
                 "ny",\r
                 "nyb~y",\r
                 "nza~b",\r
+                "nzd",\r
                 "nzi",\r
                 "nzk",\r
                 "nzm",\r
@@ -5952,8 +6227,7 @@ supplementalData:table(nofallback){
                 "pao~z",\r
                 "pbb~c",\r
                 "pbe~i",\r
-                "pbl",\r
-                "pbn~p",\r
+                "pbl~p",\r
                 "pbr~t",\r
                 "pbv",\r
                 "pby~z",\r
@@ -6317,7 +6591,7 @@ supplementalData:table(nofallback){
                 "te",\r
                 "tea~i",\r
                 "tek",\r
-                "tem~y",\r
+                "tem~z",\r
                 "tfi",\r
                 "tfn~o",\r
                 "tfr",\r
@@ -7044,7 +7318,7 @@ supplementalData:table(nofallback){
                 "QM~N",\r
                 "QP~T",\r
                 "QV~Z",\r
-                "XA~J",\r
+                "XC~J",\r
                 "XL~Z",\r
             }\r
             regular{\r
@@ -7169,12 +7443,14 @@ supplementalData:table(nofallback){
                 "ZM",\r
                 "ZW",\r
             }\r
+            special{"XA~B"}\r
             unknown{"ZZ"}\r
         }\r
         script{\r
             deprecated{"Qaai"}\r
             private_use{\r
-                "Qaaa~h",\r
+                "Qaaa~f",\r
+                "Qaah",\r
                 "Qaaj~z",\r
                 "Qaba~x",\r
             }\r
@@ -7333,6 +7609,7 @@ supplementalData:table(nofallback){
                 "Zyyy",\r
             }\r
             special{\r
+                "Qaag",\r
                 "Zmth",\r
                 "Zsye",\r
                 "Zsym",\r
@@ -7384,6 +7661,12 @@ supplementalData:table(nofallback){
                 "cdor",\r
                 "ci01~9",\r
                 "ci10~9",\r
+                "cn11~5",\r
+                "cn21~3",\r
+                "cn31~7",\r
+                "cn41~6",\r
+                "cn50~4",\r
+                "cn61~5",\r
                 "cn71",\r
                 "cn91~2",\r
                 "cz10a~f",\r
@@ -7469,6 +7752,10 @@ supplementalData:table(nofallback){
                 "lud",\r
                 "lug",\r
                 "lul",\r
+                "ma13~6",\r
+                "mammd",\r
+                "mammn",\r
+                "masyb",\r
                 "mk01",\r
                 "mk09",\r
                 "mk15",\r
@@ -7498,7 +7785,6 @@ supplementalData:table(nofallback){
                 "twtnq",\r
                 "twtpq",\r
                 "twtxq",\r
-                "ug331",\r
                 "usas",\r
                 "usgu",\r
                 "usmp",\r
@@ -7990,12 +8276,37 @@ supplementalData:table(nofallback){
                 "cmou",\r
                 "cmsu",\r
                 "cmsw",\r
-                "cn11~5",\r
-                "cn21~3",\r
-                "cn31~7",\r
-                "cn41~6",\r
-                "cn50~4",\r
-                "cn61~5",\r
+                "cnah",\r
+                "cnbj",\r
+                "cncq",\r
+                "cnfj",\r
+                "cngd",\r
+                "cngs",\r
+                "cngx",\r
+                "cngz",\r
+                "cnha~b",\r
+                "cnhe",\r
+                "cnhi",\r
+                "cnhk~l",\r
+                "cnhn",\r
+                "cnjl",\r
+                "cnjs",\r
+                "cnjx",\r
+                "cnln",\r
+                "cnmo",\r
+                "cnnm",\r
+                "cnnx",\r
+                "cnqh",\r
+                "cnsc~d",\r
+                "cnsh",\r
+                "cnsn",\r
+                "cnsx",\r
+                "cntj",\r
+                "cntw",\r
+                "cnxj",\r
+                "cnxz",\r
+                "cnyn",\r
+                "cnzj",\r
                 "coama",\r
                 "coant",\r
                 "coara",\r
@@ -8956,7 +9267,7 @@ supplementalData:table(nofallback){
                 "knn",\r
                 "kp01~9",\r
                 "kp10",\r
-                "kp13",\r
+                "kp13~4",\r
                 "kr11",\r
                 "kr26~9",\r
                 "kr30~1",\r
@@ -9121,7 +9432,7 @@ supplementalData:table(nofallback){
                 "lyws",\r
                 "lyza",\r
                 "ma01~9",\r
-                "ma10~6",\r
+                "ma10~2",\r
                 "maagd",\r
                 "maaou",\r
                 "maasz",\r
@@ -9130,17 +9441,20 @@ supplementalData:table(nofallback){
                 "maber~s",\r
                 "mabod",\r
                 "mabom",\r
+                "mabrr",\r
                 "macas",\r
                 "mache",\r
                 "machi",\r
                 "macht",\r
+                "madri",\r
                 "maerr",\r
                 "maesi",\r
                 "maesm",\r
                 "mafah",\r
                 "mafes",\r
                 "mafig",\r
-                "mague",\r
+                "mafqh",\r
+                "mague~f",\r
                 "mahaj",\r
                 "mahao",\r
                 "mahoc",\r
@@ -9154,10 +9468,11 @@ supplementalData:table(nofallback){
                 "makhn~o",\r
                 "malaa",\r
                 "malar",\r
+                "mamar",\r
+                "mamdf",\r
                 "mamed",\r
                 "mamek",\r
-                "mammd",\r
-                "mammn",\r
+                "mamid",\r
                 "mamoh",\r
                 "mamou",\r
                 "manad",\r
@@ -9165,23 +9480,29 @@ supplementalData:table(nofallback){
                 "maoua",\r
                 "maoud",\r
                 "maouj",\r
+                "maouz",\r
                 "marab",\r
+                "mareh",\r
                 "masaf",\r
                 "masal",\r
                 "masef",\r
                 "maset",\r
-                "masik",\r
+                "masib",\r
+                "masif",\r
+                "masik~l",\r
                 "maskh",\r
-                "masyb",\r
+                "mataf",\r
                 "matai",\r
                 "matao",\r
                 "matar",\r
                 "matat",\r
                 "mataz",\r
                 "matet",\r
+                "matin",\r
                 "matiz",\r
                 "matng",\r
                 "matnt",\r
+                "mayus",\r
                 "mazag",\r
                 "mccl",\r
                 "mcco",\r
@@ -9279,7 +9600,9 @@ supplementalData:table(nofallback){
                 "mk78",\r
                 "mk80~3",\r
                 "mk85",\r
-                "ml1~8",\r
+                "ml1",\r
+                "ml10",\r
+                "ml2~9",\r
                 "mlbko",\r
                 "mm01~7",\r
                 "mm11~8",\r
@@ -9738,6 +10061,7 @@ supplementalData:table(nofallback){
                 "qakh",\r
                 "qams",\r
                 "qara",\r
+                "qash",\r
                 "qaus",\r
                 "qawa",\r
                 "qaza",\r
@@ -10187,18 +10511,19 @@ supplementalData:table(nofallback){
                 "ua77",\r
                 "ug101~9",\r
                 "ug110~9",\r
-                "ug120~4",\r
+                "ug120~5",\r
                 "ug201~9",\r
                 "ug210~9",\r
                 "ug220~9",\r
-                "ug230~2",\r
+                "ug230~4",\r
                 "ug301~9",\r
                 "ug310~9",\r
                 "ug320~9",\r
-                "ug330",\r
+                "ug330~2",\r
                 "ug401~9",\r
                 "ug410~9",\r
-                "ug420~6",\r
+                "ug420~9",\r
+                "ug430~1",\r
                 "ugc",\r
                 "uge",\r
                 "ugn",\r
@@ -10634,6 +10959,7 @@ supplementalData:table(nofallback){
             }\r
         }\r
         unit{\r
+            deprecated{"proportion-karat"}\r
             regular{\r
                 "acceleration-g-force",\r
                 "acceleration-meter-per-second-squared",\r
@@ -10788,9 +11114,11 @@ supplementalData:table(nofallback){
                 "alalc97",\r
                 "aluku",\r
                 "ao1990",\r
+                "aranes",\r
                 "arevela",\r
                 "arevmda",\r
                 "asante",\r
+                "auvern",\r
                 "baku1926",\r
                 "balanka",\r
                 "barla",\r
@@ -10800,15 +11128,22 @@ supplementalData:table(nofallback){
                 "biske",\r
                 "bohoric",\r
                 "boont",\r
+                "cisaup",\r
                 "colb1945",\r
                 "cornu",\r
+                "creiss",\r
                 "dajnko",\r
                 "ekavsk",\r
                 "emodeng",\r
                 "fonipa",\r
+                "fonkirsh",\r
                 "fonnapa",\r
                 "fonupa",\r
                 "fonxsamp",\r
+                "gascon",\r
+                "grclass",\r
+                "grital",\r
+                "grmistr",\r
                 "hepburn",\r
                 "heploc",\r
                 "hognorsk",\r
@@ -10822,6 +11157,8 @@ supplementalData:table(nofallback){
                 "kociewie",\r
                 "kscor",\r
                 "laukika",\r
+                "lemosin",\r
+                "lengadoc",\r
                 "lipaw",\r
                 "luna1918",\r
                 "metelko",\r
@@ -10829,6 +11166,7 @@ supplementalData:table(nofallback){
                 "ndyuka",\r
                 "nedis",\r
                 "newfound",\r
+                "nicard",\r
                 "njiva",\r
                 "nulik",\r
                 "osojs",\r
@@ -10838,6 +11176,7 @@ supplementalData:table(nofallback){
                 "petr1708",\r
                 "pinyin",\r
                 "polyton",\r
+                "provenc",\r
                 "puter",\r
                 "rigik",\r
                 "rozaj",\r
@@ -10859,6 +11198,7 @@ supplementalData:table(nofallback){
                 "vaidika",\r
                 "valencia",\r
                 "vallader",\r
+                "vivaraup",\r
                 "wadegile",\r
                 "xsistemo",\r
             }\r
@@ -12378,7 +12718,10 @@ supplementalData:table(nofallback){
         }\r
         ff{\r
             primary{\r
-                scripts{"Latn"}\r
+                scripts{\r
+                    "Latn",\r
+                    "Adlm",\r
+                }\r
             }\r
             secondary{\r
                 territories{\r
@@ -13903,7 +14246,7 @@ supplementalData:table(nofallback){
             }\r
         }\r
         lui{\r
-            primary{\r
+            secondary{\r
                 scripts{"Latn"}\r
             }\r
         }\r
@@ -18759,6 +19102,7 @@ supplementalData:table(nofallback){
             "vai_Latn",\r
             "zh_Hant",\r
             "yue_Hans",\r
+            "ff_Adlm",\r
         }\r
         zh_Hant_HK{"zh_Hant_MO"}\r
     }\r
@@ -20776,10 +21120,6 @@ supplementalData:table(nofallback){
             "ma10",\r
             "ma11",\r
             "ma12",\r
-            "ma13",\r
-            "ma14",\r
-            "ma15",\r
-            "ma16",\r
         }\r
         MC{\r
             "mccl",\r
@@ -24036,95 +24376,99 @@ supplementalData:table(nofallback){
         ma01{\r
             "mache",\r
             "mafah",\r
+            "mahoc",\r
             "malar",\r
+            "mamdf",\r
+            "maouz",\r
             "matet",\r
             "matng",\r
         }\r
         ma02{\r
-            "maken",\r
-            "masik",\r
-        }\r
-        ma03{\r
-            "mahoc",\r
-            "matao",\r
-            "mataz",\r
-        }\r
-        ma04{\r
             "maber",\r
+            "madri",\r
             "mafig",\r
+            "maguf",\r
             "majra",\r
             "manad",\r
             "maouj",\r
             "matai",\r
         }\r
-        ma05{\r
+        ma03{\r
             "mabom",\r
             "mafes",\r
-            "mamou",\r
-            "masef",\r
-        }\r
-        ma06{\r
-            "maerr",\r
             "mahaj",\r
             "maifr",\r
-            "makhn",\r
             "mamek",\r
+            "mamou",\r
+            "masef",\r
+            "matao",\r
+            "mataz",\r
         }\r
-        ma07{\r
+        ma04{\r
+            "maken",\r
             "makhe",\r
+            "manou",\r
             "marab",\r
             "masal",\r
+            "masil",\r
             "maskh",\r
         }\r
-        ma08{\r
-            "macas",\r
-            "mamed",\r
-            "mamoh",\r
-            "manou",\r
-        }\r
-        ma09{\r
-            "mabes",\r
+        ma05{\r
+            "maazi",\r
+            "mabem",\r
+            "mafqh",\r
+            "makhn",\r
             "makho",\r
-            "maset",\r
         }\r
-        ma10{\r
+        ma06{\r
+            "mabes",\r
+            "mabrr",\r
+            "macht",\r
             "majdi",\r
-            "masaf",\r
+            "mamed",\r
+            "mamoh",\r
+            "masib",\r
+            "masik",\r
         }\r
-        ma11{\r
+        ma07{\r
             "machi",\r
             "maesi",\r
             "mahao",\r
             "makes",\r
-            "mammd",\r
-            "mammn",\r
-            "masyb",\r
+            "mamar",\r
+            "mareh",\r
+            "masaf",\r
+            "mayus",\r
         }\r
-        ma12{\r
-            "maazi",\r
-            "mabem",\r
+        ma08{\r
+            "macas",\r
+            "maerr",\r
+            "mamid",\r
+            "maoua",\r
+            "maset",\r
+            "matin",\r
+            "mazag",\r
         }\r
-        ma13{\r
+        ma09{\r
             "maagd",\r
-            "macht",\r
             "maine",\r
-            "maoua",\r
             "matar",\r
+            "matat",\r
             "matiz",\r
-            "mazag",\r
         }\r
-        ma14{\r
+        ma10{\r
             "maasz",\r
-            "maesm",\r
             "mague",\r
-            "matat",\r
+            "masif",\r
             "matnt",\r
         }\r
-        ma15{\r
+        ma11{\r
             "mabod",\r
+            "maesm",\r
             "malaa",\r
+            "mataf",\r
         }\r
-        ma16{\r
+        ma12{\r
             "maaou",\r
             "maoud",\r
         }\r
@@ -24508,1636 +24852,330 @@ supplementalData:table(nofallback){
             "ug431",\r
         }\r
     }\r
-    telephoneCodeData{\r
+    territoryContainment{\r
         001{\r
-            {\r
-                code{"388"}\r
-            }\r
-            {\r
-                code{"800"}\r
-            }\r
-            {\r
-                code{"808"}\r
-            }\r
-            {\r
-                code{"870"}\r
-            }\r
-            {\r
-                code{"871"}\r
-            }\r
-            {\r
-                code{"872"}\r
-            }\r
-            {\r
-                code{"873"}\r
-            }\r
-            {\r
-                code{"874"}\r
-            }\r
-            {\r
-                code{"878"}\r
-            }\r
-            {\r
-                code{"881"}\r
-            }\r
-            {\r
-                code{"882"}\r
-            }\r
-            {\r
-                code{"883"}\r
-            }\r
-            {\r
-                code{"888"}\r
-            }\r
-            {\r
-                code{"979"}\r
-            }\r
-            {\r
-                code{"991"}\r
-            }\r
+            "019",\r
+            "002",\r
+            "150",\r
+            "142",\r
+            "009",\r
         }\r
-        AC{\r
-            {\r
-                code{"247"}\r
-            }\r
+        002{\r
+            "015",\r
+            "011",\r
+            "017",\r
+            "014",\r
+            "018",\r
         }\r
-        AD{\r
-            {\r
-                code{"376"}\r
-            }\r
+        005{\r
+            "AR",\r
+            "BO",\r
+            "BR",\r
+            "BV",\r
+            "CL",\r
+            "CO",\r
+            "EC",\r
+            "FK",\r
+            "GF",\r
+            "GS",\r
+            "GY",\r
+            "PE",\r
+            "PY",\r
+            "SR",\r
+            "UY",\r
+            "VE",\r
         }\r
-        AE{\r
-            {\r
-                code{"971"}\r
-            }\r
+        009{\r
+            "053",\r
+            "054",\r
+            "057",\r
+            "061",\r
+            "QO",\r
         }\r
-        AF{\r
-            {\r
-                code{"93"}\r
-            }\r
+        011{\r
+            "BF",\r
+            "BJ",\r
+            "CI",\r
+            "CV",\r
+            "GH",\r
+            "GM",\r
+            "GN",\r
+            "GW",\r
+            "LR",\r
+            "ML",\r
+            "MR",\r
+            "NE",\r
+            "NG",\r
+            "SH",\r
+            "SL",\r
+            "SN",\r
+            "TG",\r
         }\r
-        AG{\r
-            {\r
-                code{"1"}\r
-            }\r
+        013{\r
+            "BZ",\r
+            "CR",\r
+            "GT",\r
+            "HN",\r
+            "MX",\r
+            "NI",\r
+            "PA",\r
+            "SV",\r
         }\r
-        AI{\r
-            {\r
-                code{"1"}\r
-            }\r
+        014{\r
+            "BI",\r
+            "DJ",\r
+            "ER",\r
+            "ET",\r
+            "IO",\r
+            "KE",\r
+            "KM",\r
+            "MG",\r
+            "MU",\r
+            "MW",\r
+            "MZ",\r
+            "RE",\r
+            "RW",\r
+            "SC",\r
+            "SO",\r
+            "SS",\r
+            "TF",\r
+            "TZ",\r
+            "UG",\r
+            "YT",\r
+            "ZM",\r
+            "ZW",\r
         }\r
-        AL{\r
-            {\r
-                code{"355"}\r
-            }\r
+        015{\r
+            "DZ",\r
+            "EG",\r
+            "EH",\r
+            "LY",\r
+            "MA",\r
+            "SD",\r
+            "TN",\r
+            "EA",\r
+            "IC",\r
         }\r
-        AM{\r
-            {\r
-                code{"374"}\r
-            }\r
+        017{\r
+            "AO",\r
+            "CD",\r
+            "CF",\r
+            "CG",\r
+            "CM",\r
+            "GA",\r
+            "GQ",\r
+            "ST",\r
+            "TD",\r
         }\r
-        AO{\r
-            {\r
-                code{"244"}\r
-            }\r
+        018{\r
+            "BW",\r
+            "LS",\r
+            "NA",\r
+            "SZ",\r
+            "ZA",\r
         }\r
-        AQ{\r
-            {\r
-                code{"672"}\r
-            }\r
+        019{\r
+            "021",\r
+            "013",\r
+            "029",\r
+            "005",\r
         }\r
-        AR{\r
-            {\r
-                code{"54"}\r
-            }\r
+        021{\r
+            "BM",\r
+            "CA",\r
+            "GL",\r
+            "PM",\r
+            "US",\r
         }\r
-        AS{\r
-            {\r
-                code{"1"}\r
-            }\r
+        029{\r
+            "AG",\r
+            "AI",\r
+            "AW",\r
+            "BB",\r
+            "BL",\r
+            "BQ",\r
+            "BS",\r
+            "CU",\r
+            "CW",\r
+            "DM",\r
+            "DO",\r
+            "GD",\r
+            "GP",\r
+            "HT",\r
+            "JM",\r
+            "KN",\r
+            "KY",\r
+            "LC",\r
+            "MF",\r
+            "MQ",\r
+            "MS",\r
+            "PR",\r
+            "SX",\r
+            "TC",\r
+            "TT",\r
+            "VC",\r
+            "VG",\r
+            "VI",\r
         }\r
-        AT{\r
-            {\r
-                code{"43"}\r
-            }\r
+        030{\r
+            "CN",\r
+            "HK",\r
+            "JP",\r
+            "KP",\r
+            "KR",\r
+            "MN",\r
+            "MO",\r
+            "TW",\r
         }\r
-        AU{\r
-            {\r
-                code{"61"}\r
-            }\r
+        034{\r
+            "AF",\r
+            "BD",\r
+            "BT",\r
+            "IN",\r
+            "IR",\r
+            "LK",\r
+            "MV",\r
+            "NP",\r
+            "PK",\r
         }\r
-        AW{\r
-            {\r
-                code{"297"}\r
-            }\r
+        035{\r
+            "BN",\r
+            "ID",\r
+            "KH",\r
+            "LA",\r
+            "MM",\r
+            "MY",\r
+            "PH",\r
+            "SG",\r
+            "TH",\r
+            "TL",\r
+            "VN",\r
         }\r
-        AX{\r
-            {\r
-                code{"358"}\r
-            }\r
+        039{\r
+            "AD",\r
+            "AL",\r
+            "BA",\r
+            "ES",\r
+            "GI",\r
+            "GR",\r
+            "HR",\r
+            "IT",\r
+            "ME",\r
+            "MK",\r
+            "MT",\r
+            "RS",\r
+            "PT",\r
+            "SI",\r
+            "SM",\r
+            "VA",\r
+            "XK",\r
         }\r
-        AZ{\r
-            {\r
-                code{"994"}\r
-            }\r
+        053{\r
+            "AU",\r
+            "CC",\r
+            "CX",\r
+            "HM",\r
+            "NF",\r
+            "NZ",\r
         }\r
-        BA{\r
-            {\r
-                code{"387"}\r
-            }\r
+        054{\r
+            "FJ",\r
+            "NC",\r
+            "PG",\r
+            "SB",\r
+            "VU",\r
         }\r
-        BB{\r
-            {\r
-                code{"1"}\r
-            }\r
+        057{\r
+            "FM",\r
+            "GU",\r
+            "KI",\r
+            "MH",\r
+            "MP",\r
+            "NR",\r
+            "PW",\r
+            "UM",\r
         }\r
-        BD{\r
-            {\r
-                code{"880"}\r
-            }\r
+        061{\r
+            "AS",\r
+            "CK",\r
+            "NU",\r
+            "PF",\r
+            "PN",\r
+            "TK",\r
+            "TO",\r
+            "TV",\r
+            "WF",\r
+            "WS",\r
         }\r
-        BE{\r
-            {\r
-                code{"32"}\r
-            }\r
+        142{\r
+            "145",\r
+            "143",\r
+            "030",\r
+            "034",\r
+            "035",\r
         }\r
-        BF{\r
-            {\r
-                code{"226"}\r
-            }\r
+        143{\r
+            "TM",\r
+            "TJ",\r
+            "KG",\r
+            "KZ",\r
+            "UZ",\r
         }\r
-        BG{\r
-            {\r
-                code{"359"}\r
-            }\r
+        145{\r
+            "AE",\r
+            "AM",\r
+            "AZ",\r
+            "BH",\r
+            "CY",\r
+            "GE",\r
+            "IL",\r
+            "IQ",\r
+            "JO",\r
+            "KW",\r
+            "LB",\r
+            "OM",\r
+            "PS",\r
+            "QA",\r
+            "SA",\r
+            "SY",\r
+            "TR",\r
+            "YE",\r
         }\r
-        BH{\r
-            {\r
-                code{"973"}\r
-            }\r
+        150{\r
+            "154",\r
+            "155",\r
+            "151",\r
+            "039",\r
         }\r
-        BI{\r
-            {\r
-                code{"257"}\r
-            }\r
+        151{\r
+            "BG",\r
+            "BY",\r
+            "CZ",\r
+            "HU",\r
+            "MD",\r
+            "PL",\r
+            "RO",\r
+            "RU",\r
+            "SK",\r
+            "UA",\r
         }\r
-        BJ{\r
-            {\r
-                code{"229"}\r
-            }\r
-        }\r
-        BL{\r
-            {\r
-                code{"590"}\r
-            }\r
-        }\r
-        BM{\r
-            {\r
-                code{"1"}\r
-            }\r
-        }\r
-        BN{\r
-            {\r
-                code{"673"}\r
-            }\r
-        }\r
-        BO{\r
-            {\r
-                code{"591"}\r
-            }\r
-        }\r
-        BQ{\r
-            {\r
-                code{"599"}\r
-            }\r
-        }\r
-        BR{\r
-            {\r
-                code{"55"}\r
-            }\r
-        }\r
-        BS{\r
-            {\r
-                code{"1"}\r
-            }\r
-        }\r
-        BT{\r
-            {\r
-                code{"975"}\r
-            }\r
-        }\r
-        BW{\r
-            {\r
-                code{"267"}\r
-            }\r
-        }\r
-        BY{\r
-            {\r
-                code{"375"}\r
-            }\r
-        }\r
-        BZ{\r
-            {\r
-                code{"501"}\r
-            }\r
-        }\r
-        CA{\r
-            {\r
-                code{"1"}\r
-            }\r
-        }\r
-        CC{\r
-            {\r
-                code{"61"}\r
-            }\r
-        }\r
-        CD{\r
-            {\r
-                code{"243"}\r
-            }\r
-        }\r
-        CF{\r
-            {\r
-                code{"236"}\r
-            }\r
-        }\r
-        CG{\r
-            {\r
-                code{"242"}\r
-            }\r
-        }\r
-        CH{\r
-            {\r
-                code{"41"}\r
-            }\r
-        }\r
-        CI{\r
-            {\r
-                code{"225"}\r
-            }\r
-        }\r
-        CK{\r
-            {\r
-                code{"682"}\r
-            }\r
-        }\r
-        CL{\r
-            {\r
-                code{"56"}\r
-            }\r
-        }\r
-        CM{\r
-            {\r
-                code{"237"}\r
-            }\r
-        }\r
-        CN{\r
-            {\r
-                code{"86"}\r
-            }\r
-        }\r
-        CO{\r
-            {\r
-                code{"57"}\r
-            }\r
-        }\r
-        CR{\r
-            {\r
-                code{"506"}\r
-            }\r
-        }\r
-        CU{\r
-            {\r
-                code{"53"}\r
-            }\r
-        }\r
-        CV{\r
-            {\r
-                code{"238"}\r
-            }\r
-        }\r
-        CW{\r
-            {\r
-                code{"599"}\r
-            }\r
-        }\r
-        CX{\r
-            {\r
-                code{"61"}\r
-            }\r
-        }\r
-        CY{\r
-            {\r
-                code{"357"}\r
-            }\r
-        }\r
-        CZ{\r
-            {\r
-                code{"420"}\r
-            }\r
-        }\r
-        DE{\r
-            {\r
-                code{"49"}\r
-            }\r
-        }\r
-        DJ{\r
-            {\r
-                code{"253"}\r
-            }\r
-        }\r
-        DK{\r
-            {\r
-                code{"45"}\r
-            }\r
-        }\r
-        DM{\r
-            {\r
-                code{"1"}\r
-            }\r
-        }\r
-        DO{\r
-            {\r
-                code{"1"}\r
-            }\r
-        }\r
-        DZ{\r
-            {\r
-                code{"213"}\r
-            }\r
-        }\r
-        EC{\r
-            {\r
-                code{"593"}\r
-            }\r
-        }\r
-        EE{\r
-            {\r
-                code{"372"}\r
-            }\r
-        }\r
-        EG{\r
-            {\r
-                code{"20"}\r
-            }\r
-        }\r
-        EH{\r
-            {\r
-                code{"212"}\r
-            }\r
-        }\r
-        ER{\r
-            {\r
-                code{"291"}\r
-            }\r
-        }\r
-        ES{\r
-            {\r
-                code{"34"}\r
-            }\r
-        }\r
-        ET{\r
-            {\r
-                code{"251"}\r
-            }\r
-        }\r
-        FI{\r
-            {\r
-                code{"358"}\r
-            }\r
-        }\r
-        FJ{\r
-            {\r
-                code{"679"}\r
-            }\r
-        }\r
-        FK{\r
-            {\r
-                code{"500"}\r
-            }\r
-        }\r
-        FM{\r
-            {\r
-                code{"691"}\r
-            }\r
-        }\r
-        FO{\r
-            {\r
-                code{"298"}\r
-            }\r
-        }\r
-        FR{\r
-            {\r
-                code{"33"}\r
-            }\r
-        }\r
-        GA{\r
-            {\r
-                code{"241"}\r
-            }\r
-        }\r
-        GB{\r
-            {\r
-                code{"44"}\r
-            }\r
-        }\r
-        GD{\r
-            {\r
-                code{"1"}\r
-            }\r
-        }\r
-        GE{\r
-            {\r
-                code{"995"}\r
-            }\r
-        }\r
-        GF{\r
-            {\r
-                code{"594"}\r
-            }\r
-        }\r
-        GG{\r
-            {\r
-                code{"44"}\r
-            }\r
-        }\r
-        GH{\r
-            {\r
-                code{"233"}\r
-            }\r
-        }\r
-        GI{\r
-            {\r
-                code{"350"}\r
-            }\r
-        }\r
-        GL{\r
-            {\r
-                code{"299"}\r
-            }\r
-        }\r
-        GM{\r
-            {\r
-                code{"220"}\r
-            }\r
-        }\r
-        GN{\r
-            {\r
-                code{"224"}\r
-            }\r
-        }\r
-        GP{\r
-            {\r
-                code{"590"}\r
-            }\r
-        }\r
-        GQ{\r
-            {\r
-                code{"240"}\r
-            }\r
-        }\r
-        GR{\r
-            {\r
-                code{"30"}\r
-            }\r
-        }\r
-        GS{\r
-            {\r
-                code{"500"}\r
-            }\r
-        }\r
-        GT{\r
-            {\r
-                code{"502"}\r
-            }\r
-        }\r
-        GU{\r
-            {\r
-                code{"1"}\r
-            }\r
-        }\r
-        GW{\r
-            {\r
-                code{"245"}\r
-            }\r
-        }\r
-        GY{\r
-            {\r
-                code{"592"}\r
-            }\r
-        }\r
-        HK{\r
-            {\r
-                code{"852"}\r
-            }\r
-        }\r
-        HN{\r
-            {\r
-                code{"504"}\r
-            }\r
-        }\r
-        HR{\r
-            {\r
-                code{"385"}\r
-            }\r
-        }\r
-        HT{\r
-            {\r
-                code{"509"}\r
-            }\r
-        }\r
-        HU{\r
-            {\r
-                code{"36"}\r
-            }\r
-        }\r
-        ID{\r
-            {\r
-                code{"62"}\r
-            }\r
-        }\r
-        IE{\r
-            {\r
-                code{"353"}\r
-            }\r
-        }\r
-        IL{\r
-            {\r
-                code{"972"}\r
-            }\r
-        }\r
-        IM{\r
-            {\r
-                code{"44"}\r
-            }\r
-        }\r
-        IN{\r
-            {\r
-                code{"91"}\r
-            }\r
-        }\r
-        IO{\r
-            {\r
-                code{"246"}\r
-            }\r
-        }\r
-        IQ{\r
-            {\r
-                code{"964"}\r
-            }\r
-        }\r
-        IR{\r
-            {\r
-                code{"98"}\r
-            }\r
-        }\r
-        IS{\r
-            {\r
-                code{"354"}\r
-            }\r
-        }\r
-        IT{\r
-            {\r
-                code{"39"}\r
-            }\r
-        }\r
-        JE{\r
-            {\r
-                code{"44"}\r
-            }\r
-        }\r
-        JM{\r
-            {\r
-                code{"1"}\r
-            }\r
-        }\r
-        JO{\r
-            {\r
-                code{"962"}\r
-            }\r
-        }\r
-        JP{\r
-            {\r
-                code{"81"}\r
-            }\r
-        }\r
-        KE{\r
-            {\r
-                code{"254"}\r
-            }\r
-        }\r
-        KG{\r
-            {\r
-                code{"996"}\r
-            }\r
-        }\r
-        KH{\r
-            {\r
-                code{"855"}\r
-            }\r
-        }\r
-        KI{\r
-            {\r
-                code{"686"}\r
-            }\r
-        }\r
-        KM{\r
-            {\r
-                code{"269"}\r
-            }\r
-        }\r
-        KN{\r
-            {\r
-                code{"1"}\r
-            }\r
-        }\r
-        KP{\r
-            {\r
-                code{"850"}\r
-            }\r
-        }\r
-        KR{\r
-            {\r
-                code{"82"}\r
-            }\r
-        }\r
-        KW{\r
-            {\r
-                code{"965"}\r
-            }\r
-        }\r
-        KY{\r
-            {\r
-                code{"1"}\r
-            }\r
-        }\r
-        KZ{\r
-            {\r
-                code{"7"}\r
-            }\r
-        }\r
-        LA{\r
-            {\r
-                code{"856"}\r
-            }\r
-        }\r
-        LB{\r
-            {\r
-                code{"961"}\r
-            }\r
-        }\r
-        LC{\r
-            {\r
-                code{"1"}\r
-            }\r
-        }\r
-        LI{\r
-            {\r
-                code{"423"}\r
-            }\r
-        }\r
-        LK{\r
-            {\r
-                code{"94"}\r
-            }\r
-        }\r
-        LR{\r
-            {\r
-                code{"231"}\r
-            }\r
-        }\r
-        LS{\r
-            {\r
-                code{"266"}\r
-            }\r
-        }\r
-        LT{\r
-            {\r
-                code{"370"}\r
-            }\r
-        }\r
-        LU{\r
-            {\r
-                code{"352"}\r
-            }\r
-        }\r
-        LV{\r
-            {\r
-                code{"371"}\r
-            }\r
-        }\r
-        LY{\r
-            {\r
-                code{"218"}\r
-            }\r
-        }\r
-        MA{\r
-            {\r
-                code{"212"}\r
-            }\r
-        }\r
-        MC{\r
-            {\r
-                code{"377"}\r
-            }\r
-        }\r
-        MD{\r
-            {\r
-                code{"373"}\r
-            }\r
-        }\r
-        ME{\r
-            {\r
-                code{"382"}\r
-            }\r
-        }\r
-        MF{\r
-            {\r
-                code{"590"}\r
-            }\r
-        }\r
-        MG{\r
-            {\r
-                code{"261"}\r
-            }\r
-        }\r
-        MH{\r
-            {\r
-                code{"692"}\r
-            }\r
-        }\r
-        MK{\r
-            {\r
-                code{"389"}\r
-            }\r
-        }\r
-        ML{\r
-            {\r
-                code{"223"}\r
-            }\r
-        }\r
-        MM{\r
-            {\r
-                code{"95"}\r
-            }\r
-        }\r
-        MN{\r
-            {\r
-                code{"976"}\r
-            }\r
-        }\r
-        MO{\r
-            {\r
-                code{"853"}\r
-            }\r
-        }\r
-        MP{\r
-            {\r
-                code{"1"}\r
-            }\r
-        }\r
-        MQ{\r
-            {\r
-                code{"596"}\r
-            }\r
-        }\r
-        MR{\r
-            {\r
-                code{"222"}\r
-            }\r
-        }\r
-        MS{\r
-            {\r
-                code{"1"}\r
-            }\r
-        }\r
-        MT{\r
-            {\r
-                code{"356"}\r
-            }\r
-        }\r
-        MU{\r
-            {\r
-                code{"230"}\r
-            }\r
-        }\r
-        MV{\r
-            {\r
-                code{"960"}\r
-            }\r
-        }\r
-        MW{\r
-            {\r
-                code{"265"}\r
-            }\r
-        }\r
-        MX{\r
-            {\r
-                code{"52"}\r
-            }\r
-        }\r
-        MY{\r
-            {\r
-                code{"60"}\r
-            }\r
-        }\r
-        MZ{\r
-            {\r
-                code{"258"}\r
-            }\r
-        }\r
-        NA{\r
-            {\r
-                code{"264"}\r
-            }\r
-        }\r
-        NC{\r
-            {\r
-                code{"687"}\r
-            }\r
-        }\r
-        NE{\r
-            {\r
-                code{"227"}\r
-            }\r
-        }\r
-        NF{\r
-            {\r
-                code{"672"}\r
-            }\r
-        }\r
-        NG{\r
-            {\r
-                code{"234"}\r
-            }\r
-        }\r
-        NI{\r
-            {\r
-                code{"505"}\r
-            }\r
-        }\r
-        NL{\r
-            {\r
-                code{"31"}\r
-            }\r
-        }\r
-        NO{\r
-            {\r
-                code{"47"}\r
-            }\r
-        }\r
-        NP{\r
-            {\r
-                code{"977"}\r
-            }\r
-        }\r
-        NR{\r
-            {\r
-                code{"674"}\r
-            }\r
-        }\r
-        NU{\r
-            {\r
-                code{"683"}\r
-            }\r
-        }\r
-        NZ{\r
-            {\r
-                code{"64"}\r
-            }\r
-        }\r
-        OM{\r
-            {\r
-                code{"968"}\r
-            }\r
-        }\r
-        PA{\r
-            {\r
-                code{"507"}\r
-            }\r
-        }\r
-        PE{\r
-            {\r
-                code{"51"}\r
-            }\r
-        }\r
-        PF{\r
-            {\r
-                code{"689"}\r
-            }\r
-        }\r
-        PG{\r
-            {\r
-                code{"675"}\r
-            }\r
-        }\r
-        PH{\r
-            {\r
-                code{"63"}\r
-            }\r
-        }\r
-        PK{\r
-            {\r
-                code{"92"}\r
-            }\r
-        }\r
-        PL{\r
-            {\r
-                code{"48"}\r
-            }\r
-        }\r
-        PM{\r
-            {\r
-                code{"508"}\r
-            }\r
-        }\r
-        PN{\r
-            {\r
-                code{"870"}\r
-            }\r
-        }\r
-        PR{\r
-            {\r
-                code{"1"}\r
-            }\r
-        }\r
-        PS{\r
-            {\r
-                code%limitedAvailability{"970"}\r
-            }\r
-            {\r
-                code{"972"}\r
-            }\r
-        }\r
-        PT{\r
-            {\r
-                code{"351"}\r
-            }\r
-        }\r
-        PW{\r
-            {\r
-                code{"680"}\r
-            }\r
-        }\r
-        PY{\r
-            {\r
-                code{"595"}\r
-            }\r
-        }\r
-        QA{\r
-            {\r
-                code{"974"}\r
-            }\r
-        }\r
-        RE{\r
-            {\r
-                code{"262"}\r
-            }\r
-        }\r
-        RO{\r
-            {\r
-                code{"40"}\r
-            }\r
-        }\r
-        RS{\r
-            {\r
-                code{"381"}\r
-            }\r
-        }\r
-        RU{\r
-            {\r
-                code{"7"}\r
-            }\r
-        }\r
-        RW{\r
-            {\r
-                code{"250"}\r
-            }\r
-        }\r
-        SA{\r
-            {\r
-                code{"966"}\r
-            }\r
-        }\r
-        SB{\r
-            {\r
-                code{"677"}\r
-            }\r
-        }\r
-        SC{\r
-            {\r
-                code{"248"}\r
-            }\r
-        }\r
-        SD{\r
-            {\r
-                code{"249"}\r
-            }\r
-        }\r
-        SE{\r
-            {\r
-                code{"46"}\r
-            }\r
-        }\r
-        SG{\r
-            {\r
-                code{"65"}\r
-            }\r
-        }\r
-        SH{\r
-            {\r
-                code{"290"}\r
-            }\r
-        }\r
-        SI{\r
-            {\r
-                code{"386"}\r
-            }\r
-        }\r
-        SJ{\r
-            {\r
-                code{"47"}\r
-            }\r
-        }\r
-        SK{\r
-            {\r
-                code{"421"}\r
-            }\r
-        }\r
-        SL{\r
-            {\r
-                code{"232"}\r
-            }\r
-        }\r
-        SM{\r
-            {\r
-                code{"378"}\r
-            }\r
-        }\r
-        SN{\r
-            {\r
-                code{"221"}\r
-            }\r
-        }\r
-        SO{\r
-            {\r
-                code{"252"}\r
-            }\r
-        }\r
-        SR{\r
-            {\r
-                code{"597"}\r
-            }\r
-        }\r
-        SS{\r
-            {\r
-                code{"211"}\r
-            }\r
-        }\r
-        ST{\r
-            {\r
-                code{"239"}\r
-            }\r
-        }\r
-        SV{\r
-            {\r
-                code{"503"}\r
-            }\r
-        }\r
-        SX{\r
-            {\r
-                code{"1"}\r
-            }\r
-        }\r
-        SY{\r
-            {\r
-                code{"963"}\r
-            }\r
-        }\r
-        SZ{\r
-            {\r
-                code{"268"}\r
-            }\r
-        }\r
-        TC{\r
-            {\r
-                code{"1"}\r
-            }\r
-        }\r
-        TD{\r
-            {\r
-                code{"235"}\r
-            }\r
-        }\r
-        TF{\r
-            {\r
-                code{"262"}\r
-            }\r
-        }\r
-        TG{\r
-            {\r
-                code{"228"}\r
-            }\r
-        }\r
-        TH{\r
-            {\r
-                code{"66"}\r
-            }\r
-        }\r
-        TJ{\r
-            {\r
-                code{"992"}\r
-            }\r
-        }\r
-        TK{\r
-            {\r
-                code{"690"}\r
-            }\r
-        }\r
-        TL{\r
-            {\r
-                code{"670"}\r
-            }\r
-        }\r
-        TM{\r
-            {\r
-                code{"993"}\r
-            }\r
-        }\r
-        TN{\r
-            {\r
-                code{"216"}\r
-            }\r
-        }\r
-        TO{\r
-            {\r
-                code{"676"}\r
-            }\r
-        }\r
-        TR{\r
-            {\r
-                code{"90"}\r
-            }\r
-        }\r
-        TT{\r
-            {\r
-                code{"1"}\r
-            }\r
-        }\r
-        TV{\r
-            {\r
-                code{"688"}\r
-            }\r
-        }\r
-        TW{\r
-            {\r
-                code{"886"}\r
-            }\r
-        }\r
-        TZ{\r
-            {\r
-                code{"255"}\r
-            }\r
-        }\r
-        UA{\r
-            {\r
-                code{"380"}\r
-            }\r
-        }\r
-        UG{\r
-            {\r
-                code{"256"}\r
-            }\r
-        }\r
-        UM{\r
-            {\r
-                code{"1"}\r
-            }\r
-        }\r
-        US{\r
-            {\r
-                code{"1"}\r
-            }\r
-        }\r
-        UY{\r
-            {\r
-                code{"598"}\r
-            }\r
-        }\r
-        UZ{\r
-            {\r
-                code{"998"}\r
-            }\r
-        }\r
-        VA{\r
-            {\r
-                code{"39"}\r
-            }\r
-        }\r
-        VC{\r
-            {\r
-                code{"1"}\r
-            }\r
-        }\r
-        VE{\r
-            {\r
-                code{"58"}\r
-            }\r
-        }\r
-        VG{\r
-            {\r
-                code{"1"}\r
-            }\r
-        }\r
-        VI{\r
-            {\r
-                code{"1"}\r
-            }\r
-        }\r
-        VN{\r
-            {\r
-                code{"84"}\r
-            }\r
-        }\r
-        VU{\r
-            {\r
-                code{"678"}\r
-            }\r
-        }\r
-        WF{\r
-            {\r
-                code{"681"}\r
-            }\r
-        }\r
-        WS{\r
-            {\r
-                code{"685"}\r
-            }\r
-        }\r
-        XK{\r
-            {\r
-                code{"377"}\r
-            }\r
-            {\r
-                code{"381"}\r
-            }\r
-            {\r
-                code{"383"}\r
-            }\r
-            {\r
-                code{"386"}\r
-            }\r
-        }\r
-        YE{\r
-            {\r
-                code{"967"}\r
-            }\r
-        }\r
-        YT{\r
-            {\r
-                code{"262"}\r
-            }\r
-        }\r
-        ZA{\r
-            {\r
-                code{"27"}\r
-            }\r
-        }\r
-        ZM{\r
-            {\r
-                code{"260"}\r
-            }\r
-        }\r
-        ZW{\r
-            {\r
-                code{"263"}\r
-            }\r
-        }\r
-    }\r
-    territoryContainment{\r
-        001{\r
-            "019",\r
-            "002",\r
-            "150",\r
-            "142",\r
-            "009",\r
-        }\r
-        002{\r
-            "015",\r
-            "011",\r
-            "017",\r
-            "014",\r
-            "018",\r
-        }\r
-        005{\r
-            "AR",\r
-            "BO",\r
-            "BR",\r
-            "BV",\r
-            "CL",\r
-            "CO",\r
-            "EC",\r
-            "FK",\r
-            "GF",\r
-            "GS",\r
-            "GY",\r
-            "PE",\r
-            "PY",\r
-            "SR",\r
-            "UY",\r
-            "VE",\r
-        }\r
-        009{\r
-            "053",\r
-            "054",\r
-            "057",\r
-            "061",\r
-            "QO",\r
-        }\r
-        011{\r
-            "BF",\r
-            "BJ",\r
-            "CI",\r
-            "CV",\r
-            "GH",\r
-            "GM",\r
-            "GN",\r
-            "GW",\r
-            "LR",\r
-            "ML",\r
-            "MR",\r
-            "NE",\r
-            "NG",\r
-            "SH",\r
-            "SL",\r
-            "SN",\r
-            "TG",\r
-        }\r
-        013{\r
-            "BZ",\r
-            "CR",\r
-            "GT",\r
-            "HN",\r
-            "MX",\r
-            "NI",\r
-            "PA",\r
-            "SV",\r
-        }\r
-        014{\r
-            "BI",\r
-            "DJ",\r
-            "ER",\r
-            "ET",\r
-            "IO",\r
-            "KE",\r
-            "KM",\r
-            "MG",\r
-            "MU",\r
-            "MW",\r
-            "MZ",\r
-            "RE",\r
-            "RW",\r
-            "SC",\r
-            "SO",\r
-            "SS",\r
-            "TZ",\r
-            "UG",\r
-            "YT",\r
-            "ZM",\r
-            "ZW",\r
-        }\r
-        015{\r
-            "DZ",\r
-            "EG",\r
-            "EH",\r
-            "LY",\r
-            "MA",\r
-            "SD",\r
-            "TN",\r
-            "EA",\r
-            "IC",\r
-        }\r
-        017{\r
-            "AO",\r
-            "CD",\r
-            "CF",\r
-            "CG",\r
-            "CM",\r
-            "GA",\r
-            "GQ",\r
-            "ST",\r
-            "TD",\r
-        }\r
-        018{\r
-            "BW",\r
-            "LS",\r
-            "NA",\r
-            "SZ",\r
-            "ZA",\r
-        }\r
-        019{\r
-            "021",\r
-            "013",\r
-            "029",\r
-            "005",\r
-        }\r
-        021{\r
-            "BM",\r
-            "CA",\r
-            "GL",\r
-            "PM",\r
-            "US",\r
-        }\r
-        029{\r
-            "AG",\r
-            "AI",\r
-            "AW",\r
-            "BB",\r
-            "BL",\r
-            "BQ",\r
-            "BS",\r
-            "CU",\r
-            "CW",\r
-            "DM",\r
-            "DO",\r
-            "GD",\r
-            "GP",\r
-            "HT",\r
-            "JM",\r
-            "KN",\r
-            "KY",\r
-            "LC",\r
-            "MF",\r
-            "MQ",\r
-            "MS",\r
-            "PR",\r
-            "SX",\r
-            "TC",\r
-            "TT",\r
-            "VC",\r
-            "VG",\r
-            "VI",\r
-        }\r
-        030{\r
-            "CN",\r
-            "HK",\r
-            "JP",\r
-            "KP",\r
-            "KR",\r
-            "MN",\r
-            "MO",\r
-            "TW",\r
-        }\r
-        034{\r
-            "AF",\r
-            "BD",\r
-            "BT",\r
-            "IN",\r
-            "IR",\r
-            "LK",\r
-            "MV",\r
-            "NP",\r
-            "PK",\r
-        }\r
-        035{\r
-            "BN",\r
-            "ID",\r
-            "KH",\r
-            "LA",\r
-            "MM",\r
-            "MY",\r
-            "PH",\r
-            "SG",\r
-            "TH",\r
-            "TL",\r
-            "VN",\r
-        }\r
-        039{\r
-            "AD",\r
-            "AL",\r
-            "BA",\r
-            "ES",\r
-            "GI",\r
-            "GR",\r
-            "HR",\r
-            "IT",\r
-            "ME",\r
-            "MK",\r
-            "MT",\r
-            "RS",\r
-            "PT",\r
-            "SI",\r
-            "SM",\r
-            "VA",\r
-            "XK",\r
-        }\r
-        053{\r
-            "AU",\r
-            "CC",\r
-            "CX",\r
-            "HM",\r
-            "NF",\r
-            "NZ",\r
-        }\r
-        054{\r
-            "FJ",\r
-            "NC",\r
-            "PG",\r
-            "SB",\r
-            "VU",\r
-        }\r
-        057{\r
-            "FM",\r
-            "GU",\r
-            "KI",\r
-            "MH",\r
-            "MP",\r
-            "NR",\r
-            "PW",\r
-            "UM",\r
-        }\r
-        061{\r
-            "AS",\r
-            "CK",\r
-            "NU",\r
-            "PF",\r
-            "PN",\r
-            "TK",\r
-            "TO",\r
-            "TV",\r
-            "WF",\r
-            "WS",\r
-        }\r
-        142{\r
-            "145",\r
-            "143",\r
-            "030",\r
-            "034",\r
-            "035",\r
-        }\r
-        143{\r
-            "TM",\r
-            "TJ",\r
-            "KG",\r
-            "KZ",\r
-            "UZ",\r
-        }\r
-        145{\r
-            "AE",\r
-            "AM",\r
-            "AZ",\r
-            "BH",\r
-            "CY",\r
-            "GE",\r
-            "IL",\r
-            "IQ",\r
-            "JO",\r
-            "KW",\r
-            "LB",\r
-            "OM",\r
-            "PS",\r
-            "QA",\r
-            "SA",\r
-            "SY",\r
-            "TF",\r
-            "TR",\r
-            "YE",\r
-        }\r
-        150{\r
-            "154",\r
-            "155",\r
-            "151",\r
-            "039",\r
-        }\r
-        151{\r
-            "BG",\r
-            "BY",\r
-            "CZ",\r
-            "HU",\r
-            "MD",\r
-            "PL",\r
-            "RO",\r
-            "RU",\r
-            "SK",\r
-            "UA",\r
-        }\r
-        154{\r
-            "GG",\r
-            "IM",\r
-            "JE",\r
-            "AX",\r
-            "DK",\r
-            "EE",\r
-            "FI",\r
-            "FO",\r
-            "GB",\r
-            "IE",\r
-            "IS",\r
-            "LT",\r
-            "LV",\r
-            "NO",\r
-            "SE",\r
-            "SJ",\r
+        154{\r
+            "GG",\r
+            "IM",\r
+            "JE",\r
+            "AX",\r
+            "DK",\r
+            "EE",\r
+            "FI",\r
+            "FO",\r
+            "GB",\r
+            "IE",\r
+            "IS",\r
+            "LT",\r
+            "LV",\r
+            "NO",\r
+            "SE",\r
+            "SJ",\r
         }\r
         155{\r
             "AT",\r
@@ -26192,12 +25230,268 @@ supplementalData:table(nofallback){
             }\r
         }\r
         grouping{\r
-            "003",\r
-            "202",\r
-            "419",\r
-            "EU",\r
-            "EZ",\r
-            "UN",\r
+            003{\r
+                "021",\r
+                "013",\r
+                "029",\r
+            }\r
+            202{\r
+                "011",\r
+                "017",\r
+                "014",\r
+                "018",\r
+            }\r
+            419{\r
+                "013",\r
+                "029",\r
+                "005",\r
+            }\r
+            EU{\r
+                "AT",\r
+                "BE",\r
+                "CY",\r
+                "CZ",\r
+                "DE",\r
+                "DK",\r
+                "EE",\r
+                "ES",\r
+                "FI",\r
+                "FR",\r
+                "GB",\r
+                "GR",\r
+                "HR",\r
+                "HU",\r
+                "IE",\r
+                "IT",\r
+                "LT",\r
+                "LU",\r
+                "LV",\r
+                "MT",\r
+                "NL",\r
+                "PL",\r
+                "PT",\r
+                "SE",\r
+                "SI",\r
+                "SK",\r
+                "BG",\r
+                "RO",\r
+            }\r
+            EZ{\r
+                "AT",\r
+                "BE",\r
+                "CY",\r
+                "DE",\r
+                "EE",\r
+                "ES",\r
+                "FI",\r
+                "FR",\r
+                "GR",\r
+                "IE",\r
+                "IT",\r
+                "LT",\r
+                "LU",\r
+                "LV",\r
+                "MT",\r
+                "NL",\r
+                "PT",\r
+                "SI",\r
+                "SK",\r
+            }\r
+            UN{\r
+                "AD",\r
+                "AE",\r
+                "AF",\r
+                "AG",\r
+                "AL",\r
+                "AM",\r
+                "AO",\r
+                "AR",\r
+                "AT",\r
+                "AU",\r
+                "AZ",\r
+                "BA",\r
+                "BB",\r
+                "BD",\r
+                "BE",\r
+                "BF",\r
+                "BG",\r
+                "BH",\r
+                "BI",\r
+                "BJ",\r
+                "BN",\r
+                "BO",\r
+                "BR",\r
+                "BS",\r
+                "BT",\r
+                "BW",\r
+                "BY",\r
+                "BZ",\r
+                "CA",\r
+                "CD",\r
+                "CF",\r
+                "CG",\r
+                "CH",\r
+                "CI",\r
+                "CL",\r
+                "CM",\r
+                "CN",\r
+                "CO",\r
+                "CR",\r
+                "CU",\r
+                "CV",\r
+                "CY",\r
+                "CZ",\r
+                "DE",\r
+                "DJ",\r
+                "DK",\r
+                "DM",\r
+                "DO",\r
+                "DZ",\r
+                "EC",\r
+                "EE",\r
+                "EG",\r
+                "ER",\r
+                "ES",\r
+                "ET",\r
+                "FI",\r
+                "FJ",\r
+                "FM",\r
+                "FR",\r
+                "GA",\r
+                "GB",\r
+                "GD",\r
+                "GE",\r
+                "GH",\r
+                "GM",\r
+                "GN",\r
+                "GQ",\r
+                "GR",\r
+                "GT",\r
+                "GW",\r
+                "GY",\r
+                "HN",\r
+                "HR",\r
+                "HT",\r
+                "HU",\r
+                "ID",\r
+                "IE",\r
+                "IL",\r
+                "IN",\r
+                "IQ",\r
+                "IR",\r
+                "IS",\r
+                "IT",\r
+                "JM",\r
+                "JO",\r
+                "JP",\r
+                "KE",\r
+                "KG",\r
+                "KH",\r
+                "KI",\r
+                "KM",\r
+                "KN",\r
+                "KP",\r
+                "KR",\r
+                "KW",\r
+                "KZ",\r
+                "LA",\r
+                "LB",\r
+                "LC",\r
+                "LI",\r
+                "LK",\r
+                "LR",\r
+                "LS",\r
+                "LT",\r
+                "LU",\r
+                "LV",\r
+                "LY",\r
+                "MA",\r
+                "MC",\r
+                "MD",\r
+                "ME",\r
+                "MG",\r
+                "MH",\r
+                "MK",\r
+                "ML",\r
+                "MM",\r
+                "MN",\r
+                "MR",\r
+                "MT",\r
+                "MU",\r
+                "MV",\r
+                "MX",\r
+                "MW",\r
+                "MY",\r
+                "MZ",\r
+                "NA",\r
+                "NE",\r
+                "NG",\r
+                "NI",\r
+                "NL",\r
+                "NO",\r
+                "NR",\r
+                "NP",\r
+                "NZ",\r
+                "OM",\r
+                "PA",\r
+                "PE",\r
+                "PG",\r
+                "PH",\r
+                "PK",\r
+                "PL",\r
+                "PT",\r
+                "PW",\r
+                "PY",\r
+                "QA",\r
+                "RO",\r
+                "RS",\r
+                "RU",\r
+                "RW",\r
+                "SA",\r
+                "SB",\r
+                "SC",\r
+                "SD",\r
+                "SE",\r
+                "SG",\r
+                "SI",\r
+                "SK",\r
+                "SL",\r
+                "SM",\r
+                "SN",\r
+                "SO",\r
+                "SR",\r
+                "SS",\r
+                "ST",\r
+                "SV",\r
+                "SY",\r
+                "SZ",\r
+                "TD",\r
+                "TG",\r
+                "TH",\r
+                "TJ",\r
+                "TL",\r
+                "TM",\r
+                "TN",\r
+                "TO",\r
+                "TR",\r
+                "TT",\r
+                "TV",\r
+                "TZ",\r
+                "UA",\r
+                "UG",\r
+                "US",\r
+                "UY",\r
+                "UZ",\r
+                "VC",\r
+                "VE",\r
+                "VN",\r
+                "VU",\r
+                "WS",\r
+                "YE",\r
+                "ZA",\r
+                "ZM",\r
+                "ZW",\r
+            }\r
         }\r
     }\r
     territoryInfo{\r
@@ -26206,7 +25500,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{49990000}\r
             }\r
             territoryF:intvector{\r
-                57418000,\r
+                57422900,\r
                 49990000,\r
                 52940000,\r
             }\r
@@ -26246,7 +25540,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{48290000}\r
             }\r
             territoryF:intvector{\r
-                61691900,\r
+                61686800,\r
                 49900000,\r
                 56607248,\r
             }\r
@@ -26278,7 +25572,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{49430000}\r
             }\r
             territoryF:intvector{\r
-                60695100,\r
+                60695500,\r
                 49281000,\r
                 57341248,\r
             }\r
@@ -26303,7 +25597,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{48170000}\r
             }\r
             territoryF:intvector{\r
-                59239000,\r
+                59239300,\r
                 49990000,\r
                 54947310,\r
             }\r
@@ -26331,7 +25625,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{50100000}\r
             }\r
             territoryF:intvector{\r
-                60358700,\r
+                60359700,\r
                 49968000,\r
                 56304799,\r
             }\r
@@ -26348,7 +25642,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{48330000}\r
             }\r
             territoryF:intvector{\r
-                60272100,\r
+                60282800,\r
                 49996000,\r
                 56304519,\r
             }\r
@@ -26366,7 +25660,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{49670000}\r
             }\r
             territoryF:intvector{\r
-                61192000,\r
+                61190300,\r
                 49704000,\r
                 57293103,\r
             }\r
@@ -26376,7 +25670,7 @@ supplementalData:table(nofallback){
         }\r
         AQ{\r
             territoryF:intvector{\r
-                57177800,\r
+                57178100,\r
                 49990000,\r
                 52300000,\r
             }\r
@@ -26386,7 +25680,7 @@ supplementalData:table(nofallback){
         }\r
         AR{\r
             cy{\r
-                populationShareF:int{46660000}\r
+                populationShareF:int{46650000}\r
             }\r
             en{\r
                 populationShareF:int{48700000}\r
@@ -26399,7 +25693,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{46470000}\r
             }\r
             territoryF:intvector{\r
-                61911500,\r
+                61920200,\r
                 49979000,\r
                 57442933,\r
             }\r
@@ -26414,7 +25708,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{49990000}\r
             }\r
             territoryF:intvector{\r
-                58711000,\r
+                58658000,\r
                 49970000,\r
                 54515040,\r
             }\r
@@ -26449,7 +25743,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{47370000}\r
             }\r
             territoryF:intvector{\r
-                61434100,\r
+                61439600,\r
                 49980000,\r
                 56875441,\r
             }\r
@@ -26463,7 +25757,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{48190000}\r
             }\r
             territoryF:intvector{\r
-                62123500,\r
+                62124600,\r
                 49990000,\r
                 57232324,\r
             }\r
@@ -26516,7 +25810,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{47240000}\r
             }\r
             territoryF:intvector{\r
-                61166800,\r
+                61171800,\r
                 49998000,\r
                 56996140,\r
             }\r
@@ -26557,7 +25851,7 @@ supplementalData:table(nofallback){
                 writingShareF:int{48500000}\r
             }\r
             territoryF:intvector{\r
-                60438500,\r
+                60446200,\r
                 49980000,\r
                 56385618,\r
             }\r
@@ -26568,7 +25862,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{50100000}\r
             }\r
             territoryF:intvector{\r
-                59491900,\r
+                59524400,\r
                 49997000,\r
                 55292336,\r
             }\r
@@ -26605,7 +25899,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{48500000}\r
             }\r
             territoryF:intvector{\r
-                61686500,\r
+                61687100,\r
                 49577000,\r
                 58157827,\r
             }\r
@@ -26627,7 +25921,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{49550000}\r
             }\r
             territoryF:intvector{\r
-                61526400,\r
+                61528500,\r
                 49990000,\r
                 57114913,\r
             }\r
@@ -26643,6 +25937,12 @@ supplementalData:table(nofallback){
             dyu{\r
                 populationShareF:int{49320000}\r
             }\r
+            ff{\r
+                populationShareF:int{0}\r
+            }\r
+            ff_Adlm{\r
+                populationShareF:int{0}\r
+            }\r
             fr{\r
                 officialStatus{"official"}\r
                 populationShareF:int{49220000}\r
@@ -26651,7 +25951,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{49400000}\r
             }\r
             territoryF:intvector{\r
-                60356800,\r
+                60357800,\r
                 49287000,\r
                 57201075,\r
             }\r
@@ -26671,7 +25971,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{49230000}\r
             }\r
             territoryF:intvector{\r
-                61152400,\r
+                61153100,\r
                 49984000,\r
                 56710151,\r
             }\r
@@ -26688,7 +25988,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{48330000}\r
             }\r
             territoryF:intvector{\r
-                60697700,\r
+                60704400,\r
                 49946000,\r
                 56141094,\r
             }\r
@@ -26710,7 +26010,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{46550000}\r
             }\r
             territoryF:intvector{\r
-                59798500,\r
+                59799000,\r
                 49672000,\r
                 57114668,\r
             }\r
@@ -26724,7 +26024,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{49350000}\r
             }\r
             territoryF:intvector{\r
-                60252900,\r
+                60253300,\r
                 49424000,\r
                 57110388,\r
             }\r
@@ -26749,7 +26049,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{49920000}\r
             }\r
             territoryF:intvector{\r
-                59519800,\r
+                59612700,\r
                 49980000,\r
                 54708640,\r
             }\r
@@ -26767,7 +26067,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{48500000}\r
             }\r
             territoryF:intvector{\r
-                60329100,\r
+                60335400,\r
                 49954000,\r
                 55443593,\r
             }\r
@@ -26795,7 +26095,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{49320000}\r
             }\r
             territoryF:intvector{\r
-                60835000,\r
+                60835500,\r
                 49912000,\r
                 57111382,\r
             }\r
@@ -26810,7 +26110,7 @@ supplementalData:table(nofallback){
             }\r
             territoryF:intvector{\r
                 58418000,\r
-                49990000,\r
+                49960000,\r
                 54200000,\r
             }\r
         }\r
@@ -26844,7 +26144,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{49910000}\r
             }\r
             territoryF:intvector{\r
-                62321900,\r
+                62324000,\r
                 49904000,\r
                 58207353,\r
             }\r
@@ -26861,7 +26161,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{50100000}\r
             }\r
             territoryF:intvector{\r
-                59933900,\r
+                60116000,\r
                 49956000,\r
                 55329988,\r
             }\r
@@ -26881,7 +26181,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{49170000}\r
             }\r
             territoryF:intvector{\r
-                59701100,\r
+                59703000,\r
                 49528000,\r
                 55758288,\r
             }\r
@@ -26891,7 +26191,7 @@ supplementalData:table(nofallback){
         }\r
         BV{\r
             territoryF:intvector{\r
-                54444700,\r
+                54449900,\r
                 49990000,\r
                 50100000,\r
             }\r
@@ -26908,7 +26208,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{49810000}\r
             }\r
             territoryF:intvector{\r
-                60395500,\r
+                60388600,\r
                 49851000,\r
                 56221486,\r
             }\r
@@ -26927,7 +26227,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{49120000}\r
             }\r
             territoryF:intvector{\r
-                61175900,\r
+                61178900,\r
                 49996000,\r
                 56954975,\r
             }\r
@@ -26941,7 +26241,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{49280000}\r
             }\r
             territoryF:intvector{\r
-                59323000,\r
+                59321100,\r
                 49769000,\r
                 55360346,\r
             }\r
@@ -27025,7 +26325,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{45350000}\r
             }\r
             territoryF:intvector{\r
-                62176400,\r
+                62176900,\r
                 49990000,\r
                 57356237,\r
             }\r
@@ -27042,7 +26342,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{49830000}\r
             }\r
             territoryF:intvector{\r
-                57316800,\r
+                57319600,\r
                 49990000,\r
                 52596000,\r
             }\r
@@ -27078,7 +26378,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{49500000}\r
             }\r
             territoryF:intvector{\r
-                60679900,\r
+                60684500,\r
                 49668000,\r
                 57833012,\r
             }\r
@@ -27096,7 +26396,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{49490000}\r
             }\r
             territoryF:intvector{\r
-                59339500,\r
+                59337300,\r
                 49566000,\r
                 56562512,\r
             }\r
@@ -27110,7 +26410,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{48240000}\r
             }\r
             territoryF:intvector{\r
-                60291600,\r
+                60288800,\r
                 49838000,\r
                 56495467,\r
             }\r
@@ -27151,7 +26451,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{47290000}\r
             }\r
             territoryF:intvector{\r
-                61516700,\r
+                61517200,\r
                 49990000,\r
                 56823630,\r
             }\r
@@ -27184,7 +26484,7 @@ supplementalData:table(nofallback){
                 writingShareF:int{48500000}\r
             }\r
             territoryF:intvector{\r
-                60962700,\r
+                60969200,\r
                 49569000,\r
                 57241848,\r
             }\r
@@ -27195,7 +26495,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{49950000}\r
             }\r
             territoryF:intvector{\r
-                58244100,\r
+                58299900,\r
                 49950000,\r
                 53929000,\r
             }\r
@@ -27212,7 +26512,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{49980000}\r
             }\r
             territoryF:intvector{\r
-                61452100,\r
+                61451100,\r
                 49986000,\r
                 57177893,\r
             }\r
@@ -27270,6 +26570,9 @@ supplementalData:table(nofallback){
             ff{\r
                 populationShareF:int{48360000}\r
             }\r
+            ff_Adlm{\r
+                populationShareF:int{0}\r
+            }\r
             fr{\r
                 officialStatus{"official"}\r
                 populationShareF:int{49680000}\r
@@ -27288,7 +26591,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{47320000}\r
             }\r
             maf{\r
-                populationShareF:int{47730000}\r
+                populationShareF:int{47740000}\r
             }\r
             mgo{\r
                 populationShareF:int{47470000}\r
@@ -27306,7 +26609,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{48140000}\r
             }\r
             territoryF:intvector{\r
-                60815500,\r
+                60888600,\r
                 49713000,\r
                 57249949,\r
             }\r
@@ -27378,7 +26681,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{46190000}\r
             }\r
             territoryF:intvector{\r
-                63231200,\r
+                63231600,\r
                 49951000,\r
                 59137930,\r
             }\r
@@ -27416,14 +26719,14 @@ supplementalData:table(nofallback){
                 populationShareF:int{47270000}\r
             }\r
             territoryF:intvector{\r
-                61712500,\r
+                61714000,\r
                 49936000,\r
                 57476985,\r
             }\r
         }\r
         CP{\r
             territoryF:intvector{\r
-                54421100,\r
+                54422600,\r
                 49990000,\r
                 50100000,\r
             }\r
@@ -27437,7 +26740,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{49950000}\r
             }\r
             territoryF:intvector{\r
-                60852000,\r
+                60838500,\r
                 49963000,\r
                 56493026,\r
             }\r
@@ -27448,7 +26751,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{50100000}\r
             }\r
             territoryF:intvector{\r
-                61132900,\r
+                61137000,\r
                 49998000,\r
                 57111474,\r
             }\r
@@ -27462,7 +26765,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{49760000}\r
             }\r
             territoryF:intvector{\r
-                59373400,\r
+                59373500,\r
                 49849000,\r
                 55560899,\r
             }\r
@@ -27481,7 +26784,7 @@ supplementalData:table(nofallback){
             }\r
             territoryF:intvector{\r
                 59312800,\r
-                49990000,\r
+                49960000,\r
                 55149648,\r
             }\r
         }\r
@@ -27491,7 +26794,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{49630000}\r
             }\r
             territoryF:intvector{\r
-                58117200,\r
+                58118300,\r
                 49990000,\r
                 53220500,\r
             }\r
@@ -27514,7 +26817,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{47220000}\r
             }\r
             territoryF:intvector{\r
-                60311900,\r
+                60315900,\r
                 49987000,\r
                 56122155,\r
             }\r
@@ -27541,7 +26844,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{49160000}\r
             }\r
             territoryF:intvector{\r
-                61372600,\r
+                61375700,\r
                 49990000,\r
                 57106747,\r
             }\r
@@ -27624,7 +26927,7 @@ supplementalData:table(nofallback){
                 writingShareF:int{48500000}\r
             }\r
             territoryF:intvector{\r
-                62415000,\r
+                62417100,\r
                 49990000,\r
                 57805940,\r
             }\r
@@ -27641,7 +26944,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{49990000}\r
             }\r
             territoryF:intvector{\r
-                57222300,\r
+                57225000,\r
                 49990000,\r
                 52500000,\r
             }\r
@@ -27662,7 +26965,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{49410000}\r
             }\r
             territoryF:intvector{\r
-                59364000,\r
+                59363200,\r
                 49679000,\r
                 55865267,\r
             }\r
@@ -27693,7 +26996,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{49130000}\r
             }\r
             territoryF:intvector{\r
-                61285500,\r
+                61286800,\r
                 49990000,\r
                 56560595,\r
             }\r
@@ -27704,7 +27007,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{49940000}\r
             }\r
             territoryF:intvector{\r
-                58851000,\r
+                58785000,\r
                 49940000,\r
                 54738970,\r
             }\r
@@ -27718,7 +27021,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{49780000}\r
             }\r
             territoryF:intvector{\r
-                61172600,\r
+                61172400,\r
                 49901000,\r
                 57107342,\r
             }\r
@@ -27743,7 +27046,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{48780000}\r
             }\r
             territoryF:intvector{\r
-                61629300,\r
+                61632900,\r
                 49726000,\r
                 57409694,\r
             }\r
@@ -27754,7 +27057,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{49980000}\r
             }\r
             territoryF:intvector{\r
-                59542000,\r
+                59543500,\r
                 49977000,\r
                 55150000,\r
             }\r
@@ -27772,7 +27075,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{48570000}\r
             }\r
             territoryF:intvector{\r
-                61188500,\r
+                61192600,\r
                 49916000,\r
                 57162909,\r
             }\r
@@ -27792,7 +27095,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{49560000}\r
             }\r
             territoryF:intvector{\r
-                60412000,\r
+                60415600,\r
                 49998000,\r
                 56125158,\r
             }\r
@@ -27815,7 +27118,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{49350000}\r
             }\r
             territoryF:intvector{\r
-                62119900,\r
+                62120100,\r
                 49739000,\r
                 57970411,\r
             }\r
@@ -27851,7 +27154,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{48360000}\r
             }\r
             territoryF:intvector{\r
-                59963100,\r
+                59938200,\r
                 49689000,\r
                 56591892,\r
             }\r
@@ -27891,7 +27194,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{48700000}\r
             }\r
             territoryF:intvector{\r
-                62176900,\r
+                62177400,\r
                 49977000,\r
                 57489582,\r
             }\r
@@ -27917,7 +27220,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{48600000}\r
             }\r
             territoryF:intvector{\r
-                61195800,\r
+                61200200,\r
                 49390000,\r
                 58105350,\r
             }\r
@@ -27962,7 +27265,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{49440000}\r
             }\r
             territoryF:intvector{\r
-                61242400,\r
+                61244000,\r
                 50100000,\r
                 56551837,\r
             }\r
@@ -27987,7 +27290,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{47270000}\r
             }\r
             territoryF:intvector{\r
-                59864700,\r
+                59865200,\r
                 49937000,\r
                 55920938,\r
             }\r
@@ -27998,7 +27301,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{49960000}\r
             }\r
             territoryF:intvector{\r
-                58281800,\r
+                58206400,\r
                 49990000,\r
                 53293100,\r
             }\r
@@ -28095,7 +27398,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{48130000}\r
             }\r
             territoryF:intvector{\r
-                62282600,\r
+                62283600,\r
                 49990000,\r
                 57671062,\r
             }\r
@@ -28109,7 +27412,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{48900000}\r
             }\r
             territoryF:intvector{\r
-                60367500,\r
+                60367300,\r
                 49890000,\r
                 56177226,\r
             }\r
@@ -28164,10 +27467,10 @@ supplementalData:table(nofallback){
                 writingShareF:int{48500000}\r
             }\r
             syl{\r
-                populationShareF:int{47510000}\r
+                populationShareF:int{47500000}\r
             }\r
             territoryF:intvector{\r
-                62288000,\r
+                62291400,\r
                 49990000,\r
                 57647695,\r
             }\r
@@ -28184,7 +27487,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{49960000}\r
             }\r
             territoryF:intvector{\r
-                59159000,\r
+                59160600,\r
                 49960000,\r
                 55111724,\r
             }\r
@@ -28212,7 +27515,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{48900000}\r
             }\r
             territoryF:intvector{\r
-                60393200,\r
+                60397000,\r
                 49997000,\r
                 56492633,\r
             }\r
@@ -28267,6 +27570,12 @@ supplementalData:table(nofallback){
                 officialStatus{"official"}\r
                 populationShareF:int{49210000}\r
             }\r
+            ff{\r
+                populationShareF:int{0}\r
+            }\r
+            ff_Adlm{\r
+                populationShareF:int{0}\r
+            }\r
             gaa{\r
                 officialStatus{"official_regional"}\r
                 populationShareF:int{48280000}\r
@@ -28284,7 +27593,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{46150000}\r
             }\r
             territoryF:intvector{\r
-                61130200,\r
+                61133700,\r
                 49715000,\r
                 57274999,\r
             }\r
@@ -28312,7 +27621,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{49840000}\r
             }\r
             territoryF:intvector{\r
-                59217300,\r
+                59241300,\r
                 50100000,\r
                 54577130,\r
             }\r
@@ -28322,11 +27631,17 @@ supplementalData:table(nofallback){
                 officialStatus{"official"}\r
                 populationShareF:int{49400000}\r
             }\r
+            ff{\r
+                populationShareF:int{0}\r
+            }\r
+            ff_Adlm{\r
+                populationShareF:int{0}\r
+            }\r
             man{\r
                 populationShareF:int{49290000}\r
             }\r
             territoryF:intvector{\r
-                59358200,\r
+                59360200,\r
                 49511000,\r
                 56205136,\r
             }\r
@@ -28335,6 +27650,9 @@ supplementalData:table(nofallback){
             ff{\r
                 populationShareF:int{49260000}\r
             }\r
+            ff_Adlm{\r
+                populationShareF:int{0}\r
+            }\r
             fr{\r
                 officialStatus{"official"}\r
                 populationShareF:int{49290000}\r
@@ -28352,7 +27670,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{49110000}\r
             }\r
             territoryF:intvector{\r
-                60264500,\r
+                60264700,\r
                 49410000,\r
                 57124139,\r
             }\r
@@ -28388,7 +27706,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{44100000}\r
             }\r
             territoryF:intvector{\r
-                60293800,\r
+                60303500,\r
                 49942000,\r
                 55778358,\r
             }\r
@@ -28420,7 +27738,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{46930000}\r
             }\r
             territoryF:intvector{\r
-                61299500,\r
+                61298700,\r
                 49973000,\r
                 57107685,\r
             }\r
@@ -28433,7 +27751,7 @@ supplementalData:table(nofallback){
         }\r
         GS{\r
             territoryF:intvector{\r
-                55889300,\r
+                55899800,\r
                 49990000,\r
                 51200000,\r
             }\r
@@ -28452,7 +27770,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{48700000}\r
             }\r
             territoryF:intvector{\r
-                61138300,\r
+                61137800,\r
                 49759000,\r
                 57154607,\r
             }\r
@@ -28467,12 +27785,18 @@ supplementalData:table(nofallback){
                 populationShareF:int{49910000}\r
             }\r
             territoryF:intvector{\r
-                59488200,\r
+                59579300,\r
                 49990000,\r
                 55167358,\r
             }\r
         }\r
         GW{\r
+            ff{\r
+                populationShareF:int{44100000}\r
+            }\r
+            ff_Adlm{\r
+                populationShareF:int{44100000}\r
+            }\r
             knf{\r
                 populationShareF:int{48260000}\r
             }\r
@@ -28481,7 +27805,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{50100000}\r
             }\r
             territoryF:intvector{\r
-                59307100,\r
+                59313700,\r
                 49553000,\r
                 56179234,\r
             }\r
@@ -28492,7 +27816,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{50100000}\r
             }\r
             territoryF:intvector{\r
-                59636700,\r
+                59628700,\r
                 49918000,\r
                 55737718,\r
             }\r
@@ -28503,7 +27827,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{49510000}\r
             }\r
             territoryF:intvector{\r
-                61453000,\r
+                61454900,\r
                 49935000,\r
                 56719150,\r
             }\r
@@ -28520,7 +27844,7 @@ supplementalData:table(nofallback){
         }\r
         HM{\r
             territoryF:intvector{\r
-                54531600,\r
+                54536300,\r
                 49990000,\r
                 50100000,\r
             }\r
@@ -28538,7 +27862,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{49780000}\r
             }\r
             territoryF:intvector{\r
-                60456800,\r
+                60462000,\r
                 49851000,\r
                 56903874,\r
             }\r
@@ -28556,7 +27880,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{48160000}\r
             }\r
             territoryF:intvector{\r
-                61100200,\r
+                61101300,\r
                 49989000,\r
                 56429210,\r
             }\r
@@ -28572,7 +27896,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{49810000}\r
             }\r
             territoryF:intvector{\r
-                60198800,\r
+                60199300,\r
                 49487000,\r
                 57106467,\r
             }\r
@@ -28604,7 +27928,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{46510000}\r
             }\r
             territoryF:intvector{\r
-                61283600,\r
+                61289000,\r
                 49990000,\r
                 56985085,\r
             }\r
@@ -28615,7 +27939,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{49980000}\r
             }\r
             territoryF:intvector{\r
-                60758300,\r
+                60760400,\r
                 49977000,\r
                 56209859,\r
             }\r
@@ -28734,7 +28058,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{49220000}\r
             }\r
             territoryF:intvector{\r
-                61344800,\r
+                61357200,\r
                 49990000,\r
                 56501110,\r
             }\r
@@ -28773,7 +28097,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{49110000}\r
             }\r
             territoryF:intvector{\r
-                61315600,\r
+                61316500,\r
                 49971000,\r
                 56829971,\r
             }\r
@@ -28794,7 +28118,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{48190000}\r
             }\r
             territoryF:intvector{\r
-                59742800,\r
+                59679200,\r
                 49990000,\r
                 54888150,\r
             }\r
@@ -28805,7 +28129,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{48130000}\r
             }\r
             awa{\r
-                populationShareF:int{48190000}\r
+                populationShareF:int{48180000}\r
                 writingShareF:int{48500000}\r
             }\r
             bfq{\r
@@ -28858,10 +28182,10 @@ supplementalData:table(nofallback){
                 populationShareF:int{46280000}\r
             }\r
             dcc{\r
-                populationShareF:int{47990000}\r
+                populationShareF:int{48100000}\r
             }\r
             doi{\r
-                populationShareF:int{47190000}\r
+                populationShareF:int{47200000}\r
             }\r
             dv{\r
                 populationShareF:int{44400000}\r
@@ -28897,7 +28221,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{48110000}\r
             }\r
             hoc{\r
-                populationShareF:int{46990000}\r
+                populationShareF:int{47100000}\r
             }\r
             hoj{\r
                 populationShareF:int{46820000}\r
@@ -29039,12 +28363,12 @@ supplementalData:table(nofallback){
                 populationShareF:int{48720000}\r
             }\r
             territoryF:intvector{\r
-                62944700,\r
+                62945900,\r
                 49628000,\r
                 59128194,\r
             }\r
             unr{\r
-                populationShareF:int{46950000}\r
+                populationShareF:int{46940000}\r
             }\r
             unx{\r
                 populationShareF:int{46480000}\r
@@ -29074,7 +28398,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{50100000}\r
             }\r
             territoryF:intvector{\r
-                58155600,\r
+                58157500,\r
                 49990000,\r
                 53350000,\r
             }\r
@@ -29105,7 +28429,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{47500000}\r
             }\r
             territoryF:intvector{\r
-                61660700,\r
+                61658800,\r
                 49785000,\r
                 57391921,\r
             }\r
@@ -29176,7 +28500,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{48370000}\r
             }\r
             territoryF:intvector{\r
-                62163100,\r
+                62164500,\r
                 49850000,\r
                 57820216,\r
             }\r
@@ -29193,7 +28517,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{50100000}\r
             }\r
             territoryF:intvector{\r
-                60177300,\r
+                60176200,\r
                 49990000,\r
                 55339747,\r
             }\r
@@ -29259,7 +28583,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{47170000}\r
             }\r
             territoryF:intvector{\r
-                62230700,\r
+                62231100,\r
                 49990000,\r
                 57621378,\r
             }\r
@@ -29273,7 +28597,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{49950000}\r
             }\r
             territoryF:intvector{\r
-                59508000,\r
+                59556900,\r
                 49990000,\r
                 54988400,\r
             }\r
@@ -29287,7 +28611,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{49950000}\r
             }\r
             territoryF:intvector{\r
-                60262000,\r
+                60260600,\r
                 49870000,\r
                 56299056,\r
             }\r
@@ -29301,7 +28625,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{49450000}\r
             }\r
             territoryF:intvector{\r
-                60890500,\r
+                60891000,\r
                 49959000,\r
                 57102481,\r
             }\r
@@ -29319,7 +28643,7 @@ supplementalData:table(nofallback){
                 writingShareF:int{48500000}\r
             }\r
             territoryF:intvector{\r
-                62540500,\r
+                62542900,\r
                 49990000,\r
                 58126451,\r
             }\r
@@ -29393,7 +28717,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{47740000}\r
             }\r
             territoryF:intvector{\r
-                61163400,\r
+                61163100,\r
                 49874000,\r
                 57476157,\r
             }\r
@@ -29408,7 +28732,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{49360000}\r
             }\r
             territoryF:intvector{\r
-                60226400,\r
+                60229700,\r
                 49992000,\r
                 56578912,\r
             }\r
@@ -29425,7 +28749,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{49890000}\r
             }\r
             territoryF:intvector{\r
-                60642100,\r
+                60642500,\r
                 49739000,\r
                 57162045,\r
             }\r
@@ -29440,7 +28764,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{49600000}\r
             }\r
             territoryF:intvector{\r
-                58224000,\r
+                58226000,\r
                 49900000,\r
                 55108145,\r
             }\r
@@ -29455,7 +28779,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{49560000}\r
             }\r
             territoryF:intvector{\r
-                59132300,\r
+                59131300,\r
                 49755000,\r
                 55808080,\r
             }\r
@@ -29496,7 +28820,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{50100000}\r
             }\r
             territoryF:intvector{\r
-                62202700,\r
+                62202900,\r
                 49979000,\r
                 57511813,\r
             }\r
@@ -29507,7 +28831,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{50100000}\r
             }\r
             territoryF:intvector{\r
-                61302500,\r
+                61291500,\r
                 49939000,\r
                 56287542,\r
             }\r
@@ -29539,7 +28863,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{49720000}\r
             }\r
             territoryF:intvector{\r
-                61474300,\r
+                61477600,\r
                 49997000,\r
                 57185567,\r
             }\r
@@ -29579,10 +28903,10 @@ supplementalData:table(nofallback){
                 populationShareF:int{48520000}\r
             }\r
             ku_Arab{\r
-                populationShareF:int{48160000}\r
+                populationShareF:int{48170000}\r
             }\r
             territoryF:intvector{\r
-                60878900,\r
+                60876800,\r
                 49896000,\r
                 56622979,\r
             }\r
@@ -29593,7 +28917,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{49900000}\r
             }\r
             territoryF:intvector{\r
-                59238400,\r
+                59253600,\r
                 49901000,\r
                 55164994,\r
             }\r
@@ -29630,7 +28954,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{49150000}\r
             }\r
             territoryF:intvector{\r
-                61278200,\r
+                61274700,\r
                 49912000,\r
                 57224094,\r
             }\r
@@ -29640,6 +28964,12 @@ supplementalData:table(nofallback){
                 officialStatus{"official"}\r
                 populationShareF:int{49830000}\r
             }\r
+            ff{\r
+                populationShareF:int{0}\r
+            }\r
+            ff_Adlm{\r
+                populationShareF:int{0}\r
+            }\r
             kpe{\r
                 populationShareF:int{49140000}\r
             }\r
@@ -29647,7 +28977,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{47480000}\r
             }\r
             territoryF:intvector{\r
-                59390600,\r
+                59609900,\r
                 49608000,\r
                 56468902,\r
             }\r
@@ -29671,12 +29001,12 @@ supplementalData:table(nofallback){
                 populationShareF:int{49980000}\r
             }\r
             territoryF:intvector{\r
-                59744800,\r
+                59695500,\r
                 49896000,\r
                 56195804,\r
             }\r
             xh{\r
-                populationShareF:int{47990000}\r
+                populationShareF:int{48100000}\r
             }\r
             zu{\r
                 populationShareF:int{49140000}\r
@@ -29700,7 +29030,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{0}\r
             }\r
             territoryF:intvector{\r
-                60906300,\r
+                60912400,\r
                 49997000,\r
                 56282386,\r
             }\r
@@ -29726,7 +29056,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{49160000}\r
             }\r
             territoryF:intvector{\r
-                60643900,\r
+                60627300,\r
                 50100000,\r
                 55594130,\r
             }\r
@@ -29746,7 +29076,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{49380000}\r
             }\r
             territoryF:intvector{\r
-                60534700,\r
+                60539100,\r
                 49998000,\r
                 56194464,\r
             }\r
@@ -29757,7 +29087,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{49740000}\r
             }\r
             territoryF:intvector{\r
-                60631400,\r
+                60644000,\r
                 49895000,\r
                 56665321,\r
             }\r
@@ -29795,7 +29125,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{48870000}\r
             }\r
             territoryF:intvector{\r
-                61300100,\r
+                61298600,\r
                 49671000,\r
                 57339867,\r
             }\r
@@ -29834,7 +29164,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{48300000}\r
             }\r
             territoryF:intvector{\r
-                60200700,\r
+                60200800,\r
                 49990000,\r
                 56347412,\r
             }\r
@@ -29854,7 +29184,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{50100000}\r
             }\r
             territoryF:intvector{\r
-                60108600,\r
+                60110500,\r
                 49985000,\r
                 55642550,\r
             }\r
@@ -29884,7 +29214,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{49900000}\r
             }\r
             territoryF:intvector{\r
-                60398100,\r
+                60397300,\r
                 49645000,\r
                 57250542,\r
             }\r
@@ -29914,7 +29244,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{49250000}\r
             }\r
             territoryF:intvector{\r
-                60315500,\r
+                60309600,\r
                 49974000,\r
                 56210372,\r
             }\r
@@ -29964,7 +29294,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{48590000}\r
             }\r
             territoryF:intvector{\r
-                60409800,\r
+                60410000,\r
                 49334000,\r
                 57178852,\r
             }\r
@@ -29990,7 +29320,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{48640000}\r
             }\r
             territoryF:intvector{\r
-                61330900,\r
+                61328700,\r
                 49927000,\r
                 57551238,\r
             }\r
@@ -30007,7 +29337,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{47130000}\r
             }\r
             territoryF:intvector{\r
-                60384000,\r
+                60397000,\r
                 49974000,\r
                 56306824,\r
             }\r
@@ -30027,7 +29357,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{48500000}\r
             }\r
             territoryF:intvector{\r
-                60735800,\r
+                60717800,\r
                 49956000,\r
                 55601969,\r
             }\r
@@ -30048,7 +29378,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{49970000}\r
             }\r
             territoryF:intvector{\r
-                58682000,\r
+                59124200,\r
                 49970000,\r
                 54522630,\r
             }\r
@@ -30072,11 +29402,14 @@ supplementalData:table(nofallback){
             ff{\r
                 populationShareF:int{48570000}\r
             }\r
+            ff_Adlm{\r
+                populationShareF:int{0}\r
+            }\r
             fr{\r
                 populationShareF:int{49170000}\r
             }\r
             territoryF:intvector{\r
-                60173700,\r
+                60172500,\r
                 49586000,\r
                 56375857,\r
             }\r
@@ -30090,7 +29423,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{49660000}\r
             }\r
             territoryF:intvector{\r
-                57437800,\r
+                58167400,\r
                 49970000,\r
                 53529200,\r
             }\r
@@ -30111,7 +29444,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{50100000}\r
             }\r
             territoryF:intvector{\r
-                60185300,\r
+                60193100,\r
                 49924000,\r
                 55416338,\r
             }\r
@@ -30135,7 +29468,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{48250000}\r
             }\r
             territoryF:intvector{\r
-                60274400,\r
+                60274600,\r
                 49888000,\r
                 56135639,\r
             }\r
@@ -30149,7 +29482,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{49940000}\r
             }\r
             territoryF:intvector{\r
-                59689600,\r
+                59688700,\r
                 49984000,\r
                 55392709,\r
             }\r
@@ -30164,7 +29497,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{49630000}\r
             }\r
             territoryF:intvector{\r
-                60224700,\r
+                60223700,\r
                 49748000,\r
                 57191962,\r
             }\r
@@ -30196,13 +29529,13 @@ supplementalData:table(nofallback){
                 populationShareF:int{47390000}\r
             }\r
             nhw{\r
-                populationShareF:int{47380000}\r
+                populationShareF:int{47390000}\r
             }\r
             sei{\r
                 populationShareF:int{44700000}\r
             }\r
             territoryF:intvector{\r
-                62240600,\r
+                62245800,\r
                 49935000,\r
                 58124575,\r
             }\r
@@ -30240,7 +29573,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{48420000}\r
             }\r
             territoryF:intvector{\r
-                61926100,\r
+                61930800,\r
                 49931000,\r
                 57313820,\r
             }\r
@@ -30278,7 +29611,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{46350000}\r
             }\r
             territoryF:intvector{\r
-                60373900,\r
+                60367300,\r
                 49561000,\r
                 57265737,\r
             }\r
@@ -30319,7 +29652,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{49210000}\r
             }\r
             territoryF:intvector{\r
-                60270200,\r
+                60265100,\r
                 49888000,\r
                 56248478,\r
             }\r
@@ -30333,7 +29666,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{49960000}\r
             }\r
             territoryF:intvector{\r
-                60107700,\r
+                60111100,\r
                 49962000,\r
                 55279070,\r
             }\r
@@ -30345,6 +29678,12 @@ supplementalData:table(nofallback){
             dje{\r
                 populationShareF:int{49170000}\r
             }\r
+            ff{\r
+                populationShareF:int{0}\r
+            }\r
+            ff_Adlm{\r
+                populationShareF:int{0}\r
+            }\r
             fr{\r
                 officialStatus{"official"}\r
                 populationShareF:int{49290000}\r
@@ -30356,7 +29695,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{49410000}\r
             }\r
             territoryF:intvector{\r
-                60216200,\r
+                60218400,\r
                 49287000,\r
                 57192453,\r
             }\r
@@ -30373,14 +29712,14 @@ supplementalData:table(nofallback){
                 populationShareF:int{49760000}\r
             }\r
             territoryF:intvector{\r
-                58117500,\r
+                58118500,\r
                 49990000,\r
                 53221000,\r
             }\r
         }\r
         NG{\r
             amo{\r
-                populationShareF:int{45870000}\r
+                populationShareF:int{45880000}\r
             }\r
             ar{\r
                 populationShareF:int{46710000}\r
@@ -30398,6 +29737,12 @@ supplementalData:table(nofallback){
                 officialStatus{"official"}\r
                 populationShareF:int{49530000}\r
             }\r
+            ff{\r
+                populationShareF:int{0}\r
+            }\r
+            ff_Adlm{\r
+                populationShareF:int{0}\r
+            }\r
             fuv{\r
                 literacyShareF:int{49200000}\r
                 populationShareF:int{48670000}\r
@@ -30424,7 +29769,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{49210000}\r
             }\r
             territoryF:intvector{\r
-                62111800,\r
+                62111900,\r
                 49613000,\r
                 58190632,\r
             }\r
@@ -30443,7 +29788,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{49780000}\r
             }\r
             territoryF:intvector{\r
-                60362200,\r
+                60363800,\r
                 49780000,\r
                 56602595,\r
             }\r
@@ -30486,7 +29831,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{48120000}\r
             }\r
             territoryF:intvector{\r
-                61915200,\r
+                61916100,\r
                 49990000,\r
                 57170847,\r
             }\r
@@ -30511,7 +29856,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{47290000}\r
             }\r
             territoryF:intvector{\r
-                61375900,\r
+                61380000,\r
                 50100000,\r
                 56532005,\r
             }\r
@@ -30589,7 +29934,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{47120000}\r
             }\r
             territoryF:intvector{\r
-                60785500,\r
+                60785900,\r
                 49574000,\r
                 57293843,\r
             }\r
@@ -30655,7 +30000,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{48280000}\r
             }\r
             territoryF:intvector{\r
-                61185700,\r
+                61188600,\r
                 49990000,\r
                 56451033,\r
             }\r
@@ -30672,7 +30017,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{47940000}\r
             }\r
             territoryF:intvector{\r
-                61187900,\r
+                61186600,\r
                 49869000,\r
                 56342439,\r
             }\r
@@ -30686,7 +30031,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{49690000}\r
             }\r
             territoryF:intvector{\r
-                60994300,\r
+                61103900,\r
                 49941000,\r
                 56375314,\r
             }\r
@@ -30707,7 +30052,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{49150000}\r
             }\r
             territoryF:intvector{\r
-                61424600,\r
+                61424400,\r
                 49896000,\r
                 57310367,\r
             }\r
@@ -30741,7 +30086,7 @@ supplementalData:table(nofallback){
                 writingShareF:int{48500000}\r
             }\r
             territoryF:intvector{\r
-                60308400,\r
+                60303300,\r
                 49624000,\r
                 56690970,\r
             }\r
@@ -30770,7 +30115,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{49240000}\r
             }\r
             cps{\r
-                populationShareF:int{47670000}\r
+                populationShareF:int{47660000}\r
             }\r
             en{\r
                 officialStatus{"official"}\r
@@ -30815,7 +30160,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{45960000}\r
             }\r
             territoryF:intvector{\r
-                61874500,\r
+                61875600,\r
                 49954000,\r
                 58104256,\r
             }\r
@@ -30899,7 +30244,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{48910000}\r
             }\r
             territoryF:intvector{\r
-                62105600,\r
+                62105700,\r
                 49549000,\r
                 58204925,\r
             }\r
@@ -30944,7 +30289,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{48130000}\r
             }\r
             territoryF:intvector{\r
-                62111100,\r
+                62112100,\r
                 49997000,\r
                 57384763,\r
             }\r
@@ -30961,7 +30306,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{49920000}\r
             }\r
             territoryF:intvector{\r
-                58215300,\r
+                58261300,\r
                 49990000,\r
                 53553300,\r
             }\r
@@ -30972,7 +30317,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{49850000}\r
             }\r
             territoryF:intvector{\r
-                56240100,\r
+                56242900,\r
                 49990000,\r
                 51540000,\r
             }\r
@@ -30987,7 +30332,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{49870000}\r
             }\r
             territoryF:intvector{\r
-                61127300,\r
+                61121000,\r
                 49903000,\r
                 56335183,\r
             }\r
@@ -31021,7 +30366,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{49960000}\r
             }\r
             territoryF:intvector{\r
-                61311300,\r
+                61313400,\r
                 49954000,\r
                 57108395,\r
             }\r
@@ -31036,7 +30381,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{49740000}\r
             }\r
             territoryF:intvector{\r
-                58301000,\r
+                58291000,\r
                 49920000,\r
                 54214310,\r
             }\r
@@ -31054,7 +30399,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{49800000}\r
             }\r
             territoryF:intvector{\r
-                60680500,\r
+                60683300,\r
                 49939000,\r
                 56694374,\r
             }\r
@@ -31071,7 +30416,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{47280000}\r
             }\r
             territoryF:intvector{\r
-                61341700,\r
+                61340600,\r
                 49963000,\r
                 56231431,\r
             }\r
@@ -31126,7 +30471,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{47120000}\r
             }\r
             territoryF:intvector{\r
-                61474000,\r
+                61481500,\r
                 49977000,\r
                 57215300,\r
             }\r
@@ -31149,7 +30494,7 @@ supplementalData:table(nofallback){
             }\r
             sk{\r
                 officialStatus{"official_regional"}\r
-                populationShareF:int{47850000}\r
+                populationShareF:int{47860000}\r
             }\r
             sq{\r
                 populationShareF:int{49190000}\r
@@ -31164,7 +30509,7 @@ supplementalData:table(nofallback){
                 writingShareF:int{48500000}\r
             }\r
             territoryF:intvector{\r
-                61106600,\r
+                61105500,\r
                 49980000,\r
                 56711102,\r
             }\r
@@ -31236,7 +30581,7 @@ supplementalData:table(nofallback){
             }\r
             krc{\r
                 officialStatus{"official_regional"}\r
-                populationShareF:int{47160000}\r
+                populationShareF:int{47170000}\r
             }\r
             krl{\r
                 populationShareF:int{46820000}\r
@@ -31286,7 +30631,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{45350000}\r
             }\r
             territoryF:intvector{\r
-                62400000,\r
+                62400800,\r
                 49997000,\r
                 58142258,\r
             }\r
@@ -31323,7 +30668,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{49770000}\r
             }\r
             territoryF:intvector{\r
-                60246100,\r
+                60246300,\r
                 49711000,\r
                 57119015,\r
             }\r
@@ -31334,7 +30679,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{50100000}\r
             }\r
             territoryF:intvector{\r
-                62178900,\r
+                62177400,\r
                 49872000,\r
                 57285718,\r
             }\r
@@ -31348,7 +30693,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{48150000}\r
             }\r
             territoryF:intvector{\r
-                59131700,\r
+                59132400,\r
                 49841000,\r
                 55647581,\r
             }\r
@@ -31366,7 +30711,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{49600000}\r
             }\r
             territoryF:intvector{\r
-                59271200,\r
+                59271800,\r
                 49918000,\r
                 54939200,\r
             }\r
@@ -31396,7 +30741,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{47990000}\r
             }\r
             territoryF:intvector{\r
-                61186800,\r
+                61187000,\r
                 49719000,\r
                 57373459,\r
             }\r
@@ -31436,7 +30781,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{49950000}\r
             }\r
             territoryF:intvector{\r
-                61521700,\r
+                61520900,\r
                 49990000,\r
                 56996049,\r
             }\r
@@ -31464,7 +30809,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{48210000}\r
             }\r
             territoryF:intvector{\r
-                61513700,\r
+                61527000,\r
                 49959000,\r
                 56588893,\r
             }\r
@@ -31505,7 +30850,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{49870000}\r
             }\r
             territoryF:intvector{\r
-                60703600,\r
+                60710800,\r
                 49997000,\r
                 56197213,\r
             }\r
@@ -31519,7 +30864,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{49450000}\r
             }\r
             territoryF:intvector{\r
-                58188400,\r
+                58190500,\r
                 50100000,\r
                 53266700,\r
             }\r
@@ -31545,7 +30890,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{49900000}\r
             }\r
             territoryF:intvector{\r
-                61178700,\r
+                61179400,\r
                 49996000,\r
                 56544583,\r
             }\r
@@ -31558,6 +30903,12 @@ supplementalData:table(nofallback){
                 officialStatus{"official"}\r
                 populationShareF:int{49350000}\r
             }\r
+            ff{\r
+                populationShareF:int{0}\r
+            }\r
+            ff_Adlm{\r
+                populationShareF:int{0}\r
+            }\r
             kri{\r
                 populationShareF:int{49950000}\r
             }\r
@@ -31569,7 +30920,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{49260000}\r
             }\r
             territoryF:intvector{\r
-                60117500,\r
+                60115000,\r
                 49433000,\r
                 56616320,\r
             }\r
@@ -31583,7 +30934,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{49890000}\r
             }\r
             territoryF:intvector{\r
-                59208300,\r
+                59205200,\r
                 49960000,\r
                 54335370,\r
             }\r
@@ -31597,7 +30948,7 @@ supplementalData:table(nofallback){
             bsc{\r
                 literacyShareF:int{49100000}\r
                 officialStatus{"official_regional"}\r
-                populationShareF:int{46980000}\r
+                populationShareF:int{46970000}\r
             }\r
             dyo{\r
                 literacyShareF:int{49100000}\r
@@ -31608,6 +30959,9 @@ supplementalData:table(nofallback){
                 officialStatus{"official_regional"}\r
                 populationShareF:int{49210000}\r
             }\r
+            ff_Adlm{\r
+                populationShareF:int{0}\r
+            }\r
             fr{\r
                 literacyShareF:int{50100000}\r
                 officialStatus{"official"}\r
@@ -31642,7 +30996,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{49110000}\r
             }\r
             territoryF:intvector{\r
-                60430700,\r
+                60432400,\r
                 49497000,\r
                 57146685,\r
             }\r
@@ -31673,7 +31027,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{48200000}\r
             }\r
             territoryF:intvector{\r
-                60174700,\r
+                60186600,\r
                 49378000,\r
                 57110314,\r
             }\r
@@ -31688,7 +31042,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{49680000}\r
             }\r
             territoryF:intvector{\r
-                59792800,\r
+                59850800,\r
                 49947000,\r
                 55591919,\r
             }\r
@@ -31708,7 +31062,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{48560000}\r
             }\r
             territoryF:intvector{\r
-                60197500,\r
+                60187400,\r
                 49270000,\r
                 57130261,\r
             }\r
@@ -31719,7 +31073,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{49850000}\r
             }\r
             territoryF:intvector{\r
-                58682000,\r
+                58676000,\r
                 49695000,\r
                 55201025,\r
             }\r
@@ -31730,7 +31084,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{49890000}\r
             }\r
             territoryF:intvector{\r
-                60569000,\r
+                60569900,\r
                 49845000,\r
                 56617201,\r
             }\r
@@ -31807,7 +31161,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{49990000}\r
             }\r
             territoryF:intvector{\r
-                57122300,\r
+                57123700,\r
                 49990000,\r
                 52275000,\r
             }\r
@@ -31833,7 +31187,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{49260000}\r
             }\r
             territoryF:intvector{\r
-                60296400,\r
+                60285600,\r
                 49354000,\r
                 57120760,\r
             }\r
@@ -31844,7 +31198,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{50100000}\r
             }\r
             territoryF:intvector{\r
-                56589600,\r
+                56591700,\r
                 49990000,\r
                 52140000,\r
             }\r
@@ -31862,7 +31216,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{48130000}\r
             }\r
             territoryF:intvector{\r
-                60124300,\r
+                60129400,\r
                 49604000,\r
                 56796506,\r
             }\r
@@ -31903,7 +31257,7 @@ supplementalData:table(nofallback){
                 writingShareF:int{48500000}\r
             }\r
             territoryF:intvector{\r
-                62122900,\r
+                62123400,\r
                 49935000,\r
                 57684141,\r
             }\r
@@ -31931,7 +31285,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{49120000}\r
             }\r
             territoryF:intvector{\r
-                60276700,\r
+                60283800,\r
                 49997000,\r
                 56846856,\r
             }\r
@@ -31963,7 +31317,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{49590000}\r
             }\r
             territoryF:intvector{\r
-                59621100,\r
+                59675300,\r
                 49583000,\r
                 56129136,\r
             }\r
@@ -32005,7 +31359,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{49740000}\r
             }\r
             territoryF:intvector{\r
-                61135900,\r
+                61135400,\r
                 49791000,\r
                 57114038,\r
             }\r
@@ -32085,7 +31439,7 @@ supplementalData:table(nofallback){
                 writingShareF:int{48500000}\r
             }\r
             territoryF:intvector{\r
-                62213300,\r
+                62217300,\r
                 49941000,\r
                 57808452,\r
             }\r
@@ -32112,7 +31466,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{47340000}\r
             }\r
             territoryF:intvector{\r
-                60427800,\r
+                60430100,\r
                 49988000,\r
                 56121821,\r
             }\r
@@ -32134,7 +31488,7 @@ supplementalData:table(nofallback){
         }\r
         TW{\r
             territoryF:intvector{\r
-                62117500,\r
+                62118500,\r
                 49961000,\r
                 57235084,\r
             }\r
@@ -32197,7 +31551,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{49900000}\r
             }\r
             territoryF:intvector{\r
-                61162800,\r
+                61162200,\r
                 49678000,\r
                 57539509,\r
             }\r
@@ -32235,7 +31589,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{48120000}\r
             }\r
             territoryF:intvector{\r
-                61366400,\r
+                61368800,\r
                 49997000,\r
                 57440339,\r
             }\r
@@ -32287,7 +31641,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{48390000}\r
             }\r
             territoryF:intvector{\r
-                60886100,\r
+                60886700,\r
                 49732000,\r
                 57395701,\r
             }\r
@@ -32304,7 +31658,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{50100000}\r
             }\r
             territoryF:intvector{\r
-                57187300,\r
+                57187600,\r
                 49990000,\r
                 52316000,\r
             }\r
@@ -32341,7 +31695,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{47560000}\r
             }\r
             frc{\r
-                populationShareF:int{45840000}\r
+                populationShareF:int{45850000}\r
             }\r
             haw{\r
                 officialStatus{"official_regional"}\r
@@ -32364,7 +31718,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{45120000}\r
             }\r
             nv{\r
-                populationShareF:int{46500000}\r
+                populationShareF:int{46510000}\r
             }\r
             pdc{\r
                 populationShareF:int{46390000}\r
@@ -32373,7 +31727,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{47240000}\r
             }\r
             territoryF:intvector{\r
-                63193600,\r
+                63193900,\r
                 49990000,\r
                 58326626,\r
             }\r
@@ -32393,7 +31747,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{49880000}\r
             }\r
             territoryF:intvector{\r
-                60784100,\r
+                60781500,\r
                 49981000,\r
                 56336015,\r
             }\r
@@ -32406,7 +31760,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{49140000}\r
             }\r
             territoryF:intvector{\r
-                61221700,\r
+                61222600,\r
                 49994000,\r
                 57297489,\r
             }\r
@@ -32431,7 +31785,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{49820000}\r
             }\r
             territoryF:intvector{\r
-                57371300,\r
+                57371900,\r
                 50100000,\r
                 53100000,\r
             }\r
@@ -32442,7 +31796,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{49960000}\r
             }\r
             territoryF:intvector{\r
-                59128100,\r
+                59126600,\r
                 49960000,\r
                 55102089,\r
             }\r
@@ -32453,7 +31807,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{49820000}\r
             }\r
             territoryF:intvector{\r
-                61389400,\r
+                61380700,\r
                 49955000,\r
                 57313040,\r
             }\r
@@ -32475,7 +31829,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{49750000}\r
             }\r
             territoryF:intvector{\r
-                59379200,\r
+                59387200,\r
                 49990000,\r
                 55107268,\r
             }\r
@@ -32486,7 +31840,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{46890000}\r
             }\r
             territoryF:intvector{\r
-                61643900,\r
+                61647400,\r
                 49934000,\r
                 57961602,\r
             }\r
@@ -32495,7 +31849,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{49860000}\r
             }\r
             zh_Hant{\r
-                populationShareF:int{48100000}\r
+                populationShareF:int{48110000}\r
             }\r
         }\r
         VU{\r
@@ -32512,7 +31866,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{49500000}\r
             }\r
             territoryF:intvector{\r
-                58787000,\r
+                58770000,\r
                 49832000,\r
                 55282814,\r
             }\r
@@ -32544,7 +31898,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{50100000}\r
             }\r
             territoryF:intvector{\r
-                59113000,\r
+                59113400,\r
                 49988000,\r
                 55200108,\r
             }\r
@@ -32566,7 +31920,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{48500000}\r
             }\r
             territoryF:intvector{\r
-                60193800,\r
+                60196300,\r
                 49919000,\r
                 56189525,\r
             }\r
@@ -32580,7 +31934,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{48900000}\r
             }\r
             territoryF:intvector{\r
-                60689500,\r
+                60386000,\r
                 49653000,\r
                 57280368,\r
             }\r
@@ -32645,7 +31999,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{45180000}\r
             }\r
             territoryF:intvector{\r
-                61757300,\r
+                61765600,\r
                 49930000,\r
                 57548416,\r
             }\r
@@ -32690,7 +32044,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{49150000}\r
             }\r
             territoryF:intvector{\r
-                60689000,\r
+                60688900,\r
                 49614000,\r
                 57159720,\r
             }\r
@@ -32721,7 +32075,7 @@ supplementalData:table(nofallback){
                 populationShareF:int{49810000}\r
             }\r
             territoryF:intvector{\r
-                60338700,\r
+                60339600,\r
                 49836000,\r
                 57138051,\r
             }\r
@@ -35635,7 +34989,7 @@ supplementalData:table(nofallback){
             86400000,\r
         }\r
         IE:intvector{\r
-            1,\r
+            2,\r
             4,\r
             7,\r
             0,\r
@@ -35842,14 +35196,6 @@ supplementalData:table(nofallback){
             7,\r
             86400000,\r
         }\r
-        MA:intvector{\r
-            7,\r
-            1,\r
-            6,\r
-            0,\r
-            7,\r
-            86400000,\r
-        }\r
         MC:intvector{\r
             2,\r
             4,\r
@@ -36059,7 +35405,7 @@ supplementalData:table(nofallback){
             86400000,\r
         }\r
         PT:intvector{\r
-            2,\r
+            1,\r
             4,\r
             7,\r
             0,\r
@@ -36218,14 +35564,6 @@ supplementalData:table(nofallback){
             1,\r
             86400000,\r
         }\r
-        TN:intvector{\r
-            1,\r
-            1,\r
-            6,\r
-            0,\r
-            7,\r
-            86400000,\r
-        }\r
         TR:intvector{\r
             2,\r
             1,\r
index a8dc591dec7fe9cf411a602d9847d91f22de6b2a..150a0794b1afa24ee27e9f398d62cab63b6572e4 100644 (file)
@@ -580,6 +580,10 @@ windowsZones:table(nofallback){
             001{"Pacific/Apia"}\r
             WS{"Pacific/Apia"}\r
         }\r
+        "Sao Tome Standard Time"{\r
+            001{"Africa/Sao_Tome"}\r
+            ST{"Africa/Sao_Tome"}\r
+        }\r
         "Saratov Standard Time"{\r
             001{"Europe/Saratov"}\r
             RU{"Europe/Saratov"}\r
@@ -745,7 +749,6 @@ windowsZones:table(nofallback){
             GQ{"Africa/Malabo"}\r
             NE{"Africa/Niamey"}\r
             NG{"Africa/Lagos"}\r
-            ST{"Africa/Sao_Tome"}\r
             TD{"Africa/Ndjamena"}\r
             TN{"Africa/Tunis"}\r
             ZZ{"Etc/GMT-1"}\r
index 40b73ed4e02c2a9d6d53e95d29457469fe005172..0d9cfb54e59088ac1dbe0af5376c46346c60eb7d 100644 (file)
@@ -47,10 +47,10 @@ ar{
             "2000000: <%%spellout-numbering-m< \u0645\u0644\u064A\u0648\u0646[ \u0648 >%spellout-numbering>];",\r
             "1000000000: \u0645\u0644\u064A\u0627\u0631[ \u0648 >%spellout-numbering>];",\r
             "2000000000: <%%spellout-numbering-m< \u0645\u0644\u064A\u0627\u0631[ \u0648 >%spellout-numbering>];",\r
-            "1000000000000: \u0628\u0644\u064A\u0648\u0646[ \u0648 >%spellout-numbering>];",\r
-            "2000000000000: <%%spellout-numbering-m< \u0628\u0644\u064A\u0648\u0646[ \u0648 >%spellout-numbering>];",\r
-            "1000000000000000: \u0628\u0644\u064A\u0627\u0631[ \u0648 >%spellout-numbering>];",\r
-            "2000000000000000: <%%spellout-numbering-m< \u0628\u0644\u064A\u0627\u0631[ \u0648 >%spellout-numbering>];",\r
+            "1000000000000: \u062A\u0631\u0644\u064A\u0648\u0646[ \u0648 >%spellout-numbering>];",\r
+            "2000000000000: <%%spellout-numbering-m< \u062A\u0631\u0644\u064A\u0648\u0646[ \u0648 >%spellout-numbering>];",\r
+            "1000000000000000: \u0643\u0648\u0627\u062F\u0631\u0644\u064A\u0648\u0646[ \u0648 >%spellout-numbering>];",\r
+            "2000000000000000: <%%spellout-numbering-m< \u0643\u0648\u0627\u062F\u0631\u0644\u064A\u0648\u0646[ \u0648 >%spellout-numbering>];",\r
             "1000000000000000000: =#,##0=;",\r
             "%spellout-cardinal-feminine:",\r
             "-x: \u0646\u0627\u0642\u0635 >>;",\r
@@ -88,10 +88,10 @@ ar{
             "2000000: <%%spellout-numbering-m< \u0645\u0644\u064A\u0648\u0646[ \u0648 >%spellout-numbering>];",\r
             "1000000000: \u0645\u0644\u064A\u0627\u0631[ \u0648 >%spellout-numbering>];",\r
             "2000000000: <%%spellout-numbering-m< \u0645\u0644\u064A\u0627\u0631[ \u0648 >%spellout-numbering>];",\r
-            "1000000000000: \u0628\u0644\u064A\u0648\u0646[ \u0648 >%spellout-numbering>];",\r
-            "2000000000000: <%%spellout-numbering-m< \u0628\u0644\u064A\u0648\u0646[ \u0648 >%spellout-numbering>];",\r
-            "1000000000000000: \u0628\u0644\u064A\u0627\u0631[ \u0648 >%spellout-numbering>];",\r
-            "2000000000000000: <%%spellout-numbering-m< \u0628\u0644\u064A\u0627\u0631[ \u0648 >%spellout-numbering>];",\r
+            "1000000000000: \u062A\u0631\u0644\u064A\u0648\u0646[ \u0648 >%spellout-numbering>];",\r
+            "2000000000000: <%%spellout-numbering-m< \u062A\u0631\u0644\u064A\u0648\u0646[ \u0648 >%spellout-numbering>];",\r
+            "1000000000000000: \u0643\u0648\u0627\u062F\u0631\u0644\u064A\u0648\u0646[ \u0648 >%spellout-numbering>];",\r
+            "2000000000000000: <%%spellout-numbering-m< \u0643\u0648\u0627\u062F\u0631\u0644\u064A\u0648\u0646[ \u0648 >%spellout-numbering>];",\r
             "1000000000000000000: =#,##0=;",\r
             "%%spellout-numbering-m:",\r
             "0: \u0635\u0641\u0631;",\r
@@ -127,10 +127,10 @@ ar{
             "2000000: <%%spellout-numbering-m< \u0645\u0644\u064A\u0648\u0646[ \u0648 >%%spellout-numbering-m>];",\r
             "1000000000: \u0645\u0644\u064A\u0627\u0631[ \u0648 >%%spellout-numbering-m>];",\r
             "2000000000: <%%spellout-numbering-m< \u0645\u0644\u064A\u0627\u0631[ \u0648 >%%spellout-numbering-m>];",\r
-            "1000000000000: \u0628\u0644\u064A\u0648\u0646[ \u0648 >%%spellout-numbering-m>];",\r
-            "2000000000000: <%%spellout-numbering-m< \u0628\u0644\u064A\u0648\u0646[ \u0648 >%%spellout-numbering-m>];",\r
-            "1000000000000000: \u0628\u0644\u064A\u0627\u0631[ \u0648 >%%spellout-numbering-m>];",\r
-            "2000000000000000: <%%spellout-numbering-m< \u0628\u0644\u064A\u0627\u0631[ \u0648 >%%spellout-numbering-m>];",\r
+            "1000000000000: \u062A\u0631\u0644\u064A\u0648\u0646[ \u0648 >%%spellout-numbering-m>];",\r
+            "2000000000000: <%%spellout-numbering-m< \u062A\u0631\u0644\u064A\u0648\u0646[ \u0648 >%%spellout-numbering-m>];",\r
+            "1000000000000000: \u0643\u0648\u0627\u062F\u0631\u0644\u064A\u0648\u0646[ \u0648 >%%spellout-numbering-m>];",\r
+            "2000000000000000: <%%spellout-numbering-m< \u0643\u0648\u0627\u062F\u0631\u0644\u064A\u0648\u0646[ \u0648 >%%spellout-numbering-m>];",\r
             "1000000000000000000: =#,##0=;",\r
             "%spellout-cardinal-masculine:",\r
             "-x: \u0646\u0627\u0642\u0635 >>;",\r
@@ -168,10 +168,10 @@ ar{
             "2000000: <%%spellout-numbering-m< \u0645\u0644\u064A\u0648\u0646[ \u0648 >%%spellout-numbering-m>];",\r
             "1000000000: \u0645\u0644\u064A\u0627\u0631[ \u0648 >%%spellout-numbering-m>];",\r
             "2000000000: <%%spellout-numbering-m< \u0645\u0644\u064A\u0627\u0631[ \u0648 >%%spellout-numbering-m>];",\r
-            "1000000000000: \u0628\u0644\u064A\u0648\u0646[ \u0648 >%%spellout-numbering-m>];",\r
-            "2000000000000: <%%spellout-numbering-m< \u0628\u0644\u064A\u0648\u0646[ \u0648 >%%spellout-numbering-m>];",\r
-            "1000000000000000: \u0628\u0644\u064A\u0627\u0631[ \u0648 >%%spellout-numbering-m>];",\r
-            "2000000000000000: <%%spellout-numbering-m< \u0628\u0644\u064A\u0627\u0631[ \u0648 >%%spellout-numbering-m>];",\r
+            "1000000000000: \u062A\u0631\u0644\u064A\u0648\u0646[ \u0648 >%%spellout-numbering-m>];",\r
+            "2000000000000: <%%spellout-numbering-m< \u062A\u0631\u0644\u064A\u0648\u0646[ \u0648 >%%spellout-numbering-m>];",\r
+            "1000000000000000: \u0643\u0648\u0627\u062F\u0631\u0644\u064A\u0648\u0646[ \u0648 >%%spellout-numbering-m>];",\r
+            "2000000000000000: <%%spellout-numbering-m< \u0643\u0648\u0627\u062F\u0631\u0644\u064A\u0648\u0646[ \u0648 >%%spellout-numbering-m>];",\r
             "1000000000000000000: =#,##0=;",\r
             "%%ordinal-ones-feminine:",\r
             "1: \u0627\u0644\u062D\u0627\u062F\u064A\u0629 ;",\r
@@ -221,10 +221,10 @@ ar{
             "2000000: <%spellout-cardinal-feminine< \u0627\u0644\u0623\u0644\u0641[ \u0648 >%spellout-cardinal-feminine>];",\r
             "1000000000: \u0627\u0644\u0645\u0644\u064A\u0627\u0631[ \u0648 >%spellout-cardinal-feminine>];",\r
             "2000000000: <%spellout-cardinal-feminine< \u0645\u0644\u064A\u0627\u0631[ \u0648 >%spellout-cardinal-feminine>];",\r
-            "1000000000000: \u0628\u0644\u064A\u0648\u0646[ \u0648 >%spellout-cardinal-feminine>];",\r
-            "2000000000000: <%spellout-cardinal-feminine< \u0628\u0644\u064A\u0648\u0646[ \u0648 >%spellout-cardinal-feminine>];",\r
-            "1000000000000000: \u0628\u0644\u064A\u0627\u0631[ \u0648 >%spellout-cardinal-feminine>];",\r
-            "2000000000000000: <%spellout-cardinal-feminine< \u0628\u0644\u064A\u0627\u0631[ \u0648 >%spellout-cardinal-feminine>];",\r
+            "1000000000000: \u062A\u0631\u0644\u064A\u0648\u0646[ \u0648 >%spellout-cardinal-feminine>];",\r
+            "2000000000000: <%spellout-cardinal-feminine< \u062A\u0631\u0644\u064A\u0648\u0646[ \u0648 >%spellout-cardinal-feminine>];",\r
+            "1000000000000000: \u0643\u0648\u0627\u062F\u0631\u0644\u064A\u0648\u0646[ \u0648 >%spellout-cardinal-feminine>];",\r
+            "2000000000000000: <%spellout-cardinal-feminine< \u0643\u0648\u0627\u062F\u0631\u0644\u064A\u0648\u0646[ \u0648 >%spellout-cardinal-feminine>];",\r
             "1000000000000000000: =#,##0=;",\r
             "%%ordinal-ones-masculine:",\r
             "1: \u0627\u0644\u062D\u0627\u062F\u064A ;",\r
@@ -274,12 +274,12 @@ ar{
             "2000000: <%%spellout-numbering-m< \u0627\u0644\u0623\u0644\u0641[ \u0648 >%%spellout-numbering-m>];",\r
             "1000000000: \u0627\u0644\u0645\u0644\u064A\u0627\u0631[ \u0648 >%%spellout-numbering-m>];",\r
             "2000000000: <%%spellout-numbering-m< \u0645\u0644\u064A\u0627\u0631[ \u0648 >%%spellout-numbering-m>];",\r
-            "1000000000000: \u0628\u0644\u064A\u0648\u0646[ \u0648 >%%spellout-numbering-m>];",\r
-            "2000000000000: <%%spellout-numbering-m< \u0628\u0644\u064A\u0648\u0646[ \u0648 >%%spellout-numbering-m>];",\r
-            "1000000000000000: \u0628\u0644\u064A\u0627\u0631[ \u0648 >%%spellout-numbering-m>];",\r
-            "2000000000000000: <%%spellout-numbering-m< \u0628\u0644\u064A\u0627\u0631[ \u0648 >%%spellout-numbering-m>];",\r
+            "1000000000000: \u062A\u0631\u0644\u064A\u0648\u0646[ \u0648 >%%spellout-numbering-m>];",\r
+            "2000000000000: <%%spellout-numbering-m< \u062A\u0631\u0644\u064A\u0648\u0646[ \u0648 >%%spellout-numbering-m>];",\r
+            "1000000000000000: \u0643\u0648\u0627\u062F\u0631\u0644\u064A\u0648\u0646[ \u0648 >%%spellout-numbering-m>];",\r
+            "2000000000000000: <%%spellout-numbering-m< \u0643\u0648\u0627\u062F\u0631\u0644\u064A\u0648\u0646[ \u0648 >%%spellout-numbering-m>];",\r
             "1000000000000000000: =#,##0=;",\r
         }\r
     }\r
-    Version{"2.1.27.22"}\r
+    Version{"2.1.41.99"}\r
 }\r
index 825cc12963f8fed7745f2e600d1ae2e911bec250..dfc3d445af646e1f2d5e15ee79d2cb6d662f3432 100644 (file)
@@ -180,5 +180,5 @@ de_CH{
             "0: =%spellout-ordinal=s;",\r
         }\r
     }\r
-    Version{"2.1.37.8"}\r
+    Version{"2.1.44.50"}\r
 }\r
index b977d9e279e8c92901f9156573454cfc1eb49326..d0d1879eb24b6342cf300bc4186051f01f742dbf 100644 (file)
@@ -7,8 +7,6 @@ hu{
             "-x: m\u00EDnusz >>;",\r
             "x.x: =0.0=;",\r
             "0: =%spellout-numbering=;",\r
-            "1100/100: <<\u00ADsz\u00E1z[\u00AD>>];",\r
-            "10000: =%spellout-numbering=;",\r
             "%spellout-numbering:",\r
             "0: =%spellout-cardinal=;",\r
             "%spellout-cardinal:",\r
@@ -37,23 +35,23 @@ hu{
             "90: kilencven[\u00AD>>];",\r
             "100: sz\u00E1z[\u00AD>>];",\r
             "200: <%%spellout-cardinal-initial<\u00ADsz\u00E1z[\u00AD>>];",\r
-            "1000: ezer[ >>];",\r
-            "2000: <%%spellout-cardinal-initial<\u00ADezer[ >>];",\r
-            "1000000: <%%spellout-cardinal-initial< milli\u00F3[ >>];",\r
-            "1000000000: <%%spellout-cardinal-initial< milli\u00E1rd[ >>];",\r
-            "1000000000000: <%%spellout-cardinal-initial< billi\u00F3[ >>];",\r
-            "1000000000000000: <%%spellout-cardinal-initial< billi\u00E1rd[ >>];",\r
+            "1000: ezer[\u00AD>>];",\r
+            "2000: <%%spellout-cardinal-initial<\u00ADezer[\u00AD>>];",\r
+            "1000000: <%%spellout-cardinal-initial<\u00ADmilli\u00F3[\u00AD>>];",\r
+            "1000000000: <%%spellout-cardinal-initial<\u00ADmilli\u00E1rd[\u00AD>>];",\r
+            "1000000000000: <%%spellout-cardinal-initial<\u00ADbilli\u00F3[\u00AD>>];",\r
+            "1000000000000000: <%%spellout-cardinal-initial<\u00ADbilli\u00E1rd[\u00AD>>];",\r
             "1000000000000000000: =#,##0=;",\r
             "%spellout-cardinal-verbose:",\r
             "-x: m\u00EDnusz >>;",\r
             "x.x: << eg\u00E9sz >>;",\r
             "0: =%spellout-cardinal=;",\r
             "100: <<\u00ADsz\u00E1z[\u00AD>>];",\r
-            "1000: <<\u00ADezer[ >>];",\r
-            "1000000: << milli\u00F3[ >>];",\r
-            "1000000000: << milli\u00E1rd[ >>];",\r
-            "1000000000000: << billi\u00F3[ >>];",\r
-            "1000000000000000: << billi\u00E1rd[ >>];",\r
+            "1000: <<\u00ADezer[\u00AD>>];",\r
+            "1000000: <<\u00ADmilli\u00F3[\u00AD>>];",\r
+            "1000000000: <<\u00ADmilli\u00E1rd[\u00AD>>];",\r
+            "1000000000000: <<\u00ADbilli\u00F3[\u00AD>>];",\r
+            "1000000000000000: <<\u00ADbilli\u00E1rd[\u00AD>>];",\r
             "1000000000000000000: =#,##0=;",\r
             "%%spellout-cardinal-initial:",\r
             "1: egy;",\r
@@ -97,13 +95,15 @@ hu{
             "100: sz\u00E1z>%%spellout-ordinal-adik>;",\r
             "200: <%%spellout-cardinal-initial<sz\u00E1z>%%spellout-ordinal-adik>;",\r
             "1000: ezr>>;",\r
-            "2000: <%%spellout-cardinal-initial<ezr>>;",\r
-            "1000000: <%%spellout-cardinal-initial< milliom>%%spellout-ordinal-odik>;",\r
+            "1001: ezer\u00AD>>;",\r
+            "2000: <%%spellout-cardinal-initial<\u00ADezr>>;",\r
+            "2001: <%%spellout-cardinal-initial<\u00ADezer\u00AD>>;",\r
+            "1000000: <%%spellout-cardinal-initial<\u00ADmilliom\u00AD>%%spellout-ordinal-odik>;",\r
             "1000000000: =#,##0=.;",\r
             "%spellout-ordinal-verbose:",\r
             "-x: m\u00EDnusz >>;",\r
             "x.x: =#,##0.#=;",\r
-            "0: nulla;",\r
+            "0: nulladik;",\r
             "1: els\u0151;",\r
             "2: m\u00E1sodik;",\r
             "3: =%%spellout-ordinal-verbose-larger=;",\r
@@ -116,10 +116,11 @@ hu{
             "%%spellout-ordinal-verbose-larger:",\r
             "0: =%%spellout-ordinal-larger=;",\r
             "100: <%spellout-cardinal-verbose<sz\u00E1z>%%spellout-ordinal-verbose-adik>;",\r
-            "1000: <%spellout-cardinal-verbose<ezr>>;",\r
-            "1000000: <%spellout-cardinal-verbose< milliom>%%spellout-ordinal-verbose-odik>;",\r
+            "1000: <%spellout-cardinal-verbose<\u00ADezr>>;",\r
+            "1001: <%spellout-cardinal-verbose<\u00ADezer\u00AD>>;",\r
+            "1000000: <%spellout-cardinal-verbose<\u00ADmilliom\u00AD>%%spellout-ordinal-verbose-odik>;",\r
             "1000000000: =#,##0=.;",\r
         }\r
     }\r
-    Version{"2.1.27.22"}\r
+    Version{"2.1.41.98"}\r
 }\r
index 1dea08018a331f01de76b56e5ec3127961638d6a..24f49061ce79be4e7b09a84c5177e8c6f0c7fd4d 100644 (file)
@@ -1,6 +1,6 @@
 # © 2016 and later: Unicode, Inc. and others.\r
 # License & terms of use: http://www.unicode.org/copyright.html#License\r
-RBNF_CLDR_VERSION = 33.1\r
+RBNF_CLDR_VERSION = 34\r
 # A list of txt's to build\r
 # Note:\r
 #\r
index e3517190e6e1ae09bb7a420a1e5f8622e7dc436c..464fbda5d1076ef958acee7dca2357435754c4d7 100644 (file)
@@ -146,5 +146,5 @@ sr_Latn{
             "400: <%spellout-cardinal-feminine<sto>%%ordti>;",\r
         }\r
     }\r
-    Version{"2.1.37.8"}\r
+    Version{"2.1.44.50"}\r
 }\r
index a2f057117d5142ac2738119bc2d09a60147399c4..fc7d9e89b02fb0480aa273f03c1ca5b0f6036a47 100644 (file)
@@ -170,5 +170,5 @@ yue_Hans{
             "0: \u7B2C=%spellout-numbering=;",\r
         }\r
     }\r
-    Version{"2.1.37.8"}\r
+    Version{"2.1.44.50"}\r
 }\r
index dac29fedfdfb741a1b05091a3d4ae1b769f2b8b5..051526117c5fff8907abdb52cce054ffbb072ff6 100644 (file)
@@ -15,7 +15,7 @@ af{
         018{"Suider-Afrika"}\r
         019{"Amerikas"}\r
         021{"Noordelike Amerika"}\r
-        029{"Karibies"}\r
+        029{"Karibiese streek"}\r
         030{"Oos-Asië"}\r
         034{"Suid-Asië"}\r
         035{"Suidoos-Asië"}\r
@@ -227,7 +227,7 @@ af{
         PW{"Palau"}\r
         PY{"Paraguay"}\r
         QA{"Katar"}\r
-        QO{"Omliggende Oseanië"}\r
+        QO{"Afgeleë Oseanië"}\r
         RE{"Réunion"}\r
         RO{"Roemenië"}\r
         RS{"Serwië"}\r
@@ -310,5 +310,5 @@ af{
         FK{"Falklandeilande (Malvinas)"}\r
         MK{"Macedonië (VJRM)"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.65"}\r
 }\r
index f0f36f9e3877b801c2867c5b366419d969b28cbc..e3d7c974784b387de1a62460802e3c8daecca465 100644 (file)
@@ -16,17 +16,17 @@ am{
         019{"አሜሪካ"}\r
         021{"ሰሜናዊ አሜሪካ"}\r
         029{"ካሪቢያን"}\r
-        030{"á\88\9dá\8b\95á\88«á\89£á\8b\8a á\8a¥á\88²ያ"}\r
+        030{"á\88\9dá\88µá\88«á\89\83á\8b\8a á\8a¥á\88µያ"}\r
         034{"ደቡባዊ እሲያ"}\r
         035{"ምዕራባዊ ደቡብ እሲያ"}\r
         039{"ደቡባዊ አውሮፓ"}\r
-        053{"á\8a á\8b\8dá\88µá\89µá\88«á\88\8aያ"}\r
+        053{"á\8a á\8b\8dá\88µá\89µá\88«á\88\8cá\8b¥ያ"}\r
         054{"ሜላኔዥያ"}\r
         057{"የማይክሮኔዥያን ክልል"}\r
         061{"ፖሊኔዥያ"}\r
         142{"እሲያ"}\r
         143{"መካከለኛው እሲያ"}\r
-        145{"á\88\9dá\88µá\88«á\89\83á\8b\8a á\8a¥á\88²ያ"}\r
+        145{"á\88\9dá\8b\95á\88«á\89£á\8b\8a á\8a¥á\88µያ"}\r
         150{"አውሮፓ"}\r
         151{"ምዕራባዊ አውሮፓ"}\r
         154{"ሰሜናዊ አውሮፓ"}\r
@@ -88,9 +88,9 @@ am{
         CU{"ኩባ"}\r
         CV{"ኬፕ ቬርዴ"}\r
         CW{"ኩራሳዎ"}\r
-        CX{"á\8b¨á\8c\88á\8a\93 ደሴት"}\r
+        CX{"á\8a­á\88ªá\88µá\88\9bá\88µ ደሴት"}\r
         CY{"ሳይፕረስ"}\r
-        CZ{"á\89¼á\89½á\8a\92ያ"}\r
+        CZ{"á\89¼á\89ºያ"}\r
         DE{"ጀርመን"}\r
         DG{"ዲዬጎ ጋርሺያ"}\r
         DJ{"ጂቡቲ"}\r
@@ -262,7 +262,7 @@ am{
         TH{"ታይላንድ"}\r
         TJ{"ታጃኪስታን"}\r
         TK{"ቶክላው"}\r
-        TL{"á\88\9dá\88µá\88«á\89\85 á\88\8cá\88µá\89µ"}\r
+        TL{"á\89²á\88\9eá\88­ á\88\8cá\88µá\89´"}\r
         TM{"ቱርክሜኒስታን"}\r
         TN{"ቱኒዚያ"}\r
         TO{"ቶንጋ"}\r
@@ -296,7 +296,7 @@ am{
         ZZ{"ያልታወቀ ክልል"}\r
     }\r
     Countries%short{\r
-        GB{"á\8b©á\8a\93á\8b­á\89µá\8bµ á\8aªá\8a\95á\8c\8dá\8b°á\88\9d"}\r
+        GB{"á\8b©á\8a¬"}\r
         HK{"ሆንግ ኮንግ"}\r
         MO{"ማካኡ"}\r
         PS{"ፍልስጥኤም"}\r
@@ -312,5 +312,5 @@ am{
         MK{"መቄዶንያ (የቀድሞ የዩጎስላቭ መቄዶንያ ሪፐብሊክ)"}\r
         TL{"ምስራቅ ቲሞር"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.65"}\r
 }\r
index 9a917fc4b91b884cd4aad6936f4caee1c7e51789..689b9bcba8418c78a438fe99bc563b84a71d372c 100644 (file)
@@ -262,7 +262,7 @@ ar{
         TH{"تايلاند"}\r
         TJ{"طاجيكستان"}\r
         TK{"توكيلو"}\r
-        TL{"تيمور- ليشتي"}\r
+        TL{"تيمور - ليشتي"}\r
         TM{"تركمانستان"}\r
         TN{"تونس"}\r
         TO{"تونغا"}\r
@@ -312,5 +312,5 @@ ar{
         MK{"مقدونيا- جمهورية مقدونيا اليوغسلافية السابقة"}\r
         TL{"تيمور الشرقية"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.50"}\r
 }\r
index ead1674e0f93f3351b1e31ae99c316ee58d868e6..c25e8238f703edca81caa40ed02b97a2f91f7d5d 100644 (file)
@@ -7,7 +7,6 @@ ar_SA{
         EA{"سبتة ومليلية"}\r
         MO{"ماكاو الصينية (منطقة إدارية خاصة)"}\r
         MS{"مونتيسيرات"}\r
-        PM{"سان بيير وميكولون"}\r
         UY{"أوروغواي"}\r
     }\r
     Countries%short{\r
@@ -16,5 +15,5 @@ ar_SA{
     Countries%variant{\r
         CZ{"التشيك"}\r
     }\r
-    Version{"2.1.38.80"}\r
+    Version{"2.1.43.65"}\r
 }\r
index 5d9862a4617fc476614065f90c238155400afe60..f3187729683f702984bc907668b192f2f04aea09 100644 (file)
@@ -307,8 +307,9 @@ as{
         CG{"কঙ্গো (প্রজাতন্ত্র)"}\r
         CI{"আইভৰী কোষ্ট"}\r
         CZ{"চেক প্রজাতন্ত্র"}\r
+        FK{"ফকলেণ্ড দ্বীপপুঞ্জ (আইলেছ মালভিনাছ)"}\r
         MK{"মেচিডোনীয়া (FYROM)"}\r
         TL{"পূৱ টিমোৰ"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.94"}\r
 }\r
index 5a0f4f19acf4e19d9b8d708aa561e8b7483b8167..69585368eed4557779f8637d0e3cfc8824c8efe3 100644 (file)
@@ -310,5 +310,5 @@ ast{
         MK{"Macedonia (ARYDM)"}\r
         TL{"Timor Este"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.91"}\r
 }\r
index abdf5a659597621338d2299982f3d0c23e8b0358..48309797f5c35fda3ca9ecf52021cdcd1012f106 100644 (file)
@@ -312,5 +312,5 @@ az{
         MK{"Makedoniya (KYRM)"}\r
         TL{"Doğu Timor"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.53"}\r
 }\r
index e52abafbcf667d828f8e28bae18e1ae3bd92c8a0..abe464f66d5c1a828ef569d17d4c97ac04f03d97 100644 (file)
@@ -302,5 +302,5 @@ az_Cyrl{
         FK{"Фолкленд адалары (Малвин адалары)"}\r
         MK{"Македонија (КЈРМ)"}\r
     }\r
-    Version{"2.1.38.69"}\r
+    Version{"2.1.44.53"}\r
 }\r
index 2641f32852ad370a5045fbaea4b272597b33ec02..9f9831c2b8f21ea88e48c502d560578d9a483050 100644 (file)
@@ -311,5 +311,5 @@ be{
         MK{"Македонія (БЮРМ)"}\r
         TL{"Усходні Тымор"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.65"}\r
 }\r
index 8b263e2e7c97d6d4550db4d6f052b8a66a5075f4..24f10dcd3a6306eaf946f2d329b00e839b39e5c4 100644 (file)
@@ -65,7 +65,7 @@ bg{
         BO{"Боливия"}\r
         BQ{"Карибска Нидерландия"}\r
         BR{"Бразилия"}\r
-        BS{"Бахами"}\r
+        BS{"Бахамски острови"}\r
         BT{"Бутан"}\r
         BV{"остров Буве"}\r
         BW{"Ботсвана"}\r
@@ -110,7 +110,7 @@ bg{
         EZ{"Еврозона"}\r
         FI{"Финландия"}\r
         FJ{"Фиджи"}\r
-        FK{"Фолклендски острови"}\r
+        FK{"Фолкландски острови"}\r
         FM{"Микронезия"}\r
         FO{"Фарьорски острови"}\r
         FR{"Франция"}\r
@@ -305,10 +305,9 @@ bg{
     Countries%variant{\r
         CD{"Конго (ДРК)"}\r
         CG{"Конго (Република)"}\r
-        CI{"Бряг на слоновата кост"}\r
         CZ{"Чешка република"}\r
-        FK{"Фолклендски острови (Малвински острови)"}\r
+        FK{"Фолкландски острови (Малвински острови)"}\r
         MK{"Бивша югославска република Македония"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.94"}\r
 }\r
index 07774f98f9f8a478703b6666d1bcc42f3823ac24..d13e071c034abae16b828a849509573c4d9a1030 100644 (file)
@@ -178,7 +178,7 @@ bn{
         LY{"লিবিয়া"}\r
         MA{"মোরক্কো"}\r
         MC{"মোনাকো"}\r
-        MD{"মà§\8bলà§\8dদাভিয়া"}\r
+        MD{"মলডà§\8bভা"}\r
         ME{"মন্টিনিগ্রো"}\r
         MF{"সেন্ট মার্টিন"}\r
         MG{"মাদাগাস্কার"}\r
@@ -312,5 +312,5 @@ bn{
         MK{"ম্যাসিডোনিয়া (FYROM)"}\r
         TL{"পূর্ব তিমুর"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.91"}\r
 }\r
index a92541b7a43b75a3b4a70e18b075c34bc6f22a3c..a1c3fb13f29bf0cbf152002c542d6cf1ae1406e3 100644 (file)
@@ -2,11 +2,10 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 bn_IN{\r
     Countries{\r
-        MD{"মলডোভা"}\r
         UM{"মার্কিন যুক্তরাষ্ট্রের পার্শ্ববর্তী দ্বীপপুঞ্জ"}\r
     }\r
     Countries%variant{\r
         CD{"কঙ্গো (DRC)"}\r
     }\r
-    Version{"2.1.38.69"}\r
+    Version{"2.1.43.65"}\r
 }\r
index 2ab6594a2b3d84641f7b02ee50b0e8139a52131a..a198a80b5d6544bb6634c78d0dafa5891abba3eb 100644 (file)
@@ -311,5 +311,5 @@ br{
         MK{"Makedonia (RYKM)"}\r
         TL{"Timor ar Reter"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.91"}\r
 }\r
index ab46f4136ec689e1ebc34b107ecb44d6c0bb7765..cb481d81355908f865c0d179587507c03992eac5 100644 (file)
@@ -281,5 +281,5 @@ brx{
         ZW{"ज़ीम्बाब्वे"}\r
         ZZ{"अज्ञात या अवैध प्रदेश"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.41.34"}\r
 }\r
index a9f8aee42d0238ffb2a9b18282f1d3721341aac6..42dfc1042cdba669548eab498bccc493634ad487 100644 (file)
@@ -312,5 +312,5 @@ bs{
         MK{"Makedonija (BJR)"}\r
         TL{"TL"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.88"}\r
 }\r
index 238735d5faa19941d62a5cb994526ccc8ba56f4c..c404e344ea1c32eec94eca48434a43c5bedbf837 100644 (file)
@@ -308,5 +308,5 @@ bs_Cyrl{
         FK{"Фокландска (Малвинска) острва"}\r
         MK{"Македонија (БЈР)"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.41.34"}\r
 }\r
index d9ad2e45eb52b44c294dd2b9d489a7830385a26d..83f0fbe3747693d9d55f51ecff0bd1b12b12f3e5 100644 (file)
@@ -310,5 +310,5 @@ ca{
         FK{"Illes Malvines (Illes Falkland)"}\r
         MK{"Macedònia (Antiga República Iugoslava de Macedònia)"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.65"}\r
 }\r
index 48bc37c690a1b6642ecf790c39d0652eb2762a4a..214f36c6efa2177092f9a69524610ad554907fdf 100644 (file)
@@ -322,5 +322,5 @@ ccp{
         MK{"𑄟𑄬𑄥𑄨𑄓𑄮𑄚𑄠(FYROM)"}\r
         TL{"𑄛𑄪𑄉𑄮 𑄖𑄨𑄟𑄪𑄢𑄴"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.50"}\r
 }\r
index da09a77d76eb4784d733b3d07075cbc8c4a6098d..93d791870cb7d4c0a1e8520c0c180ca16ec7a613 100644 (file)
@@ -308,5 +308,5 @@ ce{
         FK{"Фолклендан гӀайренаш (Мальвинаш)"}\r
         TL{"Тимор-Лесте"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.41.34"}\r
 }\r
index a1d70b85d2056ba5de547ac5529367e07f123cbb..5ca9d94720a2d87222f07be7a925be8eb25f3858 100644 (file)
@@ -265,7 +265,7 @@ chr{
         TL{"ᏘᎼᎵ-ᎴᏍᏖ"}\r
         TM{"ᏛᎵᎩᎺᏂᏍᏔᏂ"}\r
         TN{"ᏚᏂᏏᏍᎠ"}\r
-        TO{"á\8f\94á\8f\82á\8eª"}\r
+        TO{"á\8f\99á\8e¾á\8e¦"}\r
         TR{"ᎬᏃ"}\r
         TT{"ᏟᏂᏕᏗ ᎠᎴ ᏙᏆᎪ"}\r
         TV{"ᏚᏩᎷ"}\r
@@ -311,5 +311,5 @@ chr{
         MK{"ᎹᏎᏙᏂᏯ (FYROM)"}\r
         TL{"ᏗᎧᎸᎬᎢ ᏘᎼᎵ"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.2"}\r
 }\r
index 4289f3325775ccdf8d6d5373d501680f9b3968da..4cf2034e2c85c088bba2021956e7c7005a440a09 100644 (file)
@@ -2,13 +2,43 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 ckb{\r
     Countries{\r
-        039{"ئەورووپای باشووری"}\r
-        143{"ئاسیای ناوەندی"}\r
-        145{"ئاسیای ڕۆژاوا"}\r
+        001{"جیهان"}\r
+        002{"ئەفریقا"}\r
+        003{"ئەمەریکای باکوور"}\r
+        005{"ئەمەریکای باشوور"}\r
+        009{"ئۆقیانووسیا"}\r
+        011{"ڕۆژاوای ئەفریقا"}\r
+        013{"ئەمریکای ناوەڕاست"}\r
+        014{"ڕۆژھەڵاتی ئەفریقا"}\r
+        015{"باکووری ئەفریقا"}\r
+        017{"ناوەڕاستی ئەفریقا"}\r
+        018{"باشووری ئەفریقا"}\r
+        019{"ئەمەریکای باکوور و باشوور"}\r
+        021{"ئەمریکای باکوور"}\r
+        029{"کاریبی"}\r
+        030{"ڕۆژهەڵاتی ئاسیا"}\r
+        034{"باشووری ئاسیا"}\r
+        035{"باشووری ڕۆژھەڵاتی ئاسیا"}\r
+        039{"باشووری ئەورووپا"}\r
+        053{"ئۆسترالیا"}\r
+        054{"میلانێزیا"}\r
+        057{"ناوچەی مایکرۆنیزیا"}\r
+        061{"پۆلینیزیا"}\r
+        142{"ئاسیا"}\r
+        143{"ناوەڕاستی ئاسیا"}\r
+        145{"ڕۆژاوای ئاسیا"}\r
+        150{"ئەورووپا"}\r
+        151{"ڕۆژهەڵاتی ئەورووپا"}\r
+        154{"باکووری ئەورووپا"}\r
+        155{"ڕۆژاوای ئەورووپا"}\r
+        202{"ئەفریقای ژێر سەحرا"}\r
+        419{"ئەمەریکای لاتین"}\r
+        AC{"دوورگەی ئاسینسیۆن"}\r
         AD{"ئاندۆرا"}\r
         AE{"میرنشینە یەکگرتووە عەرەبییەکان"}\r
         AF{"ئەفغانستان"}\r
         AG{"ئانتیگوا و باربودا"}\r
+        AI{"ئانگویلا"}\r
         AL{"ئەڵبانیا"}\r
         AM{"ئەرمەنستان"}\r
         AO{"ئەنگۆلا"}\r
@@ -18,6 +48,7 @@ ckb{
         AT{"نەمسا"}\r
         AU{"ئوسترالیا"}\r
         AW{"ئارووبا"}\r
+        AX{"دوورگەکانی ئالاند"}\r
         AZ{"ئازەربایجان"}\r
         BA{"بۆسنیا و ھەرزەگۆڤینا"}\r
         BB{"باربادۆس"}\r
@@ -28,80 +59,115 @@ ckb{
         BH{"بەحرەین"}\r
         BI{"بوروندی"}\r
         BJ{"بێنین"}\r
+        BL{"سەن بارتێلێمی"}\r
+        BM{"بێرموودا"}\r
+        BN{"بروونای"}\r
         BO{"بۆلیڤیا"}\r
+        BQ{"دوورگە کاریبیەکانی هۆڵەندا"}\r
         BR{"برازیل"}\r
         BS{"بەھاما"}\r
         BT{"بووتان"}\r
+        BV{"دوورگەی بووڤێ"}\r
         BW{"بۆتسوانا"}\r
         BY{"بیلاڕووس"}\r
         BZ{"بەلیز"}\r
-        CA{"کانەدا"}\r
+        CA{"کەنەدا"}\r
+        CC{"دوورگەکانی کیلینگ"}\r
         CD{"کۆنگۆ کینشاسا"}\r
         CF{"کۆماری ئەفریقای ناوەڕاست"}\r
-        CH{"سویسرا"}\r
+        CG{"کۆنگۆ برازاڤیل"}\r
+        CH{"سویسڕا"}\r
         CI{"کۆتدیڤوار"}\r
+        CK{"دوورگەکانی کوک"}\r
         CL{"چیلی"}\r
         CM{"کامیرۆن"}\r
         CN{"چین"}\r
         CO{"کۆلۆمبیا"}\r
+        CP{"دوورگەی کلیپێرتۆن"}\r
         CR{"کۆستاریکا"}\r
         CU{"کووبا"}\r
         CV{"کەیپڤەرد"}\r
+        CW{"کوراچاو"}\r
+        CX{"دوورگەی کریسمس"}\r
         CY{"قیبرس"}\r
         CZ{"کۆماری چیک"}\r
         DE{"ئەڵمانیا"}\r
+        DG{"دیەگۆ گارسیا"}\r
         DJ{"جیبووتی"}\r
         DK{"دانمارک"}\r
         DM{"دۆمینیکا"}\r
+        DO{"کۆماری دۆمینیکا"}\r
         DZ{"جەزایر"}\r
+        EA{"سێئووتا و مێلییا"}\r
         EC{"ئیکوادۆر"}\r
+        EE{"ئیستۆنیا"}\r
         EG{"میسر"}\r
+        EH{"سەحرای ڕۆژاوا"}\r
         ER{"ئەریتریا"}\r
         ES{"ئیسپانیا"}\r
         ET{"ئەتیۆپیا"}\r
+        EU{"یەکێتیی ئەورووپا"}\r
+        EZ{"ناوچەی یۆرۆ"}\r
         FI{"فینلاند"}\r
         FJ{"فیجی"}\r
+        FK{"دوورگەکانی مالڤیناس"}\r
         FM{"مایکرۆنیزیا"}\r
+        FO{"دوورگەکانی فارەو"}\r
         FR{"فەڕەنسا"}\r
         GA{"گابۆن"}\r
         GB{"شانشینی یەکگرتوو"}\r
         GD{"گرینادا"}\r
         GE{"گورجستان"}\r
+        GF{"گیانای فەرەنسا"}\r
+        GG{"گێرنزی"}\r
         GH{"غەنا"}\r
+        GI{"گیبرالتار"}\r
         GL{"گرینلاند"}\r
         GM{"گامبیا"}\r
         GN{"گینێ"}\r
+        GP{"گوادێلۆپ"}\r
+        GQ{"گینێی ئیستوایی"}\r
         GR{"یۆنان"}\r
+        GS{"دوورگەکانی جۆرجیا و ساندویچی باشوور"}\r
         GT{"گواتیمالا"}\r
         GU{"گوام"}\r
         GW{"گینێ بیساو"}\r
         GY{"گویانا"}\r
+        HK{"هۆنگ کۆنگ"}\r
+        HM{"دوورگەکانی هێرد و مەکدانڵد"}\r
         HN{"ھۆندووراس"}\r
         HR{"کرۆواتیا"}\r
         HT{"ھایتی"}\r
-        HU{"مەجارستان"}\r
+        HU{"هەنگاریا"}\r
+        IC{"دوورگەکانی کەناری"}\r
         ID{"ئیندۆنیزیا"}\r
         IE{"ئیرلەند"}\r
         IL{"ئیسرائیل"}\r
+        IM{"دوورگەی مان"}\r
         IN{"ھیندستان"}\r
+        IO{"ھەرێمی بەریتانی لە ئۆقیانووسی ھیند"}\r
         IQ{"عێراق"}\r
         IR{"ئێران"}\r
         IS{"ئایسلەند"}\r
-        IT{"ئیتاڵی"}\r
+        IT{"ئیتالیا"}\r
+        JE{"جێرسی"}\r
         JM{"جامایکا"}\r
         JO{"ئوردن"}\r
         JP{"ژاپۆن"}\r
+        KE{"کینیا"}\r
         KG{"قرغیزستان"}\r
         KH{"کەمبۆدیا"}\r
         KI{"کیریباس"}\r
         KM{"دوورگەکانی کۆمۆر"}\r
-        KN{"سەینت کیتس و نیڤیس"}\r
+        KN{"سەن کیتس و نیڤیس"}\r
         KP{"کۆریای باکوور"}\r
+        KR{"کۆریای باشوور"}\r
         KW{"کوەیت"}\r
+        KY{"دوورگەکانی کایمان"}\r
         KZ{"کازاخستان"}\r
         LA{"لاوس"}\r
         LB{"لوبنان"}\r
-        LC{"سەینت لووسیا"}\r
+        LC{"سەن لووسیا"}\r
         LI{"لیختنشتاین"}\r
         LK{"سریلانکا"}\r
         LR{"لیبەریا"}\r
@@ -114,37 +180,55 @@ ckb{
         MC{"مۆناکۆ"}\r
         MD{"مۆلدۆڤا"}\r
         ME{"مۆنتینیگرۆ"}\r
+        MF{"سەن مارتین"}\r
         MG{"ماداگاسکار"}\r
         MH{"دوورگەکانی مارشاڵ"}\r
+        MK{"ماکەدۆنیا"}\r
         ML{"مالی"}\r
         MM{"میانمار"}\r
         MN{"مەنگۆلیا"}\r
+        MO{"ماکائۆ"}\r
+        MP{"دوورگەکانی ماریانای باکوور"}\r
+        MQ{"مارتینیک"}\r
         MR{"مۆریتانیا"}\r
+        MS{"مۆنتسێرات"}\r
         MT{"ماڵتا"}\r
+        MU{"مووریتیووس"}\r
         MV{"مالدیڤ"}\r
         MW{"مالاوی"}\r
         MX{"مەکسیک"}\r
         MY{"مالیزیا"}\r
         MZ{"مۆزامبیک"}\r
         NA{"نامیبیا"}\r
+        NC{"نیووکالێدۆنیا"}\r
         NE{"نیجەر"}\r
+        NF{"دوورگەی نۆرفۆڵک"}\r
+        NG{"نیجریا"}\r
         NI{"نیکاراگوا"}\r
         NL{"ھۆڵەندا"}\r
         NO{"نۆرویژ"}\r
         NP{"نیپال"}\r
         NR{"نائوروو"}\r
+        NU{"نیووئی"}\r
         NZ{"نیوزیلاند"}\r
         OM{"عومان"}\r
         PA{"پاناما"}\r
-        PE{"پیروو"}\r
+        PE{"پێروو"}\r
+        PF{"پۆلینیسیای فەرەنسا"}\r
         PG{"پاپوا گینێی نوێ"}\r
         PH{"فلیپین"}\r
         PK{"پاکستان"}\r
         PL{"پۆڵەندا"}\r
+        PM{"سەن پیێر و میکێلۆن"}\r
+        PN{"دوورگەکانی پیتکەرن"}\r
+        PR{"پۆرتۆڕیکۆ"}\r
+        PS{"ناوچە فەلەستینیەکان"}\r
         PT{"پورتوگال"}\r
         PW{"پالاو"}\r
         PY{"پاراگوای"}\r
         QA{"قەتەر"}\r
+        QO{"دەرەوەی ئۆقیانووسیا"}\r
+        RE{"ڕییوونیەن"}\r
         RO{"ڕۆمانیا"}\r
         RS{"سربیا"}\r
         RU{"ڕووسیا"}\r
@@ -155,21 +239,30 @@ ckb{
         SD{"سوودان"}\r
         SE{"سوید"}\r
         SG{"سینگاپور"}\r
+        SH{"سەن هێلێنا"}\r
         SI{"سلۆڤێنیا"}\r
+        SJ{"سڤالبارد و یان مایەن"}\r
         SK{"سلۆڤاکیا"}\r
         SL{"سیەرالیۆن"}\r
         SM{"سان مارینۆ"}\r
-        SN{"سÛ\8cÙ\86Û\8cگاÙ\84"}\r
+        SN{"سÛ\8eÙ\86Û\8eگاڵ"}\r
         SO{"سۆمالیا"}\r
         SR{"سورینام"}\r
+        SS{"سوودانی باشوور"}\r
         ST{"ساوتۆمێ و پرینسیپی"}\r
         SV{"ئێلسالڤادۆر"}\r
+        SX{"سینت مارتن"}\r
         SY{"سووریا"}\r
         SZ{"سوازیلاند"}\r
+        TA{"تریستێن دا کوونا"}\r
+        TC{"دوورگەکانی تورکس و کایکۆس"}\r
         TD{"چاد"}\r
+        TF{"هەرێمە باشووریەکانی فەرەنسا"}\r
         TG{"تۆگۆ"}\r
         TH{"تایلەند"}\r
         TJ{"تاجیکستان"}\r
+        TK{"تۆکێلاو"}\r
+        TL{"تیمۆری ڕۆژھەڵات"}\r
         TM{"تورکمانستان"}\r
         TN{"توونس"}\r
         TO{"تۆنگا"}\r
@@ -180,22 +273,38 @@ ckb{
         TZ{"تانزانیا"}\r
         UA{"ئۆکرانیا"}\r
         UG{"ئوگاندا"}\r
+        UM{"دوورگەکانی دەرەوەی ئەمریکا"}\r
+        UN{"نەتەوە یەکگرتووەکان"}\r
         US{"ویلایەتە یەکگرتووەکان"}\r
         UY{"ئوروگوای"}\r
         UZ{"ئوزبەکستان"}\r
         VA{"ڤاتیکان"}\r
         VC{"سەینت ڤینسەنت و گرینادینز"}\r
+        VE{"ڤەنزوێلا"}\r
+        VG{"دوورگەکانی ڤیرجنی بەریتانیا"}\r
+        VI{"دوورگەکانی ڤیرجنی ئەمەریکا"}\r
         VN{"ڤیەتنام"}\r
         VU{"ڤانوواتوو"}\r
+        WF{"والیس و فوتونا"}\r
         WS{"ساموا"}\r
+        XK{"کۆسۆڤۆ"}\r
         YE{"یەمەن"}\r
+        YT{"مایۆت"}\r
         ZA{"ئەفریقای باشوور"}\r
         ZM{"زامبیا"}\r
         ZW{"زیمبابوی"}\r
+        ZZ{"ناوچەی نەناسراو"}\r
+    }\r
+    Countries%short{\r
+        GB{"شانشینی یەکگرتوو"}\r
+        HK{"هۆنگ کۆنگ"}\r
+        MO{"ماکائۆ"}\r
+        PS{"فەلەستین"}\r
+        US{"ویلایەتە یەکگرتووەکان"}\r
     }\r
     Countries%variant{\r
         CD{"کۆماری دیموکراتیکی کۆنگۆ"}\r
         CG{"کۆماری کۆنگۆ"}\r
     }\r
-    Version{"2.1.38.71"}\r
+    Version{"2.1.44.88"}\r
 }\r
index 8f94315f1493700eb5a135b6e9096fff85ebf44a..d32114b32a049aebe81fdf004a28e912ca58491b 100644 (file)
@@ -311,5 +311,5 @@ cs{
         FK{"Falklandské ostrovy (Malvíny)"}\r
         MK{"Makedonie (FYROM)"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.91"}\r
 }\r
index 13f5f256395a9b687ca92c56b7dc7ad024287ea6..87830fbf0fa26d32d0a753835edab8515cdafdc8 100644 (file)
@@ -133,7 +133,7 @@ cy{
         GU{"Guam"}\r
         GW{"Guiné-Bissau"}\r
         GY{"Guyana"}\r
-        HK{"Hong Kong RhGA Tsieina"}\r
+        HK{"Hong Kong SAR Tseina"}\r
         HM{"Ynys Heard ac Ynysoedd McDonald"}\r
         HN{"Honduras"}\r
         HR{"Croatia"}\r
@@ -312,5 +312,5 @@ cy{
         MK{"Macedonia (CWIM)"}\r
         TL{"Dwyrain Timor"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.91"}\r
 }\r
index e94a7bd899962b9a8086dbbd3c9f6bf2cd25caf9..8d4cb7d881f3451ea25fe0d2fd4bf99c5959ca00 100644 (file)
@@ -13,7 +13,7 @@ da{
         015{"Nordafrika"}\r
         017{"Centralafrika"}\r
         018{"Det sydlige Afrika"}\r
-        019{"Amerika"}\r
+        019{"Nord-, Mellem- og Sydamerika"}\r
         021{"Det nordlige Amerika"}\r
         029{"Caribien"}\r
         030{"Østasien"}\r
@@ -31,7 +31,7 @@ da{
         151{"Østeuropa"}\r
         154{"Nordeuropa"}\r
         155{"Vesteuropa"}\r
-        202{"Afrika syd for Sahara"}\r
+        202{"Subsaharisk Afrika"}\r
         419{"Latinamerika"}\r
         AC{"Ascensionøen"}\r
         AD{"Andorra"}\r
@@ -257,7 +257,7 @@ da{
         TA{"Tristan da Cunha"}\r
         TC{"Turks- og Caicosøerne"}\r
         TD{"Tchad"}\r
-        TF{"De franske besiddelser i Det Sydlige Indiske Ocean"}\r
+        TF{"De Franske Besiddelser i Det Sydlige Indiske Ocean"}\r
         TG{"Togo"}\r
         TH{"Thailand"}\r
         TJ{"Tadsjikistan"}\r
@@ -311,5 +311,5 @@ da{
         MK{"Den tidligere jugoslaviske republik Makedonien"}\r
         TL{"Østtimor"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.65"}\r
 }\r
index ec5276811c07541062a824a1636b00cefbf40731..ddabc2b242f8e3db621452b0bc28a62752bfae3d 100644 (file)
@@ -31,6 +31,7 @@ de{
         151{"Osteuropa"}\r
         154{"Nordeuropa"}\r
         155{"Westeuropa"}\r
+        202{"Subsahara-Afrika"}\r
         419{"Lateinamerika"}\r
         AC{"Ascension"}\r
         AD{"Andorra"}\r
@@ -311,5 +312,5 @@ de{
         MK{"Mazedonien (EJR)"}\r
         TL{"Osttimor"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.91"}\r
 }\r
index 4882c7e81e92954f69543d5b7c4fbd1bc252d3c8..e992c9eb8a109bf71fa906097a110aba725de05e 100644 (file)
@@ -4,5 +4,5 @@ de_AT{
     Countries{\r
         SJ{"Svalbard und Jan Mayen"}\r
     }\r
-    Version{"2.1.38.39"}\r
+    Version{"2.1.43.65"}\r
 }\r
index b125e087eaa27d02ad8ce0bae1ed68bee6f9787a..4f19245665ce4de0cce4788744bf5cdf74dfac46 100644 (file)
@@ -12,5 +12,5 @@ de_CH{
         TL{"Osttimor"}\r
         ZW{"Zimbabwe"}\r
     }\r
-    Version{"2.1.39.37"}\r
+    Version{"2.1.44.50"}\r
 }\r
index 60c0b1e487fcefb3c3785a20e295314ce82c0af3..fd65d62dbff14e42cb2789dc08023f63b5af1520 100644 (file)
@@ -307,5 +307,5 @@ dsb{
         MK{"Makedońska (PRJ)"}\r
         TL{"Pódzajtšny Timor"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.41.34"}\r
 }\r
index af6f46d1cef64b502cba8249a8cc16994f137354..3228671aded0d812c0f267f338d4ec0da41c1b59 100644 (file)
@@ -303,5 +303,5 @@ dz{
         MK{"མ་སེ་ཌོ་ནི་ཡ་ (ཡུ་གོ་སླཱ་བི་ཡ)"}\r
         TL{"ཤར་ཕྱོགས་ཏི་་མོར"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.41.34"}\r
 }\r
index 90ec32bb392489ea0fe86129c8c839a6edeae2fe..2ae766ccee035e32e0eafb52eac422f0bfa53b89 100644 (file)
@@ -298,5 +298,5 @@ ee{
         MK{"Makedonia (FYROM) nutome"}\r
         TL{"Ɣedzeƒe Timɔ nutome"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.88"}\r
 }\r
index c13e00d30e66596818235bc0b223e59b63479c99..e68f66cb910a849a0c0a46cd70a8643491727598 100644 (file)
@@ -31,7 +31,7 @@ el{
         151{"Ανατολική Ευρώπη"}\r
         154{"Βόρεια Ευρώπη"}\r
         155{"Δυτική Ευρώπη"}\r
-        202{"202"}\r
+        202{"Υποσαχάρια Αφρική"}\r
         419{"Λατινική Αμερική"}\r
         AC{"Νήσος Ασενσιόν"}\r
         AD{"Ανδόρα"}\r
@@ -257,7 +257,7 @@ el{
         TA{"Τριστάν ντα Κούνια"}\r
         TC{"Νήσοι Τερκς και Κάικος"}\r
         TD{"Τσαντ"}\r
-        TF{"Î\93αλλικέÏ\82 Ï\80εÏ\81ιοÏ\87έÏ\82 Ï\84οÏ\85 Î½Î¿Ï\84ίοÏ\85 Î·Î¼Î¹Ï\83Ï\86αιÏ\81ίοÏ\85"}\r
+        TF{"Î\93αλλικά Î\9dÏ\8cÏ\84ια Î\95δάÏ\86η"}\r
         TG{"Τόγκο"}\r
         TH{"Ταϊλάνδη"}\r
         TJ{"Τατζικιστάν"}\r
@@ -285,7 +285,7 @@ el{
         VI{"Αμερικανικές Παρθένες Νήσοι"}\r
         VN{"Βιετνάμ"}\r
         VU{"Βανουάτου"}\r
-        WF{"Î\9fυάλις και Φουτούνα"}\r
+        WF{"Î\93ουάλις και Φουτούνα"}\r
         WS{"Σαμόα"}\r
         XK{"Κοσσυφοπέδιο"}\r
         YE{"Υεμένη"}\r
@@ -304,13 +304,12 @@ el{
         US{"ΗΠΑ"}\r
     }\r
     Countries%variant{\r
-        CD{"Κονγκό (DRC)"}\r
+        CD{"Κονγκό (ΛΔΚ)"}\r
         CG{"Κονγκό (Δημοκρατία)"}\r
-        CI{"CI"}\r
         CZ{"Τσεχική Δημοκρατία"}\r
         FK{"Νήσοι Φόκλαντ (Νήσοι Μαλβίνας)"}\r
         MK{"Πρώην Γιουγκοσλαβική Δημοκρατία της Μακεδονίας (ΠΓΔΜ)"}\r
         TL{"Ανατολικό Τιμόρ"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.65"}\r
 }\r
index 46e7c6bc10cef82a04898954e817dec3efb4d344..012724d8a3b3b687fc823089bd0bd222eedc3578 100644 (file)
@@ -287,6 +287,8 @@ en{
         VU{"Vanuatu"}\r
         WF{"Wallis & Futuna"}\r
         WS{"Samoa"}\r
+        XA{"Pseudo-Accents"}\r
+        XB{"Pseudo-Bidi"}\r
         XK{"Kosovo"}\r
         YE{"Yemen"}\r
         YT{"Mayotte"}\r
@@ -314,5 +316,5 @@ en{
         MK{"Macedonia (FYROM)"}\r
         TL{"East Timor"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.91"}\r
 }\r
index 5171867a88a7b328a41258c7907db30ce2bbe462..87e43561065d1426f286a6fbaffbadc038206eab 100644 (file)
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 en_AU{\r
     %%Parent{"en_001"}\r
-    Version{"2.1.38.73"}\r
+    Version{"2.1.44.18"}\r
 }\r
index 79bbbecd2ccb6e50aed016ac4e504e2056c52ae1..c9f5e1b4bfffdd6c677b54b4045abf45e05ab534 100644 (file)
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 en_BE{\r
     %%Parent{"en_001"}\r
-    Version{"2.1.38.69"}\r
+    Version{"2.1.44.18"}\r
 }\r
index 257f3048fc2786e2ef676e2c9cd2609b1f582bd3..5be6f168402b5898ed3c73d9567108726e94ac30 100644 (file)
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 en_CA{\r
     %%Parent{"en_001"}\r
-    Version{"2.1.38.73"}\r
+    Version{"2.1.44.88"}\r
 }\r
index 4f0529236ee00f61425c9b20a52ca08a82d967be..9f4c10c093506d0ac867394b78c30d34f1ce3ca7 100644 (file)
@@ -16,5 +16,5 @@ en_GB{
     Countries%short{\r
         US{"US"}\r
     }\r
-    Version{"2.1.38.73"}\r
+    Version{"2.1.44.18"}\r
 }\r
index e057509da41e0ec6ff27336478410f6d0a4d1789..422f3b6a6dad757046e1ffd6b04e8f7a3951cfac 100644 (file)
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 en_HK{\r
     %%Parent{"en_001"}\r
-    Version{"2.1.38.69"}\r
+    Version{"2.1.43.65"}\r
 }\r
index 56507ab1caec75b84a939d098c498d4e37c06c11..1b0d83feb5be8a292a2db02cdfb58ff8ef3942f7 100644 (file)
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 en_IE{\r
     %%Parent{"en_001"}\r
-    Version{"2.1.38.69"}\r
+    Version{"2.1.44.18"}\r
 }\r
index 55ab3729b7206a5d3596f644eaf101d6b4dd8488..5be332589aa5711d27fa2195b18a2eb4adbaba96 100644 (file)
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 en_IN{\r
     %%Parent{"en_001"}\r
-    Version{"2.1.38.73"}\r
+    Version{"2.1.44.18"}\r
 }\r
index 47beda639122e92c68191e8de9aada265bbf52f3..275273173a875074ca80e8daeb04440c52d4bfd4 100644 (file)
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 en_JM{\r
     %%Parent{"en_001"}\r
-    Version{"2.1.38.69"}\r
+    Version{"2.1.44.18"}\r
 }\r
index b470846d741ca5e7072b6f79ba29e0681ffd9e76..1e1d59ae79e65c7b20ace915c8a5117e3087ce5b 100644 (file)
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 en_NZ{\r
     %%Parent{"en_001"}\r
-    Version{"2.1.38.73"}\r
+    Version{"2.1.44.88"}\r
 }\r
index 3c7e040a21a1efab7e5594476f58671bd11db200..14f8030a146afd6f117b5a8dbbd3b94ddf5c110f 100644 (file)
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 en_ZW{\r
     %%Parent{"en_001"}\r
-    Version{"2.1.38.69"}\r
+    Version{"2.1.44.18"}\r
 }\r
index 5609a28f1e7d4f4afbc99ae78ca15a95481f5d08..16907116a3b3f05cea6ca20e06d61e11ed57ae91 100644 (file)
@@ -75,7 +75,7 @@ es{
         CC{"Islas Cocos"}\r
         CD{"República Democrática del Congo"}\r
         CF{"República Centroafricana"}\r
-        CG{"República del Congo"}\r
+        CG{"Congo"}\r
         CH{"Suiza"}\r
         CI{"Côte d’Ivoire"}\r
         CK{"Islas Cook"}\r
@@ -303,7 +303,7 @@ es{
         US{"EE. UU."}\r
     }\r
     Countries%variant{\r
-        CD{"Congo (República Democrática del Congo)"}\r
+        CD{"Congo (RDC)"}\r
         CG{"Congo (República)"}\r
         CI{"Costa de Marfil"}\r
         CZ{"República Checa"}\r
@@ -311,5 +311,5 @@ es{
         MK{"Macedonia (ERYM)"}\r
         TL{"Timor Oriental"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.88"}\r
 }\r
index 1eacab511b6b5d4509267028e7988a4efcafffac..9ae3ccb5127a3be2925935a1590630843b24729e 100644 (file)
@@ -17,6 +17,7 @@ es_419{
         155{"Europa del Oeste"}\r
         AC{"Isla Ascensión"}\r
         BA{"Bosnia-Herzegovina"}\r
+        CG{"República del Congo"}\r
         CI{"Costa de Marfil"}\r
         EZ{"Eurozona"}\r
         GG{"Guernesey"}\r
@@ -30,5 +31,8 @@ es_419{
     Countries%short{\r
         GB{"R. U."}\r
     }\r
-    Version{"2.1.38.39"}\r
+    Countries%variant{\r
+        CD{"Congo (República Democrática del Congo)"}\r
+    }\r
+    Version{"2.1.43.65"}\r
 }\r
index c504b92093e80e48edf551c8c0eeedfc677317f0..71e0e74ef87675c9289f8d387748d4a65953f640 100644 (file)
@@ -12,5 +12,5 @@ es_AR{
     Countries%short{\r
         GB{"RU"}\r
     }\r
-    Version{"2.1.38.39"}\r
+    Version{"2.1.43.65"}\r
 }\r
index 99d24dfb2d8a3c73508e737125079e81d97ba022..bb9a79d9c00bcc4fe8eb996bca1f60b59745aa54 100644 (file)
@@ -12,5 +12,5 @@ es_CO{
     Countries%short{\r
         GB{"RU"}\r
     }\r
-    Version{"2.1.38.39"}\r
+    Version{"2.1.43.65"}\r
 }\r
index c583d92119ded99978f7cb0a271903040b90bbe2..947037d09a7557595b25b23a2ee0f1cee407383a 100644 (file)
@@ -20,6 +20,7 @@ es_MX{
         CI{"Côte d’Ivoire"}\r
         EZ{"zona euro"}\r
         GG{"Guernsey"}\r
+        SA{"Arabia Saudita"}\r
         TA{"Tristán de Acuña"}\r
         TL{"Timor-Leste"}\r
         UM{"Islas menores alejadas de EE. UU."}\r
@@ -29,5 +30,5 @@ es_MX{
     Countries%short{\r
         GB{"RU"}\r
     }\r
-    Version{"2.1.38.73"}\r
+    Version{"2.1.44.5"}\r
 }\r
index 2f000119cff3c533e706d6d1b1063b41eacbd1e4..6f8705e2dfe3607e6b0e5e029b8595f56d146e25 100644 (file)
@@ -11,5 +11,5 @@ es_PY{
     Countries%short{\r
         GB{"RU"}\r
     }\r
-    Version{"2.1.38.39"}\r
+    Version{"2.1.43.65"}\r
 }\r
index 47cff7f7b9e57051d3be290b92f32b2a086deda5..a8643c1c0d574b32da3da0de41ed173d2b6ce03c 100644 (file)
@@ -17,6 +17,7 @@ es_US{
         154{"Europa septentrional"}\r
         155{"Europa occidental"}\r
         AC{"Isla de la Ascensión"}\r
+        BA{"Bosnia y Herzegovina"}\r
         CI{"Côte d’Ivoire"}\r
         EZ{"zona euro"}\r
         GG{"Guernsey"}\r
@@ -32,5 +33,5 @@ es_US{
         CI{"CI"}\r
         TL{"TL"}\r
     }\r
-    Version{"2.1.38.73"}\r
+    Version{"2.1.43.65"}\r
 }\r
index 93c3e614731e6221cfc0e9167597c71f7c8af8d5..c68a77d63a3ad3040e20adea17a07b7e4fd0b086 100644 (file)
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 es_UY{\r
     %%Parent{"es_419"}\r
-    Version{"2.1.38.39"}\r
+    Version{"2.1.44.79"}\r
 }\r
index 15de217fd4c5480e0d9a49bd55cd093a0b6dc4e2..78972e91d1175cd3a13a334ad407efc9241d27ea 100644 (file)
@@ -11,5 +11,5 @@ es_VE{
     Countries%short{\r
         GB{"RU"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.41.45"}\r
 }\r
index 2d7c476f58e2df2c17a6dcaf08681201ea499015..63df0f2ca989171bbb0f3a591a9ccc8d26bcc7d2 100644 (file)
@@ -312,5 +312,5 @@ et{
         MK{"Makedoonia Vabariik"}\r
         TL{"Timor-Leste"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.91"}\r
 }\r
index 58d0ddbfdd237b0cbce15a69e5baad14564a442b..e2436374421037e96877ea2c3c2ac48c32a71a89 100644 (file)
@@ -14,11 +14,11 @@ eu{
         017{"Erdialdeko Afrika"}\r
         018{"Afrika hegoaldea"}\r
         019{"Amerika"}\r
-        021{"Amerika iparraldea"}\r
+        021{"Amerikako iparraldea"}\r
         029{"Karibea"}\r
         030{"Asia ekialdea"}\r
         034{"Asia hegoaldea"}\r
-        035{"Asia hego-ekialdea"}\r
+        035{"Asiako hego-ekialdea"}\r
         039{"Europa hegoaldea"}\r
         053{"Australasia"}\r
         054{"Melanesia"}\r
@@ -48,7 +48,7 @@ eu{
         AT{"Austria"}\r
         AU{"Australia"}\r
         AW{"Aruba"}\r
-        AX{"Aland uharteak"}\r
+        AX{"Åland"}\r
         AZ{"Azerbaijan"}\r
         BA{"Bosnia-Herzegovina"}\r
         BB{"Barbados"}\r
@@ -72,7 +72,7 @@ eu{
         BY{"Bielorrusia"}\r
         BZ{"Belize"}\r
         CA{"Kanada"}\r
-        CC{"Cocos uharteak"}\r
+        CC{"Cocos (Keeling) uharteak"}\r
         CD{"Kongoko Errepublika Demokratikoa"}\r
         CF{"Afrika Erdiko Errepublika"}\r
         CG{"Kongo"}\r
@@ -110,7 +110,7 @@ eu{
         EZ{"Eurogunea"}\r
         FI{"Finlandia"}\r
         FJ{"Fiji"}\r
-        FK{"Malvinak"}\r
+        FK{"Falklandak"}\r
         FM{"Mikronesia"}\r
         FO{"Faroe uharteak"}\r
         FR{"Frantzia"}\r
@@ -222,7 +222,7 @@ eu{
         PM{"Saint-Pierre eta Mikelune"}\r
         PN{"Pitcairn uharteak"}\r
         PR{"Puerto Rico"}\r
-        PS{"Palestinako Lurraldeak"}\r
+        PS{"Palestinar Lurralde Okupatuak"}\r
         PT{"Portugal"}\r
         PW{"Palau"}\r
         PY{"Paraguai"}\r
@@ -305,11 +305,9 @@ eu{
     Countries%variant{\r
         CD{"Kongo (DR)"}\r
         CG{"Kongoko Errepublika"}\r
-        CI{"CI"}\r
         CZ{"Txekiar Errepublika"}\r
-        FK{"Falkland uharteak"}\r
+        FK{"Falklandak (Malvinak)"}\r
         MK{"Mazedoniako Jugoslaviar Errepublika Ohia"}\r
-        TL{"TL"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.65"}\r
 }\r
index 7922a574d895b13bf0bfeed15b9b16fdc573b68f..e53e89ec06ec33e0d0e2417d447bc6635d3b5b5a 100644 (file)
@@ -133,7 +133,7 @@ fa{
         GU{"گوام"}\r
         GW{"گینهٔ بیسائو"}\r
         GY{"گویان"}\r
-        HK{"Ù\87Ù\86Ú¯â\80\8cÚ©Ù\86Ú¯Ø\8c Ù\86احÛ\8cÙ\87Ù\94 Ù\88Û\8cÚ\98Ù\87Ù\94 Ø­Ú©Ù\88Ù\85تی چین"}\r
+        HK{"Ù\87Ù\86Ú¯â\80\8cÚ©Ù\86Ú¯Ø\8c Ù\85Ù\86Ø·Ù\82Û\80 Ù\88Û\8cÚ\98Û\80 Ø§Ø¯Ø§Ø±ی چین"}\r
         HM{"جزیرهٔ هرد و جزایر مک‌دونالد"}\r
         HN{"هندوراس"}\r
         HR{"کرواسی"}\r
@@ -158,7 +158,7 @@ fa{
         KG{"قرقیزستان"}\r
         KH{"کامبوج"}\r
         KI{"کیریباتی"}\r
-        KM{"کومورو"}\r
+        KM{"کومور"}\r
         KN{"سنت کیتس و نویس"}\r
         KP{"کرهٔ شمالی"}\r
         KR{"کرهٔ جنوبی"}\r
@@ -187,7 +187,7 @@ fa{
         ML{"مالی"}\r
         MM{"میانمار (برمه)"}\r
         MN{"مغولستان"}\r
-        MO{"Ù\85اکائÙ\88Ø\8c Ù\86احÛ\8cÙ\87Ù\94 Ù\88Û\8cÚ\98Ù\87Ù\94 Ø­Ú©Ù\88Ù\85تی چین"}\r
+        MO{"Ù\85اکائÙ\88Ø\8c Ù\85Ù\86Ø·Ù\82Û\80 Ù\88Û\8cÚ\98Û\80 Ø§Ø¯Ø§Ø±ی چین"}\r
         MP{"جزایر ماریانای شمالی"}\r
         MQ{"مارتینیک"}\r
         MR{"موریتانی"}\r
@@ -257,7 +257,7 @@ fa{
         TA{"تریستان دا کونا"}\r
         TC{"جزایر تورکس و کایکوس"}\r
         TD{"چاد"}\r
-        TF{"قلمروهای جنوبی فرانسه"}\r
+        TF{"سرزمین‌های جنوب فرانسه"}\r
         TG{"توگو"}\r
         TH{"تایلند"}\r
         TJ{"تاجیکستان"}\r
@@ -307,9 +307,10 @@ fa{
     Countries%variant{\r
         CD{"کنگو (جمهوری دموکراتیک)"}\r
         CG{"کنگو (جمهوری)"}\r
+        CI{"ساحل‌عاج"}\r
         FK{"جزایر فالکلند (ایسلاس مالویناس)"}\r
         MK{"مقدونیه (جمهوری سابقاً یوگسلاو)"}\r
         TL{"تیمور شرقی"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.65"}\r
 }\r
index c14f5f05ba71ea9855de5254dcf2e42a33c25d44..33891122b4c1aa274a3529cc8ed77964250dd1cd 100644 (file)
@@ -8,7 +8,6 @@ fa_AF{
         AO{"انگولا"}\r
         AQ{"انترکتیکا"}\r
         AR{"ارجنتاین"}\r
-        AU{"آسترالیا"}\r
         BA{"بوسنیا و هرزه‌گوینا"}\r
         BD{"بنگله‌دیش"}\r
         BE{"بلجیم"}\r
@@ -24,7 +23,9 @@ fa_AF{
         CO{"کولمبیا"}\r
         CR{"کاستریکا"}\r
         CU{"کیوبا"}\r
+        CZ{"چک"}\r
         DK{"دنمارک"}\r
+        EA{"سئوتا و ملیلا"}\r
         EE{"استونیا"}\r
         ER{"اریتریا"}\r
         ES{"هسپانیه"}\r
@@ -38,6 +39,7 @@ fa_AF{
         GT{"گواتیمالا"}\r
         GW{"گینیا بیسائو"}\r
         GY{"گیانا"}\r
+        HK{"هانگ کانگ، ناحیهٔ ویژهٔ حکومتی چین"}\r
         HN{"هاندوراس"}\r
         HR{"کروشیا"}\r
         HT{"هایتی"}\r
@@ -46,7 +48,6 @@ fa_AF{
         IS{"آیسلند"}\r
         JP{"جاپان"}\r
         KE{"کینیا"}\r
-        KG{"قرغزستان"}\r
         KH{"کمپوچیا"}\r
         KP{"کوریای شمالی"}\r
         KR{"کوریای جنوبی"}\r
@@ -62,7 +63,6 @@ fa_AF{
         MX{"مکسیکو"}\r
         MY{"مالیزیا"}\r
         MZ{"موزمبیق"}\r
-        NE{"نایجر"}\r
         NG{"نیجریا"}\r
         NI{"نیکاراگوا"}\r
         NL{"هالند"}\r
@@ -76,17 +76,16 @@ fa_AF{
         PT{"پرتگال"}\r
         PY{"پاراگوای"}\r
         RO{"رومانیا"}\r
-        RW{"روآندا"}\r
         SE{"سویدن"}\r
         SG{"سینگاپور"}\r
         SI{"سلونیا"}\r
+        SJ{"اسوالبارد و جان ماین"}\r
         SK{"سلواکیا"}\r
         SL{"سیرالیون"}\r
         SN{"سینیگال"}\r
         SO{"سومالیه"}\r
         SV{"السلوادور"}\r
         TJ{"تاجکستان"}\r
-        UA{"اکراین"}\r
         UG{"یوگاندا"}\r
         UY{"یوروگوای"}\r
         VC{"سنت وینسنت و گرنادین‌ها"}\r
@@ -94,5 +93,11 @@ fa_AF{
         XK{"کوسوا"}\r
         ZW{"زیمبابوی"}\r
     }\r
-    Version{"2.1.38.39"}\r
+    Countries%short{\r
+        HK{"هانگ کانگ"}\r
+    }\r
+    Countries%variant{\r
+        CZ{"جمهوری چک"}\r
+    }\r
+    Version{"2.1.43.65"}\r
 }\r
index fc4cea7ade10250e74f69d4f2485e5bab86e6c4e..a2897d25977ab3136cc57670ce21cd34e34c622c 100644 (file)
@@ -312,5 +312,5 @@ fi{
         MK{"EJT Makedonia"}\r
         TL{"Timor-Leste"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.91"}\r
 }\r
index f4a56ec5e5ec3025500199a5f618941c2ea429b0..cda0ec00934591209845fd079d47f42d4e3fccfe 100644 (file)
@@ -312,5 +312,5 @@ fil{
         MK{"Macedonia (FYROM)"}\r
         TL{"East Timor"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.91"}\r
 }\r
index ac6fa0833cb0e8ae4d1fcc2e8d58bf69f593dd65..13c2ba8dfb4c64759afd5809aea2cebb76a0b4af 100644 (file)
@@ -306,5 +306,5 @@ fo{
         FK{"Falklandsoyggjar (Islas Malvinas)"}\r
         MK{"Makedónia (FJM)"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.41.34"}\r
 }\r
index 8b365abd35250c6748288f6f971a73077a755678..ade28962f0c9c6c3d29246002e3b7a1690f51c0e 100644 (file)
@@ -16,21 +16,21 @@ fr{
         019{"Amériques"}\r
         021{"Amérique septentrionale"}\r
         029{"Caraïbes"}\r
-        030{"Asie orientale"}\r
+        030{"Asie de l’Est"}\r
         034{"Asie du Sud"}\r
         035{"Asie du Sud-Est"}\r
-        039{"Europe méridionale"}\r
+        039{"Europe du Sud"}\r
         053{"Australasie"}\r
         054{"Mélanésie"}\r
         057{"région micronésienne"}\r
         061{"Polynésie"}\r
         142{"Asie"}\r
         143{"Asie centrale"}\r
-        145{"Asie occidentale"}\r
+        145{"Asie de l’Ouest"}\r
         150{"Europe"}\r
         151{"Europe de l’Est"}\r
-        154{"Europe septentrionale"}\r
-        155{"Europe occidentale"}\r
+        154{"Europe du Nord"}\r
+        155{"Europe de l’Ouest"}\r
         202{"Afrique subsaharienne"}\r
         419{"Amérique latine"}\r
         AC{"Île de l’Ascension"}\r
@@ -261,7 +261,7 @@ fr{
         TG{"Togo"}\r
         TH{"Thaïlande"}\r
         TJ{"Tadjikistan"}\r
-        TK{"Tokélaou"}\r
+        TK{"Tokelau"}\r
         TL{"Timor oriental"}\r
         TM{"Turkménistan"}\r
         TN{"Tunisie"}\r
@@ -312,5 +312,5 @@ fr{
         MK{"Macédoine (ARYM)"}\r
         TL{"Timor-Oriental"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.91"}\r
 }\r
index b731710c223c3819a7b6d5c18da58e8dbdc139ed..42f7372a553b510461b5a8948f595b94af056f48 100644 (file)
@@ -5,5 +5,5 @@ fr_BE{
         BN{"Brunei"}\r
         GS{"Îles Géorgie du Sud et Sandwich du Sud"}\r
     }\r
-    Version{"2.1.38.39"}\r
+    Version{"2.1.43.65"}\r
 }\r
index aa3b6340741848f7a4de37bc231de7accccc79b2..45607b3e621f1b858317b6e653a281d99c5b3b83 100644 (file)
@@ -2,7 +2,12 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 fr_CA{\r
     Countries{\r
+        030{"Asie orientale"}\r
+        039{"Europe méridionale"}\r
+        145{"Asie occidentale"}\r
         151{"Europe orientale"}\r
+        154{"Europe septentrionale"}\r
+        155{"Europe occidentale"}\r
         AC{"île de l’Ascension"}\r
         AX{"îles d’Åland"}\r
         BN{"Brunei"}\r
@@ -26,7 +31,6 @@ fr_CA{
         QO{"Océanie lointaine"}\r
         RE{"la Réunion"}\r
         SX{"Saint-Martin (Pays-Bas)"}\r
-        TK{"Tokelau"}\r
         TL{"Timor-Leste"}\r
         UM{"îles mineures éloignées des États-Unis"}\r
         VA{"Cité du Vatican"}\r
@@ -39,5 +43,5 @@ fr_CA{
         FK{"îles Falkland (Malouines)"}\r
         TL{"Timor oriental"}\r
     }\r
-    Version{"2.1.38.73"}\r
+    Version{"2.1.43.65"}\r
 }\r
index eec01d3fa54988ab245db24d9d864ea50c753156..5395e008d89e107c4286d9e5f6e034db02f10391 100644 (file)
@@ -305,5 +305,5 @@ fy{
         FK{"Falklâneilannen (Islas Malvinas)"}\r
         MK{"Macedonië (FYROM)"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.41.34"}\r
 }\r
index c2887ca8b2b902e145bafc2c964747d45dba3277..70fe23c8b9621416cd1d78b8f04a7fa753852b82 100644 (file)
@@ -3,7 +3,7 @@
 ga{\r
     Countries{\r
         001{"an Domhan"}\r
-        002{"An Afraic"}\r
+        002{"an Afraic"}\r
         003{"Meiriceá Thuaidh"}\r
         005{"Meiriceá Theas"}\r
         009{"an Aigéine"}\r
@@ -11,7 +11,7 @@ ga{
         013{"Meiriceá Láir"}\r
         014{"Oirthear na hAfraice"}\r
         015{"Tuaisceart na hAfraice"}\r
-        017{"An Afraic Láir"}\r
+        017{"an Afraic Láir"}\r
         018{"Deisceart na hAfraice"}\r
         019{"Críocha Mheiriceá"}\r
         021{"Tuaisceart Mheiriceá"}\r
@@ -90,7 +90,7 @@ ga{
         CW{"Curaçao"}\r
         CX{"Oileán na Nollag"}\r
         CY{"an Chipir"}\r
-        CZ{"An tSeicia"}\r
+        CZ{"an tSeicia"}\r
         DE{"an Ghearmáin"}\r
         DG{"Diego Garcia"}\r
         DJ{"Djibouti"}\r
@@ -310,6 +310,7 @@ ga{
         CZ{"Poblacht na Seice"}\r
         FK{"Oileáin Fháclainne (Islas Malvinas)"}\r
         MK{"an Mhacadóin (PIIM)"}\r
+        TL{"TL"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.91"}\r
 }\r
index 4a1734fbef6675ee94fdcb1a631de8bc513c1097..b0da94c9e48b419de3c3624234c546d5ec6948a6 100644 (file)
@@ -31,6 +31,7 @@ gd{
         151{"An Roinn-Eòrpa an Ear"}\r
         154{"An Roinn-Eòrpa a Tuath"}\r
         155{"An Roinn-Eòrpa an Iar"}\r
+        202{"Afraga Deas air an t-Sathara"}\r
         419{"Aimeireaga Laidinneach"}\r
         AC{"Eilean na Deasgabhalach"}\r
         AD{"Andorra"}\r
@@ -221,7 +222,7 @@ gd{
         PM{"Saint Pierre agus Miquelon"}\r
         PN{"Eileanan Pheit a’ Chàirn"}\r
         PR{"Porto Rìceo"}\r
-        PS{"Na Ranntairean Palastaineach"}\r
+        PS{"Ùghdarras nam Palastaineach"}\r
         PT{"A’ Phortagail"}\r
         PW{"Palabh"}\r
         PY{"Paraguaidh"}\r
@@ -310,5 +311,5 @@ gd{
         MK{"A’ Mhasadon (FYROM)"}\r
         TL{"Tìomor an Ear"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.91"}\r
 }\r
index 2c0310f4db294ed27b160fac8c652c9433641a48..09f153aad993d048d3f83c084ac431f84438e026 100644 (file)
@@ -35,20 +35,20 @@ gl{
         419{"América Latina"}\r
         AC{"Illa de Ascensión"}\r
         AD{"Andorra"}\r
-        AE{"Emiratos Árabes Unidos"}\r
+        AE{"Os Emiratos Árabes Unidos"}\r
         AF{"Afganistán"}\r
-        AG{"Antiga e Barbuda"}\r
+        AG{"Antigua e Barbuda"}\r
         AI{"Anguila"}\r
         AL{"Albania"}\r
         AM{"Armenia"}\r
         AO{"Angola"}\r
-        AQ{"Antártida"}\r
-        AR{"Arxentina"}\r
+        AQ{"A Antártida"}\r
+        AR{"A Arxentina"}\r
         AS{"Samoa Americana"}\r
         AT{"Austria"}\r
         AU{"Australia"}\r
         AW{"Aruba"}\r
-        AX{"Illas Aland"}\r
+        AX{"Illas Åland"}\r
         AZ{"Acerbaixán"}\r
         BA{"Bosnia e Hercegovina"}\r
         BB{"Barbados"}\r
@@ -58,20 +58,20 @@ gl{
         BG{"Bulgaria"}\r
         BH{"Bahrain"}\r
         BI{"Burundi"}\r
-        BJ{"Benin"}\r
-        BL{"Saint-Barthélemy"}\r
-        BM{"Bermudas"}\r
+        BJ{"Benín"}\r
+        BL{"Saint Barthélemy"}\r
+        BM{"Illas Bermudas"}\r
         BN{"Brunei"}\r
         BO{"Bolivia"}\r
         BQ{"Caribe Neerlandés"}\r
-        BR{"Brasil"}\r
+        BR{"Brasil"}\r
         BS{"Bahamas"}\r
         BT{"Bután"}\r
         BV{"Illa Bouvet"}\r
         BW{"Botswana"}\r
-        BY{"Bielorrusia"}\r
+        BY{"Belarús"}\r
         BZ{"Belize"}\r
-        CA{"Canadá"}\r
+        CA{"Canadá"}\r
         CC{"Illas Cocos (Keeling)"}\r
         CD{"República Democrática do Congo"}\r
         CF{"República Centroafricana"}\r
@@ -81,14 +81,14 @@ gl{
         CK{"Illas Cook"}\r
         CL{"Chile"}\r
         CM{"Camerún"}\r
-        CN{"China"}\r
+        CN{"China"}\r
         CO{"Colombia"}\r
         CP{"Illa Clipperton"}\r
         CR{"Costa Rica"}\r
         CU{"Cuba"}\r
         CV{"Cabo Verde"}\r
         CW{"Curaçao"}\r
-        CX{"Illa de Nadal"}\r
+        CX{"Illa Christmas"}\r
         CY{"Chipre"}\r
         CZ{"Chequia"}\r
         DE{"Alemaña"}\r
@@ -102,20 +102,20 @@ gl{
         EC{"Ecuador"}\r
         EE{"Estonia"}\r
         EG{"Exipto"}\r
-        EH{"Sáhara Occidental"}\r
+        EH{"Sáhara Occidental"}\r
         ER{"Eritrea"}\r
         ES{"España"}\r
         ET{"Etiopía"}\r
         EU{"Unión Europea"}\r
         EZ{"Eurozona"}\r
         FI{"Finlandia"}\r
-        FJ{"Fidxi"}\r
+        FJ{"Fixi"}\r
         FK{"Illas Malvinas"}\r
         FM{"Micronesia"}\r
         FO{"Illas Feroe"}\r
         FR{"Francia"}\r
         GA{"Gabón"}\r
-        GB{"Reino Unido"}\r
+        GB{"Reino Unido"}\r
         GD{"Granada"}\r
         GE{"Xeorxia"}\r
         GF{"Güiana Francesa"}\r
@@ -131,7 +131,7 @@ gl{
         GS{"Illas Xeorxia do Sur e Sandwich do Sur"}\r
         GT{"Guatemala"}\r
         GU{"Guam"}\r
-        GW{"Guinea-Bissau"}\r
+        GW{"A Guinea Bissau"}\r
         GY{"Güiana"}\r
         HK{"Hong Kong RAE da China"}\r
         HM{"Illa Heard e Illas McDonald"}\r
@@ -144,7 +144,7 @@ gl{
         IE{"Irlanda"}\r
         IL{"Israel"}\r
         IM{"Illa de Man"}\r
-        IN{"India"}\r
+        IN{"India"}\r
         IO{"Territorio Británico do Océano Índico"}\r
         IQ{"Iraq"}\r
         IR{"Irán"}\r
@@ -153,10 +153,10 @@ gl{
         JE{"Jersey"}\r
         JM{"Xamaica"}\r
         JO{"Xordania"}\r
-        JP{"Xapón"}\r
+        JP{"Xapón"}\r
         KE{"Kenya"}\r
         KG{"Kirguizistán"}\r
-        KH{"Cambodja"}\r
+        KH{"Camboxa"}\r
         KI{"Kiribati"}\r
         KM{"Comores"}\r
         KN{"Saint Kitts e Nevis"}\r
@@ -166,12 +166,12 @@ gl{
         KY{"Illas Caimán"}\r
         KZ{"Casaquistán"}\r
         LA{"Laos"}\r
-        LB{"Líbano"}\r
+        LB{"Líbano"}\r
         LC{"Santa Lucía"}\r
         LI{"Liechtenstein"}\r
         LK{"Sri Lanka"}\r
         LR{"Liberia"}\r
-        LS{"Lesoto"}\r
+        LS{"Lesotho"}\r
         LT{"Lituania"}\r
         LU{"Luxemburgo"}\r
         LV{"Letonia"}\r
@@ -180,7 +180,7 @@ gl{
         MC{"Mónaco"}\r
         MD{"Moldavia"}\r
         ME{"Montenegro"}\r
-        MF{"Saint-Martin"}\r
+        MF{"Saint Martin"}\r
         MG{"Madagascar"}\r
         MH{"Illas Marshall"}\r
         MK{"Macedonia"}\r
@@ -213,19 +213,19 @@ gl{
         NZ{"Nova Zelandia"}\r
         OM{"Omán"}\r
         PA{"Panamá"}\r
-        PE{"Perú"}\r
-        PF{"Polinesia Francesa"}\r
+        PE{"Perú"}\r
+        PF{"Polinesia Francesa"}\r
         PG{"Papúa-Nova Guinea"}\r
         PH{"Filipinas"}\r
         PK{"Paquistán"}\r
         PL{"Polonia"}\r
-        PM{"Saint-Pierre-et-Miquelon"}\r
+        PM{"Saint Pierre et Miquelon"}\r
         PN{"Illas Pitcairn"}\r
         PR{"Porto Rico"}\r
         PS{"Territorios Palestinos"}\r
         PT{"Portugal"}\r
         PW{"Palau"}\r
-        PY{"Paraguai"}\r
+        PY{"Paraguai"}\r
         QA{"Qatar"}\r
         QO{"Territorios afastados de Oceanía"}\r
         RE{"Reunión"}\r
@@ -236,7 +236,7 @@ gl{
         SA{"Arabia Saudita"}\r
         SB{"Illas Salomón"}\r
         SC{"Seychelles"}\r
-        SD{"Sudán"}\r
+        SD{"Sudán"}\r
         SE{"Suecia"}\r
         SG{"Singapur"}\r
         SH{"Santa Helena"}\r
@@ -248,12 +248,12 @@ gl{
         SN{"Senegal"}\r
         SO{"Somalia"}\r
         SR{"Suriname"}\r
-        SS{"Sudán do Sur"}\r
+        SS{"Sudán do Sur"}\r
         ST{"San Tomé e Príncipe"}\r
         SV{"O Salvador"}\r
         SX{"Sint Maarten"}\r
         SY{"Siria"}\r
-        SZ{"Swazilandia"}\r
+        SZ{"Suazilandia"}\r
         TA{"Tristán da Cunha"}\r
         TC{"Illas Turks e Caicos"}\r
         TD{"Chad"}\r
@@ -263,7 +263,7 @@ gl{
         TJ{"Taxiquistán"}\r
         TK{"Tokelau"}\r
         TL{"Timor Leste"}\r
-        TM{"Turcomenistán"}\r
+        TM{"Turkmenistán"}\r
         TN{"Tunisia"}\r
         TO{"Tonga"}\r
         TR{"Turquía"}\r
@@ -273,10 +273,10 @@ gl{
         TZ{"Tanzania"}\r
         UA{"Ucraína"}\r
         UG{"Uganda"}\r
-        UM{"Illas Ultramarinas dos EUA"}\r
+        UM{"Illas Menores Distantes dos Estados Unidos"}\r
         UN{"Nacións Unidas"}\r
-        US{"Estados Unidos de América"}\r
-        UY{"Uruguai"}\r
+        US{"Os Estados Unidos"}\r
+        UY{"Uruguai"}\r
         UZ{"Uzbequistán"}\r
         VA{"Cidade do Vaticano"}\r
         VC{"San Vicente e As Granadinas"}\r
@@ -288,7 +288,7 @@ gl{
         WF{"Wallis e Futuna"}\r
         WS{"Samoa"}\r
         XK{"Kosovo"}\r
-        YE{"Iemen"}\r
+        YE{"Iemen"}\r
         YT{"Mayotte"}\r
         ZA{"Suráfrica"}\r
         ZM{"Zambia"}\r
@@ -312,5 +312,5 @@ gl{
         MK{"Macedonia (ARIM)"}\r
         TL{"TL"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.94"}\r
 }\r
index ad73f16bb0ce0fc29637b0efbcaec9b3ef542114..21dcb9f9cd0d95ba7789e285e3e627a0bce498b3 100644 (file)
@@ -288,5 +288,5 @@ gsw{
     Countries%variant{\r
         MK{"Mazedoonie (EJRM)"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.41.34"}\r
 }\r
index 72abe8cf102268178e434b389349e69a037e705d..37e0e9d64084be3f67c8cb5bd279effa882d1901 100644 (file)
@@ -297,7 +297,7 @@ gu{
     }\r
     Countries%short{\r
         GB{"યુ.કે."}\r
-        HK{"હોંગ કોંગ"}\r
+        HK{"હોંગકોંગ"}\r
         MO{"મકાઉ"}\r
         PS{"પેલેસ્ટાઇન"}\r
         UN{"યૂએન"}\r
@@ -312,5 +312,5 @@ gu{
         MK{"મેસેડોનિયા (FYROM)"}\r
         TL{"પૂર્વ તિમોર"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.2"}\r
 }\r
index ceafc4df8ab276a27fb51bbc5caf705893664aef..fcf5694a21e9d19edcfae0aff3064e34fa73cced 100644 (file)
@@ -58,7 +58,7 @@ ha{
         DZ{"Aljeriya"}\r
         EC{"Ekwador"}\r
         EE{"Estoniya"}\r
-        EG{"Masar, Misira"}\r
+        EG{"Misira"}\r
         ER{"Eritireya"}\r
         ES{"Sipen"}\r
         ET{"Habasha"}\r
@@ -227,5 +227,5 @@ ha{
         ZM{"Zambiya"}\r
         ZW{"Zimbabuwe"}\r
     }\r
-    Version{"2.1.39.11"}\r
+    Version{"2.1.43.2"}\r
 }\r
index 56154a3d616ca0719a8c18b67dcd27603de761fe..9b94f08c16a0d193db250bd1e717547e88be8151 100644 (file)
@@ -23,5 +23,5 @@ haw{
         RU{"Lūkia"}\r
         US{"ʻAmelika Hui Pū ʻIa"}\r
     }\r
-    Version{"2.1.38.69"}\r
+    Version{"2.1.43.94"}\r
 }\r
index ebc145e79d71f7d0ec7cbf25410404acbb863429..08205faab52ba5e4073f0b5c29b311931dc94bfa 100644 (file)
@@ -115,7 +115,7 @@ he{
         FO{"איי פארו"}\r
         FR{"צרפת"}\r
         GA{"גבון"}\r
-        GB{"×\94×\9e×\9e×\9c×\9b×\94 ×\94×\9e×\90×\95×\97×\93ת"}\r
+        GB{"×\91ר×\99×\98× ×\99×\94"}\r
         GD{"גרנדה"}\r
         GE{"גאורגיה"}\r
         GF{"גיאנה הצרפתית"}\r
@@ -202,7 +202,7 @@ he{
         NA{"נמיביה"}\r
         NC{"קלדוניה החדשה"}\r
         NE{"ניז׳ר"}\r
-        NF{"×\90×\99י נורפוק"}\r
+        NF{"×\94×\90י נורפוק"}\r
         NG{"ניגריה"}\r
         NI{"ניקרגואה"}\r
         NL{"הולנד"}\r
@@ -310,5 +310,5 @@ he{
         MK{"מקדוניה (הרפובליקה היוגוסלבית לשעבר של מקדוניה)"}\r
         TL{"מזרח טימור"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.94"}\r
 }\r
index b3b0696d7b156e3c675daec339c907eb3ddd0a93..43654eaf55bf12196ff499587aea81853b3cb9e2 100644 (file)
@@ -254,7 +254,7 @@ hi{
         SX{"सिंट मार्टिन"}\r
         SY{"सीरिया"}\r
         SZ{"स्वाज़ीलैंड"}\r
-        TA{"तà¥\8dरिसà¥\8dà¤\9fान à¤¡ा कुना"}\r
+        TA{"à¤\9fà¥\8dरिसà¥\8dà¤\9fन à¤¦ा कुना"}\r
         TC{"तुर्क और कैकोज़ द्वीपसमूह"}\r
         TD{"चाड"}\r
         TF{"फ़्रांसीसी दक्षिणी क्षेत्र"}\r
@@ -312,5 +312,5 @@ hi{
         MK{"मकदूनिया (FYROM)"}\r
         TL{"पूर्वी तिमोर"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.50"}\r
 }\r
index 45c7b81d39568635906d4504e13f3a7bb05bc5c6..1b47ecf732f0359ccebaeaa43b26e63fe2e92c73 100644 (file)
@@ -312,5 +312,5 @@ hr{
         MK{"Makedonija (BJRM)"}\r
         TL{"Istočni Timor"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.50"}\r
 }\r
index 07c4ec3a9abb0c6c5fac5204fbd221209d653041..d0cbaa9814844fe90363012a32ab5fa15fda210a 100644 (file)
@@ -307,5 +307,5 @@ hsb{
         MK{"Makedonska (FYROM)"}\r
         TL{"Wuchodny Timor"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.41.34"}\r
 }\r
index 32adee24724a44569d71380337349869332d6f0d..b5f3e5c9224f6cbb6f957b45ca2f31a9bdd54c92 100644 (file)
@@ -112,7 +112,7 @@ hu{
         FJ{"Fidzsi"}\r
         FK{"Falkland-szigetek"}\r
         FM{"Mikronézia"}\r
-        FO{"Feröer-szigetek"}\r
+        FO{"Feröer szigetek"}\r
         FR{"Franciaország"}\r
         GA{"Gabon"}\r
         GB{"Egyesült Királyság"}\r
@@ -283,7 +283,7 @@ hu{
         VE{"Venezuela"}\r
         VG{"Brit Virgin-szigetek"}\r
         VI{"Amerikai Virgin-szigetek"}\r
-        VN{"Vietnam"}\r
+        VN{"Vietnám"}\r
         VU{"Vanuatu"}\r
         WF{"Wallis és Futuna"}\r
         WS{"Szamoa"}\r
@@ -306,11 +306,10 @@ hu{
     Countries%variant{\r
         CD{"Kongó (KDK)"}\r
         CG{"Kongó (Köztársaság)"}\r
-        CI{"CI"}\r
         CZ{"Cseh Köztársaság"}\r
         FK{"Falkland-szigetek (Malvin-szigetek)"}\r
         MK{"Macedónia (MVJK)"}\r
         TL{"Timor-Leste"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.65"}\r
 }\r
index 4c7eaea6d156ab0fbbf970a8583646ec9669581e..af00db430ffa7c5d87fc9c42388dcd0594bff761 100644 (file)
@@ -65,7 +65,7 @@ hy{
         BO{"Բոլիվիա"}\r
         BQ{"Կարիբյան Նիդեռլանդներ"}\r
         BR{"Բրազիլիա"}\r
-        BS{"Ô²Õ¡Õ°Õ¡Õ´Õ¡ներ"}\r
+        BS{"Ô²Õ¡Õ°Õ¡Õ´ÕµÕ¡Õ¶ Õ¯Õ²Õ¦Õ«ներ"}\r
         BT{"Բութան"}\r
         BV{"Բուվե կղզի"}\r
         BW{"Բոթսվանա"}\r
@@ -163,7 +163,7 @@ hy{
         KP{"Հյուսիսային Կորեա"}\r
         KR{"Հարավային Կորեա"}\r
         KW{"Քուվեյթ"}\r
-        KY{"Կայման կղզիներ"}\r
+        KY{"Կայմանյան կղզիներ"}\r
         KZ{"Ղազախստան"}\r
         LA{"Լաոս"}\r
         LB{"Լիբանան"}\r
@@ -312,5 +312,5 @@ hy{
         MK{"Մակեդոնիա (ՄՆՀՀ)"}\r
         TL{"Արևելյան Թիմոր"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.50"}\r
 }\r
diff --git a/source/data/region/ia.txt b/source/data/region/ia.txt
new file mode 100644 (file)
index 0000000..b7bcd76
--- /dev/null
@@ -0,0 +1,248 @@
+// © 2016 and later: Unicode, Inc. and others.\r
+// License & terms of use: http://www.unicode.org/copyright.html#License\r
+ia{\r
+    Countries{\r
+        001{"Mundo"}\r
+        002{"Africa"}\r
+        003{"America del Nord"}\r
+        005{"America del Sud"}\r
+        009{"Oceania"}\r
+        011{"Africa occidental"}\r
+        013{"America central"}\r
+        014{"Africa oriental"}\r
+        015{"Africa septentrional"}\r
+        017{"Africa central"}\r
+        018{"Africa meridional"}\r
+        019{"Americas"}\r
+        021{"America septentrional"}\r
+        029{"Caribes"}\r
+        030{"Asia oriental"}\r
+        034{"Asia meridional"}\r
+        035{"Asia del sud-est"}\r
+        039{"Europa meridional"}\r
+        053{"Australasia"}\r
+        054{"Melanesia"}\r
+        057{"Region micronesian"}\r
+        061{"Polynesia"}\r
+        142{"Asia"}\r
+        143{"Asia central"}\r
+        145{"Asia occidental"}\r
+        150{"Europa"}\r
+        151{"Europa oriental"}\r
+        154{"Europa septentrional"}\r
+        155{"Europa occidental"}\r
+        202{"Africa subsaharian"}\r
+        419{"America latin"}\r
+        AD{"Andorra"}\r
+        AE{"Emiratos Arabe Unite"}\r
+        AF{"Afghanistan"}\r
+        AG{"Antigua e Barbuda"}\r
+        AL{"Albania"}\r
+        AM{"Armenia"}\r
+        AO{"Angola"}\r
+        AR{"Argentina"}\r
+        AS{"Samoa american"}\r
+        AT{"Austria"}\r
+        AU{"Australia"}\r
+        AX{"Insulas Åland"}\r
+        AZ{"Azerbaidzhan"}\r
+        BA{"Bosnia e Herzegovina"}\r
+        BD{"Bangladesh"}\r
+        BE{"Belgica"}\r
+        BF{"Burkina Faso"}\r
+        BG{"Bulgaria"}\r
+        BI{"Burundi"}\r
+        BJ{"Benin"}\r
+        BM{"Bermuda"}\r
+        BO{"Bolivia"}\r
+        BR{"Brasil"}\r
+        BS{"Bahamas"}\r
+        BT{"Bhutan"}\r
+        BV{"Insula de Bouvet"}\r
+        BW{"Botswana"}\r
+        BY{"Bielorussia"}\r
+        BZ{"Belize"}\r
+        CA{"Canada"}\r
+        CF{"Republica African Central"}\r
+        CG{"Congo"}\r
+        CH{"Suissa"}\r
+        CK{"Insulas Cook"}\r
+        CL{"Chile"}\r
+        CM{"Camerun"}\r
+        CN{"China"}\r
+        CO{"Colombia"}\r
+        CR{"Costa Rica"}\r
+        CU{"Cuba"}\r
+        CX{"Insula de Natal"}\r
+        CY{"Cypro"}\r
+        CZ{"Chechia"}\r
+        DE{"Germania"}\r
+        DK{"Danmark"}\r
+        DO{"Republica Dominican"}\r
+        DZ{"Algeria"}\r
+        EC{"Ecuador"}\r
+        EE{"Estonia"}\r
+        EG{"Egypto"}\r
+        EH{"Sahara occidental"}\r
+        ER{"Eritrea"}\r
+        ES{"Espania"}\r
+        ET{"Ethiopia"}\r
+        EU{"Union Europee"}\r
+        EZ{"Zona euro"}\r
+        FI{"Finlandia"}\r
+        FM{"Micronesia"}\r
+        FO{"Insulas Feroe"}\r
+        FR{"Francia"}\r
+        GA{"Gabon"}\r
+        GB{"Regno Unite"}\r
+        GE{"Georgia"}\r
+        GF{"Guyana francese"}\r
+        GG{"Guernsey"}\r
+        GH{"Ghana"}\r
+        GI{"Gibraltar"}\r
+        GL{"Groenlandia"}\r
+        GM{"Gambia"}\r
+        GN{"Guinea"}\r
+        GQ{"Guinea equatorial"}\r
+        GR{"Grecia"}\r
+        GT{"Guatemala"}\r
+        GW{"Guinea-Bissau"}\r
+        HN{"Honduras"}\r
+        HR{"Croatia"}\r
+        HT{"Haiti"}\r
+        HU{"Hungaria"}\r
+        ID{"Indonesia"}\r
+        IE{"Irlanda"}\r
+        IL{"Israel"}\r
+        IM{"Insula de Man"}\r
+        IN{"India"}\r
+        IO{"Territorio oceanic britanno-indian"}\r
+        IQ{"Irak"}\r
+        IR{"Iran"}\r
+        IS{"Islanda"}\r
+        IT{"Italia"}\r
+        JE{"Jersey"}\r
+        JO{"Jordania"}\r
+        JP{"Japon"}\r
+        KE{"Kenya"}\r
+        KG{"Kirghizistan"}\r
+        KH{"Cambodgia"}\r
+        KI{"Kiribati"}\r
+        KM{"Comoros"}\r
+        KN{"Sancte Christophoro e Nevis"}\r
+        KP{"Corea del Nord"}\r
+        KR{"Corea del Sud"}\r
+        KY{"Insulas de Caiman"}\r
+        KZ{"Kazakhstan"}\r
+        LB{"Libano"}\r
+        LC{"Sancte Lucia"}\r
+        LI{"Liechtenstein"}\r
+        LK{"Sri Lanka"}\r
+        LR{"Liberia"}\r
+        LS{"Lesotho"}\r
+        LT{"Lituania"}\r
+        LU{"Luxemburg"}\r
+        LV{"Lettonia"}\r
+        LY{"Libya"}\r
+        MA{"Marocco"}\r
+        MC{"Monaco"}\r
+        MD{"Moldavia"}\r
+        ME{"Montenegro"}\r
+        MG{"Madagascar"}\r
+        MH{"Insulas Marshall"}\r
+        MK{"Macedonia"}\r
+        ML{"Mali"}\r
+        MN{"Mongolia"}\r
+        MP{"Insulas Marianna del Nord"}\r
+        MR{"Mauritania"}\r
+        MT{"Malta"}\r
+        MW{"Malawi"}\r
+        MX{"Mexico"}\r
+        MY{"Malaysia"}\r
+        MZ{"Mozambique"}\r
+        NA{"Namibia"}\r
+        NC{"Nove Caledonia"}\r
+        NE{"Niger"}\r
+        NF{"Insula Norfolk"}\r
+        NG{"Nigeria"}\r
+        NI{"Nicaragua"}\r
+        NL{"Nederlandia"}\r
+        NO{"Norvegia"}\r
+        NP{"Nepal"}\r
+        NZ{"Nove Zelanda"}\r
+        OM{"Oman"}\r
+        PA{"Panama"}\r
+        PE{"Peru"}\r
+        PF{"Polynesia francese"}\r
+        PG{"Papua Nove Guinea"}\r
+        PH{"Philippinas"}\r
+        PK{"Pakistan"}\r
+        PL{"Polonia"}\r
+        PM{"St. Pierre e Miquelon"}\r
+        PT{"Portugal"}\r
+        PY{"Paraguay"}\r
+        QO{"Oceania remote"}\r
+        RO{"Romania"}\r
+        RS{"Serbia"}\r
+        RU{"Russia"}\r
+        RW{"Ruanda"}\r
+        SA{"Arabia Saudita"}\r
+        SB{"Insulas Solomon"}\r
+        SC{"Seychelles"}\r
+        SD{"Sudan"}\r
+        SE{"Svedia"}\r
+        SI{"Slovenia"}\r
+        SJ{"Svalbard e Jan Mayen"}\r
+        SK{"Slovachia"}\r
+        SL{"Sierra Leone"}\r
+        SM{"San Marino"}\r
+        SN{"Senegal"}\r
+        SO{"Somalia"}\r
+        SR{"Suriname"}\r
+        SS{"Sudan del Sud"}\r
+        SV{"El Salvador"}\r
+        SY{"Syria"}\r
+        SZ{"Swazilandia"}\r
+        TC{"Insulas Turcos e Caicos"}\r
+        TF{"Territorios meridional francese"}\r
+        TG{"Togo"}\r
+        TH{"Thailandia"}\r
+        TJ{"Tadzhikistan"}\r
+        TK{"Tokelau"}\r
+        TL{"Timor del Est"}\r
+        TM{"Turkmenistan"}\r
+        TN{"Tunisia"}\r
+        TO{"Tonga"}\r
+        TR{"Turchia"}\r
+        TT{"Trinidad e Tobago"}\r
+        TV{"Tuvalu"}\r
+        TW{"Taiwan"}\r
+        TZ{"Tanzania"}\r
+        UA{"Ukraina"}\r
+        UG{"Uganda"}\r
+        UN{"Nationes Unite"}\r
+        US{"Statos Unite"}\r
+        UY{"Uruguay"}\r
+        UZ{"Uzbekistan"}\r
+        VA{"Citate del Vaticano"}\r
+        VC{"Sancte Vincente e le Grenadinas"}\r
+        VE{"Venezuela"}\r
+        VU{"Vanuatu"}\r
+        WS{"Samoa"}\r
+        XK{"Kosovo"}\r
+        YE{"Yemen"}\r
+        ZA{"Sudafrica"}\r
+        ZM{"Zambia"}\r
+        ZW{"Zimbabwe"}\r
+        ZZ{"Region incognite"}\r
+    }\r
+    Countries%short{\r
+        GB{"GB"}\r
+        US{"SUA"}\r
+    }\r
+    Countries%variant{\r
+        CZ{"Republica Chec"}\r
+        MK{"Macedonia (ARYM)"}\r
+    }\r
+    Version{"2.1.44.15"}\r
+}\r
index 93f6e5401179cfef57180d7dfeea3b5dfcec9fb8..318c890fe6e30725fa4c62c5e930ee9fc23ea0d6 100644 (file)
@@ -310,5 +310,5 @@ id{
         FK{"Kepulauan Malvinas (Falkland)"}\r
         MK{"Makedonia (BRY)"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.20"}\r
 }\r
index 46f8c50f7c4c758da42c7ea65b540524f1218bef..62e33c7779fc954b5bf25a7aa8b854f17afc798f 100644 (file)
@@ -11,5 +11,5 @@ ig{
         MV{"Maldivesa"}\r
         NG{"Naịjịrịa"}\r
     }\r
-    Version{"2.1.38.69"}\r
+    Version{"2.1.44.88"}\r
 }\r
index b48b3e3a4784c27b2227c7e63afd9fcdb8c445d3..8cb5f821e9b2b1f121049c06641c1d293daa1afd 100644 (file)
@@ -77,7 +77,7 @@ is{
         CF{"Mið-Afríkulýðveldið"}\r
         CG{"Kongó-Brazzaville"}\r
         CH{"Sviss"}\r
-        CI{"Côte d’Ivoire"}\r
+        CI{"Fílabeinsströndin"}\r
         CK{"Cooks-eyjar"}\r
         CL{"Síle"}\r
         CM{"Kamerún"}\r
@@ -306,10 +306,9 @@ is{
     Countries%variant{\r
         CD{"Kongó (Lýðstjórnarlýðveldið)"}\r
         CG{"Kongó (Lýðveldið)"}\r
-        CI{"Fílabeinsströndin"}\r
         FK{"Falklandseyjar (Malvinas)"}\r
         MK{"Makedónía (Fyrrverandi lýðveldi Júgóslavíu)"}\r
         TL{"Austur-Tímor"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.91"}\r
 }\r
index 76f326fa8bbc5275eef7ba9b273ec56210fe30b8..e67e9dcf7673308619c2bca8d6e6b06f8b186197 100644 (file)
@@ -310,7 +310,6 @@ it{
         CZ{"Repubblica Ceca"}\r
         FK{"Isole Falkland (Isole Malvine)"}\r
         MK{"Ex Repubblica Jugoslava di Macedonia"}\r
-        TL{"Timor Leste"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.86"}\r
 }\r
index c0f5dde000f7955a6ef6dcfd8504c8cd5da43b00..3f1285c44e35e3dd1c75fa31731ec1be7de35ad3 100644 (file)
@@ -312,5 +312,5 @@ ja{
         MK{"マケドニア(旧ユーゴスラビア共和国)"}\r
         TL{"東チモール"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.91"}\r
 }\r
diff --git a/source/data/region/jv.txt b/source/data/region/jv.txt
new file mode 100644 (file)
index 0000000..0a0bbb3
--- /dev/null
@@ -0,0 +1,286 @@
+// © 2016 and later: Unicode, Inc. and others.\r
+// License & terms of use: http://www.unicode.org/copyright.html#License\r
+jv{\r
+    Countries{\r
+        001{"Donya"}\r
+        002{"Afrika"}\r
+        005{"Amérika Kidul"}\r
+        009{"Oséania"}\r
+        011{"Afrika Kulon"}\r
+        013{"Amérika Tengah"}\r
+        014{"Afrika Wétan"}\r
+        018{"Afrika Sisih Kidul"}\r
+        019{"Amérika"}\r
+        021{"Amérika Sisih Lor"}\r
+        029{"Karibia"}\r
+        030{"Asia Wétan"}\r
+        034{"Asia Kidul"}\r
+        035{"Asia Kidul-wétan"}\r
+        039{"Éropah Kidul"}\r
+        053{"Australasia"}\r
+        054{"Melanesia"}\r
+        057{"Daerah Mikronesia"}\r
+        061{"Polinesia"}\r
+        142{"Asia"}\r
+        143{"Asia Tengah"}\r
+        145{"Asia Kulon"}\r
+        150{"Éropah"}\r
+        151{"Éropah Wétan"}\r
+        155{"Éropah Kulon"}\r
+        202{"Afrika Kidule Sahara"}\r
+        419{"Amérika Latin"}\r
+        AC{"Pulo Ascension"}\r
+        AD{"Andora"}\r
+        AE{"Uni Émirat Arab"}\r
+        AF{"Afganistan"}\r
+        AG{"Antigua lan Barbuda"}\r
+        AI{"Anguilla"}\r
+        AL{"Albani"}\r
+        AM{"Arménia"}\r
+        AO{"Angola"}\r
+        AQ{"Antartika"}\r
+        AR{"Argèntina"}\r
+        AS{"Samoa Amerika"}\r
+        AT{"Ostenrik"}\r
+        AU{"Ostrali"}\r
+        AW{"Aruba"}\r
+        AX{"Kapuloan Alan"}\r
+        AZ{"Azerbaijan"}\r
+        BA{"Bosnia lan Hèrségovina"}\r
+        BB{"Barbadhos"}\r
+        BD{"Banggaladésa"}\r
+        BE{"Bèlgi"}\r
+        BF{"Burkina Faso"}\r
+        BG{"Bulgari"}\r
+        BH{"Bahrain"}\r
+        BI{"Burundi"}\r
+        BJ{"Bénin"}\r
+        BM{"Bermuda"}\r
+        BN{"Brunéi"}\r
+        BO{"Bolivia"}\r
+        BQ{"Karibia Walanda"}\r
+        BR{"Brasil"}\r
+        BS{"Bahamas"}\r
+        BT{"Bhutan"}\r
+        BV{"Pulo Bovèt"}\r
+        BW{"Botswana"}\r
+        BY{"Bélarus"}\r
+        BZ{"Bélisé"}\r
+        CA{"Kanada"}\r
+        CD{"Kongo - Kinshasa"}\r
+        CF{"Républik Afrika Tengah"}\r
+        CG{"Kongo - Brassaville"}\r
+        CH{"Switserlan"}\r
+        CI{"Pasisir Gadhing"}\r
+        CK{"Kapuloan Cook"}\r
+        CL{"Cilé"}\r
+        CM{"Kamerun"}\r
+        CN{"Tyongkok"}\r
+        CO{"Kolombia"}\r
+        CP{"Pulo Clipperton"}\r
+        CR{"Kosta Rika"}\r
+        CU{"Kuba"}\r
+        CV{"Pongol Verdé"}\r
+        CW{"Kurasao"}\r
+        CX{"Pulo Natal"}\r
+        CY{"Siprus"}\r
+        CZ{"Céko"}\r
+        DE{"Jérman"}\r
+        DG{"Diego Garcia"}\r
+        DJ{"Jibuti"}\r
+        DK{"Dhènemarken"}\r
+        DM{"Dominika"}\r
+        DO{"Républik Dominika"}\r
+        DZ{"Aljasair"}\r
+        EA{"Séuta lan Melila"}\r
+        EC{"Ékuadhor"}\r
+        EE{"Éstonia"}\r
+        EG{"Mesir"}\r
+        EH{"Sahara Kulon"}\r
+        ER{"Éritréa"}\r
+        ES{"Sepanyol"}\r
+        ET{"Étiopia"}\r
+        EU{"Uni Éropah"}\r
+        EZ{"Zona Éuro"}\r
+        FI{"Finlan"}\r
+        FJ{"Fiji"}\r
+        FK{"Kapuloan Falkland"}\r
+        FO{"Kapuloan Faro"}\r
+        FR{"Prancis"}\r
+        GA{"Gabon"}\r
+        GB{"Karajan Manunggal"}\r
+        GD{"Grénada"}\r
+        GE{"Géorgia"}\r
+        GF{"Guyana Prancis"}\r
+        GG{"Guernsei"}\r
+        GH{"Ghana"}\r
+        GI{"Gibraltar"}\r
+        GM{"Gambia"}\r
+        GP{"Guadélup"}\r
+        GS{"Georgia Kidul lan Kapuloan Sandwich Kidul"}\r
+        GT{"Guatémala"}\r
+        GU{"Guam"}\r
+        GY{"Guyana"}\r
+        HK{"Laladan Administratif Astamiwa Hong Kong"}\r
+        HN{"Honduras"}\r
+        HR{"Kroasia"}\r
+        HT{"Haiti"}\r
+        HU{"Honggari"}\r
+        IC{"Kapuloan Kanari"}\r
+        ID{"Indonésia"}\r
+        IE{"Républik Irlan"}\r
+        IL{"Israèl"}\r
+        IM{"Pulo Man"}\r
+        IO{"Wilayah Inggris nang Segoro Hindia"}\r
+        IQ{"Irak"}\r
+        IR{"Iran"}\r
+        IS{"Èslan"}\r
+        IT{"Itali"}\r
+        JE{"Jersey"}\r
+        JM{"Jamaika"}\r
+        JO{"Yordania"}\r
+        JP{"Jepang"}\r
+        KE{"Kénya"}\r
+        KG{"Kirgistan"}\r
+        KH{"Kamboja"}\r
+        KI{"Kiribati"}\r
+        KM{"Komoro"}\r
+        KR{"Koréa Kidul"}\r
+        KW{"Kuwait"}\r
+        KY{"Kapuloan Kéman"}\r
+        KZ{"Kasakstan"}\r
+        LA{"Laos"}\r
+        LB{"Libanon"}\r
+        LC{"Santa Lusia"}\r
+        LI{"Liktenstén"}\r
+        LK{"Sri Lanka"}\r
+        LR{"Libèria"}\r
+        LS{"Lésotho"}\r
+        LT{"Litowen"}\r
+        LU{"Luksemburg"}\r
+        LV{"Latvia"}\r
+        LY{"Libya"}\r
+        MA{"Maroko"}\r
+        MC{"Monako"}\r
+        MD{"Moldova"}\r
+        ME{"Montenégro"}\r
+        MF{"Santa Martin"}\r
+        MG{"Madagaskar"}\r
+        MH{"Kapuloan Marshall"}\r
+        ML{"Mali"}\r
+        MM{"Myanmar (Burma)"}\r
+        MN{"Mongolia"}\r
+        MO{"Laladan Administratif Astamiwa Makau"}\r
+        MP{"Kapuloan Mariana Lor"}\r
+        MQ{"Martinik"}\r
+        MR{"Mauritania"}\r
+        MS{"Monsérat"}\r
+        MT{"Malta"}\r
+        MU{"Mauritius"}\r
+        MV{"Maladéwa"}\r
+        MW{"Malawi"}\r
+        MX{"Mèksiko"}\r
+        MY{"Malaysia"}\r
+        MZ{"Mosambik"}\r
+        NA{"Namibia"}\r
+        NC{"Kalédonia Anyar"}\r
+        NE{"Nigér"}\r
+        NF{"Pulo Norfolk"}\r
+        NG{"Nigéria"}\r
+        NI{"Nikaragua"}\r
+        NL{"Walanda"}\r
+        NO{"Nurwègen"}\r
+        NP{"Népal"}\r
+        NR{"Nauru"}\r
+        NU{"Niue"}\r
+        OM{"Oman"}\r
+        PA{"Panama"}\r
+        PE{"Peru"}\r
+        PF{"Polinesia Prancis"}\r
+        PG{"Papua Nugini"}\r
+        PH{"Pilipina"}\r
+        PK{"Pakistan"}\r
+        PL{"Polen"}\r
+        PN{"Kapuloan Pitcairn"}\r
+        PR{"Puèrto Riko"}\r
+        PS{"Tlatah Palèstina"}\r
+        PT{"Portugal"}\r
+        PW{"Palau"}\r
+        PY{"Paraguay"}\r
+        QA{"Katar"}\r
+        QO{"Oseania Paling Njaba"}\r
+        RE{"Réunion"}\r
+        RO{"Ruméni"}\r
+        RW{"Rwanda"}\r
+        SA{"Arab Saudi"}\r
+        SB{"Kapuloan Suleman"}\r
+        SC{"Sésèl"}\r
+        SD{"Sudan"}\r
+        SE{"Swèdhen"}\r
+        SG{"Singapura"}\r
+        SI{"Slovénia"}\r
+        SJ{"Svalbard lan Jan Mayen"}\r
+        SK{"Slowak"}\r
+        SL{"Siéra Léoné"}\r
+        SM{"San Marino"}\r
+        SN{"Sénégal"}\r
+        SO{"Somalia"}\r
+        SR{"Suriname"}\r
+        SS{"Sudan Kidul"}\r
+        ST{"Sao Tomé lan Principé"}\r
+        SV{"Èl Salvador"}\r
+        SX{"Sint Martén"}\r
+        SY{"Suriah"}\r
+        SZ{"Swasiland"}\r
+        TA{"Tristan da Cunha"}\r
+        TC{"Turks lan Kapuloan Kaikos"}\r
+        TD{"Chad"}\r
+        TF{"Wilayah Prancis nang Kutub Kidul"}\r
+        TG{"Togo"}\r
+        TH{"Tanah Thai"}\r
+        TJ{"Tajikistan"}\r
+        TK{"Tokelau"}\r
+        TL{"Timor Leste"}\r
+        TM{"Turkménistan"}\r
+        TN{"Tunisia"}\r
+        TO{"Tonga"}\r
+        TR{"Turki"}\r
+        TT{"Trinidad lan Tobago"}\r
+        TV{"Tuvalu"}\r
+        TW{"Taiwan"}\r
+        TZ{"Tansania"}\r
+        UA{"Ukrania"}\r
+        UG{"Uganda"}\r
+        UN{"Pasarékatan Bangsa-Bangsa"}\r
+        US{"Amérika Sarékat"}\r
+        UY{"Uruguay"}\r
+        UZ{"Usbèkistan"}\r
+        VE{"Vénésuéla"}\r
+        VI{"Kapuloan Virgin Amérika"}\r
+        VN{"Viètnam"}\r
+        VU{"Vanuatu"}\r
+        WF{"Wallis lan Futuna"}\r
+        WS{"Samoa"}\r
+        XK{"Kosovo"}\r
+        YE{"Yaman"}\r
+        YT{"Mayotte"}\r
+        ZA{"Afrika Kidul"}\r
+        ZM{"Sambia"}\r
+        ZW{"Simbabwe"}\r
+        ZZ{"Daerah Ora Dikenali"}\r
+    }\r
+    Countries%short{\r
+        GB{"KM"}\r
+        HK{"Hong Kong"}\r
+        PS{"Palèstina"}\r
+        US{"AS"}\r
+    }\r
+    Countries%variant{\r
+        CD{"Républik Dhémokratik Kongo"}\r
+        CG{"Républik Kongo"}\r
+        CZ{"Républik Céko"}\r
+        FK{"Kapuloan Falkland (Islas Malvinas)"}\r
+        TL{"Timor Wétan"}\r
+    }\r
+    Version{"2.1.44.15"}\r
+}\r
index e717e9a81aa1be23eab9b31f76608f74582a8e05..148e4a6d5dcb7596003e88e15152f14d9216ee9e 100644 (file)
@@ -38,7 +38,7 @@ ka{
         AE{"არაბთა გაერთიანებული საამიროები"}\r
         AF{"ავღანეთი"}\r
         AG{"ანტიგუა და ბარბუდა"}\r
-        AI{"á\83\90á\83\9cá\83\92á\83\95á\83\98á\83\9aა"}\r
+        AI{"á\83\90á\83\9cá\83\92á\83\98á\83\9aá\83\98ა"}\r
         AL{"ალბანეთი"}\r
         AM{"სომხეთი"}\r
         AO{"ანგოლა"}\r
@@ -133,7 +133,7 @@ ka{
         GU{"გუამი"}\r
         GW{"გვინეა-ბისაუ"}\r
         GY{"გაიანა"}\r
-        HK{"ჰონკონგის სპეციალური ადმინისტრაციული რეგიონი ჩინეთი"}\r
+        HK{"ჰონკონგის სპეციალური ადმინისტრაციული რეგიონი, ჩინეთი"}\r
         HM{"ჰერდი და მაკდონალდის კუნძულები"}\r
         HN{"ჰონდურასი"}\r
         HR{"ხორვატია"}\r
@@ -172,7 +172,7 @@ ka{
         LK{"შრი-ლანკა"}\r
         LR{"ლიბერია"}\r
         LS{"ლესოთო"}\r
-        LT{"á\83\9aá\83\98á\83¢ვა"}\r
+        LT{"á\83\9aá\83\98á\83\94á\83¢á\83£ვა"}\r
         LU{"ლუქსემბურგი"}\r
         LV{"ლატვია"}\r
         LY{"ლიბია"}\r
@@ -187,7 +187,7 @@ ka{
         ML{"მალი"}\r
         MM{"მიანმარი (ბირმა)"}\r
         MN{"მონღოლეთი"}\r
-        MO{"მაკაოს სპეციალური ადმინისტრაციული რეგიონი ჩინეთი"}\r
+        MO{"მაკაოს სპეციალური ადმინისტრაციული რეგიონი, ჩინეთი"}\r
         MP{"ჩრდილოეთ მარიანას კუნძულები"}\r
         MQ{"მარტინიკა"}\r
         MR{"მავრიტანია"}\r
@@ -312,5 +312,5 @@ ka{
         MK{"მაკედონია (ყოფილი იუგოსლავიის რესპუბლიკა მაკედონია)"}\r
         TL{"აღმოსავლეთ ტიმორი"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.50"}\r
 }\r
index 1965a45887066877f834e28cfdf594221207e948..77fb5d4a80c1cce7d228f5a16e1c71fd806272f4 100644 (file)
@@ -227,5 +227,5 @@ kab{
         ZM{"Zambya"}\r
         ZW{"Zimbabwi"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.94"}\r
 }\r
index cdafffd0ab8c0f1264948697ab44d2809e9fa321..199f5592d8d6f5c72a3cc79690c6f975c753ab40 100644 (file)
@@ -306,5 +306,5 @@ kea{
         FK{"Ilhas Falkland (Ilhas Malvinas)"}\r
         MK{"Masidónia (FYROM)"}\r
     }\r
-    Version{"2.1.39.11"}\r
+    Version{"2.1.43.65"}\r
 }\r
index d7c0eb15545cc9233611013baa92032227c76fa8..a4f131c95273c83d569804ddcb5b460585003dfb 100644 (file)
@@ -13,7 +13,7 @@ kk{
         015{"Солтүстік Африка"}\r
         017{"Орталық Африка"}\r
         018{"Оңтүстік Африка"}\r
-        019{"СолÑ\82Ò¯Ñ\81Ñ\82Ñ\96к Ð¶Ó\99не Ð\9eÒ£Ñ\82Ò¯Ñ\81Ñ\82Ñ\96к Ð\90меÑ\80ика"}\r
+        019{"Америка"}\r
         021{"Солтүстік Америка (аймақ)"}\r
         029{"Кариб"}\r
         030{"Шығыс Азия"}\r
@@ -227,7 +227,7 @@ kk{
         PW{"Палау"}\r
         PY{"Парагвай"}\r
         QA{"Катар"}\r
-        QO{"Ð\90лÑ\8bÑ\81 Океания"}\r
+        QO{"СÑ\8bÑ\80Ñ\82Ò\9bÑ\8b Океания"}\r
         RE{"Реюньон"}\r
         RO{"Румыния"}\r
         RS{"Сербия"}\r
@@ -306,11 +306,10 @@ kk{
     Countries%variant{\r
         CD{"Конго Демократиялық Республикасы"}\r
         CG{"Конго Республикасы"}\r
-        CI{"Піл Сүйегі жағалауы"}\r
         CZ{"Чех Республикасы"}\r
         FK{"Фолкленд аралдары (Мальвин аралдары)"}\r
         MK{"Македония Республикасы"}\r
         TL{"Шығыс Тимор"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.88"}\r
 }\r
index 8c2cc80f42bdfeb7614c655296cccad8dc5e7258..930ba59542b92f6d6ee5af353bbb2797552f58f4 100644 (file)
@@ -4,5 +4,5 @@ kl{
     Countries{\r
         GL{"Kalaallit Nunaat"}\r
     }\r
-    Version{"2.1.38.69"}\r
+    Version{"2.1.45.12"}\r
 }\r
index 2880f7800aa16c7e59d214de5da34b0e175a2273..4078780d127e4d3f8977609c7d3a227d7b31059b 100644 (file)
@@ -312,5 +312,5 @@ km{
         MK{"ម៉ាសេដ្វាន (អតីត​សាធារណរដ្ឋ​យូហ្គោស្លាវី)"}\r
         TL{"ទីម័រ​ខាង​កើត"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.88"}\r
 }\r
index 86b1ac010324dabcd871829ef3bdba769807ae34..ca3c381d9b0fd5d77bd0bd1278ce37f2c6daadfa 100644 (file)
@@ -31,6 +31,7 @@ kn{
         151{"ಪೂರ್ವ ಯೂರೋಪ್"}\r
         154{"ಉತ್ತರ ಯೂರೋಪ್"}\r
         155{"ಪಶ್ಚಿಮ ಯೂರೋಪ್"}\r
+        202{"ಉಪ-ಸಹಾರನ್ ಆಫ್ರಿಕಾ"}\r
         419{"ಲ್ಯಾಟಿನ್ ಅಮೇರಿಕಾ"}\r
         AC{"ಅಸೆನ್ಶನ್ ದ್ವೀಪ"}\r
         AD{"ಅಂಡೋರಾ"}\r
@@ -237,7 +238,7 @@ kn{
         SC{"ಸೀಶೆಲ್ಲೆಸ್"}\r
         SD{"ಸುಡಾನ್"}\r
         SE{"ಸ್ವೀಡನ್"}\r
-        SG{"ಸಿà²\82à²\97ಾಪà³\81ರà³\8d"}\r
+        SG{"ಸಿಂಗಪುರ್"}\r
         SH{"ಸೇಂಟ್ ಹೆಲೆನಾ"}\r
         SI{"ಸ್ಲೋವೇನಿಯಾ"}\r
         SJ{"ಸ್ವಾಲ್ಬಾರ್ಡ್ ಮತ್ತು ಜಾನ್ ಮೆಯನ್"}\r
@@ -274,7 +275,7 @@ kn{
         UG{"ಉಗಾಂಡಾ"}\r
         UM{"ಯುಎಸ್‌ ಔಟ್‌ಲೇಯಿಂಗ್ ದ್ವೀಪಗಳು"}\r
         UN{"ಸಂಯುಕ್ತ ಸಂಸ್ಥಾನಗಳು"}\r
-        US{"à²\85ಮà³\87ರಿà²\95ಾ à²¸à²\82ಯà³\81à²\95à³\8dತ à²¸à²\82ಸà³\8dಥಾನ"}\r
+        US{"ಯà³\81ನà³\88à²\9fà³\86ಡà³\8d à²¸à³\8dà²\9fà³\87à²\9fà³\8dಸà³\8d"}\r
         UY{"ಉರುಗ್ವೆ"}\r
         UZ{"ಉಜ್ಬೇಕಿಸ್ಥಾನ್"}\r
         VA{"ವ್ಯಾಟಿಕನ್ ಸಿಟಿ"}\r
@@ -307,8 +308,9 @@ kn{
         CG{"ಕಾಂಗೋ (ಗಣರಾಜ್ಯ)"}\r
         CI{"ಐವರಿ ಕೋಸ್ಟ್"}\r
         CZ{"ಜೆಕ್ ಗಣರಾಜ್ಯ"}\r
+        FK{"ಫಾಕ್‌ಲ್ಯಾಂಡ್ ದ್ವೀಪಗಳು (ಇಸ್ಲಾಸ್ ಮಾಲ್ವಿನಸ್)"}\r
         MK{"ಮ್ಯಾಸಿಡೋನಿಯಾ (FYROM)"}\r
         TL{"ಪೂರ್ವ ಟಿಮೋರ್"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.88"}\r
 }\r
index e7884c225789789237f7db6942bc5cca05d15b7b..90547be2c0657a73b9273f242467c5df607d1656 100644 (file)
@@ -310,6 +310,7 @@ ko{
         CZ{"체코 공화국"}\r
         FK{"포클랜드 제도(말비나스 군도)"}\r
         MK{"마케도니아(FYROM)"}\r
+        TL{"티모르레스테"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.91"}\r
 }\r
index 12cde705e58beef8471db3ada48e5c398340db4f..a0a4e63aa89fe96a958fb1d4ebebd5867083463a 100644 (file)
@@ -31,6 +31,7 @@ kok{
         151{"उदेंत येवरोप"}\r
         154{"उत्तर येवरोप"}\r
         155{"अस्तंत येवरोप"}\r
+        202{"उप-सहाराई आफ्रिका"}\r
         419{"लॅटीन अमेरिका"}\r
         AC{"असेशन आयलँड"}\r
         AD{"अंडोरा"}\r
@@ -310,5 +311,5 @@ kok{
         MK{"मॅसिडोनिया (FYROM)"}\r
         TL{"ईस्ट तिमूर"}\r
     }\r
-    Version{"2.1.38.69"}\r
+    Version{"2.1.44.88"}\r
 }\r
index 3f162d3af80efe9f3b097f651965a0bf4accef14..23703a448f87008d8c903f391b8eff5fad7a49bf 100644 (file)
@@ -278,5 +278,5 @@ ks{
         ZW{"زِمبابے"}\r
         ZZ{"نامعلوٗم تہٕ نالَگہار عَلاقہٕ"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.41.34"}\r
 }\r
index 8186bfa240f2bba3a3af742f665112c55598d73b..f305fb11d30aedf29f035a20ea74766b9e0d5419 100644 (file)
@@ -305,5 +305,5 @@ ksh{
         FK{"de malleviinesche Enselle"}\r
         MK{"de vörmaals ens jugoßlaawesch jewääse Republik Mazedoonije"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.41.34"}\r
 }\r
diff --git a/source/data/region/ku.txt b/source/data/region/ku.txt
new file mode 100644 (file)
index 0000000..056467c
--- /dev/null
@@ -0,0 +1,270 @@
+// © 2016 and later: Unicode, Inc. and others.\r
+// License & terms of use: http://www.unicode.org/copyright.html#License\r
+ku{\r
+    Countries{\r
+        001{"Cîhan"}\r
+        002{"Afrîka"}\r
+        003{"Amerîkaya Bakur"}\r
+        005{"Amerîkaya Başûr"}\r
+        009{"Okyanûsya"}\r
+        013{"Amerîkaya Navîn"}\r
+        015{"Afrîkaya Bakur"}\r
+        019{"Amerîka"}\r
+        029{"Karîb"}\r
+        053{"Awistralasya"}\r
+        054{"Melanezya"}\r
+        057{"Herêma Mîkronezya"}\r
+        061{"Polînezya"}\r
+        142{"Asya"}\r
+        150{"Ewropa"}\r
+        151{"Ewropaya Rojhilat"}\r
+        155{"Ewropaya Rojava"}\r
+        419{"Amerîkaya Latînî"}\r
+        AD{"Andorra"}\r
+        AE{"Emîrtiyên Erebî yên Yekbûyî"}\r
+        AF{"Efxanistan"}\r
+        AG{"Antîgua û Berbûda"}\r
+        AL{"Albanya"}\r
+        AM{"Ermenistan"}\r
+        AO{"Angola"}\r
+        AQ{"Antarktîka"}\r
+        AR{"Arjentîn"}\r
+        AS{"Samoaya Amerîkanî"}\r
+        AT{"Awistirya"}\r
+        AU{"Awistralya"}\r
+        AW{"Arûba"}\r
+        AZ{"Azerbaycan"}\r
+        BA{"Bosniya û Herzegovîna"}\r
+        BB{"Barbados"}\r
+        BD{"Bangladeş"}\r
+        BE{"Belçîka"}\r
+        BF{"Burkîna Faso"}\r
+        BG{"Bulgaristan"}\r
+        BH{"Behreyn"}\r
+        BI{"Burundî"}\r
+        BJ{"Bênîn"}\r
+        BL{"Saint-Barthélemy"}\r
+        BM{"Bermûda"}\r
+        BN{"Brûney"}\r
+        BO{"Bolîvya"}\r
+        BR{"Brazîl"}\r
+        BS{"Bahama"}\r
+        BT{"Bûtan"}\r
+        BW{"Botswana"}\r
+        BY{"Belarûs"}\r
+        BZ{"Belîze"}\r
+        CA{"Kanada"}\r
+        CD{"Kongo - Kînşasa"}\r
+        CF{"Komara Afrîkaya Navend"}\r
+        CG{"Kongo - Brazzaville"}\r
+        CH{"Swîsre"}\r
+        CI{"Peravê Diranfîl"}\r
+        CK{"Giravên Cook"}\r
+        CL{"Şîle"}\r
+        CM{"Kamerûn"}\r
+        CN{"Çîn"}\r
+        CO{"Kolombiya"}\r
+        CR{"Kosta Rîka"}\r
+        CU{"Kûba"}\r
+        CV{"Kap Verde"}\r
+        CY{"Kîpros"}\r
+        CZ{"Çekya"}\r
+        DE{"Almanya"}\r
+        DJ{"Cîbûtî"}\r
+        DK{"Danîmarka"}\r
+        DM{"Domînîka"}\r
+        DO{"Komara Domînîk"}\r
+        DZ{"Cezayir"}\r
+        EC{"Ekuador"}\r
+        EE{"Estonya"}\r
+        EG{"Misir"}\r
+        EH{"Sahraya Rojava"}\r
+        ER{"Erîtrea"}\r
+        ES{"Spanya"}\r
+        ET{"Etiyopya"}\r
+        EU{"Yekîtiya Ewropayê"}\r
+        FI{"Fînlenda"}\r
+        FJ{"Fîjî"}\r
+        FK{"Giravên Malvîn"}\r
+        FM{"Mîkronezya"}\r
+        FO{"Giravên Feroe"}\r
+        FR{"Fransa"}\r
+        GA{"Gabon"}\r
+        GB{"Keyaniya Yekbûyî"}\r
+        GD{"Grenada"}\r
+        GE{"Gurcistan"}\r
+        GF{"Guyanaya Fransî"}\r
+        GH{"Gana"}\r
+        GI{"Cîbraltar"}\r
+        GL{"Grînlenda"}\r
+        GM{"Gambiya"}\r
+        GN{"Gîne"}\r
+        GP{"Guadeloupe"}\r
+        GQ{"Gîneya Rojbendî"}\r
+        GR{"Yewnanistan"}\r
+        GT{"Guatemala"}\r
+        GU{"Guam"}\r
+        GW{"Gîne-Bissau"}\r
+        GY{"Guyana"}\r
+        HN{"Hondûras"}\r
+        HR{"Kroatya"}\r
+        HT{"Haîtî"}\r
+        HU{"Macaristan"}\r
+        IC{"Giravên Qenariyê"}\r
+        ID{"Îndonezya"}\r
+        IE{"Îrlenda"}\r
+        IL{"Îsraêl"}\r
+        IM{"Girava Man"}\r
+        IN{"Hindistan"}\r
+        IQ{"Iraq"}\r
+        IR{"Îran"}\r
+        IS{"Îslenda"}\r
+        IT{"Îtalya"}\r
+        JM{"Jamaîka"}\r
+        JO{"Urdun"}\r
+        JP{"Japon"}\r
+        KE{"Kenya"}\r
+        KG{"Qirgizistan"}\r
+        KH{"Kamboca"}\r
+        KI{"Kirîbatî"}\r
+        KM{"Komor"}\r
+        KN{"Saint Kitts û Nevîs"}\r
+        KP{"Korêya Bakur"}\r
+        KR{"Korêya Başûr"}\r
+        KW{"Kuweyt"}\r
+        KY{"Giravên Kaymanê"}\r
+        KZ{"Qazaxistan"}\r
+        LA{"Laos"}\r
+        LB{"Libnan"}\r
+        LC{"Saint Lucia"}\r
+        LI{"Liechtenstein"}\r
+        LK{"Srî Lanka"}\r
+        LR{"Lîberya"}\r
+        LS{"Lesoto"}\r
+        LT{"Lîtvanya"}\r
+        LU{"Lûksembûrg"}\r
+        LV{"Letonya"}\r
+        LY{"Lîbya"}\r
+        MA{"Maroko"}\r
+        MC{"Monako"}\r
+        MD{"Moldova"}\r
+        ME{"Montenegro"}\r
+        MF{"MF"}\r
+        MG{"Madagaskar"}\r
+        MH{"Giravên Marşal"}\r
+        MK{"Makedonya"}\r
+        ML{"Malî"}\r
+        MM{"Myanmar (Birmanya)"}\r
+        MN{"Mongolya"}\r
+        MP{"Giravên Bakurê Marianan"}\r
+        MQ{"Martinique"}\r
+        MR{"Morîtanya"}\r
+        MT{"Malta"}\r
+        MU{"Maurîtius"}\r
+        MV{"Maldîv"}\r
+        MW{"Malawî"}\r
+        MX{"Meksîk"}\r
+        MY{"Malezya"}\r
+        MZ{"Mozambîk"}\r
+        NA{"Namîbya"}\r
+        NC{"Kaledonyaya Nû"}\r
+        NE{"Nîjer"}\r
+        NF{"Girava Norfolk"}\r
+        NG{"Nîjerya"}\r
+        NI{"Nîkaragua"}\r
+        NL{"Holenda"}\r
+        NO{"Norwêc"}\r
+        NP{"Nepal"}\r
+        NR{"Naûrû"}\r
+        NU{"Niûe"}\r
+        NZ{"Nû Zelenda"}\r
+        OM{"Oman"}\r
+        PA{"Panama"}\r
+        PE{"Perû"}\r
+        PF{"Polînezyaya Fransî"}\r
+        PG{"Papua Gîneya Nû"}\r
+        PH{"Filîpîn"}\r
+        PK{"Pakistan"}\r
+        PL{"Polonya"}\r
+        PM{"Saint-Pierre û Miquelon"}\r
+        PN{"Giravên Pitcairn"}\r
+        PR{"Porto Rîko"}\r
+        PS{"Xakên filistînî"}\r
+        PT{"Portûgal"}\r
+        PW{"Palau"}\r
+        PY{"Paraguay"}\r
+        QA{"Qeter"}\r
+        RE{"Réunion"}\r
+        RO{"Romanya"}\r
+        RS{"Serbistan"}\r
+        RU{"Rûsya"}\r
+        RW{"Rwanda"}\r
+        SA{"Erebistana Siyûdî"}\r
+        SB{"Giravên Salomon"}\r
+        SC{"Seyşel"}\r
+        SD{"Sûdan"}\r
+        SE{"Swêd"}\r
+        SG{"Singapûr"}\r
+        SI{"Slovenya"}\r
+        SK{"Slovakya"}\r
+        SL{"Sierra Leone"}\r
+        SM{"San Marîno"}\r
+        SN{"Senegal"}\r
+        SO{"Somalya"}\r
+        SR{"Sûrînam"}\r
+        SS{"Sûdana Başûr"}\r
+        ST{"Sao Tome û Prînsîpe"}\r
+        SV{"El Salvador"}\r
+        SY{"Sûrî"}\r
+        SZ{"Swazîlenda"}\r
+        TC{"Giravên Turk û Kaîkos"}\r
+        TD{"Çad"}\r
+        TG{"Togo"}\r
+        TH{"Taylenda"}\r
+        TJ{"Tacîkistan"}\r
+        TK{"Tokelau"}\r
+        TL{"Tîmora-Leste"}\r
+        TM{"Tirkmenistan"}\r
+        TN{"Tûnis"}\r
+        TO{"Tonga"}\r
+        TR{"Tirkiye"}\r
+        TT{"Trînîdad û Tobago"}\r
+        TV{"Tûvalû"}\r
+        TW{"Taywan"}\r
+        TZ{"Tanzanya"}\r
+        UA{"Ûkrayna"}\r
+        UG{"Ûganda"}\r
+        UN{"Neteweyên Yekbûyî"}\r
+        US{"Dewletên Yekbûyî yên Amerîkayê"}\r
+        UY{"Ûrûguay"}\r
+        UZ{"Ûzbêkistan"}\r
+        VA{"Vatîkan"}\r
+        VC{"Saint Vincent û Giravên Grenadîn"}\r
+        VE{"Venezuela"}\r
+        VN{"Viyetnam"}\r
+        VU{"Vanûatû"}\r
+        WF{"Wallis û Futuna"}\r
+        WS{"Samoa"}\r
+        XK{"Kosovo"}\r
+        YE{"Yemen"}\r
+        ZA{"Afrîkaya Başûr"}\r
+        ZM{"Zambiya"}\r
+        ZW{"Zîmbabwe"}\r
+    }\r
+    Countries%short{\r
+        GB{"KY"}\r
+        HK{"Hong Kong"}\r
+        MO{"Makao"}\r
+        PS{"Filistîn"}\r
+        US{"DYA"}\r
+    }\r
+    Countries%variant{\r
+        CD{"Kongo (KDK)"}\r
+        CG{"Kongo (Komar)"}\r
+        CZ{"Komara Çekî"}\r
+        FK{"Giravên Falkland"}\r
+        MK{"MK"}\r
+        TL{"Tîmora Rojhilat"}\r
+    }\r
+    Version{"2.1.44.82"}\r
+}\r
index 89943472fcb4309a2bf2fd857af2ac139df6692b..e028e0ed910503de37ce515410acdc2311a91270 100644 (file)
@@ -4,5 +4,5 @@ kw{
     Countries{\r
         GB{"Rywvaneth Unys"}\r
     }\r
-    Version{"2.1.38.69"}\r
+    Version{"2.1.43.65"}\r
 }\r
index d1d3f7e4ef378cffcd7e124274929208382d52b9..094665b77f1394c6b0b687c74ef1e2ceaa1a0b0f 100644 (file)
@@ -31,6 +31,7 @@ ky{
         151{"Чыгыш Европа"}\r
         154{"Түндүк Европа"}\r
         155{"Батыш Европа"}\r
+        202{"Африка өлкөлөрү"}\r
         419{"Латын Америкасы"}\r
         AC{"Вознесение аралы"}\r
         AD{"Андорра"}\r
@@ -85,7 +86,7 @@ ky{
         CP{"Клиппертон аралы"}\r
         CR{"Коста-Рика"}\r
         CU{"Куба"}\r
-        CV{"Ð\9aапе Верде"}\r
+        CV{"Ð\9aабо-Верде"}\r
         CW{"Кюрасао"}\r
         CX{"Рождество аралы"}\r
         CY{"Кипр"}\r
@@ -199,7 +200,7 @@ ky{
         MY{"Малайзия"}\r
         MZ{"Мозамбик"}\r
         NA{"Намибия"}\r
-        NC{"Жаӊы Каледония"}\r
+        NC{"Жаңы Каледония"}\r
         NE{"Нигер"}\r
         NF{"Норфолк аралы"}\r
         NG{"Нигерия"}\r
@@ -209,13 +210,13 @@ ky{
         NP{"Непал"}\r
         NR{"Науру"}\r
         NU{"Ниуэ"}\r
-        NZ{"Жаӊы Зеландия"}\r
+        NZ{"Жаңы Зеландия"}\r
         OM{"Оман"}\r
         PA{"Панама"}\r
         PE{"Перу"}\r
         PF{"Полинезия (франциялык)"}\r
         PG{"Папуа-Жаңы Гвинея"}\r
-        PH{"Филлипин"}\r
+        PH{"Филиппин"}\r
         PK{"Пакистан"}\r
         PL{"Польша"}\r
         PM{"Сен-Пьер жана Микелон"}\r
@@ -274,7 +275,7 @@ ky{
         UG{"Уганда"}\r
         UM{"АКШнын сырткы аралдары"}\r
         UN{"БУ"}\r
-        US{"Ð\90меÑ\80ика Ð\9aоÑ\88мо Ð¨Ñ\82аÑ\82Ñ\82аÑ\80Ñ\8b"}\r
+        US{"Ð\9aоÑ\88мо Ð¨Ñ\82аÑ\82Ñ\82аÑ\80"}\r
         UY{"Уругвай"}\r
         UZ{"Өзбекстан"}\r
         VA{"Ватикан"}\r
@@ -310,5 +311,5 @@ ky{
         MK{"Македония (Мур. Югосл.)"}\r
         TL{"Чыгыш Тимор"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.65"}\r
 }\r
index abcd7bba74464ac64a744004d65875ad1c4115fd..a82de0f7a2a01270770d9f96a351d0b66955e16e 100644 (file)
@@ -305,5 +305,5 @@ lb{
         CI{"Elfebeeküst"}\r
         MK{"Mazedonien (EJR)"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.91"}\r
 }\r
index 4f8f23d879cadb417230540ff5740f4cbef58684..0716d4a5f854004d6afc4f2a0e67b0cabf072ed5 100644 (file)
@@ -69,7 +69,7 @@ lo{
         BT{"ພູຖານ"}\r
         BV{"ເກາະບູເວດ"}\r
         BW{"ບອດສະວານາ"}\r
-        BY{"à»\80àº\9aວàº\9aາຣຸສ"}\r
+        BY{"à»\80àº\9aລາຣຸສ"}\r
         BZ{"ເບລີຊ"}\r
         CA{"ແຄນາດາ"}\r
         CC{"ຫມູ່ເກາະໂກໂກສ"}\r
@@ -188,7 +188,7 @@ lo{
         MM{"ມຽນມາ (ເບີມາ)"}\r
         MN{"ມອງໂກເລຍ"}\r
         MO{"ມາກາວ ເຂດປົກຄອງພິເສດ ຈີນ"}\r
-        MP{"ຫມູà»\88à»\80àº\81າະມາà»\81àº\8aວàº\95ອàº\99à»\80ຫàº\99ືອ"}\r
+        MP{"à»\9dູà»\88à»\80àº\81າະມາà»\80ຣàº\8dàº\99າàº\95ອàº\99à»\80à»\9cືອ"}\r
         MQ{"ມາຕິນີກ"}\r
         MR{"ມົວຣິເທເນຍ"}\r
         MS{"ມອນເຊີຣາດ"}\r
@@ -312,5 +312,5 @@ lo{
         MK{"ແມຊິໂດເນຍ (FYROM)"}\r
         TL{"ທິມໍ ຕາເວັນອອກ"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.50"}\r
 }\r
index 4cb253248d2ad7720894be9d49c96b367d647dbf..cd81be76fc3f15982546d7f9f49d6bafb3dbf3c1 100644 (file)
@@ -26,5 +26,5 @@ lrc{
         US{"ڤولاتیا یأکاگئرتە"}\r
         ZZ{"راساگە نادیار"}\r
     }\r
-    Version{"2.1.38.69"}\r
+    Version{"2.1.43.65"}\r
 }\r
index 7d1e222cb63cf559abf8eeeba3fc64f602727975..d5ae9838d5d9bf7dea35d4640ea310c62e1192d2 100644 (file)
@@ -311,5 +311,5 @@ lt{
         FK{"Folklando (Malvinų) Salos"}\r
         MK{"Makedonijos Respublika"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.91"}\r
 }\r
index 19eada40b3c5edf47e815315bd0556dde14b056c..1c897c4a6d42dc36a731bb6802cc2421c894766e 100644 (file)
@@ -115,7 +115,7 @@ lv{
         FO{"Fēru salas"}\r
         FR{"Francija"}\r
         GA{"Gabona"}\r
-        GB{"Lielbritānija"}\r
+        GB{"Apvienotā Karaliste"}\r
         GD{"Grenāda"}\r
         GE{"Gruzija"}\r
         GF{"Francijas Gviāna"}\r
@@ -296,7 +296,7 @@ lv{
         ZZ{"nezināms reģions"}\r
     }\r
     Countries%short{\r
-        GB{"Lielbritānija"}\r
+        GB{"Apvienotā Karaliste"}\r
         HK{"Honkonga"}\r
         MO{"Makao"}\r
         PS{"Palestīna"}\r
@@ -311,5 +311,5 @@ lv{
         FK{"Folklenda (Malvinu) salas"}\r
         MK{"bijusī Dienvidslāvijas Maķedonijas Republika"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.91"}\r
 }\r
index ec10d71da8167ed814cd40af081bd17068b93d9a..387ae4efacab685767e57fc8c7a3049c4f680224 100644 (file)
@@ -227,5 +227,5 @@ mg{
         ZM{"Zambia"}\r
         ZW{"Zimbaboe"}\r
     }\r
-    Version{"2.1.39.11"}\r
+    Version{"2.1.43.94"}\r
 }\r
diff --git a/source/data/region/mi.txt b/source/data/region/mi.txt
new file mode 100644 (file)
index 0000000..bd17995
--- /dev/null
@@ -0,0 +1,19 @@
+// © 2016 and later: Unicode, Inc. and others.\r
+// License & terms of use: http://www.unicode.org/copyright.html#License\r
+mi{\r
+    Countries{\r
+        BR{"Parahi"}\r
+        CN{"Haina"}\r
+        DE{"Tiamana"}\r
+        FR{"Wīwī"}\r
+        GB{"Hononga o Piritene"}\r
+        IN{"Inia"}\r
+        IT{"Itāria"}\r
+        JP{"Hapani"}\r
+        NZ{"Aotearoa"}\r
+        RU{"Rūhia"}\r
+        US{"Hononga o Amerika"}\r
+        ZZ{"Rohe Tē Mōhiotia"}\r
+    }\r
+    Version{"2.1.44.15"}\r
+}\r
index 943c0b24138c3eb5c108d137ca7283c48494f0a0..d6e9f367e07b70d4452d8f1dcc97d2b2fe24d9e8 100644 (file)
@@ -312,5 +312,5 @@ mk{
         MK{"Република Македонија"}\r
         TL{"Источен Тимор"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.65"}\r
 }\r
index 2e4f963abc5d033219d55b04c7bb0aecbd3b85c1..7ce0feb1abf8fd9b6fc6bec64a3ca368ade89db5 100644 (file)
@@ -31,7 +31,7 @@ ml{
         151{"കിഴക്കൻ യൂറോപ്പ്"}\r
         154{"വടക്കേ യൂറോപ്പ്"}\r
         155{"പശ്ചിമ യൂറോപ്പ്"}\r
-        202{"202"}\r
+        202{"സബ്-സഹാറൻ ആഫ്രിക്ക"}\r
         419{"ലാറ്റിനമേരിക്ക"}\r
         AC{"അസൻഷൻ ദ്വീപ്"}\r
         AD{"അൻഡോറ"}\r
@@ -93,7 +93,7 @@ ml{
         CZ{"ചെക്കിയ"}\r
         DE{"ജർമ്മനി"}\r
         DG{"ഡീഗോ ഗ്രാഷ്യ"}\r
-        DJ{"ദിà´\9cà´¿à´¬àµ\97à´\9fàµ\8dà´\9fി"}\r
+        DJ{"à´\9cà´¿à´¬àµ\82à´¤àµ\8dà´¤ി"}\r
         DK{"ഡെൻമാർക്ക്"}\r
         DM{"ഡൊമിനിക്ക"}\r
         DO{"ഡൊമിനിക്കൻ റിപ്പബ്ലിക്ക്"}\r
@@ -312,5 +312,5 @@ ml{
         MK{"മാസിഡോണിയ (FYROM)"}\r
         TL{"കിഴക്കൻ തിമോർ"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.50"}\r
 }\r
index fe5a5ea282ed14e919451b3841f4d3f2391f56ac..3222271dbbe1d29bed84fe6c31b87f0ef08cd18e 100644 (file)
@@ -15,12 +15,12 @@ mn{
         018{"Өмнөд Африк тив"}\r
         019{"Америк"}\r
         021{"Хойд Америк тив"}\r
-        029{"Карибын"}\r
+        029{"Карибын тэнгис"}\r
         030{"Зүүн Ази"}\r
         034{"Өмнөд Ази"}\r
         035{"Зүүн өмнөд Ази"}\r
         039{"Өмнөд Европ"}\r
-        053{"Австралиази"}\r
+        053{"Австрализи"}\r
         054{"Меланези"}\r
         057{"Микронезийн бүс"}\r
         061{"Полинези"}\r
@@ -35,7 +35,7 @@ mn{
         419{"Латин Америк"}\r
         AC{"Асенсион арал"}\r
         AD{"Андорра"}\r
-        AE{"Арабын Нэгдсэн Эмират Улс"}\r
+        AE{"Арабын Нэгдсэн Эмирт Улс"}\r
         AF{"Афганистан"}\r
         AG{"Антигуа ба Барбуда"}\r
         AI{"Ангилья"}\r
@@ -68,14 +68,14 @@ mn{
         BS{"Багамын арлууд"}\r
         BT{"Бутан"}\r
         BV{"Буве арал"}\r
-        BW{"Ботсвана"}\r
+        BW{"Ботсван"}\r
         BY{"Беларусь"}\r
-        BZ{"Белиз"}\r
+        BZ{"Белизе"}\r
         CA{"Канад"}\r
         CC{"Кокос (Кийлинг) арлууд"}\r
         CD{"Конго-Киншаса"}\r
         CF{"Төв Африкийн Бүгд Найрамдах Улс"}\r
-        CG{"Конго Браззавиль"}\r
+        CG{"Конго-Браззавиль"}\r
         CH{"Швейцарь"}\r
         CI{"Кот-д’Ивуар"}\r
         CK{"Күүкийн арлууд"}\r
@@ -108,7 +108,7 @@ mn{
         ET{"Этиоп"}\r
         EU{"Европын Холбоо"}\r
         EZ{"Евро бүс"}\r
-        FI{"Финланд"}\r
+        FI{"Финлянд"}\r
         FJ{"Фижи"}\r
         FK{"Фолклендийн арлууд"}\r
         FM{"Микронези"}\r
@@ -128,7 +128,7 @@ mn{
         GP{"Гваделуп"}\r
         GQ{"Экваторын Гвиней"}\r
         GR{"Грек"}\r
-        GS{"Өмнөд Ð\96оÑ\80жиа Ð±Ð° Ó¨Ð¼Ð½Ó©Ð´ Ð¡Ñ\8dндвиÑ\87ийн Ð\90рлууд"}\r
+        GS{"Өмнөд Ð\96оÑ\80жиа Ð±Ð° Ó¨Ð¼Ð½Ó©Ð´ Ð¡Ñ\8dндвиÑ\87ийн Ð°рлууд"}\r
         GT{"Гватемал"}\r
         GU{"Гуам"}\r
         GW{"Гвиней-Бисау"}\r
@@ -193,7 +193,7 @@ mn{
         MR{"Мавритани"}\r
         MS{"Монтсеррат"}\r
         MT{"Мальта"}\r
-        MU{"Маврики"}\r
+        MU{"Маврикий"}\r
         MV{"Мальдив"}\r
         MW{"Малави"}\r
         MX{"Мексик"}\r
@@ -222,7 +222,7 @@ mn{
         PM{"Сент-Пьер ба Микело"}\r
         PN{"Питкэрн арлууд"}\r
         PR{"Пуэрто-Рико"}\r
-        PS{"Палестины нутаг дэвсгэрүүд"}\r
+        PS{"Палестины нутаг дэвсгэр"}\r
         PT{"Португал"}\r
         PW{"Палау"}\r
         PY{"Парагвай"}\r
@@ -249,7 +249,7 @@ mn{
         SO{"Сомали"}\r
         SR{"Суринам"}\r
         SS{"Өмнөд Судан"}\r
-        ST{"Сан-Томе Принсипи"}\r
+        ST{"Сан-Томе Ð±Ð° Ð\9fÑ\80инÑ\81ипи"}\r
         SV{"Эль Сальвадор"}\r
         SX{"Синт Мартен"}\r
         SY{"Сири"}\r
@@ -281,8 +281,8 @@ mn{
         VA{"Ватикан хот улс"}\r
         VC{"Сент-Винсент ба Гренадин"}\r
         VE{"Венесуэл"}\r
-        VG{"Ð\91Ñ\80иÑ\82анийн Ð\92иÑ\80жиний Ð\90рлууд"}\r
-        VI{"Ð\90Ð\9dУ-Ñ\8bн Ð\92иÑ\80жиний Ð\90рлууд"}\r
+        VG{"Ð\91Ñ\80иÑ\82анийн Ð\92иÑ\80жиний Ð°рлууд"}\r
+        VI{"Ð\90Ð\9dУ-Ñ\8bн Ð\92иÑ\80жиний Ð°рлууд"}\r
         VN{"Вьетнам"}\r
         VU{"Вануату"}\r
         WF{"Уоллис ба Футуна"}\r
@@ -309,8 +309,8 @@ mn{
         CI{"Зааны ясан эрэг"}\r
         CZ{"Бүгд Найрамдах Чех Улс"}\r
         FK{"Фолклендийн арлууд (Мальвины арлууд)"}\r
-        MK{"Ð\9cакедон (Ð¥Ñ\83Ñ\83Ñ\87ин Ð®Ð³Ð¾Ñ\81лавÑ\8bн Ð±Ò¯Ñ\80Ñ\8dлдÑ\8dÑ\85үүний Ð\9cакедон)"}\r
+        MK{"Ð\9cакедон (Ð¥Ñ\83Ñ\83Ñ\87ин Ð®Ð\91Ð\9dÐ\9cУ)"}\r
         TL{"Зүүн Тимор"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.94"}\r
 }\r
index b953a3514e94800778cf22eb976300ef3dcb0bb4..aed851aa91fa947d752d433f83f70adfc1e7eba3 100644 (file)
@@ -311,5 +311,5 @@ mr{
         MK{"मॅसेडोनिया (FYROM)"}\r
         TL{"पूर्व तिमोर"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.65"}\r
 }\r
index b51e3c62e55d2f60f04af83672453cabefec9b38..77af4edcad1511dc78f17be9194200794da0110c 100644 (file)
@@ -59,7 +59,7 @@ ms{
         BH{"Bahrain"}\r
         BI{"Burundi"}\r
         BJ{"Benin"}\r
-        BL{"Saint Barthélemy"}\r
+        BL{"St. Barthelemy"}\r
         BM{"Bermuda"}\r
         BN{"Brunei"}\r
         BO{"Bolivia"}\r
@@ -312,5 +312,5 @@ ms{
         MK{"Macedonia (FYROM)"}\r
         TL{"Timor Timur"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.91"}\r
 }\r
index 72e5c83e029d21bbe0d0fc5c86bb1e70a807fb7b..2b5c92346f0ade224397ad27a58c58b5cb8bb7d1 100644 (file)
@@ -73,12 +73,12 @@ mt{
         CD{"ir-Repubblika Demokratika tal-Kongo"}\r
         CF{"ir-Repubblika Ċentru-Afrikana"}\r
         CG{"il-Kongo - Brazzaville"}\r
-        CH{"Żvizzera"}\r
+        CH{"l-Iżvizzera"}\r
         CI{"il-Kosta tal-Avorju"}\r
         CK{"Gżejjer Cook"}\r
         CL{"iċ-Ċili"}\r
         CM{"il-Kamerun"}\r
-        CN{"CN"}\r
+        CN{"iċ-Ċina"}\r
         CO{"il-Kolombja"}\r
         CP{"il-Gżira Clipperton"}\r
         CR{"il-Costa Rica"}\r
@@ -287,7 +287,7 @@ mt{
         VU{"Vanuatu"}\r
         WF{"Wallis u Futuna"}\r
         WS{"Samoa"}\r
-        XK{"Kosovo"}\r
+        XK{"il-Kosovo"}\r
         YE{"il-Jemen"}\r
         YT{"Mayotte"}\r
         ZA{"l-Afrika t’Isfel"}\r
@@ -305,8 +305,10 @@ mt{
     Countries%variant{\r
         CD{"Kongo (RDK)"}\r
         CG{"ir-Repubblika tal-Kongo"}\r
+        CZ{"Ir-Repubblika Ċeka"}\r
         FK{"Il-Gżejjer Falkland (il-Gżejjer Malvinas)"}\r
+        MK{"l-Eks Repubblika Jugoslava tal-Maċedonia"}\r
         TL{"Timor tal-Lvant"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.94"}\r
 }\r
index 9b6cdcb94c260da4153ef858adb10db741449c5a..53e77edc3a3cbac2a8dae8ea54827fe93338c672 100644 (file)
@@ -42,7 +42,7 @@ my{
         AL{"အယ်လ်ဘေးနီးယား"}\r
         AM{"အာမေးနီးယား"}\r
         AO{"အန်ဂိုလာ"}\r
-        AQ{"á\80¡á\80\94á\80¹တာတိက"}\r
+        AQ{"á\80¡á\80\94á\80ºတာတိက"}\r
         AR{"အာဂျင်တီးနား"}\r
         AS{"အမေရိကန် ဆမိုးအား"}\r
         AT{"ဩစတြီးယား"}\r
@@ -188,7 +188,7 @@ my{
         MM{"မြန်မာ"}\r
         MN{"မွန်ဂိုးလီးယား"}\r
         MO{"မကာအို (တရုတ်ပြည်)"}\r
-        MP{"á\80\90á\80±á\80¬á\80\84်ပိုင်းမာရီအာနာကျွန်းစု"}\r
+        MP{"á\80\99á\80¼á\80±á\80¬á\80\80်ပိုင်းမာရီအာနာကျွန်းစု"}\r
         MQ{"မာတီနိခ်"}\r
         MR{"မော်ရီတေးနီးယား"}\r
         MS{"မောင့်စဲရက်"}\r
@@ -196,7 +196,7 @@ my{
         MU{"မောရစ်ရှ"}\r
         MV{"မော်လ်ဒိုက်"}\r
         MW{"မာလာဝီ"}\r
-        MX{"á\80\99á\80\80á\80¹ကဆီကို"}\r
+        MX{"á\80\99á\80\80á\80ºကဆီကို"}\r
         MY{"မလေးရှား"}\r
         MZ{"မိုဇမ်ဘစ်"}\r
         NA{"နမီးဘီးယား"}\r
@@ -311,5 +311,5 @@ my{
         FK{"ဖော့ကလန် ကျွန်းစု (အီလားစ် မောလ်ဗီနာစ်)"}\r
         MK{"မက်ဆီဒိုးနီးယား (ယခင် ယူဂိုစလားဗီးယား မက်ဆီဒိုးနီးယားပြည်ထောင်စု)"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.88"}\r
 }\r
index 79ab7158d6b9b5be0e8324d76a292e28c1f5a0d4..4a10f4a265c6439374a4ddd27a3d35dbaa1b66ce 100644 (file)
@@ -307,5 +307,5 @@ mzn{
         MK{"مقدونیه جمهوری"}\r
         TL{"شرقی تیمور"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.41.34"}\r
 }\r
index 1eae94b1c4199dc6c696689a912918948d4bea21..fdcca64a5415960ee7bd63fc28bd2fa3b46ddcad 100644 (file)
@@ -220,7 +220,7 @@ nb{
         PK{"Pakistan"}\r
         PL{"Polen"}\r
         PM{"Saint-Pierre-et-Miquelon"}\r
-        PN{"Pitcairn"}\r
+        PN{"Pitcairnøyene"}\r
         PR{"Puerto Rico"}\r
         PS{"Det palestinske området"}\r
         PT{"Portugal"}\r
@@ -309,5 +309,5 @@ nb{
         FK{"Falklandsøyene (Islas Malvinas)"}\r
         MK{"Den tidligere jugoslaviske republikk Makedonia"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.2"}\r
 }\r
index bc84bc4081fbb03d015a1d3dd6928c9fa935d734..5140dee346121aba72ef1ac58e3542c8bbc284a5 100644 (file)
@@ -33,7 +33,7 @@ ne{
         155{"पश्चिमी युरोप"}\r
         202{"उप-साहारा अफ्रिका"}\r
         419{"ल्याटिन अमेरिका"}\r
-        AC{"à¤\8fसà¥\8dà¤\95ेन्सन टापु"}\r
+        AC{"à¤\85सेन्सन टापु"}\r
         AD{"अन्डोर्रा"}\r
         AE{"संयुक्त अरब इमिराट्स"}\r
         AF{"अफगानिस्तान"}\r
@@ -54,12 +54,12 @@ ne{
         BB{"बार्बाडोस"}\r
         BD{"बङ्गलादेश"}\r
         BE{"बेल्जियम"}\r
-        BF{"बर्किना फासो"}\r
+        BF{"बà¥\81रà¥\8dà¤\95िना à¤«à¤¾à¤¸à¥\8b"}\r
         BG{"बुल्गेरिया"}\r
         BH{"बहराइन"}\r
         BI{"बुरूण्डी"}\r
         BJ{"बेनिन"}\r
-        BL{"सà¥\87नà¥\8dà¤\9f à¤¬à¤¾à¤°à¥\8dथालेमी"}\r
+        BL{"सà¥\87नà¥\8dà¤\9f à¤¬à¤¾à¤°à¥\8dथà¥\87लेमी"}\r
         BM{"बर्मुडा"}\r
         BN{"ब्रुनाइ"}\r
         BO{"बोलिभिया"}\r
@@ -74,10 +74,10 @@ ne{
         CA{"क्यानाडा"}\r
         CC{"कोकोस (किलिंग) टापुहरु"}\r
         CD{"कङ्गो - किन्शासा"}\r
-        CF{"à¤\95à¥\87नà¥\8dदà¥\8dरà¥\80य अफ्रिकी गणतन्त्र"}\r
+        CF{"मधà¥\8dय अफ्रिकी गणतन्त्र"}\r
         CG{"कङ्गो ब्राजाभिल"}\r
         CH{"स्विजरल्याण्ड"}\r
-        CI{"à¤\86à¤\87भà¥\8bरà¥\80 à¤\95à¥\8bसà¥\8dà¤\9f"}\r
+        CI{"à¤\95à¥\8bà¤\9f à¤¦à¤¿à¤­à¥\8bर"}\r
         CK{"कुक टापुहरु"}\r
         CL{"चिली"}\r
         CM{"क्यामरून"}\r
@@ -108,14 +108,14 @@ ne{
         ET{"इथियोपिया"}\r
         EU{"युरोपियन युनियन"}\r
         EZ{"युरोजोन"}\r
-        FI{"फिनà¥\8dलà¥\8dयाणà¥\8dड"}\r
+        FI{"फिनल्याण्ड"}\r
         FJ{"फिजी"}\r
         FK{"फकल्याण्ड टापुहरु"}\r
         FM{"माइक्रोनेसिया"}\r
         FO{"फारो टापुहरू"}\r
         FR{"फ्रान्स"}\r
         GA{"गावोन"}\r
-        GB{"बà¥\87लायत"}\r
+        GB{"सà¤\82यà¥\81à¤\95à¥\8dत à¤\85धिराà¤\9cà¥\8dय"}\r
         GD{"ग्रेनाडा"}\r
         GE{"जर्जिया"}\r
         GF{"फ्रान्सेली गायना"}\r
@@ -127,13 +127,13 @@ ne{
         GN{"गिनी"}\r
         GP{"ग्वाडेलुप"}\r
         GQ{"भू-मध्यीय गिनी"}\r
-        GR{"à¤\97à¥\8dरिस"}\r
+        GR{"à¤\97à¥\8dरà¥\80स"}\r
         GS{"दक्षिण जर्जिया र दक्षिण स्यान्डवीच टापुहरू"}\r
         GT{"ग्वाटेमाला"}\r
         GU{"गुवाम"}\r
         GW{"गिनी-बिसाउ"}\r
         GY{"गुयाना"}\r
-        HK{"हà¤\99à¤\95à¤\99 à¤\9aिनियाà¤\81 à¤¸à¤®à¤¾à¤\9cबादà¥\80 à¤¸à¥\8dवायतà¥\8dत क्षेत्र"}\r
+        HK{"हà¤\99à¤\95à¤\99 à¤\9aिनियाà¤\81 à¤µà¤¿à¤¶à¥\87ष à¤ªà¥\8dरशासनिà¤\95 क्षेत्र"}\r
         HM{"हर्ड टापु र म्याकडोनाल्ड टापुहरु"}\r
         HN{"हन्डुरास"}\r
         HR{"क्रोएशिया"}\r
@@ -151,7 +151,7 @@ ne{
         IS{"आइस्ल्याण्ड"}\r
         IT{"इटाली"}\r
         JE{"जर्सी"}\r
-        JM{"à¤\9cमाà¤\87का"}\r
+        JM{"à¤\9cमà¥\88का"}\r
         JO{"जोर्डन"}\r
         JP{"जापान"}\r
         KE{"केन्या"}\r
@@ -168,7 +168,7 @@ ne{
         LA{"लाओस"}\r
         LB{"लेबनन"}\r
         LC{"सेन्ट लुसिया"}\r
-        LI{"लिà¤\8fà¤\96à¤\9fà¥\87नà¥\8dसà¥\8dटाइन"}\r
+        LI{"लिà¤\95à¤\9fà¥\87नà¥\8dसटाइन"}\r
         LK{"श्रीलङ्का"}\r
         LR{"लाइबेरिया"}\r
         LS{"लेसोथो"}\r
@@ -179,7 +179,7 @@ ne{
         MA{"मोरोक्को"}\r
         MC{"मोनाको"}\r
         MD{"माल्डोभा"}\r
-        ME{"मà¥\8bनà¥\8dà¤\9fà¥\87नà¥\87ग्रो"}\r
+        ME{"मà¥\8bनà¥\8dà¤\9fà¥\87निग्रो"}\r
         MF{"सेन्ट मार्टिन"}\r
         MG{"माडागास्कर"}\r
         MH{"मार्शल टापुहरु"}\r
@@ -187,13 +187,13 @@ ne{
         ML{"माली"}\r
         MM{"म्यान्मार (बर्मा)"}\r
         MN{"मङ्गोलिया"}\r
-        MO{"मकाउ चिनियाँ स्वशासित क्षेत्र"}\r
+        MO{"(मकाउ चिनियाँ विशेष प्रशासनिक क्षेत्र"}\r
         MP{"उत्तरी मारिआना टापु"}\r
         MQ{"मार्टिनिक"}\r
         MR{"माउरिटानिया"}\r
         MS{"मोन्टसेर्राट"}\r
         MT{"माल्टा"}\r
-        MU{"माà¤\89रिà¤\9fस"}\r
+        MU{"मà¥\8cरिसियस"}\r
         MV{"माल्दिभ्स"}\r
         MW{"मालावी"}\r
         MX{"मेक्सिको"}\r
@@ -248,7 +248,7 @@ ne{
         SN{"सेनेगल"}\r
         SO{"सोमालिया"}\r
         SR{"सुरिनेम"}\r
-        SS{"दक्षिण सुडान"}\r
+        SS{"दक्षिण सुडान"}\r
         ST{"साओ टोमे र प्रिन्सिप"}\r
         SV{"एल् साल्भाडोर"}\r
         SX{"सिन्ट मार्टेन"}\r
@@ -281,7 +281,7 @@ ne{
         VA{"भेटिकन सिटी"}\r
         VC{"सेन्ट भिन्सेन्ट र ग्रेनाडिन्स"}\r
         VE{"भेनेजुएला"}\r
-        VG{"बà¥\87लायतà¥\80 à¤­à¤°à¥\8dà¤\9cिन à¤\9fापà¥\81हरà¥\81"}\r
+        VG{"बà¥\87लायतà¥\80 à¤­à¤°à¥\8dà¤\9cिन à¤\9fापà¥\81हरà¥\82"}\r
         VI{"संयुक्त राज्य भर्जिन टापुहरु"}\r
         VN{"भिएतनाम"}\r
         VU{"भानुआतु"}\r
@@ -292,11 +292,10 @@ ne{
         YT{"मायोट्ट"}\r
         ZA{"दक्षिण अफ्रिका"}\r
         ZM{"जाम्बिया"}\r
-        ZW{"जिम्बाबे"}\r
+        ZW{"à¤\9cिमà¥\8dबाबवà¥\87"}\r
         ZZ{"अज्ञात क्षेत्र"}\r
     }\r
     Countries%short{\r
-        GB{"बेलायत"}\r
         HK{"हङकङ"}\r
         MO{"मकाउ"}\r
         PS{"प्यालेसटाइन"}\r
@@ -306,11 +305,11 @@ ne{
     Countries%variant{\r
         CD{"कङ्गो (डीआर्‌सी)"}\r
         CG{"कङ्गो (गणतन्त्र)"}\r
-        CI{"CI"}\r
+        CI{"आइभोरी कोस्ट"}\r
         CZ{"चेक गणतन्त्र"}\r
         FK{"फक्ल्याण्ड टापुहरू (इज्लास माल्भिनास)"}\r
         MK{"म्यासेडोनिया (फाइरम)"}\r
         TL{"पृर्वी टीमोर"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.50"}\r
 }\r
index 4c6443513924413e2ca37a3fb45670cb5e04346d..4837b82e8468c45899d5762157565388f9054f36 100644 (file)
@@ -312,5 +312,5 @@ nl{
         MK{"Macedonië (FYROM)"}\r
         TL{"Democratische Republiek Oost-Timor"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.45.14"}\r
 }\r
index 55459ed96c92df865c579037973c7bde5c9721c6..d407f04e1c160b686a3f1ee00960c878e44a69dc 100644 (file)
@@ -308,5 +308,5 @@ nn{
         MK{"Den tidlegare jugoslaviske republikken Makedonia"}\r
         TL{"Aust-Timor"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.94"}\r
 }\r
index a7d27019cca6e7ba9cccb5feb8a7476c429c4a7f..d27bb8f733b3ba0be142dadec608e93b27be5254 100644 (file)
@@ -15,5 +15,5 @@ om{
         RU{"Russia"}\r
         US{"United States"}\r
     }\r
-    Version{"2.1.38.69"}\r
+    Version{"2.1.43.94"}\r
 }\r
index 524674447e1f9f7739afe3504e111df04b086116..5b72fa4d8a7dd3dc7fccfd1f297927e5d22c724d 100644 (file)
@@ -125,7 +125,7 @@ or{
         GL{"ଗ୍ରୀନଲ୍ୟାଣ୍ଡ"}\r
         GM{"ଗାମ୍ବିଆ"}\r
         GN{"ଗୁଇନିଆ"}\r
-        GP{"ଗୁଆଡେଲୋପ୍"}\r
+        GP{"ଗୁଆଡେଲୋପ୍"}\r
         GQ{"ଇକ୍ବାଟେରିଆଲ୍ ଗୁଇନିଆ"}\r
         GR{"ଗ୍ରୀସ୍"}\r
         GS{"ଦକ୍ଷିଣ ଜର୍ଜିଆ ଏବଂ ଦକ୍ଷିଣ ସାଣ୍ଡୱିଚ୍ ଦ୍ୱୀପପୁଞ୍ଜ"}\r
@@ -158,7 +158,7 @@ or{
         KG{"କିର୍ଗିଜିସ୍ତାନ"}\r
         KH{"କାମ୍ବୋଡିଆ"}\r
         KI{"କିରିବାଟି"}\r
-        KM{"କୋମୋରସ୍"}\r
+        KM{"କୋମୋରସ୍"}\r
         KN{"ସେଣ୍ଟ କିଟସ୍‌ ଏବଂ ନେଭିସ୍‌"}\r
         KP{"ଉତ୍ତର କୋରିଆ"}\r
         KR{"ଦକ୍ଷିଣ କୋରିଆ"}\r
@@ -178,11 +178,11 @@ or{
         LY{"ଲିବ୍ୟା"}\r
         MA{"ମୋରୋକ୍କୋ"}\r
         MC{"ମୋନାକୋ"}\r
-        MD{"ମାଲଡୋଭା"}\r
+        MD{"ମà­\8bଲଡୋଭା"}\r
         ME{"ମଣ୍ଟେନିଗ୍ରୋ"}\r
         MF{"ସେଣ୍ଟ ମାର୍ଟିନ୍"}\r
         MG{"ମାଡାଗାସ୍କର୍"}\r
-        MH{"ମାର୍ଶାଲ୍ ଦ୍ୱୀପପୁଞ୍ଜ"}\r
+        MH{"ମାର୍ଶାଲ୍ ଦ୍ୱୀପପୁଞ୍ଜ"}\r
         MK{"ମାସେଡୋନିଆ"}\r
         ML{"ମାଲି"}\r
         MM{"ମିଆଁମାର"}\r
@@ -202,7 +202,7 @@ or{
         NA{"ନାମିବିଆ"}\r
         NC{"ନୂତନ କାଲେଡୋନିଆ"}\r
         NE{"ନାଇଜର"}\r
-        NF{"ନର୍ଫକ୍‌ ଦ୍ୱୀପ"}\r
+        NF{"ନର୍ଫକ୍ ଦ୍ଵୀପ"}\r
         NG{"ନାଇଜେରିଆ"}\r
         NI{"ନିକାରାଗୁଆ"}\r
         NL{"ନେଦରଲ୍ୟାଣ୍ଡ"}\r
@@ -271,14 +271,14 @@ or{
         TV{"ତୁଭାଲୁ"}\r
         TW{"ତାଇୱାନ"}\r
         TZ{"ତାଞ୍ଜାନିଆ"}\r
-        UA{"ୟୁକ୍ରେନ୍"}\r
+        UA{"ୟୁକ୍ରେନ୍"}\r
         UG{"ଉଗାଣ୍ଡା"}\r
         UM{"ଯୁକ୍ତରାଷ୍ଟ୍ର ଆଉଟ୍‌ଲାଇଙ୍ଗ ଦ୍ଵୀପପୁଞ୍ଜ"}\r
         UN{"ଜାତିସଂଘ"}\r
         US{"ଯୁକ୍ତ ରାଷ୍ଟ୍ର"}\r
         UY{"ଉରୁଗୁଏ"}\r
         UZ{"ଉଜବେକିସ୍ତାନ"}\r
-        VA{"ଭାଟିକାନ୍ ସିଟି"}\r
+        VA{"ଭାଟିକାନ୍ ସିଟି"}\r
         VC{"ସେଣ୍ଟ ଭିନସେଣ୍ଟ ଏବଂ ଦି ଗ୍ରେନାଡିସ୍"}\r
         VE{"ଭେନେଜୁଏଲା"}\r
         VG{"ବ୍ରିଟିଶ୍‌ ଭର୍ଜିନ୍ ଦ୍ୱୀପପୁଞ୍ଜ"}\r
@@ -299,17 +299,17 @@ or{
         GB{"ୟୁକେ"}\r
         HK{"ହଂ କଂ"}\r
         MO{"ମାକାଉ"}\r
-        PS{"ପାଲେଷ୍ଟାଇନ୍"}\r
+        PS{"ପାଲେଷ୍ଟାଇନ୍"}\r
         US{"ଯୁକ୍ତରାଷ୍ଟ୍ର"}\r
     }\r
     Countries%variant{\r
-        CD{"କଙ୍ଗୋ (DRC)"}\r
+        CD{"କଙ୍ଗୋ (ଡିଆରସି)"}\r
         CG{"କଙ୍ଗୋ (ସାଧାରଣତନ୍ତ୍ର)"}\r
         CI{"ଆଇଭରୀ କୋଷ୍ଟ"}\r
         CZ{"ଚେକ୍‌ ସାଧାରଣତନ୍ତ୍ର"}\r
         FK{"ଫକଲ୍ୟାଣ୍ଡ ଦ୍ୱୀପପୁଞ୍ଜ (ଇସଲାସ୍‌ ମାଲଭିନାସ୍‌)"}\r
-        MK{"ମାସà­\87ଡà­\8bନିà¬\86 (ଫାà¬\87ରମà­\8dâ\80\8c)"}\r
+        MK{"ମାସà­\87ଡà­\8bନିà¬\86 (à¬\8fଫà­\8dâ\80\8câ\80\8cୱାà¬\87à¬\86ରà­\8dâ\80\8câ\80\8cà¬\93à¬\8fମà­\8d)"}\r
         TL{"ପୂର୍ବ ତିମୋର୍‌"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.65"}\r
 }\r
index 3bb1ae6fe6f67c3c8a8a649789db496ecaf42f61..11a5b97621bcad8896d971ca280717b06aa17b99 100644 (file)
@@ -107,7 +107,7 @@ pa{
         ES{"ਸਪੇਨ"}\r
         ET{"ਇਥੋਪੀਆ"}\r
         EU{"ਯੂਰਪੀ ਸੰਘ"}\r
-        EZ{"EZ"}\r
+        EZ{"ਯੂਰੋਜ਼ੋਨ"}\r
         FI{"ਫਿਨਲੈਂਡ"}\r
         FJ{"ਫ਼ਿਜੀ"}\r
         FK{"ਫ਼ਾਕਲੈਂਡ ਟਾਪੂ"}\r
@@ -304,7 +304,7 @@ pa{
         US{"ਯੂ.ਐੱਸ."}\r
     }\r
     Countries%variant{\r
-        CD{"ਕਾਂਗੋ ਲੋਕਤੰਤਰੀ ਗਣਰਾਜ"}\r
+        CD{"ਕਾਂਗੋ (ਡੀਆਰਸੀ)"}\r
         CG{"ਕਾਂਗੋ ਗਣਰਾਜ"}\r
         CI{"ਆਇਵਰੀ ਕੋਸਟ"}\r
         CZ{"ਚੈੱਕ ਗਣਰਾਜ"}\r
@@ -312,5 +312,5 @@ pa{
         MK{"ਮੈਕਡੋਨੀਆ (ਪੂਰਵ ਯੂਗੋਸਲਾਵ ਮੈਕਡੋਨੀਆਈ ਗਣਰਾਜ)"}\r
         TL{"ਪੂਰਬ ਤਿਮੋਰ"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.65"}\r
 }\r
index b274b8e8352cb362cbb2072ac34ba032a12a780f..ec5bd72209ef6cbb08ced1afda6bb04ec40565fe 100644 (file)
@@ -83,7 +83,7 @@ pl{
         CM{"Kamerun"}\r
         CN{"Chiny"}\r
         CO{"Kolumbia"}\r
-        CP{"Clipperton"}\r
+        CP{"Wyspa Clippertona"}\r
         CR{"Kostaryka"}\r
         CU{"Kuba"}\r
         CV{"Republika Zielonego Przylądka"}\r
@@ -312,5 +312,5 @@ pl{
         MK{"Była Jugosłowiańska Republika Macedonii"}\r
         TL{"Timor-Leste"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.50"}\r
 }\r
index 7bc6dd5cd792da59d13d73b0ccfab75329ee5805..90cbbddb432263954ed2065ab5a4b86a8306abf1 100644 (file)
Binary files a/source/data/region/pool.res and b/source/data/region/pool.res differ
index 2dba2b79a963500cc1989d1538522823ecfd1c22..f09cc9282a18129b35270cf8e27cae7f6bbf308e 100644 (file)
@@ -5,35 +5,35 @@ ps{
         001{"نړۍ"}\r
         002{"افريقا"}\r
         003{"شمالی امریکا"}\r
-        005{"جÙ\86Ù\88بÛ\8c Ø§Ù\85رÛ\8cÚ©Ù\87"}\r
+        005{"سÙ\88Ù\8aÙ\84Ù\8a Ø§Ù\85رÙ\8aکا"}\r
         009{"سمندريه"}\r
         011{"لویدیځ افریقا"}\r
         013{"منخنۍ امريکا"}\r
         014{"ختیځ افریقا"}\r
         015{"شمالي افریقا"}\r
         017{"منځنۍ افریقا"}\r
-        018{"جÙ\86Ù\88بÙ\8a Ø§Ù\81رÛ\8cقا"}\r
-        019{"امريکا"}\r
+        018{"سÙ\88Ù\8aÙ\84Ù\8a Ø§Ù\81رÙ\8aقا"}\r
+        019{"امريکې"}\r
         021{"شمالي امریکا"}\r
         029{"کیریبین"}\r
         030{"ختیځ آسیا"}\r
-        034{"سÙ\87Û\8cÙ\84 Ø¢Ø³Û\8cا"}\r
-        035{"سویل ختیځ آسیا"}\r
-        039{"جÙ\86Ù\88بي اروپا"}\r
+        034{"سÙ\88Ù\8aÙ\84Ù\8a Ø¢Ø³Ù\8aا"}\r
+        035{"سويلي ختيځ آسيا"}\r
+        039{"سÙ\88Ù\8aÙ\84ي اروپا"}\r
         053{"آسترالیا"}\r
         054{"ملانشیا"}\r
         057{"د مایکرونیسینین سیمه"}\r
-        061{"پولینیا"}\r
-        142{"اسيا"}\r
-        143{"Ù\85Ù\86Ú\81Ù\86Û\8d Ø§Ø³Û\8cا"}\r
+        061{"پولنيسيا"}\r
+        142{"Ø¢سيا"}\r
+        143{"Ù\85Ù\86Ú\81Ù\86Û\8d Ø¢Ø³Ù\8aا"}\r
         145{"لویدیځ آسیا"}\r
         150{"اروپا"}\r
         151{"ختيځه اروپا"}\r
         154{"شمالي اروپا"}\r
         155{"لویدیځه اروپا"}\r
-        202{"د Ø§Ù\81رÛ\8cÙ\82ا Ø¬Ù\86Ù\88ب-صحرا"}\r
+        202{"سب Ø³Ù\87ارÙ\86 Ø§Ù\81رÙ\8aÙ\82ا"}\r
         419{"لاتیني امریکا"}\r
-        AC{"د ØªÙ\88غÙ\86دÛ\8cÙ\88 ټاپو"}\r
+        AC{"اسÙ\8aÙ\86شاÙ\86 ټاپو"}\r
         AD{"اندورا"}\r
         AE{"متحده عرب امارات"}\r
         AF{"افغانستان"}\r
@@ -43,7 +43,7 @@ ps{
         AM{"ارمنستان"}\r
         AO{"انګولا"}\r
         AQ{"انتارکتیکا"}\r
-        AR{"ارژنټاین"}\r
+        AR{"ارجنټاين"}\r
         AS{"امریکایی سمو"}\r
         AT{"اتریش"}\r
         AU{"آسټرالیا"}\r
@@ -59,22 +59,22 @@ ps{
         BH{"بحرين"}\r
         BI{"بروندي"}\r
         BJ{"بینن"}\r
-        BL{"سینټ بارټیلیټی"}\r
+        BL{"سينټ بارتيلمي"}\r
         BM{"برمودا"}\r
-        BN{"بروني"}\r
+        BN{"برونائي"}\r
         BO{"بولیویا"}\r
         BQ{"کیریبین هالینډ"}\r
         BR{"برازیل"}\r
-        BS{"باهاما"}\r
+        BS{"باهماس"}\r
         BT{"بهوټان"}\r
         BV{"بوویټ ټاپو"}\r
         BW{"بوتسوانه"}\r
         BY{"بیلاروس"}\r
         BZ{"بلیز"}\r
         CA{"کاناډا"}\r
-        CC{"کوکوز (کیبل) ټاپوګانې"}\r
+        CC{"کوکوز (کيلنګ) ټاپوګان"}\r
         CD{"کانګو - کینشاسا"}\r
-        CF{"د مرکزي افریقا جمهوریت"}\r
+        CF{"وسطي افريقا جمهور"}\r
         CG{"کانګو - بروزوییل"}\r
         CH{"سویس"}\r
         CI{"د عاج ساحل"}\r
@@ -87,30 +87,30 @@ ps{
         CR{"کوستاریکا"}\r
         CU{"کیوبا"}\r
         CV{"کیپ ورد"}\r
-        CW{"کوکوکا"}\r
-        CX{"د کریساس ټاپو"}\r
+        CW{"کوراکاو"}\r
+        CX{"د کريسمس ټاپو"}\r
         CY{"قبرس"}\r
         CZ{"چکیا"}\r
         DE{"المان"}\r
         DG{"ډایګو ګارسیا"}\r
-        DJ{"جی بوتي"}\r
+        DJ{"جبوتي"}\r
         DK{"ډنمارک"}\r
         DM{"دومینیکا"}\r
-        DO{"دÙ\88Ù\85Û\8cÙ\86Û\8cÚ©Ù\86 Ø¬Ù\85Ù\87Ù\88رÙ\8aت"}\r
+        DO{"جÙ\85Ù\87Ù\88رÙ\8aÙ\87 Ú\89Ù\88Ù\85Ù\8aÙ\86Ù\8aÚ©Ù\86"}\r
         DZ{"الجزایر"}\r
-        EA{"سئوتا او مالایا"}\r
+        EA{"سيوتا او ماليلا"}\r
         EC{"اکوادور"}\r
         EE{"استونیا"}\r
         EG{"مصر"}\r
-        EH{"لویدیځ صحرا"}\r
+        EH{"لويديځ صحارا"}\r
         ER{"اریتره"}\r
         ES{"هسپانیه"}\r
         ET{"حبشه"}\r
         EU{"اروپايي اتحاديه"}\r
-        EZ{"اروپاسيمه"}\r
+        EZ{"اروپايي سيمه"}\r
         FI{"فنلینډ"}\r
-        FJ{"في جي"}\r
-        FK{"فوکلنډ ټاپو"}\r
+        FJ{"فجي"}\r
+        FK{"فاکلينډ ټاپوګان"}\r
         FM{"میکرونیزیا"}\r
         FO{"فارو ټاپو"}\r
         FR{"فرانسه"}\r
@@ -128,24 +128,24 @@ ps{
         GP{"ګالډیپ"}\r
         GQ{"استوایی ګینه"}\r
         GR{"یونان"}\r
-        GS{"سویل جورجیا او جنوبي سینڈوچ ټاپو"}\r
+        GS{"سويلي جارجيا او سويلي سېنډوچ ټاپوګان"}\r
         GT{"ګواتیمالا"}\r
         GU{"ګوام"}\r
         GW{"ګینه بیسو"}\r
         GY{"ګیانا"}\r
         HK{"هانګ کانګ SAR چین"}\r
-        HM{"HM"}\r
+        HM{"هارډ او ميکډانلډ ټاپوګان"}\r
         HN{"هانډوراس"}\r
-        HR{"کرÙ\88اثÛ\8cا"}\r
+        HR{"کرÙ\88اشÙ\8aا"}\r
         HT{"هایټي"}\r
         HU{"مجارستان"}\r
-        IC{"د کانري ټاپو"}\r
+        IC{"د کناري ټاپوګان"}\r
         ID{"اندونیزیا"}\r
         IE{"ایرلینډ"}\r
         IL{"اسراييل"}\r
         IM{"د آئل آف مین"}\r
         IN{"هند"}\r
-        IO{"د هند سمندر سمندر سیمه"}\r
+        IO{"د بريتانوي هند سمندري سيمه"}\r
         IQ{"عراق"}\r
         IR{"ايران"}\r
         IS{"آیسلینډ"}\r
@@ -165,16 +165,16 @@ ps{
         KW{"کویټ"}\r
         KY{"کیمان ټاپوګان"}\r
         KZ{"قزاقستان"}\r
-        LA{"لاووس"}\r
-        LB{"لېبنان"}\r
+        LA{"لاوس"}\r
+        LB{"لبنان"}\r
         LC{"سینټ لوسیا"}\r
         LI{"لیختن اشتاین"}\r
-        LK{"سريلانکا"}\r
+        LK{"سريلنکا"}\r
         LR{"لایبریا"}\r
         LS{"لسوتو"}\r
         LT{"لیتوانیا"}\r
         LU{"لوګزامبورګ"}\r
-        LV{"لتوني"}\r
+        LV{"ليتهويا"}\r
         LY{"لیبیا"}\r
         MA{"مراکش"}\r
         MC{"موناکو"}\r
@@ -182,13 +182,13 @@ ps{
         ME{"مونټینیګرو"}\r
         MF{"سینټ مارټن"}\r
         MG{"مدګاسکار"}\r
-        MH{"مارشال ټاپو"}\r
+        MH{"مارشل ټاپوګان"}\r
         MK{"مقدونیه"}\r
         ML{"مالي"}\r
-        MM{"ميانامار (برما)"}\r
+        MM{"ميانمار (برما)"}\r
         MN{"مغولستان"}\r
         MO{"مکا سار چین"}\r
-        MP{"شمالي ماریانا ټاپو"}\r
+        MP{"شمالي ماريانا ټاپوګان"}\r
         MQ{"مارټینیک"}\r
         MR{"موریتانیا"}\r
         MS{"مانټیسیرت"}\r
@@ -198,7 +198,7 @@ ps{
         MW{"مالاوي"}\r
         MX{"میکسیکو"}\r
         MY{"مالیزیا"}\r
-        MZ{"موزمبیک"}\r
+        MZ{"موزمبيق"}\r
         NA{"نیمبیا"}\r
         NC{"نوی کالیډونیا"}\r
         NE{"نیجر"}\r
@@ -214,41 +214,41 @@ ps{
         OM{"عمان"}\r
         PA{"پاناما"}\r
         PE{"پیرو"}\r
-        PF{"فرانسوي پولینیا"}\r
-        PG{"پاپ نيو ګيني، د يو هېواد نوم دې"}\r
+        PF{"فرانسوي پولينيسيا"}\r
+        PG{"پاپوا نيو ګيني"}\r
         PH{"فلپين"}\r
         PK{"پاکستان"}\r
         PL{"پولنډ"}\r
         PM{"سینټ پییر او میکولون"}\r
-        PN{"پیټکیرن ټاپو"}\r
+        PN{"پيټکيرن ټاپوګان"}\r
         PR{"پورتو ریکو"}\r
         PS{"فلسطين سيمې"}\r
         PT{"پورتګال"}\r
-        PW{"پلو"}\r
+        PW{"پلاؤ"}\r
         PY{"پاراګوی"}\r
         QA{"قطر"}\r
-        QO{"بÙ\87رÙ\86Û\8c Ø¢Ø³Û\8cا"}\r
+        QO{"بÙ\87رÙ\86Û\8d Ø§Ù\88سÙ\8aاÙ\86Ù\87"}\r
         RE{"ریونین"}\r
         RO{"رومانیا"}\r
-        RS{"صربÛ\8cا"}\r
+        RS{"سربÙ\8aا"}\r
         RU{"روسیه"}\r
         RW{"روندا"}\r
         SA{"سعودي عربستان"}\r
-        SB{"سلیمان ټاپو"}\r
+        SB{"سليمان ټاپوګان"}\r
         SC{"سیچیلیس"}\r
         SD{"سوډان"}\r
         SE{"سویډن"}\r
         SG{"سينگاپور"}\r
         SH{"سینټ هیلینا"}\r
         SI{"سلوانیا"}\r
-        SJ{"سÙ\84Ù\88اÚ\89ر Ø§Ù\88 Ø¬Ø§Ù\86 Ù\85Û\8cÛ\8cن"}\r
+        SJ{"سÙ\88اÙ\84بارد Ø§Ù\88 Ø¬Ø§Ù\86 Ù\85Ù\8aÙ\8aن"}\r
         SK{"سلواکیا"}\r
         SL{"سییرا لیون"}\r
         SM{"سان مارینو"}\r
-        SN{"سÙ\86ګال"}\r
+        SN{"سÙ\8aÙ\86Ù\8aګال"}\r
         SO{"سومالیا"}\r
         SR{"سورینام"}\r
-        SS{"جÙ\86Ù\88بي سوډان"}\r
+        SS{"سÙ\88Ù\8aÙ\84ي سوډان"}\r
         ST{"ساو ټیم او پرنسیپ"}\r
         SV{"سالوېډور"}\r
         SX{"سینټ مارټین"}\r
@@ -258,58 +258,58 @@ ps{
         TC{"د ترکیې او کیکاسو ټاپو"}\r
         TD{"چاډ"}\r
         TF{"د فرانسې جنوبي سیمې"}\r
-        TG{"تلل"}\r
+        TG{"ټوګو"}\r
         TH{"تهايلنډ"}\r
-        TJ{"تاجيکستان"}\r
+        TJ{"تاجکستان"}\r
         TK{"توکیلو"}\r
         TL{"تيمور-ليسټ"}\r
         TM{"تورکمنستان"}\r
         TN{"تونس"}\r
         TO{"تونګا"}\r
-        TR{"تورکيه"}\r
-        TT{"ټرینیاډډ او ټوبوګ"}\r
+        TR{"ترکي"}\r
+        TT{"ټرينيډاډ او ټوباګو"}\r
         TV{"توالیو"}\r
-        TW{"تیوان"}\r
+        TW{"تائيوان"}\r
         TZ{"تنزانیا"}\r
         UA{"اوکراین"}\r
         UG{"یوګانډا"}\r
-        UM{"د متحده ایالاتو ټاپو ټاپوګانې"}\r
+        UM{"د متحده ایالاتو ټاپوګان"}\r
         UN{"ملگري ملتونه"}\r
-        US{"Ù\85تحدÙ\87 Ø§Û\8cالات"}\r
+        US{"Ù\85تحدÙ\87 Ø¢Ù\8aالات"}\r
         UY{"یوروګوی"}\r
         UZ{"اوزبکستان"}\r
         VA{"واتیکان ښار"}\r
         VC{"سینټ ویسنټینټ او ګرینډینز"}\r
         VE{"وینزویلا"}\r
-        VG{"بریتانوی ویګور ټاپو"}\r
-        VI{"د Ù\85تحدÙ\87 Ø§Û\8cاÙ\84اتÙ\88 Ù\88Û\8cÚ«Ù\88ر Ù¼Ø§Ù¾Ù\88"}\r
+        VG{"بریتانوی ویګور ټاپوګان"}\r
+        VI{"د Ù\85تحدÙ\87 Ø¢Ù\8aاÙ\84اتÙ\88 Ù\88رجÙ\86 Ù¼Ø§Ù¾Ù\88ګاÙ\86"}\r
         VN{"وېتنام"}\r
         VU{"واناتو"}\r
         WF{"والیس او فوتونا"}\r
         WS{"ساموا"}\r
         XK{"کوسوو"}\r
         YE{"یمن"}\r
-        YT{"میټوت"}\r
+        YT{"مايوټ"}\r
         ZA{"سویلي افریقا"}\r
         ZM{"زیمبیا"}\r
         ZW{"زیمبابوی"}\r
-        ZZ{"Ù\86اپÛ\90Ú\98Ù\86دÙ\84Û\90 سيمه"}\r
+        ZZ{"Ù\86اÙ\85عÙ\84Ù\88Ù\85Ù\87 سيمه"}\r
     }\r
     Countries%short{\r
         GB{"انګلستان"}\r
         HK{"هانګ کانګ"}\r
-        MO{"ماکو"}\r
+        MO{"مکاو"}\r
         PS{"فلسطين"}\r
-        US{"Ù\85تحدÙ\87 Ø§Û\8cالات"}\r
+        US{"Ù\85تحدÙ\87 Ø¢Ù\8aالات"}\r
     }\r
     Countries%variant{\r
         CD{"کانګو (DRC)"}\r
         CG{"کانګو (جمهوریه)"}\r
         CI{"ایوري ساحل"}\r
-        CZ{"چک جمهوريت"}\r
-        FK{"فاکلینډ ټاپو (آساس مالوناس)"}\r
+        CZ{"جمهوريه چيک"}\r
+        FK{"فاکلينډ ټاپوګان (آيزلز مالويناس)"}\r
         MK{"مقدونیه (FYROM)"}\r
         TL{"ختيځ تيمور"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.94"}\r
 }\r
index c40cce0cdb900ae10520b6622aeedce3fc4074f4..9ceb9dfb33dc856ddbaf3b5b0b98d2739fd0dc38 100644 (file)
@@ -31,13 +31,14 @@ pt{
         151{"Europa Oriental"}\r
         154{"Europa Setentrional"}\r
         155{"Europa Ocidental"}\r
+        202{"África Subsaariana"}\r
         419{"América Latina"}\r
         AC{"Ilha de Ascensão"}\r
         AD{"Andorra"}\r
         AE{"Emirados Árabes Unidos"}\r
         AF{"Afeganistão"}\r
         AG{"Antígua e Barbuda"}\r
-        AI{"Anguilla"}\r
+        AI{"Anguila"}\r
         AL{"Albânia"}\r
         AM{"Armênia"}\r
         AO{"Angola"}\r
@@ -74,7 +75,7 @@ pt{
         CC{"Ilhas Cocos (Keeling)"}\r
         CD{"Congo - Kinshasa"}\r
         CF{"República Centro-Africana"}\r
-        CG{"Congo - Brazzaville"}\r
+        CG{"República do Congo"}\r
         CH{"Suíça"}\r
         CI{"Costa do Marfim"}\r
         CK{"Ilhas Cook"}\r
@@ -97,7 +98,7 @@ pt{
         DM{"Dominica"}\r
         DO{"República Dominicana"}\r
         DZ{"Argélia"}\r
-        EA{"Ceuta e Melilha"}\r
+        EA{"Ceuta e Melilla"}\r
         EC{"Equador"}\r
         EE{"Estônia"}\r
         EG{"Egito"}\r
@@ -177,7 +178,7 @@ pt{
         LY{"Líbia"}\r
         MA{"Marrocos"}\r
         MC{"Mônaco"}\r
-        MD{"Moldávia"}\r
+        MD{"Moldova"}\r
         ME{"Montenegro"}\r
         MF{"São Martinho"}\r
         MG{"Madagascar"}\r
@@ -186,7 +187,7 @@ pt{
         ML{"Mali"}\r
         MM{"Mianmar (Birmânia)"}\r
         MN{"Mongólia"}\r
-        MO{"Macau, RAE da China"}\r
+        MO{"RAE de Macau (China)"}\r
         MP{"Ilhas Marianas do Norte"}\r
         MQ{"Martinica"}\r
         MR{"Mauritânia"}\r
@@ -204,7 +205,7 @@ pt{
         NF{"Ilha Norfolk"}\r
         NG{"Nigéria"}\r
         NI{"Nicarágua"}\r
-        NL{"Holanda"}\r
+        NL{"Países Baixos"}\r
         NO{"Noruega"}\r
         NP{"Nepal"}\r
         NR{"Nauru"}\r
@@ -254,7 +255,7 @@ pt{
         SY{"Síria"}\r
         SZ{"Suazilândia"}\r
         TA{"Tristão da Cunha"}\r
-        TC{"Ilhas Turks e Caicos"}\r
+        TC{"Ilhas Turcas e Caicos"}\r
         TD{"Chade"}\r
         TF{"Territórios Franceses do Sul"}\r
         TG{"Togo"}\r
@@ -311,5 +312,5 @@ pt{
         MK{"Macedônia (ARIM)"}\r
         TL{"República Democrática de Timor-Leste"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.65"}\r
 }\r
index f8e1185ac3b82bfa11d5f5779ba2c6310028f224..858d98d86ec861b7d1f353bc2549c534bd6d85da 100644 (file)
@@ -10,7 +10,6 @@ pt_PT{
         039{"Europa do Sul"}\r
         154{"Europa do Norte"}\r
         202{"África subsariana"}\r
-        AI{"Anguila"}\r
         AM{"Arménia"}\r
         AX{"Alanda"}\r
         BD{"Bangladeche"}\r
@@ -26,11 +25,13 @@ pt_PT{
         CZ{"Chéquia"}\r
         DJ{"Jibuti"}\r
         DM{"Domínica"}\r
+        EA{"Ceuta e Melilha"}\r
         EE{"Estónia"}\r
         EH{"Sara Ocidental"}\r
         EZ{"Zona Euro"}\r
-        FK{"Ilhas Falkland"}\r
+        FK{"Ilhas Malvinas (Falkland)"}\r
         FO{"Ilhas Faroé"}\r
+        GG{"Guernesey"}\r
         GL{"Gronelândia"}\r
         GU{"Guame"}\r
         IR{"Irão"}\r
@@ -43,13 +44,14 @@ pt_PT{
         LK{"Sri Lanca"}\r
         LV{"Letónia"}\r
         MC{"Mónaco"}\r
+        MD{"Moldávia"}\r
         MG{"Madagáscar"}\r
         MK{"Macedónia"}\r
+        MO{"Macau, RAE da China"}\r
         MS{"Monserrate"}\r
         MU{"Maurícia"}\r
         MW{"Maláui"}\r
         NC{"Nova Caledónia"}\r
-        NL{"Países Baixos"}\r
         NU{"Niuê"}\r
         PL{"Polónia"}\r
         PS{"Territórios palestinianos"}\r
@@ -59,7 +61,6 @@ pt_PT{
         SM{"São Marinho"}\r
         SV{"Salvador"}\r
         SX{"São Martinho (Sint Maarten)"}\r
-        TC{"Ilhas Turcas e Caicos"}\r
         TJ{"Tajiquistão"}\r
         TK{"Toquelau"}\r
         TM{"Turquemenistão"}\r
@@ -79,8 +80,8 @@ pt_PT{
         CG{"República do Congo"}\r
         CI{"Costa do Marfim"}\r
         CZ{"República Checa"}\r
-        FK{"Ilhas Malvinas"}\r
+        FK{"Ilhas Falkland (Malvinas)"}\r
         MK{"Macedónia (ARJM)"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.9"}\r
 }\r
index 9cf442de6ddf92b27bc1c79be7ab841ce4bb94fa..4f19a704b90d87b94828c183dc24de736b598c50 100644 (file)
@@ -193,5 +193,5 @@ qu{
         ZM{"Zambia"}\r
         ZW{"Zimbabue"}\r
     }\r
-    Version{"2.1.38.72"}\r
+    Version{"2.1.43.94"}\r
 }\r
index 06e4072a08f630891226aecab09d6409285b9a69..ea03917648b5a942f558c70960280a6294de9a34 100644 (file)
@@ -1,6 +1,6 @@
 # © 2016 and later: Unicode, Inc. and others.\r
 # License & terms of use: http://www.unicode.org/copyright.html#License\r
-REGION_CLDR_VERSION = 33.1\r
+REGION_CLDR_VERSION = 34\r
 # A list of txt's to build\r
 # Note:\r
 #\r
@@ -87,38 +87,40 @@ REGION_SOURCE = af.txt agq.txt ak.txt am.txt\
  ga.txt gd.txt gl.txt gsw.txt gu.txt\\r
  guz.txt gv.txt ha.txt haw.txt he.txt\\r
  hi.txt hr.txt hsb.txt hu.txt hy.txt\\r
- id.txt ig.txt ii.txt is.txt it.txt\\r
- ja.txt jgo.txt jmc.txt ka.txt kab.txt\\r
- kam.txt kde.txt kea.txt khq.txt ki.txt\\r
- kk.txt kkj.txt kl.txt kln.txt km.txt\\r
- kn.txt ko.txt ko_KP.txt kok.txt ks.txt\\r
- ksb.txt ksf.txt ksh.txt kw.txt ky.txt\\r
- lag.txt lb.txt lg.txt lkt.txt ln.txt\\r
- lo.txt lrc.txt lt.txt lu.txt luo.txt\\r
- luy.txt lv.txt mas.txt mer.txt mfe.txt\\r
- mg.txt mgh.txt mgo.txt mk.txt ml.txt\\r
- mn.txt mr.txt ms.txt mt.txt mua.txt\\r
- my.txt mzn.txt naq.txt nb.txt nd.txt\\r
- nds.txt ne.txt nl.txt nmg.txt nn.txt\\r
- nnh.txt nus.txt nyn.txt om.txt or.txt\\r
- os.txt pa.txt pa_Arab.txt pa_Guru.txt pl.txt\\r
- ps.txt pt.txt pt_AO.txt pt_CH.txt pt_CV.txt\\r
- pt_GQ.txt pt_GW.txt pt_LU.txt pt_MO.txt pt_MZ.txt\\r
- pt_PT.txt pt_ST.txt pt_TL.txt qu.txt rm.txt\\r
- rn.txt ro.txt ro_MD.txt rof.txt ru.txt\\r
- ru_UA.txt rw.txt rwk.txt sah.txt saq.txt\\r
- sbp.txt se.txt se_FI.txt seh.txt ses.txt\\r
+ ia.txt id.txt ig.txt ii.txt is.txt\\r
+ it.txt ja.txt jgo.txt jmc.txt jv.txt\\r
+ ka.txt kab.txt kam.txt kde.txt kea.txt\\r
+ khq.txt ki.txt kk.txt kkj.txt kl.txt\\r
+ kln.txt km.txt kn.txt ko.txt ko_KP.txt\\r
+ kok.txt ks.txt ksb.txt ksf.txt ksh.txt\\r
+ ku.txt kw.txt ky.txt lag.txt lb.txt\\r
+ lg.txt lkt.txt ln.txt lo.txt lrc.txt\\r
+ lt.txt lu.txt luo.txt luy.txt lv.txt\\r
+ mas.txt mer.txt mfe.txt mg.txt mgh.txt\\r
+ mgo.txt mi.txt mk.txt ml.txt mn.txt\\r
+ mr.txt ms.txt mt.txt mua.txt my.txt\\r
+ mzn.txt naq.txt nb.txt nd.txt nds.txt\\r
+ ne.txt nl.txt nmg.txt nn.txt nnh.txt\\r
+ nus.txt nyn.txt om.txt or.txt os.txt\\r
+ pa.txt pa_Arab.txt pa_Guru.txt pl.txt ps.txt\\r
+ pt.txt pt_AO.txt pt_CH.txt pt_CV.txt pt_GQ.txt\\r
+ pt_GW.txt pt_LU.txt pt_MO.txt pt_MZ.txt pt_PT.txt\\r
+ pt_ST.txt pt_TL.txt qu.txt rm.txt rn.txt\\r
+ ro.txt ro_MD.txt rof.txt ru.txt ru_UA.txt\\r
+ rw.txt rwk.txt sah.txt saq.txt sbp.txt\\r
+ sd.txt se.txt se_FI.txt seh.txt ses.txt\\r
  sg.txt shi.txt shi_Latn.txt shi_Tfng.txt si.txt\\r
  sk.txt sl.txt smn.txt sn.txt so.txt\\r
  sq.txt sr.txt sr_Cyrl.txt sr_Cyrl_BA.txt sr_Cyrl_ME.txt\\r
  sr_Cyrl_XK.txt sr_Latn.txt sr_Latn_BA.txt sr_Latn_ME.txt sr_Latn_XK.txt\\r
  sv.txt sw.txt sw_CD.txt sw_KE.txt ta.txt\\r
  te.txt teo.txt tg.txt th.txt ti.txt\\r
- to.txt tr.txt tt.txt twq.txt tzm.txt\\r
- ug.txt uk.txt ur.txt ur_IN.txt uz.txt\\r
- uz_Arab.txt uz_Cyrl.txt uz_Latn.txt vai.txt vai_Latn.txt\\r
- vai_Vaii.txt vi.txt vun.txt wae.txt wo.txt\\r
- xog.txt yav.txt yi.txt yo.txt yo_BJ.txt\\r
- yue.txt yue_Hans.txt yue_Hant.txt zgh.txt zh.txt\\r
- zh_Hans.txt zh_Hant.txt zh_Hant_HK.txt zh_Hant_MO.txt zu.txt\r
+ tk.txt to.txt tr.txt tt.txt twq.txt\\r
+ tzm.txt ug.txt uk.txt ur.txt ur_IN.txt\\r
+ uz.txt uz_Arab.txt uz_Cyrl.txt uz_Latn.txt vai.txt\\r
+ vai_Latn.txt vai_Vaii.txt vi.txt vun.txt wae.txt\\r
+ wo.txt xh.txt xog.txt yav.txt yi.txt\\r
+ yo.txt yo_BJ.txt yue.txt yue_Hans.txt yue_Hant.txt\\r
+ zgh.txt zh.txt zh_Hans.txt zh_Hant.txt zh_Hant_HK.txt\\r
+ zh_Hant_MO.txt zu.txt\r
 \r
index 46bf8ec2fd87d545a51444ff816b12f5da396b84..246e5fcd8f32d85c36135f6d5d66baaa140b2cdb 100644 (file)
@@ -280,5 +280,5 @@ rm{
         ZW{"Simbabwe"}\r
         ZZ{"Regiun betg encouschenta u nunvalaivla"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.94"}\r
 }\r
index c82c6ba6c4d620e307057c1c33127eb895b049bb..01718860611fd87a0320a31f142a5c3d2e2cf45d 100644 (file)
@@ -262,7 +262,7 @@ ro{
         TH{"Thailanda"}\r
         TJ{"Tadjikistan"}\r
         TK{"Tokelau"}\r
-        TL{"Timorul de Est"}\r
+        TL{"Timor-Leste"}\r
         TM{"Turkmenistan"}\r
         TN{"Tunisia"}\r
         TO{"Tonga"}\r
@@ -310,7 +310,7 @@ ro{
         CZ{"Republica Cehă"}\r
         FK{"Insulele Falkland (Insulele Malvine)"}\r
         MK{"Republica Macedonia (FRIM)"}\r
-        TL{"TL"}\r
+        TL{"Timorul de Est"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.94"}\r
 }\r
index 5043a6e09df113ef5eed46e96883f3b681123d8a..f56ea7648124d46054f87d7364b2e2e67b2ecfa3 100644 (file)
@@ -4,5 +4,5 @@
  * ICU <specials> source: <path>/common/main/root.xml\r
  */\r
 root{\r
-    Version{"2.1.41.58"}\r
+    Version{"2.1.44.91"}\r
 }\r
index a6048c3d1e6af7103d3fffab83ea8afb614ede74..9f665f69e9de20c31786e2915d553a98f3219a9c 100644 (file)
@@ -31,7 +31,7 @@ ru{
         151{"Восточная Европа"}\r
         154{"Северная Европа"}\r
         155{"Западная Европа"}\r
-        202{"Ð\90Ñ\84Ñ\80ика Ðº Ñ\8eгÑ\83 Ð¾Ñ\82 Ð¡Ð°Ñ\85аÑ\80Ñ\8b"}\r
+        202{"ТÑ\80опиÑ\87еÑ\81каÑ\8f Ð\90Ñ\84Ñ\80ика"}\r
         419{"Латинская Америка"}\r
         AC{"о-в Вознесения"}\r
         AD{"Андорра"}\r
@@ -163,7 +163,7 @@ ru{
         KP{"КНДР"}\r
         KR{"Республика Корея"}\r
         KW{"Кувейт"}\r
-        KY{"Ð\9aаймановÑ\8b Ð¾-ва"}\r
+        KY{"Ð\9eÑ\81Ñ\82Ñ\80ова Ð\9aайман"}\r
         KZ{"Казахстан"}\r
         LA{"Лаос"}\r
         LB{"Ливан"}\r
@@ -281,7 +281,7 @@ ru{
         VA{"Ватикан"}\r
         VC{"Сент-Винсент и Гренадины"}\r
         VE{"Венесуэла"}\r
-        VG{"Ð\92иÑ\80гинÑ\81кие Ð¾-ва (Ð\91Ñ\80иÑ\82анÑ\81кие)"}\r
+        VG{"Ð\92иÑ\80гинÑ\81кие Ð¾-ва (Ð\92еликобÑ\80иÑ\82аниÑ\8f)"}\r
         VI{"Виргинские о-ва (США)"}\r
         VN{"Вьетнам"}\r
         VU{"Вануату"}\r
@@ -306,9 +306,10 @@ ru{
     Countries%variant{\r
         CD{"Конго (ДРК)"}\r
         CG{"Республика Конго"}\r
+        CZ{"Чешская Республика"}\r
         FK{"Фолклендские (Мальвинские) о-ва"}\r
         MK{"Македония (БЮРМ)"}\r
         TL{"Тимор-Лесте"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.45.15"}\r
 }\r
index 63575c88ca0aea259ef4f2a8e1d090a3d94c332c..133eff2bfa6d3b6b28a94261fb914269c7b827e7 100644 (file)
@@ -13,5 +13,5 @@ ru_UA{
         TL{"Тимор-Лесте"}\r
         UM{"Малые Тихоокеанские Отдаленные Острова США"}\r
     }\r
-    Version{"2.1.38.39"}\r
+    Version{"2.1.43.65"}\r
 }\r
index e55ad6ac066bafe5a8f824c622518bcbcb5a8dae..4d9e11089443aaa64ed58940bc304b1cb480892d 100644 (file)
@@ -5,5 +5,5 @@ rw{
         RW{"U Rwanda"}\r
         TO{"Tonga"}\r
     }\r
-    Version{"2.1.38.72"}\r
+    Version{"2.1.44.88"}\r
 }\r
index 45cda7d06098490fc392ffeb02072577792b9bcb..0919593ebdcf448d4e09d5388b203e960c5fde48 100644 (file)
@@ -31,5 +31,5 @@ sah{
     Countries%short{\r
         US{"АХШ"}\r
     }\r
-    Version{"2.1.38.69"}\r
+    Version{"2.1.43.94"}\r
 }\r
diff --git a/source/data/region/sd.txt b/source/data/region/sd.txt
new file mode 100644 (file)
index 0000000..c5ad531
--- /dev/null
@@ -0,0 +1,315 @@
+// © 2016 and later: Unicode, Inc. and others.\r
+// License & terms of use: http://www.unicode.org/copyright.html#License\r
+sd{\r
+    Countries{\r
+        001{"دنيا"}\r
+        002{"آفريڪا"}\r
+        003{"اتر آمريڪا"}\r
+        005{"ڏکڻ آمريڪا"}\r
+        009{"سامونڊي"}\r
+        011{"اولهه آفريقا"}\r
+        013{"وچ آمريڪا"}\r
+        014{"اوڀر آفريڪا"}\r
+        015{"اترين آفريڪا"}\r
+        017{"وچ آفريڪا"}\r
+        018{"ڏاکڻي آمريڪا"}\r
+        019{"آمريڪا"}\r
+        021{"اترين آمريڪا"}\r
+        029{"ڪيريبين"}\r
+        030{"اوڀر ايشيا"}\r
+        034{"ڏکڻ ايشيا"}\r
+        035{"ڏکڻ اوڀر ايشيا"}\r
+        039{"ڏکڻ يورپ"}\r
+        053{"آسٽریلیشیا"}\r
+        054{"میلانیشیا"}\r
+        057{"مائڪرونيشائي خطو"}\r
+        061{"پولینیشیا"}\r
+        142{"ايشيا"}\r
+        143{"وچ ايشيا"}\r
+        145{"اولهه ايشيا"}\r
+        150{"يورپ"}\r
+        151{"اوڀر يورپ"}\r
+        154{"اترين يورپ"}\r
+        155{"اولهه يورپ"}\r
+        202{"سب-سهارا آفريڪا"}\r
+        419{"لاطيني آمريڪا"}\r
+        AC{"طلوع ٻيٽ"}\r
+        AD{"اندورا"}\r
+        AE{"متحده عرب امارات"}\r
+        AF{"افغانستان"}\r
+        AG{"انٽيگئا و بربودا"}\r
+        AI{"انگويلا"}\r
+        AL{"البانيا"}\r
+        AM{"ارمینیا"}\r
+        AO{"انگولا"}\r
+        AQ{"انٽارڪٽيڪا"}\r
+        AR{"ارجنٽينا"}\r
+        AS{"آمريڪي ساموا"}\r
+        AT{"آشٽريا"}\r
+        AU{"آسٽريليا"}\r
+        AW{"عروبا"}\r
+        AX{"الند ٻيٽ"}\r
+        AZ{"آذربائيجان"}\r
+        BA{"بوسنیا اور هرزیگوینا"}\r
+        BB{"باربڊوس"}\r
+        BD{"بنگلاديش"}\r
+        BE{"بيلجيم"}\r
+        BF{"برڪينا فاسو"}\r
+        BG{"بلغاريا"}\r
+        BH{"بحرين"}\r
+        BI{"برونڊي"}\r
+        BJ{"بينن"}\r
+        BL{"سینٽ برٿلیمی"}\r
+        BM{"برمودا"}\r
+        BN{"برونائي"}\r
+        BO{"بوليويا"}\r
+        BQ{"ڪيريبين نيدرلينڊ"}\r
+        BR{"برازيل"}\r
+        BS{"بهاماس"}\r
+        BT{"ڀوٽان"}\r
+        BV{"بووٽ ٻيٽ"}\r
+        BW{"بوٽسوانا"}\r
+        BY{"بیلارس"}\r
+        BZ{"بيليز"}\r
+        CA{"ڪئناڊا"}\r
+        CC{"ڪوڪوس ٻيٽ"}\r
+        CD{"ڪانگو -ڪنشاسا"}\r
+        CF{"وچ آفريقي جمهوريه"}\r
+        CG{"ڪانگو - برازاویل"}\r
+        CH{"سوئزرلينڊ"}\r
+        CI{"آئيوري ڪنارو"}\r
+        CK{"ڪوڪ ٻيٽ"}\r
+        CL{"چلي"}\r
+        CM{"ڪيمرون"}\r
+        CN{"چين"}\r
+        CO{"ڪولمبيا"}\r
+        CP{"ڪلپرٽن ٻيٽ"}\r
+        CR{"ڪوسٽا رڪا"}\r
+        CU{"ڪيوبا"}\r
+        CV{"ڪيپ وردي"}\r
+        CW{"ڪيوراسائو"}\r
+        CX{"ڪرسمس ٻيٽ"}\r
+        CY{"سائپرس"}\r
+        CZ{"چيڪيا"}\r
+        DE{"جرمني"}\r
+        DG{"ڊئيگو گارسيا"}\r
+        DJ{"ڊجبيوتي"}\r
+        DK{"ڊينمارڪ"}\r
+        DM{"ڊومينيڪا"}\r
+        DO{"ڊومينيڪن جمهوريه"}\r
+        DZ{"الجيريا"}\r
+        EA{"سیوٽا ۽ میلیلا"}\r
+        EC{"ايڪواڊور"}\r
+        EE{"ايسٽونيا"}\r
+        EG{"مصر"}\r
+        EH{"اولهه صحارا"}\r
+        ER{"ايريٽيريا"}\r
+        ES{"اسپين"}\r
+        ET{"ايٿوپيا"}\r
+        EU{"يورپين يونين"}\r
+        EZ{"يورو زون"}\r
+        FI{"فن لينڊ"}\r
+        FJ{"فجي"}\r
+        FK{"فاڪ لينڊ ٻيٽ"}\r
+        FM{"مائڪرونيشيا"}\r
+        FO{"فارو ٻيٽ"}\r
+        FR{"فرانس"}\r
+        GA{"گبون"}\r
+        GB{"برطانيه"}\r
+        GD{"گرينڊا"}\r
+        GE{"جارجيا"}\r
+        GF{"فرانسيسي گيانا"}\r
+        GG{"گورنسي"}\r
+        GH{"گهانا"}\r
+        GI{"جبرالٽر"}\r
+        GL{"گرين لينڊ"}\r
+        GM{"گيمبيا"}\r
+        GN{"گني"}\r
+        GP{"گواڊیلوپ"}\r
+        GQ{"ايڪوٽوريل گائينا"}\r
+        GR{"يونان"}\r
+        GS{"ڏکڻ جارجيا ۽ ڏکڻ سينڊوچ ٻيٽ"}\r
+        GT{"گوئٽي مالا"}\r
+        GU{"گوام"}\r
+        GW{"گني بسائو"}\r
+        GY{"گيانا"}\r
+        HK{"هانگ ڪانگ"}\r
+        HM{"هرڊ ۽ مڪڊونلڊ ٻيٽ"}\r
+        HN{"هنڊورس"}\r
+        HR{"ڪروئيشيا"}\r
+        HT{"هيٽي"}\r
+        HU{"چيڪ جهموريه"}\r
+        IC{"ڪينري ٻيٽ"}\r
+        ID{"انڊونيشيا"}\r
+        IE{"آئرلينڊ"}\r
+        IL{"اسرائيل"}\r
+        IM{"انسانن جو ٻيٽ"}\r
+        IN{"انڊيا"}\r
+        IO{"برطانوي هندي سمنڊ خطو"}\r
+        IQ{"عراق"}\r
+        IR{"ايران"}\r
+        IS{"آئس لينڊ"}\r
+        IT{"اٽلي"}\r
+        JE{"جرسي"}\r
+        JM{"جميڪا"}\r
+        JO{"اردن"}\r
+        JP{"جاپان"}\r
+        KE{"ڪينيا"}\r
+        KG{"ڪرغستان"}\r
+        KH{"ڪمبوڊيا"}\r
+        KI{"ڪرباتي"}\r
+        KM{"ڪوموروس"}\r
+        KN{"سينٽ ڪٽس و نيوس"}\r
+        KP{"اتر ڪوريا"}\r
+        KR{"ڏکڻ ڪوريا"}\r
+        KW{"ڪويت"}\r
+        KY{"ڪي مين ٻيٽ"}\r
+        KZ{"قازقستان"}\r
+        LA{"لائوس"}\r
+        LB{"لبنان"}\r
+        LC{"سينٽ لوسيا"}\r
+        LI{"لچي ٽينسٽين"}\r
+        LK{"سري لنڪا"}\r
+        LR{"لائبیریا"}\r
+        LS{"ليسوٿو"}\r
+        LT{"لٿونيا"}\r
+        LU{"لیگزمبرگ"}\r
+        LV{"لاتويا"}\r
+        LY{"لبيا"}\r
+        MA{"موروڪو"}\r
+        MC{"موناڪو"}\r
+        MD{"مالدووا"}\r
+        ME{"مونٽي نيگرو"}\r
+        MF{"سينٽ مارٽن"}\r
+        MG{"مداگيسڪر"}\r
+        MH{"مارشل ڀيٽ"}\r
+        MK{"ميسي ڊونيا"}\r
+        ML{"مالي"}\r
+        MM{"ميانمار (برما)"}\r
+        MN{"منگوليا"}\r
+        MO{"مڪائو"}\r
+        MP{"اتر مرينا ٻيٽ"}\r
+        MQ{"مارتينڪ"}\r
+        MR{"موريتانيا"}\r
+        MS{"مونٽسراٽ"}\r
+        MT{"مالٽا"}\r
+        MU{"موريشس"}\r
+        MV{"مالديپ"}\r
+        MW{"مالاوي"}\r
+        MX{"ميڪسيڪو"}\r
+        MY{"ملائيشيا"}\r
+        MZ{"موزمبیق"}\r
+        NA{"نيميبيا"}\r
+        NC{"نیو ڪالیڊونیا"}\r
+        NE{"نائيجر"}\r
+        NF{"نورفوڪ ٻيٽ"}\r
+        NG{"نائيجيريا"}\r
+        NI{"نڪراگوا"}\r
+        NL{"نيدرلينڊ"}\r
+        NO{"ناروي"}\r
+        NP{"نيپال"}\r
+        NR{"نائورو"}\r
+        NU{"نووي"}\r
+        NZ{"نيو زيلينڊ"}\r
+        OM{"عمان"}\r
+        PA{"پناما"}\r
+        PE{"پيرو"}\r
+        PF{"فرانسيسي پولينيشيا"}\r
+        PG{"پاپوا نیو گني"}\r
+        PH{"فلپائن"}\r
+        PK{"پاڪستان"}\r
+        PL{"پولينڊ"}\r
+        PM{"سینٽ پیئر و میڪوئیلون"}\r
+        PN{"پٽڪئرن ٻيٽ"}\r
+        PR{"پيوئرٽو ريڪو"}\r
+        PS{"فلسطيني حدون"}\r
+        PT{"پرتگال"}\r
+        PW{"پلائو"}\r
+        PY{"پيراگوءِ"}\r
+        QA{"قطر"}\r
+        QO{"بيروني سامونڊي"}\r
+        RE{"ري يونين"}\r
+        RO{"رومانيا"}\r
+        RS{"سربيا"}\r
+        RU{"روس"}\r
+        RW{"روانڊا"}\r
+        SA{"سعودی عرب"}\r
+        SB{"سولومون ٻيٽَ"}\r
+        SC{"شي شلز"}\r
+        SD{"سوڊان"}\r
+        SE{"سوئيڊن"}\r
+        SG{"سينگاپور"}\r
+        SH{"سينٽ ھيلينا"}\r
+        SI{"سلوینیا"}\r
+        SJ{"سوالبارڊ ۽ جان ماین"}\r
+        SK{"سلوواڪيا"}\r
+        SL{"سيرا ليون"}\r
+        SM{"سین مرینو"}\r
+        SN{"سينيگال"}\r
+        SO{"سوماليا"}\r
+        SR{"سورينام"}\r
+        SS{"ڏکڻ سوڊان"}\r
+        ST{"سائو ٽوم ۽ پرنسپیي"}\r
+        SV{"ال سلواڊور"}\r
+        SX{"سنٽ مارٽن"}\r
+        SY{"شام"}\r
+        SZ{"سوازيلينڊ"}\r
+        TA{"ٽرسٽن دا ڪوها"}\r
+        TC{"ترڪ ۽ ڪيڪوس ٻيٽ"}\r
+        TD{"چاڊ"}\r
+        TF{"فرانسيسي ڏاکڻي علائقا"}\r
+        TG{"توگو"}\r
+        TH{"ٿائيليند"}\r
+        TJ{"تاجڪستان"}\r
+        TK{"ٽوڪلائو"}\r
+        TL{"تيمور ليستي"}\r
+        TM{"ترڪمانستان"}\r
+        TN{"تيونيسيا"}\r
+        TO{"ٽونگا"}\r
+        TR{"ترڪي"}\r
+        TT{"ٽريني ڊيڊ ۽ ٽوباگو ٻيٽ"}\r
+        TV{"توالو"}\r
+        TW{"تائیوان"}\r
+        TZ{"تنزانيا"}\r
+        UA{"يوڪرين"}\r
+        UG{"يوگنڊا"}\r
+        UM{"آمريڪي ٻاهريون ٻيٽ"}\r
+        UN{"اقوام متحده"}\r
+        US{"آمريڪا جون گڏيل رياستون"}\r
+        UY{"يوروگوءِ"}\r
+        UZ{"ازبڪستان"}\r
+        VA{"ويٽڪين سٽي"}\r
+        VC{"سینٽ ونسنت ۽ گریناڊینز"}\r
+        VE{"وينزيلا"}\r
+        VG{"برطانوي ورجن ٻيٽ"}\r
+        VI{"آمريڪي ورجن ٻيٽ"}\r
+        VN{"ويتنام"}\r
+        VU{"وينيٽيو"}\r
+        WF{"والس ۽ فتونا"}\r
+        WS{"سموئا"}\r
+        XK{"ڪوسووو"}\r
+        YE{"يمن"}\r
+        YT{"مياتي"}\r
+        ZA{"ڏکڻ آفريقا"}\r
+        ZM{"زيمبيا"}\r
+        ZW{"زمبابوي"}\r
+        ZZ{"اڻڄاتل خطو"}\r
+    }\r
+    Countries%short{\r
+        GB{"برطانيه"}\r
+        HK{"هانگ ڪانگ"}\r
+        MO{"مڪائو"}\r
+        PS{"فلسطين"}\r
+        US{"يوايس"}\r
+    }\r
+    Countries%variant{\r
+        CD{"ڪانگو"}\r
+        CG{"ڪانگو (جمهوري)"}\r
+        CI{"آئيوري ڪوسٽ"}\r
+        CZ{"چيڪ جهموريو"}\r
+        FK{"فلڪ لينڊ ٻيٽ"}\r
+        MK{"ميڪدونيا"}\r
+        TL{"اوڀر تيمور"}\r
+    }\r
+    Version{"2.1.43.94"}\r
+}\r
index a2e4f1c85de75b725af3429f5cf0434130b75cd5..4f2df06846b8ffd7c6759dabbe980fb70aa91ee9 100644 (file)
@@ -294,5 +294,5 @@ se{
         PS{"Palestina"}\r
         US{"USA"}\r
     }\r
-    Version{"2.1.38.69"}\r
+    Version{"2.1.43.94"}\r
 }\r
index 42a1c6a3e02ae970298eecd267f280eb7ded89e4..87e2403cb1291fbfb6c1471b1519d06dc15532dd 100644 (file)
@@ -26,5 +26,5 @@ se_FI{
     Countries%variant{\r
         CI{"Côte d’Ivoire"}\r
     }\r
-    Version{"2.1.38.73"}\r
+    Version{"2.1.44.88"}\r
 }\r
index 9a27dfccf3a25192e5ec6e1f8bc679c80e308389..dbf1b78380aea3f3cd9cbccb945f29ef1a6c173b 100644 (file)
@@ -31,6 +31,7 @@ si{
         151{"නැගෙනහිර යුරෝපය"}\r
         154{"උතුරු යුරෝපය"}\r
         155{"බටහිර යුරෝපය"}\r
+        202{"උප-සහරානු අප්‍රිකාව"}\r
         419{"ලතින් ඇමෙරිකාව"}\r
         AC{"ඇසෙන්ෂන් දිවයින"}\r
         AD{"ඇන්ඩෝරාව"}\r
@@ -43,7 +44,7 @@ si{
         AO{"ඇන්ගෝලාව"}\r
         AQ{"ඇන්ටාක්ටිකාව"}\r
         AR{"ආර්ජෙන්ටිනාව"}\r
-        AS{"ඇමරිකානු සැමෝවා"}\r
+        AS{"ඇමරිකානු සැමෝවා"}\r
         AT{"ඔස්ට්‍රියාව"}\r
         AU{"ඕස්ට්‍රේලියාව"}\r
         AW{"අරූබා"}\r
@@ -89,7 +90,7 @@ si{
         CW{"කුරකාවෝ"}\r
         CX{"ක්‍රිස්මස් දූපත"}\r
         CY{"සයිප්‍රසය"}\r
-        CZ{"චà·\99à¶\9aà·\8a à¶¢à¶±à¶»à¶¢à¶º"}\r
+        CZ{"චà·\99චà·\92යà·\8fà·\80"}\r
         DE{"ජර්මනිය"}\r
         DG{"දියාගෝ ගාර්සියා"}\r
         DJ{"ජිබුටි"}\r
@@ -306,9 +307,10 @@ si{
         CD{"කොංගෝව"}\r
         CG{"කොංගෝ (ජනරජය)"}\r
         CI{"අයිවරි කෝස්ට්"}\r
+        CZ{"චෙක් ජනරජය"}\r
         FK{"ෆෝක්ලන්ත දූපත් (අයිලස් මල්වියනාස්)"}\r
         MK{"මැසිඩෝනියාව (FYROM)"}\r
         TL{"නැගෙනහිර ටිමෝරය"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.50"}\r
 }\r
index cabebcddd2f119ad852f501f74e69cadf5b3198a..c1243446d3ce2665f4835326cf33750e55339a40 100644 (file)
@@ -308,5 +308,5 @@ sk{
         FK{"Falklandy (Malvíny)"}\r
         MK{"Macedónsko (BJRM)"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.65"}\r
 }\r
index d178f7e6e5cf3d7d934d34825c4d0ecbdaafa514..e9bf05261841c57911ff4ae63842e51b86466af1 100644 (file)
@@ -312,5 +312,5 @@ sl{
         MK{"Makedonija (FYROM)"}\r
         TL{"Vzhodni Timor"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.91"}\r
 }\r
index c00f3886b5b3913803ab22487ea07f9b1ae40a29..e19029c1a7142185e32a3b4146da6fb08737fa9e 100644 (file)
@@ -226,5 +226,5 @@ sn{
         ZM{"Zambia"}\r
         ZW{"Zimbabwe"}\r
     }\r
-    Version{"2.1.39.11"}\r
+    Version{"2.1.43.94"}\r
 }\r
index ee40f9f0a5e87759c215c825ebb41fae4d07c6c1..d7b588fa16546c7173e1b923b8e1a5baa32faba1 100644 (file)
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 so{\r
     Countries{\r
+        001{"Dunida"}\r
+        002{"Afrika"}\r
+        003{"Waqooyi Ameerika"}\r
+        005{"Koonfur Ameerika"}\r
+        009{"Osheeniya"}\r
+        011{"Galbeeka Afrika"}\r
+        013{"Bartamaha Ameerika"}\r
+        014{"Afrikada Bari"}\r
+        015{"Waqooyiga Afrika"}\r
+        017{"Afrikada Dhexe"}\r
+        018{"Afrikada Koonfureed"}\r
+        019{"Ameerikaas"}\r
+        021{"Waqooyiga Ameerika"}\r
+        029{"Karibiyaan"}\r
+        030{"Aasiyada Bari"}\r
+        034{"Aasiyada Koonfureed"}\r
+        035{"Aasiyada Koonfur-galbeed"}\r
+        039{"Yurubta Koonfureed"}\r
+        053{"Austraalaasiya"}\r
+        054{"Melaneesiya"}\r
+        057{"Gobolka Aasiyada yar"}\r
+        061{"Booliyneesiya"}\r
+        142{"Aasiya"}\r
+        143{"Bartamaha Aasiya"}\r
+        145{"Aasiyada Galbeed"}\r
+        150{"Yurub"}\r
+        151{"Yurubta Bari"}\r
+        154{"Yurubta Waqooyi"}\r
+        155{"Yurubta Galbeed"}\r
+        202{"Afrikada ka hooseysa Saxaraha"}\r
+        419{"Laatiin Ameerika"}\r
+        AC{"Jasiiradda Asensiyoon"}\r
         AD{"Andora"}\r
         AE{"Imaaraadka Carabta ee Midoobay"}\r
         AF{"Afgaanistaan"}\r
-        AG{"Antigua iyo Barbuda"}\r
-        AI{"Anguilla"}\r
+        AG{"Antigua & Barbuuda"}\r
+        AI{"Anguula"}\r
         AL{"Albaaniya"}\r
         AM{"Armeeniya"}\r
         AO{"Angoola"}\r
-        AR{"Arjantiin"}\r
+        AQ{"Antaarktika"}\r
+        AR{"Arjentiina"}\r
         AS{"Samowa Ameerika"}\r
         AT{"Awsteriya"}\r
         AU{"Awstaraaliya"}\r
         AW{"Aruba"}\r
-        AZ{"Azerbajaan"}\r
-        BA{"Bosniya Hersigoviina"}\r
+        AX{"Jasiiradda Aland"}\r
+        AZ{"Asarbajan"}\r
+        BA{"Boosniya & Harsegofina"}\r
         BB{"Baarbadoos"}\r
-        BD{"Bangaaladheesh"}\r
+        BD{"Bangladesh"}\r
         BE{"Biljam"}\r
         BF{"Burkiina Faaso"}\r
         BG{"Bulgaariya"}\r
         BH{"Baxreyn"}\r
         BI{"Burundi"}\r
         BJ{"Biniin"}\r
-        BM{"Bermuuda"}\r
+        BL{"St. Baathelemiy"}\r
+        BM{"Barmuuda"}\r
         BN{"Buruneeya"}\r
         BO{"Boliifiya"}\r
-        BR{"Braasiil"}\r
+        BQ{"Karibiyaan Nadarlands"}\r
+        BR{"Baraasiil"}\r
         BS{"Bahaamas"}\r
-        BT{"Bhutan"}\r
+        BT{"Buutan"}\r
+        BV{"Buufet Island"}\r
         BW{"Botuswaana"}\r
         BY{"Belarus"}\r
-        BZ{"Belize"}\r
+        BZ{"Beliis"}\r
         CA{"Kanada"}\r
+        CC{"Jasiiradda Kookoos"}\r
         CD{"Jamhuuriyadda Dimuquraadiga Kongo"}\r
         CF{"Jamhuuriyadda Afrikada Dhexe"}\r
         CG{"Kongo"}\r
         CH{"Swiiserlaand"}\r
-        CI{"Ivory coast"}\r
-        CK{"Jaziiradda Cook"}\r
+        CI{"Ayfori Koost"}\r
+        CK{"Jasiiradda Kook"}\r
         CL{"Jili"}\r
         CM{"Kaameruun"}\r
         CN{"Shiinaha"}\r
         CO{"Kolombiya"}\r
+        CP{"Jasiiradda Kilibarton"}\r
         CR{"Kosta Riika"}\r
         CU{"Kuuba"}\r
-        CV{"Cape Verde Islands"}\r
+        CV{"Jasiiradda Kayb Faarde"}\r
+        CW{"Kurakaaw"}\r
+        CX{"Jasiiradda Kirismas"}\r
         CY{"Qubrus"}\r
-        CZ{"Jamhuuriyadda Jek"}\r
+        CZ{"Jekiya"}\r
         DE{"Jarmal"}\r
+        DG{"Diyeego Karsiya"}\r
         DJ{"Jabuuti"}\r
         DK{"Denmark"}\r
-        DM{"Domeenika"}\r
-        DO{"Jamhuuriyadda Domeenika"}\r
+        DM{"Dominika"}\r
+        DO{"Jamhuuriyaddda Dominika"}\r
         DZ{"Aljeeriya"}\r
+        EA{"Seyuta & Meliila"}\r
         EC{"Ikuwadoor"}\r
         EE{"Estooniya"}\r
         EG{"Masar"}\r
-        ER{"Eretereeya"}\r
+        EH{"Saxaraha Galbeed"}\r
+        ER{"Eritreeya"}\r
         ES{"Isbeyn"}\r
         ET{"Itoobiya"}\r
+        EU{"Midowga Yurub"}\r
+        EZ{"Yurusoon"}\r
         FI{"Finland"}\r
         FJ{"Fiji"}\r
         FK{"Jaziiradaha Fooklaan"}\r
-        FM{"Micronesia"}\r
+        FM{"Mikroneesiya"}\r
+        FO{"Jasiiradda Faroo"}\r
         FR{"Faransiis"}\r
         GA{"Gaaboon"}\r
-        GB{"United Kingdom"}\r
+        GB{"Boqortooyada Midowday"}\r
         GD{"Giriinaada"}\r
         GE{"Joorjiya"}\r
-        GF{"French Guiana"}\r
+        GF{"Faransiis Gini"}\r
+        GG{"Guurnsey"}\r
         GH{"Gaana"}\r
         GI{"Gibraltar"}\r
         GL{"Greenland"}\r
         GM{"Gambiya"}\r
         GN{"Gini"}\r
-        GP{"Guadeloupe"}\r
-        GQ{"Equatorial Guinea"}\r
+        GP{"Guadeluub"}\r
+        GQ{"Ekuwatooriyal Gini"}\r
         GR{"Giriig"}\r
+        GS{"Jasiiradda Joorjiyada Koonfureed & Sandwij"}\r
         GT{"Guwaatamaala"}\r
-        GU{"Guam"}\r
+        GU{"Guaam"}\r
         GW{"Gini-Bisaaw"}\r
         GY{"Guyana"}\r
+        HK{"Hong Kong"}\r
+        HM{"Jasiiradda Haad & MakDonald"}\r
         HN{"Honduras"}\r
         HR{"Korweeshiya"}\r
-        HT{"Hayti"}\r
-        HU{"Hangeri"}\r
+        HT{"Haiti"}\r
+        HU{"Hangari"}\r
+        IC{"Jasiiradda Kanari"}\r
         ID{"Indoneesiya"}\r
         IE{"Ayrlaand"}\r
         IL{"Israaʼiil"}\r
+        IM{"Jasiiradda Isle of Man"}\r
         IN{"Hindiya"}\r
-        IO{"British Indian Ocean Territory"}\r
+        IO{"Dhul xadeedka Badweynta Hindiya ee Biritishka"}\r
         IQ{"Ciraaq"}\r
         IR{"Iiraan"}\r
-        IS{"Iislaand"}\r
+        IS{"Ayslaand"}\r
         IT{"Talyaani"}\r
-        JM{"Jameyka"}\r
+        JE{"Jaarsey"}\r
+        JM{"Jamaaika"}\r
         JO{"Urdun"}\r
         JP{"Jabaan"}\r
-        KE{"Kiiniya"}\r
+        KE{"Kenya"}\r
         KG{"Kirgistaan"}\r
         KH{"Kamboodiya"}\r
         KI{"Kiribati"}\r
         KM{"Komooros"}\r
-        KN{"Saint Kitts and Nevis"}\r
+        KN{"St. Kitts & Nefis"}\r
         KP{"Kuuriyada Waqooyi"}\r
         KR{"Kuuriyada Koonfureed"}\r
         KW{"Kuwayt"}\r
@@ -113,114 +167,127 @@ so{
         KZ{"Kasaakhistaan"}\r
         LA{"Laos"}\r
         LB{"Lubnaan"}\r
-        LC{"Saint Lucia"}\r
-        LI{"Liechtenstein"}\r
+        LC{"St. Lusia"}\r
+        LI{"Liyjtensteyn"}\r
         LK{"Sirilaanka"}\r
         LR{"Laybeeriya"}\r
         LS{"Losooto"}\r
         LT{"Lituweeniya"}\r
         LU{"Luksemboorg"}\r
         LV{"Latfiya"}\r
-        LY{"Liibiya"}\r
-        MA{"Marooko"}\r
+        LY{"Liibya"}\r
+        MA{"Morooko"}\r
         MC{"Moonako"}\r
         MD{"Moldofa"}\r
+        ME{"Moontenegro"}\r
+        MF{"St. Maartin"}\r
         MG{"Madagaskar"}\r
-        MH{"Marshall Islands"}\r
-        MK{"Makadooniya"}\r
+        MH{"Jasiiradda Maarshal"}\r
+        MK{"Masedooniya"}\r
         ML{"Maali"}\r
         MM{"Miyanmar"}\r
         MN{"Mongooliya"}\r
-        MP{"Northern Mariana Islands"}\r
-        MQ{"Martinique"}\r
+        MO{"Makaaw"}\r
+        MP{"Jasiiradda Waqooyiga Mariaana"}\r
+        MQ{"Maartinik"}\r
         MR{"Muritaaniya"}\r
         MS{"Montserrat"}\r
-        MT{"Maalda"}\r
+        MT{"Maalta"}\r
         MU{"Murishiyoos"}\r
         MV{"Maaldiqeen"}\r
         MW{"Malaawi"}\r
         MX{"Meksiko"}\r
         MY{"Malaysia"}\r
-        MZ{"Musambiig"}\r
+        MZ{"Musambiik"}\r
         NA{"Namiibiya"}\r
-        NC{"New Caledonia"}\r
+        NC{"Jasiiradda Niyuu Kaledooniya"}\r
         NE{"Nayjer"}\r
-        NF{"Norfolk Island"}\r
+        NF{"Jasiiradda Noorfolk"}\r
         NG{"Nayjeeriya"}\r
         NI{"Nikaraaguwa"}\r
-        NL{"Netherlands"}\r
+        NL{"Nederlaands"}\r
         NO{"Noorweey"}\r
         NP{"Nebaal"}\r
         NR{"Nauru"}\r
         NU{"Niue"}\r
-        NZ{"Neyuusilaand"}\r
+        NZ{"Niyuusiilaand"}\r
         OM{"Cumaan"}\r
-        PA{"Panama"}\r
-        PE{"Peru"}\r
-        PF{"French Polynesia"}\r
-        PG{"Papua New Guinea"}\r
+        PA{"Baanama"}\r
+        PE{"Beeru"}\r
+        PF{"Booliyneesiya Faransiiska"}\r
+        PG{"Babua Niyuu Gini"}\r
         PH{"Filibiin"}\r
         PK{"Bakistaan"}\r
         PL{"Booland"}\r
         PM{"Saint Pierre and Miquelon"}\r
-        PN{"Pitcairn"}\r
-        PR{"Puerto Rico"}\r
+        PN{"Bitkairn"}\r
+        PR{"Bueerto Riiko"}\r
         PS{"Falastiin Daanka galbeed iyo Qasa"}\r
-        PT{"Bortuqaal"}\r
-        PW{"Palau"}\r
-        PY{"Paraguay"}\r
+        PT{"Bortugaal"}\r
+        PW{"Balaaw"}\r
+        PY{"Baraguaay"}\r
         QA{"Qadar"}\r
+        QO{"Dhulxeebeedka Osheeniya"}\r
         RE{"Réunion"}\r
         RO{"Rumaaniya"}\r
+        RS{"Seerbiya"}\r
         RU{"Ruush"}\r
         RW{"Ruwanda"}\r
         SA{"Sacuudi Carabiya"}\r
-        SB{"Solomon Islands"}\r
+        SB{"Jasiiradda Solomon"}\r
         SC{"Sishelis"}\r
         SD{"Suudaan"}\r
         SE{"Iswidhan"}\r
         SG{"Singaboor"}\r
         SH{"Saint Helena"}\r
-        SI{"Slovenia"}\r
-        SK{"Slovakia"}\r
+        SI{"islofeeniya"}\r
+        SJ{"Jasiiradda Sfaldbaad & Jaan Mayen"}\r
+        SK{"Islofaakiya"}\r
         SL{"Siraaliyoon"}\r
         SM{"San Marino"}\r
         SN{"Sinigaal"}\r
         SO{"Soomaaliya"}\r
-        SR{"Suriname"}\r
-        ST{"São Tomé and Príncipe"}\r
-        SV{"El Salvador"}\r
+        SR{"Surineym"}\r
+        SS{"Koonfur Suudaan"}\r
+        ST{"Sao Tome & Birincibal"}\r
+        SV{"El Salfadoor"}\r
+        SX{"Siint Maarteen"}\r
         SY{"Suuriya"}\r
         SZ{"Iswaasilaand"}\r
-        TC{"Turks and Caicos Islands"}\r
+        TA{"Tiristan da Kunha"}\r
+        TC{"Turks & Kaikos Island"}\r
         TD{"Jaad"}\r
+        TF{"Dhul xadeedka Koonfureed ee Faransiiska"}\r
         TG{"Toogo"}\r
         TH{"Taylaand"}\r
         TJ{"Tajikistan"}\r
-        TK{"Tokelau"}\r
-        TL{"Timorka bari"}\r
+        TK{"Tokelaaw"}\r
+        TL{"Timoor"}\r
         TM{"Turkmenistan"}\r
         TN{"Tuniisiya"}\r
         TO{"Tonga"}\r
         TR{"Turki"}\r
-        TT{"Trinidad and Tobago"}\r
-        TV{"Tuvalu"}\r
+        TT{"Tirinidaad & Tobago"}\r
+        TV{"Tufaalu"}\r
         TW{"Taywaan"}\r
         TZ{"Tansaaniya"}\r
         UA{"Ukrayn"}\r
         UG{"Ugaanda"}\r
+        UM{"Jasiiradaha ka baxsan Maraykanka"}\r
+        UN{"Qaramada Midoobay"}\r
         US{"Maraykanka"}\r
         UY{"Uruguwaay"}\r
         UZ{"Uusbakistaan"}\r
         VA{"Faatikaan"}\r
-        VC{"Saint Vincent and the Grenadines"}\r
+        VC{"St. Finsent & Girenadiins"}\r
         VE{"Fenisuweela"}\r
-        VG{"British Virgin Islands"}\r
-        VI{"U.S. Virgin Islands"}\r
+        VG{"Biritish Farjin Island"}\r
+        VI{"U.S Fargin Island"}\r
         VN{"Fiyetnaam"}\r
-        VU{"Vanuatu"}\r
-        WF{"Wallis and Futuna"}\r
-        WS{"Samoa"}\r
+        VU{"Fanuaatu"}\r
+        WF{"Walis & Futuna"}\r
+        WS{"Samoowa"}\r
+        XK{"Koosofo"}\r
         YE{"Yaman"}\r
         YT{"Mayotte"}\r
         ZA{"Koonfur Afrika"}\r
@@ -228,5 +295,19 @@ so{
         ZW{"Simbaabwe"}\r
         ZZ{"Far aan la aqoon amase aan saxnayn"}\r
     }\r
-    Version{"2.1.38.69"}\r
+    Countries%short{\r
+        GB{"GB"}\r
+        HK{"Hong Kong"}\r
+        MO{"Makaaw"}\r
+        PS{"Falastiin"}\r
+        US{"US"}\r
+    }\r
+    Countries%variant{\r
+        CD{"Jamhuuriyadda Dimuqaadiga Kongo"}\r
+        CG{"Jamhuuriyadda Kongo"}\r
+        CZ{"Jamhuuriyadda Jek"}\r
+        FK{"Jasiiradaha Fookland"}\r
+        TL{"Timoor Bari"}\r
+    }\r
+    Version{"2.1.43.94"}\r
 }\r
index 15eb1a5578bcb092f97e6f7d2527d0f3d923cac3..148f15dbb6f9a215625489973b369ae3e6d25794 100644 (file)
@@ -19,7 +19,7 @@ sq{
         030{"Azia Lindore"}\r
         034{"Azia Jugore"}\r
         035{"Azia Juglindore"}\r
-        039{"Europa Jugore"}\r
+        039{"Evropa Jugore"}\r
         053{"Australazia"}\r
         054{"Melanezia"}\r
         057{"Rajoni Mikronezian"}\r
@@ -27,10 +27,10 @@ sq{
         142{"Azi"}\r
         143{"Azia Qendrore"}\r
         145{"Azia Perëndimore"}\r
-        150{"Europë"}\r
-        151{"Europa Lindore"}\r
-        154{"Europa Veriore"}\r
-        155{"Europa Perëndimore"}\r
+        150{"Evropë"}\r
+        151{"Evropa Lindore"}\r
+        154{"Evropa Veriore"}\r
+        155{"Evropa Perëndimore"}\r
         202{"Afrika Subsahariane"}\r
         419{"Amerika Latine"}\r
         AC{"Ishulli Asenshion"}\r
@@ -59,13 +59,13 @@ sq{
         BH{"Bahrejn"}\r
         BI{"Burundi"}\r
         BJ{"Benin"}\r
-        BL{"Shën-Bartolome"}\r
-        BM{"Bermudë"}\r
+        BL{"Sen-Bartelemi"}\r
+        BM{"Bermude"}\r
         BN{"Brunei"}\r
         BO{"Bolivi"}\r
         BQ{"Karaibet holandeze"}\r
         BR{"Brazil"}\r
-        BS{"Bahamas"}\r
+        BS{"Bahama"}\r
         BT{"Butan"}\r
         BV{"Ishulli Bove"}\r
         BW{"Botsvanë"}\r
@@ -87,7 +87,7 @@ sq{
         CR{"Kosta-Rikë"}\r
         CU{"Kubë"}\r
         CV{"Kepi i Gjelbër"}\r
-        CW{"Kuraçao"}\r
+        CW{"Kurasao"}\r
         CX{"Ishulli i Krishtlindjes"}\r
         CY{"Qipro"}\r
         CZ{"Çeki"}\r
@@ -106,8 +106,8 @@ sq{
         ER{"Eritre"}\r
         ES{"Spanjë"}\r
         ET{"Etiopi"}\r
-        EU{"Bashkimi Europian"}\r
-        EZ{"Eurozonë"}\r
+        EU{"Bashkimi Evropian"}\r
+        EZ{"Zona euro"}\r
         FI{"Finlandë"}\r
         FJ{"Fixhi"}\r
         FK{"Ishujt Falkland"}\r
@@ -116,16 +116,16 @@ sq{
         FR{"Francë"}\r
         GA{"Gabon"}\r
         GB{"Mbretëria e Bashkuar"}\r
-        GD{"Grenadë"}\r
+        GD{"Granadë"}\r
         GE{"Gjeorgji"}\r
         GF{"Guajana Franceze"}\r
         GG{"Gernsej"}\r
         GH{"Ganë"}\r
         GI{"Gjibraltar"}\r
-        GL{"Grenlandë"}\r
-        GM{"Gambia"}\r
+        GL{"Grënlandë"}\r
+        GM{"Gambi"}\r
         GN{"Guine"}\r
-        GP{"Guadalupe"}\r
+        GP{"Guadelupë"}\r
         GQ{"Guineja Ekuatoriale"}\r
         GR{"Greqi"}\r
         GS{"Xhorxha Jugore dhe Ishujt Senduiçë të Jugut"}\r
@@ -155,13 +155,13 @@ sq{
         JO{"Jordani"}\r
         JP{"Japoni"}\r
         KE{"Kenia"}\r
-        KG{"Kirgistan"}\r
+        KG{"Kirgizi"}\r
         KH{"Kamboxhia"}\r
         KI{"Kiribati"}\r
         KM{"Komore"}\r
         KN{"Shën-Kits dhe Nevis"}\r
-        KP{"Koreja e Veriut"}\r
-        KR{"Koreja e Jugut"}\r
+        KP{"Kore e Veriut"}\r
+        KR{"Kore e Jugut"}\r
         KW{"Kuvajt"}\r
         KY{"Ishujt Kajman"}\r
         KZ{"Kazakistan"}\r
@@ -180,12 +180,12 @@ sq{
         MC{"Monako"}\r
         MD{"Moldavi"}\r
         ME{"Mal i Zi"}\r
-        MF{"Shën-Martin"}\r
+        MF{"Sen-Marten"}\r
         MG{"Madagaskar"}\r
         MH{"Ishujt Marshall"}\r
         MK{"Maqedoni"}\r
         ML{"Mali"}\r
-        MM{"Mianmar (Burma)"}\r
+        MM{"Mianmar (Burmë)"}\r
         MN{"Mongoli"}\r
         MO{"RPA i Makaos"}\r
         MP{"Ishujt e Marianës Veriore"}\r
@@ -200,7 +200,7 @@ sq{
         MY{"Malajzi"}\r
         MZ{"Mozambik"}\r
         NA{"Namibi"}\r
-        NC{"Kaledonia e Re"}\r
+        NC{"Kaledoni e Re"}\r
         NE{"Niger"}\r
         NF{"Ishulli Norfolk"}\r
         NG{"Nigeri"}\r
@@ -233,17 +233,17 @@ sq{
         RS{"Serbi"}\r
         RU{"Rusi"}\r
         RW{"Ruandë"}\r
-        SA{"Arabia Saudite"}\r
+        SA{"Arabi Saudite"}\r
         SB{"Ishujt Solomon"}\r
         SC{"Sejshelle"}\r
         SD{"Sudan"}\r
         SE{"Suedi"}\r
         SG{"Singapor"}\r
-        SH{"Shën-Helenë"}\r
+        SH{"Shën-Elenë"}\r
         SI{"Slloveni"}\r
         SJ{"Svalbard e Jan-Majen"}\r
         SK{"Sllovaki"}\r
-        SL{"Siera-Leone"}\r
+        SL{"Sierra-Leone"}\r
         SM{"San-Marino"}\r
         SN{"Senegal"}\r
         SO{"Somali"}\r
@@ -253,7 +253,7 @@ sq{
         SV{"Salvador"}\r
         SX{"Sint-Marten"}\r
         SY{"Siri"}\r
-        SZ{"Svazilandë"}\r
+        SZ{"Suazilend"}\r
         TA{"Tristan-da-Kuna"}\r
         TC{"Ishujt Turks dhe Kaikos"}\r
         TD{"Çad"}\r
@@ -274,8 +274,8 @@ sq{
         UA{"Ukrainë"}\r
         UG{"Ugandë"}\r
         UM{"Ishujt Periferikë të SHBA-së"}\r
-        UN{"Kombet e Bashkuara"}\r
-        US{"Shtetet e Bashkuara të Amerikës"}\r
+        UN{"Organizata e Kombeve të Bashkuara"}\r
+        US{"SHBA"}\r
         UY{"Uruguai"}\r
         UZ{"Uzbekistan"}\r
         VA{"Vatikan"}\r
@@ -291,16 +291,16 @@ sq{
         YE{"Jemen"}\r
         YT{"Majotë"}\r
         ZA{"Afrika e Jugut"}\r
-        ZM{"Zambia"}\r
+        ZM{"Zambi"}\r
         ZW{"Zimbabve"}\r
         ZZ{"I panjohur"}\r
     }\r
     Countries%short{\r
-        GB{"Mbretëria e Bashkuar"}\r
+        GB{"MB"}\r
         HK{"Hong-Kong"}\r
         MO{"Makao"}\r
         PS{"Palestinë"}\r
-        UN{"Kombet e Bashkuara"}\r
+        UN{"OKB"}\r
         US{"SHBA"}\r
     }\r
     Countries%variant{\r
@@ -312,5 +312,5 @@ sq{
         MK{"Maqedoni (IRJM)"}\r
         TL{"Timori Lindor"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.50"}\r
 }\r
index cbc3d050f85d3d41d2f4bbe4b416ce8903ea748c..8c8ff701a9030f0ced362ed8ed6f25941bbbdb4a 100644 (file)
@@ -312,5 +312,5 @@ sr{
         MK{"Македонија (БЈРМ)"}\r
         TL{"Источни Тимор"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.94"}\r
 }\r
index ca5b962368cf8bcbfef741fd7d3cc5c532a04677..8cd4661693bfec1bc02d1943922cb2fc93ad1349 100644 (file)
@@ -19,5 +19,5 @@ sr_Cyrl_BA{
     Countries%variant{\r
         MK{"БЈР Македонија"}\r
     }\r
-    Version{"2.1.38.69"}\r
+    Version{"2.1.44.88"}\r
 }\r
index 658d2661194e1f945bf2657356459ba882e3d365..29704c71638944990632a60fa0423800af5436a7 100644 (file)
@@ -17,5 +17,5 @@ sr_Cyrl_ME{
     Countries%variant{\r
         MK{"БЈР Македонија"}\r
     }\r
-    Version{"2.1.38.69"}\r
+    Version{"2.1.44.88"}\r
 }\r
index 2b2e9ac2b9851afec9d171988546226ad9996dc6..a9adf7b796b8a8816d6f6bdb0b0446d12b4b0627 100644 (file)
@@ -313,5 +313,5 @@ sr_Latn{
         MK{"Makedonija (BJRM)"}\r
         TL{"Istočni Timor"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.50"}\r
 }\r
index 1bcc8c66d27cab26cf6c7c2c859e1f3e765b443b..799749f0fed540db7c1113f213986ab32f3d66b3 100644 (file)
@@ -19,5 +19,5 @@ sr_Latn_BA{
     Countries%variant{\r
         MK{"BJR Makedonija"}\r
     }\r
-    Version{"2.1.38.69"}\r
+    Version{"2.1.44.88"}\r
 }\r
index 023576f16385d892a9e15c36cdd1ead5b7f69257..5d46a9885da23185e6119e76edf784502ea8fe09 100644 (file)
@@ -17,5 +17,5 @@ sr_Latn_ME{
     Countries%variant{\r
         MK{"BJR Makedonija"}\r
     }\r
-    Version{"2.1.38.69"}\r
+    Version{"2.1.44.88"}\r
 }\r
index 0bc34b8dd89385e9c9ef4438d8fef8f2f73923eb..d16309fcd3fdece7469851fa8014de8974f3749b 100644 (file)
@@ -31,7 +31,7 @@ sv{
         151{"Östeuropa"}\r
         154{"Nordeuropa"}\r
         155{"Västeuropa"}\r
-        202{"202"}\r
+        202{"Subsahariska Afrika"}\r
         419{"Latinamerika"}\r
         AC{"Ascension"}\r
         AD{"Andorra"}\r
@@ -306,11 +306,9 @@ sv{
     Countries%variant{\r
         CD{"Demokratiska republiken Kongo"}\r
         CG{"Republiken Kongo"}\r
-        CI{"CI"}\r
-        CZ{"CZ"}\r
-        FK{"FK"}\r
+        CI{"Côte d’Ivoire"}\r
         MK{"f.d. jugoslaviska republiken Makedonien"}\r
-        TL{"TL"}\r
+        TL{"Timor-Leste"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.94"}\r
 }\r
index 23372f24053327e9b0e690c22048688e56a5ccde..62229cac5e3cd14524c5c45d9c7f4b3bc688707c 100644 (file)
@@ -31,6 +31,7 @@ sw{
         151{"Ulaya ya Mashariki"}\r
         154{"Ulaya ya Kaskazini"}\r
         155{"Ulaya ya Magharibi"}\r
+        202{"Afrika Kusine mwa Jangwa la Sahara"}\r
         419{"Amerika ya Kilatini"}\r
         AC{"Kisiwa cha Ascension"}\r
         AD{"Andorra"}\r
@@ -48,7 +49,7 @@ sw{
         AU{"Australia"}\r
         AW{"Aruba"}\r
         AX{"Visiwa vya Aland"}\r
-        AZ{"Azerbaijan"}\r
+        AZ{"Azerbaijani"}\r
         BA{"Bosnia na Hezegovina"}\r
         BB{"Babadosi"}\r
         BD{"Bangladeshi"}\r
@@ -114,7 +115,7 @@ sw{
         FO{"Visiwa vya Faroe"}\r
         FR{"Ufaransa"}\r
         GA{"Gabon"}\r
-        GB{"Uingereza"}\r
+        GB{"Ufalme wa Muungano"}\r
         GD{"Grenada"}\r
         GE{"Jojia"}\r
         GF{"Guiana ya Ufaransa"}\r
@@ -127,7 +128,7 @@ sw{
         GP{"Guadeloupe"}\r
         GQ{"Guinea ya Ikweta"}\r
         GR{"Ugiriki"}\r
-        GS{"Georgia Kusini na Visiwa vya Sandwich Kusini"}\r
+        GS{"Visiwa vya Georgia Kusini na Sandwich Kusini"}\r
         GT{"Guatemala"}\r
         GU{"Guam"}\r
         GW{"Ginebisau"}\r
@@ -142,12 +143,12 @@ sw{
         ID{"Indonesia"}\r
         IE{"Ayalandi"}\r
         IL{"Israeli"}\r
-        IM{"Isle of Man"}\r
+        IM{"Kisiwa cha Man"}\r
         IN{"India"}\r
         IO{"Eneo la Uingereza katika Bahari Hindi"}\r
         IQ{"Iraki"}\r
         IR{"Iran"}\r
-        IS{"Aislandi"}\r
+        IS{"Aisilandi"}\r
         IT{"Italia"}\r
         JE{"Jersey"}\r
         JM{"Jamaika"}\r
@@ -256,7 +257,7 @@ sw{
         TA{"Tristan da Cunha"}\r
         TC{"Visiwa vya Turks na Caicos"}\r
         TD{"Chad"}\r
-        TF{"Maeneo ya Kusini ya Ufaransa"}\r
+        TF{"Himaya za Kusini za Kifaranza"}\r
         TG{"Togo"}\r
         TH{"Tailandi"}\r
         TJ{"Tajikistani"}\r
@@ -295,7 +296,7 @@ sw{
         ZZ{"Eneo lisilojulikana"}\r
     }\r
     Countries%short{\r
-        GB{"Uingereza"}\r
+        GB{"Ufalme wa Muungano"}\r
         HK{"Hong Kong"}\r
         MO{"Macau"}\r
         PS{"Palestina"}\r
@@ -311,5 +312,5 @@ sw{
         MK{"Macedonia (FYROM)"}\r
         TL{"Timor ya Mashariki"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.65"}\r
 }\r
index be654ddd65b6002a6ae4005a16c54add91433843..136a30c09fc937cbae964ba4ef85baf5c996e354 100644 (file)
@@ -32,5 +32,5 @@ sw_CD{
         TL{"Timori ya Mashariki"}\r
         VN{"Vietnamu"}\r
     }\r
-    Version{"2.1.39.11"}\r
+    Version{"2.1.43.65"}\r
 }\r
index 05fd1b66f32958129db743a8f5b3f0142ef4006f..5ebede17c115073a2b3f0c16f55116081121e154 100644 (file)
@@ -2,32 +2,77 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 sw_KE{\r
     Countries{\r
+        AF{"Afghanistani"}\r
+        AI{"Anguila"}\r
         AQ{"Antaktika"}\r
         AZ{"Azabajani"}\r
+        BJ{"Benini"}\r
+        BT{"Bhutani"}\r
+        BY{"Belarusi"}\r
+        CC{"Visiwa vya Kokos (Keeling)"}\r
+        CD{"Kongo - Kinshasa"}\r
         CI{"Ivorikosti"}\r
-        CX{"Kisiwa cha Christmas"}\r
         CY{"Saiprasi"}\r
+        DK{"Denmaki"}\r
+        EA{"Keuta na Melilla"}\r
+        EC{"Ekwado"}\r
         FM{"Mikronesia"}\r
+        GA{"Gaboni"}\r
+        GL{"Grinilandi"}\r
         GP{"Gwadelupe"}\r
+        GS{"Visiwa vya Jojia ya Kusini na Sandwich ya Kusini"}\r
+        GU{"Guami"}\r
+        HR{"Kroashia"}\r
+        IO{"Himaya ya Uingereza katika Bahari Hindi"}\r
         JO{"Yordani"}\r
+        KY{"Visiwa vya Kaimani"}\r
+        LA{"Laosi"}\r
         LB{"Lebanoni"}\r
-        LI{"Lishtensteni"}\r
+        LI{"Lishenteni"}\r
         LS{"Lesotho"}\r
         LU{"Lasembagi"}\r
         LV{"Lativia"}\r
+        MA{"Moroko"}\r
+        MC{"Monako"}\r
+        MK{"Masedonia"}\r
+        MM{"Myama (Burma)"}\r
+        MO{"Makau SAR China"}\r
+        MQ{"Martiniki"}\r
+        MS{"Montserati"}\r
         MV{"Maldivi"}\r
         NC{"Nyukaledonia"}\r
-        NE{"Nijer"}\r
-        NG{"Nijeria"}\r
+        NE{"Nijeri"}\r
         NO{"Norwe"}\r
         NP{"Nepali"}\r
         OM{"Omani"}\r
         PF{"Polinesia ya Ufaransa"}\r
+        PG{"Papua Guinea Mpya"}\r
+        PL{"Polandi"}\r
         PR{"Puetoriko"}\r
+        PS{"Himaya za Palestina"}\r
+        PY{"Paragwai"}\r
         QA{"Katari"}\r
+        SG{"Singapuri"}\r
+        SR{"Surinamu"}\r
         ST{"Sao Tome na Prinsipe"}\r
+        SY{"Shamu"}\r
         TD{"Chadi"}\r
+        TH{"Thailandi"}\r
+        TM{"Turukimenstani"}\r
+        TW{"Taiwani"}\r
+        UA{"Ukreni"}\r
+        UY{"Urugwai"}\r
+        VA{"Mji wa Vatikani"}\r
+        VG{"Visiwa vya Virgin vya Uingereza"}\r
+        VI{"Visiwa vya Virgin vya Marekani"}\r
         VN{"Vietnamu"}\r
+        YT{"Mayote"}\r
     }\r
-    Version{"2.1.38.39"}\r
+    Countries%short{\r
+        MO{"Makau"}\r
+    }\r
+    Countries%variant{\r
+        MK{"Masedonia (FYROM)"}\r
+    }\r
+    Version{"2.1.43.65"}\r
 }\r
index 5740104fc3eb5fbe1321a0e2cca3aa5f7d9f317b..0f5282621be7c8ca91ba1958509b5f940191004a 100644 (file)
@@ -31,14 +31,14 @@ ta{
         151{"கிழக்கு ஐரோப்பா"}\r
         154{"வடக்கு ஐரோப்பா"}\r
         155{"மேற்கு ஐரோப்பா"}\r
-        202{"à®\9aபà¯\8d-à®\9aஹாரனà¯\8d à®\86பà¯\8dரிக்கா"}\r
+        202{"தà¯\81ணà¯\88 à®\9aஹாரா à®\86பà¯\8dபிரிக்கா"}\r
         419{"லத்தீன் அமெரிக்கா"}\r
         AC{"அஷன்ஷியன் தீவு"}\r
         AD{"அன்டோரா"}\r
         AE{"ஐக்கிய அரபு எமிரேட்ஸ்"}\r
-        AF{"ஆப்கானிஸ்தான்"}\r
+        AF{"à®\86à®\83பà¯\8dà®\95ானிஸà¯\8dதானà¯\8d"}\r
         AG{"ஆண்டிகுவா மற்றும் பார்புடா"}\r
-        AI{"à®\85à®\99à¯\8dà®\95à¯\81யà¯\8dலா"}\r
+        AI{"à®\85à®\99à¯\8dà®\95ியà¯\81லா"}\r
         AL{"அல்பேனியா"}\r
         AM{"அர்மேனியா"}\r
         AO{"அங்கோலா"}\r
@@ -69,7 +69,7 @@ ta{
         BT{"பூடான்"}\r
         BV{"பொவேட் தீவுகள்"}\r
         BW{"போட்ஸ்வானா"}\r
-        BY{"பà¯\86லாரà¯\82ஸà¯\8d"}\r
+        BY{"பெலாரஸ்"}\r
         BZ{"பெலிஸ்"}\r
         CA{"கனடா"}\r
         CC{"கோகோஸ் (கீலிங்) தீவுகள்"}\r
@@ -202,14 +202,14 @@ ta{
         NA{"நமீபியா"}\r
         NC{"நியூ கேலிடோனியா"}\r
         NE{"நைஜர்"}\r
-        NF{"நார்ஃபோக் தீவுகள்"}\r
+        NF{"நார்ஃபோக் தீவு"}\r
         NG{"நைஜீரியா"}\r
         NI{"நிகரகுவா"}\r
         NL{"நெதர்லாந்து"}\r
         NO{"நார்வே"}\r
         NP{"நேபாளம்"}\r
         NR{"நௌரு"}\r
-        NU{"நியà¯\82"}\r
+        NU{"நியà¯\81வà¯\87"}\r
         NZ{"நியூசிலாந்து"}\r
         OM{"ஓமன்"}\r
         PA{"பனாமா"}\r
@@ -268,7 +268,7 @@ ta{
         TO{"டோங்கா"}\r
         TR{"துருக்கி"}\r
         TT{"டிரினிடாட் & டொபாகோ"}\r
-        TV{"தà¯\81வாலà¯\82"}\r
+        TV{"தà¯\81வாலà¯\81"}\r
         TW{"தைவான்"}\r
         TZ{"தான்சானியா"}\r
         UA{"உக்ரைன்"}\r
@@ -312,5 +312,5 @@ ta{
         MK{"மாசிடோனியா (ஃபைரோம்)"}\r
         TL{"கிழக்கு தைமூர்"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.50"}\r
 }\r
index 08504a7491c360081aa78c9dd14e06581fc44eea..ed07ccf4eccdf48a614f77ec5f96e8375c733784 100644 (file)
@@ -50,7 +50,7 @@ te{
         AW{"అరుబా"}\r
         AX{"ఆలాండ్ దీవులు"}\r
         AZ{"అజర్బైజాన్"}\r
-        BA{"à°¬à±\8bà°¸à±\8dనియా à°®à°°à°¿à°¯à±\81 à°¹à±\86à°°à±\8dà°\9cà±\86à°\97à±\8aà°µà±\80నా"}\r
+        BA{"à°¬à±\8bà°¸à±\8dనియా à°®à°°à°¿à°¯à±\81 à°¹à±\86à°°à±\8dà°\9cà°¿à°\97à±\8bవినా"}\r
         BB{"బార్బడోస్"}\r
         BD{"బంగ్లాదేశ్"}\r
         BE{"బెల్జియం"}\r
@@ -59,7 +59,7 @@ te{
         BH{"బహ్రెయిన్"}\r
         BI{"బురుండి"}\r
         BJ{"బెనిన్"}\r
-        BL{"à°¸à±\86యిà°\82à°\9fà±\8d à°¬à°°à±\8dà°¤à±\87à°²à±\86à°®à±\80"}\r
+        BL{"à°¸à±\86యిà°\82à°\9fà±\8d à°¬à°°à±\8dà°¥à±\86లిమి"}\r
         BM{"బెర్ముడా"}\r
         BN{"బ్రూనే"}\r
         BO{"బొలీవియా"}\r
@@ -67,7 +67,7 @@ te{
         BR{"బ్రెజిల్"}\r
         BS{"బహామాస్"}\r
         BT{"భూటాన్"}\r
-        BV{"à°¬à±\8aà°µà±\86à°\9fà±\8d దీవి"}\r
+        BV{"à°¬à±\81à°µà±\88 దీవి"}\r
         BW{"బోట్స్వానా"}\r
         BY{"బెలారస్"}\r
         BZ{"బెలిజ్"}\r
@@ -87,7 +87,7 @@ te{
         CR{"కోస్టా రికా"}\r
         CU{"క్యూబా"}\r
         CV{"కేప్ వెర్డె"}\r
-        CW{"à°\95à±\81à°°à°¾à°\95à°µో"}\r
+        CW{"à°\95à±\8dà°¯à±\82à°°à°¸ో"}\r
         CX{"క్రిస్మస్ దీవి"}\r
         CY{"సైప్రస్"}\r
         CZ{"చెకియా"}\r
@@ -114,7 +114,7 @@ te{
         FM{"మైక్రోనేషియా"}\r
         FO{"ఫారో దీవులు"}\r
         FR{"ఫ్రాన్స్‌"}\r
-        GA{"à°\97à°¾బన్"}\r
+        GA{"à°\97à±\87బన్"}\r
         GB{"యునైటెడ్ కింగ్‌డమ్"}\r
         GD{"గ్రెనడా"}\r
         GE{"జార్జియా"}\r
@@ -128,21 +128,21 @@ te{
         GP{"గ్వాడెలోప్"}\r
         GQ{"ఈక్వటోరియల్ గినియా"}\r
         GR{"గ్రీస్"}\r
-        GS{"దక్షిణ జార్జియా & దక్షిణ శాండ్విచ్ దీవులు"}\r
+        GS{"దక్షిణ జార్జియా మరియు దక్షిణ శాండ్విచ్ దీవులు"}\r
         GT{"గ్వాటిమాలా"}\r
         GU{"గ్వామ్"}\r
         GW{"గినియా-బిస్సావ్"}\r
         GY{"గయానా"}\r
-        HK{"హాంకాంగ్ ఎస్ఏఆర్ చైనా"}\r
-        HM{"హెర్డ్ & మెక్ డొనాల్డ్ దీవులు"}\r
+        HK{"హాంకాంగ్ ఎస్ఏఆర్"}\r
+        HM{"హెర్డ్ దీవి మరియు మెక్‌డొనాల్డ్ దీవులు"}\r
         HN{"హోండురాస్"}\r
-        HR{"à°\95à±\8dà°°à±\8bయేషియా"}\r
+        HR{"à°\95à±\8dà°°à±\8aయేషియా"}\r
         HT{"హైటి"}\r
         HU{"హంగేరీ"}\r
         IC{"కేనరీ దీవులు"}\r
         ID{"ఇండోనేషియా"}\r
         IE{"ఐర్లాండ్"}\r
-        IL{"à°\87à°\9cà±\8dరాయిల్"}\r
+        IL{"à°\87à°\9cà±\8dరాయà±\86ల్"}\r
         IM{"ఐల్ ఆఫ్ మాన్"}\r
         IN{"భారతదేశం"}\r
         IO{"బ్రిటీష్ హిందూ మహాసముద్ర ప్రాంతం"}\r
@@ -173,19 +173,19 @@ te{
         LR{"లైబీరియా"}\r
         LS{"లెసోతో"}\r
         LT{"లిథువేనియా"}\r
-        LU{"లక్సంబర్గ్"}\r
+        LU{"à°²à°\95à±\8dà°¸à±\86à°\82బరà±\8dà°\97à±\8d"}\r
         LV{"లాత్వియా"}\r
         LY{"లిబియా"}\r
         MA{"మొరాకో"}\r
         MC{"మొనాకో"}\r
         MD{"మోల్డోవా"}\r
-        ME{"à°®à±\8bà°\82à°\9fà±\86à°¨à±\80గ్రో"}\r
+        ME{"మాà°\82à°\9fà±\86à°¨à±\86గ్రో"}\r
         MF{"సెయింట్ మార్టిన్"}\r
         MG{"మడగాస్కర్"}\r
         MH{"మార్షల్ దీవులు"}\r
         MK{"మేసిడోనియా"}\r
         ML{"మాలి"}\r
-        MM{"మయన్మార్ (బర్మా)"}\r
+        MM{"మయన్మార్"}\r
         MN{"మంగోలియా"}\r
         MO{"మకావ్ ఎస్ఏఆర్ చైనా"}\r
         MP{"ఉత్తర మరియానా దీవులు"}\r
@@ -195,7 +195,7 @@ te{
         MT{"మాల్టా"}\r
         MU{"మారిషస్"}\r
         MV{"మాల్దీవులు"}\r
-        MW{"మాలావి"}\r
+        MW{"మలావà±\80"}\r
         MX{"మెక్సికో"}\r
         MY{"మలేషియా"}\r
         MZ{"మొజాంబిక్"}\r
@@ -211,7 +211,7 @@ te{
         NR{"నౌరు"}\r
         NU{"నియూ"}\r
         NZ{"న్యూజిలాండ్"}\r
-        OM{"à°\92మన్"}\r
+        OM{"à°\93మన్"}\r
         PA{"పనామా"}\r
         PE{"పెరూ"}\r
         PF{"ఫ్రెంచ్ పోలినీషియా"}\r
@@ -228,8 +228,8 @@ te{
         PY{"పరాగ్వే"}\r
         QA{"ఖతార్"}\r
         QO{"ఒషీనియా బయటున్నవి"}\r
-        RE{"à°°à°¿యూనియన్"}\r
-        RO{"à°°à±\8bమానియా"}\r
+        RE{"à°°à±\80యూనియన్"}\r
+        RO{"à°°à±\8bà°®à±\87నియా"}\r
         RS{"సెర్బియా"}\r
         RU{"రష్యా"}\r
         RW{"రువాండా"}\r
@@ -241,21 +241,21 @@ te{
         SG{"సింగపూర్"}\r
         SH{"సెయింట్ హెలెనా"}\r
         SI{"స్లోవేనియా"}\r
-        SJ{"స్వాల్‌బార్డ్ & జాన్ మాయెన్"}\r
-        SK{"à°¸à±\8dà°²à±\8bవేకియా"}\r
+        SJ{"స్వాల్‌బార్డ్ మరియు జాన్ మాయెన్"}\r
+        SK{"à°¸à±\8dà°²à±\8aవేకియా"}\r
         SL{"సియెర్రా లియాన్"}\r
         SM{"శాన్ మారినో"}\r
         SN{"సెనెగల్"}\r
         SO{"సోమాలియా"}\r
         SR{"సూరినామ్"}\r
         SS{"దక్షిణ సూడాన్"}\r
-        ST{"సావోటోమ్ & ప్రిన్సిపే"}\r
+        ST{"సావో టోమ్ మరియు ప్రిన్సిపి"}\r
         SV{"ఎల్ సాల్వడోర్"}\r
         SX{"సింట్ మార్టెన్"}\r
         SY{"సిరియా"}\r
         SZ{"స్వాజిల్యాండ్"}\r
         TA{"ట్రిస్టన్ డ కన్హా"}\r
-        TC{"టర్క్స్ & కైకోస్ దీవులు"}\r
+        TC{"టర్క్స్ మరియు కైకోస్ దీవులు"}\r
         TD{"చాద్"}\r
         TF{"ఫ్రెంచ్ దక్షిణ ప్రాంతాలు"}\r
         TG{"టోగో"}\r
@@ -265,7 +265,7 @@ te{
         TL{"టిమోర్-లెస్టె"}\r
         TM{"టర్క్‌మెనిస్తాన్"}\r
         TN{"ట్యునీషియా"}\r
-        TO{"à°\9fà°¾ంగా"}\r
+        TO{"à°\9fà±\8bంగా"}\r
         TR{"టర్కీ"}\r
         TT{"ట్రినిడాడ్ మరియు టొబాగో"}\r
         TV{"టువాలు"}\r
@@ -279,13 +279,13 @@ te{
         UY{"ఉరుగ్వే"}\r
         UZ{"ఉజ్బెకిస్తాన్"}\r
         VA{"వాటికన్ నగరం"}\r
-        VC{"సెయింట్ విన్సెంట్ & గ్రెనడీన్స్"}\r
+        VC{"సెయింట్ విన్సెంట్ మరియు గ్రెనడీన్స్"}\r
         VE{"వెనిజులా"}\r
         VG{"బ్రిటిష్ వర్జిన్ దీవులు"}\r
         VI{"యు.ఎస్. వర్జిన్ దీవులు"}\r
         VN{"వియత్నాం"}\r
         VU{"వనాటు"}\r
-        WF{"వాలిసà±\8d & à°«à±\8dà°¯à±\81à°¤à±\8dà°¯ునా"}\r
+        WF{"వాలà±\8dలిసà±\8d à°®à°°à°¿à°¯à±\81 à°«à±\81à°\9fునా"}\r
         WS{"సమోవా"}\r
         XK{"కొసోవో"}\r
         YE{"యెమెన్"}\r
@@ -309,8 +309,8 @@ te{
         CI{"ఐవరీ కోస్ట్"}\r
         CZ{"చెక్ రిపబ్లిక్"}\r
         FK{"ఫాక్‌ల్యాండ్ దీవులు (ఇస్లాస్ మాల్వినాస్)"}\r
-        MK{"à°®à±\87సిడà±\8bనియా (FYROM)"}\r
+        MK{"à°ªà±\82à°°à±\8dà°µ à°°à°¿à°ªà°¬à±\8dలిà°\95à±\8d à°¯à±\81à°\97à±\8bà°¸à±\8dలావà±\8d à°®à±\87సిడà±\8bనియా"}\r
         TL{"తూర్పు టిమోర్"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.50"}\r
 }\r
index bc9b5359f34b136fab1befe0eb46ad413a627575..0df779d3f69b092df359e85ff89d8785d42b5c60 100644 (file)
@@ -260,5 +260,5 @@ tg{
         CG{"Конго"}\r
         MK{"Мақдун (ҶСЮМ)"}\r
     }\r
-    Version{"2.1.38.71"}\r
+    Version{"2.1.44.88"}\r
 }\r
index bf9a4cd1038622df8c8a5bc18f863b09cdf99835..7433708291285bdabc9767ce7163f42aaaa7cd19 100644 (file)
@@ -282,7 +282,7 @@ th{
         VC{"เซนต์วินเซนต์และเกรนาดีนส์"}\r
         VE{"เวเนซุเอลา"}\r
         VG{"หมู่เกาะบริติชเวอร์จิน"}\r
-        VI{"หมูà¹\88à¹\80à¸\81าะยูà¹\80อสà¹\80วอรà¹\8cà¸\88ิà¸\99"}\r
+        VI{"หมูà¹\88à¹\80à¸\81าะà¹\80วอรà¹\8cà¸\88ิà¸\99à¸\82อà¸\87สหรัà¸\90อà¹\80มริà¸\81า"}\r
         VN{"เวียดนาม"}\r
         VU{"วานูอาตู"}\r
         WF{"วาลลิสและฟุตูนา"}\r
@@ -296,7 +296,7 @@ th{
         ZZ{"ภูมิภาคที่ไม่รู้จัก"}\r
     }\r
     Countries%short{\r
-        GB{"อัà¸\87à¸\81ฤษ"}\r
+        GB{"สหราà¸\8aอาà¸\93าà¸\88ัà¸\81ร"}\r
         HK{"ฮ่องกง"}\r
         MO{"มาเก๊า"}\r
         PS{"ปาเลสไตน์"}\r
@@ -312,5 +312,5 @@ th{
         MK{"มาซิโดเนีย (FYROM)"}\r
         TL{"ติมอร์ตะวันออก"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.89"}\r
 }\r
index 0217b797cb5dda3196718278b07296abf83d7c96..26531ca9a2e1d9fa3e3108ee8a8e6fdcee19b776 100644 (file)
@@ -271,5 +271,5 @@ ti{
         CZ{"CZ"}\r
         MK{"መቄዶኒያ"}\r
     }\r
-    Version{"2.1.38.72"}\r
+    Version{"2.1.44.88"}\r
 }\r
diff --git a/source/data/region/tk.txt b/source/data/region/tk.txt
new file mode 100644 (file)
index 0000000..7b4fa6e
--- /dev/null
@@ -0,0 +1,315 @@
+// © 2016 and later: Unicode, Inc. and others.\r
+// License & terms of use: http://www.unicode.org/copyright.html#License\r
+tk{\r
+    Countries{\r
+        001{"Dünýä"}\r
+        002{"Afrika"}\r
+        003{"Demirgazyk Amerika"}\r
+        005{"Günorta Amerika"}\r
+        009{"Okeaniýa"}\r
+        011{"Günbatar Afrika"}\r
+        013{"Orta Amerika"}\r
+        014{"Gündogar Afrika"}\r
+        015{"Demirgazyk Afrika"}\r
+        017{"Orta Afrika"}\r
+        018{"Afrikanyň günorta sebitleri"}\r
+        019{"Amerika"}\r
+        021{"Amerikanyň demirgazyk ýurtlary"}\r
+        029{"Karib basseýni"}\r
+        030{"Gündogar Aziýa"}\r
+        034{"Günorta Aziýa"}\r
+        035{"Günorta-gündogar Aziýa"}\r
+        039{"Günorta Ýewropa"}\r
+        053{"Awstralaziýa"}\r
+        054{"Melaneziýa"}\r
+        057{"Mikroneziýa sebti"}\r
+        061{"Polineziýa"}\r
+        142{"Aziýa"}\r
+        143{"Merkezi Aziýa"}\r
+        145{"Günbatar Aziýa"}\r
+        150{"Ýewropa"}\r
+        151{"Gündogar Ýewropa"}\r
+        154{"Demirgazyk Ýewropa"}\r
+        155{"Günbatar Ýewropa"}\r
+        202{"Saharadan aşakdaky Afrika"}\r
+        419{"Latyn Amerikasy"}\r
+        AC{"Beýgeliş adasy"}\r
+        AD{"Andorra"}\r
+        AE{"Birleşen Arap Emirlikleri"}\r
+        AF{"Owganystan"}\r
+        AG{"Antigua we Barbuda"}\r
+        AI{"Angilýa"}\r
+        AL{"Albaniýa"}\r
+        AM{"Ermenistan"}\r
+        AO{"Angola"}\r
+        AQ{"Antarktika"}\r
+        AR{"Argentina"}\r
+        AS{"Amerikan Samoasy"}\r
+        AT{"Awstriýa"}\r
+        AU{"Awstraliýa"}\r
+        AW{"Aruba"}\r
+        AX{"Aland adalary"}\r
+        AZ{"Azerbaýjan"}\r
+        BA{"Bosniýa we Gersegowina"}\r
+        BB{"Barbados"}\r
+        BD{"Bangladeş"}\r
+        BE{"Belgiýa"}\r
+        BF{"Burkina-Faso"}\r
+        BG{"Bolgariýa"}\r
+        BH{"Bahreýn"}\r
+        BI{"Burundi"}\r
+        BJ{"Benin"}\r
+        BL{"Sen-Bartelemi"}\r
+        BM{"Bermuda"}\r
+        BN{"Bruneý"}\r
+        BO{"Boliwiýa"}\r
+        BQ{"Karib Niderlandlary"}\r
+        BR{"Braziliýa"}\r
+        BS{"Bagama adalary"}\r
+        BT{"Butan"}\r
+        BV{"Buwe adasy"}\r
+        BW{"Botswana"}\r
+        BY{"Belarus"}\r
+        BZ{"Beliz"}\r
+        CA{"Kanada"}\r
+        CC{"Kokos (Kiling) adalary"}\r
+        CD{"Kongo - Kinşasa"}\r
+        CF{"Merkezi Afrika Respublikasy"}\r
+        CG{"Kongo - Brazzawil"}\r
+        CH{"Şweýsariýa"}\r
+        CI{"Kot-d’Iwuar"}\r
+        CK{"Kuk adalary"}\r
+        CL{"Çili"}\r
+        CM{"Kamerun"}\r
+        CN{"Hytaý"}\r
+        CO{"Kolumbiýa"}\r
+        CP{"Klipperton adasy"}\r
+        CR{"Kosta-Rika"}\r
+        CU{"Kuba"}\r
+        CV{"Kabo-Werde"}\r
+        CW{"Kýurasao"}\r
+        CX{"Roždestwo adasy"}\r
+        CY{"Kipr"}\r
+        CZ{"Çehiýa"}\r
+        DE{"Germaniýa"}\r
+        DG{"Diýego-Garsiýa"}\r
+        DJ{"Jibuti"}\r
+        DK{"Daniýa"}\r
+        DM{"Dominika"}\r
+        DO{"Dominikan Respublikasy"}\r
+        DZ{"Alžir"}\r
+        EA{"Seuta we Melilýa"}\r
+        EC{"Ekwador"}\r
+        EE{"Estoniýa"}\r
+        EG{"Müsür"}\r
+        EH{"Günbatar Sahara"}\r
+        ER{"Eritreýa"}\r
+        ES{"Ispaniýa"}\r
+        ET{"Efiopiýa"}\r
+        EU{"Ýewropa Bileleşigi"}\r
+        EZ{"Ýewro sebiti"}\r
+        FI{"Finlýandiýa"}\r
+        FJ{"Fiji"}\r
+        FK{"Folklend adalary"}\r
+        FM{"Mikroneziýa"}\r
+        FO{"Farer adalary"}\r
+        FR{"Fransiýa"}\r
+        GA{"Gabon"}\r
+        GB{"Birleşen Patyşalyk"}\r
+        GD{"Grenada"}\r
+        GE{"Gruziýa"}\r
+        GF{"Fransuz Gwianasy"}\r
+        GG{"Gernsi"}\r
+        GH{"Gana"}\r
+        GI{"Gibraltar"}\r
+        GL{"Grenlandiýa"}\r
+        GM{"Gambiýa"}\r
+        GN{"Gwineýa"}\r
+        GP{"Gwadelupa"}\r
+        GQ{"Ekwatorial Gwineýa"}\r
+        GR{"Gresiýa"}\r
+        GS{"Günorta Georgiýa we Günorta Sendwiç adasy"}\r
+        GT{"Gwatemala"}\r
+        GU{"Guam"}\r
+        GW{"Gwineýa-Bisau"}\r
+        GY{"Gaýana"}\r
+        HK{"Gonkong AAS Hytaý"}\r
+        HM{"Herd we Makdonald adalary"}\r
+        HN{"Gonduras"}\r
+        HR{"Horwatiýa"}\r
+        HT{"Gaiti"}\r
+        HU{"Wengriýa"}\r
+        IC{"Kanar adalary"}\r
+        ID{"Indoneziýa"}\r
+        IE{"Irlandiýa"}\r
+        IL{"Ysraýyl"}\r
+        IM{"Men adasy"}\r
+        IN{"Hindistan"}\r
+        IO{"Britaniýanyň Hindi okeanyndaky territoriýalary"}\r
+        IQ{"Yrak"}\r
+        IR{"Eýran"}\r
+        IS{"Islandiýa"}\r
+        IT{"Italiýa"}\r
+        JE{"Jersi"}\r
+        JM{"Ýamaýka"}\r
+        JO{"Iordaniýa"}\r
+        JP{"Ýaponiýa"}\r
+        KE{"Keniýa"}\r
+        KG{"Gyrgyzystan"}\r
+        KH{"Kamboja"}\r
+        KI{"Kiribati"}\r
+        KM{"Komor adalary"}\r
+        KN{"Sent-Kits we Newis"}\r
+        KP{"Demirgazyk Koreýa"}\r
+        KR{"Günorta Koreýa"}\r
+        KW{"Kuweýt"}\r
+        KY{"Kaýman adalary"}\r
+        KZ{"Gazagystan"}\r
+        LA{"Laos"}\r
+        LB{"Liwan"}\r
+        LC{"Sent-Lýusiýa"}\r
+        LI{"Lihtenşteýn"}\r
+        LK{"Şri-Lanka"}\r
+        LR{"Liberiýa"}\r
+        LS{"Lesoto"}\r
+        LT{"Litwa"}\r
+        LU{"Lýuksemburg"}\r
+        LV{"Latwiýa"}\r
+        LY{"Liwiýa"}\r
+        MA{"Marokko"}\r
+        MC{"Monako"}\r
+        MD{"Moldowa"}\r
+        ME{"Montenegro"}\r
+        MF{"Sen-Marten"}\r
+        MG{"Madagaskar"}\r
+        MH{"Marşall adalary"}\r
+        MK{"Makedoniýa"}\r
+        ML{"Mali"}\r
+        MM{"Mýanma (Burma)"}\r
+        MN{"Mongoliýa"}\r
+        MO{"Makau AAS Hytaý"}\r
+        MP{"Demirgazyk Mariana adalary"}\r
+        MQ{"Martinika"}\r
+        MR{"Mawritaniýa"}\r
+        MS{"Monserrat"}\r
+        MT{"Malta"}\r
+        MU{"Mawrikiý"}\r
+        MV{"Maldiwler"}\r
+        MW{"Malawi"}\r
+        MX{"Meksika"}\r
+        MY{"Malaýziýa"}\r
+        MZ{"Mozambik"}\r
+        NA{"Namibiýa"}\r
+        NC{"Täze Kaledoniýa"}\r
+        NE{"Niger"}\r
+        NF{"Norfolk adasy"}\r
+        NG{"Nigeriýa"}\r
+        NI{"Nikaragua"}\r
+        NL{"Niderlandlar"}\r
+        NO{"Norwegiýa"}\r
+        NP{"Nepal"}\r
+        NR{"Nauru"}\r
+        NU{"Niue"}\r
+        NZ{"Täze Zelandiýa"}\r
+        OM{"Oman"}\r
+        PA{"Panama"}\r
+        PE{"Peru"}\r
+        PF{"Fransuz Polineziýasy"}\r
+        PG{"Papua - Täze Gwineýa"}\r
+        PH{"Filippinler"}\r
+        PK{"Pakistan"}\r
+        PL{"Polşa"}\r
+        PM{"Sen-Pýer we Mikelon"}\r
+        PN{"Pitkern adalary"}\r
+        PR{"Puerto-Riko"}\r
+        PS{"Palestina territoriýasy"}\r
+        PT{"Portugaliýa"}\r
+        PW{"Palau"}\r
+        PY{"Paragwaý"}\r
+        QA{"Katar"}\r
+        QO{"Daşky Okeaniýa"}\r
+        RE{"Reýunýon"}\r
+        RO{"Rumyniýa"}\r
+        RS{"Serbiýa"}\r
+        RU{"Russiýa"}\r
+        RW{"Ruanda"}\r
+        SA{"Saud Arabystany"}\r
+        SB{"Solomon adalary"}\r
+        SC{"Seýşel adalary"}\r
+        SD{"Sudan"}\r
+        SE{"Şwesiýa"}\r
+        SG{"Singapur"}\r
+        SH{"Keramatly Ýelena adasy"}\r
+        SI{"Sloweniýa"}\r
+        SJ{"Şpisbergen we Ýan-Maýen"}\r
+        SK{"Slowakiýa"}\r
+        SL{"Sýerra-Leone"}\r
+        SM{"San-Marino"}\r
+        SN{"Senegal"}\r
+        SO{"Somali"}\r
+        SR{"Surinam"}\r
+        SS{"Günorta Sudan"}\r
+        ST{"San-Tome we Prinsipi"}\r
+        SV{"Salwador"}\r
+        SX{"Sint-Marten"}\r
+        SY{"Siriýa"}\r
+        SZ{"Swazilend"}\r
+        TA{"Tristan-da-Kunýa"}\r
+        TC{"Terks we Kaýkos adalary"}\r
+        TD{"Çad"}\r
+        TF{"Fransuz günorta territoriýalary"}\r
+        TG{"Togo"}\r
+        TH{"Taýland"}\r
+        TJ{"Täjigistan"}\r
+        TK{"Tokelau"}\r
+        TL{"Timor-Leste"}\r
+        TM{"Türkmenistan"}\r
+        TN{"Tunis"}\r
+        TO{"Tonga"}\r
+        TR{"Türkiýe"}\r
+        TT{"Trinidad we Tobago"}\r
+        TV{"Tuwalu"}\r
+        TW{"Taýwan"}\r
+        TZ{"Tanzaniýa"}\r
+        UA{"Ukraina"}\r
+        UG{"Uganda"}\r
+        UM{"ABŞ-nyň daşarky adalary"}\r
+        UN{"Birleşen Milletler Guramasy"}\r
+        US{"Amerikanyň Birleşen Ştatlary"}\r
+        UY{"Urugwaý"}\r
+        UZ{"Özbegistan"}\r
+        VA{"Watikan"}\r
+        VC{"Sent-Winsent we Grenadinler"}\r
+        VE{"Wenesuela"}\r
+        VG{"Britan Wirgin adalary"}\r
+        VI{"ABŞ-nyň Wirgin adalary"}\r
+        VN{"Wýetnam"}\r
+        VU{"Wanuatu"}\r
+        WF{"Uollis we Futuna"}\r
+        WS{"Samoa"}\r
+        XK{"Kosowo"}\r
+        YE{"Ýemen"}\r
+        YT{"Maýotta"}\r
+        ZA{"Günorta Afrika"}\r
+        ZM{"Zambiýa"}\r
+        ZW{"Zimbabwe"}\r
+        ZZ{"Näbelli sebit"}\r
+    }\r
+    Countries%short{\r
+        GB{"Birleşen Patyşalyk"}\r
+        HK{"Gonkong"}\r
+        MO{"Makau"}\r
+        PS{"Palestina"}\r
+        US{"ABŞ"}\r
+    }\r
+    Countries%variant{\r
+        CD{"Kongo (KDR)"}\r
+        CG{"Kongo (Respublika)"}\r
+        CI{"Şirmaýy kenar"}\r
+        CZ{"Çeh Respublikasy"}\r
+        FK{"Folklend (Malwina) adalary"}\r
+        MK{"Makedoniýa (ÖÝR)"}\r
+        TL{"Gündogar Timor"}\r
+    }\r
+    Version{"2.1.43.65"}\r
+}\r
index c64c34e769f2265bcd7c8dfe30da51e4b065e54b..9cea1871606f67af6f96cde049820497147616a0 100644 (file)
@@ -184,7 +184,7 @@ to{
         MH{"ʻOtumotu Māsolo"}\r
         MK{"Masetōnia"}\r
         ML{"Māli"}\r
-        MM{"Pema"}\r
+        MM{"Mianimā (Pema)"}\r
         MN{"Mongokōlia"}\r
         MO{"Makau SAR Siaina"}\r
         MP{"ʻOtumotu Maliana tokelau"}\r
@@ -307,5 +307,5 @@ to{
         CZ{"Lepupelika Seki"}\r
         MK{"Masetōnia (FYROM)"}\r
     }\r
-    Version{"2.1.38.39"}\r
+    Version{"2.1.44.88"}\r
 }\r
index 5225da0f26c703cb2272fdeef4db19d2d8c46baf..f50459eda3657fb2998496acfdc25f1d85040f63 100644 (file)
@@ -98,7 +98,7 @@ tr{
         DM{"Dominika"}\r
         DO{"Dominik Cumhuriyeti"}\r
         DZ{"Cezayir"}\r
-        EA{"Septe ve Melilla"}\r
+        EA{"Ceuta ve Melilla"}\r
         EC{"Ekvador"}\r
         EE{"Estonya"}\r
         EG{"Mısır"}\r
@@ -311,5 +311,5 @@ tr{
         MK{"Makedonya (EYMC)"}\r
         TL{"Doğu Timor"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.91"}\r
 }\r
index 839c1db5269f91208597e910379a25024b410bf5..b34a79e3b1a50597a29bc7942b259d043bcd267a 100644 (file)
@@ -252,5 +252,5 @@ tt{
         CD{"Конго (КДР)"}\r
         MK{"Македония (Македония Элекке Югославия Республикасы)"}\r
     }\r
-    Version{"2.1.38.72"}\r
+    Version{"2.1.44.88"}\r
 }\r
index 0ba240915d59142cb399573aa2d6ef31e81b12d5..9d101e38c8073c5b6727ab054da292c78a0efe81 100644 (file)
@@ -306,5 +306,5 @@ ug{
         FK{"فالكلاند ئاراللىرى (ئىسلاس مالۋىناس)"}\r
         MK{"ماكېدونىيە (سابىق يۇگوسلاۋىيە ماكېدونىيە جۇمھۇرىيىتى)"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.88"}\r
 }\r
index 5bb68ed73409c186e7dadd8a99f1b8c4e029eb27..649238b13a6b1aa92977120b8fec95f69a4a7f9b 100644 (file)
@@ -12,7 +12,7 @@ uk{
         014{"Східна Африка"}\r
         015{"Північна Африка"}\r
         017{"Центральна Африка"}\r
-        018{"Ð\9fÑ\96вденна Ð\90Ñ\84Ñ\80ика"}\r
+        018{"Ð\9fÑ\96вденний Ñ\80егÑ\96он Ð\90Ñ\84Ñ\80ики"}\r
         019{"Америка"}\r
         021{"Північна Америка (регіон)"}\r
         029{"Карибський басейн"}\r
@@ -48,7 +48,7 @@ uk{
         AT{"Австрія"}\r
         AU{"Австралія"}\r
         AW{"Аруба"}\r
-        AX{"Ð\90ландÑ\81Ñ\8cкÑ\96 Ð¾строви"}\r
+        AX{"Ð\90ландÑ\81Ñ\8cкÑ\96 Ð\9eстрови"}\r
         AZ{"Азербайджан"}\r
         BA{"Боснія і Герцеґовина"}\r
         BB{"Барбадос"}\r
@@ -60,7 +60,7 @@ uk{
         BI{"Бурунді"}\r
         BJ{"Бенін"}\r
         BL{"Сен-Бартельмі"}\r
-        BM{"Ð\91еÑ\80мÑ\83дÑ\81Ñ\8cкÑ\96 Ð¾строви"}\r
+        BM{"Ð\91еÑ\80мÑ\83дÑ\81Ñ\8cкÑ\96 Ð\9eстрови"}\r
         BN{"Бруней"}\r
         BO{"Болівія"}\r
         BQ{"Нідерландські Карибські острови"}\r
@@ -72,12 +72,12 @@ uk{
         BY{"Білорусь"}\r
         BZ{"Беліз"}\r
         CA{"Канада"}\r
-        CC{"Кокосові (Кілінгові) острови"}\r
+        CC{"Кокосові (Кілінґ) Острови"}\r
         CD{"Конго – Кіншаса"}\r
         CF{"Центральноафриканська Республіка"}\r
         CG{"Конго – Браззавіль"}\r
         CH{"Швейцарія"}\r
-        CI{"Кот-дІвуар"}\r
+        CI{"Кот-дʼІвуар"}\r
         CK{"Острови Кука"}\r
         CL{"Чілі"}\r
         CM{"Камерун"}\r
@@ -110,7 +110,7 @@ uk{
         EZ{"Єврозона"}\r
         FI{"Фінляндія"}\r
         FJ{"Фіджі"}\r
-        FK{"ФолклендÑ\81Ñ\8cкÑ\96 Ð¾строви"}\r
+        FK{"ФолклендÑ\81Ñ\8cкÑ\96 Ð\9eстрови"}\r
         FM{"Мікронезія"}\r
         FO{"Фарерські Острови"}\r
         FR{"Франція"}\r
@@ -128,18 +128,18 @@ uk{
         GP{"Ґваделупа"}\r
         GQ{"Екваторіальна Гвінея"}\r
         GR{"Греція"}\r
-        GS{"Ð\9fÑ\96вденна Ð\94жоÑ\80джÑ\96Ñ\8f Ñ\82а Ð\9fÑ\96вденнÑ\96 Ð¡Ð°Ð½Ð´Ð²Ñ\96Ñ\87евÑ\96 Ð¾строви"}\r
+        GS{"Ð\9fÑ\96вденна Ð\94жоÑ\80джÑ\96Ñ\8f Ñ\82а Ð\9fÑ\96вденнÑ\96 Ð¡Ð°Ð½Ð´Ð²Ñ\96Ñ\87евÑ\96 Ð\9eстрови"}\r
         GT{"Ґватемала"}\r
         GU{"Ґуам"}\r
         GW{"Гвінея-Бісау"}\r
         GY{"Ґайана"}\r
         HK{"Гонконг, О.А.Р. Китаю"}\r
-        HM{"оÑ\81Ñ\82Ñ\80Ñ\96в Ð\93еÑ\80д Ñ\96 Ð¾Ñ\81Ñ\82Ñ\80ови Макдоналд"}\r
+        HM{"Ð\9eÑ\81Ñ\82Ñ\80ови Ð\93еÑ\80д Ñ\96 Макдоналд"}\r
         HN{"Гондурас"}\r
         HR{"Хорватія"}\r
         HT{"Гаїті"}\r
         HU{"Угорщина"}\r
-        IC{"Ð\9aанаÑ\80Ñ\81Ñ\8cкÑ\96 Ð¾строви"}\r
+        IC{"Ð\9aанаÑ\80Ñ\81Ñ\8cкÑ\96 Ð\9eстрови"}\r
         ID{"Індонезія"}\r
         IE{"Ірландія"}\r
         IL{"Ізраїль"}\r
@@ -158,12 +158,12 @@ uk{
         KG{"Киргизстан"}\r
         KH{"Камбоджа"}\r
         KI{"Кірібаті"}\r
-        KM{"Коморські острови"}\r
+        KM{"Комори"}\r
         KN{"Сент-Кітс і Невіс"}\r
         KP{"Північна Корея"}\r
         KR{"Південна Корея"}\r
         KW{"Кувейт"}\r
-        KY{"Ð\9aаймановÑ\96 Ð¾строви"}\r
+        KY{"Ð\9aаймановÑ\96 Ð\9eстрови"}\r
         KZ{"Казахстан"}\r
         LA{"Лаос"}\r
         LB{"Ліван"}\r
@@ -241,7 +241,7 @@ uk{
         SG{"Сінгапур"}\r
         SH{"Острів Святої Єлени"}\r
         SI{"Словенія"}\r
-        SJ{"Шпіцберґен і Ян-Майен"}\r
+        SJ{"Шпіцберген та Ян-Маєн"}\r
         SK{"Словаччина"}\r
         SL{"Сьєрра-Леоне"}\r
         SM{"Сан-Маріно"}\r
@@ -308,10 +308,10 @@ uk{
         CG{"Конго (Республіка)"}\r
         CI{"Берег Слонової Кістки"}\r
         CZ{"Чеська Республіка"}\r
-        FK{"ФолклендÑ\81Ñ\8cкÑ\96 (Ð\9cалÑ\8cвÑ\96нÑ\81Ñ\8cкÑ\96) Ð¾строви"}\r
+        FK{"ФолклендÑ\81Ñ\8cкÑ\96 (Ð\9cалÑ\8cвÑ\96нÑ\81Ñ\8cкÑ\96) Ð\9eстрови"}\r
         FM{"Федеративні Штати Мікронезії"}\r
         MK{"Македонія (КЮРМ)"}\r
         TL{"Східний Тимор"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.65"}\r
 }\r
index 94765350a4cb655496d4cc2f2461602a3c67c374..b2ac4375aebed384700f257473fd76ba10e344bf 100644 (file)
@@ -31,7 +31,7 @@ ur{
         151{"مشرقی یورپ"}\r
         154{"شمالی یورپ"}\r
         155{"مغربی یورپ"}\r
-        202{"سÙ\8eب صحارن افریقہ"}\r
+        202{"Ø°Û\8cÙ\84Û\8c صحارن افریقہ"}\r
         419{"لاطینی امریکہ"}\r
         AC{"اسینشن آئلینڈ"}\r
         AD{"انڈورا"}\r
@@ -312,5 +312,5 @@ ur{
         MK{"مقدونیہ (FYROM)"}\r
         TL{"مشرقی تیمور"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.3"}\r
 }\r
index ce847b648d6aa3a43057e31d4492706066b2ebd4..ee1821738d389191305930d2fb5be876832101ec 100644 (file)
@@ -29,5 +29,5 @@ ur_IN{
     Countries%variant{\r
         FK{"جزائر فاکلینڈ (اسلاس مالویناس)"}\r
     }\r
-    Version{"2.1.38.39"}\r
+    Version{"2.1.43.65"}\r
 }\r
index 5bbed28ab7216f1ef60597162e268bb6801d0cbf..1bdb9c6c251b58e6eee1a6dfaf184e5f3ff7ea73 100644 (file)
@@ -312,5 +312,5 @@ uz{
         MK{"Makedoniya (SYRM)"}\r
         TL{"Sharqiy Timor"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.88"}\r
 }\r
index da858ebc0f1e089cd2362cd1450abb7ced839090..946bb570f7da65f6ea95a161162923465989662e 100644 (file)
@@ -309,5 +309,5 @@ uz_Cyrl{
         MK{"Македония (МСЮР)"}\r
         TL{"Шарқий Тимор"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.2"}\r
 }\r
index ff9caafc5f198c83216d01f4da6da0263fc17f8a..6bbffe3a8d2ba5bc79899bd0b8eb998c9a1b06ed 100644 (file)
@@ -145,7 +145,7 @@ vi{
         IL{"Israel"}\r
         IM{"Đảo Man"}\r
         IN{"Ấn Độ"}\r
-        IO{"Lãnh thá»\95 áº¤n Ä\91á»\99 dương thuộc Anh"}\r
+        IO{"Lãnh thá»\95 áº¤n Ä\90á»\99 Dương thuộc Anh"}\r
         IQ{"Iraq"}\r
         IR{"Iran"}\r
         IS{"Iceland"}\r
@@ -312,5 +312,5 @@ vi{
         MK{"Macedonia (FYROM)"}\r
         TL{"Đông Timor"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.65"}\r
 }\r
index ccaa1f4af7bc5d0b0c17a898e3f04e22e5db498a..f8578c949f3852e264aa2cb63891af98abd87359 100644 (file)
@@ -255,5 +255,5 @@ wo{
         CG{"Réewum Kongo"}\r
         MK{"Maseduwaan (Réewum yugoslawi gu yàgg ga)"}\r
     }\r
-    Version{"2.1.38.71"}\r
+    Version{"2.1.43.94"}\r
 }\r
diff --git a/source/data/region/xh.txt b/source/data/region/xh.txt
new file mode 100644 (file)
index 0000000..c6aff09
--- /dev/null
@@ -0,0 +1,8 @@
+// © 2016 and later: Unicode, Inc. and others.\r
+// License & terms of use: http://www.unicode.org/copyright.html#License\r
+xh{\r
+    Countries{\r
+        ZA{"eMzantsi Afrika"}\r
+    }\r
+    Version{"2.1.44.88"}\r
+}\r
index 69c04623311f66a17d0ba49bf6faf8219b79b642..65d0eab8deb3119f646b3dd4ed1da3f2b732cec5 100644 (file)
@@ -227,5 +227,5 @@ yo{
         ZM{"Orílẹ́ède ṣamibia"}\r
         ZW{"Orílẹ́ède ṣimibabe"}\r
     }\r
-    Version{"2.1.39.11"}\r
+    Version{"2.1.44.88"}\r
 }\r
index 927492b9096e503cdb37825cf191a5a87e14bd73..1fe08349e95d5bc4d60e0fdc6dda35990192edb2 100644 (file)
@@ -226,5 +226,5 @@ yo_BJ{
         ZM{"Orílɛ́ède shamibia"}\r
         ZW{"Orílɛ́ède shimibabe"}\r
     }\r
-    Version{"2.1.39.11"}\r
+    Version{"2.1.44.53"}\r
 }\r
index fff0f8f52429e89d0dccaf4a246d3cffbbb20c35..5f7786be2b514d73235011edecee7fe46998da66 100644 (file)
@@ -31,6 +31,7 @@ yue{
         151{"東歐"}\r
         154{"北歐"}\r
         155{"西歐"}\r
+        202{"撒哈拉以南非洲"}\r
         419{"拉丁美洲"}\r
         AC{"阿森松島"}\r
         AD{"安道爾"}\r
@@ -308,5 +309,5 @@ yue{
         FK{"福克蘭群島 (馬爾維納斯群島)"}\r
         MK{"前南斯拉夫馬其頓共和國"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.91"}\r
 }\r
index 286a6b471a65b4065df95c94f9eb8a5a95f08d5e..8dff03ca01a41d6e11a77b292f70a3c0d27492e2 100644 (file)
@@ -32,6 +32,7 @@ yue_Hans{
         151{"东欧"}\r
         154{"北欧"}\r
         155{"西欧"}\r
+        202{"撒哈拉以南非洲"}\r
         419{"拉丁美洲"}\r
         AC{"阿森松岛"}\r
         AD{"安道尔"}\r
@@ -309,5 +310,5 @@ yue_Hans{
         FK{"福克兰群岛 (马尔维纳斯群岛)"}\r
         MK{"前南斯拉夫马其顿共和国"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.91"}\r
 }\r
index 35cdbc40a5534a6718864bc6be6e80e52567d9af..803d53712c74993f50d2be1c23ca1c7f6e77e990 100644 (file)
@@ -230,5 +230,5 @@ zgh{
         ZM{"ⵣⴰⵎⴱⵢⴰ"}\r
         ZW{"ⵣⵉⵎⴱⴰⴱⵡⵉ"}\r
     }\r
-    Version{"2.1.39.11"}\r
+    Version{"2.1.43.94"}\r
 }\r
index 8c2bdbc9c79dc2bd22457333514f756b6de44e01..c108738f1f19affd8ce3bb35a0a1e53e2a19b1b1 100644 (file)
@@ -311,5 +311,5 @@ zh{
         FK{"福克兰群岛(马尔维纳斯群岛)"}\r
         MK{"马其顿(前南斯拉夫马其顿共和国)"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.76"}\r
 }\r
index 2116e60be91755fbcaaa9e641b4566a7198c97df..69662807688d2d58c8c6966476e436f356a135d5 100644 (file)
@@ -311,5 +311,5 @@ zh_Hant{
         FK{"福克蘭群島(馬爾維納斯群島)"}\r
         MK{"前南斯拉夫馬其頓共和國"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.91"}\r
 }\r
index b40633683928874b16a062b4f9286113e8fea80b..b0e15a17d183c36de18e045376e12525a5c1ec81 100644 (file)
@@ -9,7 +9,7 @@ zh_Hant_HK{
         AE{"阿拉伯聯合酋長國"}\r
         AG{"安提瓜和巴布達"}\r
         AW{"阿魯巴"}\r
-        AZ{"塞拜疆"}\r
+        AZ{"塞拜疆"}\r
         BA{"波斯尼亞和黑塞哥維那"}\r
         BB{"巴巴多斯"}\r
         BF{"布基納法索"}\r
@@ -19,13 +19,14 @@ zh_Hant_HK{
         BV{"鮑威特島"}\r
         BW{"博茨瓦納"}\r
         BZ{"伯利茲"}\r
-        CC{"可可斯群島"}\r
+        CC{"科科斯 (基林) 群島"}\r
         CI{"科特迪瓦"}\r
         CP{"克里珀頓島"}\r
         CR{"哥斯達黎加"}\r
         CV{"佛得角"}\r
         CY{"塞浦路斯"}\r
         DJ{"吉布提"}\r
+        DO{"多米尼加共和國"}\r
         EC{"厄瓜多爾"}\r
         ER{"厄立特里亞"}\r
         ET{"埃塞俄比亞"}\r
@@ -42,14 +43,13 @@ zh_Hant_HK{
         HR{"克羅地亞"}\r
         IM{"馬恩島"}\r
         IT{"意大利"}\r
-        KE{"肯"}\r
+        KE{"肯尼亞"}\r
         KM{"科摩羅"}\r
         KN{"聖基茨和尼維斯"}\r
         LA{"老撾"}\r
         LC{"聖盧西亞"}\r
         LI{"列支敦士登"}\r
         LR{"利比里亞"}\r
-        LV{"拉脱維亞"}\r
         ME{"黑山"}\r
         ML{"馬里"}\r
         MR{"毛里塔尼亞"}\r
@@ -98,5 +98,5 @@ zh_Hant_HK{
     Countries%variant{\r
         CI{"象牙海岸"}\r
     }\r
-    Version{"2.1.39.11"}\r
+    Version{"2.1.43.65"}\r
 }\r
index 43c2f1f45a41dee0d6669abce396f5ec420b8f05..953afbf50b5cfd694381003a87b807ac6e7bab64 100644 (file)
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 zh_Hant_MO{\r
     %%Parent{"zh_Hant_HK"}\r
-    Version{"2.1.38.39"}\r
+    Version{"2.1.43.65"}\r
 }\r
index ebd28a1aa3da80d7ba881e23f0cbd1b0373c3ff6..cb01689de9749ba8d179eca57c16d877b32a8ef9 100644 (file)
@@ -312,5 +312,5 @@ zu{
         MK{"i-Macedonia (FYROM)"}\r
         TL{"i-East Timor"}\r
     }\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.65"}\r
 }\r
index a60a16df555206cd0d02baed98e49e17638e3101..1318710cf7a0226188303c50bef2ce3c7e43e2be 100644 (file)
@@ -2589,7 +2589,9 @@ $SCDigit { 出 } 戏 → 齣;
 睑↔瞼;\r
 眬↔矓;\r
 瞩↔矚;\r
+真←眞;\r
 矫↔矯;\r
+研←硏;\r
 硁↔硜;\r
 硖↔硤;\r
 砗↔硨;\r
index 68869b99ee98dd9c14adadde0b42ef29f8569c8c..517797bdc6f77287cb38679ce56fce2b51ea04f0 100644 (file)
 $nondigits = [^\u1040-\u1049];\r
 $consonant = [\u1000-\u1021];\r
 $vowelsign = [\u102B-\u1030\u1032];  # Unicode vowel signs except E (1031)\r
+$vowelsAndConsonants = [\u1000-\u102a];\r
 $umedial = [\u103B-\u103E];    # Medial codepoints in Unicode\r
-$vowelmedial = [\u102B-\u1030\u1032\u103B-\u103F];  # Union of vowel signs and medials\r
+$vowelmedial = [\u102B-\u1030\u1032\1u36\u1037\u103A-\u103F];  # Union of vowel signs and medials\r
 $ukinzi = \u1004\u103A\u1039;  # Codepoints representing kinzi in Unicode\r
-# ZAWGYI MYANMAR CONSONANT SIGN MEDIAL RA\r
-# This character has multiple representations in the Zawgyi font.\r
+# Zawgyi medial ra has multiple representations\r
 $zmedialra = [\u103B\u107E-\u1084];\r
+$wspace = [\u0020\u00a0\u1680\u2000-\u200d\u2060\u202f\u205f\u3000\ufeff];\r
 ####\r
 #### STAGE 1: CODEPOINT MAPPING FROM ZAWGYI TO UNICODE\r
 ####\r
@@ -33,14 +34,13 @@ $zmedialra = [\u103B\u107E-\u1084];
 ($consonant) \u103A \u1064 → $ukinzi $1 \u103B;\r
 ($consonant) \u1064 → $ukinzi $1;\r
 \u1064 → $ukinzi;\r
-# Special cases moving base character to right before\r
-($consonant) \u108b → $ukinzi $1 \u102D;\r
+# Special cases moving base character to right before vowel signs\r
+($consonant) \u108B → $ukinzi $1 \u102D;\r
 ($consonant) \u108C → $ukinzi $1 \u102E;\r
 ($consonant) \u108D → $ukinzi $1 \u1036;\r
 # Special cases moving Kinzi block to left\r
 ($consonant) \u103A \u1033 \u108B → $ukinzi $1 \u103B \u102D \u102F;\r
 ($consonant) \u103A \u108b → $ukinzi $1 \u103B \u102D ;\r
-($consonant) \u103A \u108C \u1033 → $ukinzi $1 \u103B \u102E \u102F;\r
 ($consonant) \u103A \u108C → $ukinzi $1 \u103B \u102E ;\r
 ($consonant) \u103A \u108D → $ukinzi $1 \u103B \u1036 ;\r
 ($consonant) \u103A \u108e → $1 \u103B \u102D \u1036 ;\r
@@ -48,37 +48,31 @@ $zmedialra = [\u103B\u107E-\u1084];
 \u108C → $ukinzi \u102E ;\r
 \u108D → $ukinzi \u1036 ;\r
 # Consonants (only the ones that have to change)\r
-\u106A ($vowelsign) \u1038 → \u1025 $1 \u1038 ;  # U sound\r
 \u106A → \u1009 ;  # NYA\r
 \u106B → \u100A ;\r
 \u108F → \u1014 ;\r
 \u1090 → \u101B ;\r
 \u1086 → \u103F ;\r
 # yapin\r
-\u103A → \u103B ;\r
-\u107D → \u103B ;\r
+[\u103A|\u107d] → \u103B ;\r
+# yayit\r
+($zmedialra)+ → \u103C ;\r
 # wasway\r
-\u103C \u108A → \u103D \u103E;  # To avoid duplicate medials\r
+\u103C* \u108A → \u103D \u103E;  # To avoid duplicate medials\r
 \u103C → \u103D ;\r
-\u108A → \u103D \u103E ;\r
 # hatoh\r
-\u103D → \u103E ;\r
-\u1087 → \u103E ;\r
+[\u103D|\u1087] → \u103E ;\r
 \u1088 → \u103E \u102F ;\r
 \u1089 → \u103E \u1030 ;\r
-# asat\r
-\u1039 → \u103A ;\r
 # Vowels\r
 \u1033 → \u102F ;\r
 \u1034 → \u1030 ;\r
-\u105A → \u102B \u103A ;\r
-\u108E → \u102D \u1036 ;\r
-# lDot\r
-# Special cases to move dot to right of base consonant\r
-\u1031 \u1094 ($consonant) \u103D → $1 \u103E \u1031 \u1037 ;\r
-\u1094 → \u1037 ;\r
-\u1095 → \u1037 ;\r
-# Special cases for 1025 vs 1009\r
+# asat\r
+\u1039 → \u103A ;\r
+# lower dot\r
+[\u1094\u1095] → \u1037 ;\r
+# Special cases for 1025 vs 1009;\r
+\u1025 \u1039 → \u1009 \u103a;\r
 \u1025 \u1061 → \u1009 \u1039 \u1001;\r
 \u1025 \u1062 → \u1009 \u1039 \u1002;\r
 \u1025 \u1065 → \u1009 \u1039 \u1005;\r
@@ -87,35 +81,32 @@ $zmedialra = [\u103B\u107E-\u1084];
 \u1025 \u1078 → \u1009 \u1039 \u1015;\r
 \u1025 \u107A → \u1009 \u1039 \u1017;\r
 \u1025 \u1079 → \u1009 \u1039 \u1016;\r
-($consonant) \u103A \u1039 → $1 \u103A \u103B;\r
 # Stacked Consonants\r
+\u105A → \u102B \u103A ;\r
 \u1060 → \u1039 \u1000 ;\r
 \u1061 → \u1039 \u1001 ;\r
 \u1062 → \u1039 \u1002 ;\r
 \u1063 → \u1039 \u1003 ;\r
 \u1065 → \u1039 \u1005 ;\r
-\u1066 → \u1039 \u1006 ;\r
-\u1067 → \u1039 \u1006 ;\r
+[\u1066\u1067] → \u1039 \u1006 ;\r
 \u1068 → \u1039 \u1007 ;\r
 \u1069 → \u1039 \u1008 ;\r
 \u106C → \u1039 \u100B ;\r
 \u106D → \u1039 \u100C ;\r
 \u1070 → \u1039 \u100F ;\r
-\u1071 → \u1039 \u1010 ;\r
-\u1072 → \u1039 \u1010 ;\r
+[\u1071\u1072] → \u1039 \u1010 ;\r
 \u1096 → \u1039 \u1010 \u103D;\r
-\u1073 → \u1039 \u1011 ;\r
-\u1074 → \u1039 \u1011 ;\r
+[\u1073\u1074] → \u1039 \u1011 ;\r
 \u1075 → \u1039 \u1012 ;\r
 \u1076 → \u1039 \u1013 ;\r
 \u1077 → \u1039 \u1014 ;\r
 \u1078 → \u1039 \u1015 ;\r
 \u1079 → \u1039 \u1016 ;\r
 \u107A → \u1039 \u1017 ;\r
-\u107B → \u1039 \u1018 ;\r
-\u1093 → \u1039 \u1018 ;\r
+[\u107B\u1093] → \u1039 \u1018 ;\r
 \u107C → \u1039 \u1019 ;\r
 \u1085 → \u1039 \u101C ;\r
+\u108E → \u102D \u1036 ;\r
 # Pre-defined ligatures\r
 \u106E → \u100D\u1039\u100D ;\r
 \u106F → \u100D\u1039\u100E ;\r
@@ -123,41 +114,59 @@ $zmedialra = [\u103B\u107E-\u1084];
 \u1092 → \u100B\u1039\u100C ;\r
 \u1097 → \u100B\u1039\u100B ;\r
 \u104E → \u104E\u1004\u103A\u1038 ;\r
-# yayit\r
-$zmedialra → \u103C ;\r
 ####\r
-#### STAGE 2: POST REORDERING RULES FOR UNICODE RENDERING\r
-#### Now every codepoint is Unicode.  This starts conversion\r
-#### from semi-visual order to logical order.\r
-####\r
-::Null;\r
+#### STAGE 1.01: Digits 0 and 4 used instead of letters\r
 # Case of MYANMAR digit being used instead of a letter\r
-# Lone digit zero\r
-[$] \u1040 ($nondigits) → \u101D $1;\r
-([\u102b-\u103f]) \u1040 ($nondigits) → $1 \u101d $2;\r
-# Lone digit 4\r
+# Lone digit zero and four at start\r
+::Null;\r
+^ \u1040 ($nondigits) → \u101D $1;\r
 ^ \u1044 ($nondigits) → | \u104E $1 ;\r
+# Lone digit zero or four at end\r
+($nondigits) \u1040 $ → $1 \u101D;\r
+($nondigits) \u1044 $ → $1 \u104e;\r
+# Evowel and dependent vowel signs before 0 or 4 only\r
+#   -> convert to the consonant.\r
+([\u102b-\u103f]) \u1040 ($nondigits) → $1 \u101d $2;\r
 ([\u102b-\u103f]) \u1044 ($nondigits) → $1 \u104E $2;\r
+####\r
+#### STAGE 1.1: Strip spaces immediately before combining characters.\r
+####   Move e-vowel after consonants and medials\r
+####   Now every codepoint is Unicode. This starts conversion\r
+####   from semi-visual order to logical order.\r
+####\r
+::Null;\r
+# Don't remove spaces before E vowel or medial Ra at this stage\r
+($wspace) \u1037 > \u1037 $1;\r
+($wspace+) ([\u102b-\u1030\u1032-\u103b\u103d\u103e]) → $2;\r
+# Remove a duplicate early\r
+\u1037+ → \u1037;\r
+# Move e-vowel after medials and consonants.\r
+\u1031+ $ukinzi ($consonant) > $ukinzi $1 \u1031;\r
+\u1031+ \u1037+ ($consonant) > $1 \u1031 \u1037 ;\r
+\u1031+ \u103c ($consonant) > $1 \u103c \u1031;\r
+# Move medials other than 103c before the 1031. Leave 103c for\r
+# the next consonant.\r
+\u1031+ ($consonant) ([\u103b\u103d\u103e]+) > $1 $2 \u1031;\r
+\u1031+ ($vowelsAndConsonants) > $1 \u1031;\r
+####\r
+#### STAGE 2: POST REORDERING RULES FOR UNICODE RENDERING\r
+####\r
+::Null;\r
+\u103b \u103a > \u103a \u103b;\r
 # Simpler replacements for Zawgyi 1025\r
-\u1025 \u103A → \u1009 \u103A;\r
 \u1025 \u102E → \u1026;\r
 # Asat and dot below reordering, to Unicode NFC.\r
 \u103A\u1037 → \u1037\u103A;\r
 # Reorder some vowel signs\r
 \u1036 ($umedial*) ($vowelsign+) → $1 $2 \u1036 ;\r
 ([\u102B\u102C\u102F\u1030]) ([\u102D\u102E\u1032]) → $2 $1;\r
-# Move ra medial, but not others.\r
+# Move ra medial which precedes consonant, but not other medials.\r
 \u103C ($consonant) → $1 \u103C;\r
-# Replace CA + YA with JHA\r
-\u1005\u103b → \u1008;\r
 ####\r
 #### Stage 3\r
-#### Move \u1031, \u1036, and \u103C after consonants.\r
+#### Move \u1036, and \u103C after consonants.\r
 ::Null;\r
-# 1031 moved after consonant, with and without kinzi or medials\r
-([\u1031]+) $ukinzi ($consonant) → $ukinzi $2 $1;\r
-([\u1031]+) ($consonant) ($umedial+) → $2 $3 $1;\r
-([\u1031]+) ($consonant) } [^\u103B\u103C\u103D\u103E] → $2 $1;\r
+($umedial) \u1039 ($consonant) > \u1039 $2 $1;\r
 \u103C \u103A \u1039 ($consonant) → \u103A \u1039 $1 \u103C;\r
 \u1036 ($umedial+) → $1 \u1036;\r
 ####\r
@@ -174,8 +183,7 @@ $zmedialra → \u103C ;
 # Move vowel sign E \u1031 after medials, but not across consonants\r
 ($umedial*) ([\u1031]+) ($umedial*) → $1 $3 $2;\r
 # Reorder dot below after medials and vowel diacritics\r
-\u1037 ([\u102D-\u1030\u1032\u1036]) → $1 \u1037;\r
-\u1037 ($umedial+) → $1 \u1037;\r
+\u1037 ([\u102D-\u1030\u1032\u1036\u103b-\u103e]+) → $1 \u1037;\r
 # Move vowel signs after medials\r
 ($vowelsign+) ($umedial+) → $2 $1;\r
 # Reorder modifiers and asat\r
@@ -185,32 +193,45 @@ $zmedialra → \u103C ;
 #### Vowel signs after medials, sort medials,\r
 ####\r
 ::Null;\r
-([\u1031]+) ($umedial+) → $2 $1;\r
+# Replace CA + YA with JHA after moving other things beyond the medials.\r
+\u1005 \u103b → \u1008;\r
 # More moving vowel signs after medials\r
-($vowelsign) ($umedial) → $2 $1;\r
+([\u102b-\u1032]) ($umedial) → $2 $1;\r
 # Sort the medials\r
 ([\u103C\u103D\u103E]) \u103B → \u103B $1;\r
 ([\u103D\u103E]) \u103C → \u103C $1;\r
 \u103E\u103D → \u103D\u103E ;\r
-# Move visarga (\u1038) after other signs\r
-\u1038 ([$vowelmedial]) → $1 \u1038;\r
-\u1038 ([\u1036\u1037\u103A]) → $1 \u1038;\r
+# Move visarga after other signs\r
+\u1038 ($vowelmedial) → $1 \u1038;\r
 # Reorder\r
 \u1036 \u102f → \u102f \u1036;\r
 ###\r
 ### Stage 6\r
-### Finish medial sorting, fix conflicting and extra diacritics\r
+### Finish conflicting and extra diacritics. Remove some white space\r
 ###\r
 ::Null;\r
-# Fix duplicate and overlapping modifiers.\r
+# Fix duplicate combiners\r
+\u102D \u102D+ → \u102D;\r
+\u102E \u102E+ → \u102E;\r
 \u102F \u102F+ → \u102F;\r
-\u102F \u1030 → \u102F;\r
-\u102F \u103A → \u102F;\r
-\u102D \u102E → \u102E;\r
+\u1030 \u1030+ → \u1030;\r
+\u1032 \u1032+ → \u1032;\r
 \u1036 \u1036+ → \u1036;\r
+\u1037 \u1037+ → \u1037;\r
+\u1039 \u1039+ → \u1039;\r
+\u103a \u103a+ → \u103a;\r
+\u103b \u103b+ → \u103b;\r
+\u103c \u103c+ → \u103c;\r
+\u103d \u103d+ → \u103d;\r
 \u103e \u103e+ → \u103e; # http://unicode.org/cldr/trac/ticket/10386\r
+# Fix overlapping signs\r
+\u102F [\u1030\u103a] → \u102F;\r
+\u102D \u102E → \u102E;\r
 # Remove space directly before diacritics.\r
-[:WSpace:] ([\u102b-\u1032\u1036-\u103e]) → $1;\r
-# Fix 103B/103A order for asat.\r
-($consonant) \u103B \u103A → $1 \u103A \u103B;\r
+($wspace)+ ([\u102b-\u1032\u1036-\u103e]) → $2;\r
+# Remove ZWSP at start and end\r
+^ \u200b+ → ;\r
+\u200b+ $ → ;\r
+# Fix multiple spaces around ZWSP to single ZWSP.\r
+$wspace* \u200b $wspace* → \u200b;\r
 \r
diff --git a/source/data/translit/my_Zawgyi.txt b/source/data/translit/my_Zawgyi.txt
new file mode 100644 (file)
index 0000000..2bcfde9
--- /dev/null
@@ -0,0 +1,224 @@
+# © 2016 and later: Unicode, Inc. and others.\r
+# License & terms of use: http://www.unicode.org/copyright.html#License\r
+#\r
+# File: my_Zawgyi.txt\r
+# Generated from CLDR\r
+#\r
+\r
+# This transform converts Unicode Burmese text into Zawgyi font encoded\r
+# form. Zawgyi is a popular, non-standard encoding scheme in Myanmar\r
+# that uses the same code range as Myanmar Unicode but assigns different\r
+# characters or glyphs to some codepoints. In addition to character remapping,\r
+# context-based reordering of codepoints is needed to give readable\r
+# output when the output is displayed with a Zawgyi font such as\r
+# ZawgyiOne.ttf or ZawgyiOne2008.ttf.\r
+#\r
+# The transform is done in two main stages:\r
+# (1) Map all Unicode codepoints to their Zawgyi counterparts.\r
+# (2) Perform reordering.\r
+# Modern Burmese digits & Unicode code points.\r
+$nondigits = [^\u1040-\u1049];\r
+$consonant = [\u1000-\u1021];\r
+$narrowconsonant = [\u1001\u1002\u1004\u1005\u1007\u100b-\u100e\u1012\u1013\u1015-\u1017\u1019\u101d\u1020\u1025\u1026\u108f];\r
+$wideconsonant = [\u1000\u1003\u1006\u1009\u100a\u100f\u1010\u1011\u1018\u101c\u101e\u101f\u1021];\r
+$widenya = [\u100a\u106b];\r
+$othernya = [\u1009\u106a];\r
+$vowelsign = [\u102B-\u1030\u1032];\r
+$vowelmedial = [\u102B-\u1030\u1032\u103c-\u103F];\r
+$ukinzi = [\u1004\u101b\u105a]\u103A\u1039;\r
+$medialraZ = [\u103b\u107e-\u1084];\r
+$lowsignZ = [\u102f\u1030\u1037\u103a\u103c\u103d\u1087-\u108a];\r
+$highsignZ = [\u102d\u102e\u1032\u1036\u1039\u103d-\u103e\u1064];\r
+$subscriptitem = [\u1060-\u1063\u1064-\u1068\u106c\u106d\u1070-\u107c\u1085\u1093\u1096];\r
+$vowelsAndConsonants = [\u1000-\u102a];\r
+#### Phase 0: CODEPOINT MAPPING FROM UNICODE TO ZAWGYI\r
+$ukinzi ($consonant) \u103B > $1 \u103A \u1064 ;\r
+$ukinzi ($consonant) \u102D \u1036 > $1 \u108e ;\r
+$ukinzi ($consonant) \u102D > $1 \u108b ;\r
+$ukinzi ($consonant) \u102E > $1 \u108C ;\r
+$ukinzi ($consonant) \u1036 > $1 \u108D ;\r
+$ukinzi ($consonant) \u1031 > $1 \u1031 \u1064 ;\r
+$ukinzi ($consonant) \u103B \u102D \u102F > $1 \u103A \u1033 \u108B ;\r
+$ukinzi ($consonant) \u103B \u102D > $1 \u103A \u108b  ;\r
+$ukinzi ($consonant) \u103B \u102E \u102F > $1 \u103A \u108C \u1033 ;\r
+$ukinzi ($consonant) \u103B \u102E > $1 \u103A \u108C ;\r
+$ukinzi ($consonant) \u103B \u1036 > $1 \u103A \u108D ;\r
+$ukinzi ($consonant) \u103c > $1 \u103b \u1064; # Kinzi + medial ra\r
+$ukinzi \u102D > \u108B ;\r
+$ukinzi \u102E  > \u108C  ;\r
+$ukinzi \u1036 > \u108D  ;\r
+$ukinzi ($consonant) > $1 \u1064 ;\r
+\u1025 ($vowelsign) \u1038  > \u106A $1 \u1038 ;\r
+\u1025 \u102f \u1036  > \u1025 \u1036 \u1033 ;\r
+\u102D \u1036 > \u108E  ;\r
+# Some composed lower output\r
+\u103d \u103e > \u108a ;\r
+\u103e \u102f > \u1088 ;\r
+\u103E \u1030 > \u1089 ;\r
+\u103A > \u1039 ;\r
+\u103B > \u103A ;\r
+\u103C > \u103B ;\r
+\u103D > \u103C ;\r
+\u103E  > \u103D ;\r
+\u103F > \u1086 ;\r
+([\u1019]) \u103e \u1030 > $1 \u103d \u1034;  # A special case with signs.\r
+\u102B \u103A > \u105A ;\r
+\u1039 \u1010 \u103d > \u1096 ; # Very special case\r
+\u1039 \u1000 > \u1060 ;\r
+\u1039 \u1001 > \u1061 ;\r
+\u1039 \u1002 > \u1062 ;\r
+\u1039 \u1003 > \u1063 ;\r
+\u1039 \u1005 > \u1065 ;\r
+\u1039 \u1006 > \u1067 ;\r
+\u1039 \u1007 > \u1068 ;\r
+\u1039 \u1008 > \u1069 ;\r
+\u1039 \u100B > \u106C ;\r
+\u1039 \u100C > \u106D ;\r
+\u1039 \u100D > \u106E ;\r
+\u100d \u1039 \u100E > \u106F ;\r
+\u1039 \u100E > \u106F ;\r
+\u1039 \u100F > \u1070 ;\r
+\u1039 \u1010 > \u1072 ;\r
+\u1039 \u1011 > \u1074 ;\r
+\u1039 \u1012 > \u1075 ;\r
+\u1039 \u1013 > \u1076 ;\r
+\u1039 \u1014 > \u1077 ;\r
+\u1039 \u1015 > \u1078 ;\r
+\u1039 \u1016 > \u1079 ;\r
+\u1039 \u1017 > \u107A ;\r
+\u1039 \u1018 > \u1093 ;\r
+\u1039 \u1019 > \u107C ;\r
+\u1039 \u101C > \u1085 ;\r
+\u100d\u1039\u100D > \u106E ;\r
+\u100F\u1039\u100D > \u1091 ;\r
+\u100B\u1039\u100C > \u1092 ;\r
+\u100B\u1039\u100B > \u1097 ;\r
+\u104E\u1004\u103A\u1038 > \u104E ;\r
+#### PHASE 1: Everything is now in Zawgyi code points. REORDERING RULES.\r
+::Null;\r
+# E Vowel + medial ra. Move the e vowel\r
+($consonant) \u103b \u1031 > \u1031 \u103b $1 ;\r
+($consonant) \u103b > \u103b $1 ;\r
+($consonant) \u103d \u1031 \u1037 > \u1031 $1 \u1094 \u103D ;\r
+($consonant) (\u108a) \u1031 > \u1031 $1 $2 ;\r
+($consonant) ([\u103a\u103d\u103e]+) \u1031 > \u1031 $1 $2 ;\r
+# Ra + kinzi\r
+($consonant) \u1064 \u103b > \u103b $1 \u1064 ;\r
+# E vowel plus medials\r
+($consonant) ([\u103a\u103c-\u103d]) \u1031 > \u1031 $1 $2 ;\r
+# No medials intervening.\r
+($vowelsAndConsonants) \u1031 > \u1031 $1 ;\r
+# Handle Na with lower modifiers.\r
+\u1014 ($subscriptitem) > \u108f $1 ;\r
+\u1014 ($lowsignZ) ($highsignZ) \u1037 > \u108f $1 $2 \u1094;\r
+\u1014 ($highsignZ) ($lowsignZ) \u1037 > \u108f $1 $2 \u1094;\r
+\u1014 ($highsignZ) \u1037 > \u1014 $1 \u1094;\r
+# Two medials\r
+\u103a \u103c > \u107d \u103c;\r
+# a special case\r
+\u1014 \u1032 \u1037 > \u1014 \u1032 \u1094;\r
+\u1014 \u1037 > \u1014 \u1094;\r
+\u1014 \u1032 ($lowsignZ) \u1037 > \u108f $1 \u1032 \u1094;\r
+\u1014 ($highsignZ) ($lowsignZ) > \u108f $1 $2;\r
+\u1014 ($lowsignZ) ($highsignZ) > \u108f $1 $2;\r
+\u1014 ($lowsignZ) \u1037 > \u108f $1 \u1094;\r
+\u1014 ($lowsignZ) > \u108f $1;\r
+# Move 1037 dot to right with other descenders.\r
+($lowsignZ) ($highsignZ*) \u1037 > $1 $2 \u1094;\r
+($nondigits) \u1040 ([\u102B-\u103F]) > $1 \u101D $2;\r
+# Handle lack of 104E ၎ MYANMAR SYMBOL AFOREMENTIONED\r
+($nondigits) \u104e > $1 \u1044;\r
+\u1031 \u1040 ($nondigits) > \u1031 \u101D $1;\r
+\u1009 \u103A > \u1025 \u103A;\r
+\u1025 \u102E > \u1026;\r
+\u1037 \u103A > \u103A \u1037;\r
+([\u102B\u102C\u102F\u1030]) ([\u102D\u102E\u1032]) > $2 $1;\r
+# Medial plus vowel sign U\r
+($medialraZ) ($consonant) \u102f > $1 $2 \u1033;\r
+## Phase 2: Further adjustments\r
+::Null;\r
+# Handle consonant, subscripted consonant, medial ra\r
+($narrowconsonant) ($subscriptitem) ($highsignZ) $medialraZ > \u1083 $1 $2 $3 ;\r
+($wideconsonant) ($subscriptitem) ($highsignZ) $medialraZ > \u1084 $1 $2 ;\r
+($narrowconsonant) ($subscriptitem) $medialraZ > \u1081 $1 $2 ;\r
+($wideconsonant) ($subscriptitem) $medialraZ > \u1082 $1 $2 ;\r
+\u103c \u1094 > \u103c \u1095 ;\r
+# Medial ra variations, context dependent\r
+$medialraZ ($narrowconsonant) \u102d \u103d \u102f > \u107f $1 \u102d \u1087 \u1083 ;\r
+$medialraZ ($wideconsonant) \u102d \u103d \u102f > \u1080 $1 \u102d \u1087 \u1083 ;\r
+$medialraZ ($narrowconsonant) ($lowsignZ) ($highsignZ) > \u1083 $1 $2 $3 ;\r
+$medialraZ ($wideconsonant) ($lowsignZ) ($highsignZ) > \u1084 $1 $2 $3 ;\r
+$medialraZ ($narrowconsonant) ($highsignZ) > \u107f $1 $2 ;\r
+$medialraZ ($wideconsonant) ($highsignZ) > \u1080 $1 $2 ;\r
+$medialraZ ($narrowconsonant) \u1030 > \u103b $1 \u1034 ;\r
+$medialraZ ($wideconsonant) \u1030 > \u107e $1 \u1034 ;\r
+$medialraZ ($narrowconsonant) (\u102f) > \u103b $1 \u1033 ;\r
+$medialraZ ($wideconsonant) (\u102f) > \u107e $1 \u1033 ;\r
+$medialraZ ($narrowconsonant) ($lowsignZ) > \u1081 $1 $2 ;\r
+$medialraZ ($wideconsonant) ($lowsignZ) > \u1082 $1 $2 ;\r
+$medialraZ ($widenya) > \u1082 $1 ;\r
+$medialraZ ($othernya) > \u103b \u106a ;\r
+$medialraZ ($narrowconsonant) > \u103b $1 ;\r
+$medialraZ ($wideconsonant) > \u107e $1 ;\r
+\u1009 ($lowsignZ) > \u106a $1;\r
+\u100A ($lowsignZ)> \u106B $1  ;  ## NYA and NNYA\r
+\u103d \u102d > \u102d \u103d;\r
+\u103a ($highsignZ) \u102f [\u1037\u1094\u1095] > \u103a $1 \u1033 \u1095;\r
+\u103a \u102f [\u1037\u1094\u1095] > \u103a \u1033 \u1095;\r
+\u103a \u102f > \u103a \u1033;\r
+# Kinzi combo\r
+\u1064 \u102e > \u108c ;\r
+##### Phase 3\r
+::Null;\r
+([\u103C\u103D\u103E]+) \u103B > \u103B $1;\r
+([\u103D\u103E]+) \u103C > \u103C $1;\r
+\u103E\u103D > \u103D\u103E ;\r
+\u1037 ([\u102D-\u1030\u1032\u1036]) > $1 \u1037;\r
+($consonant) ([\u102B-\u1032\u1036\u103B-\u103E]) \u103A ($consonant)> $1 \u103A $2 $3;\r
+# Combine vowel and consonant signs\r
+\u103d \u102f > \u1088;\r
+\u1033 \u1094 > \u1033 \u1095; # Wider spacing on lower dot\r
+($medialraZ) ($consonant) ($highsignZ) \u102f > $1 $2 $3 \u1033;\r
+##### Phase 4.  More reorderings of medials\r
+::Null;\r
+([\u103D\u103E]) \u103C > \u103C $1;\r
+\u103E\u103D > \u103D\u103E ;\r
+\u1038 ($vowelmedial) > $1 \u1038;\r
+\u1038 ([\u1036\u1037\u103A]) > $1 \u1038;\r
+\u1036 \u102f > \u102f \u1036;\r
+\u103a ([\u1064\u108b-\u108e]) \u102d \u102f > \u103a $1 \u102d \u1033;\r
+\u103a \u102d \u102f > \u103a \u102d \u1033;\r
+#### Phase 5\r
+::Null;\r
+($consonant) \u103B \u103A > $1 \u103A \u103B;\r
+([\u103C\u103D\u103E]) \u103B > \u103B $1;\r
+([\u103D\u103E]) \u103C > \u103C $1;\r
+\u103E\u103D > \u103D\u103E ;\r
+([\u102D-\u1030\u1032]) \u103A ($consonant) \u103A > $1 $2 \u103A;\r
+\u102D \u103A > \u102D;\r
+\u102E \u103A > \u102E;\r
+\u102F \u103A > \u102F;\r
+\u102D \u102E > \u102E;\r
+\u102F \u1030 > \u102F;\r
+\u102B \u102B+ > \u102B;\r
+\u102C \u102C+ > \u102C;\r
+\u102D \u102D+ > \u102D;\r
+\u102E \u102E+ > \u102E;\r
+\u102F \u102F+ > \u102F;\r
+\u1030 \u1030+ > \u1030;\r
+\u1031 \u1031+ > \u1031;\r
+\u1032 \u1032+ > \u1032;\r
+\u1036 \u1036+ > \u1036;\r
+\u103A \u103A+ > \u103A;\r
+\u103B \u103B+ > \u103B;\r
+\u103C \u103C+ > \u103C;\r
+\u103D \u103D+ > \u103D;\r
+\u103E \u103E+ > \u103E;\r
+# Visually identical orderings - standardize\r
+\u102f \u102D > \u102D \u102f ;\r
+\u102f \u1036 > \u1036 \u102f ;\r
+\u1039 \u1037 > \u1037 \u1039 ;\r
+\u103c \u1032 > \u1032 \u103c ;\r
+\u103c \u102e > \u102e \u103c ;\r
+\u103d \u1088 > \u1088 ;\r
+\r
index 19d04aaf43207eaefb10d3507899253493f4c8bc..8a4cec42691eb8ec80c6d6cee64938061357662b 100644 (file)
@@ -3433,6 +3433,16 @@ root {
             }\r
         }\r
 \r
+        my-t-my-d0-zawgyi {\r
+            alias {"my-Zawgyi"}\r
+        }\r
+        my-Zawgyi {\r
+            file {\r
+                resource:process(transliterator) {"my_Zawgyi.txt"}\r
+                direction {"FORWARD"}\r
+            }\r
+        }\r
+\r
         my-t-my-s0-zawgyi {\r
             alias {"Zawgyi-my"}\r
         }\r
@@ -3956,6 +3966,16 @@ root {
             }\r
         }\r
 \r
+        ug-fonipa-t-ug {\r
+            alias {"ug-ug_FONIPA"}\r
+        }\r
+        ug-ug_FONIPA {\r
+            file {\r
+                resource:process(transliterator) {"ug_ug_FONIPA.txt"}\r
+                direction {"FORWARD"}\r
+            }\r
+        }\r
+\r
         ar-t-und-fonipa {\r
             alias {"und_FONIPA-ar"}\r
         }\r
diff --git a/source/data/translit/ug_ug_FONIPA.txt b/source/data/translit/ug_ug_FONIPA.txt
new file mode 100644 (file)
index 0000000..94a9ff9
--- /dev/null
@@ -0,0 +1,75 @@
+# © 2016 and later: Unicode, Inc. and others.\r
+# License & terms of use: http://www.unicode.org/copyright.html#License\r
+#\r
+# File: ug_ug_FONIPA.txt\r
+# Generated from CLDR\r
+#\r
+\r
+# Uyghur to phonemic transcription\r
+# Alphabet http://learn101.org/uyghur_alphabet.php + youtube video https://youtu.be/dw1DVFgC8x0\r
+# Vowel-consonant harmony in Uyghur. Laura Becker http://home.uni-leipzig.de/lbecker/papers/VowelConsHarmonyUyghur.pdf\r
+# Shadike, Muhetaer & Wasili, Buheliqiguli. (2014). Acoustic Articulatory of Uyghur Phonetics. Applied Mechanics and Materials. 519→520. 762→766. 10.4028/www.scientific.net/AMM.519→520.762.\r
+# https://kuscholarworks.ku.edu/bitstream/handle/1808/5624/EngYakDwy2009_Uyg1full_10.pdf?seque\r
+#\r
+# Originally prepared by Alina Korshunova <alinakor2202@gmail.com>\r
+# as part of her internship at PanLex (panlex.org)\r
+ئ → ʔ;\r
+ا → a;\r
+ە → ‎ɛ;\r
+ب‎ → b;\r
+پ → p;\r
+ت → t;\r
+ج → d\u0361ʒ;\r
+چ → t\u0361ʃ;\r
+خ → x;\r
+د → d;\r
+ر → r;\r
+ز → z;\r
+ژ → ʒ;\r
+س → s;\r
+ش → ʃ;\r
+غ → ʁ;\r
+ف → f;\r
+ق → q;\r
+ك → k;\r
+گ → ɡ;\r
+ڭ → ŋ;\r
+ل → l;\r
+م → m;\r
+ن → n;\r
+ھ → h;\r
+و → o;\r
+ۇ → u;\r
+ۆ → ø;\r
+ۈ → y;\r
+ۋ → w;\r
+ې → e;\r
+ى → i;\r
+ي → j;\r
+# Handle geminated consonants\r
+::Null;\r
+bb → bː;\r
+pp → pː;\r
+tt } [^\u0361] → tː; # make sure not to consume tt\u0361ʃ\r
+d\u0361ʒd\u0361ʒ → d\u0361ʒː;\r
+t\u0361ʃt\u0361ʃ → t\u0361ʃː;\r
+xx → xː;\r
+dd } [^\u0361] → dː; # make sure not to consume dd\u0361ʒ\r
+rr → rː;\r
+zz → zː;\r
+ʒʒ → ʒː;\r
+ss → sː;\r
+ʃʃ → ʃː;\r
+ʁʁ → ʁː;\r
+ff → fː;\r
+qq → qː;\r
+kk → kː;\r
+ɡɡ → ɡː;\r
+ŋŋ → ŋː;\r
+ll → lː;\r
+mm → mː;\r
+nn → nː;\r
+hh → hː;\r
+ww → wː;\r
+jj → jː;\r
+\r
index 8ff0de346b9a797b84a3986ddd6d3a4842c30053..3d81d3cb84ff66dfde019e843c655558cd07a79c 100644 (file)
@@ -49,6 +49,121 @@ For new script codes see http://www.unicode.org/iso15924/codechanges.html
 \r
 ---------------------------------------------------------------------------- ***\r
 \r
+ICU 63 addition of ICU support of text layout properties InPC, InSC, vo\r
+\r
+* Command-line environment setup\r
+\r
+UNICODE_DATA=~/unidata/uni11/20180609\r
+CLDR_SRC=~/svn.cldr/uni\r
+ICU_ROOT=~/icu/mine\r
+ICU_SRC=$ICU_ROOT/src\r
+ICUDT=icudt62b\r
+ICU4C_DATA_IN=$ICU_SRC/icu4c/source/data/in\r
+ICU4C_UNIDATA=$ICU_SRC/icu4c/source/data/unidata\r
+export LD_LIBRARY_PATH=$ICU_ROOT/dbg/icu4c/lib\r
+\r
+*** Links\r
+\r
+https://unicode-org.atlassian.net/browse/ICU-8966 InPC & InSC\r
+https://unicode-org.atlassian.net/browse/ICU-12850 vo\r
+\r
+*** data files & enums & parser code\r
+\r
+* API additions\r
+- for each of the three new enumerated properties\r
+  + uchar.h: add the enum UProperty constant UCHAR_<long prop name>\r
+  + uchar.h: update UCHAR_INT_LIMIT\r
+  + uchar.h: add the enum U<long prop name>\r
+    with constants U_<short prop name>_<long value name>\r
+  + UProperty.java: add the constant <long prop name>\r
+  + UProperty.java: update INT_LIMIT\r
+  + UCharacter.java: add the interface <long prop name>\r
+    with constants <long value name>\r
+\r
+* process and/or copy files\r
+- $ICU_SRC/tools/unicode$ py/preparseucd.py $UNICODE_DATA $ICU_SRC\r
+  + This writes files (especially ppucd.txt) to the ICU4C unidata and testdata subfolders.\r
+  + It also writes tools/unicode/c/genprops/pnames_data.h with property and value\r
+    names and aliases.\r
+  + For debugging, and tweaking how ppucd.txt is written,\r
+    the tool has an --only_ppucd option:\r
+    py/preparseucd.py $UNICODE_DATA --only_ppucd path/to/ppucd/outputfile\r
+\r
+* preparseucd.py changes\r
+- add new property short names (uppercase) to _prop_and_value_re\r
+  so that ParseUCharHeader() parses the new enum constants\r
+\r
+* build ICU (make install)\r
+  so that the tools build can pick up the new definitions from the installed header files.\r
+\r
+  $ICU_ROOT/dbg/icu4c$ echo;echo; make -j7 install > out.txt 2>&1 ; tail -n 30 out.txt ; date\r
+\r
+* build Unicode tools using CMake+make\r
+\r
+$ICU_SRC/tools/unicode/c/icudefs.txt:\r
+\r
+# Location (--prefix) of where ICU was installed.\r
+set(ICU_INST_DIR /usr/local/google/home/mscherer/icu/mine/inst/icu4c)\r
+# Location of the ICU4C source tree.\r
+set(ICU4C_SRC_DIR /usr/local/google/home/mscherer/icu/mine/src/icu4c)\r
+\r
+  $ICU_ROOT/dbg$\r
+    mkdir -p tools/unicode/c\r
+    cd tools/unicode/c\r
+\r
+  $ICU_ROOT/dbg/tools/unicode/c$\r
+    cmake ../../../../../src/tools/unicode/c\r
+    make\r
+\r
+* generate core properties data files\r
+  $ICU_ROOT/dbg/tools/unicode/c$\r
+    genprops/genprops $ICU_SRC/icu4c\r
+- rebuild ICU (make install) & tools\r
+\r
+* write data for runtime, hardcoded for now\r
+- add genprops/layoutpropsbuilder.cpp with pieces from sibling files\r
+- generate new icu4c/source/common/ulayout_props_data.h\r
+- for each of the three new enumerated properties\r
+  + int property max value\r
+  + small, 8-bit UCPTrie\r
+    (A small 16-bit trie with bit fields for these three properties\r
+    is very nearly the same size as the sum of the three.)\r
+\r
+* wire into C++\r
+- uprops.cpp: #include ulayout_props_data.h\r
+- uprops.cpp: add getInPC() etc. functions\r
+- uprops.cpp: add lines to intProps[], include max values\r
+- uprops.h: add UPropertySource constants\r
+- uprops.cpp: add uprops_addPropertyStarts(src)\r
+- uniset_props.cpp: add to UnicodeSet_initInclusion()\r
+- intltest/ucdtest.cpp: write unit tests\r
+\r
+* update Java data files\r
+- refresh just the pnames.icu file with the new property [value] names, just to be safe\r
+- see $ICU_SRC/icu4c/source/data/icu4j-readme.txt\r
+- mkdir -p /tmp/icu4j/com/ibm/icu/impl/data/$ICUDT\r
+- $ICU_ROOT/dbg/icu4c$ make ICU4J_ROOT=/tmp/icu4j icu4j-data-install\r
+- copy the big-endian Unicode data files to another location,\r
+  separate from the other data files,\r
+  and then refresh ICU4J\r
+    cd $ICU_ROOT/dbg/icu4c/data/out/icu4j\r
+    cp com/ibm/icu/impl/data/$ICUDT/pnames.icu /tmp/icu4j/com/ibm/icu/impl/data/$ICUDT\r
+    jar uvf $ICU_SRC/icu4j/main/shared/data/icudata.jar -C /tmp/icu4j com/ibm/icu/impl/data/$ICUDT\r
+\r
+* wire into Java\r
+- UCharacterProperty.java: add new SRC_INPC etc. constants as in C++\r
+- UCharacterProperty.java: for each new property\r
+  + create a nested class to hold its CodePointTrie\r
+  + initialize it from a string literal\r
+  + paste in the initializer printed by genprops\r
+  + add a new IntProperty object to the intProps[] array\r
+  + use the correct max int value for each property, also printed by genprops\r
+- UCharacterProperty.java: add ulayout_addPropertyStarts(src, set)\r
+- UnicodeSet.java: add to getInclusions()\r
+- UCharacterTest.java: write unit tests\r
+\r
+---------------------------------------------------------------------------- ***\r
+\r
 Unicode 11.0 update for ICU 62\r
 \r
 http://www.unicode.org/versions/Unicode11.0.0/\r
index cc2ddcc4abde525f461957d31022302c868af103..0e375b747d9bc4168ad5411f4859f5cd60ac4903 100644 (file)
@@ -4305,7 +4305,7 @@ D7A4..D7AF    >FFFD                     # NA   <reserved-D7A4>..<reserved-D7AF>
 D7C7..D7CA    >FFFD                     # NA   <reserved-D7C7>..<reserved-D7CA>\r
 # D7CB..D7FB  valid                     # 5.2  HANGUL JONGSEONG NIEUN-RIEUL..HANGUL JONGSEONG PHIEUPH-THIEUTH\r
 D7FC..D7FF    >FFFD                     # NA   <reserved-D7FC>..<reserved-D7FF>\r
-D800..DFFF    >FFFD                     # 2.0  <surrogate-D800>..<surrogate-DFFF>\r
+D800..DFFF    >FFFD                     # 2.0  <surrogate-D800>..<surrogate-DFFF>\r
 E000..F8FF    >FFFD                     # 1.1  <private-use-E000>..<private-use-F8FF>\r
 F900          >8C48                     # 1.1  CJK COMPATIBILITY IDEOGRAPH-F900\r
 F901          >66F4                     # 1.1  CJK COMPATIBILITY IDEOGRAPH-F901\r
index da4c4660d3c7b3fb0b16daccfe97c781285f13fe..78f6d60b0a13c0750c74c2399877c8318d180f84 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 af{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.65"}\r
     durationUnits{\r
         hm{"hh:mm"}\r
         hms{"hh:mm:ss"}\r
@@ -123,6 +123,16 @@ af{
                 one{"{0} dele per miljoen"}\r
                 other{"{0} dele per miljoen"}\r
             }\r
+            percent{\r
+                dnam{"persent"}\r
+                one{"{0} persent"}\r
+                other{"{0} persent"}\r
+            }\r
+            permille{\r
+                dnam{"per mille"}\r
+                one{"{0} per mille"}\r
+                other{"{0} per mille"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -147,6 +157,7 @@ af{
             }\r
         }\r
         coordinate{\r
+            dnam{"kardinale rigting"}\r
             east{"{0}O"}\r
             north{"{0}N"}\r
             south{"{0}S"}\r
@@ -193,6 +204,11 @@ af{
                 one{"{0} MB"}\r
                 other{"{0} MB"}\r
             }\r
+            petabyte{\r
+                dnam{"petagrepe"}\r
+                one{"{0} petagreep"}\r
+                other{"{0} petagrepe"}\r
+            }\r
             terabit{\r
                 dnam{"Tb"}\r
                 one{"{0} Tb"}\r
@@ -537,6 +553,11 @@ af{
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"atmosfere"}\r
+                one{"{0} atmosfeer"}\r
+                other{"{0} atmosfere"}\r
+            }\r
             hectopascal{\r
                 dnam{"hektopascal"}\r
                 one{"{0} hektopascal"}\r
@@ -785,6 +806,13 @@ af{
         compound{\r
             per{"{0}/{1}"}\r
         }\r
+        concentr{\r
+            percent{\r
+                dnam{"%"}\r
+                one{"{0}%"}\r
+                other{"{0}%"}\r
+            }\r
+        }\r
         consumption{\r
             liter-per-100kilometers{\r
                 dnam{"ℓ/100km"}\r
@@ -793,6 +821,7 @@ af{
             }\r
         }\r
         coordinate{\r
+            dnam{"rigting"}\r
             east{"{0}O"}\r
             north{"{0}N"}\r
             south{"{0}S"}\r
@@ -1092,6 +1121,16 @@ af{
                 one{"{0} d.p.m."}\r
                 other{"{0} d.p.m."}\r
             }\r
+            percent{\r
+                dnam{"percent"}\r
+                one{"{0}%"}\r
+                other{"{0}%"}\r
+            }\r
+            permille{\r
+                dnam{"per mille"}\r
+                one{"{0}‰"}\r
+                other{"{0}‰"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -1116,6 +1155,7 @@ af{
             }\r
         }\r
         coordinate{\r
+            dnam{"rigting"}\r
             east{"{0}O"}\r
             north{"{0}N"}\r
             south{"{0}S"}\r
@@ -1162,6 +1202,11 @@ af{
                 one{"{0} MB"}\r
                 other{"{0} MB"}\r
             }\r
+            petabyte{\r
+                dnam{"PGrepe"}\r
+                one{"{0} PB"}\r
+                other{"{0} PB"}\r
+            }\r
             terabit{\r
                 dnam{"Tb"}\r
                 one{"{0} Tb"}\r
@@ -1506,6 +1551,11 @@ af{
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"atm"}\r
+                one{"{0} atm"}\r
+                other{"{0} atm"}\r
+            }\r
             hectopascal{\r
                 dnam{"hPa"}\r
                 one{"{0} hPa"}\r
index 92dd0f31879f18bff26cf04f6eafd7f2d033f7d0..90376b212ded5aaddfa0abb6db4052c25c2dab08 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 am{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.65"}\r
     durationUnits{\r
         hm{"h:mm"}\r
         hms{"h:mm:ss"}\r
@@ -123,6 +123,16 @@ am{
                 one{"{0} ppm"}\r
                 other{"{0} ppm"}\r
             }\r
+            percent{\r
+                dnam{"ፐርሰንት"}\r
+                one{"{0} ፐርሰንት"}\r
+                other{"{0} ፐርሰንት"}\r
+            }\r
+            permille{\r
+                dnam{"በማይል"}\r
+                one{"{0} በማይል"}\r
+                other{"{0}‰"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -147,6 +157,7 @@ am{
             }\r
         }\r
         coordinate{\r
+            dnam{"ዓቢይ አቅጣጫ"}\r
             east{"{0}ምስ"}\r
             north{"{0}ሰ"}\r
             south{"{0}ደ"}\r
@@ -193,8 +204,13 @@ am{
                 one{"{0} ሜጋባይት"}\r
                 other{"{0} ሜጋባይት"}\r
             }\r
+            petabyte{\r
+                dnam{"ፔታ ባይት"}\r
+                one{"{0} ፔታ ባይት"}\r
+                other{"{0} ፔታ ባይቶች"}\r
+            }\r
             terabit{\r
-                dnam{"á\89´á\89£"}\r
+                dnam{"á\89´á\88«á\89£á\8b­á\89µá\88µ"}\r
                 one{"{0} ቴባ"}\r
                 other{"{0} ቴባ"}\r
             }\r
@@ -537,6 +553,11 @@ am{
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"ከባቢ አየር"}\r
+                one{"{0} ከባቢ አየር"}\r
+                other{"{0} ከባቢ አየር"}\r
+            }\r
             hectopascal{\r
                 dnam{"ሄክቶፓስካል"}\r
                 one{"{0} ሄክቶፓስካል"}\r
@@ -785,6 +806,13 @@ am{
         compound{\r
             per{"{0}/{1}"}\r
         }\r
+        concentr{\r
+            percent{\r
+                dnam{"%"}\r
+                one{"{0}%"}\r
+                other{"{0}%"}\r
+            }\r
+        }\r
         consumption{\r
             liter-per-100kilometers{\r
                 dnam{"ሊትር በ100 ኪሎሜትሮች"}\r
@@ -793,6 +821,7 @@ am{
             }\r
         }\r
         coordinate{\r
+            dnam{"አቅጣጫ"}\r
             east{"{0}ምስ"}\r
             north{"{0}ሰ"}\r
             south{"{0}ደ"}\r
@@ -1097,6 +1126,16 @@ am{
                 one{"{0} ppm"}\r
                 other{"{0} ppm"}\r
             }\r
+            percent{\r
+                dnam{"ፐርሰንት"}\r
+                one{"{0}%"}\r
+                other{"{0}%"}\r
+            }\r
+            permille{\r
+                dnam{"በማይል"}\r
+                one{"{0}‰"}\r
+                other{"{0}‰"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -1121,6 +1160,7 @@ am{
             }\r
         }\r
         coordinate{\r
+            dnam{"አቅጣጫ"}\r
             east{"{0}ምስ"}\r
             north{"{0}ሰ"}\r
             south{"{0}ደ"}\r
@@ -1167,6 +1207,11 @@ am{
                 one{"{0} ሜጋባይት"}\r
                 other{"{0} ሜጋባይት"}\r
             }\r
+            petabyte{\r
+                dnam{"ፔ ባይት"}\r
+                one{"{0} ፔባ"}\r
+                other{"{0} ፔባ"}\r
+            }\r
             terabit{\r
                 dnam{"ቴባ"}\r
                 one{"{0} ቴባ"}\r
@@ -1511,6 +1556,11 @@ am{
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"ከባቢ አየር"}\r
+                one{"{0} ከባቢ አየር"}\r
+                other{"{0} ከባቢ አየር"}\r
+            }\r
             hectopascal{\r
                 dnam{"ሄክቶፓስካል"}\r
                 one{"{0} ሄክቶፓስካል"}\r
index bdfa05197175ae649d85700ccddac1af203b264e..630f21b008a9a5d1976b2f4a125c10d421c1e9bf 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 ar{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.50"}\r
     durationUnits{\r
         hm{"h:mm"}\r
         hms{"h:mm:ss"}\r
@@ -203,6 +203,24 @@ ar{
                 two{"{0} جزء في المليون"}\r
                 zero{"{0} جزء في المليون"}\r
             }\r
+            percent{\r
+                dnam{"بالمائة"}\r
+                few{"{0}٪"}\r
+                many{"{0}٪"}\r
+                one{"{0} بالمائة"}\r
+                other{"{0} بالمائة"}\r
+                two{"{0}٪"}\r
+                zero{"{0}٪"}\r
+            }\r
+            permille{\r
+                dnam{"في الألف"}\r
+                few{"{0}‰"}\r
+                many{"{0}‰"}\r
+                one{"{0} في الألف"}\r
+                other{"{0} في الألف"}\r
+                two{"{0}‰"}\r
+                zero{"{0}‰"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -321,6 +339,15 @@ ar{
                 two{"{0} ميغابايت"}\r
                 zero{"{0} ميغابايت"}\r
             }\r
+            petabyte{\r
+                dnam{"بيتابايت"}\r
+                few{"{0} بيتابايت"}\r
+                many{"{0} بيتابايت"}\r
+                one{"{0} بيتابايت"}\r
+                other{"{0} بيتابايت"}\r
+                two{"{0} بيتابايت"}\r
+                zero{"{0} بيتابايت"}\r
+            }\r
             terabit{\r
                 dnam{"تيرابت"}\r
                 few{"{0} تيرابت"}\r
@@ -913,6 +940,15 @@ ar{
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"وحدة الضغط الجوي"}\r
+                few{"{0} ض.ج"}\r
+                many{"{0} ض.ج"}\r
+                one{"{0} ضغط جوي"}\r
+                other{"{0} ضغط جوي"}\r
+                two{"{0} ض.ج"}\r
+                zero{"{0} ض.ج"}\r
+            }\r
             hectopascal{\r
                 dnam{"هكتوباسكال"}\r
                 few{"{0} هكتوباسكال"}\r
@@ -1349,6 +1385,17 @@ ar{
         compound{\r
             per{"{0}/{1}"}\r
         }\r
+        concentr{\r
+            percent{\r
+                dnam{"٪"}\r
+                few{"{0}٪"}\r
+                many{"{0}٪"}\r
+                one{"{0}٪"}\r
+                other{"{0}٪"}\r
+                two{"{0}٪"}\r
+                zero{"{0}٪"}\r
+            }\r
+        }\r
         consumption{\r
             liter-per-100kilometers{\r
                 dnam{"ل/١٠٠كم"}\r
@@ -1361,6 +1408,7 @@ ar{
             }\r
         }\r
         coordinate{\r
+            dnam{"اتجاه"}\r
             east{"{0} شرق"}\r
             north{"{0} شمال"}\r
             south{"{0} ج"}\r
@@ -1886,6 +1934,24 @@ ar{
                 two{"{0} جزء/مليون"}\r
                 zero{"{0} جزء/مليون"}\r
             }\r
+            percent{\r
+                dnam{"بالمائة"}\r
+                few{"{0}٪"}\r
+                many{"{0}٪"}\r
+                one{"{0}٪"}\r
+                other{"{0}٪"}\r
+                two{"{0}٪"}\r
+                zero{"{0}٪"}\r
+            }\r
+            permille{\r
+                dnam{"في الألف"}\r
+                few{"{0}‰"}\r
+                many{"{0}‰"}\r
+                one{"{0}‰"}\r
+                other{"{0}‰"}\r
+                two{"{0}‰"}\r
+                zero{"{0}‰"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -1926,6 +1992,7 @@ ar{
             }\r
         }\r
         coordinate{\r
+            dnam{"اتجاه"}\r
             east{"{0} شرق"}\r
             north{"{0} شمال"}\r
             south{"{0} ج"}\r
@@ -2004,6 +2071,15 @@ ar{
                 two{"{0} ميغابايت"}\r
                 zero{"{0} ميغابايت"}\r
             }\r
+            petabyte{\r
+                dnam{"بيتابايت"}\r
+                few{"{0} بيتابايت"}\r
+                many{"{0} بيتابايت"}\r
+                one{"{0} بيتابايت"}\r
+                other{"{0} بيتابايت"}\r
+                two{"{0} بيتابايت"}\r
+                zero{"{0} بيتابايت"}\r
+            }\r
             terabit{\r
                 dnam{"تيرابت"}\r
                 few{"{0} تيرابت"}\r
@@ -2596,6 +2672,15 @@ ar{
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"ض.ج"}\r
+                few{"{0} ض.ج"}\r
+                many{"{0} ض.ج"}\r
+                one{"{0} ض.ج"}\r
+                other{"{0} ض.ج"}\r
+                two{"{0} ض.ج"}\r
+                zero{"{0} ض.ج"}\r
+            }\r
             hectopascal{\r
                 dnam{"هكتوباسكال"}\r
                 few{"{0} هكتوباسكال"}\r
index 8e331b0808062003b4414bc2b92b403d84017f07..e95482709e9449a62a6ef52e14b00fbb600fd951 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 as{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.94"}\r
     durationUnits{\r
         hm{"h:mm"}\r
         hms{"h:mm:ss"}\r
@@ -123,6 +123,16 @@ as{
                 one{"প্ৰতি মিলিয়নত {0} ভাগ"}\r
                 other{"প্ৰতি মিলিয়নত {0} ভাগ"}\r
             }\r
+            percent{\r
+                dnam{"%"}\r
+                one{"{0} শতাংশ"}\r
+                other{"{0} শতাংশ"}\r
+            }\r
+            permille{\r
+                dnam{"প্ৰতিমাইল"}\r
+                one{"{0} প্ৰতিমাইল"}\r
+                other{"{0} প্ৰতিমাইল"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -147,6 +157,7 @@ as{
             }\r
         }\r
         coordinate{\r
+            dnam{"প্ৰধান দিক্-নিৰ্দেশনা"}\r
             east{"{0} পূব"}\r
             north{"{0} উত্তৰ"}\r
             south{"{0} দক্ষিণ"}\r
@@ -193,6 +204,11 @@ as{
                 one{"{0} মেগাবাইট"}\r
                 other{"{0} মেগাবাইট"}\r
             }\r
+            petabyte{\r
+                dnam{"পেটাবাইট"}\r
+                one{"{0} পেটাবাইট"}\r
+                other{"{0} পেটাবাইট"}\r
+            }\r
             terabit{\r
                 dnam{"টেৰাবিট"}\r
                 one{"{0} টেৰাবিট"}\r
@@ -537,6 +553,11 @@ as{
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"বতৰ"}\r
+                one{"{0} বতৰ"}\r
+                other{"{0} atm"}\r
+            }\r
             hectopascal{\r
                 dnam{"হেক্টোপাছকল"}\r
                 one{"{0} হেক্টোপাছকল"}\r
@@ -739,6 +760,13 @@ as{
         compound{\r
             per{"{0}/{1}"}\r
         }\r
+        concentr{\r
+            percent{\r
+                dnam{"%"}\r
+                one{"{0}%"}\r
+                other{"{0}%"}\r
+            }\r
+        }\r
         consumption{\r
             liter-per-100kilometers{\r
                 dnam{"ল/১০০ ক.ম."}\r
@@ -747,6 +775,7 @@ as{
             }\r
         }\r
         coordinate{\r
+            dnam{"দিক্-নিৰ্দেশনা"}\r
             east{"{0} পূঃ"}\r
             north{"{0} উঃ"}\r
             south{"{0} দঃ"}\r
@@ -966,6 +995,16 @@ as{
                 one{"{0} ppm"}\r
                 other{"{0} ppm"}\r
             }\r
+            percent{\r
+                dnam{"শতাংশ"}\r
+                one{"{0}%"}\r
+                other{"{0}%"}\r
+            }\r
+            permille{\r
+                dnam{"প্ৰতিমাইল"}\r
+                one{"{0}‰"}\r
+                other{"{0}‰"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -990,6 +1029,7 @@ as{
             }\r
         }\r
         coordinate{\r
+            dnam{"দিক্-নিৰ্দেশনা"}\r
             east{"{0} পূঃ"}\r
             north{"{0} উঃ"}\r
             south{"{0} দঃ"}\r
@@ -1036,6 +1076,11 @@ as{
                 one{"{0} মেঃ বাঃ"}\r
                 other{"{0} মেঃ বাঃ"}\r
             }\r
+            petabyte{\r
+                dnam{"PByte"}\r
+                one{"{0} PB"}\r
+                other{"{0} PB"}\r
+            }\r
             terabit{\r
                 dnam{"টেৰাবিট"}\r
                 one{"{0} টেঃ বিঃ"}\r
@@ -1380,6 +1425,11 @@ as{
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"atm"}\r
+                one{"{0} atm"}\r
+                other{"{0} atm"}\r
+            }\r
             hectopascal{\r
                 dnam{"hPa"}\r
                 one{"{0} hPa"}\r
index 03c6fc07f41e0e4208a5b1e3235e06181b2f738f..8f64b1773e607529465f1e6141af41bda4ccb752 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 ast{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.91"}\r
     durationUnits{\r
         hm{"h:mm"}\r
         hms{"h:mm:ss"}\r
@@ -1111,8 +1111,8 @@ ast{
             }\r
             fathom{\r
                 dnam{"fathom"}\r
-                one{"{0}fm"}\r
-                other{"{0}fm"}\r
+                one{"{0}fth"}\r
+                other{"{0}fth"}\r
             }\r
             foot{\r
                 dnam{"ft"}\r
@@ -1854,8 +1854,8 @@ ast{
             }\r
             fathom{\r
                 dnam{"fathoms"}\r
-                one{"{0} ftm"}\r
-                other{"{0} ftm"}\r
+                one{"{0} fth"}\r
+                other{"{0} fth"}\r
             }\r
             foot{\r
                 dnam{"pies"}\r
index 3c6ed741f733a4fae30f028933f607467f47d60e..dfc2b0762f7254cafb7f9c5a42f6c9c3a9b37adb 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 az{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.53"}\r
     durationUnits{\r
         hm{"h:mm"}\r
         hms{"h:mm:ss"}\r
@@ -123,6 +123,16 @@ az{
                 one{"milyonda {0} hissəcik"}\r
                 other{"milyonda {0} hissəcik"}\r
             }\r
+            percent{\r
+                dnam{"faiz"}\r
+                one{"{0} faiz"}\r
+                other{"{0} faiz"}\r
+            }\r
+            permille{\r
+                dnam{"promil"}\r
+                one{"{0} promil"}\r
+                other{"{0} promil"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -147,6 +157,7 @@ az{
             }\r
         }\r
         coordinate{\r
+            dnam{"kardinal istiqamət"}\r
             east{"{0}E"}\r
             north{"{0}N"}\r
             south{"{0}S"}\r
@@ -193,6 +204,11 @@ az{
                 one{"{0} meqabayt"}\r
                 other{"{0} meqabayt"}\r
             }\r
+            petabyte{\r
+                dnam{"petabayt"}\r
+                one{"{0} petabayt"}\r
+                other{"{0} petabayt"}\r
+            }\r
             terabit{\r
                 dnam{"terabit"}\r
                 one{"{0} terabit"}\r
@@ -542,6 +558,11 @@ az{
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"atmosfer"}\r
+                one{"{0} atmosfer"}\r
+                other{"{0} atmosfer"}\r
+            }\r
             hectopascal{\r
                 dnam{"hektopaskal"}\r
                 one{"{0} hektopaskal"}\r
@@ -790,6 +811,13 @@ az{
         compound{\r
             per{"{0}/{1}"}\r
         }\r
+        concentr{\r
+            percent{\r
+                dnam{"%"}\r
+                one{"{0}%"}\r
+                other{"{0}%"}\r
+            }\r
+        }\r
         consumption{\r
             liter-per-100kilometers{\r
                 dnam{"l/100km"}\r
@@ -798,6 +826,7 @@ az{
             }\r
         }\r
         coordinate{\r
+            dnam{"istiqamət"}\r
             east{"{0}E"}\r
             north{"{0}N"}\r
             south{"{0}S"}\r
@@ -1100,6 +1129,16 @@ az{
                 one{"{0} hs/mln"}\r
                 other{"{0} hs/mln"}\r
             }\r
+            percent{\r
+                dnam{"faiz"}\r
+                one{"{0}%"}\r
+                other{"{0}%"}\r
+            }\r
+            permille{\r
+                dnam{"promil"}\r
+                one{"{0}‰"}\r
+                other{"{0}‰"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -1124,6 +1163,7 @@ az{
             }\r
         }\r
         coordinate{\r
+            dnam{"istiqamət"}\r
             east{"{0}E"}\r
             north{"{0}N"}\r
             south{"{0}S"}\r
@@ -1170,6 +1210,11 @@ az{
                 one{"{0} MB"}\r
                 other{"{0} MB"}\r
             }\r
+            petabyte{\r
+                dnam{"PBayt"}\r
+                one{"{0} PB"}\r
+                other{"{0} PB"}\r
+            }\r
             terabit{\r
                 dnam{"Tb"}\r
                 one{"{0} Tb"}\r
@@ -1519,6 +1564,11 @@ az{
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"atm"}\r
+                one{"{0} atm"}\r
+                other{"{0} atm"}\r
+            }\r
             hectopascal{\r
                 dnam{"hektopaskal"}\r
                 one{"{0} hPa"}\r
index 92831f66d2e6ab17839b777c4826a90d3c981209..68bc942c00f4d31d98d73dae44a69dd6431b669c 100644 (file)
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 az_Cyrl{\r
     %%Parent{"root"}\r
-    Version{"2.1.38.69"}\r
+    Version{"2.1.44.53"}\r
 }\r
index e1b5a1187c6e7fd4340be04831607af644c839f4..bd554976c119253541ae42f7ae258da75407fb63 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 be{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.65"}\r
     durationUnits{\r
         hm{"hh:mm"}\r
         hms{"hh:mm:ss"}\r
@@ -163,6 +163,20 @@ be{
                 one{"{0} частка на мільён"}\r
                 other{"{0} часткі на мільён"}\r
             }\r
+            percent{\r
+                dnam{"працэнтаў"}\r
+                few{"{0}%"}\r
+                many{"{0}%"}\r
+                one{"{0} працэнт"}\r
+                other{"{0}%"}\r
+            }\r
+            permille{\r
+                dnam{"праміле"}\r
+                few{"{0}‰"}\r
+                many{"{0}‰"}\r
+                one{"{0}‰"}\r
+                other{"{0}‰"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -195,6 +209,7 @@ be{
             }\r
         }\r
         coordinate{\r
+            dnam{"кірунак свету"}\r
             east{"{0} У"}\r
             north{"{0} Пн"}\r
             south{"{0} Пд"}\r
@@ -257,6 +272,13 @@ be{
                 one{"{0} МБ"}\r
                 other{"{0} МБ"}\r
             }\r
+            petabyte{\r
+                dnam{"петабайты"}\r
+                few{"{0} ПБ"}\r
+                many{"{0} ПБ"}\r
+                one{"{0} ПБ"}\r
+                other{"{0} ПБ"}\r
+            }\r
             terabit{\r
                 dnam{"тэрабіты"}\r
                 few{"{0} Тбіт"}\r
@@ -725,6 +747,13 @@ be{
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"атмасферы"}\r
+                few{"{0} атм"}\r
+                many{"{0} атм"}\r
+                one{"{0} атм"}\r
+                other{"{0} атм"}\r
+            }\r
             hectopascal{\r
                 dnam{"гектапаскалі"}\r
                 few{"{0} гПа"}\r
@@ -1001,6 +1030,15 @@ be{
         compound{\r
             per{"{0}/{1}"}\r
         }\r
+        concentr{\r
+            percent{\r
+                dnam{"%"}\r
+                few{"{0}%"}\r
+                many{"{0}%"}\r
+                one{"{0}%"}\r
+                other{"{0}%"}\r
+            }\r
+        }\r
         consumption{\r
             liter-per-100kilometers{\r
                 dnam{"л/100 км"}\r
@@ -1011,6 +1049,7 @@ be{
             }\r
         }\r
         coordinate{\r
+            dnam{"кірунак"}\r
             east{"{0} У"}\r
             north{"{0} Пн"}\r
             south{"{0} Пд"}\r
@@ -1304,6 +1343,20 @@ be{
                 one{"{0} ppm"}\r
                 other{"{0} ppm"}\r
             }\r
+            percent{\r
+                dnam{"%"}\r
+                few{"{0}%"}\r
+                many{"{0}%"}\r
+                one{"{0}%"}\r
+                other{"{0}%"}\r
+            }\r
+            permille{\r
+                dnam{"праміле"}\r
+                few{"{0}‰"}\r
+                many{"{0}‰"}\r
+                one{"{0}‰"}\r
+                other{"{0}‰"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -1336,6 +1389,7 @@ be{
             }\r
         }\r
         coordinate{\r
+            dnam{"кірунак"}\r
             east{"{0} У"}\r
             north{"{0} Пн"}\r
             south{"{0} Пд"}\r
@@ -1398,6 +1452,13 @@ be{
                 one{"{0} МБ"}\r
                 other{"{0} МБ"}\r
             }\r
+            petabyte{\r
+                dnam{"ПБайт"}\r
+                few{"{0} ПБ"}\r
+                many{"{0} ПБ"}\r
+                one{"{0} ПБ"}\r
+                other{"{0} ПБ"}\r
+            }\r
             terabit{\r
                 dnam{"Тбіт"}\r
                 few{"{0} Тбіт"}\r
@@ -1866,6 +1927,13 @@ be{
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"атм"}\r
+                few{"{0} атм"}\r
+                many{"{0} атм"}\r
+                one{"{0} атм"}\r
+                other{"{0} атм"}\r
+            }\r
             hectopascal{\r
                 dnam{"гПа"}\r
                 few{"{0} гПа"}\r
index 9932e84ab1ed8c31b4c1efd8c8557089292c0086..134176a61868c2a7bde4e5045de20338ce6fe13d 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 bg{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.94"}\r
     durationUnits{\r
         hm{"h:mm"}\r
         hms{"h:mm:ss"}\r
@@ -123,6 +123,16 @@ bg{
                 one{"{0} ppm"}\r
                 other{"{0} ppm"}\r
             }\r
+            percent{\r
+                dnam{"процент"}\r
+                one{"{0} процент"}\r
+                other{"{0} процента"}\r
+            }\r
+            permille{\r
+                dnam{"промил"}\r
+                one{"{0} промил"}\r
+                other{"{0} промила"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -147,6 +157,7 @@ bg{
             }\r
         }\r
         coordinate{\r
+            dnam{"основна посока"}\r
             east{"{0}И"}\r
             north{"{0}С"}\r
             south{"{0}Ю"}\r
@@ -193,6 +204,11 @@ bg{
                 one{"{0} мегабайт"}\r
                 other{"{0} мегабайта"}\r
             }\r
+            petabyte{\r
+                dnam{"петабайти"}\r
+                one{"{0} петабайт"}\r
+                other{"{0} петабайта"}\r
+            }\r
             terabit{\r
                 dnam{"терабитове"}\r
                 one{"{0} терабит"}\r
@@ -537,6 +553,11 @@ bg{
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"атмосфери"}\r
+                one{"{0} атмосфера"}\r
+                other{"{0} атмосфери"}\r
+            }\r
             hectopascal{\r
                 dnam{"хектопаскали"}\r
                 one{"{0} хектопаскал"}\r
@@ -785,6 +806,13 @@ bg{
         compound{\r
             per{"{0}/{1}"}\r
         }\r
+        concentr{\r
+            percent{\r
+                dnam{"%"}\r
+                one{"{0}%"}\r
+                other{"{0}%"}\r
+            }\r
+        }\r
         consumption{\r
             liter-per-100kilometers{\r
                 dnam{"l/100 km"}\r
@@ -793,6 +821,7 @@ bg{
             }\r
         }\r
         coordinate{\r
+            dnam{"посока"}\r
             east{"{0}И"}\r
             north{"{0}С"}\r
             south{"{0}Ю"}\r
@@ -810,9 +839,9 @@ bg{
                 other{"{0} ч"}\r
             }\r
             millisecond{\r
-                dnam{"ms"}\r
-                one{"{0} ms"}\r
-                other{"{0} ms"}\r
+                dnam{"мсек"}\r
+                one{"{0} мсек"}\r
+                other{"{0} мсек"}\r
             }\r
             minute{\r
                 dnam{"мин"}\r
@@ -820,9 +849,9 @@ bg{
                 other{"{0} мин"}\r
             }\r
             month{\r
-                dnam{"м"}\r
-                one{"{0} м"}\r
-                other{"{0} м"}\r
+                dnam{"мес."}\r
+                one{"{0} мес."}\r
+                other{"{0} мес."}\r
             }\r
             second{\r
                 dnam{"с"}\r
@@ -1092,6 +1121,16 @@ bg{
                 one{"{0} ppm"}\r
                 other{"{0} ppm"}\r
             }\r
+            percent{\r
+                dnam{"процент"}\r
+                one{"{0}%"}\r
+                other{"{0}%"}\r
+            }\r
+            permille{\r
+                dnam{"промил"}\r
+                one{"{0}‰"}\r
+                other{"{0}‰"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -1116,6 +1155,7 @@ bg{
             }\r
         }\r
         coordinate{\r
+            dnam{"посока"}\r
             east{"{0}И"}\r
             north{"{0}С"}\r
             south{"{0}Ю"}\r
@@ -1162,6 +1202,11 @@ bg{
                 one{"{0} MB"}\r
                 other{"{0} MB"}\r
             }\r
+            petabyte{\r
+                dnam{"PByte"}\r
+                one{"{0} PB"}\r
+                other{"{0} PB"}\r
+            }\r
             terabit{\r
                 dnam{"Tb"}\r
                 one{"{0} Tb"}\r
@@ -1189,7 +1234,7 @@ bg{
                 dnam{"часове"}\r
                 one{"{0} ч"}\r
                 other{"{0} ч"}\r
-                per{"{0}/h"}\r
+                per{"{0}/ч"}\r
             }\r
             microsecond{\r
                 dnam{"μs"}\r
@@ -1198,8 +1243,8 @@ bg{
             }\r
             millisecond{\r
                 dnam{"милисекунди"}\r
-                one{"{0} ms"}\r
-                other{"{0} ms"}\r
+                one{"{0} мсек"}\r
+                other{"{0} мсек"}\r
             }\r
             minute{\r
                 dnam{"мин"}\r
@@ -1220,9 +1265,9 @@ bg{
             }\r
             second{\r
                 dnam{"секунди"}\r
-                one{"{0} с"}\r
-                other{"{0} с"}\r
-                per{"{0}/с"}\r
+                one{"{0} сек"}\r
+                other{"{0} сек"}\r
+                per{"{0}/сек"}\r
             }\r
             week{\r
                 dnam{"седмици"}\r
@@ -1232,8 +1277,8 @@ bg{
             }\r
             year{\r
                 dnam{"години"}\r
-                one{"{0} г"}\r
-                other{"{0} г"}\r
+                one{"{0} год."}\r
+                other{"{0} год."}\r
                 per{"{0}/год."}\r
             }\r
         }\r
@@ -1506,6 +1551,11 @@ bg{
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"atm"}\r
+                one{"{0} atm"}\r
+                other{"{0} atm"}\r
+            }\r
             hectopascal{\r
                 dnam{"hPa"}\r
                 one{"{0} hPa"}\r
index 61d4455a31623bcef8199a86da609b534d9aa8d3..ae866964d255fcf001bd0cd19d1655ec457c0c36 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 bn{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.91"}\r
     durationUnits{\r
         hm{"h:mm"}\r
         hms{"h:mm:ss"}\r
@@ -123,6 +123,16 @@ bn{
                 one{"{0} ভাগ, প্রতি মিলিয়নে"}\r
                 other{"{0} ভাগ, প্রতি মিলিয়নে"}\r
             }\r
+            percent{\r
+                dnam{"শতাংশ"}\r
+                one{"{0}শতাংশ"}\r
+                other{"{0}শতাংশ"}\r
+            }\r
+            permille{\r
+                dnam{"প্রতিমাইল"}\r
+                one{"{0} প্রতিমাইল"}\r
+                other{"{0}প্রতিমাইল"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -147,6 +157,7 @@ bn{
             }\r
         }\r
         coordinate{\r
+            dnam{"প্রধান দিকনির্দেশ"}\r
             east{"{0} পূর্ব"}\r
             north{"{0} উত্তর"}\r
             south{"{0} দক্ষিণ"}\r
@@ -193,6 +204,11 @@ bn{
                 one{"{0} মেগাবাইট"}\r
                 other{"{0} মেগাবাইট"}\r
             }\r
+            petabyte{\r
+                dnam{"পেটাবাইটস"}\r
+                one{"{0} পেটাবাইটস"}\r
+                other{"{0} পেটাবাইটস"}\r
+            }\r
             terabit{\r
                 dnam{"টেরাবিট"}\r
                 one{"{0} টেরাবিট"}\r
@@ -363,8 +379,8 @@ bn{
             }\r
             fathom{\r
                 dnam{"fm"}\r
-                one{"{0} fm"}\r
-                other{"{0} fm"}\r
+                one{"{0} fth"}\r
+                other{"{0} fth"}\r
             }\r
             foot{\r
                 dnam{"ফুট"}\r
@@ -552,6 +568,11 @@ bn{
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"atm"}\r
+                one{"{0} atm"}\r
+                other{"{0} atm"}\r
+            }\r
             hectopascal{\r
                 dnam{"হেক্টোপাসকল"}\r
                 one{"{0} হেক্টোপাসকল"}\r
@@ -806,6 +827,13 @@ bn{
         compound{\r
             per{"{0}/{1}"}\r
         }\r
+        concentr{\r
+            percent{\r
+                dnam{"শতাংশ"}\r
+                one{"{0}%"}\r
+                other{"{0}%"}\r
+            }\r
+        }\r
         consumption{\r
             liter-per-100kilometers{\r
                 dnam{"L/100km"}\r
@@ -814,6 +842,7 @@ bn{
             }\r
         }\r
         coordinate{\r
+            dnam{"দিকনির্দেশ"}\r
             east{"{0}পূ"}\r
             north{"{0}উ"}\r
             south{"{0}দ"}\r
@@ -902,8 +931,8 @@ bn{
             }\r
             fathom{\r
                 dnam{"fm"}\r
-                one{"{0} ftm"}\r
-                other{"{0} ftm"}\r
+                one{"{0} fth"}\r
+                other{"{0} fth"}\r
             }\r
             foot{\r
                 dnam{"ফুট"}\r
@@ -1268,6 +1297,16 @@ bn{
                 one{"{0} ppm"}\r
                 other{"{0} ppm"}\r
             }\r
+            percent{\r
+                dnam{"শতাংশ"}\r
+                one{"{0}%"}\r
+                other{"{0}%"}\r
+            }\r
+            permille{\r
+                dnam{"প্রতিমাইল"}\r
+                one{"{0}‰"}\r
+                other{"{0}‰"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -1292,6 +1331,7 @@ bn{
             }\r
         }\r
         coordinate{\r
+            dnam{"দিকনির্দেশ"}\r
             east{"{0}পূ"}\r
             north{"{0} উ"}\r
             south{"{0} দ"}\r
@@ -1338,6 +1378,11 @@ bn{
                 one{"{0} MB"}\r
                 other{"{0} MB"}\r
             }\r
+            petabyte{\r
+                dnam{"PByte"}\r
+                one{"{0} PB"}\r
+                other{"{0} PB"}\r
+            }\r
             terabit{\r
                 dnam{"Tbit"}\r
                 one{"{0} Tb"}\r
@@ -1508,8 +1553,8 @@ bn{
             }\r
             fathom{\r
                 dnam{"fm"}\r
-                one{"{0} ftm"}\r
-                other{"{0} ftm"}\r
+                one{"{0} fth"}\r
+                other{"{0} fth"}\r
             }\r
             foot{\r
                 dnam{"ফুট"}\r
@@ -1697,6 +1742,11 @@ bn{
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"atm"}\r
+                one{"{0} atm"}\r
+                other{"{0} atm"}\r
+            }\r
             hectopascal{\r
                 dnam{"hPa"}\r
                 one{"{0} hPa"}\r
index 806cf46d3c8df7c1ba8fe45f409e647faf7ed28c..d7e8c4940c7ad2149bfad2c836059f95f5e8faac 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 br{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.91"}\r
     durationUnits{\r
         hm{"h:mm"}\r
         hms{"h:mm:ss"}\r
@@ -1282,11 +1282,11 @@ br{
             }\r
             fathom{\r
                 dnam{"fm"}\r
-                few{"{0} fm"}\r
-                many{"{0} fm"}\r
-                one{"{0} fm"}\r
-                other{"{0} fm"}\r
-                two{"{0} fm"}\r
+                few{"{0} fth"}\r
+                many{"{0} fth"}\r
+                one{"{0} fth"}\r
+                other{"{0} fth"}\r
+                two{"{0} fth"}\r
             }\r
             foot{\r
                 dnam{"′"}\r
@@ -2219,11 +2219,11 @@ br{
             }\r
             fathom{\r
                 dnam{"fm"}\r
-                few{"{0} fm"}\r
-                many{"{0} fm"}\r
-                one{"{0} fm"}\r
-                other{"{0} fm"}\r
-                two{"{0} fm"}\r
+                few{"{0} fth"}\r
+                many{"{0} fth"}\r
+                one{"{0} fth"}\r
+                other{"{0} fth"}\r
+                two{"{0} fth"}\r
             }\r
             foot{\r
                 dnam{"ft"}\r
index 0fc63c8fe15577066a185bf498a73d5f090180db..e9a8051c683a9ace650478a5e1e1f8821f5c5fe5 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 brx{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.41.34"}\r
     units{\r
         duration{\r
             day{\r
index f32f9fced46d0f6042c31c51654317dd459a22ec..15fefaa05ff8b036556c66c09031b3afd07bf821 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 bs{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.88"}\r
     durationUnits{\r
         hm{"h:mm"}\r
         hms{"h:mm:ss"}\r
@@ -143,6 +143,18 @@ bs{
                 one{"{0} dio na milion"}\r
                 other{"{0} dijelova na milion"}\r
             }\r
+            percent{\r
+                dnam{"procenat"}\r
+                few{"{0} procenta"}\r
+                one{"{0} procenat"}\r
+                other{"{0} procenata"}\r
+            }\r
+            permille{\r
+                dnam{"promil"}\r
+                few{"{0} promila"}\r
+                one{"{0} promil"}\r
+                other{"{0} promila"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -171,6 +183,7 @@ bs{
             }\r
         }\r
         coordinate{\r
+            dnam{"glavni pravac"}\r
             east{"{0} istok"}\r
             north{"{0} sjever"}\r
             south{"{0} jug"}\r
@@ -225,6 +238,12 @@ bs{
                 one{"{0} megabajta"}\r
                 other{"{0} megabajta"}\r
             }\r
+            petabyte{\r
+                dnam{"petabajti"}\r
+                few{"{0} petabajta"}\r
+                one{"{0} petabajt"}\r
+                other{"{0} petabajta"}\r
+            }\r
             terabit{\r
                 dnam{"terabiti"}\r
                 few{"{0} terabita"}\r
@@ -631,6 +650,12 @@ bs{
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"atmosfere"}\r
+                few{"{0} atmosfere"}\r
+                one{"{0} atmosfera"}\r
+                other{"{0} atmosfera"}\r
+            }\r
             hectopascal{\r
                 dnam{"hektopaskali"}\r
                 few{"{0} hektopaskala"}\r
@@ -870,6 +895,14 @@ bs{
         compound{\r
             per{"{0}/{1}"}\r
         }\r
+        concentr{\r
+            percent{\r
+                dnam{"%"}\r
+                few{"{0}%"}\r
+                one{"{0}%"}\r
+                other{"{0}%"}\r
+            }\r
+        }\r
         consumption{\r
             liter-per-100kilometers{\r
                 dnam{"L/100 km"}\r
@@ -879,6 +912,7 @@ bs{
             }\r
         }\r
         coordinate{\r
+            dnam{"pravac"}\r
             east{"{0}I"}\r
             north{"{0}S"}\r
             south{"{0}J"}\r
@@ -1135,6 +1169,18 @@ bs{
                 one{"{0} ppm"}\r
                 other{"{0} ppm"}\r
             }\r
+            percent{\r
+                dnam{"%"}\r
+                few{"{0}%"}\r
+                one{"{0}%"}\r
+                other{"{0}%"}\r
+            }\r
+            permille{\r
+                dnam{"‰"}\r
+                few{"{0}‰"}\r
+                one{"{0}‰"}\r
+                other{"{0}‰"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -1163,6 +1209,7 @@ bs{
             }\r
         }\r
         coordinate{\r
+            dnam{"pravac"}\r
             east{"{0} I"}\r
             north{"{0} S"}\r
             south{"{0} J"}\r
@@ -1217,6 +1264,12 @@ bs{
                 one{"{0} MB"}\r
                 other{"{0} MB"}\r
             }\r
+            petabyte{\r
+                dnam{"PB"}\r
+                few{"{0} PB"}\r
+                one{"{0} PB"}\r
+                other{"{0} PB"}\r
+            }\r
             terabit{\r
                 dnam{"Tb"}\r
                 few{"{0} Tb"}\r
@@ -1623,6 +1676,12 @@ bs{
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"atm"}\r
+                few{"{0} atm"}\r
+                one{"{0} atm"}\r
+                other{"{0} atm"}\r
+            }\r
             hectopascal{\r
                 dnam{"hPa"}\r
                 few{"{0} hPa"}\r
index 9ac371d18188ba86aaef4ed70f1a4833fc61b0d7..ef7a81473c6675663c8803c2d59c5799a69f7eea 100644 (file)
@@ -2,7 +2,7 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 bs_Cyrl{\r
     %%Parent{"root"}\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.41.34"}\r
     units{\r
         duration{\r
             day{\r
index 87cb67819cbe4cd6dabb4d1a9c4a49044831c3b5..684969e9452c50bcb6345ae574ad73ad36d8c9f7 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 ca{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.65"}\r
     durationUnits{\r
         hm{"h:mm"}\r
         hms{"h:mm:ss"}\r
@@ -37,7 +37,7 @@ ca{
                 other{"{0} graus"}\r
             }\r
             radian{\r
-                dnam{"radiant"}\r
+                dnam{"radiants"}\r
                 one{"{0} radiant"}\r
                 other{"{0} radiants"}\r
             }\r
@@ -123,6 +123,16 @@ ca{
                 one{"{0} part per milió"}\r
                 other{"{0} parts per milió"}\r
             }\r
+            percent{\r
+                dnam{"per cent"}\r
+                one{"{0} per cent"}\r
+                other{"{0} per cent"}\r
+            }\r
+            permille{\r
+                dnam{"per mil"}\r
+                one{"{0} per mil"}\r
+                other{"{0} per mil"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -147,14 +157,15 @@ ca{
             }\r
         }\r
         coordinate{\r
-            east{"{0}E"}\r
-            north{"{0}N"}\r
-            south{"{0}S"}\r
-            west{"{0}O"}\r
+            dnam{"punt cardinal"}\r
+            east{"{0} est"}\r
+            north{"{0} nord"}\r
+            south{"{0} sud"}\r
+            west{"{0} oest"}\r
         }\r
         digital{\r
             bit{\r
-                dnam{"bit"}\r
+                dnam{"bits"}\r
                 one{"{0} bit"}\r
                 other{"{0} bits"}\r
             }\r
@@ -184,15 +195,20 @@ ca{
                 other{"{0} quilobytes"}\r
             }\r
             megabit{\r
-                dnam{"megabit"}\r
+                dnam{"megabits"}\r
                 one{"{0} megabit"}\r
                 other{"{0} megabits"}\r
             }\r
             megabyte{\r
-                dnam{"megabyte"}\r
+                dnam{"megabytes"}\r
                 one{"{0} megabyte"}\r
                 other{"{0} megabytes"}\r
             }\r
+            petabyte{\r
+                dnam{"petabytes"}\r
+                one{"{0} petabyte"}\r
+                other{"{0} petabytes"}\r
+            }\r
             terabit{\r
                 dnam{"terabits"}\r
                 one{"{0} terabit"}\r
@@ -223,7 +239,7 @@ ca{
                 per{"{0} per hora"}\r
             }\r
             microsecond{\r
-                dnam{"microsegon"}\r
+                dnam{"microsegons"}\r
                 one{"{0} microsegon"}\r
                 other{"{0} microsegons"}\r
             }\r
@@ -270,12 +286,12 @@ ca{
         }\r
         electric{\r
             ampere{\r
-                dnam{"ampere"}\r
+                dnam{"amperes"}\r
                 one{"{0} ampere"}\r
                 other{"{0} amperes"}\r
             }\r
             milliampere{\r
-                dnam{"mil·liampere"}\r
+                dnam{"mil·liamperes"}\r
                 one{"{0} mil·liampere"}\r
                 other{"{0} mil·liamperes"}\r
             }\r
@@ -285,7 +301,7 @@ ca{
                 other{"{0} ohms"}\r
             }\r
             volt{\r
-                dnam{"volt"}\r
+                dnam{"volts"}\r
                 one{"{0} volt"}\r
                 other{"{0} volts"}\r
             }\r
@@ -445,23 +461,23 @@ ca{
             lux{\r
                 dnam{"lux"}\r
                 one{"{0} lux"}\r
-                other{"{0} lux"}\r
+                other{"{0} luxs"}\r
             }\r
         }\r
         mass{\r
             carat{\r
-                dnam{"quirat"}\r
+                dnam{"quirats"}\r
                 one{"{0} quirat"}\r
                 other{"{0} quirats"}\r
             }\r
             gram{\r
-                dnam{"gram"}\r
+                dnam{"grams"}\r
                 one{"{0} gram"}\r
                 other{"{0} grams"}\r
                 per{"{0} per gram"}\r
             }\r
             kilogram{\r
-                dnam{"quilogram"}\r
+                dnam{"quilograms"}\r
                 one{"{0} quilogram"}\r
                 other{"{0} quilograms"}\r
                 per{"{0} per quilogram"}\r
@@ -477,23 +493,23 @@ ca{
                 other{"{0} micrograms"}\r
             }\r
             milligram{\r
-                dnam{"mil·ligram"}\r
+                dnam{"mil·ligrams"}\r
                 one{"{0} mil·ligram"}\r
                 other{"{0} mil·ligrams"}\r
             }\r
             ounce{\r
-                dnam{"unça"}\r
+                dnam{"unces"}\r
                 one{"{0} unça"}\r
                 other{"{0} unces"}\r
                 per{"{0} per unça"}\r
             }\r
             ounce-troy{\r
-                dnam{"unça troy"}\r
+                dnam{"unces troy"}\r
                 one{"{0} unça troy"}\r
                 other{"{0} unces troy"}\r
             }\r
             pound{\r
-                dnam{"lliura"}\r
+                dnam{"lliures"}\r
                 one{"{0} lliura"}\r
                 other{"{0} lliures"}\r
                 per{"{0} per lliura"}\r
@@ -526,9 +542,9 @@ ca{
                 other{"{0} megawatts"}\r
             }\r
             milliwatt{\r
-                dnam{"miliwatts"}\r
-                one{"{0} miliwatt"}\r
-                other{"{0} miliwatts"}\r
+                dnam{"mil·liwatts"}\r
+                one{"{0} mil·liwatt"}\r
+                other{"{0} mil·liwatts"}\r
             }\r
             watt{\r
                 dnam{"watts"}\r
@@ -537,6 +553,11 @@ ca{
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"atmosferes"}\r
+                one{"{0} atmosfera"}\r
+                other{"{0} atmosferes"}\r
+            }\r
             hectopascal{\r
                 dnam{"hectopascals"}\r
                 one{"{0} hectopascal"}\r
@@ -683,7 +704,7 @@ ca{
             }\r
             gallon-imperial{\r
                 dnam{"galons imperials"}\r
-                one{"{0} galons imperials"}\r
+                one{"{0} galó imperial"}\r
                 other{"{0} galons imperials"}\r
                 per{"{0} per galó imperial"}\r
             }\r
@@ -795,6 +816,13 @@ ca{
         compound{\r
             per{"{0}/{1}"}\r
         }\r
+        concentr{\r
+            percent{\r
+                dnam{"%"}\r
+                one{"{0} %"}\r
+                other{"{0} %"}\r
+            }\r
+        }\r
         consumption{\r
             liter-per-100kilometers{\r
                 dnam{"l/100 km"}\r
@@ -803,6 +831,7 @@ ca{
             }\r
         }\r
         coordinate{\r
+            dnam{"punt"}\r
             east{"{0}E"}\r
             north{"{0}N"}\r
             south{"{0}S"}\r
@@ -867,8 +896,8 @@ ca{
             }\r
             week{\r
                 dnam{"setm."}\r
-                one{"{0} s"}\r
-                other{"{0} s"}\r
+                one{"{0} setm."}\r
+                other{"{0} setm."}\r
                 per{"{0}/setm."}\r
             }\r
             year{\r
@@ -1150,14 +1179,14 @@ ca{
         }\r
         angle{\r
             arc-minute{\r
-                dnam{"´"}\r
-                one{"{0} min"}\r
-                other{"{0} min"}\r
+                dnam{"arcmin"}\r
+                one{"{0} arcmin"}\r
+                other{"{0} arcmin"}\r
             }\r
             arc-second{\r
-                dnam{"segons"}\r
-                one{"{0} s"}\r
-                other{"{0} s"}\r
+                dnam{"arcsec"}\r
+                one{"{0} arcsec"}\r
+                other{"{0} arcsec"}\r
             }\r
             degree{\r
                 dnam{"º"}\r
@@ -1165,7 +1194,7 @@ ca{
                 other{"{0}°"}\r
             }\r
             radian{\r
-                dnam{"radiant"}\r
+                dnam{"rad"}\r
                 one{"{0} rad"}\r
                 other{"{0} rad"}\r
             }\r
@@ -1251,6 +1280,16 @@ ca{
                 one{"{0} ppm"}\r
                 other{"{0} ppm"}\r
             }\r
+            percent{\r
+                dnam{"per cent"}\r
+                one{"{0} %"}\r
+                other{"{0} %"}\r
+            }\r
+            permille{\r
+                dnam{"per mil"}\r
+                one{"{0} ‰"}\r
+                other{"{0} ‰"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -1275,6 +1314,7 @@ ca{
             }\r
         }\r
         coordinate{\r
+            dnam{"punt"}\r
             east{"{0}E"}\r
             north{"{0}N"}\r
             south{"{0}S"}\r
@@ -1321,6 +1361,11 @@ ca{
                 one{"{0} MB"}\r
                 other{"{0} MB"}\r
             }\r
+            petabyte{\r
+                dnam{"PB"}\r
+                one{"{0} PB"}\r
+                other{"{0} PB"}\r
+            }\r
             terabit{\r
                 dnam{"Tb"}\r
                 one{"{0} Tb"}\r
@@ -1497,8 +1542,8 @@ ca{
             }\r
             inch{\r
                 dnam{"polzades"}\r
-                one{"{0} polz."}\r
-                other{"{0} polz."}\r
+                one{"{0} in"}\r
+                other{"{0} in"}\r
                 per{"{0}/in"}\r
             }\r
             kilometer{\r
@@ -1544,9 +1589,9 @@ ca{
                 other{"{0} nm"}\r
             }\r
             nautical-mile{\r
-                dnam{"nmi"}\r
-                one{"{0} nmi"}\r
-                other{"{0} nmi"}\r
+                dnam{"NM"}\r
+                one{"{0} NM"}\r
+                other{"{0} NM"}\r
             }\r
             parsec{\r
                 dnam{"parsecs"}\r
@@ -1583,7 +1628,7 @@ ca{
                 other{"{0} ct"}\r
             }\r
             gram{\r
-                dnam{"gram"}\r
+                dnam{"grams"}\r
                 one{"{0} g"}\r
                 other{"{0} g"}\r
                 per{"{0}/g"}\r
@@ -1596,7 +1641,7 @@ ca{
             }\r
             metric-ton{\r
                 dnam{"t mètriques"}\r
-                one{"{0} t mètrica"}\r
+                one{"{0} t mètr."}\r
                 other{"{0} t mètr."}\r
             }\r
             microgram{\r
@@ -1665,6 +1710,11 @@ ca{
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"atm"}\r
+                one{"{0} atm"}\r
+                other{"{0} atm"}\r
+            }\r
             hectopascal{\r
                 dnam{"hPa"}\r
                 one{"{0} hPa"}\r
@@ -1681,9 +1731,9 @@ ca{
                 other{"{0} mbar"}\r
             }\r
             millimeter-of-mercury{\r
-                dnam{"mm Hg"}\r
-                one{"{0} mm Hg"}\r
-                other{"{0} mm Hg"}\r
+                dnam{"mmHg"}\r
+                one{"{0} mmHg"}\r
+                other{"{0} mmHg"}\r
             }\r
             pound-per-square-inch{\r
                 dnam{"psi"}\r
index ed2ccc18b94c5f5c139888707a3d03de2efac01a..fca6a704f172632a1d2f618019ea58f0a8410b9f 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 ccp{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.50"}\r
     durationUnits{\r
         hm{"h:mm"}\r
         hms{"h:mm:ss"}\r
index 193b0eece49faa7415ec59e18c25c68dbe3f5b48..db47bd61dc5e2de41cf7390566b206f4a3aac02b 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 ce{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.41.34"}\r
     durationUnits{\r
         hm{"h:mm"}\r
         hms{"h:mm:ss"}\r
index 0f05002dd693dca998aaa100004e0e3f11f7baa6..147b4e05ab05e520fd96a437bb803107ab1e4144 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 chr{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.2"}\r
     durationUnits{\r
         hm{"h:mm"}\r
         hms{"h:mm:ss"}\r
@@ -10,9 +10,9 @@ chr{
     units{\r
         acceleration{\r
             g-force{\r
-                dnam{"ᎠᏓᎾᏌᏁᏍᎩ ᎦᏌᏙᏯᏍᏗ"}\r
-                one{"{0} ᎠᏓᎾᏌᏁᏍᎩ ᎦᏌᏙᏯᏍᏗ"}\r
-                other{"{0} ᎠᏓᎾᏌᏁᏍᎩ ᎦᏌᏙᏯᏍᏗ"}\r
+                dnam{"ᎠᏓᎾᏌᏁᏍᎩ-ᎦᏌᏙᏯᏍᏗ"}\r
+                one{"{0} ᎠᏓᎾᏌᏁᏍᎩ-ᎦᏌᏙᏯᏍᏗ"}\r
+                other{"{0} ᎠᏓᎾᏌᏁᏍᎩ-ᎦᏌᏙᏯᏍᏗ"}\r
             }\r
             meter-per-second-squared{\r
                 dnam{"ᏗᏟᎶᏗ ᎠᏎᏢ ᎢᏳᏓᎵ ᏅᎩ ᏧᏅᏏᎩ"}\r
@@ -123,6 +123,16 @@ chr{
                 one{"{0} ᎤᏙᏢᏒ ᎢᏳᏆᏗᏅᏛ ᎢᏳᏓᎵ"}\r
                 other{"{0} ᏚᏙᏢᏒ ᎢᏳᏆᏗᏅᏛ ᎢᏳᏓᎵ"}\r
             }\r
+            percent{\r
+                dnam{"ᏓᎬᏩᎶᏛ"}\r
+                one{"{0} ᏓᎬᏩᎶᏛ"}\r
+                other{"{0} ᏓᎬᏩᎶᏛ"}\r
+            }\r
+            permille{\r
+                dnam{"ᏈᎻᎴ"}\r
+                one{"{0} ᏈᎻᎴ"}\r
+                other{"{0} ᏈᎻᎴ"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -147,6 +157,7 @@ chr{
             }\r
         }\r
         coordinate{\r
+            dnam{"ᏅᎩ ᏫᏂᏚᏳᎪᏛᎢ"}\r
             east{"{0} ᏗᎧᎸᎬ"}\r
             north{"{0} ᏧᏴᏢ"}\r
             south{"{0} ᏧᎦᏄᏮ"}\r
@@ -193,6 +204,11 @@ chr{
                 one{"{0} ᎺᎦ ᎠᏍᎦᎳ"}\r
                 other{"{0} ᎺᎦ ᏗᏓᏍᎦᎵᎩ"}\r
             }\r
+            petabyte{\r
+                dnam{"ᏇᏔ ᏗᏓᏍᎦᎵᎩ"}\r
+                one{"{0} ᏇᏔ ᏗᏓᏍᎦᎵᎩ"}\r
+                other{"{0} ᏇᏔ ᏗᏓᏍᎦᎵᎩ"}\r
+            }\r
             terabit{\r
                 dnam{"ᏕᎳ ᎤᏍᎦᎵᏨ"}\r
                 one{"ᏕᎳ ᎤᏍᎦᎳ"}\r
@@ -507,7 +523,7 @@ chr{
         power{\r
             gigawatt{\r
                 dnam{"ᎩᎦᏩᏗ"}\r
-                one{"{0} ᎩᎦ ᏩᏗ"}\r
+                one{"{0} ᎩᎦᏩᏗ"}\r
                 other{"{0} ᎩᎦᏩᏗ"}\r
             }\r
             horsepower{\r
@@ -537,6 +553,11 @@ chr{
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"ᏗᎦᏃᎴᏍᎬ"}\r
+                one{"{0} ᎦᏃᎴᏍᎬ"}\r
+                other{"{0} ᏗᎦᏃᎴᏍᎬ"}\r
+            }\r
             hectopascal{\r
                 dnam{"ᎮᏔ ᏗᏆᏌᎵ"}\r
                 one{"{0} ᎮᏔ ᏆᏌᎵ"}\r
@@ -739,14 +760,22 @@ chr{
         compound{\r
             per{"{0}/{1}"}\r
         }\r
+        concentr{\r
+            percent{\r
+                dnam{"%"}\r
+                one{"{0}%"}\r
+                other{"{0}%"}\r
+            }\r
+        }\r
         consumption{\r
             liter-per-100kilometers{\r
                 dnam{"L/100km"}\r
-                one{"{0} L/100km"}\r
-                other{"{0} L/100km"}\r
+                one{"{0}L/100km"}\r
+                other{"{0}L/100km"}\r
             }\r
         }\r
         coordinate{\r
+            dnam{"ᏫᏚᏳᎪᏛ"}\r
             east{"{0}Ꮧ"}\r
             north{"{0}ᏧᏴ"}\r
             south{"{0}ᏧᎦ"}\r
@@ -755,8 +784,8 @@ chr{
         duration{\r
             day{\r
                 dnam{"ᎢᎦ"}\r
-                one{"{0}Ꭲ"}\r
-                other{"{0}Ꭲ"}\r
+                one{"{0}Ꭲ"}\r
+                other{"{0}Ꭲ"}\r
             }\r
             hour{\r
                 dnam{"ᏑᏟᎶᏓ"}\r
@@ -764,9 +793,9 @@ chr{
                 other{"{0}Ꮡ"}\r
             }\r
             millisecond{\r
-                dnam{"msec"}\r
-                one{"{0}ms"}\r
-                other{"{0}ms"}\r
+                dnam{"ᏌᎠ"}\r
+                one{"{0}ᏌᎠ"}\r
+                other{"{0}ᏌᎠ"}\r
             }\r
             minute{\r
                 dnam{"ᎢᏯᏔ"}\r
@@ -780,8 +809,8 @@ chr{
             }\r
             second{\r
                 dnam{"ᎠᏎᏢ"}\r
-                one{"{0}s"}\r
-                other{"{0}s"}\r
+                one{"{0}ᎠᏎ"}\r
+                other{"{0}ᎠᏎ"}\r
             }\r
             week{\r
                 dnam{"ᏒᎾ"}\r
@@ -796,24 +825,24 @@ chr{
         }\r
         length{\r
             centimeter{\r
-                dnam{"cm"}\r
-                one{"{0}cm"}\r
-                other{"{0}cm"}\r
+                dnam{"ᏧᎠ"}\r
+                one{"{0}ᏧᎠ"}\r
+                other{"{0}ᏧᎠ"}\r
             }\r
             kilometer{\r
-                dnam{"km"}\r
-                one{"{0}km"}\r
-                other{"{0}km"}\r
+                dnam{"ᎠᏗ"}\r
+                one{"{0}ᎠᏗ"}\r
+                other{"{0}ᎠᏗ"}\r
             }\r
             meter{\r
-                dnam{"ᎠᏟᎶᏍᏗ"}\r
-                one{"{0}m"}\r
-                other{"{0}m"}\r
+                dnam{"ᎠᏟ"}\r
+                one{"{0}ᎠᏟ"}\r
+                other{"{0}ᎠᏟ"}\r
             }\r
             millimeter{\r
-                dnam{"mm"}\r
-                one{"{0}mm"}\r
-                other{"{0}mm"}\r
+                dnam{"ᏌᎢᎠ"}\r
+                one{"{0}ᏌᎢᎠ"}\r
+                other{"{0}ᏌᎢᎠ"}\r
             }\r
         }\r
         mass{\r
@@ -831,8 +860,8 @@ chr{
         speed{\r
             kilometer-per-hour{\r
                 dnam{"km/hr"}\r
-                one{"{0}kph"}\r
-                other{"{0}kph"}\r
+                one{"{0}km/h"}\r
+                other{"{0}km/h"}\r
             }\r
         }\r
         temperature{\r
@@ -857,7 +886,7 @@ chr{
     unitsShort{\r
         acceleration{\r
             g-force{\r
-                dnam{"ᎠᏓᎾᏌᏁᏍᎩ ᎦᏌᏙᏯᏍᏗ"}\r
+                dnam{"ᎠᏓᎾᏌᏁᏍᎩ-ᎦᏌᏙᏯᏍᏗ"}\r
                 one{"{0} G"}\r
                 other{"{0} G"}\r
             }\r
@@ -897,13 +926,13 @@ chr{
         area{\r
             acre{\r
                 dnam{"ᎢᏧᏟᎶᏓ"}\r
-                one{"{0} ac"}\r
-                other{"{0} ac"}\r
+                one{"{0} ᏑᏟᎶ"}\r
+                other{"{0} ᏑᏟᎶ"}\r
             }\r
             hectare{\r
                 dnam{"ᎮᏔ ᎢᏳᏟᎶᏛ"}\r
-                one{"{0} ha"}\r
-                other{"{0} ha"}\r
+                one{"{0} ᎨᏑ"}\r
+                other{"{0} ᎨᏑ"}\r
             }\r
             square-centimeter{\r
                 dnam{"cm²"}\r
@@ -913,11 +942,11 @@ chr{
             }\r
             square-foot{\r
                 dnam{"ᏅᎩ ᏧᏅᏏᏱ ᎢᏗᎳᏏᏗ"}\r
-                one{"{0} ft²"}\r
-                other{"{0} ft²"}\r
+                one{"{0} sq ft"}\r
+                other{"{0} sq ft"}\r
             }\r
             square-inch{\r
-                dnam{"á\8f\85á\8e© á\8f§á\8f\85á\8f\8fá\8f³ á\8e¢á\8f\97á\8f\8fá\8f\94á\8f\97á\8f\8dá\8f\97"}\r
+                dnam{"á\8e¢á\8f\97á\8f\8fá\8f\94á\8f\97á\8f\8dá\8f\97²"}\r
                 one{"{0} in²"}\r
                 other{"{0} in²"}\r
                 per{"{0}/in²"}\r
@@ -929,19 +958,19 @@ chr{
                 per{"{0}/km²"}\r
             }\r
             square-meter{\r
-                dnam{"á\8f\85á\8e© á\8f§á\8f\85á\8f\8fá\8f± á\8f\97á\8f\9fá\8e¶á\8f\8dá\8f\97"}\r
+                dnam{"á\8f\97á\8f\9fá\8e¶á\8f\8dá\8f\97²"}\r
                 one{"{0} m²"}\r
                 other{"{0} m²"}\r
                 per{"{0}/m²"}\r
             }\r
             square-mile{\r
                 dnam{"ᏅᎩ ᏧᏅᏏᏱ ᎢᏳᏟᎶᏓ"}\r
-                one{"{0} sq mi"}\r
-                other{"{0} sq mi"}\r
+                one{"{0} ᏅᏧᎢ"}\r
+                other{"{0} ᏅᏧᎢ"}\r
                 per{"{0}/mi²"}\r
             }\r
             square-yard{\r
-                dnam{"á\8f\85á\8e© á\8f§á\8f\85á\8f\8fá\8f± á\8f\97á\8f¯á\8f¯á\8f\97"}\r
+                dnam{"á\8f\97á\8f¯á\8f¯á\8f\97²"}\r
                 one{"{0} yd²"}\r
                 other{"{0} yd²"}\r
             }\r
@@ -970,6 +999,16 @@ chr{
                 one{"{0} ppm"}\r
                 other{"{0} ppm"}\r
             }\r
+            percent{\r
+                dnam{"ᏓᎬᏩᎶᏛ"}\r
+                one{"{0}%"}\r
+                other{"{0}%"}\r
+            }\r
+            permille{\r
+                dnam{"ᏈᎻᎴ"}\r
+                one{"{0}‰"}\r
+                other{"{0}‰"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -994,6 +1033,7 @@ chr{
             }\r
         }\r
         coordinate{\r
+            dnam{"ᏫᏚᏳᎪᏛ"}\r
             east{"{0} Ꮧ"}\r
             north{"{0} ᏧᏴ"}\r
             south{"{0} ᏧᎦ"}\r
@@ -1040,6 +1080,11 @@ chr{
                 one{"{0} MB"}\r
                 other{"{0} MB"}\r
             }\r
+            petabyte{\r
+                dnam{"PByte"}\r
+                one{"{0} PB"}\r
+                other{"{0} PB"}\r
+            }\r
             terabit{\r
                 dnam{"ᏕᎳ ᎤᏍᎦᎳ"}\r
                 one{"{0} Tb"}\r
@@ -1053,20 +1098,20 @@ chr{
         }\r
         duration{\r
             century{\r
-                dnam{"c"}\r
-                one{"{0} c"}\r
-                other{"{0} c"}\r
+                dnam{"ᏍᏧ"}\r
+                one{"{0} ᏍᏧ"}\r
+                other{"{0} ᏍᏧ"}\r
             }\r
             day{\r
                 dnam{"ᎯᎸᏍᎩ ᏧᏒᎯᏓ"}\r
                 one{"{0} ᎢᎦ"}\r
                 other{"{0} ᏧᏒᎯᏓ"}\r
-                per{"{0}/Ꭲ"}\r
+                per{"{0}/Ꭲ"}\r
             }\r
             hour{\r
                 dnam{"ᎢᏳᏟᎶᏓ"}\r
                 one{"{0} ᏑᏟ"}\r
-                other{"{0} á\8e¢á\8f³Ꮯ"}\r
+                other{"{0} á\8f\91Ꮯ"}\r
                 per{"{0}/Ꮡ"}\r
             }\r
             microsecond{\r
@@ -1076,8 +1121,8 @@ chr{
             }\r
             millisecond{\r
                 dnam{"ᏌᏉ ᎢᏯᎦᎨᎵᏁᎢ ᏗᏎᏢ"}\r
-                one{"{0} ms"}\r
-                other{"{0} ms"}\r
+                one{"{0} ᏌᎠ"}\r
+                other{"{0} ᏌᎠ"}\r
             }\r
             minute{\r
                 dnam{"ᎢᏯᏔᏬᏍᏔᏅ"}\r
@@ -1093,14 +1138,14 @@ chr{
             }\r
             nanosecond{\r
                 dnam{"ᎾᏃᏗᏎᏢ"}\r
-                one{"{0} ns"}\r
-                other{"{0} ns"}\r
+                one{"{0} ᎾᏃ"}\r
+                other{"{0} ᎾᏃ"}\r
             }\r
             second{\r
                 dnam{"ᏓᏓᎾ"}\r
                 one{"{0} ᎠᏎᏢ"}\r
                 other{"{0} ᎠᏎᏢ"}\r
-                per{"{0}/s"}\r
+                per{"{0}/ᎠᏎ"}\r
             }\r
             week{\r
                 dnam{"ᎢᏳᎾᏙᏓᏆᏍᏗ"}\r
@@ -1193,49 +1238,49 @@ chr{
         }\r
         length{\r
             astronomical-unit{\r
-                dnam{"au"}\r
-                one{"{0} au"}\r
-                other{"{0} au"}\r
+                dnam{"ᎡᎨ"}\r
+                one{"{0} ᎡᎨ"}\r
+                other{"{0} ᎡᎨ"}\r
             }\r
             centimeter{\r
-                dnam{"cm"}\r
-                one{"{0} cm"}\r
-                other{"{0} cm"}\r
-                per{"{0}/cm"}\r
+                dnam{"ᏧᎠ"}\r
+                one{"{0} ᏧᎠ"}\r
+                other{"{0} ᏧᎠ"}\r
+                per{"{0}/ᏧᎠ"}\r
             }\r
             decimeter{\r
-                dnam{"dm"}\r
-                one{"{0} dm"}\r
-                other{"{0} dm"}\r
+                dnam{"ᏌᏟ"}\r
+                one{"{0} ᏌᏟ"}\r
+                other{"{0} ᏌᏟ"}\r
             }\r
             foot{\r
                 dnam{"ᎢᏗᎳᏏᏗ"}\r
-                one{"{0} ft"}\r
-                other{"{0} ft"}\r
-                per{"{0}/ft"}\r
+                one{"{0} ᎢᏗᎳ"}\r
+                other{"{0} ᎢᏗᎳ"}\r
+                per{"{0}/ᎢᏗᎳ"}\r
             }\r
             inch{\r
                 dnam{"ᎢᏗᏏᏔᏗᏍᏗ"}\r
-                one{"{0} in"}\r
-                other{"{0} in"}\r
-                per{"{0}/in"}\r
+                one{"{0} ᎢᏏᏔ"}\r
+                other{"{0} ᎢᏏᏔ"}\r
+                per{"{0}/ᎢᏏᏔ"}\r
             }\r
             kilometer{\r
-                dnam{"km"}\r
-                one{"{0} km"}\r
-                other{"{0} km"}\r
-                per{"{0}/km"}\r
+                dnam{"ᎠᏗ"}\r
+                one{"{0} ᎠᏗ"}\r
+                other{"{0} ᎠᏗ"}\r
+                per{"{0}/ᎠᏗ"}\r
             }\r
             light-year{\r
                 dnam{"ᏗᏨᏍᏗ ᏧᏕᏘ"}\r
-                one{"{0} ly"}\r
-                other{"{0} ly"}\r
+                one{"{0} ᏗᏧ"}\r
+                other{"{0} ᏗᏧ"}\r
             }\r
             meter{\r
-                dnam{"á\8f\97á\8f\9fá\8e¶á\8f\8dá\8f\97"}\r
-                one{"{0} m"}\r
-                other{"{0} m"}\r
-                per{"{0}/m"}\r
+                dnam{"á\8e á\8f\9f"}\r
+                one{"{0} ᎠᏟ"}\r
+                other{"{0} ᎠᏟ"}\r
+                per{"{0}/ᎠᏟ"}\r
             }\r
             micrometer{\r
                 dnam{"µm"}\r
@@ -1244,38 +1289,38 @@ chr{
             }\r
             mile{\r
                 dnam{"ᎢᏳᏟᎶᏓ"}\r
-                one{"{0} mi"}\r
-                other{"{0} mi"}\r
+                one{"{0} ᎢᏳ"}\r
+                other{"{0} ᎢᏳ"}\r
             }\r
             mile-scandinavian{\r
-                dnam{"smi"}\r
-                one{"{0} smi"}\r
-                other{"{0} smi"}\r
+                dnam{"ᏍᏑ"}\r
+                one{"{0} ᏍᏑ"}\r
+                other{"{0} ᏍᏑ"}\r
             }\r
             millimeter{\r
-                dnam{"mm"}\r
-                one{"{0} mm"}\r
-                other{"{0} mm"}\r
+                dnam{"ᏌᎢᎠ"}\r
+                one{"{0} ᏌᎢᎠ"}\r
+                other{"{0} ᏌᎢᎠ"}\r
             }\r
             nanometer{\r
-                dnam{"nm"}\r
-                one{"{0} nm"}\r
-                other{"{0} nm"}\r
+                dnam{"ᎾᎠ"}\r
+                one{"{0} ᎾᎠ"}\r
+                other{"{0} ᎾᎠ"}\r
             }\r
             nautical-mile{\r
-                dnam{"nmi"}\r
-                one{"{0} nmi"}\r
-                other{"{0} nmi"}\r
+                dnam{"ᎠᎺᎢ"}\r
+                one{"{0} ᎠᎺᎢ"}\r
+                other{"{0} ᎠᎺᎢ"}\r
             }\r
             parsec{\r
                 dnam{"ᎢᏯᏆᏎᎦ"}\r
-                one{"{0} pc"}\r
-                other{"{0} pc"}\r
+                one{"{0} ᎢᏆ"}\r
+                other{"{0} ᎢᏆ"}\r
             }\r
             picometer{\r
-                dnam{"pm"}\r
-                one{"{0} pm"}\r
-                other{"{0} pm"}\r
+                dnam{"ᏇᎢᎠ"}\r
+                one{"{0} ᏇᎢᎠ"}\r
+                other{"{0} ᏇᎢᎠ"}\r
             }\r
             point{\r
                 dnam{"ᏧᏓᏓᏟ"}\r
@@ -1284,8 +1329,8 @@ chr{
             }\r
             yard{\r
                 dnam{"ᎢᏯᏯᏗ"}\r
-                one{"{0} yd"}\r
-                other{"{0} yd"}\r
+                one{"{0} ᏯᏗ"}\r
+                other{"{0} ᏯᏗ"}\r
             }\r
         }\r
         light{\r
@@ -1384,13 +1429,18 @@ chr{
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"atm"}\r
+                one{"{0} atm"}\r
+                other{"{0} atm"}\r
+            }\r
             hectopascal{\r
                 dnam{"hPa"}\r
                 one{"{0} hPa"}\r
                 other{"{0} hPa"}\r
             }\r
             inch-hg{\r
-                dnam{"in Hg"}\r
+                dnam{"inHg"}\r
                 one{"{0} inHg"}\r
                 other{"{0} inHg"}\r
             }\r
@@ -1400,9 +1450,9 @@ chr{
                 other{"{0} mbar"}\r
             }\r
             millimeter-of-mercury{\r
-                dnam{"mm Hg"}\r
-                one{"{0} mm Hg"}\r
-                other{"{0} mm Hg"}\r
+                dnam{"mmHg"}\r
+                one{"{0} mmHg"}\r
+                other{"{0} mmHg"}\r
             }\r
             pound-per-square-inch{\r
                 dnam{"psi"}\r
@@ -1413,8 +1463,8 @@ chr{
         speed{\r
             kilometer-per-hour{\r
                 dnam{"km/ᏑᏟᎶᏓ"}\r
-                one{"{0} kph"}\r
-                other{"{0} kph"}\r
+                one{"{0} km/h"}\r
+                other{"{0} km/h"}\r
             }\r
             knot{\r
                 dnam{"kn"}\r
@@ -1428,8 +1478,8 @@ chr{
             }\r
             mile-per-hour{\r
                 dnam{"ᎢᏧᏟᎶᏓ/ᏑᏟᎶᏛ"}\r
-                one{"{0} mi/h"}\r
-                other{"{0} mi/h"}\r
+                one{"{0} mph"}\r
+                other{"{0} mph"}\r
             }\r
         }\r
         temperature{\r
@@ -1472,12 +1522,12 @@ chr{
                 per{"{0}/cm³"}\r
             }\r
             cubic-foot{\r
-                dnam{"á\8f\85á\8e© á\8f§á\8f\85á\8f\8fá\8f¯ á\8e¢á\8f\97á\8e³á\8f\8fá\8f\97"}\r
+                dnam{"á\8e¢á\8f\97á\8e³á\8f\8fá\8f\97³"}\r
                 one{"{0} ft³"}\r
                 other{"{0} ft³"}\r
             }\r
             cubic-inch{\r
-                dnam{"á\8f\85á\8e© á\8f§á\8f\85á\8f\8fá\8f¯ á\8e¢á\8f\97á\8f\8fá\8f\94á\8f\97á\8f\8dá\8f\97"}\r
+                dnam{"á\8e¢á\8f\97á\8f\8fá\8f\94á\8f\97á\8f\8dá\8f\97³"}\r
                 one{"{0} in³"}\r
                 other{"{0} in³"}\r
             }\r
@@ -1498,7 +1548,7 @@ chr{
                 other{"{0} mi³"}\r
             }\r
             cubic-yard{\r
-                dnam{"á\8f\85á\8e© á\8f§á\8f\85á\8f\8fá\8f¯ á\8e¢á\8f¯á\8f¯á\8f\97"}\r
+                dnam{"á\8e¢á\8f¯á\8f¯á\8f\97³"}\r
                 one{"{0} yd³"}\r
                 other{"{0} yd³"}\r
             }\r
index e2239e954599eed5ebf07ebd1118978e946988d4..e7b733d8e9269dd0f5fa81ad5a175ff0a4b4bd64 100644 (file)
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 ckb{\r
-    Version{"2.1.38.71"}\r
+    Version{"2.1.44.88"}\r
 }\r
index 9d6ab18bd99235fec4cff19cf64941432de96738..0a7d54d47a57552f6ff7a80ebc24aa0660171697 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 cs{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.91"}\r
     durationUnits{\r
         hm{"h:mm"}\r
         hms{"h:mm:ss"}\r
@@ -163,6 +163,20 @@ cs{
                 one{"{0} díl z milionu"}\r
                 other{"{0} dílů z milionu"}\r
             }\r
+            percent{\r
+                dnam{"procenta"}\r
+                few{"{0} procenta"}\r
+                many{"{0} procenta"}\r
+                one{"{0} procento"}\r
+                other{"{0} procent"}\r
+            }\r
+            permille{\r
+                dnam{"promile"}\r
+                few{"{0} promile"}\r
+                many{"{0} promile"}\r
+                one{"{0} promile"}\r
+                other{"{0} promile"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -195,6 +209,7 @@ cs{
             }\r
         }\r
         coordinate{\r
+            dnam{"světová strana"}\r
             east{"{0} východní délky"}\r
             north{"{0} severní šířky"}\r
             south{"{0} jižní šířky"}\r
@@ -257,6 +272,13 @@ cs{
                 one{"{0} megabajt"}\r
                 other{"{0} megabajtů"}\r
             }\r
+            petabyte{\r
+                dnam{"petabajty"}\r
+                few{"{0} petabajty"}\r
+                many{"{0} petabajtu"}\r
+                one{"{0} petabajt"}\r
+                other{"{0} petabajtů"}\r
+            }\r
             terabit{\r
                 dnam{"terabity"}\r
                 few{"{0} terabity"}\r
@@ -746,6 +768,13 @@ cs{
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"atmosféry"}\r
+                few{"{0} atmosféry"}\r
+                many{"{0} atmosféry"}\r
+                one{"{0} atmosféra"}\r
+                other{"{0} atmosfér"}\r
+            }\r
             hectopascal{\r
                 dnam{"hektopascaly"}\r
                 few{"{0} hektopascaly"}\r
@@ -1181,6 +1210,13 @@ cs{
                 one{"{0} ppm"}\r
                 other{"{0} ppm"}\r
             }\r
+            percent{\r
+                dnam{"%"}\r
+                few{"{0} %"}\r
+                many{"{0} %"}\r
+                one{"{0} %"}\r
+                other{"{0} %"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -1209,6 +1245,7 @@ cs{
             }\r
         }\r
         coordinate{\r
+            dnam{"směr"}\r
             east{"{0}E"}\r
             north{"{0}N"}\r
             south{"{0}S"}\r
@@ -1501,10 +1538,10 @@ cs{
             }\r
             fathom{\r
                 dnam{"fm"}\r
-                few{"{0} fm"}\r
-                many{"{0} fm"}\r
-                one{"{0} fm"}\r
-                other{"{0} fm"}\r
+                few{"{0} fth"}\r
+                many{"{0} fth"}\r
+                one{"{0} fth"}\r
+                other{"{0} fth"}\r
             }\r
             foot{\r
                 dnam{"ft"}\r
@@ -2190,6 +2227,20 @@ cs{
                 one{"{0} ppm"}\r
                 other{"{0} ppm"}\r
             }\r
+            percent{\r
+                dnam{"%"}\r
+                few{"{0} %"}\r
+                many{"{0} %"}\r
+                one{"{0} %"}\r
+                other{"{0} %"}\r
+            }\r
+            permille{\r
+                dnam{"‰"}\r
+                few{"{0} ‰"}\r
+                many{"{0} ‰"}\r
+                one{"{0} ‰"}\r
+                other{"{0} ‰"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -2222,6 +2273,7 @@ cs{
             }\r
         }\r
         coordinate{\r
+            dnam{"směr"}\r
             east{"{0} v. d."}\r
             north{"{0} s. š."}\r
             south{"{0} j. š."}\r
@@ -2284,6 +2336,13 @@ cs{
                 one{"{0} MB"}\r
                 other{"{0} MB"}\r
             }\r
+            petabyte{\r
+                dnam{"PB"}\r
+                few{"{0} PB"}\r
+                many{"{0} PB"}\r
+                one{"{0} PB"}\r
+                other{"{0} PB"}\r
+            }\r
             terabit{\r
                 dnam{"Tb"}\r
                 few{"{0} Tb"}\r
@@ -2514,10 +2573,10 @@ cs{
             }\r
             fathom{\r
                 dnam{"fm"}\r
-                few{"{0} fm"}\r
-                many{"{0} fm"}\r
-                one{"{0} fm"}\r
-                other{"{0} fm"}\r
+                few{"{0} fth"}\r
+                many{"{0} fth"}\r
+                one{"{0} fth"}\r
+                other{"{0} fth"}\r
             }\r
             foot{\r
                 dnam{"ft"}\r
@@ -2773,6 +2832,13 @@ cs{
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"atm"}\r
+                few{"{0} atm"}\r
+                many{"{0} atm"}\r
+                one{"{0} atm"}\r
+                other{"{0} atm"}\r
+            }\r
             hectopascal{\r
                 dnam{"hPa"}\r
                 few{"{0} hPa"}\r
index 5597fd228f1bef95f71d5aabffe39216cd4ce517..e52dfe65b4d4de27924a4878f6f9068ff487d705 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 cy{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.91"}\r
     durationUnits{\r
         hm{"h:mm"}\r
         hms{"h:mm:ss"}\r
@@ -203,6 +203,24 @@ cy{
                 two{"{0} rhan pob miliwn"}\r
                 zero{"{0} rhan pob miliwn"}\r
             }\r
+            percent{\r
+                dnam{"y cant"}\r
+                few{"{0}%"}\r
+                many{"{0}%"}\r
+                one{"{0} y cant"}\r
+                other{"{0} y cant"}\r
+                two{"{0}%"}\r
+                zero{"{0}%"}\r
+            }\r
+            permille{\r
+                dnam{"permille"}\r
+                few{"{0}‰"}\r
+                many{"{0}‰"}\r
+                one{"{0} permille"}\r
+                other{"{0} permille"}\r
+                two{"{0}‰"}\r
+                zero{"{0}‰"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -243,6 +261,7 @@ cy{
             }\r
         }\r
         coordinate{\r
+            dnam{"cyfeiriad cardinal"}\r
             east{"{0} i’r dwyrain"}\r
             north{"{0} i’r gogledd"}\r
             south{"{0} i’r de"}\r
@@ -321,6 +340,15 @@ cy{
                 two{"{0} fegabeit"}\r
                 zero{"{0} megabeit"}\r
             }\r
+            petabyte{\r
+                dnam{"petabyte"}\r
+                few{"{0} PB"}\r
+                many{"{0} PB"}\r
+                one{"{0} petabyte"}\r
+                other{"{0} petabyte"}\r
+                two{"{0} PB"}\r
+                zero{"{0} PB"}\r
+            }\r
             terabit{\r
                 dnam{"teradidau"}\r
                 few{"{0} teradid"}\r
@@ -940,6 +968,15 @@ cy{
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"atmosfferau"}\r
+                few{"{0} atm"}\r
+                many{"{0} atm"}\r
+                one{"{0} atmosffer"}\r
+                other{"{0} atmosffer"}\r
+                two{"{0} atm"}\r
+                zero{"{0} atm"}\r
+            }\r
             hectopascal{\r
                 dnam{"hectopascalau"}\r
                 few{"{0} hectopascal"}\r
@@ -1411,6 +1448,17 @@ cy{
         compound{\r
             per{"{0}/{1}"}\r
         }\r
+        concentr{\r
+            percent{\r
+                dnam{"%"}\r
+                few{"{0}%"}\r
+                many{"{0}%"}\r
+                one{"{0}%"}\r
+                other{"{0}%"}\r
+                two{"{0}%"}\r
+                zero{"{0}%"}\r
+            }\r
+        }\r
         consumption{\r
             liter-per-100kilometers{\r
                 dnam{"L/100km"}\r
@@ -1432,6 +1480,7 @@ cy{
             }\r
         }\r
         coordinate{\r
+            dnam{"cyfeiriad"}\r
             east{"{0}dn"}\r
             north{"{0}g"}\r
             south{"{0}d"}\r
@@ -1746,12 +1795,12 @@ cy{
             }\r
             fathom{\r
                 dnam{"gwrhydau"}\r
-                few{"{0}fm"}\r
-                many{"{0}fm"}\r
-                one{"{0}fm"}\r
-                other{"{0}fm"}\r
-                two{"{0}fm"}\r
-                zero{"{0}fm"}\r
+                few{"{0}fth"}\r
+                many{"{0}fth"}\r
+                one{"{0}fth"}\r
+                other{"{0}fth"}\r
+                two{"{0}fth"}\r
+                zero{"{0}fth"}\r
             }\r
             foot{\r
                 dnam{"troedfedd"}\r
@@ -2456,6 +2505,24 @@ cy{
                 two{"{0} ppm"}\r
                 zero{"{0} ppm"}\r
             }\r
+            percent{\r
+                dnam{"y cant"}\r
+                few{"{0}%"}\r
+                many{"{0}%"}\r
+                one{"{0}%"}\r
+                other{"{0}%"}\r
+                two{"{0}%"}\r
+                zero{"{0}%"}\r
+            }\r
+            permille{\r
+                dnam{"permille"}\r
+                few{"{0}‰"}\r
+                many{"{0}‰"}\r
+                one{"{0}‰"}\r
+                other{"{0}‰"}\r
+                two{"{0}‰"}\r
+                zero{"{0}‰"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -2496,6 +2563,7 @@ cy{
             }\r
         }\r
         coordinate{\r
+            dnam{"cyfeiriad"}\r
             east{"{0} dn"}\r
             north{"{0} g"}\r
             south{"{0} d"}\r
@@ -2574,6 +2642,15 @@ cy{
                 two{"{0} MB"}\r
                 zero{"{0} MB"}\r
             }\r
+            petabyte{\r
+                dnam{"PByte"}\r
+                few{"{0} PB"}\r
+                many{"{0} PB"}\r
+                one{"{0} PB"}\r
+                other{"{0} PB"}\r
+                two{"{0} PB"}\r
+                zero{"{0} PB"}\r
+            }\r
             terabit{\r
                 dnam{"Tb"}\r
                 few{"{0} Tb"}\r
@@ -3187,6 +3264,15 @@ cy{
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"atm"}\r
+                few{"{0} atm"}\r
+                many{"{0} atm"}\r
+                one{"{0} atm"}\r
+                other{"{0} atm"}\r
+                two{"{0} atm"}\r
+                zero{"{0} atm"}\r
+            }\r
             hectopascal{\r
                 dnam{"hPa"}\r
                 few{"{0} hPa"}\r
index 8943e2a8478340ca61120a4d721d1bc75e54ccd2..1afff6b0e848041dec94711ae0c76677247f3c35 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 da{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.65"}\r
     durationUnits{\r
         hm{"h.mm"}\r
         hms{"h.mm.ss"}\r
@@ -123,6 +123,16 @@ da{
                 one{"{0} parts per million"}\r
                 other{"{0} parts per million"}\r
             }\r
+            percent{\r
+                dnam{"procent"}\r
+                one{"{0} procent"}\r
+                other{"{0} procent"}\r
+            }\r
+            permille{\r
+                dnam{"promille"}\r
+                one{"{0} promille"}\r
+                other{"{0} promille"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -147,6 +157,7 @@ da{
             }\r
         }\r
         coordinate{\r
+            dnam{"kompasretning"}\r
             east{"{0} øst"}\r
             north{"{0} nord"}\r
             south{"{0} syd"}\r
@@ -159,9 +170,9 @@ da{
                 other{"{0} bit"}\r
             }\r
             byte{\r
-                dnam{"byte"}\r
+                dnam{"bytes"}\r
                 one{"{0} byte"}\r
-                other{"{0} byte"}\r
+                other{"{0} bytes"}\r
             }\r
             gigabit{\r
                 dnam{"gigabit"}\r
@@ -169,9 +180,9 @@ da{
                 other{"{0} gigabit"}\r
             }\r
             gigabyte{\r
-                dnam{"gigabyte"}\r
+                dnam{"gigabytes"}\r
                 one{"{0} gigabyte"}\r
-                other{"{0} GB"}\r
+                other{"{0} gigabytes"}\r
             }\r
             kilobit{\r
                 dnam{"kilobit"}\r
@@ -179,9 +190,9 @@ da{
                 other{"{0} kilobit"}\r
             }\r
             kilobyte{\r
-                dnam{"kilobyte"}\r
+                dnam{"kilobytes"}\r
                 one{"{0} kilobyte"}\r
-                other{"{0} kilobyte"}\r
+                other{"{0} kilobytes"}\r
             }\r
             megabit{\r
                 dnam{"megabit"}\r
@@ -189,9 +200,14 @@ da{
                 other{"{0} megabit"}\r
             }\r
             megabyte{\r
-                dnam{"megabyte"}\r
+                dnam{"megabytes"}\r
                 one{"{0} megabyte"}\r
-                other{"{0} megabyte"}\r
+                other{"{0} megabytes"}\r
+            }\r
+            petabyte{\r
+                dnam{"petabytes"}\r
+                one{"{0} petabyte"}\r
+                other{"{0} petabytes"}\r
             }\r
             terabit{\r
                 dnam{"terabit"}\r
@@ -199,9 +215,9 @@ da{
                 other{"{0} terabit"}\r
             }\r
             terabyte{\r
-                dnam{"terabyte"}\r
+                dnam{"terabytes"}\r
                 one{"{0} terabyte"}\r
-                other{"{0} terabyte"}\r
+                other{"{0} terabytes"}\r
             }\r
         }\r
         duration{\r
@@ -537,6 +553,11 @@ da{
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"atmosfære"}\r
+                one{"{0} atmosfære"}\r
+                other{"{0} atmosfære"}\r
+            }\r
             hectopascal{\r
                 dnam{"hektopascal"}\r
                 one{"{0} hektopascal"}\r
@@ -785,6 +806,13 @@ da{
         compound{\r
             per{"{0}/{1}"}\r
         }\r
+        concentr{\r
+            percent{\r
+                dnam{"%"}\r
+                one{"{0} %"}\r
+                other{"{0} %"}\r
+            }\r
+        }\r
         consumption{\r
             liter-per-100kilometers{\r
                 dnam{"l/100 km"}\r
@@ -793,6 +821,7 @@ da{
             }\r
         }\r
         coordinate{\r
+            dnam{"retning"}\r
             east{"{0}Ø"}\r
             north{"{0}N"}\r
             south{"{0}S"}\r
@@ -1072,12 +1101,12 @@ da{
         }\r
         angle{\r
             arc-minute{\r
-                dnam{"bueminutter"}\r
+                dnam{"buemin."}\r
                 one{"{0}′"}\r
                 other{"{0}′"}\r
             }\r
             arc-second{\r
-                dnam{"buesekunder"}\r
+                dnam{"buesek."}\r
                 one{"{0}″"}\r
                 other{"{0}″"}\r
             }\r
@@ -1155,8 +1184,8 @@ da{
         concentr{\r
             karat{\r
                 dnam{"karat"}\r
-                one{"{0} kt"}\r
-                other{"{0} kt"}\r
+                one{"{0} kt."}\r
+                other{"{0} kt."}\r
             }\r
             milligram-per-deciliter{\r
                 dnam{"mg/dl"}\r
@@ -1173,6 +1202,16 @@ da{
                 one{"{0} ppm"}\r
                 other{"{0} ppm"}\r
             }\r
+            percent{\r
+                dnam{"pct."}\r
+                one{"{0} pct."}\r
+                other{"{0} pct."}\r
+            }\r
+            permille{\r
+                dnam{"‰"}\r
+                one{"{0} ‰"}\r
+                other{"{0} ‰"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -1197,6 +1236,7 @@ da{
             }\r
         }\r
         coordinate{\r
+            dnam{"retning"}\r
             east{"{0}Ø"}\r
             north{"{0}N"}\r
             south{"{0}S"}\r
@@ -1224,9 +1264,9 @@ da{
                 other{"{0} GB"}\r
             }\r
             kilobit{\r
-                dnam{"kb"}\r
-                one{"{0} kb"}\r
-                other{"{0} kb"}\r
+                dnam{"kbit"}\r
+                one{"{0} kbit"}\r
+                other{"{0} kbit"}\r
             }\r
             kilobyte{\r
                 dnam{"kB"}\r
@@ -1234,19 +1274,24 @@ da{
                 other{"{0} kB"}\r
             }\r
             megabit{\r
-                dnam{"Mb"}\r
-                one{"{0} Mb"}\r
-                other{"{0} Mb"}\r
+                dnam{"Mbit"}\r
+                one{"{0} Mbit"}\r
+                other{"{0} Mbit"}\r
             }\r
             megabyte{\r
                 dnam{"MB"}\r
                 one{"{0} MB"}\r
                 other{"{0} MB"}\r
             }\r
+            petabyte{\r
+                dnam{"PB"}\r
+                one{"{0} PB"}\r
+                other{"{0} PB"}\r
+            }\r
             terabit{\r
-                dnam{"Tb"}\r
-                one{"{0} Tb"}\r
-                other{"{0} Tb"}\r
+                dnam{"Tbit"}\r
+                one{"{0} Tbit"}\r
+                other{"{0} Tbit"}\r
             }\r
             terabyte{\r
                 dnam{"TB"}\r
@@ -1587,6 +1632,11 @@ da{
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"atm"}\r
+                one{"{0} atm"}\r
+                other{"{0} atm"}\r
+            }\r
             hectopascal{\r
                 dnam{"hPa"}\r
                 one{"{0} hPa"}\r
index a12babf86ccbc18d0218e2d6b103592ac44411be..bc858dff0b2bd19bdc3bfc6fc80b0fd4d88affc6 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 de{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.91"}\r
     durationUnits{\r
         hm{"h:mm"}\r
         hms{"h:mm:ss"}\r
@@ -123,6 +123,16 @@ de{
                 one{"{0} Parts per million"}\r
                 other{"{0} Parts per million"}\r
             }\r
+            percent{\r
+                dnam{"Prozent"}\r
+                one{"{0} Prozent"}\r
+                other{"{0} Prozent"}\r
+            }\r
+            permille{\r
+                dnam{"Promille"}\r
+                one{"{0} Promille"}\r
+                other{"{0} Promille"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -147,6 +157,7 @@ de{
             }\r
         }\r
         coordinate{\r
+            dnam{"Himmelsrichtung"}\r
             east{"{0} Ost"}\r
             north{"{0} Nord"}\r
             south{"{0} Süd"}\r
@@ -193,6 +204,11 @@ de{
                 one{"{0} Megabyte"}\r
                 other{"{0} Megabytes"}\r
             }\r
+            petabyte{\r
+                dnam{"Petabytes"}\r
+                one{"{0} Petabyte"}\r
+                other{"{0} Petabytes"}\r
+            }\r
             terabit{\r
                 dnam{"Terabits"}\r
                 one{"{0} Terabit"}\r
@@ -552,6 +568,11 @@ de{
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"Atmosphären"}\r
+                one{"{0} Atmosphäre"}\r
+                other{"{0} Atmosphären"}\r
+            }\r
             hectopascal{\r
                 dnam{"Hektopascal"}\r
                 one{"{0} Hektopascal"}\r
@@ -833,6 +854,11 @@ de{
                 one{"{0} kt"}\r
                 other{"{0} kt"}\r
             }\r
+            percent{\r
+                dnam{"%"}\r
+                one{"{0} %"}\r
+                other{"{0} %"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -850,6 +876,7 @@ de{
             }\r
         }\r
         coordinate{\r
+            dnam{"NOSW"}\r
             east{"{0}O"}\r
             north{"{0} N"}\r
             south{"{0} S"}\r
@@ -1040,8 +1067,8 @@ de{
             }\r
             fathom{\r
                 dnam{"Faden"}\r
-                one{"{0} fm"}\r
-                other{"{0} fm"}\r
+                one{"{0} fth"}\r
+                other{"{0} fth"}\r
             }\r
             foot{\r
                 dnam{"ft"}\r
@@ -1494,6 +1521,16 @@ de{
                 one{"{0} ppm"}\r
                 other{"{0} ppm"}\r
             }\r
+            percent{\r
+                dnam{"%"}\r
+                one{"{0} %"}\r
+                other{"{0} %"}\r
+            }\r
+            permille{\r
+                dnam{"‰"}\r
+                one{"{0} ‰"}\r
+                other{"{0} ‰"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -1518,6 +1555,7 @@ de{
             }\r
         }\r
         coordinate{\r
+            dnam{"Richtung"}\r
             east{"{0} O"}\r
             north{"{0} N"}\r
             south{"{0} S"}\r
@@ -1564,6 +1602,11 @@ de{
                 one{"{0} MB"}\r
                 other{"{0} MB"}\r
             }\r
+            petabyte{\r
+                dnam{"PB"}\r
+                one{"{0} PB"}\r
+                other{"{0} PB"}\r
+            }\r
             terabit{\r
                 dnam{"Tb"}\r
                 one{"{0} Tb"}\r
@@ -1734,8 +1777,8 @@ de{
             }\r
             fathom{\r
                 dnam{"Faden"}\r
-                one{"{0} fm"}\r
-                other{"{0} fm"}\r
+                one{"{0} fth"}\r
+                other{"{0} fth"}\r
             }\r
             foot{\r
                 dnam{"Fuß"}\r
@@ -1923,6 +1966,11 @@ de{
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"atm"}\r
+                one{"{0} atm"}\r
+                other{"{0} atm"}\r
+            }\r
             hectopascal{\r
                 dnam{"hPa"}\r
                 one{"{0} hPa"}\r
index 7ab5fb6f08f8f7205a5f03ff4e57f7ce340bfa31..93a625280e881e71032f31e3e76977132aa683b7 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 de_CH{\r
-    Version{"2.1.39.37"}\r
+    Version{"2.1.44.50"}\r
     units{\r
         area{\r
             square-foot{\r
@@ -30,6 +30,7 @@ de_CH{
                 other{"{0} Kubikfuss"}\r
             }\r
             gallon-imperial{\r
+                one{"{0} gal Imp."}\r
                 other{"{0} gal Imp."}\r
                 per{"{0}/gal Imp."}\r
             }\r
index 843ebe4a5a102d0308dfb92831cde93353096d45..1cad283add9b5ba28c56db19297dee8316e93042 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 dsb{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.41.34"}\r
     durationUnits{\r
         hm{"h:mm"}\r
         hms{"h:mm:ss"}\r
index 86b791b7309713804a9a946e7be8b9cd7c4120c5..7f1331139b66e921fa82457a24b55d9585b33445 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 dz{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.41.34"}\r
     units{\r
         duration{\r
             day{\r
index 531a902b077344af1280d0d21395d8798c2847b3..9b06d21e924d72cb16d64fbcb259405b45cfdae9 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 ee{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.88"}\r
     units{\r
         duration{\r
             day{\r
index 01415f508c6ed8559ee10a60f50882b2c40208f0..61107780d2103bdd574ada0e80e3386eefba8d5b 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 el{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.65"}\r
     durationUnits{\r
         hm{"h:mm"}\r
         hms{"h:mm:ss"}\r
@@ -123,6 +123,16 @@ el{
                 one{"{0} μέρος ανά εκατομμύριο"}\r
                 other{"{0} μέρη ανά εκατομμύριο"}\r
             }\r
+            percent{\r
+                dnam{"τοις εκατό"}\r
+                one{"{0} τοις εκατό"}\r
+                other{"{0} τοις εκατό"}\r
+            }\r
+            permille{\r
+                dnam{"τοις χιλίοις"}\r
+                one{"{0} τοις χιλίοις"}\r
+                other{"{0} τοις χιλίοις"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -147,10 +157,11 @@ el{
             }\r
         }\r
         coordinate{\r
-            east{"{0} Α"}\r
-            north{"{0} Β"}\r
-            south{"{0} Ν"}\r
-            west{"{0} Δ"}\r
+            dnam{"σημεία ορίζοντα"}\r
+            east{"{0} ανατολικά"}\r
+            north{"{0} βόρεια"}\r
+            south{"{0} νότια"}\r
+            west{"{0} δυτικά"}\r
         }\r
         digital{\r
             bit{\r
@@ -193,6 +204,11 @@ el{
                 one{"{0} megabyte"}\r
                 other{"{0} megabyte"}\r
             }\r
+            petabyte{\r
+                dnam{"petabyte"}\r
+                one{"{0} petabyte"}\r
+                other{"{0} petabyte"}\r
+            }\r
             terabit{\r
                 dnam{"terabit"}\r
                 one{"{0} terabit"}\r
@@ -443,9 +459,9 @@ el{
         }\r
         light{\r
             lux{\r
-                dnam{"lux"}\r
-                one{"{0} lux"}\r
-                other{"{0} lux"}\r
+                dnam{"λουξ"}\r
+                one{"{0} λουξ"}\r
+                other{"{0} λουξ"}\r
             }\r
         }\r
         mass{\r
@@ -537,6 +553,11 @@ el{
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"ατμόσφαιρες"}\r
+                one{"{0} ατμόσφαιρα"}\r
+                other{"{0} ατμόσφαιρες"}\r
+            }\r
             hectopascal{\r
                 dnam{"εκτοπασκάλ"}\r
                 one{"{0} εκτοπασκάλ"}\r
@@ -682,7 +703,7 @@ el{
                 per{"{0} ανά γαλόνι"}\r
             }\r
             gallon-imperial{\r
-                dnam{"Î\91γγλοσαξονικά γαλόνια"}\r
+                dnam{"αγγλοσαξονικά γαλόνια"}\r
                 one{"{0} αγγλοσαξονικό γαλόνι"}\r
                 other{"{0} αγγλοσαξονικά γαλόνια"}\r
                 per{"{0} ανά αγγλοσαξονικό γαλόνι"}\r
@@ -785,6 +806,13 @@ el{
         compound{\r
             per{"{0}/{1}"}\r
         }\r
+        concentr{\r
+            percent{\r
+                dnam{"%"}\r
+                one{"{0}%"}\r
+                other{"{0}%"}\r
+            }\r
+        }\r
         consumption{\r
             liter-per-100kilometers{\r
                 dnam{"λ/100 χλμ"}\r
@@ -793,6 +821,7 @@ el{
             }\r
         }\r
         coordinate{\r
+            dnam{"σημεία"}\r
             east{"{0} Α"}\r
             north{"{0} Β"}\r
             south{"{0} Ν"}\r
@@ -1094,6 +1123,16 @@ el{
                 one{"{0} ppm"}\r
                 other{"{0} ppm"}\r
             }\r
+            percent{\r
+                dnam{"τοις εκατό"}\r
+                one{"{0}%"}\r
+                other{"{0}%"}\r
+            }\r
+            permille{\r
+                dnam{"τοις χιλίοις"}\r
+                one{"{0}‰"}\r
+                other{"{0}‰"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -1118,6 +1157,7 @@ el{
             }\r
         }\r
         coordinate{\r
+            dnam{"σημείο"}\r
             east{"{0} Α"}\r
             north{"{0} Β"}\r
             south{"{0} Ν"}\r
@@ -1164,6 +1204,11 @@ el{
                 one{"{0} MB"}\r
                 other{"{0} MB"}\r
             }\r
+            petabyte{\r
+                dnam{"PByte"}\r
+                one{"{0} PB"}\r
+                other{"{0} PB"}\r
+            }\r
             terabit{\r
                 dnam{"Tb"}\r
                 one{"{0} Tb"}\r
@@ -1414,9 +1459,9 @@ el{
         }\r
         light{\r
             lux{\r
-                dnam{"lux"}\r
-                one{"{0} lux"}\r
-                other{"{0} lux"}\r
+                dnam{"λουξ"}\r
+                one{"{0} λουξ"}\r
+                other{"{0} λουξ"}\r
             }\r
         }\r
         mass{\r
@@ -1508,6 +1553,11 @@ el{
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"atm"}\r
+                one{"{0} atm"}\r
+                other{"{0} atm"}\r
+            }\r
             hectopascal{\r
                 dnam{"hPa"}\r
                 one{"{0} hPa"}\r
index a908e32c9ee5c58d03a80fd62743296edae5191f..5f5f5ac5294f9c894cfb488ecba2e9564937b86d 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 en{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.91"}\r
     units{\r
         acceleration{\r
             g-force{\r
@@ -118,6 +118,16 @@ en{
                 one{"{0} part per million"}\r
                 other{"{0} parts per million"}\r
             }\r
+            percent{\r
+                dnam{"percent"}\r
+                one{"{0} percent"}\r
+                other{"{0} percent"}\r
+            }\r
+            permille{\r
+                dnam{"permille"}\r
+                one{"{0} permille"}\r
+                other{"{0} permille"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -142,6 +152,7 @@ en{
             }\r
         }\r
         coordinate{\r
+            dnam{"cardinal direction"}\r
             east{"{0} east"}\r
             north{"{0} north"}\r
             south{"{0} south"}\r
@@ -188,6 +199,11 @@ en{
                 one{"{0} megabyte"}\r
                 other{"{0} megabytes"}\r
             }\r
+            petabyte{\r
+                dnam{"petabytes"}\r
+                one{"{0} petabyte"}\r
+                other{"{0} petabytes"}\r
+            }\r
             terabit{\r
                 dnam{"terabits"}\r
                 one{"{0} terabit"}\r
@@ -547,6 +563,11 @@ en{
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"atmospheres"}\r
+                one{"{0} atmosphere"}\r
+                other{"{0} atmospheres"}\r
+            }\r
             hectopascal{\r
                 dnam{"hectopascals"}\r
                 one{"{0} hectopascal"}\r
@@ -844,6 +865,16 @@ en{
                 one{"{0}ppm"}\r
                 other{"{0}ppm"}\r
             }\r
+            percent{\r
+                dnam{"%"}\r
+                one{"{0}%"}\r
+                other{"{0}%"}\r
+            }\r
+            permille{\r
+                dnam{"‰"}\r
+                one{"{0}‰"}\r
+                other{"{0}‰"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -914,6 +945,11 @@ en{
                 one{"{0}MB"}\r
                 other{"{0}MB"}\r
             }\r
+            petabyte{\r
+                dnam{"PByte"}\r
+                one{"{0}PB"}\r
+                other{"{0}PB"}\r
+            }\r
             terabit{\r
                 dnam{"Tbit"}\r
                 one{"{0}Tb"}\r
@@ -1071,8 +1107,8 @@ en{
             }\r
             fathom{\r
                 dnam{"fathom"}\r
-                one{"{0}fm"}\r
-                other{"{0}fm"}\r
+                one{"{0}fth"}\r
+                other{"{0}fth"}\r
             }\r
             foot{\r
                 dnam{"ft"}\r
@@ -1252,6 +1288,11 @@ en{
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"atm"}\r
+                one{"{0}atm"}\r
+                other{"{0}atm"}\r
+            }\r
             hectopascal{\r
                 dnam{"hPa"}\r
                 one{"{0}hPa"}\r
@@ -1566,6 +1607,16 @@ en{
                 one{"{0} ppm"}\r
                 other{"{0} ppm"}\r
             }\r
+            percent{\r
+                dnam{"percent"}\r
+                one{"{0}%"}\r
+                other{"{0}%"}\r
+            }\r
+            permille{\r
+                dnam{"permille"}\r
+                one{"{0}‰"}\r
+                other{"{0}‰"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -1590,6 +1641,7 @@ en{
             }\r
         }\r
         coordinate{\r
+            dnam{"direction"}\r
             east{"{0} E"}\r
             north{"{0} N"}\r
             south{"{0} S"}\r
@@ -1636,6 +1688,11 @@ en{
                 one{"{0} MB"}\r
                 other{"{0} MB"}\r
             }\r
+            petabyte{\r
+                dnam{"PByte"}\r
+                one{"{0} PB"}\r
+                other{"{0} PB"}\r
+            }\r
             terabit{\r
                 dnam{"Tbit"}\r
                 one{"{0} Tb"}\r
@@ -1806,8 +1863,8 @@ en{
             }\r
             fathom{\r
                 dnam{"fathoms"}\r
-                one{"{0} ftm"}\r
-                other{"{0} ftm"}\r
+                one{"{0} fth"}\r
+                other{"{0} fth"}\r
             }\r
             foot{\r
                 dnam{"feet"}\r
@@ -1995,6 +2052,11 @@ en{
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"atm"}\r
+                one{"{0} atm"}\r
+                other{"{0} atm"}\r
+            }\r
             hectopascal{\r
                 dnam{"hPa"}\r
                 one{"{0} hPa"}\r
index ac60a268a398e41f87fa66148bdfe3f08a7c2e71..1761452b1f51262f2c6fb7b3ace4e9c967beeccf 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 en_001{\r
-    Version{"2.1.38.69"}\r
+    Version{"2.1.44.18"}\r
     units{\r
         acceleration{\r
             meter-per-second-squared{\r
@@ -266,6 +266,11 @@ en_001{
                 other{"{0}lb"}\r
             }\r
         }\r
+        speed{\r
+            kilometer-per-hour{\r
+                dnam{"km/h"}\r
+            }\r
+        }\r
         temperature{\r
             celsius{\r
                 one{"{0}°"}\r
@@ -452,7 +457,7 @@ en_001{
             megaliter{\r
                 dnam{"Ml"}\r
                 one{"{0} Ml"}\r
-                other{"{0} MLl"}\r
+                other{"{0} Ml"}\r
             }\r
             milliliter{\r
                 dnam{"ml"}\r
index 41e700cc309f7afb23456c9579d8d133409fec27..eaa93c5d7a975e307112c3936094b805f6993161 100644 (file)
@@ -2,8 +2,20 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 en_AU{\r
     %%Parent{"en_001"}\r
-    Version{"2.1.38.73"}\r
+    Version{"2.1.44.18"}\r
     units{\r
+        concentr{\r
+            percent{\r
+                dnam{"per cent"}\r
+                one{"{0} per cent"}\r
+                other{"{0} per cent"}\r
+            }\r
+            permille{\r
+                dnam{"per mill"}\r
+                one{"{0} per mill"}\r
+                other{"{0} per mill"}\r
+            }\r
+        }\r
         energy{\r
             kilowatt-hour{\r
                 dnam{"kilowatt hours"}\r
@@ -12,12 +24,6 @@ en_AU{
             }\r
         }\r
         length{\r
-            centimeter{\r
-                other{"{0} centimetres"}\r
-            }\r
-            decimeter{\r
-                other{"{0} decimetres"}\r
-            }\r
             kilometer{\r
                 dnam{"kilometre"}\r
             }\r
@@ -31,6 +37,9 @@ en_AU{
                 one{"tonne"}\r
                 other{"{0} tonnes"}\r
             }\r
+            stone{\r
+                one{"{0} stone"}\r
+            }\r
         }\r
         temperature{\r
             generic{\r
@@ -84,7 +93,6 @@ en_AU{
         }\r
         speed{\r
             kilometer-per-hour{\r
-                dnam{"km/h"}\r
                 one{"{0} km/h"}\r
                 other{"{0} km/h"}\r
             }\r
@@ -164,6 +172,12 @@ en_AU{
                 one{"{0} mmol/L"}\r
                 other{"{0} mmol/L"}\r
             }\r
+            percent{\r
+                dnam{"per cent"}\r
+            }\r
+            permille{\r
+                dnam{"per mill"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -237,10 +251,6 @@ en_AU{
                 one{"{0} AU"}\r
                 other{"{0} AU"}\r
             }\r
-            fathom{\r
-                one{"{0} fm"}\r
-                other{"{0} fm"}\r
-            }\r
             light-year{\r
                 one{"{0} l.y."}\r
                 other{"{0} l.y."}\r
@@ -251,9 +261,6 @@ en_AU{
                 one{"{0} CM"}\r
                 other{"{0} CM"}\r
             }\r
-            pound{\r
-                other{"{0} lb"}\r
-            }\r
         }\r
         pressure{\r
             millibar{\r
@@ -263,10 +270,6 @@ en_AU{
             }\r
         }\r
         speed{\r
-            kilometer-per-hour{\r
-                one{"{0} km/h"}\r
-                other{"{0} km/h"}\r
-            }\r
             meter-per-second{\r
                 dnam{"metres/sec."}\r
                 one{"{0} m/s."}\r
@@ -292,6 +295,9 @@ en_AU{
                 one{"{0} cL"}\r
                 other{"{0} cL"}\r
             }\r
+            cubic-centimeter{\r
+                one{"{0} cm³"}\r
+            }\r
             deciliter{\r
                 dnam{"dL"}\r
                 one{"{0} dL"}\r
index 79bbbecd2ccb6e50aed016ac4e504e2056c52ae1..c9f5e1b4bfffdd6c677b54b4045abf45e05ab534 100644 (file)
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 en_BE{\r
     %%Parent{"en_001"}\r
-    Version{"2.1.38.69"}\r
+    Version{"2.1.44.18"}\r
 }\r
index 05b8d7e44dca1674f356cff3eeb6d98c209fee55..1a9ffe71a9a513985b3f40d72c395901f2422b57 100644 (file)
@@ -2,7 +2,7 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 en_CA{\r
     %%Parent{"en_001"}\r
-    Version{"2.1.38.73"}\r
+    Version{"2.1.44.88"}\r
     units{\r
         concentr{\r
             karat{\r
@@ -105,11 +105,6 @@ en_CA{
             }\r
         }\r
         speed{\r
-            kilometer-per-hour{\r
-                dnam{"km/h"}\r
-                one{"{0}km/h"}\r
-                other{"{0}km/h"}\r
-            }\r
             mile-per-hour{\r
                 dnam{"mi./hr."}\r
             }\r
@@ -397,10 +392,6 @@ en_CA{
             }\r
         }\r
         speed{\r
-            kilometer-per-hour{\r
-                one{"{0} km/h"}\r
-                other{"{0} km/h"}\r
-            }\r
             knot{\r
                 dnam{"kn."}\r
                 one{"{0} kn."}\r
index 9d397f22bbd963787276a37617ca3d16e685f355..cceab2f086a4ee560bb10b831d7e2025ab2da878 100644 (file)
@@ -2,33 +2,28 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 en_GB{\r
     %%Parent{"en_001"}\r
-    Version{"2.1.38.73"}\r
+    Version{"2.1.44.18"}\r
     units{\r
-        speed{\r
-            kilometer-per-hour{\r
-                one{"{0} kilometre per hour"}\r
+        concentr{\r
+            percent{\r
+                dnam{"per cent"}\r
+                one{"{0} per cent"}\r
+                other{"{0} per cent"}\r
             }\r
-        }\r
-    }\r
-    unitsNarrow{\r
-        duration{\r
-            hour{\r
-                per{"{0}/h"}\r
-            }\r
-            second{\r
-                per{"{0}/s"}\r
+            permille{\r
+                dnam{"per mille"}\r
+                one{"{0} per mille"}\r
+                other{"{0} per mille"}\r
             }\r
         }\r
     }\r
     unitsShort{\r
-        mass{\r
-            stone{\r
-                other{"{0} st"}\r
+        concentr{\r
+            percent{\r
+                dnam{"per cent"}\r
             }\r
-        }\r
-        volume{\r
-            megaliter{\r
-                other{"{0} Ml"}\r
+            permille{\r
+                dnam{"per mille"}\r
             }\r
         }\r
     }\r
index e057509da41e0ec6ff27336478410f6d0a4d1789..422f3b6a6dad757046e1ffd6b04e8f7a3951cfac 100644 (file)
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 en_HK{\r
     %%Parent{"en_001"}\r
-    Version{"2.1.38.69"}\r
+    Version{"2.1.43.65"}\r
 }\r
index 56507ab1caec75b84a939d098c498d4e37c06c11..1b0d83feb5be8a292a2db02cdfb58ff8ef3942f7 100644 (file)
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 en_IE{\r
     %%Parent{"en_001"}\r
-    Version{"2.1.38.69"}\r
+    Version{"2.1.44.18"}\r
 }\r
index 55ab3729b7206a5d3596f644eaf101d6b4dd8488..d24f7358b32040c1798e095f032d4952b761b3a7 100644 (file)
@@ -2,5 +2,21 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 en_IN{\r
     %%Parent{"en_001"}\r
-    Version{"2.1.38.73"}\r
+    Version{"2.1.44.18"}\r
+    unitsNarrow{\r
+        speed{\r
+            kilometer-per-hour{\r
+                one{"{0}kph"}\r
+                other{"{0}kph"}\r
+            }\r
+        }\r
+    }\r
+    unitsShort{\r
+        speed{\r
+            kilometer-per-hour{\r
+                one{"{0} kph"}\r
+                other{"{0} kph"}\r
+            }\r
+        }\r
+    }\r
 }\r
index 47beda639122e92c68191e8de9aada265bbf52f3..275273173a875074ca80e8daeb04440c52d4bfd4 100644 (file)
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 en_JM{\r
     %%Parent{"en_001"}\r
-    Version{"2.1.38.69"}\r
+    Version{"2.1.44.18"}\r
 }\r
index b470846d741ca5e7072b6f79ba29e0681ffd9e76..1e1d59ae79e65c7b20ace915c8a5117e3087ce5b 100644 (file)
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 en_NZ{\r
     %%Parent{"en_001"}\r
-    Version{"2.1.38.73"}\r
+    Version{"2.1.44.88"}\r
 }\r
index 3c7e040a21a1efab7e5594476f58671bd11db200..14f8030a146afd6f117b5a8dbbd3b94ddf5c110f 100644 (file)
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 en_ZW{\r
     %%Parent{"en_001"}\r
-    Version{"2.1.38.69"}\r
+    Version{"2.1.44.18"}\r
 }\r
index c901e5afe7c56ac3fc6063e6a54acfbb7676ea1a..b772d57e6398dad3bd7b2760f819db5cbb7c0616 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 es{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.88"}\r
     durationUnits{\r
         hm{"h:mm"}\r
         hms{"h:mm:ss"}\r
@@ -123,6 +123,16 @@ es{
                 one{"{0} parte por millón"}\r
                 other{"{0} partes por millón"}\r
             }\r
+            percent{\r
+                dnam{"por ciento"}\r
+                one{"{0} por ciento"}\r
+                other{"{0} por ciento"}\r
+            }\r
+            permille{\r
+                dnam{"por mil"}\r
+                one{"{0} por mil"}\r
+                other{"{0} por mil"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -147,6 +157,7 @@ es{
             }\r
         }\r
         coordinate{\r
+            dnam{"punto cardinal"}\r
             east{"{0} E"}\r
             north{"{0} N"}\r
             south{"{0} S"}\r
@@ -193,6 +204,11 @@ es{
                 one{"{0} megabyte"}\r
                 other{"{0} megabytes"}\r
             }\r
+            petabyte{\r
+                dnam{"petabytes"}\r
+                one{"{0} petabyte"}\r
+                other{"{0} petabytes"}\r
+            }\r
             terabit{\r
                 dnam{"terabits"}\r
                 one{"{0} terabit"}\r
@@ -537,6 +553,11 @@ es{
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"atmósferas"}\r
+                one{"{0} atmósfera"}\r
+                other{"{0} atmósferas"}\r
+            }\r
             hectopascal{\r
                 dnam{"hectopascales"}\r
                 one{"{0} hectopascal"}\r
@@ -785,6 +806,13 @@ es{
         compound{\r
             per{"{0}/{1}"}\r
         }\r
+        concentr{\r
+            percent{\r
+                dnam{"%"}\r
+                one{"{0} %"}\r
+                other{"{0} %"}\r
+            }\r
+        }\r
         consumption{\r
             liter-per-100kilometers{\r
                 dnam{"l/100km"}\r
@@ -793,6 +821,7 @@ es{
             }\r
         }\r
         coordinate{\r
+            dnam{"punto"}\r
             east{"{0}E"}\r
             north{"{0}N"}\r
             south{"{0}S"}\r
@@ -1192,6 +1221,16 @@ es{
                 one{"{0} ppm"}\r
                 other{"{0} ppm"}\r
             }\r
+            percent{\r
+                dnam{"por ciento"}\r
+                one{"{0} %"}\r
+                other{"{0} %"}\r
+            }\r
+            permille{\r
+                dnam{"por mil"}\r
+                one{"{0} ‰"}\r
+                other{"{0} ‰"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -1216,6 +1255,7 @@ es{
             }\r
         }\r
         coordinate{\r
+            dnam{"punto"}\r
             east{"{0} E"}\r
             north{"{0} N"}\r
             south{"{0} S"}\r
@@ -1262,6 +1302,11 @@ es{
                 one{"{0} MB"}\r
                 other{"{0} MB"}\r
             }\r
+            petabyte{\r
+                dnam{"PB"}\r
+                one{"{0} PB"}\r
+                other{"{0} PB"}\r
+            }\r
             terabit{\r
                 dnam{"Tb"}\r
                 one{"{0} Tb"}\r
@@ -1606,6 +1651,11 @@ es{
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"atm"}\r
+                one{"{0} atm"}\r
+                other{"{0} atm"}\r
+            }\r
             hectopascal{\r
                 dnam{"hPa"}\r
                 one{"{0} hPa"}\r
index 5acac2d6aa7111f6e0670a8154cc03d70fa79968..d4670b45d989084a252dcc8cadd606d32c58d5e4 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 es_419{\r
-    Version{"2.1.38.39"}\r
+    Version{"2.1.43.65"}\r
     units{\r
         angle{\r
             revolution{\r
@@ -57,9 +57,9 @@ es_419{
                 other{"{0} kilojules"}\r
             }\r
             kilowatt-hour{\r
-                dnam{"kilowatts-horas"}\r
+                dnam{"kilowatts-hora"}\r
                 one{"{0} kilowatt-hora"}\r
-                other{"{0} kilowatts-horas"}\r
+                other{"{0} kilowatts-hora"}\r
             }\r
         }\r
         frequency{\r
@@ -83,6 +83,11 @@ es_419{
                 other{"{0} megahertz"}\r
             }\r
         }\r
+        length{\r
+            mile-scandinavian{\r
+                dnam{"milla escandinava"}\r
+            }\r
+        }\r
         mass{\r
             stone{\r
                 dnam{"stones"}\r
@@ -131,7 +136,7 @@ es_419{
         }\r
         volume{\r
             acre-foot{\r
-                dnam{"acre pie"}\r
+                dnam{"acre-pies"}\r
                 one{"{0} acre pie"}\r
                 other{"{0} acres pies"}\r
             }\r
@@ -221,6 +226,11 @@ es_419{
                 other{"{0}kn"}\r
             }\r
         }\r
+        volume{\r
+            cup{\r
+                one{"{0} tza."}\r
+            }\r
+        }\r
     }\r
     unitsShort{\r
         acceleration{\r
@@ -296,6 +306,9 @@ es_419{
             parsec{\r
                 dnam{"parsecs"}\r
             }\r
+            point{\r
+                dnam{"pto."}\r
+            }\r
             yard{\r
                 dnam{"yardas"}\r
             }\r
index 32863f56105af617b58db5ddcf655cedf1b197a4..e2b47a53bc51507ac038bff31d88914e3511a6dc 100644 (file)
@@ -2,7 +2,7 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 es_AR{\r
     %%Parent{"es_419"}\r
-    Version{"2.1.38.39"}\r
+    Version{"2.1.43.65"}\r
     units{\r
         duration{\r
             year{\r
index b6347a080f405a84f853dbeea7bcf76681013a33..25ca259b8fd02a6d626dc9a02ce50109f55be7cf 100644 (file)
@@ -2,7 +2,7 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 es_CO{\r
     %%Parent{"es_419"}\r
-    Version{"2.1.38.39"}\r
+    Version{"2.1.43.65"}\r
     units{\r
         duration{\r
             month{\r
index bbfb54b47764437447c67d849db6159fa931dc5f..a6f231da15d7498e07321e581b315e7909184c00 100644 (file)
@@ -2,7 +2,7 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 es_MX{\r
     %%Parent{"es_419"}\r
-    Version{"2.1.38.73"}\r
+    Version{"2.1.44.5"}\r
     units{\r
         angle{\r
             arc-minute{\r
@@ -46,7 +46,6 @@ es_MX{
         }\r
         energy{\r
             kilowatt-hour{\r
-                dnam{"kilowatt-hora"}\r
                 one{"kilowatt-hora"}\r
                 other{"{0} kilowatts-hora"}\r
             }\r
@@ -102,6 +101,11 @@ es_MX{
                 dnam{"lux"}\r
             }\r
         }\r
+        mass{\r
+            microgram{\r
+                other{"{0} microgramos"}\r
+            }\r
+        }\r
         power{\r
             gigawatt{\r
                 dnam{"gigavatios"}\r
@@ -109,7 +113,7 @@ es_MX{
                 other{"{0} gigavatios"}\r
             }\r
             horsepower{\r
-                one{"{0} caballo de vapor"}\r
+                one{"{0} caballo de fuerza"}\r
             }\r
             kilowatt{\r
                 dnam{"kilovatios"}\r
@@ -141,7 +145,6 @@ es_MX{
         }\r
         volume{\r
             acre-foot{\r
-                dnam{"acre-pies"}\r
                 one{"{0} acre-pie"}\r
                 other{"{0} acre-pies"}\r
             }\r
@@ -181,6 +184,12 @@ es_MX{
                 other{"{0}a"}\r
             }\r
         }\r
+        temperature{\r
+            celsius{\r
+                one{"{0} °C"}\r
+                other{"{0} °C"}\r
+            }\r
+        }\r
     }\r
     unitsShort{\r
         acceleration{\r
@@ -202,6 +211,19 @@ es_MX{
                 dnam{"º"}\r
             }\r
         }\r
+        concentr{\r
+            karat{\r
+                dnam{"kt"}\r
+                one{"{0} kt"}\r
+                other{"{0} kt"}\r
+            }\r
+            percent{\r
+                dnam{"%"}\r
+            }\r
+            permille{\r
+                dnam{"‰"}\r
+            }\r
+        }\r
         consumption{\r
             mile-per-gallon-imperial{\r
                 dnam{"mpg Imp."}\r
@@ -245,6 +267,11 @@ es_MX{
                 per{"{0}/a"}\r
             }\r
         }\r
+        electric{\r
+            volt{\r
+                dnam{"V"}\r
+            }\r
+        }\r
         length{\r
             astronomical-unit{\r
                 dnam{"au"}\r
@@ -252,7 +279,7 @@ es_MX{
                 other{"{0} au"}\r
             }\r
             light-year{\r
-                dnam{"al"}\r
+                dnam{"a. l."}\r
                 one{"{0} a. l."}\r
                 other{"{0} a. l."}\r
             }\r
@@ -300,6 +327,11 @@ es_MX{
                 dnam{"km/hora"}\r
             }\r
         }\r
+        temperature{\r
+            celsius{\r
+                one{"{0} °C"}\r
+            }\r
+        }\r
         volume{\r
             cup{\r
                 dnam{"tza."}\r
index e8adcf9c2e09b092bb6851822a702e3f97755566..ef718ae7fec4a24519943363d31e91745b7e6649 100644 (file)
@@ -2,7 +2,7 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 es_PY{\r
     %%Parent{"es_419"}\r
-    Version{"2.1.38.39"}\r
+    Version{"2.1.43.65"}\r
     units{\r
         duration{\r
             year{\r
index a79fe5d6b855af92c6cb43419ee0fe142ef7cfe7..53d1e49304d1e3c09f09ea1433094d38e02ddd46 100644 (file)
@@ -2,7 +2,7 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 es_US{\r
     %%Parent{"es_419"}\r
-    Version{"2.1.38.73"}\r
+    Version{"2.1.43.65"}\r
     units{\r
         angle{\r
             revolution{\r
index 93c3e614731e6221cfc0e9167597c71f7c8af8d5..c68a77d63a3ad3040e20adea17a07b7e4fd0b086 100644 (file)
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 es_UY{\r
     %%Parent{"es_419"}\r
-    Version{"2.1.38.39"}\r
+    Version{"2.1.44.79"}\r
 }\r
index abcf16de73c59e97c3dc2c21f4de9bd5347f96a8..4a4cf89fe26d596ded03eaa5f32c362d7e787a3f 100644 (file)
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 es_VE{\r
     %%Parent{"es_419"}\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.41.45"}\r
 }\r
index 37c8ee08a38080946a9166a522ab81d0c7739de6..82aec797a6e0bab328670ca77673a02a3e1c7507 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 et{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.91"}\r
     durationUnits{\r
         hm{"h:mm"}\r
         hms{"h:mm:ss"}\r
@@ -123,6 +123,16 @@ et{
                 one{"{0} osa miljoni kohta"}\r
                 other{"{0} osa miljoni kohta"}\r
             }\r
+            percent{\r
+                dnam{"protsent"}\r
+                one{"{0} protsent"}\r
+                other{"{0} protsenti"}\r
+            }\r
+            permille{\r
+                dnam{"promill"}\r
+                one{"{0} promill"}\r
+                other{"{0} promilli"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -147,6 +157,7 @@ et{
             }\r
         }\r
         coordinate{\r
+            dnam{"põhiilmakaar"}\r
             east{"{0} idapikkust"}\r
             north{"{0} põhjalaiust"}\r
             south{"{0} lõunalaiust"}\r
@@ -193,6 +204,11 @@ et{
                 one{"{0} megabait"}\r
                 other{"{0} megabaiti"}\r
             }\r
+            petabyte{\r
+                dnam{"petabaidid"}\r
+                one{"{0} petabait"}\r
+                other{"{0} petabaiti"}\r
+            }\r
             terabit{\r
                 dnam{"terabitid"}\r
                 one{"{0} terabitt"}\r
@@ -552,6 +568,11 @@ et{
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"atmosfäärid"}\r
+                one{"{0} atmosfäär"}\r
+                other{"{0} atmosfääri"}\r
+            }\r
             hectopascal{\r
                 dnam{"hektopaskalid"}\r
                 one{"{0} hektopaskal"}\r
@@ -816,6 +837,11 @@ et{
                 one{"{0} kt"}\r
                 other{"{0} kt"}\r
             }\r
+            percent{\r
+                dnam{"%"}\r
+                one{"{0}%"}\r
+                other{"{0}%"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -825,6 +851,7 @@ et{
             }\r
         }\r
         coordinate{\r
+            dnam{"ilmakaar"}\r
             east{"{0} E"}\r
             north{"{0} N"}\r
             south{"{0} S"}\r
@@ -914,8 +941,8 @@ et{
             }\r
             fathom{\r
                 dnam{"süllad"}\r
-                one{"{0} fm"}\r
-                other{"{0} fm"}\r
+                one{"{0} fth"}\r
+                other{"{0} fth"}\r
             }\r
             foot{\r
                 dnam{"ft"}\r
@@ -1280,6 +1307,16 @@ et{
                 one{"{0} ppm"}\r
                 other{"{0} ppm"}\r
             }\r
+            percent{\r
+                dnam{"%"}\r
+                one{"{0}%"}\r
+                other{"{0}%"}\r
+            }\r
+            permille{\r
+                dnam{"‰"}\r
+                one{"{0}‰"}\r
+                other{"{0}‰"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -1304,6 +1341,7 @@ et{
             }\r
         }\r
         coordinate{\r
+            dnam{"ilmakaar"}\r
             east{"{0} ip"}\r
             north{"{0} pl"}\r
             south{"{0} ll"}\r
@@ -1350,6 +1388,11 @@ et{
                 one{"{0} MB"}\r
                 other{"{0} MB"}\r
             }\r
+            petabyte{\r
+                dnam{"PB"}\r
+                one{"{0} PB"}\r
+                other{"{0} PB"}\r
+            }\r
             terabit{\r
                 dnam{"Tb"}\r
                 one{"{0} Tb"}\r
@@ -1520,8 +1563,8 @@ et{
             }\r
             fathom{\r
                 dnam{"süllad"}\r
-                one{"{0} fm"}\r
-                other{"{0} fm"}\r
+                one{"{0} fth"}\r
+                other{"{0} fth"}\r
             }\r
             foot{\r
                 dnam{"ft"}\r
@@ -1709,6 +1752,11 @@ et{
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"atm"}\r
+                one{"{0} atm"}\r
+                other{"{0} atm"}\r
+            }\r
             hectopascal{\r
                 dnam{"hPa"}\r
                 one{"{0} hPa"}\r
index d6748e2d6a495bd377b2683bd5f5eeebe75754f6..1ed1784a130af4440639fa90317ea5a669e84a28 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 eu{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.65"}\r
     durationUnits{\r
         hm{"h:mm"}\r
         hms{"h:mm:ss"}\r
@@ -123,6 +123,16 @@ eu{
                 one{"{0} zati milioi bakoitzeko"}\r
                 other{"{0} zati milioi bakoitzeko"}\r
             }\r
+            percent{\r
+                dnam{"%"}\r
+                one{"% {0}"}\r
+                other{"% {0}"}\r
+            }\r
+            permille{\r
+                dnam{"‰"}\r
+                one{"‰ {0}"}\r
+                other{"‰ {0}"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -147,6 +157,7 @@ eu{
             }\r
         }\r
         coordinate{\r
+            dnam{"puntu kardinala"}\r
             east{"{0} E"}\r
             north{"{0} I"}\r
             south{"{0} H"}\r
@@ -193,6 +204,11 @@ eu{
                 one{"{0} megabyte"}\r
                 other{"{0} megabyte"}\r
             }\r
+            petabyte{\r
+                dnam{"PB"}\r
+                one{"{0} PB"}\r
+                other{"{0} PB"}\r
+            }\r
             terabit{\r
                 dnam{"terabit-ak"}\r
                 one{"{0} terabit"}\r
@@ -537,6 +553,11 @@ eu{
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"atm"}\r
+                one{"{0} atm"}\r
+                other{"{0} atm"}\r
+            }\r
             hectopascal{\r
                 dnam{"hektopascalak"}\r
                 one{"{0} hektopascal"}\r
@@ -785,6 +806,13 @@ eu{
         compound{\r
             per{"{0}/{1}"}\r
         }\r
+        concentr{\r
+            percent{\r
+                dnam{"%"}\r
+                one{"% {0}"}\r
+                other{"% {0}"}\r
+            }\r
+        }\r
         consumption{\r
             liter-per-100kilometers{\r
                 dnam{"l/100 km"}\r
@@ -793,6 +821,7 @@ eu{
             }\r
         }\r
         coordinate{\r
+            dnam{"norabidea"}\r
             east{"{0} E"}\r
             north{"{0} I"}\r
             south{"{0} H"}\r
@@ -1092,6 +1121,16 @@ eu{
                 one{"{0} ppm"}\r
                 other{"{0} ppm"}\r
             }\r
+            percent{\r
+                dnam{"%"}\r
+                one{"% {0}"}\r
+                other{"% {0}"}\r
+            }\r
+            permille{\r
+                dnam{"‰"}\r
+                one{"‰ {0}"}\r
+                other{"‰ {0}"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -1116,6 +1155,7 @@ eu{
             }\r
         }\r
         coordinate{\r
+            dnam{"norabidea"}\r
             east{"{0} E"}\r
             north{"{0} I"}\r
             south{"{0} H"}\r
@@ -1162,6 +1202,11 @@ eu{
                 one{"{0} MB"}\r
                 other{"{0} MB"}\r
             }\r
+            petabyte{\r
+                dnam{"PB"}\r
+                one{"{0} PB"}\r
+                other{"{0} PB"}\r
+            }\r
             terabit{\r
                 dnam{"Tb"}\r
                 one{"{0} Tb"}\r
@@ -1506,6 +1551,11 @@ eu{
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"atm"}\r
+                one{"{0} atm"}\r
+                other{"{0} atm"}\r
+            }\r
             hectopascal{\r
                 dnam{"hPa"}\r
                 one{"{0} hPa"}\r
index 87084f303c92818b381bfaf3b10073ed8941c80e..2d76f8d0145b362d14c5b66f1f8c49d90c3560df 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 fa{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.65"}\r
     durationUnits{\r
         hm{"h:mm"}\r
         hms{"h:mm:ss"}\r
@@ -123,6 +123,16 @@ fa{
                 one{"{0} بخش در میلیون"}\r
                 other{"{0} بخش در میلیون"}\r
             }\r
+            percent{\r
+                dnam{"درصد"}\r
+                one{"{0} درصد"}\r
+                other{"{0} درصد"}\r
+            }\r
+            permille{\r
+                dnam{"هزارم"}\r
+                one{"{0} هزارم"}\r
+                other{"{0} هزارم"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -147,6 +157,7 @@ fa{
             }\r
         }\r
         coordinate{\r
+            dnam{"جهت اصلی"}\r
             east{"{0} شرقی"}\r
             north{"{0} شمالی"}\r
             south{"{0} جنوبی"}\r
@@ -193,6 +204,11 @@ fa{
                 one{"{0} مگابایت"}\r
                 other{"{0} مگابایت"}\r
             }\r
+            petabyte{\r
+                dnam{"پتابایت"}\r
+                one{"{0} پتابایت"}\r
+                other{"{0} پتابایت"}\r
+            }\r
             terabit{\r
                 dnam{"ترابیت"}\r
                 one{"{0} ترابیت"}\r
@@ -537,6 +553,11 @@ fa{
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"اتمسفر"}\r
+                one{"{0} اتمسفر"}\r
+                other{"{0} اتمسفر"}\r
+            }\r
             hectopascal{\r
                 dnam{"هکتوپاسکال"}\r
                 one{"{0} هکتوپاسکال"}\r
@@ -800,6 +821,13 @@ fa{
         compound{\r
             per{"{0}/{1}"}\r
         }\r
+        concentr{\r
+            percent{\r
+                dnam{"٪"}\r
+                one{"{0}٪"}\r
+                other{"{0}٪"}\r
+            }\r
+        }\r
         consumption{\r
             liter-per-100kilometers{\r
                 dnam{"لیتر/۱۰۰ کیلومتر"}\r
@@ -808,6 +836,7 @@ fa{
             }\r
         }\r
         coordinate{\r
+            dnam{"جهت"}\r
             east{"{0} شرقی"}\r
             north{"{0} شمالی"}\r
             south{"{0} جنوبی"}\r
@@ -1248,6 +1277,16 @@ fa{
                 one{"{0} ppm"}\r
                 other{"{0} ppm"}\r
             }\r
+            percent{\r
+                dnam{"درصد"}\r
+                one{"{0}٪"}\r
+                other{"{0}٪"}\r
+            }\r
+            permille{\r
+                dnam{"هزارم"}\r
+                one{"{0}‰"}\r
+                other{"{0}‰"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -1272,6 +1311,7 @@ fa{
             }\r
         }\r
         coordinate{\r
+            dnam{"جهت"}\r
             east{"{0} شرقی"}\r
             north{"{0} شمالی"}\r
             south{"{0} جنوبی"}\r
@@ -1318,6 +1358,11 @@ fa{
                 one{"{0} مگابایت"}\r
                 other{"{0} مگابایت"}\r
             }\r
+            petabyte{\r
+                dnam{"پتابایت"}\r
+                one{"{0} پتابایت"}\r
+                other{"{0} پتابایت"}\r
+            }\r
             terabit{\r
                 dnam{"ترابیت"}\r
                 one{"{0} ترابیت"}\r
@@ -1662,6 +1707,11 @@ fa{
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"اتمسفر"}\r
+                one{"{0} atm"}\r
+                other{"{0} atm"}\r
+            }\r
             hectopascal{\r
                 dnam{"هکتوپاسکال"}\r
                 one{"{0}‎ hPa"}\r
index 3bf0f9207367640c50826f8a4226a3acc8f3579d..de4b953ba868ee86b282bd69c6296114a9e560be 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 fi{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.91"}\r
     durationUnits{\r
         hm{"h.mm"}\r
         hms{"h.mm.ss"}\r
@@ -123,6 +123,16 @@ fi{
                 one{"{0} ppm"}\r
                 other{"{0} ppm"}\r
             }\r
+            percent{\r
+                dnam{"prosentit"}\r
+                one{"{0} prosentti"}\r
+                other{"{0} prosenttia"}\r
+            }\r
+            permille{\r
+                dnam{"promillet"}\r
+                one{"{0} promille"}\r
+                other{"{0} promillea"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -147,6 +157,7 @@ fi{
             }\r
         }\r
         coordinate{\r
+            dnam{"pääilmansuunta"}\r
             east{"{0}I"}\r
             north{"{0}P"}\r
             south{"{0}E"}\r
@@ -193,6 +204,11 @@ fi{
                 one{"{0} megatavu"}\r
                 other{"{0} megatavua"}\r
             }\r
+            petabyte{\r
+                dnam{"petatavut"}\r
+                one{"{0} petatavu"}\r
+                other{"{0} petatavua"}\r
+            }\r
             terabit{\r
                 dnam{"terabitit"}\r
                 one{"{0} terabitti"}\r
@@ -552,6 +568,11 @@ fi{
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"normaali-ilmakehät"}\r
+                one{"{0} normaali-ilmakehä"}\r
+                other{"{0} normaali-ilmakehää"}\r
+            }\r
             hectopascal{\r
                 dnam{"hehtopascalit"}\r
                 one{"{0} hehtopascal"}\r
@@ -871,6 +892,11 @@ fi{
                 one{"{0}ppm"}\r
                 other{"{0}ppm"}\r
             }\r
+            percent{\r
+                dnam{"%"}\r
+                one{"{0} %"}\r
+                other{"{0} %"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -895,6 +921,7 @@ fi{
             }\r
         }\r
         coordinate{\r
+            dnam{"suunta"}\r
             east{"{0}I"}\r
             north{"{0}P"}\r
             south{"{0}E"}\r
@@ -941,6 +968,11 @@ fi{
                 one{"{0}Mt"}\r
                 other{"{0}Mt"}\r
             }\r
+            petabyte{\r
+                dnam{"Pt"}\r
+                one{"{0}Pt"}\r
+                other{"{0}Pt"}\r
+            }\r
             terabit{\r
                 dnam{"Tb"}\r
                 one{"{0}Tb"}\r
@@ -1111,8 +1143,8 @@ fi{
             }\r
             fathom{\r
                 dnam{"fm"}\r
-                one{"{0}fm"}\r
-                other{"{0}fm"}\r
+                one{"{0}fth"}\r
+                other{"{0}fth"}\r
             }\r
             foot{\r
                 dnam{"ft"}\r
@@ -1614,6 +1646,16 @@ fi{
                 one{"{0} ppm"}\r
                 other{"{0} ppm"}\r
             }\r
+            percent{\r
+                dnam{"%"}\r
+                one{"{0} %"}\r
+                other{"{0} %"}\r
+            }\r
+            permille{\r
+                dnam{"‰"}\r
+                one{"{0} ‰"}\r
+                other{"{0} ‰"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -1638,6 +1680,7 @@ fi{
             }\r
         }\r
         coordinate{\r
+            dnam{"ilmansuunta"}\r
             east{"{0}I"}\r
             north{"{0}P"}\r
             south{"{0}E"}\r
@@ -1684,6 +1727,11 @@ fi{
                 one{"{0} Mt"}\r
                 other{"{0} Mt"}\r
             }\r
+            petabyte{\r
+                dnam{"Pt"}\r
+                one{"{0} Pt"}\r
+                other{"{0} Pt"}\r
+            }\r
             terabit{\r
                 dnam{"Tb"}\r
                 one{"{0} Tb"}\r
@@ -1854,8 +1902,8 @@ fi{
             }\r
             fathom{\r
                 dnam{"fm"}\r
-                one{"{0} fm"}\r
-                other{"{0} fm"}\r
+                one{"{0} fth"}\r
+                other{"{0} fth"}\r
             }\r
             foot{\r
                 dnam{"ft"}\r
@@ -2043,6 +2091,11 @@ fi{
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"atm"}\r
+                one{"{0} atm"}\r
+                other{"{0} atm"}\r
+            }\r
             hectopascal{\r
                 dnam{"hPa"}\r
                 one{"{0} hPa"}\r
index 242b0abb34c9fa49f9912f5c0e22422aa50546bf..1c7fa13e8f0f145c9d3e7c5e175cf5a1d342e75e 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 fil{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.91"}\r
     durationUnits{\r
         hm{"h:mm"}\r
         hms{"h:mm:ss"}\r
@@ -123,6 +123,16 @@ fil{
                 one{"{0} part per million"}\r
                 other{"{0} parts per million"}\r
             }\r
+            percent{\r
+                dnam{"porsyento"}\r
+                one{"{0} porsyento"}\r
+                other{"{0} na porsyento"}\r
+            }\r
+            permille{\r
+                dnam{"permille"}\r
+                one{"{0} permille"}\r
+                other{"{0} na permille"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -147,6 +157,7 @@ fil{
             }\r
         }\r
         coordinate{\r
+            dnam{"cardinal direction"}\r
             east{"{0}S"}\r
             north{"{0}H"}\r
             south{"{0}T"}\r
@@ -193,6 +204,11 @@ fil{
                 one{"{0} megabyte"}\r
                 other{"{0} na megabyte"}\r
             }\r
+            petabyte{\r
+                dnam{"petabytes"}\r
+                one{"{0} petabyte"}\r
+                other{"{0} petabytes"}\r
+            }\r
             terabit{\r
                 dnam{"terabits"}\r
                 one{"{0} terabit"}\r
@@ -552,6 +568,11 @@ fil{
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"atmospheres"}\r
+                one{"{0} atmosphere"}\r
+                other{"{0} atmospheres"}\r
+            }\r
             hectopascal{\r
                 dnam{"hectopascals"}\r
                 one{"{0} hectopascal"}\r
@@ -806,6 +827,13 @@ fil{
         compound{\r
             per{"{0}/{1}"}\r
         }\r
+        concentr{\r
+            percent{\r
+                dnam{"%"}\r
+                one{"{0}%"}\r
+                other{"{0}%"}\r
+            }\r
+        }\r
         consumption{\r
             liter-per-100kilometers{\r
                 dnam{"L/100km"}\r
@@ -814,6 +842,7 @@ fil{
             }\r
         }\r
         coordinate{\r
+            dnam{"direction"}\r
             east{"{0}S"}\r
             north{"{0}H"}\r
             south{"{0}T"}\r
@@ -902,8 +931,8 @@ fil{
             }\r
             fathom{\r
                 dnam{"fathom"}\r
-                one{"{0}fm"}\r
-                other{"{0}fm"}\r
+                one{"{0}fth"}\r
+                other{"{0}fth"}\r
             }\r
             foot{\r
                 dnam{"ft"}\r
@@ -1268,6 +1297,16 @@ fil{
                 one{"{0} ppm"}\r
                 other{"{0} ppm"}\r
             }\r
+            percent{\r
+                dnam{"%"}\r
+                one{"{0}%"}\r
+                other{"{0}%"}\r
+            }\r
+            permille{\r
+                dnam{"‰"}\r
+                one{"{0}‰"}\r
+                other{"{0}‰"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -1292,6 +1331,7 @@ fil{
             }\r
         }\r
         coordinate{\r
+            dnam{"direction"}\r
             east{"{0}S"}\r
             north{"{0}H"}\r
             south{"{0}T"}\r
@@ -1338,6 +1378,11 @@ fil{
                 one{"{0} MB"}\r
                 other{"{0} MB"}\r
             }\r
+            petabyte{\r
+                dnam{"PByte"}\r
+                one{"{0} PB"}\r
+                other{"{0} PB"}\r
+            }\r
             terabit{\r
                 dnam{"Tbit"}\r
                 one{"{0} Tb"}\r
@@ -1508,8 +1553,8 @@ fil{
             }\r
             fathom{\r
                 dnam{"fathoms"}\r
-                one{"{0} ftm"}\r
-                other{"{0} ftm"}\r
+                one{"{0} fth"}\r
+                other{"{0} fth"}\r
             }\r
             foot{\r
                 dnam{"talampakan"}\r
@@ -1697,6 +1742,11 @@ fil{
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"atm"}\r
+                one{"{0} atm"}\r
+                other{"{0} atm"}\r
+            }\r
             hectopascal{\r
                 dnam{"hPa"}\r
                 one{"{0} hPa"}\r
index 64707e63c3d610744ac9032ec5e43bea8255beaa..5f5d3791c4b914f3ebe5f9ec4dca432535c1f8b8 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 fo{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.41.34"}\r
     durationUnits{\r
         hm{"h:mm"}\r
         hms{"h:mm:ss"}\r
index 06c288ba7ea16b4294fb3a53e2b040ae26a01e7d..72c0d1659b735705e6c8b4a402d1cf043106483f 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 fr{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.91"}\r
     durationUnits{\r
         hm{"h:mm"}\r
         hms{"h:mm:ss"}\r
@@ -10,93 +10,93 @@ fr{
     units{\r
         acceleration{\r
             g-force{\r
-                dnam{"fois la gravitation terrestre"}\r
-                one{"{0} fois la gravitation terrestre"}\r
-                other{"{0} fois la gravitation terrestre"}\r
+                dnam{"accélération de pesanteur terrestre"}\r
+                one{"{0} fois l’accélération de pesanteur terrestre"}\r
+                other{"{0} fois l’accélération de pesanteur terrestre"}\r
             }\r
             meter-per-second-squared{\r
                 dnam{"mètres par seconde carrée"}\r
-                one{"{0} mètre par seconde carrée"}\r
-                other{"{0} mètres par seconde carrée"}\r
+                one{"{0} mètre par seconde carrée"}\r
+                other{"{0} mètres par seconde carrée"}\r
             }\r
         }\r
         angle{\r
             arc-minute{\r
                 dnam{"minutes d’arc"}\r
-                one{"{0} minute d’arc"}\r
-                other{"{0} minutes d’arc"}\r
+                one{"{0} minute d’arc"}\r
+                other{"{0} minutes d’arc"}\r
             }\r
             arc-second{\r
                 dnam{"secondes d’arc"}\r
-                one{"{0} seconde d’arc"}\r
-                other{"{0} secondes d’arc"}\r
+                one{"{0} seconde d’arc"}\r
+                other{"{0} secondes d’arc"}\r
             }\r
             degree{\r
                 dnam{"degrés"}\r
-                one{"{0} degré"}\r
-                other{"{0} degrés"}\r
+                one{"{0} degré"}\r
+                other{"{0} degrés"}\r
             }\r
             radian{\r
                 dnam{"radians"}\r
-                one{"{0} radian"}\r
-                other{"{0} radians"}\r
+                one{"{0} radian"}\r
+                other{"{0} radians"}\r
             }\r
             revolution{\r
                 dnam{"tour"}\r
-                one{"{0} tour"}\r
-                other{"{0} tours"}\r
+                one{"{0} tour"}\r
+                other{"{0} tours"}\r
             }\r
         }\r
         area{\r
             acre{\r
                 dnam{"acres anglo-saxonnes"}\r
-                one{"{0} acre anglo-saxonne"}\r
-                other{"{0} acres anglo-saxonnes"}\r
+                one{"{0} acre anglo-saxonne"}\r
+                other{"{0} acres anglo-saxonnes"}\r
             }\r
             hectare{\r
                 dnam{"hectares"}\r
-                one{"{0} hectare"}\r
-                other{"{0} hectares"}\r
+                one{"{0} hectare"}\r
+                other{"{0} hectares"}\r
             }\r
             square-centimeter{\r
                 dnam{"centimètres carrés"}\r
-                one{"{0} centimètre carré"}\r
-                other{"{0} centimètres carrés"}\r
+                one{"{0} centimètre carré"}\r
+                other{"{0} centimètres carrés"}\r
                 per{"{0} par centimètre carré"}\r
             }\r
             square-foot{\r
                 dnam{"pieds carrés"}\r
-                one{"{0} pied carré"}\r
-                other{"{0} pieds carrés"}\r
+                one{"{0} pied carré"}\r
+                other{"{0} pieds carrés"}\r
             }\r
             square-inch{\r
                 dnam{"pouces carrés"}\r
-                one{"{0} pouce carré"}\r
-                other{"{0} pouces carrés"}\r
+                one{"{0} pouce carré"}\r
+                other{"{0} pouces carrés"}\r
                 per{"{0} par pouce carré"}\r
             }\r
             square-kilometer{\r
                 dnam{"kilomètres carrés"}\r
-                one{"{0} kilomètre carré"}\r
-                other{"{0} kilomètres carrés"}\r
+                one{"{0} kilomètre carré"}\r
+                other{"{0} kilomètres carrés"}\r
                 per{"{0}/km²"}\r
             }\r
             square-meter{\r
                 dnam{"mètres carrés"}\r
-                one{"{0} mètre carré"}\r
-                other{"{0} mètres carrés"}\r
+                one{"{0} mètre carré"}\r
+                other{"{0} mètres carrés"}\r
                 per{"{0} par mètre carré"}\r
             }\r
             square-mile{\r
                 dnam{"milles carrés"}\r
-                one{"{0} mille carré"}\r
-                other{"{0} milles carrés"}\r
+                one{"{0} mille carré"}\r
+                other{"{0} milles carrés"}\r
                 per{"{0}/mi²"}\r
             }\r
             square-yard{\r
                 dnam{"yards carrés"}\r
-                one{"{0} yard carré"}\r
-                other{"{0} yards carrés"}\r
+                one{"{0} yard carré"}\r
+                other{"{0} yards carrés"}\r
             }\r
         }\r
         compound{\r
@@ -105,23 +105,33 @@ fr{
         concentr{\r
             karat{\r
                 dnam{"carats"}\r
-                one{"{0} carat"}\r
-                other{"{0} carats"}\r
+                one{"{0} carat"}\r
+                other{"{0} carats"}\r
             }\r
             milligram-per-deciliter{\r
                 dnam{"milligrammes par décilitre"}\r
-                one{"{0} milligramme par décilitre"}\r
-                other{"{0} milligrammes par décilitre"}\r
+                one{"{0} milligramme par décilitre"}\r
+                other{"{0} milligrammes par décilitre"}\r
             }\r
             millimole-per-liter{\r
                 dnam{"millimoles par litre"}\r
-                one{"{0} millimole par litre"}\r
-                other{"{0} millimoles par litre"}\r
+                one{"{0} millimole par litre"}\r
+                other{"{0} millimoles par litre"}\r
             }\r
             part-per-million{\r
                 dnam{"parts par million"}\r
-                one{"{0} part par million"}\r
-                other{"{0} parts par million"}\r
+                one{"{0} part par million"}\r
+                other{"{0} parts par million"}\r
+            }\r
+            percent{\r
+                dnam{"pour cent"}\r
+                one{"{0} pour cent"}\r
+                other{"{0}%"}\r
+            }\r
+            permille{\r
+                dnam{"pour mille"}\r
+                one{"{0} pour mille"}\r
+                other{"{0} pour mille"}\r
             }\r
         }\r
         consumption{\r
@@ -137,71 +147,77 @@ fr{
             }\r
             mile-per-gallon{\r
                 dnam{"miles par gallon"}\r
-                one{"{0} mile par gallon"}\r
-                other{"{0} miles par gallon"}\r
+                one{"{0} mile par gallon"}\r
+                other{"{0} miles par gallon"}\r
             }\r
             mile-per-gallon-imperial{\r
                 dnam{"miles par gallon impérial"}\r
-                one{"{0} mile par gallon impérial"}\r
-                other{"{0} miles par gallon impérial"}\r
+                one{"{0} mile par gallon impérial"}\r
+                other{"{0} miles par gallon impérial"}\r
             }\r
         }\r
         coordinate{\r
-            east{"{0} est"}\r
-            north{"{0} nord"}\r
-            south{"{0} sud"}\r
-            west{"{0} ouest"}\r
+            dnam{"direction"}\r
+            east{"{0} est"}\r
+            north{"{0} nord"}\r
+            south{"{0} sud"}\r
+            west{"{0} ouest"}\r
         }\r
         digital{\r
             bit{\r
                 dnam{"bits"}\r
-                one{"{0} bit"}\r
-                other{"{0} bits"}\r
+                one{"{0} bit"}\r
+                other{"{0} bits"}\r
             }\r
             byte{\r
                 dnam{"octets"}\r
-                one{"{0} octet"}\r
-                other{"{0} octets"}\r
+                one{"{0} octet"}\r
+                other{"{0} octets"}\r
             }\r
             gigabit{\r
                 dnam{"gigabits"}\r
-                one{"{0} gigabit"}\r
-                other{"{0} gigabits"}\r
+                one{"{0} gigabit"}\r
+                other{"{0} gigabits"}\r
             }\r
             gigabyte{\r
                 dnam{"gigaoctets"}\r
-                one{"{0} gigaoctet"}\r
-                other{"{0} gigaoctets"}\r
+                one{"{0} gigaoctet"}\r
+                other{"{0} gigaoctets"}\r
             }\r
             kilobit{\r
                 dnam{"kilobits"}\r
-                one{"{0} kilobit"}\r
-                other{"{0} kilobits"}\r
+                one{"{0} kilobit"}\r
+                other{"{0} kilobits"}\r
             }\r
             kilobyte{\r
                 dnam{"kilooctets"}\r
-                one{"{0} kilooctet"}\r
-                other{"{0} kilooctets"}\r
+                one{"{0} kilooctet"}\r
+                other{"{0} kilooctets"}\r
             }\r
             megabit{\r
                 dnam{"mégabits"}\r
-                one{"{0} mégabit"}\r
-                other{"{0} mégabits"}\r
+                one{"{0} mégabit"}\r
+                other{"{0} mégabits"}\r
             }\r
             megabyte{\r
                 dnam{"mégaoctets"}\r
-                one{"{0} mégaoctet"}\r
-                other{"{0} mégaoctets"}\r
+                one{"{0} mégaoctet"}\r
+                other{"{0} mégaoctets"}\r
+            }\r
+            petabyte{\r
+                dnam{"pétaoctets"}\r
+                one{"{0} pétaoctet"}\r
+                other{"{0} pétaoctets"}\r
             }\r
             terabit{\r
                 dnam{"térabits"}\r
-                one{"{0} térabit"}\r
-                other{"{0} térabits"}\r
+                one{"{0} térabit"}\r
+                other{"{0} térabits"}\r
             }\r
             terabyte{\r
                 dnam{"téraoctets"}\r
-                one{"{0} téraoctet"}\r
-                other{"{0} téraoctets"}\r
+                one{"{0} téraoctet"}\r
+                other{"{0} téraoctets"}\r
             }\r
         }\r
         duration{\r
@@ -212,25 +228,25 @@ fr{
             }\r
             day{\r
                 dnam{"jours"}\r
-                one{"{0} jour"}\r
-                other{"{0} jours"}\r
+                one{"{0} jour"}\r
+                other{"{0} jours"}\r
                 per{"{0} par jour"}\r
             }\r
             hour{\r
                 dnam{"heures"}\r
-                one{"{0} heure"}\r
-                other{"{0} heures"}\r
+                one{"{0} heure"}\r
+                other{"{0} heures"}\r
                 per{"{0} par heure"}\r
             }\r
             microsecond{\r
                 dnam{"microsecondes"}\r
-                one{"{0} microseconde"}\r
-                other{"{0} microsecondes"}\r
+                one{"{0} microseconde"}\r
+                other{"{0} microsecondes"}\r
             }\r
             millisecond{\r
                 dnam{"millisecondes"}\r
-                one{"{0} milliseconde"}\r
-                other{"{0} millisecondes"}\r
+                one{"{0} milliseconde"}\r
+                other{"{0} millisecondes"}\r
             }\r
             minute{\r
                 dnam{"minutes"}\r
@@ -240,30 +256,30 @@ fr{
             }\r
             month{\r
                 dnam{"mois"}\r
-                one{"{0} mois"}\r
-                other{"{0} mois"}\r
+                one{"{0} mois"}\r
+                other{"{0} mois"}\r
                 per{"{0} par mois"}\r
             }\r
             nanosecond{\r
                 dnam{"nanosecondes"}\r
-                one{"{0} nanoseconde"}\r
-                other{"{0} nanosecondes"}\r
+                one{"{0} nanoseconde"}\r
+                other{"{0} nanosecondes"}\r
             }\r
             second{\r
                 dnam{"secondes"}\r
-                one{"{0} seconde"}\r
-                other{"{0} secondes"}\r
+                one{"{0} seconde"}\r
+                other{"{0} secondes"}\r
                 per{"{0} par seconde"}\r
             }\r
             week{\r
                 dnam{"semaines"}\r
-                one{"{0} semaine"}\r
-                other{"{0} semaines"}\r
+                one{"{0} semaine"}\r
+                other{"{0} semaines"}\r
                 per{"{0} par semaine"}\r
             }\r
             year{\r
                 dnam{"ans"}\r
-                one{"{0} an"}\r
+                one{"{0} an"}\r
                 other{"{0} ans"}\r
                 per{"{0} par an"}\r
             }\r
@@ -272,94 +288,94 @@ fr{
             ampere{\r
                 dnam{"ampères"}\r
                 one{"{0} ampère"}\r
-                other{"{0} ampères"}\r
+                other{"{0} ampères"}\r
             }\r
             milliampere{\r
                 dnam{"milliampères"}\r
-                one{"{0} milliampère"}\r
-                other{"{0} milliampères"}\r
+                one{"{0} milliampère"}\r
+                other{"{0} milliampères"}\r
             }\r
             ohm{\r
                 dnam{"ohms"}\r
-                one{"{0} ohm"}\r
-                other{"{0} ohms"}\r
+                one{"{0} ohm"}\r
+                other{"{0} ohms"}\r
             }\r
             volt{\r
                 dnam{"volts"}\r
-                one{"{0} volt"}\r
-                other{"{0} volts"}\r
+                one{"{0} volt"}\r
+                other{"{0} volts"}\r
             }\r
         }\r
         energy{\r
             calorie{\r
                 dnam{"calories"}\r
-                one{"{0} calorie"}\r
-                other{"{0} calories"}\r
+                one{"{0} calorie"}\r
+                other{"{0} calories"}\r
             }\r
             foodcalorie{\r
                 dnam{"kilocalories"}\r
-                one{"{0} kilocalorie"}\r
-                other{"{0} kilocalories"}\r
+                one{"{0} kilocalorie"}\r
+                other{"{0} kilocalories"}\r
             }\r
             joule{\r
                 dnam{"joules"}\r
-                one{"{0} joule"}\r
-                other{"{0} joules"}\r
+                one{"{0} joule"}\r
+                other{"{0} joules"}\r
             }\r
             kilocalorie{\r
                 dnam{"kilocalories"}\r
-                one{"{0} kilocalorie"}\r
-                other{"{0} kilocalories"}\r
+                one{"{0} kilocalorie"}\r
+                other{"{0} kilocalories"}\r
             }\r
             kilojoule{\r
                 dnam{"kilojoules"}\r
-                one{"{0} kilojoule"}\r
-                other{"{0} kilojoules"}\r
+                one{"{0} kilojoule"}\r
+                other{"{0} kilojoules"}\r
             }\r
             kilowatt-hour{\r
                 dnam{"kilowattheures"}\r
-                one{"{0} kilowattheure"}\r
-                other{"{0} kilowattheures"}\r
+                one{"{0} kilowattheure"}\r
+                other{"{0} kilowattheures"}\r
             }\r
         }\r
         frequency{\r
             gigahertz{\r
                 dnam{"gigahertz"}\r
-                one{"{0} gigahertz"}\r
-                other{"{0} gigahertz"}\r
+                one{"{0} gigahertz"}\r
+                other{"{0} gigahertz"}\r
             }\r
             hertz{\r
                 dnam{"hertz"}\r
-                one{"{0} hertz"}\r
-                other{"{0} hertz"}\r
+                one{"{0} hertz"}\r
+                other{"{0} hertz"}\r
             }\r
             kilohertz{\r
                 dnam{"kilohertz"}\r
-                one{"{0} kilohertz"}\r
-                other{"{0} kilohertz"}\r
+                one{"{0} kilohertz"}\r
+                other{"{0} kilohertz"}\r
             }\r
             megahertz{\r
                 dnam{"mégahertz"}\r
-                one{"{0} mégahertz"}\r
-                other{"{0} mégahertz"}\r
+                one{"{0} mégahertz"}\r
+                other{"{0} mégahertz"}\r
             }\r
         }\r
         length{\r
             astronomical-unit{\r
                 dnam{"unités astronomiques"}\r
-                one{"{0} unité astronomique"}\r
-                other{"{0} unités astronomiques"}\r
+                one{"{0} unité astronomique"}\r
+                other{"{0} unités astronomiques"}\r
             }\r
             centimeter{\r
                 dnam{"centimètres"}\r
-                one{"{0} centimètre"}\r
-                other{"{0} centimètres"}\r
+                one{"{0} centimètre"}\r
+                other{"{0} centimètres"}\r
                 per{"{0} par centimètre"}\r
             }\r
             decimeter{\r
                 dnam{"décimètres"}\r
-                one{"{0} décimètre"}\r
-                other{"{0} décimètres"}\r
+                one{"{0} décimètre"}\r
+                other{"{0} décimètres"}\r
             }\r
             fathom{\r
                 dnam{"brasses"}\r
@@ -368,7 +384,7 @@ fr{
             }\r
             foot{\r
                 dnam{"pieds"}\r
-                one{"{0} pied"}\r
+                one{"{0} pied"}\r
                 other{"{0} pieds"}\r
                 per{"{0} par pied"}\r
             }\r
@@ -379,107 +395,107 @@ fr{
             }\r
             inch{\r
                 dnam{"pouces"}\r
-                one{"{0} pouce"}\r
-                other{"{0} pouces"}\r
+                one{"{0} pouce"}\r
+                other{"{0} pouces"}\r
                 per{"{0} par pouce"}\r
             }\r
             kilometer{\r
                 dnam{"kilomètres"}\r
-                one{"{0} kilomètre"}\r
-                other{"{0} kilomètres"}\r
+                one{"{0} kilomètre"}\r
+                other{"{0} kilomètres"}\r
                 per{"{0} par kilomètre"}\r
             }\r
             light-year{\r
                 dnam{"années-lumière"}\r
-                one{"{0} année-lumière"}\r
-                other{"{0} années-lumière"}\r
+                one{"{0} année-lumière"}\r
+                other{"{0} années-lumière"}\r
             }\r
             meter{\r
                 dnam{"mètres"}\r
-                one{"{0} mètre"}\r
-                other{"{0} mètres"}\r
+                one{"{0} mètre"}\r
+                other{"{0} mètres"}\r
                 per{"{0} par mètre"}\r
             }\r
             micrometer{\r
                 dnam{"micromètres"}\r
-                one{"{0} micromètre"}\r
-                other{"{0} micromètres"}\r
+                one{"{0} micromètre"}\r
+                other{"{0} micromètres"}\r
             }\r
             mile{\r
                 dnam{"miles"}\r
-                one{"{0} mile"}\r
-                other{"{0} miles"}\r
+                one{"{0} mile"}\r
+                other{"{0} miles"}\r
             }\r
             mile-scandinavian{\r
                 dnam{"milles scandinaves"}\r
-                one{"{0} mille scandinave"}\r
-                other{"{0} milles scandinaves"}\r
+                one{"{0} mille scandinave"}\r
+                other{"{0} milles scandinaves"}\r
             }\r
             millimeter{\r
                 dnam{"millimètres"}\r
-                one{"{0} millimètre"}\r
-                other{"{0} millimètres"}\r
+                one{"{0} millimètre"}\r
+                other{"{0} millimètres"}\r
             }\r
             nanometer{\r
                 dnam{"nanomètres"}\r
-                one{"{0} nanomètre"}\r
-                other{"{0} nanomètres"}\r
+                one{"{0} nanomètre"}\r
+                other{"{0} nanomètres"}\r
             }\r
             nautical-mile{\r
                 dnam{"milles marins"}\r
-                one{"{0} mille marin"}\r
-                other{"{0} milles marins"}\r
+                one{"{0} mille marin"}\r
+                other{"{0} milles marins"}\r
             }\r
             parsec{\r
                 dnam{"parsecs"}\r
-                one{"{0} parsec"}\r
-                other{"{0} parsecs"}\r
+                one{"{0} parsec"}\r
+                other{"{0} parsecs"}\r
             }\r
             picometer{\r
                 dnam{"picomètres"}\r
-                one{"{0} picomètre"}\r
-                other{"{0} picomètres"}\r
+                one{"{0} picomètre"}\r
+                other{"{0} picomètres"}\r
             }\r
             point{\r
                 dnam{"points"}\r
-                one{"{0} point"}\r
-                other{"{0} points"}\r
+                one{"{0} point"}\r
+                other{"{0} points"}\r
             }\r
             yard{\r
                 dnam{"yards"}\r
-                one{"{0} yard"}\r
-                other{"{0} yards"}\r
+                one{"{0} yard"}\r
+                other{"{0} yards"}\r
             }\r
         }\r
         light{\r
             lux{\r
                 dnam{"lux"}\r
-                one{"{0} lux"}\r
-                other{"{0} lux"}\r
+                one{"{0} lux"}\r
+                other{"{0} lux"}\r
             }\r
         }\r
         mass{\r
             carat{\r
                 dnam{"carats"}\r
-                one{"{0} carat"}\r
-                other{"{0} carats"}\r
+                one{"{0} carat"}\r
+                other{"{0} carats"}\r
             }\r
             gram{\r
                 dnam{"grammes"}\r
-                one{"{0} gramme"}\r
-                other{"{0} grammes"}\r
+                one{"{0} gramme"}\r
+                other{"{0} grammes"}\r
                 per{"{0} par gramme"}\r
             }\r
             kilogram{\r
                 dnam{"kilogrammes"}\r
-                one{"{0} kilogramme"}\r
-                other{"{0} kilogrammes"}\r
+                one{"{0} kilogramme"}\r
+                other{"{0} kilogrammes"}\r
                 per{"{0} par kg"}\r
             }\r
             metric-ton{\r
                 dnam{"tonnes"}\r
-                one{"{0} tonne"}\r
-                other{"{0} tonnes"}\r
+                one{"{0} tonne"}\r
+                other{"{0} tonnes"}\r
             }\r
             microgram{\r
                 dnam{"microgrammes"}\r
@@ -488,24 +504,24 @@ fr{
             }\r
             milligram{\r
                 dnam{"milligrammes"}\r
-                one{"{0} milligramme"}\r
-                other{"{0} milligrammes"}\r
+                one{"{0} milligramme"}\r
+                other{"{0} milligrammes"}\r
             }\r
             ounce{\r
                 dnam{"onces"}\r
-                one{"{0} once"}\r
-                other{"{0} onces"}\r
+                one{"{0} once"}\r
+                other{"{0} onces"}\r
                 per{"{0} par once"}\r
             }\r
             ounce-troy{\r
                 dnam{"onces troy"}\r
-                one{"{0} once troy"}\r
-                other{"{0} onces troy"}\r
+                one{"{0} once troy"}\r
+                other{"{0} onces troy"}\r
             }\r
             pound{\r
                 dnam{"livres"}\r
-                one{"{0} livre"}\r
-                other{"{0} livres"}\r
+                one{"{0} livre"}\r
+                other{"{0} livres"}\r
                 per{"{0} par livre"}\r
             }\r
             stone{\r
@@ -515,57 +531,62 @@ fr{
             }\r
             ton{\r
                 dnam{"tonnes courtes"}\r
-                one{"{0} tonne courte"}\r
-                other{"{0} tonnes courtes"}\r
+                one{"{0} tonne courte"}\r
+                other{"{0} tonnes courtes"}\r
             }\r
         }\r
         power{\r
             gigawatt{\r
                 dnam{"gigawatts"}\r
-                one{"{0} gigawatt"}\r
-                other{"{0} gigawatts"}\r
+                one{"{0} gigawatt"}\r
+                other{"{0} gigawatts"}\r
             }\r
             horsepower{\r
                 dnam{"chevaux-vapeur"}\r
-                one{"{0} cheval-vapeur"}\r
-                other{"{0} chevaux-vapeur"}\r
+                one{"{0} cheval-vapeur"}\r
+                other{"{0} chevaux-vapeur"}\r
             }\r
             kilowatt{\r
                 dnam{"kilowatts"}\r
-                one{"{0} kilowatt"}\r
-                other{"{0} kilowatts"}\r
+                one{"{0} kilowatt"}\r
+                other{"{0} kilowatts"}\r
             }\r
             megawatt{\r
                 dnam{"mégawatts"}\r
-                one{"{0} mégawatt"}\r
-                other{"{0} mégawatts"}\r
+                one{"{0} mégawatt"}\r
+                other{"{0} mégawatts"}\r
             }\r
             milliwatt{\r
                 dnam{"milliwatts"}\r
-                one{"{0} milliwatt"}\r
-                other{"{0} milliwatts"}\r
+                one{"{0} milliwatt"}\r
+                other{"{0} milliwatts"}\r
             }\r
             watt{\r
                 dnam{"watts"}\r
-                one{"{0} watt"}\r
-                other{"{0} watts"}\r
+                one{"{0} watt"}\r
+                other{"{0} watts"}\r
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"atmosphères"}\r
+                one{"{0} atmosphère"}\r
+                other{"{0} atmosphères"}\r
+            }\r
             hectopascal{\r
                 dnam{"hectopascals"}\r
-                one{"{0} hectopascal"}\r
-                other{"{0} hectopascals"}\r
+                one{"{0} hectopascal"}\r
+                other{"{0} hectopascals"}\r
             }\r
             inch-hg{\r
                 dnam{"pouces de mercure"}\r
-                one{"{0} pouce de mercure"}\r
-                other{"{0} pouces de mercure"}\r
+                one{"{0} pouce de mercure"}\r
+                other{"{0} pouces de mercure"}\r
             }\r
             millibar{\r
                 dnam{"millibars"}\r
-                one{"{0} millibar"}\r
-                other{"{0} millibars"}\r
+                one{"{0} millibar"}\r
+                other{"{0} millibars"}\r
             }\r
             millimeter-of-mercury{\r
                 dnam{"millimètres de mercure"}\r
@@ -581,40 +602,40 @@ fr{
         speed{\r
             kilometer-per-hour{\r
                 dnam{"kilomètres par heure"}\r
-                one{"{0} kilomètre par heure"}\r
-                other{"{0} kilomètres par heure"}\r
+                one{"{0} kilomètre par heure"}\r
+                other{"{0} kilomètres par heure"}\r
             }\r
             knot{\r
                 dnam{"nœuds"}\r
-                one{"{0} nœud"}\r
-                other{"{0} nœuds"}\r
+                one{"{0} nœud"}\r
+                other{"{0} nœuds"}\r
             }\r
             meter-per-second{\r
                 dnam{"mètres par seconde"}\r
-                one{"{0} mètre par seconde"}\r
-                other{"{0} mètres par seconde"}\r
+                one{"{0} mètre par seconde"}\r
+                other{"{0} mètres par seconde"}\r
             }\r
             mile-per-hour{\r
                 dnam{"miles par heure"}\r
-                one{"{0} mile par heure"}\r
-                other{"{0} miles par heure"}\r
+                one{"{0} mile par heure"}\r
+                other{"{0} miles par heure"}\r
             }\r
         }\r
         temperature{\r
             celsius{\r
                 dnam{"degrés Celsius"}\r
-                one{"{0} degré Celsius"}\r
-                other{"{0} degrés Celsius"}\r
+                one{"{0} degré Celsius"}\r
+                other{"{0} degrés Celsius"}\r
             }\r
             fahrenheit{\r
                 dnam{"degrés Fahrenheit"}\r
-                one{"{0} degré Fahrenheit"}\r
-                other{"{0} degrés Fahrenheit"}\r
+                one{"{0} degré Fahrenheit"}\r
+                other{"{0} degrés Fahrenheit"}\r
             }\r
             generic{\r
                 dnam{"degrés"}\r
-                one{"{0} degré"}\r
-                other{"{0} degrés"}\r
+                one{"{0} degré"}\r
+                other{"{0} degrés"}\r
             }\r
             kelvin{\r
                 dnam{"kelvins"}\r
@@ -635,40 +656,40 @@ fr{
             }\r
             cubic-centimeter{\r
                 dnam{"centimètres cubes"}\r
-                one{"{0} centimètre cube"}\r
-                other{"{0} centimètres cubes"}\r
+                one{"{0} centimètre cube"}\r
+                other{"{0} centimètres cubes"}\r
                 per{"{0} par centimètre cube"}\r
             }\r
             cubic-foot{\r
                 dnam{"pieds cubes"}\r
-                one{"{0} pied cube"}\r
-                other{"{0} pieds cubes"}\r
+                one{"{0} pied cube"}\r
+                other{"{0} pieds cubes"}\r
             }\r
             cubic-inch{\r
                 dnam{"pouces cubes"}\r
-                one{"{0} pouce cube"}\r
-                other{"{0} pouces cubes"}\r
+                one{"{0} pouce cube"}\r
+                other{"{0} pouces cubes"}\r
             }\r
             cubic-kilometer{\r
                 dnam{"kilomètres cubes"}\r
-                one{"{0} kilomètre cube"}\r
-                other{"{0} kilomètres cubes"}\r
+                one{"{0} kilomètre cube"}\r
+                other{"{0} kilomètres cubes"}\r
             }\r
             cubic-meter{\r
                 dnam{"mètres cubes"}\r
-                one{"{0} mètre cube"}\r
-                other{"{0} mètres cubes"}\r
+                one{"{0} mètre cube"}\r
+                other{"{0} mètres cubes"}\r
                 per{"{0} par mètre cube"}\r
             }\r
             cubic-mile{\r
                 dnam{"milles cubes"}\r
-                one{"{0} mille cube"}\r
-                other{"{0} milles cubes"}\r
+                one{"{0} mille cube"}\r
+                other{"{0} milles cubes"}\r
             }\r
             cubic-yard{\r
                 dnam{"yards cubes"}\r
-                one{"{0} yard cube"}\r
-                other{"{0} yards cubes"}\r
+                one{"{0} yard cube"}\r
+                other{"{0} yards cubes"}\r
             }\r
             cup{\r
                 dnam{"tasses"}\r
@@ -704,19 +725,19 @@ fr{
             }\r
             hectoliter{\r
                 dnam{"hectolitres"}\r
-                one{"{0} hectolitre"}\r
-                other{"{0} hectolitres"}\r
+                one{"{0} hectolitre"}\r
+                other{"{0} hectolitres"}\r
             }\r
             liter{\r
                 dnam{"litres"}\r
-                one{"{0} litre"}\r
-                other{"{0} litres"}\r
+                one{"{0} litre"}\r
+                other{"{0} litres"}\r
                 per{"{0} par litre"}\r
             }\r
             megaliter{\r
                 dnam{"mégalitres"}\r
-                one{"{0} mégalitre"}\r
-                other{"{0} mégalitres"}\r
+                one{"{0} mégalitre"}\r
+                other{"{0} mégalitres"}\r
             }\r
             milliliter{\r
                 dnam{"millilitres"}\r
@@ -813,6 +834,13 @@ fr{
         compound{\r
             per{"{0}/{1}"}\r
         }\r
+        concentr{\r
+            percent{\r
+                dnam{"%"}\r
+                one{"{0}%"}\r
+                other{"{0}%"}\r
+            }\r
+        }\r
         consumption{\r
             liter-per-100kilometers{\r
                 dnam{"l/100km"}\r
@@ -827,6 +855,7 @@ fr{
             }\r
         }\r
         coordinate{\r
+            dnam{"direction"}\r
             east{"{0}E"}\r
             north{"{0}N"}\r
             south{"{0}S"}\r
@@ -862,14 +891,14 @@ fr{
             }\r
             minute{\r
                 dnam{"min"}\r
-                one{"{0} min"}\r
-                other{"{0} min"}\r
+                one{"{0}min"}\r
+                other{"{0}min"}\r
                 per{"{0}/min"}\r
             }\r
             month{\r
                 dnam{"m."}\r
-                one{"{0} m."}\r
-                other{"{0} m."}\r
+                one{"{0}m."}\r
+                other{"{0}m."}\r
                 per{"{0}/m."}\r
             }\r
             nanosecond{\r
@@ -885,8 +914,8 @@ fr{
             }\r
             week{\r
                 dnam{"sem."}\r
-                one{"{0} sem."}\r
-                other{"{0} sem."}\r
+                one{"{0}sem."}\r
+                other{"{0}sem."}\r
                 per{"{0}/sem."}\r
             }\r
             year{\r
@@ -915,8 +944,8 @@ fr{
             }\r
             fathom{\r
                 dnam{"fm"}\r
-                one{"{0} fm"}\r
-                other{"{0} fm"}\r
+                one{"{0} fth"}\r
+                other{"{0} fth"}\r
             }\r
             foot{\r
                 dnam{"pi"}\r
@@ -1208,7 +1237,7 @@ fr{
             liter{\r
                 dnam{"l"}\r
                 one{"{0}l"}\r
-                other{"{0} l"}\r
+                other{"{0}l"}\r
             }\r
             megaliter{\r
                 dnam{"Ml"}\r
@@ -1225,14 +1254,14 @@ fr{
     unitsShort{\r
         acceleration{\r
             g-force{\r
-                dnam{"G"}\r
-                one{"{0} G"}\r
-                other{"{0} G"}\r
+                dnam{"force g"}\r
+                one{"{0} force g"}\r
+                other{"{0} force g"}\r
             }\r
             meter-per-second-squared{\r
                 dnam{"m/s²"}\r
-                one{"{0} m/s²"}\r
-                other{"{0} m/s²"}\r
+                one{"{0}m/s²"}\r
+                other{"{0}m/s²"}\r
             }\r
         }\r
         angle{\r
@@ -1253,65 +1282,65 @@ fr{
             }\r
             radian{\r
                 dnam{"rad"}\r
-                one{"{0} rad"}\r
-                other{"{0} rad"}\r
+                one{"{0}rad"}\r
+                other{"{0}rad"}\r
             }\r
             revolution{\r
                 dnam{"tr"}\r
-                one{"{0} tr"}\r
-                other{"{0} tr"}\r
+                one{"{0}tr"}\r
+                other{"{0}tr"}\r
             }\r
         }\r
         area{\r
             acre{\r
                 dnam{"ac"}\r
-                one{"{0} ac"}\r
-                other{"{0} ac"}\r
+                one{"{0}ac"}\r
+                other{"{0}ac"}\r
             }\r
             hectare{\r
                 dnam{"ha"}\r
-                one{"{0} ha"}\r
-                other{"{0} ha"}\r
+                one{"{0}ha"}\r
+                other{"{0}ha"}\r
             }\r
             square-centimeter{\r
                 dnam{"cm²"}\r
-                one{"{0} cm²"}\r
-                other{"{0} cm²"}\r
+                one{"{0}cm²"}\r
+                other{"{0}cm²"}\r
                 per{"{0}/cm²"}\r
             }\r
             square-foot{\r
                 dnam{"pi²"}\r
-                one{"{0} pi²"}\r
-                other{"{0} pi²"}\r
+                one{"{0}pi²"}\r
+                other{"{0}pi²"}\r
             }\r
             square-inch{\r
                 dnam{"po²"}\r
-                one{"{0} po²"}\r
-                other{"{0} po²"}\r
+                one{"{0}po²"}\r
+                other{"{0}po²"}\r
                 per{"{0}/po²"}\r
             }\r
             square-kilometer{\r
                 dnam{"km²"}\r
-                one{"{0} km²"}\r
-                other{"{0} km²"}\r
+                one{"{0}km²"}\r
+                other{"{0}km²"}\r
                 per{"{0}/km²"}\r
             }\r
             square-meter{\r
                 dnam{"m²"}\r
-                one{"{0} m²"}\r
-                other{"{0} m²"}\r
+                one{"{0}m²"}\r
+                other{"{0}m²"}\r
                 per{"{0}/m²"}\r
             }\r
             square-mile{\r
                 dnam{"mi²"}\r
-                one{"{0} mi²"}\r
-                other{"{0} mi²"}\r
+                one{"{0}mi²"}\r
+                other{"{0}mi²"}\r
                 per{"{0}/mi²"}\r
             }\r
             square-yard{\r
                 dnam{"yd²"}\r
-                one{"{0} yd²"}\r
-                other{"{0} yd²"}\r
+                one{"{0}yd²"}\r
+                other{"{0}yd²"}\r
             }\r
         }\r
         compound{\r
@@ -1320,271 +1349,287 @@ fr{
         concentr{\r
             karat{\r
                 dnam{"ct"}\r
-                one{"{0} ct"}\r
-                other{"{0} ct"}\r
+                one{"{0}ct"}\r
+                other{"{0}ct"}\r
             }\r
             milligram-per-deciliter{\r
                 dnam{"mg/dl"}\r
-                one{"{0} mg/dl"}\r
-                other{"{0} mg/dl"}\r
+                one{"{0}mg/dl"}\r
+                other{"{0}mg/dl"}\r
             }\r
             millimole-per-liter{\r
                 dnam{"mmol/l"}\r
-                one{"{0} mmol/l"}\r
-                other{"{0} mmol/l"}\r
+                one{"{0}mmol/l"}\r
+                other{"{0}mmol/l"}\r
             }\r
             part-per-million{\r
                 dnam{"ppm"}\r
-                one{"{0} ppm"}\r
-                other{"{0} ppm"}\r
+                one{"{0} ppm"}\r
+                other{"{0} ppm"}\r
+            }\r
+            percent{\r
+                dnam{"%"}\r
+                one{"{0} %"}\r
+                other{"{0} %"}\r
+            }\r
+            permille{\r
+                dnam{"‰"}\r
+                one{"{0} ‰"}\r
+                other{"{0} ‰"}\r
             }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
                 dnam{"l/100 km"}\r
-                one{"{0} l/100 km"}\r
-                other{"{0} l/100 km"}\r
+                one{"{0} l/100 km"}\r
+                other{"{0} l/100 km"}\r
             }\r
             liter-per-kilometer{\r
                 dnam{"l/km"}\r
-                one{"{0} l/km"}\r
-                other{"{0} l/km"}\r
+                one{"{0}l/km"}\r
+                other{"{0}l/km"}\r
             }\r
             mile-per-gallon{\r
                 dnam{"mi/gal"}\r
-                one{"{0} mi/gal"}\r
-                other{"{0} mi/gal"}\r
+                one{"{0}mi/gal"}\r
+                other{"{0}mi/gal"}\r
             }\r
             mile-per-gallon-imperial{\r
                 dnam{"mi/gal imp."}\r
-                one{"{0} mi/gal imp."}\r
-                other{"{0} mi/gal imp."}\r
+                one{"{0} mi/gal imp."}\r
+                other{"{0} mi/gal imp."}\r
             }\r
         }\r
         coordinate{\r
-            east{"{0} E"}\r
-            north{"{0} N"}\r
-            south{"{0} S"}\r
-            west{"{0} O"}\r
+            dnam{"direction"}\r
+            east{"{0} E"}\r
+            north{"{0} N"}\r
+            south{"{0} S"}\r
+            west{"{0} O"}\r
         }\r
         digital{\r
             bit{\r
                 dnam{"bit"}\r
-                one{"{0} bit"}\r
-                other{"{0} bit"}\r
+                one{"{0}bit"}\r
+                other{"{0}bit"}\r
             }\r
             byte{\r
                 dnam{"octet"}\r
-                one{"{0} octet"}\r
-                other{"{0} octet"}\r
+                one{"{0} o"}\r
+                other{"{0} o"}\r
             }\r
             gigabit{\r
                 dnam{"Gbit"}\r
-                one{"{0} Gb"}\r
-                other{"{0} Gb"}\r
+                one{"{0} Gbit"}\r
+                other{"{0} Gbit"}\r
             }\r
             gigabyte{\r
                 dnam{"Go"}\r
-                one{"{0} Go"}\r
-                other{"{0} Go"}\r
+                one{"{0}Go"}\r
+                other{"{0}Go"}\r
             }\r
             kilobit{\r
                 dnam{"kbit"}\r
-                one{"{0} kb"}\r
-                other{"{0} kb"}\r
+                one{"{0} kbit"}\r
+                other{"{0} kbit"}\r
             }\r
             kilobyte{\r
                 dnam{"ko"}\r
-                one{"{0} ko"}\r
-                other{"{0} ko"}\r
+                one{"{0}ko"}\r
+                other{"{0}ko"}\r
             }\r
             megabit{\r
                 dnam{"Mbit"}\r
-                one{"{0} Mb"}\r
-                other{"{0} Mb"}\r
+                one{"{0} Mbit"}\r
+                other{"{0} Mbit"}\r
             }\r
             megabyte{\r
                 dnam{"Mo"}\r
-                one{"{0} Mo"}\r
-                other{"{0} Mo"}\r
+                one{"{0} Mo"}\r
+                other{"{0} Mo"}\r
+            }\r
+            petabyte{\r
+                dnam{"Po"}\r
+                one{"{0} Po"}\r
+                other{"{0} Po"}\r
             }\r
             terabit{\r
                 dnam{"Tbit"}\r
-                one{"{0} Tb"}\r
+                one{"{0} Tbit"}\r
                 other{"{0} Tb"}\r
             }\r
             terabyte{\r
                 dnam{"To"}\r
-                one{"{0} To"}\r
-                other{"{0} To"}\r
+                one{"{0}To"}\r
+                other{"{0}To"}\r
             }\r
         }\r
         duration{\r
             century{\r
-                dnam{"si"}\r
-                one{"{0} si"}\r
-                other{"{0} si"}\r
+                dnam{"siècles"}\r
+                one{"{0} siècle"}\r
+                other{"{0} siècles"}\r
             }\r
             day{\r
                 dnam{"j"}\r
-                one{"{0} j"}\r
-                other{"{0} j"}\r
+                one{"{0}j"}\r
+                other{"{0}j"}\r
                 per{"{0}/j"}\r
             }\r
             hour{\r
                 dnam{"h"}\r
-                one{"{0} h"}\r
-                other{"{0} h"}\r
+                one{"{0}h"}\r
+                other{"{0}h"}\r
                 per{"{0}/h"}\r
             }\r
             microsecond{\r
                 dnam{"μs"}\r
-                one{"{0} μs"}\r
-                other{"{0} μs"}\r
+                one{"{0}μs"}\r
+                other{"{0}μs"}\r
             }\r
             millisecond{\r
                 dnam{"ms"}\r
-                one{"{0} ms"}\r
-                other{"{0} ms"}\r
+                one{"{0}ms"}\r
+                other{"{0}ms"}\r
             }\r
             minute{\r
                 dnam{"min"}\r
-                one{"{0} min"}\r
-                other{"{0} min"}\r
+                one{"{0} min"}\r
+                other{"{0} min"}\r
                 per{"{0}/min"}\r
             }\r
             month{\r
                 dnam{"m."}\r
-                one{"{0} m."}\r
-                other{"{0} m."}\r
+                one{"{0}m."}\r
+                other{"{0}m."}\r
                 per{"{0}/m."}\r
             }\r
             nanosecond{\r
                 dnam{"ns"}\r
-                one{"{0} ns"}\r
-                other{"{0} ns"}\r
+                one{"{0}ns"}\r
+                other{"{0}ns"}\r
             }\r
             second{\r
                 dnam{"s"}\r
-                one{"{0} s"}\r
-                other{"{0} s"}\r
+                one{"{0}s"}\r
+                other{"{0}s"}\r
                 per{"{0}/s"}\r
             }\r
             week{\r
                 dnam{"sem."}\r
-                one{"{0} sem."}\r
-                other{"{0} sem."}\r
+                one{"{0}sem."}\r
+                other{"{0}sem."}\r
                 per{"{0}/sem."}\r
             }\r
             year{\r
                 dnam{"ans"}\r
-                one{"{0} an"}\r
-                other{"{0} ans"}\r
+                one{"{0} an"}\r
+                other{"{0} ans"}\r
                 per{"{0}/an"}\r
             }\r
         }\r
         electric{\r
             ampere{\r
                 dnam{"A"}\r
-                one{"{0} A"}\r
-                other{"{0} A"}\r
+                one{"{0}A"}\r
+                other{"{0}A"}\r
             }\r
             milliampere{\r
                 dnam{"mA"}\r
-                one{"{0} mA"}\r
-                other{"{0} mA"}\r
+                one{"{0}mA"}\r
+                other{"{0}mA"}\r
             }\r
             ohm{\r
                 dnam{"Ω"}\r
-                one{"{0} Ω"}\r
-                other{"{0} Ω"}\r
+                one{"{0}Ω"}\r
+                other{"{0}Ω"}\r
             }\r
             volt{\r
                 dnam{"V"}\r
-                one{"{0} V"}\r
-                other{"{0} V"}\r
+                one{"{0}V"}\r
+                other{"{0}V"}\r
             }\r
         }\r
         energy{\r
             calorie{\r
                 dnam{"cal"}\r
-                one{"{0} cal"}\r
-                other{"{0} cal"}\r
+                one{"{0}cal"}\r
+                other{"{0}cal"}\r
             }\r
             foodcalorie{\r
                 dnam{"kcal"}\r
-                one{"{0} kcal"}\r
-                other{"{0} kcal"}\r
+                one{"{0}kcal"}\r
+                other{"{0}kcal"}\r
             }\r
             joule{\r
                 dnam{"J"}\r
-                one{"{0} J"}\r
-                other{"{0} J"}\r
+                one{"{0}J"}\r
+                other{"{0}J"}\r
             }\r
             kilocalorie{\r
                 dnam{"kcal"}\r
-                one{"{0} kcal"}\r
-                other{"{0} kcal"}\r
+                one{"{0}kcal"}\r
+                other{"{0}kcal"}\r
             }\r
             kilojoule{\r
                 dnam{"kJ"}\r
-                one{"{0} kJ"}\r
-                other{"{0} kJ"}\r
+                one{"{0}kJ"}\r
+                other{"{0}kJ"}\r
             }\r
             kilowatt-hour{\r
                 dnam{"kWh"}\r
-                one{"{0} kWh"}\r
-                other{"{0} kWh"}\r
+                one{"{0}kWh"}\r
+                other{"{0}kWh"}\r
             }\r
         }\r
         frequency{\r
             gigahertz{\r
                 dnam{"GHz"}\r
-                one{"{0} GHz"}\r
-                other{"{0} GHz"}\r
+                one{"{0}GHz"}\r
+                other{"{0}GHz"}\r
             }\r
             hertz{\r
                 dnam{"Hz"}\r
-                one{"{0} Hz"}\r
-                other{"{0} Hz"}\r
+                one{"{0}Hz"}\r
+                other{"{0}Hz"}\r
             }\r
             kilohertz{\r
                 dnam{"kHz"}\r
-                one{"{0} kHz"}\r
-                other{"{0} kHz"}\r
+                one{"{0}kHz"}\r
+                other{"{0}kHz"}\r
             }\r
             megahertz{\r
                 dnam{"MHz"}\r
-                one{"{0} MHz"}\r
-                other{"{0} MHz"}\r
+                one{"{0}MHz"}\r
+                other{"{0}MHz"}\r
             }\r
         }\r
         length{\r
             astronomical-unit{\r
                 dnam{"ua"}\r
-                one{"{0} ua"}\r
-                other{"{0} ua"}\r
+                one{"{0}ua"}\r
+                other{"{0}ua"}\r
             }\r
             centimeter{\r
                 dnam{"cm"}\r
-                one{"{0} cm"}\r
-                other{"{0} cm"}\r
+                one{"{0}cm"}\r
+                other{"{0}cm"}\r
                 per{"{0}/cm"}\r
             }\r
             decimeter{\r
                 dnam{"dm"}\r
-                one{"{0} dm"}\r
-                other{"{0} dm"}\r
+                one{"{0}dm"}\r
+                other{"{0}dm"}\r
             }\r
             fathom{\r
                 dnam{"fm"}\r
-                one{"{0} fm"}\r
-                other{"{0} fm"}\r
+                one{"{0} fth"}\r
+                other{"{0} fth"}\r
             }\r
             foot{\r
                 dnam{"pi"}\r
-                one{"{0} pi"}\r
-                other{"{0} pi"}\r
+                one{"{0}pi"}\r
+                other{"{0}pi"}\r
                 per{"{0}/pi"}\r
             }\r
             furlong{\r
@@ -1594,133 +1639,133 @@ fr{
             }\r
             inch{\r
                 dnam{"po"}\r
-                one{"{0} po"}\r
-                other{"{0} po"}\r
+                one{"{0}po"}\r
+                other{"{0}po"}\r
                 per{"{0}/po"}\r
             }\r
             kilometer{\r
                 dnam{"km"}\r
-                one{"{0} km"}\r
-                other{"{0} km"}\r
+                one{"{0}km"}\r
+                other{"{0}km"}\r
                 per{"{0}/km"}\r
             }\r
             light-year{\r
                 dnam{"al"}\r
-                one{"{0} al"}\r
-                other{"{0} al"}\r
+                one{"{0}al"}\r
+                other{"{0}al"}\r
             }\r
             meter{\r
                 dnam{"m"}\r
-                one{"{0} m"}\r
-                other{"{0} m"}\r
+                one{"{0}m"}\r
+                other{"{0}m"}\r
                 per{"{0}/m"}\r
             }\r
             micrometer{\r
                 dnam{"µm"}\r
-                one{"{0} µm"}\r
-                other{"{0} µm"}\r
+                one{"{0}µm"}\r
+                other{"{0}µm"}\r
             }\r
             mile{\r
                 dnam{"mi"}\r
-                one{"{0} mi"}\r
-                other{"{0} mi"}\r
+                one{"{0}mi"}\r
+                other{"{0}mi"}\r
             }\r
             mile-scandinavian{\r
                 dnam{"smi"}\r
-                one{"{0} smi"}\r
-                other{"{0} smi"}\r
+                one{"{0}smi"}\r
+                other{"{0}smi"}\r
             }\r
             millimeter{\r
                 dnam{"mm"}\r
-                one{"{0} mm"}\r
-                other{"{0} mm"}\r
+                one{"{0}mm"}\r
+                other{"{0}mm"}\r
             }\r
             nanometer{\r
                 dnam{"nm"}\r
-                one{"{0} nm"}\r
-                other{"{0} nm"}\r
+                one{"{0}nm"}\r
+                other{"{0}nm"}\r
             }\r
             nautical-mile{\r
                 dnam{"nmi"}\r
-                one{"{0} nmi"}\r
-                other{"{0} nmi"}\r
+                one{"{0}nmi"}\r
+                other{"{0}nmi"}\r
             }\r
             parsec{\r
                 dnam{"pc"}\r
-                one{"{0} pc"}\r
-                other{"{0} pc"}\r
+                one{"{0}pc"}\r
+                other{"{0}pc"}\r
             }\r
             picometer{\r
                 dnam{"pm"}\r
-                one{"{0} pm"}\r
-                other{"{0} pm"}\r
+                one{"{0}pm"}\r
+                other{"{0}pm"}\r
             }\r
             point{\r
                 dnam{"points"}\r
-                one{"{0} pt"}\r
-                other{"{0} pt"}\r
+                one{"{0}pt"}\r
+                other{"{0}pt"}\r
             }\r
             yard{\r
                 dnam{"yd"}\r
-                one{"{0} yd"}\r
-                other{"{0} yd"}\r
+                one{"{0}yd"}\r
+                other{"{0}yd"}\r
             }\r
         }\r
         light{\r
             lux{\r
                 dnam{"lx"}\r
-                one{"{0} lx"}\r
-                other{"{0} lx"}\r
+                one{"{0}lx"}\r
+                other{"{0}lx"}\r
             }\r
         }\r
         mass{\r
             carat{\r
                 dnam{"ct"}\r
-                one{"{0} ct"}\r
-                other{"{0} ct"}\r
+                one{"{0}ct"}\r
+                other{"{0}ct"}\r
             }\r
             gram{\r
                 dnam{"g"}\r
-                one{"{0} g"}\r
-                other{"{0} g"}\r
+                one{"{0}g"}\r
+                other{"{0}g"}\r
                 per{"{0}/g"}\r
             }\r
             kilogram{\r
                 dnam{"kg"}\r
-                one{"{0} kg"}\r
-                other{"{0} kg"}\r
+                one{"{0}kg"}\r
+                other{"{0}kg"}\r
                 per{"{0}/kg"}\r
             }\r
             metric-ton{\r
                 dnam{"t"}\r
-                one{"{0} t"}\r
-                other{"{0} t"}\r
+                one{"{0}t"}\r
+                other{"{0}t"}\r
             }\r
             microgram{\r
                 dnam{"µg"}\r
-                one{"{0} µg"}\r
-                other{"{0} µg"}\r
+                one{"{0}µg"}\r
+                other{"{0}µg"}\r
             }\r
             milligram{\r
                 dnam{"mg"}\r
-                one{"{0} mg"}\r
-                other{"{0} mg"}\r
+                one{"{0}mg"}\r
+                other{"{0}mg"}\r
             }\r
             ounce{\r
                 dnam{"oz"}\r
-                one{"{0} oz"}\r
-                other{"{0} oz"}\r
+                one{"{0}oz"}\r
+                other{"{0}oz"}\r
                 per{"{0}/oz"}\r
             }\r
             ounce-troy{\r
                 dnam{"oz t"}\r
-                one{"{0} oz t"}\r
-                other{"{0} oz t"}\r
+                one{"{0} oz t"}\r
+                other{"{0} oz t"}\r
             }\r
             pound{\r
                 dnam{"lb"}\r
-                one{"{0} lb"}\r
-                other{"{0} lb"}\r
+                one{"{0}lb"}\r
+                other{"{0}lb"}\r
                 per{"{0}/lb"}\r
             }\r
             stone{\r
@@ -1730,101 +1775,106 @@ fr{
             }\r
             ton{\r
                 dnam{"sh tn"}\r
-                one{"{0} sh tn"}\r
-                other{"{0} sh tn"}\r
+                one{"{0} sh tn"}\r
+                other{"{0} sh tn"}\r
             }\r
         }\r
         power{\r
             gigawatt{\r
                 dnam{"GW"}\r
-                one{"{0} GW"}\r
-                other{"{0} GW"}\r
+                one{"{0}GW"}\r
+                other{"{0}GW"}\r
             }\r
             horsepower{\r
                 dnam{"ch"}\r
-                one{"{0} ch"}\r
-                other{"{0} ch"}\r
+                one{"{0}ch"}\r
+                other{"{0}ch"}\r
             }\r
             kilowatt{\r
                 dnam{"kW"}\r
-                one{"{0} kW"}\r
-                other{"{0} kW"}\r
+                one{"{0}kW"}\r
+                other{"{0}kW"}\r
             }\r
             megawatt{\r
                 dnam{"MW"}\r
-                one{"{0} MW"}\r
-                other{"{0} MW"}\r
+                one{"{0}MW"}\r
+                other{"{0}MW"}\r
             }\r
             milliwatt{\r
                 dnam{"mW"}\r
-                one{"{0} mW"}\r
-                other{"{0} mW"}\r
+                one{"{0}mW"}\r
+                other{"{0}mW"}\r
             }\r
             watt{\r
                 dnam{"W"}\r
-                one{"{0} W"}\r
-                other{"{0} W"}\r
+                one{"{0}W"}\r
+                other{"{0}W"}\r
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"atm"}\r
+                one{"{0} atm"}\r
+                other{"{0} atm"}\r
+            }\r
             hectopascal{\r
                 dnam{"hPa"}\r
-                one{"{0} hPa"}\r
-                other{"{0} hPa"}\r
+                one{"{0}hPa"}\r
+                other{"{0}hPa"}\r
             }\r
             inch-hg{\r
                 dnam{"inHg"}\r
-                one{"{0} inHg"}\r
-                other{"{0} inHg"}\r
+                one{"{0}inHg"}\r
+                other{"{0}inHg"}\r
             }\r
             millibar{\r
                 dnam{"mbar"}\r
-                one{"{0} mbar"}\r
-                other{"{0} mbar"}\r
+                one{"{0}mbar"}\r
+                other{"{0}mbar"}\r
             }\r
             millimeter-of-mercury{\r
                 dnam{"mmHg"}\r
-                one{"{0} mmHg"}\r
-                other{"{0} mmHg"}\r
+                one{"{0}mmHg"}\r
+                other{"{0}mmHg"}\r
             }\r
             pound-per-square-inch{\r
                 dnam{"lb/po²"}\r
-                one{"{0} lb/po²"}\r
-                other{"{0} lb/po²"}\r
+                one{"{0}lb/po²"}\r
+                other{"{0}lb/po²"}\r
             }\r
         }\r
         speed{\r
             kilometer-per-hour{\r
                 dnam{"km/h"}\r
-                one{"{0} km/h"}\r
-                other{"{0} km/h"}\r
+                one{"{0}km/h"}\r
+                other{"{0}km/h"}\r
             }\r
             knot{\r
                 dnam{"nd"}\r
-                one{"{0} nd"}\r
-                other{"{0} nd"}\r
+                one{"{0}nd"}\r
+                other{"{0}nd"}\r
             }\r
             meter-per-second{\r
                 dnam{"m/s"}\r
-                one{"{0} m/s"}\r
-                other{"{0} m/s"}\r
+                one{"{0}m/s"}\r
+                other{"{0}m/s"}\r
             }\r
             mile-per-hour{\r
                 dnam{"mi/h"}\r
-                one{"{0} mi/h"}\r
-                other{"{0} mi/h"}\r
+                one{"{0}mi/h"}\r
+                other{"{0}mi/h"}\r
             }\r
         }\r
         temperature{\r
             celsius{\r
                 dnam{"°C"}\r
-                one{"{0} °C"}\r
-                other{"{0} °C"}\r
+                one{"{0}°C"}\r
+                other{"{0}°C"}\r
             }\r
             fahrenheit{\r
                 dnam{"°F"}\r
-                one{"{0} °F"}\r
-                other{"{0} °F"}\r
+                one{"{0}°F"}\r
+                other{"{0}°F"}\r
             }\r
             generic{\r
                 dnam{"°"}\r
@@ -1833,8 +1883,8 @@ fr{
             }\r
             kelvin{\r
                 dnam{"K"}\r
-                one{"{0} K"}\r
-                other{"{0} K"}\r
+                one{"{0}K"}\r
+                other{"{0}K"}\r
             }\r
         }\r
         volume{\r
@@ -1850,40 +1900,40 @@ fr{
             }\r
             cubic-centimeter{\r
                 dnam{"cm³"}\r
-                one{"{0} cm³"}\r
-                other{"{0} cm³"}\r
+                one{"{0}cm³"}\r
+                other{"{0}cm³"}\r
                 per{"{0}/cm³"}\r
             }\r
             cubic-foot{\r
                 dnam{"pi³"}\r
-                one{"{0} pi³"}\r
-                other{"{0} pi³"}\r
+                one{"{0}pi³"}\r
+                other{"{0}pi³"}\r
             }\r
             cubic-inch{\r
                 dnam{"po³"}\r
-                one{"{0} po³"}\r
-                other{"{0} po³"}\r
+                one{"{0}po³"}\r
+                other{"{0}po³"}\r
             }\r
             cubic-kilometer{\r
                 dnam{"km³"}\r
-                one{"{0} km³"}\r
-                other{"{0} km³"}\r
+                one{"{0}km³"}\r
+                other{"{0}km³"}\r
             }\r
             cubic-meter{\r
                 dnam{"m³"}\r
-                one{"{0} m³"}\r
-                other{"{0} m³"}\r
+                one{"{0}m³"}\r
+                other{"{0}m³"}\r
                 per{"{0}/m³"}\r
             }\r
             cubic-mile{\r
                 dnam{"mi³"}\r
-                one{"{0} mi³"}\r
-                other{"{0} mi³"}\r
+                one{"{0}mi³"}\r
+                other{"{0}mi³"}\r
             }\r
             cubic-yard{\r
                 dnam{"yd³"}\r
-                one{"{0} yd³"}\r
-                other{"{0} yd³"}\r
+                one{"{0}yd³"}\r
+                other{"{0}yd³"}\r
             }\r
             cup{\r
                 dnam{"tasses"}\r
@@ -1919,19 +1969,19 @@ fr{
             }\r
             hectoliter{\r
                 dnam{"hl"}\r
-                one{"{0} hl"}\r
-                other{"{0} hl"}\r
+                one{"{0}hl"}\r
+                other{"{0}hl"}\r
             }\r
             liter{\r
                 dnam{"l"}\r
-                one{"{0} l"}\r
-                other{"{0} l"}\r
+                one{"{0}l"}\r
+                other{"{0}l"}\r
                 per{"{0}/l"}\r
             }\r
             megaliter{\r
                 dnam{"Ml"}\r
-                one{"{0} Ml"}\r
-                other{"{0} Ml"}\r
+                one{"{0}Ml"}\r
+                other{"{0}Ml"}\r
             }\r
             milliliter{\r
                 dnam{"ml"}\r
index 91e91baf30c441af07f03aef1e4da34afb3efae8..c6e417a1c5c0e135a897987d423ebd4c4eb2eabc 100644 (file)
@@ -1,18 +1,36 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 fr_CA{\r
-    Version{"2.1.38.73"}\r
+    Version{"2.1.43.65"}\r
     units{\r
         acceleration{\r
             g-force{\r
                 dnam{"force G"}\r
+                one{"{0} fois la gravitation terrestre"}\r
+                other{"{0} fois la gravitation terrestre"}\r
+            }\r
+            meter-per-second-squared{\r
+                one{"{0} mètre par seconde carrée"}\r
+                other{"{0} mètres par seconde carrée"}\r
             }\r
         }\r
         angle{\r
+            arc-minute{\r
+                one{"{0} minute d’angle"}\r
+                other{"{0} minutes d’angle"}\r
+            }\r
             arc-second{\r
                 one{"{0} seconde d’angle"}\r
                 other{"{0} secondes d’angle"}\r
             }\r
+            degree{\r
+                one{"{0} degré"}\r
+                other{"{0} degrés"}\r
+            }\r
+            radian{\r
+                one{"{0} radian"}\r
+                other{"{0} radians"}\r
+            }\r
         }\r
         area{\r
             acre{\r
@@ -20,7 +38,33 @@ fr_CA{
                 one{"{0} acre"}\r
                 other{"{0} acres"}\r
             }\r
+            hectare{\r
+                one{"{0} hectare"}\r
+                other{"{0} hectares"}\r
+            }\r
+            square-centimeter{\r
+                one{"{0} centimètre carré"}\r
+                other{"{0} centimètres carrés"}\r
+            }\r
+            square-foot{\r
+                one{"{0} pied carré"}\r
+                other{"{0} pieds carrés"}\r
+            }\r
+            square-inch{\r
+                one{"{0} pouce carré"}\r
+                other{"{0} pouces carrés"}\r
+            }\r
+            square-kilometer{\r
+                one{"{0} kilomètre carré"}\r
+                other{"{0} kilomètres carrés"}\r
+            }\r
+            square-meter{\r
+                one{"{0} mètre carré"}\r
+                other{"{0} mètres carrés"}\r
+            }\r
             square-mile{\r
+                one{"{0} mille carré"}\r
+                other{"{0} milles carrés"}\r
                 per{"{0} par mille carré"}\r
             }\r
             square-yard{\r
@@ -35,6 +79,13 @@ fr_CA{
                 one{"{0} partie par million"}\r
                 other{"{0} parties par million"}\r
             }\r
+            percent{\r
+                other{"{0} pour cent"}\r
+            }\r
+            permille{\r
+                one{"{0} pour mille"}\r
+                other{"{0} pour mille"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -53,34 +104,256 @@ fr_CA{
                 other{"{0} milles au gallon impérial"}\r
             }\r
         }\r
+        coordinate{\r
+            dnam{"point cardinal"}\r
+            west{"{0} ouest"}\r
+        }\r
+        digital{\r
+            bit{\r
+                one{"{0} bit"}\r
+                other{"{0} bits"}\r
+            }\r
+            byte{\r
+                one{"{0} octet"}\r
+                other{"{0} octets"}\r
+            }\r
+            gigabit{\r
+                one{"{0} gigabit"}\r
+                other{"{0} gigabits"}\r
+            }\r
+            gigabyte{\r
+                one{"{0} gigaoctet"}\r
+                other{"{0} gigaoctets"}\r
+            }\r
+            kilobit{\r
+                one{"{0} kilobit"}\r
+                other{"{0} kilobits"}\r
+            }\r
+            kilobyte{\r
+                one{"{0} kilooctet"}\r
+                other{"{0} kilooctets"}\r
+            }\r
+            megabit{\r
+                one{"{0} mégabit"}\r
+                other{"{0} mégabits"}\r
+            }\r
+            megabyte{\r
+                one{"{0} mégaoctet"}\r
+                other{"{0} mégaoctets"}\r
+            }\r
+            terabit{\r
+                one{"{0} térabit"}\r
+                other{"{0} térabits"}\r
+            }\r
+            terabyte{\r
+                one{"{0} téraoctet"}\r
+                other{"{0} téraoctets"}\r
+            }\r
+        }\r
         duration{\r
             second{\r
                 per{"{0} à la seconde"}\r
             }\r
+            year{\r
+                one{"{0} an"}\r
+                other{"{0} ans"}\r
+            }\r
+        }\r
+        electric{\r
+            ampere{\r
+                one{"{0} ampère"}\r
+                other{"{0} ampères"}\r
+            }\r
+            milliampere{\r
+                one{"{0} milliampère"}\r
+                other{"{0} milliampères"}\r
+            }\r
+            ohm{\r
+                one{"{0} ohm"}\r
+                other{"{0} ohms"}\r
+            }\r
+            volt{\r
+                one{"{0} volt"}\r
+                other{"{0} volts"}\r
+            }\r
+        }\r
+        energy{\r
+            calorie{\r
+                one{"{0} calorie"}\r
+                other{"{0} calories"}\r
+            }\r
+            foodcalorie{\r
+                one{"{0} kilocalorie"}\r
+                other{"{0} kilocalories"}\r
+            }\r
+            joule{\r
+                one{"{0} joule"}\r
+                other{"{0} joules"}\r
+            }\r
+            kilocalorie{\r
+                one{"{0} kilocalorie"}\r
+                other{"{0} kilocalories"}\r
+            }\r
+            kilojoule{\r
+                one{"{0} kilojoule"}\r
+                other{"{0} kilojoules"}\r
+            }\r
+            kilowatt-hour{\r
+                one{"{0} kilowattheure"}\r
+                other{"{0} kilowattheures"}\r
+            }\r
+        }\r
+        frequency{\r
+            gigahertz{\r
+                one{"{0} gigahertz"}\r
+                other{"{0} gigahertz"}\r
+            }\r
+            hertz{\r
+                one{"{0} hertz"}\r
+                other{"{0} hertz"}\r
+            }\r
+            kilohertz{\r
+                one{"{0} kilohertz"}\r
+                other{"{0} kilohertz"}\r
+            }\r
+            megahertz{\r
+                one{"{0} mégahertz"}\r
+                other{"{0} mégahertz"}\r
+            }\r
         }\r
         length{\r
+            astronomical-unit{\r
+                one{"{0} unité astronomique"}\r
+                other{"{0} unités astronomiques"}\r
+            }\r
+            centimeter{\r
+                one{"{0} centimètre"}\r
+                other{"{0} centimètres"}\r
+            }\r
+            foot{\r
+                one{"{0} pied"}\r
+                other{"{0} pieds"}\r
+            }\r
+            inch{\r
+                one{"{0} pouce"}\r
+                other{"{0} pouces"}\r
+            }\r
+            light-year{\r
+                one{"{0} année-lumière"}\r
+                other{"{0} années-lumière"}\r
+            }\r
+            micrometer{\r
+                one{"{0} micromètre"}\r
+                other{"{0} micromètres"}\r
+            }\r
             mile{\r
                 dnam{"mille"}\r
                 one{"{0} mille"}\r
                 other{"{0} milles"}\r
             }\r
+            millimeter{\r
+                one{"{0} millimètre"}\r
+                other{"{0} millimètres"}\r
+            }\r
+            nanometer{\r
+                one{"{0} nanomètre"}\r
+                other{"{0} nanomètres"}\r
+            }\r
+            nautical-mile{\r
+                one{"{0} mille marin"}\r
+                other{"{0} milles marins"}\r
+            }\r
+            parsec{\r
+                one{"{0} parsec"}\r
+                other{"{0} parsecs"}\r
+            }\r
+            picometer{\r
+                one{"{0} picomètre"}\r
+                other{"{0} picomètres"}\r
+            }\r
             yard{\r
                 dnam{"verges"}\r
                 one{"{0} verge"}\r
                 other{"{0} verges"}\r
             }\r
         }\r
+        light{\r
+            lux{\r
+                one{"{0} lux"}\r
+                other{"{0} lux"}\r
+            }\r
+        }\r
         mass{\r
+            carat{\r
+                one{"{0} carat"}\r
+                other{"{0} carats"}\r
+            }\r
             kilogram{\r
+                one{"{0} kilogramme"}\r
+                other{"{0} kilogrammes"}\r
                 per{"{0} par kilogramme"}\r
             }\r
+            metric-ton{\r
+                one{"{0} tonne"}\r
+                other{"{0} tonnes"}\r
+            }\r
             stone{\r
                 other{"{0} stone"}\r
             }\r
+            ton{\r
+                one{"{0} tonne courte"}\r
+                other{"{0} tonnes courtes"}\r
+            }\r
+        }\r
+        power{\r
+            gigawatt{\r
+                one{"{0} gigawatt"}\r
+                other{"{0} gigawatts"}\r
+            }\r
+            horsepower{\r
+                one{"{0} cheval-vapeur"}\r
+                other{"{0} chevaux-vapeur"}\r
+            }\r
+            kilowatt{\r
+                one{"{0} kilowatt"}\r
+                other{"{0} kilowatts"}\r
+            }\r
+            megawatt{\r
+                one{"{0} mégawatt"}\r
+                other{"{0} mégawatts"}\r
+            }\r
+            milliwatt{\r
+                one{"{0} milliwatt"}\r
+                other{"{0} milliwatts"}\r
+            }\r
+            watt{\r
+                one{"{0} watt"}\r
+                other{"{0} watts"}\r
+            }\r
+        }\r
+        pressure{\r
+            atmosphere{\r
+                one{"{0} atmosphère"}\r
+                other{"{0} atmosphères"}\r
+            }\r
+            inch-hg{\r
+                one{"{0} pouce de mercure"}\r
+                other{"{0} pouces de mercure"}\r
+            }\r
+            millibar{\r
+                one{"{0} millibar"}\r
+                other{"{0} millibars"}\r
+            }\r
         }\r
         speed{\r
             kilometer-per-hour{\r
                 dnam{"kilomètres à l’heure"}\r
+                one{"{0} kilomètre par heure"}\r
+                other{"{0} kilomètres par heure"}\r
+            }\r
+            meter-per-second{\r
+                one{"{0} mètre par seconde"}\r
+                other{"{0} mètres par seconde"}\r
             }\r
             mile-per-hour{\r
                 dnam{"milles à l’heure"}\r
@@ -89,6 +362,14 @@ fr_CA{
             }\r
         }\r
         temperature{\r
+            celsius{\r
+                one{"{0} degré Celsius"}\r
+                other{"{0} degrés Celsius"}\r
+            }\r
+            fahrenheit{\r
+                one{"{0} degré Fahrenheit"}\r
+                other{"{0} degrés Fahrenheit"}\r
+            }\r
             generic{\r
                 dnam{"°"}\r
                 one{"{0}°"}\r
@@ -96,6 +377,14 @@ fr_CA{
             }\r
         }\r
         volume{\r
+            cubic-kilometer{\r
+                one{"{0} kilomètre cube"}\r
+                other{"{0} kilomètres cubes"}\r
+            }\r
+            cubic-mile{\r
+                one{"{0} mille cube"}\r
+                other{"{0} milles cubes"}\r
+            }\r
             cubic-yard{\r
                 dnam{"verges cubes"}\r
                 one{"{0} verge cube"}\r
@@ -104,6 +393,10 @@ fr_CA{
             gallon-imperial{\r
                 dnam{"gallon impérial"}\r
             }\r
+            hectoliter{\r
+                one{"{0} hectolitre"}\r
+                other{"{0} hectolitres"}\r
+            }\r
             pint{\r
                 dnam{"chopine"}\r
                 one{"{0} chopine"}\r
@@ -128,6 +421,12 @@ fr_CA{
                 other{"{0}m/s²"}\r
             }\r
         }\r
+        concentr{\r
+            percent{\r
+                one{"{0} %"}\r
+                other{"{0} %"}\r
+            }\r
+        }\r
         consumption{\r
             liter-per-100kilometers{\r
                 dnam{"L/100 km"}\r
@@ -145,9 +444,13 @@ fr_CA{
                 other{"{0}µs"}\r
             }\r
             minute{\r
+                one{"{0}m"}\r
+                other{"{0}m"}\r
                 per{"{0}/m"}\r
             }\r
             month{\r
+                one{"{0}m"}\r
+                other{"{0}m"}\r
                 per{"{0}/m"}\r
             }\r
             nanosecond{\r
@@ -155,6 +458,9 @@ fr_CA{
                 other{"{0}ns"}\r
             }\r
             week{\r
+                dnam{"sem"}\r
+                one{"{0}sem"}\r
+                other{"{0}sem"}\r
                 per{"{0}/sem"}\r
             }\r
         }\r
@@ -268,11 +574,56 @@ fr_CA{
         }\r
     }\r
     unitsShort{\r
+        acceleration{\r
+            g-force{\r
+                dnam{"G"}\r
+                one{"{0} G"}\r
+                other{"{0} G"}\r
+            }\r
+            meter-per-second-squared{\r
+                one{"{0} m/s²"}\r
+                other{"{0} m/s²"}\r
+            }\r
+        }\r
+        angle{\r
+            radian{\r
+                one{"{0} rad"}\r
+                other{"{0} rad"}\r
+            }\r
+        }\r
         area{\r
+            acre{\r
+                one{"{0} ac"}\r
+                other{"{0} ac"}\r
+            }\r
+            hectare{\r
+                one{"{0} ha"}\r
+                other{"{0} ha"}\r
+            }\r
+            square-centimeter{\r
+                one{"{0} cm²"}\r
+                other{"{0} cm²"}\r
+            }\r
             square-foot{\r
                 one{"{0} pi²"}\r
                 other{"{0} pi²"}\r
             }\r
+            square-inch{\r
+                one{"{0} po²"}\r
+                other{"{0} po²"}\r
+            }\r
+            square-kilometer{\r
+                one{"{0} km²"}\r
+                other{"{0} km²"}\r
+            }\r
+            square-meter{\r
+                one{"{0} m²"}\r
+                other{"{0} m²"}\r
+            }\r
+            square-mile{\r
+                one{"{0} mi²"}\r
+                other{"{0} mi²"}\r
+            }\r
             square-yard{\r
                 dnam{"vg²"}\r
                 one{"{0} vg²"}\r
@@ -283,6 +634,14 @@ fr_CA{
             karat{\r
                 dnam{"carats"}\r
             }\r
+            percent{\r
+                one{"{0} %"}\r
+                other{"{0} %"}\r
+            }\r
+            permille{\r
+                one{"{0} ‰"}\r
+                other{"{0} ‰"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -295,6 +654,10 @@ fr_CA{
                 one{"{0} L/km"}\r
                 other{"{0} L/km"}\r
             }\r
+            mile-per-gallon{\r
+                one{"{0} mi/gal"}\r
+                other{"{0} mi/gal"}\r
+            }\r
             mile-per-gallon-imperial{\r
                 dnam{"mi/gal Imp"}\r
                 one{"{0} mi/gal Imp"}\r
@@ -302,14 +665,129 @@ fr_CA{
             }\r
         }\r
         digital{\r
+            bit{\r
+                one{"{0} bit"}\r
+                other{"{0} bit"}\r
+            }\r
+            byte{\r
+                one{"{0} octet"}\r
+                other{"{0} octet"}\r
+            }\r
             gigabit{\r
                 dnam{"Gb"}\r
+                one{"{0} Gb"}\r
+                other{"{0} Gb"}\r
+            }\r
+            gigabyte{\r
+                one{"{0} Go"}\r
+                other{"{0} Go"}\r
             }\r
             kilobit{\r
                 dnam{"kb"}\r
+                one{"{0} kb"}\r
+                other{"{0} kb"}\r
+            }\r
+            kilobyte{\r
+                one{"{0} ko"}\r
+                other{"{0} ko"}\r
             }\r
             megabit{\r
                 dnam{"Mb"}\r
+                one{"{0} Mb"}\r
+                other{"{0} Mb"}\r
+            }\r
+            megabyte{\r
+                one{"{0} Mo"}\r
+                other{"{0} Mo"}\r
+            }\r
+            terabit{\r
+                dnam{"Tb"}\r
+                one{"{0} Tb"}\r
+                other{"{0} Tb"}\r
+            }\r
+            terabyte{\r
+                one{"{0} To"}\r
+                other{"{0} To"}\r
+            }\r
+        }\r
+        duration{\r
+            microsecond{\r
+                one{"{0} μs"}\r
+                other{"{0} μs"}\r
+            }\r
+            nanosecond{\r
+                one{"{0} ns"}\r
+                other{"{0} ns"}\r
+            }\r
+            second{\r
+                one{"{0} s"}\r
+                other{"{0} s"}\r
+            }\r
+            year{\r
+                one{"{0} an"}\r
+                other{"{0} ans"}\r
+            }\r
+        }\r
+        electric{\r
+            ampere{\r
+                one{"{0} A"}\r
+                other{"{0} A"}\r
+            }\r
+            milliampere{\r
+                one{"{0} mA"}\r
+                other{"{0} mA"}\r
+            }\r
+            ohm{\r
+                one{"{0} Ω"}\r
+                other{"{0} Ω"}\r
+            }\r
+            volt{\r
+                one{"{0} V"}\r
+                other{"{0} V"}\r
+            }\r
+        }\r
+        energy{\r
+            calorie{\r
+                one{"{0} cal"}\r
+                other{"{0} cal"}\r
+            }\r
+            foodcalorie{\r
+                one{"{0} kcal"}\r
+                other{"{0} kcal"}\r
+            }\r
+            joule{\r
+                one{"{0} J"}\r
+                other{"{0} J"}\r
+            }\r
+            kilocalorie{\r
+                one{"{0} kcal"}\r
+                other{"{0} kcal"}\r
+            }\r
+            kilojoule{\r
+                one{"{0} kJ"}\r
+                other{"{0} kJ"}\r
+            }\r
+            kilowatt-hour{\r
+                one{"{0} kWh"}\r
+                other{"{0} kWh"}\r
+            }\r
+        }\r
+        frequency{\r
+            gigahertz{\r
+                one{"{0} GHz"}\r
+                other{"{0} GHz"}\r
+            }\r
+            hertz{\r
+                one{"{0} Hz"}\r
+                other{"{0} Hz"}\r
+            }\r
+            kilohertz{\r
+                one{"{0} kHz"}\r
+                other{"{0} kHz"}\r
+            }\r
+            megahertz{\r
+                one{"{0} MHz"}\r
+                other{"{0} MHz"}\r
             }\r
         }\r
         length{\r
@@ -317,35 +795,156 @@ fr_CA{
                 one{"{0} ua"}\r
                 other{"{0} ua"}\r
             }\r
+            centimeter{\r
+                one{"{0} cm"}\r
+                other{"{0} cm"}\r
+            }\r
+            decimeter{\r
+                one{"{0} dm"}\r
+                other{"{0} dm"}\r
+            }\r
             foot{\r
                 one{"{0} pi"}\r
                 other{"{0} pi"}\r
             }\r
+            inch{\r
+                one{"{0} po"}\r
+                other{"{0} po"}\r
+            }\r
+            light-year{\r
+                one{"{0} al"}\r
+                other{"{0} al"}\r
+            }\r
+            micrometer{\r
+                one{"{0} µm"}\r
+                other{"{0} µm"}\r
+            }\r
+            mile{\r
+                one{"{0} mi"}\r
+                other{"{0} mi"}\r
+            }\r
+            millimeter{\r
+                one{"{0} mm"}\r
+                other{"{0} mm"}\r
+            }\r
+            nanometer{\r
+                one{"{0} nm"}\r
+                other{"{0} nm"}\r
+            }\r
             nautical-mile{\r
                 dnam{"NM"}\r
                 one{"{0} NM"}\r
                 other{"{0} NM"}\r
             }\r
+            parsec{\r
+                one{"{0} pc"}\r
+                other{"{0} pc"}\r
+            }\r
+            picometer{\r
+                one{"{0} pm"}\r
+                other{"{0} pm"}\r
+            }\r
             yard{\r
                 dnam{"vg"}\r
                 one{"{0} vg"}\r
                 other{"{0} vg"}\r
             }\r
         }\r
+        light{\r
+            lux{\r
+                one{"{0} lx"}\r
+                other{"{0} lx"}\r
+            }\r
+        }\r
         mass{\r
+            gram{\r
+                one{"{0} g"}\r
+                other{"{0} g"}\r
+            }\r
+            milligram{\r
+                one{"{0} mg"}\r
+                other{"{0} mg"}\r
+            }\r
             ton{\r
                 dnam{"tc"}\r
                 one{"{0} tc"}\r
                 other{"{0} tc"}\r
             }\r
         }\r
+        power{\r
+            gigawatt{\r
+                one{"{0} GW"}\r
+                other{"{0} GW"}\r
+            }\r
+            horsepower{\r
+                one{"{0} ch"}\r
+                other{"{0} ch"}\r
+            }\r
+            kilowatt{\r
+                one{"{0} kW"}\r
+                other{"{0} kW"}\r
+            }\r
+            megawatt{\r
+                one{"{0} MW"}\r
+                other{"{0} MW"}\r
+            }\r
+            milliwatt{\r
+                one{"{0} mW"}\r
+                other{"{0} mW"}\r
+            }\r
+            watt{\r
+                one{"{0} W"}\r
+                other{"{0} W"}\r
+            }\r
+        }\r
         pressure{\r
+            inch-hg{\r
+                dnam{"po Hg"}\r
+                one{"{0} po Hg"}\r
+                other{"{0} po Hg"}\r
+            }\r
+            millibar{\r
+                one{"{0} mbar"}\r
+                other{"{0} mbar"}\r
+            }\r
+            millimeter-of-mercury{\r
+                dnam{"mm Hg"}\r
+                one{"{0} mm Hg"}\r
+                other{"{0} mm Hg"}\r
+            }\r
             pound-per-square-inch{\r
                 dnam{"psi"}\r
                 one{"{0} psi"}\r
                 other{"{0} psi"}\r
             }\r
         }\r
+        speed{\r
+            meter-per-second{\r
+                one{"{0} m/s"}\r
+                other{"{0} m/s"}\r
+            }\r
+            mile-per-hour{\r
+                one{"{0} mi/h"}\r
+                other{"{0} mi/h"}\r
+            }\r
+        }\r
+        temperature{\r
+            celsius{\r
+                one{"{0} °C"}\r
+                other{"{0} °C"}\r
+            }\r
+            fahrenheit{\r
+                one{"{0} °F"}\r
+                other{"{0} °F"}\r
+            }\r
+            generic{\r
+                one{"{0}°"}\r
+            }\r
+            kelvin{\r
+                one{"{0} K"}\r
+                other{"{0} K"}\r
+            }\r
+        }\r
         volume{\r
             centiliter{\r
                 dnam{"cL"}\r
@@ -356,6 +955,14 @@ fr_CA{
                 one{"{0} pi³"}\r
                 other{"{0} pi³"}\r
             }\r
+            cubic-inch{\r
+                one{"{0} po³"}\r
+                other{"{0} po³"}\r
+            }\r
+            cubic-kilometer{\r
+                one{"{0} km³"}\r
+                other{"{0} km³"}\r
+            }\r
             cubic-yard{\r
                 dnam{"vg³"}\r
                 one{"{0} vg³"}\r
index 6a0c33fabc5885322c45ffa9ca8f698afa39a8ae..01deace41c67d8baaa87145eccc3eaa36b8bc98f 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 fy{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.41.34"}\r
     durationUnits{\r
         hm{"h:mm"}\r
         hms{"h:mm:ss"}\r
index 289cea1f81257b8ecc6bada8c36f242d5cafa8ff..18086b0efbbc79f8d3bf2e5998308b9376117c54 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 ga{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.91"}\r
     durationUnits{\r
         hm{"h:mm"}\r
         hms{"h:mm:ss"}\r
@@ -183,6 +183,22 @@ ga{
                 other{"{0} sa mhilliún"}\r
                 two{"{0} sa mhilliún"}\r
             }\r
+            percent{\r
+                dnam{"faoin gcéad"}\r
+                few{"{0}%"}\r
+                many{"{0}%"}\r
+                one{"{0} faoin gcéad"}\r
+                other{"{0} faoin gcéad"}\r
+                two{"{0}%"}\r
+            }\r
+            permille{\r
+                dnam{"faoin míle"}\r
+                few{"{0}‰"}\r
+                many{"{0}‰"}\r
+                one{"{0} faoin míle"}\r
+                other{"{0} faoin míle"}\r
+                two{"{0}‰"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -219,6 +235,7 @@ ga{
             }\r
         }\r
         coordinate{\r
+            dnam{"treo chairdinéil"}\r
             east{"{0}O"}\r
             north{"{0}T"}\r
             south{"{0}D"}\r
@@ -289,6 +306,14 @@ ga{
                 other{"{0} meigibheart"}\r
                 two{"{0} mheigibheart"}\r
             }\r
+            petabyte{\r
+                dnam{"peitibheart"}\r
+                few{"{0} PB"}\r
+                many{"{0} PB"}\r
+                one{"{0} peitibheart"}\r
+                other{"{0} petabytes"}\r
+                two{"{0} PB"}\r
+            }\r
             terabit{\r
                 dnam{"teirighiotáin"}\r
                 few{"{0} theirighiotán"}\r
@@ -843,6 +868,14 @@ ga{
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"atmaisféar"}\r
+                few{"{0} atm"}\r
+                many{"{0} atm"}\r
+                one{"{0} atmaisféar"}\r
+                other{"{0} atmaisféar"}\r
+                two{"{0} atm"}\r
+            }\r
             hectopascal{\r
                 dnam{"heicteapascail"}\r
                 few{"{0} heicteapascal"}\r
@@ -1336,6 +1369,14 @@ ga{
                 other{"{0}/milliún"}\r
                 two{"{0}/milliún"}\r
             }\r
+            percent{\r
+                dnam{"%"}\r
+                few{"{0}%"}\r
+                many{"{0}%"}\r
+                one{"{0}%"}\r
+                other{"{0}%"}\r
+                two{"{0}%"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -1372,6 +1413,7 @@ ga{
             }\r
         }\r
         coordinate{\r
+            dnam{"treo"}\r
             east{"{0}O"}\r
             north{"{0}T"}\r
             south{"{0}D"}\r
@@ -1702,11 +1744,11 @@ ga{
             }\r
             fathom{\r
                 dnam{"feá"}\r
-                few{"{0} fm"}\r
-                many{"{0} fm"}\r
-                one{"{0} fm"}\r
-                other{"{0} fm"}\r
-                two{"{0} fm"}\r
+                few{"{0} fth"}\r
+                many{"{0} fth"}\r
+                one{"{0} fth"}\r
+                other{"{0} fth"}\r
+                two{"{0} fth"}\r
             }\r
             foot{\r
                 dnam{"tr"}\r
@@ -2489,6 +2531,22 @@ ga{
                 other{"{0}/milliún"}\r
                 two{"{0}/milliún"}\r
             }\r
+            percent{\r
+                dnam{"faoin gcéad"}\r
+                few{"{0}%"}\r
+                many{"{0}%"}\r
+                one{"{0}%"}\r
+                other{"{0}%"}\r
+                two{"{0}%"}\r
+            }\r
+            permille{\r
+                dnam{"faoin míle"}\r
+                few{"{0}‰"}\r
+                many{"{0}‰"}\r
+                one{"{0}‰"}\r
+                other{"{0}‰"}\r
+                two{"{0}‰"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -2525,6 +2583,7 @@ ga{
             }\r
         }\r
         coordinate{\r
+            dnam{"treo"}\r
             east{"{0}O"}\r
             north{"{0}T"}\r
             south{"{0}D"}\r
@@ -2595,6 +2654,14 @@ ga{
                 other{"{0} MB"}\r
                 two{"{0} MB"}\r
             }\r
+            petabyte{\r
+                dnam{"PBheart"}\r
+                few{"{0} PB"}\r
+                many{"{0} PB"}\r
+                one{"{0} PB"}\r
+                other{"{0} PB"}\r
+                two{"{0} PB"}\r
+            }\r
             terabit{\r
                 dnam{"Tb"}\r
                 few{"{0} Tb"}\r
@@ -2855,11 +2922,11 @@ ga{
             }\r
             fathom{\r
                 dnam{"feánna"}\r
-                few{"{0} fm"}\r
-                many{"{0} fm"}\r
-                one{"{0} fm"}\r
-                other{"{0} fm"}\r
-                two{"{0} fm"}\r
+                few{"{0} fth"}\r
+                many{"{0} fth"}\r
+                one{"{0} fth"}\r
+                other{"{0} fth"}\r
+                two{"{0} fth"}\r
             }\r
             foot{\r
                 dnam{"troithe"}\r
@@ -3149,6 +3216,14 @@ ga{
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"atm"}\r
+                few{"{0} atm"}\r
+                many{"{0} atm"}\r
+                one{"{0} atm"}\r
+                other{"{0} atm"}\r
+                two{"{0} atm"}\r
+            }\r
             hectopascal{\r
                 dnam{"hPa"}\r
                 few{"{0} hPa"}\r
index d56e97ff1e797daffb3da4584c11397ac4bf2ba8..26fbd4eb36d0096fe7e6365c83348af50dd02bc6 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 gd{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.91"}\r
     durationUnits{\r
         hm{"h:mm"}\r
         hms{"h:mm:ss"}\r
@@ -163,6 +163,20 @@ gd{
                 other{"{0} pàirt sa mhillean"}\r
                 two{"{0} phàirt sa mhillean"}\r
             }\r
+            percent{\r
+                dnam{"sa cheud"}\r
+                few{"{0} sa cheud"}\r
+                one{"{0} sa cheud"}\r
+                other{"{0} sa cheud"}\r
+                two{"{0} sa cheud"}\r
+            }\r
+            permille{\r
+                dnam{"sa mhìle"}\r
+                few{"{0} sa mhìle"}\r
+                one{"{0} sa mhìle"}\r
+                other{"{0} sa mhìle"}\r
+                two{"{0} sa mhìle"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -195,6 +209,7 @@ gd{
             }\r
         }\r
         coordinate{\r
+            dnam{"comhair combaist"}\r
             east{"{0}E"}\r
             north{"{0}T"}\r
             south{"{0}D"}\r
@@ -257,6 +272,13 @@ gd{
                 other{"{0} meaga-baidht"}\r
                 two{"{0} mheaga-baidht"}\r
             }\r
+            petabyte{\r
+                dnam{"peta-baidht"}\r
+                few{"{0} peta-baidht"}\r
+                one{"{0} pheta-baidht"}\r
+                other{"{0} peta-baidht"}\r
+                two{"{0} pheta-baidht"}\r
+            }\r
             terabit{\r
                 dnam{"tera-biod"}\r
                 few{"{0} tera-biodan"}\r
@@ -746,6 +768,13 @@ gd{
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"brùthadh-àile"}\r
+                few{"{0} brùthadh-àile"}\r
+                one{"{0} bhrùthadh-àile"}\r
+                other{"{0} brùthadh-àile"}\r
+                two{"{0} bhrùthadh-àile"}\r
+            }\r
             hectopascal{\r
                 dnam{"heacta pascal"}\r
                 few{"{0} heacta pascal"}\r
@@ -1181,6 +1210,20 @@ gd{
                 other{"{0}ppm"}\r
                 two{"{0}ppm"}\r
             }\r
+            percent{\r
+                dnam{"%"}\r
+                few{"{0}%"}\r
+                one{"{0}%"}\r
+                other{"{0}%"}\r
+                two{"{0}%"}\r
+            }\r
+            permille{\r
+                dnam{"‰"}\r
+                few{"{0}‰"}\r
+                one{"{0}‰"}\r
+                other{"{0}‰"}\r
+                two{"{0}‰"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -1213,6 +1256,7 @@ gd{
             }\r
         }\r
         coordinate{\r
+            dnam{"comhair"}\r
             east{"{0}E"}\r
             north{"{0}T"}\r
             south{"{0}D"}\r
@@ -1275,6 +1319,13 @@ gd{
                 other{"{0}MB"}\r
                 two{"{0}MB"}\r
             }\r
+            petabyte{\r
+                dnam{"PB"}\r
+                few{"{0}PB"}\r
+                one{"{0}PB"}\r
+                other{"{0}PB"}\r
+                two{"{0}PB"}\r
+            }\r
             terabit{\r
                 dnam{"Tb"}\r
                 few{"{0}Tb"}\r
@@ -1505,10 +1556,10 @@ gd{
             }\r
             fathom{\r
                 dnam{"aitheamh"}\r
-                few{"{0}fm"}\r
-                one{"{0}fm"}\r
-                other{"{0}fm"}\r
-                two{"{0}fm"}\r
+                few{"{0}fth"}\r
+                one{"{0}fth"}\r
+                other{"{0}fth"}\r
+                two{"{0}fth"}\r
             }\r
             foot{\r
                 dnam{"troigh"}\r
@@ -1764,6 +1815,13 @@ gd{
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"atm"}\r
+                few{"{0}atm"}\r
+                one{"{0}atm"}\r
+                other{"{0}atm"}\r
+                two{"{0}atm"}\r
+            }\r
             hectopascal{\r
                 dnam{"hPa"}\r
                 few{"{0}hPa"}\r
@@ -2199,6 +2257,20 @@ gd{
                 other{"{0} ppm"}\r
                 two{"{0} ppm"}\r
             }\r
+            percent{\r
+                dnam{"sa cheud"}\r
+                few{"{0}%"}\r
+                one{"{0}%"}\r
+                other{"{0}%"}\r
+                two{"{0}%"}\r
+            }\r
+            permille{\r
+                dnam{"sa mhìle"}\r
+                few{"{0}‰"}\r
+                one{"{0}‰"}\r
+                other{"{0}‰"}\r
+                two{"{0}‰"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -2231,6 +2303,7 @@ gd{
             }\r
         }\r
         coordinate{\r
+            dnam{"comhair"}\r
             east{"{0}E"}\r
             north{"{0}T"}\r
             south{"{0}D"}\r
@@ -2293,6 +2366,13 @@ gd{
                 other{"{0} MB"}\r
                 two{"{0} MB"}\r
             }\r
+            petabyte{\r
+                dnam{"PB"}\r
+                few{"{0} PB"}\r
+                one{"{0} PB"}\r
+                other{"{0} PB"}\r
+                two{"{0} PB"}\r
+            }\r
             terabit{\r
                 dnam{"Tb"}\r
                 few{"{0} Tb"}\r
@@ -2782,6 +2862,13 @@ gd{
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"àile"}\r
+                few{"{0} àile"}\r
+                one{"{0} àile"}\r
+                other{"{0} àile"}\r
+                two{"{0} àile"}\r
+            }\r
             hectopascal{\r
                 dnam{"hPa"}\r
                 few{"{0} hPa"}\r
index 4d37769eb687a5c6f677f9884d879a59e8105912..ec3bf8ba52e120ec47d9f3e36e871cd2890069b9 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 gl{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.94"}\r
     durationUnits{\r
         hm{"h:mm"}\r
         hms{"h:mm:ss"}\r
@@ -123,6 +123,16 @@ gl{
                 one{"{0} parte por millón"}\r
                 other{"{0} partes por millón"}\r
             }\r
+            percent{\r
+                dnam{"tanto por cento"}\r
+                one{"{0} %"}\r
+                other{"{0} %"}\r
+            }\r
+            permille{\r
+                dnam{"tanto por mil"}\r
+                one{"{0} ‰"}\r
+                other{"{0} ‰"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -147,6 +157,7 @@ gl{
             }\r
         }\r
         coordinate{\r
+            dnam{"punto cardinal"}\r
             east{"{0} L"}\r
             north{"{0} N"}\r
             south{"{0} S"}\r
@@ -193,6 +204,11 @@ gl{
                 one{"{0} megabyte"}\r
                 other{"{0} megabytes"}\r
             }\r
+            petabyte{\r
+                dnam{"petabytes"}\r
+                one{"{0} petabyte"}\r
+                other{"{0} petabytes"}\r
+            }\r
             terabit{\r
                 dnam{"terabits"}\r
                 one{"{0} terabit"}\r
@@ -537,6 +553,11 @@ gl{
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"atmosferas"}\r
+                one{"{0} atmosfera"}\r
+                other{"{0} atmosferas"}\r
+            }\r
             hectopascal{\r
                 dnam{"hectopascais"}\r
                 one{"{0} hectopascal"}\r
@@ -745,6 +766,13 @@ gl{
         compound{\r
             per{"{0}/{1}"}\r
         }\r
+        concentr{\r
+            percent{\r
+                dnam{"%"}\r
+                one{"{0} %"}\r
+                other{"{0} %"}\r
+            }\r
+        }\r
         consumption{\r
             liter-per-100kilometers{\r
                 dnam{"l/100 km"}\r
@@ -753,6 +781,7 @@ gl{
             }\r
         }\r
         coordinate{\r
+            dnam{"dirección"}\r
             east{"{0} L"}\r
             north{"{0} N"}\r
             south{"{0} S"}\r
@@ -976,6 +1005,16 @@ gl{
                 one{"{0} ppm"}\r
                 other{"{0} ppm"}\r
             }\r
+            percent{\r
+                dnam{"%"}\r
+                one{"{0} %"}\r
+                other{"{0} %"}\r
+            }\r
+            permille{\r
+                dnam{"‰"}\r
+                one{"{0} ‰"}\r
+                other{"{0} ‰"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -1000,6 +1039,7 @@ gl{
             }\r
         }\r
         coordinate{\r
+            dnam{"dirección"}\r
             east{"{0} L"}\r
             north{"{0} N"}\r
             south{"{0} S"}\r
@@ -1046,6 +1086,11 @@ gl{
                 one{"{0} MB"}\r
                 other{"{0} MB"}\r
             }\r
+            petabyte{\r
+                dnam{"PB"}\r
+                one{"{0} PB"}\r
+                other{"{0} PB"}\r
+            }\r
             terabit{\r
                 dnam{"Tb"}\r
                 one{"{0} Tb"}\r
@@ -1390,6 +1435,11 @@ gl{
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"atm"}\r
+                one{"{0} atm"}\r
+                other{"{0} atm"}\r
+            }\r
             hectopascal{\r
                 dnam{"hPa"}\r
                 one{"{0} hPa"}\r
index fbd0de3abcfcb50dd235f94cc4656a2410aae5d0..24315203b580646f13352731a3d9ae508059b442 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 gsw{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.41.34"}\r
     durationUnits{\r
         hm{"h:mm"}\r
         hms{"h:mm:ss"}\r
index aa0bb00f336665bff3a98734a134c007f5e079c4..f9b2cecd999042ea999eb8b0b34eefb6dc49e572 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 gu{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.2"}\r
     durationUnits{\r
         hm{"h:mm"}\r
         hms{"h:mm:ss"}\r
@@ -123,6 +123,16 @@ gu{
                 one{"{0} કણ પ્રતિ મિલિયન"}\r
                 other{"{0} કણ પ્રતિ મિલિયન"}\r
             }\r
+            percent{\r
+                dnam{"ટકા"}\r
+                one{"{0} ટકા"}\r
+                other{"{0} ટકા"}\r
+            }\r
+            permille{\r
+                dnam{"પ્રતિમાઈલ"}\r
+                one{"{0} પ્રતિમાઈલ"}\r
+                other{"{0} પ્રતિમાઈલ"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -147,6 +157,7 @@ gu{
             }\r
         }\r
         coordinate{\r
+            dnam{"મુખ્ય દિશા"}\r
             east{"{0}પૂર્વ"}\r
             north{"{0}ઉત્તર"}\r
             south{"{0}દક્ષિણ"}\r
@@ -193,6 +204,11 @@ gu{
                 one{"{0} મેગાબાઇટ"}\r
                 other{"{0} મેગાબાઇટ"}\r
             }\r
+            petabyte{\r
+                dnam{"પેટાબાઈટ્સ"}\r
+                one{"{0} પેટાબાઈટ"}\r
+                other{"{0} પેટાબાઈટ્સ"}\r
+            }\r
             terabit{\r
                 dnam{"ટેરાબિટ"}\r
                 one{"{0} ટેરાબિટ"}\r
@@ -542,6 +558,11 @@ gu{
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"વાતાવરણ"}\r
+                one{"{0} વાતાવરણ"}\r
+                other{"{0} વાતાવરણ"}\r
+            }\r
             hectopascal{\r
                 dnam{"હેક્ટૉપાસ્કલ"}\r
                 one{"{0} હેક્ટૉપાસ્કલ"}\r
@@ -791,6 +812,13 @@ gu{
         compound{\r
             per{"{0}/{1}"}\r
         }\r
+        concentr{\r
+            percent{\r
+                dnam{"%"}\r
+                one{"{0}%"}\r
+                other{"{0}%"}\r
+            }\r
+        }\r
         consumption{\r
             liter-per-100kilometers{\r
                 dnam{"લિ/100 કિમી"}\r
@@ -799,6 +827,7 @@ gu{
             }\r
         }\r
         coordinate{\r
+            dnam{"દિશા"}\r
             east{"{0}પૂ"}\r
             north{"{0}ઉ"}\r
             south{"{0}દ"}\r
@@ -1049,8 +1078,8 @@ gu{
             }\r
             radian{\r
                 dnam{"સમત્રિજ્યાકોણ"}\r
-                one{"{0} rad"}\r
-                other{"{0} rad"}\r
+                one{"{0} સમત્રિજ્યાકોણ"}\r
+                other{"{0} સમત્રિજ્યાકોણ"}\r
             }\r
             revolution{\r
                 dnam{"ક્રાંતિ"}\r
@@ -1131,8 +1160,18 @@ gu{
             }\r
             part-per-million{\r
                 dnam{"કણ/મિલિયન"}\r
-                one{"{0} ppm"}\r
-                other{"{0} ppm"}\r
+                one{"{0} પીપીએમ"}\r
+                other{"{0} પીપીએમ"}\r
+            }\r
+            percent{\r
+                dnam{"ટકા"}\r
+                one{"{0}%"}\r
+                other{"{0}%"}\r
+            }\r
+            permille{\r
+                dnam{"પ્રતિમાઈલ"}\r
+                one{"{0}‰"}\r
+                other{"{0}‰"}\r
             }\r
         }\r
         consumption{\r
@@ -1158,6 +1197,7 @@ gu{
             }\r
         }\r
         coordinate{\r
+            dnam{"દિશા"}\r
             east{"{0}પૂ"}\r
             north{"{0}ઉ"}\r
             south{"{0}દ"}\r
@@ -1204,6 +1244,11 @@ gu{
                 one{"{0} MB"}\r
                 other{"{0} MB"}\r
             }\r
+            petabyte{\r
+                dnam{"પીબાઈટ"}\r
+                one{"{0} પીબી"}\r
+                other{"{0} પીબી"}\r
+            }\r
             terabit{\r
                 dnam{"Tb"}\r
                 one{"{0} Tb"}\r
@@ -1553,6 +1598,11 @@ gu{
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"atm"}\r
+                one{"{0} atm"}\r
+                other{"{0} atm"}\r
+            }\r
             hectopascal{\r
                 dnam{"hPa"}\r
                 one{"{0} hPa"}\r
index d7a0572a83715284f95c3db536fa1681bb13dfc5..dd7d622d8adb39a333e98819814258e5da35e8ca 100644 (file)
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 ha{\r
-    Version{"2.1.39.11"}\r
+    Version{"2.1.43.2"}\r
 }\r
index 7384ce879e01ec5f38cded36ef637faa7a5f06a0..c34237f7e1568dd01aaf9f8ec52b8baf4591f96a 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 haw{\r
-    Version{"2.1.38.69"}\r
+    Version{"2.1.43.94"}\r
     units{\r
         duration{\r
             day{\r
index 6476a4e1cd9011e546ec8e80ebad071b0b4d3c58..e0869bd0ec028c3e3e8979ca8da4ea2d8edea5e0 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 he{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.94"}\r
     durationUnits{\r
         hm{"h:mm"}\r
         hms{"h:mm:ss"}\r
@@ -163,6 +163,20 @@ he{
                 other{"{0} חלקים למיליון"}\r
                 two{"{0} חלקים למיליון"}\r
             }\r
+            percent{\r
+                dnam{"אחוז"}\r
+                many{"{0} אחוז"}\r
+                one{"{0} אחוז"}\r
+                other{"{0} אחוז"}\r
+                two{"{0} אחוז"}\r
+            }\r
+            permille{\r
+                dnam{"פרומיל"}\r
+                many{"{0} פרומיל"}\r
+                one{"{0} פרומיל"}\r
+                other{"{0} פרומיל"}\r
+                two{"{0} פרומיל"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -195,6 +209,7 @@ he{
             }\r
         }\r
         coordinate{\r
+            dnam{"רוחות השמיים"}\r
             east{"{0} מזרח"}\r
             north{"{0} צפון"}\r
             south{"{0} דרום"}\r
@@ -203,20 +218,20 @@ he{
         digital{\r
             bit{\r
                 dnam{"ביט"}\r
-                many{"{0} סיביות"}\r
+                many{"ביט {0}"}\r
                 one{"ביט {0}"}\r
-                other{"{0} סיביות"}\r
-                two{"{0} סיביות"}\r
+                other{"ביט {0}"}\r
+                two{"ביט {0}"}\r
             }\r
             byte{\r
                 dnam{"בייט"}\r
                 many{"{0} בייט"}\r
-                one{"בית {0}"}\r
+                one{"{0} בייט"}\r
                 other{"{0} בייט"}\r
                 two{"{0} בייט"}\r
             }\r
             gigabit{\r
-                dnam{"×\92×\99×\92×\94ס×\99×\91×\99×\95ת"}\r
+                dnam{"×\92×\99×\92×\94×\91×\99×\98"}\r
                 many{"{0} גיגהביט"}\r
                 one{"{0} גיגהביט"}\r
                 other{"{0} גיגהביט"}\r
@@ -231,10 +246,10 @@ he{
             }\r
             kilobit{\r
                 dnam{"קילוביט"}\r
-                many{"{0} ×§×\99×\9c×\95ס×\99×\91×\99×\95ת"}\r
-                one{"{0} ×§×\99×\9c×\95ס×\99×\91×\99ת"}\r
-                other{"{0} ×§×\99×\9c×\95ס×\99×\91×\99×\95ת"}\r
-                two{"{0} ×§×\99×\9c×\95ס×\99×\91×\99×\95ת"}\r
+                many{"{0} ×§×\99×\9c×\95×\91×\99×\98"}\r
+                one{"{0} ×§×\99×\9c×\95×\91×\99×\98"}\r
+                other{"{0} ×§×\99×\9c×\95×\91×\99×\98"}\r
+                two{"{0} ×§×\99×\9c×\95×\91×\99×\98"}\r
             }\r
             kilobyte{\r
                 dnam{"קילו-בייט"}\r
@@ -244,11 +259,11 @@ he{
                 two{"{0} קילו-בייט"}\r
             }\r
             megabit{\r
-                dnam{"מגהביט"}\r
-                many{"{0} מגה-סיביות"}\r
+                dnam{"מגה-ביט"}\r
+                many{"מגה-ביט {0}"}\r
                 one{"מגה-ביט {0}"}\r
-                other{"{0} מגה-סיביות"}\r
-                two{"{0} מגה-סיביות"}\r
+                other{"מגה-ביט {0}"}\r
+                two{"מגה-ביט {0}"}\r
             }\r
             megabyte{\r
                 dnam{"מגה-בייט"}\r
@@ -257,19 +272,26 @@ he{
                 other{"{0} מגה-בייט"}\r
                 two{"{0} מגה-בייט"}\r
             }\r
+            petabyte{\r
+                dnam{"פטה-בייט"}\r
+                many{"{0} פטה-בייט"}\r
+                one{"{0} פטה-בייט"}\r
+                other{"{0} פטה-בייט"}\r
+                two{"{0} פטה-בייט"}\r
+            }\r
             terabit{\r
                 dnam{"טרה-ביט"}\r
-                many{"{0} טרה-סיביות"}\r
+                many{"טרה-ביט {0}"}\r
                 one{"טרה-ביט {0}"}\r
-                other{"{0} טרה-סיביות"}\r
-                two{"{0} טרה-סיביות"}\r
+                other{"טרה-ביט {0}"}\r
+                two{"טרה-ביט {0}"}\r
             }\r
             terabyte{\r
                 dnam{"טרה-בייט"}\r
-                many{"{0} טרה-בתים"}\r
+                many{"טרה-בייט {0}"}\r
                 one{"טרה-בייט {0}"}\r
-                other{"{0} טרה-בתים"}\r
-                two{"{0} טרה-בתים"}\r
+                other{"טרה-בייט {0}"}\r
+                two{"טרה-בייט {0}"}\r
             }\r
         }\r
         duration{\r
@@ -732,6 +754,13 @@ he{
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"אטמוספרות"}\r
+                many{"{0} אטמוספרה"}\r
+                one{"{0} אטמוספרה"}\r
+                other{"{0} אטמוספרות"}\r
+                two{"{0} אטמוספרה"}\r
+            }\r
             hectopascal{\r
                 dnam{"הקטופסקל"}\r
                 many{"{0} הקטופסקל"}\r
@@ -1082,6 +1111,15 @@ he{
         compound{\r
             per{"{0}/{1}"}\r
         }\r
+        concentr{\r
+            percent{\r
+                dnam{"%"}\r
+                many{"{0}%"}\r
+                one{"{0}%"}\r
+                other{"{0}%"}\r
+                two{"{0}%"}\r
+            }\r
+        }\r
         consumption{\r
             liter-per-100kilometers{\r
                 dnam{"ל׳/100ק״מ"}\r
@@ -1099,6 +1137,7 @@ he{
             }\r
         }\r
         coordinate{\r
+            dnam{"כיוון"}\r
             east{"{0} מז׳"}\r
             north{"{0} צפ׳"}\r
             south{"{0} דר׳"}\r
@@ -1206,11 +1245,11 @@ he{
             }\r
             year{\r
                 dnam{"ש׳"}\r
-                many{"{0} שנים"}\r
-                one{"שנה {0}"}\r
-                other{"{0} שנים"}\r
+                many{"{0} ש"}\r
+                one{"ש {0}"}\r
+                other{"{0} ש"}\r
                 per{"{0}/שנה"}\r
-                two{"{0} שנים"}\r
+                two{"{0} ש"}\r
             }\r
         }\r
         length{\r
@@ -1724,6 +1763,20 @@ he{
                 other{"{0} ppm"}\r
                 two{"{0} ppm"}\r
             }\r
+            percent{\r
+                dnam{"%"}\r
+                many{"{0}%"}\r
+                one{"{0}%"}\r
+                other{"{0}%"}\r
+                two{"{0}%"}\r
+            }\r
+            permille{\r
+                dnam{"‰"}\r
+                many{"{0}‰"}\r
+                one{"{0}‰"}\r
+                other{"{0}‰"}\r
+                two{"{0}‰"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -1756,6 +1809,7 @@ he{
             }\r
         }\r
         coordinate{\r
+            dnam{"כיוון"}\r
             east{"{0} מז׳"}\r
             north{"{0} צפ׳"}\r
             south{"{0} דר׳"}\r
@@ -1764,10 +1818,10 @@ he{
         digital{\r
             bit{\r
                 dnam{"ביט"}\r
-                many{"{0} סיביות"}\r
+                many{"ביט {0}"}\r
                 one{"ביט {0}"}\r
-                other{"{0} סיביות"}\r
-                two{"{0} סיביות"}\r
+                other{"ביט {0}"}\r
+                two{"ביט {0}"}\r
             }\r
             byte{\r
                 dnam{"בייט"}\r
@@ -1818,6 +1872,13 @@ he{
                 other{"{0} MB"}\r
                 two{"{0} MB"}\r
             }\r
+            petabyte{\r
+                dnam{"PB"}\r
+                many{"{0} PB"}\r
+                one{"{0} PB"}\r
+                other{"{0} PB"}\r
+                two{"{0} PB"}\r
+            }\r
             terabit{\r
                 dnam{"Tb"}\r
                 many{"{0} Tb"}\r
@@ -2136,10 +2197,10 @@ he{
             }\r
             picometer{\r
                 dnam{"פ״מ"}\r
-                many{"{0} פיקומטר"}\r
+                many{"פ“מ {0}"}\r
                 one{"פ“מ {0}"}\r
-                other{"{0} פיקומטר"}\r
-                two{"{0} פיקומטר"}\r
+                other{"פ“מ {0}"}\r
+                two{"פ“מ {0}"}\r
             }\r
             point{\r
                 dnam{"נקודות"}\r
@@ -2293,6 +2354,13 @@ he{
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"atm"}\r
+                many{"{0} atm"}\r
+                one{"{0} atm"}\r
+                other{"{0} atm"}\r
+                two{"{0} atm"}\r
+            }\r
             hectopascal{\r
                 dnam{"hPa"}\r
                 many{"{0} hPa"}\r
index f19c8d836887f117c531779f85d0292960341fb5..25ac5a8640be33c99dc9eb9c66d6c7bfc8385cee 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 hi{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.50"}\r
     durationUnits{\r
         hm{"h:mm"}\r
         hms{"h:mm:ss"}\r
@@ -15,7 +15,7 @@ hi{
                 other{"{0} गु–बल"}\r
             }\r
             meter-per-second-squared{\r
-                dnam{"मीटर प्रति सेकंड वर्ग"}\r
+                dnam{"मीटर/से²"}\r
                 one{"{0} मीटर प्रति सेकंड वर्ग"}\r
                 other{"{0} मीटर प्रति सेकंड वर्ग"}\r
             }\r
@@ -123,6 +123,16 @@ hi{
                 one{"{0} ppm"}\r
                 other{"{0} हिस्सा प्रति दस लाख"}\r
             }\r
+            percent{\r
+                dnam{"प्रतिशत"}\r
+                one{"{0} प्रतिशत"}\r
+                other{"{0} प्रतिशत"}\r
+            }\r
+            permille{\r
+                dnam{"प्रति हज़ार"}\r
+                one{"{0} प्रति हज़ार"}\r
+                other{"{0} प्रति हज़ार"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -147,6 +157,7 @@ hi{
             }\r
         }\r
         coordinate{\r
+            dnam{"प्रधान दिशा"}\r
             east{"{0}E"}\r
             north{"{0}N"}\r
             south{"{0}S"}\r
@@ -193,6 +204,11 @@ hi{
                 one{"{0} मेगाबाइट"}\r
                 other{"{0} मेगाबाइट"}\r
             }\r
+            petabyte{\r
+                dnam{"पेटाबाइट"}\r
+                one{"{0} पेटाबाइट"}\r
+                other{"{0} पेटाबाइट"}\r
+            }\r
             terabit{\r
                 dnam{"टेराबिट"}\r
                 one{"{0} टेराबिट"}\r
@@ -537,6 +553,11 @@ hi{
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"वायुमण्डलीय दबाव"}\r
+                one{"{0} वायुमंडलीय दबाव"}\r
+                other{"{0} वायुमंडलीय दबाव"}\r
+            }\r
             hectopascal{\r
                 dnam{"हैक्टोपास्कल"}\r
                 one{"{0} हैक्टोपास्कल"}\r
@@ -786,6 +807,13 @@ hi{
         compound{\r
             per{"{0}/{1}"}\r
         }\r
+        concentr{\r
+            percent{\r
+                dnam{"%"}\r
+                one{"{0}%"}\r
+                other{"{0}%"}\r
+            }\r
+        }\r
         consumption{\r
             liter-per-100kilometers{\r
                 dnam{"ली॰/100 कि॰मी॰"}\r
@@ -794,6 +822,7 @@ hi{
             }\r
         }\r
         coordinate{\r
+            dnam{"दिशा"}\r
             east{"{0}E"}\r
             north{"{0}N"}\r
             south{"{0}S"}\r
@@ -981,8 +1010,8 @@ hi{
         acceleration{\r
             g-force{\r
                 dnam{"गु–बल"}\r
-                one{"{0} गु॰"}\r
-                other{"{0} गु॰"}\r
+                one{"{0} G"}\r
+                other{"{0} G"}\r
             }\r
             meter-per-second-squared{\r
                 dnam{"मीटर/से²"}\r
@@ -1093,6 +1122,16 @@ hi{
                 one{"{0} ppm"}\r
                 other{"{0} ppm"}\r
             }\r
+            percent{\r
+                dnam{"प्रतिशत"}\r
+                one{"{0}%"}\r
+                other{"{0}%"}\r
+            }\r
+            permille{\r
+                dnam{"प्रति हज़ार"}\r
+                one{"{0}‰"}\r
+                other{"{0}‰"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -1117,6 +1156,7 @@ hi{
             }\r
         }\r
         coordinate{\r
+            dnam{"दिशा"}\r
             east{"{0}E"}\r
             north{"{0}N"}\r
             south{"{0}S"}\r
@@ -1163,6 +1203,11 @@ hi{
                 one{"{0} MB"}\r
                 other{"{0} MB"}\r
             }\r
+            petabyte{\r
+                dnam{"पेटाबाइट"}\r
+                one{"{0} PB"}\r
+                other{"{0} PB"}\r
+            }\r
             terabit{\r
                 dnam{"Tb"}\r
                 one{"{0} Tb"}\r
@@ -1453,8 +1498,8 @@ hi{
             }\r
             ounce{\r
                 dnam{"औंस"}\r
-                one{"{0} à¤\94à¤\82॰"}\r
-                other{"{0} à¤\94à¤\82॰"}\r
+                one{"{0} à¤\94à¤\82स"}\r
+                other{"{0} à¤\94à¤\82स"}\r
                 per{"{0}/औंस"}\r
             }\r
             ounce-troy{\r
@@ -1507,6 +1552,11 @@ hi{
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"atm"}\r
+                one{"{0} atm"}\r
+                other{"{0} atm"}\r
+            }\r
             hectopascal{\r
                 dnam{"hPa"}\r
                 one{"{0} hPa"}\r
@@ -1536,8 +1586,8 @@ hi{
         speed{\r
             kilometer-per-hour{\r
                 dnam{"कि॰मी॰/घं॰"}\r
-                one{"{0} कि॰मी॰ प्रति घं॰"}\r
-                other{"{0} कि॰मी॰ प्रति घं॰"}\r
+                one{"{0} कि॰मी॰/घं॰"}\r
+                other{"{0} कि॰मी॰/घं॰"}\r
             }\r
             knot{\r
                 dnam{"नॉट"}\r
@@ -1545,7 +1595,7 @@ hi{
                 other{"{0} नॉट"}\r
             }\r
             meter-per-second{\r
-                dnam{"मà¥\80॰/सà¥\87॰"}\r
+                dnam{"मà¥\80à¤\9fर/सà¥\87॰"}\r
                 one{"{0} मी॰/से॰"}\r
                 other{"{0} मी॰/से॰"}\r
             }\r
@@ -1563,8 +1613,8 @@ hi{
             }\r
             fahrenheit{\r
                 dnam{"डिग्री फ़ेरनहाइट"}\r
-                one{"{0}°फà¥\87रन॰"}\r
-                other{"{0}°फà¥\87रन॰"}\r
+                one{"{0}°फ़à¥\87रन"}\r
+                other{"{0}°फ़à¥\87रन"}\r
             }\r
             generic{\r
                 dnam{"°"}\r
index bebcd5150c69d1ea49a5d50c030fa32bf6ea94ad..68d6b0f44a3265566e88ad06618a43dbc1ea7f4f 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 hr{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.50"}\r
     durationUnits{\r
         hm{"h:mm"}\r
         hms{"h:mm:ss"}\r
@@ -143,6 +143,18 @@ hr{
                 one{"{0} dio na milijun"}\r
                 other{"{0} dijelova na milijun"}\r
             }\r
+            percent{\r
+                dnam{"postotak"}\r
+                few{"{0} posto"}\r
+                one{"{0} posto"}\r
+                other{"{0} posto"}\r
+            }\r
+            permille{\r
+                dnam{"promil"}\r
+                few{"{0} promila"}\r
+                one{"{0} promil"}\r
+                other{"{0} promila"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -171,6 +183,7 @@ hr{
             }\r
         }\r
         coordinate{\r
+            dnam{"kardinalni smjer"}\r
             east{"{0}I"}\r
             north{"{0}S"}\r
             south{"{0}J"}\r
@@ -225,6 +238,12 @@ hr{
                 one{"{0} megabajt"}\r
                 other{"{0} megabajta"}\r
             }\r
+            petabyte{\r
+                dnam{"petabajti"}\r
+                few{"{0} petabajta"}\r
+                one{"{0} petabajt"}\r
+                other{"{0} petabajta"}\r
+            }\r
             terabit{\r
                 dnam{"terabiti"}\r
                 few{"{0} terabita"}\r
@@ -649,6 +668,12 @@ hr{
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"atmosfere"}\r
+                few{"{0} atmosfere"}\r
+                one{"{0} atmosfera"}\r
+                other{"{0} atmosfera"}\r
+            }\r
             hectopascal{\r
                 dnam{"hektopaskali"}\r
                 few{"{0} hektopaskala"}\r
@@ -981,6 +1006,18 @@ hr{
                 one{"{0} kt"}\r
                 other{"{0} kt"}\r
             }\r
+            millimole-per-liter{\r
+                dnam{"mmol/l"}\r
+                few{"{0} mmol/l"}\r
+                one{"{0} mmol/l"}\r
+                other{"{0} mmol/l"}\r
+            }\r
+            percent{\r
+                dnam{"%"}\r
+                few{"{0} %"}\r
+                one{"{0} %"}\r
+                other{"{0} %"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -1001,6 +1038,7 @@ hr{
             }\r
         }\r
         coordinate{\r
+            dnam{"smjer"}\r
             east{"{0}I"}\r
             north{"{0}S"}\r
             south{"{0}J"}\r
@@ -1706,6 +1744,18 @@ hr{
                 one{"{0} ppm"}\r
                 other{"{0} ppm"}\r
             }\r
+            percent{\r
+                dnam{"%"}\r
+                few{"{0} %"}\r
+                one{"{0} %"}\r
+                other{"{0} %"}\r
+            }\r
+            permille{\r
+                dnam{"‰"}\r
+                few{"{0} ‰"}\r
+                one{"{0} ‰"}\r
+                other{"{0} ‰"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -1734,6 +1784,7 @@ hr{
             }\r
         }\r
         coordinate{\r
+            dnam{"smjer"}\r
             east{"{0}I"}\r
             north{"{0}S"}\r
             south{"{0}J"}\r
@@ -1788,6 +1839,12 @@ hr{
                 one{"{0} MB"}\r
                 other{"{0} MB"}\r
             }\r
+            petabyte{\r
+                dnam{"PB"}\r
+                few{"{0} PB"}\r
+                one{"{0} PB"}\r
+                other{"{0} PB"}\r
+            }\r
             terabit{\r
                 dnam{"Tb"}\r
                 few{"{0} Tb"}\r
@@ -2212,6 +2269,12 @@ hr{
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"atm"}\r
+                few{"{0} atm"}\r
+                one{"{0} atm"}\r
+                other{"{0} atm"}\r
+            }\r
             hectopascal{\r
                 dnam{"hPa"}\r
                 few{"{0} hPa"}\r
index c055211f973b0ba1e064ef952add57b5037729b3..a512660d40f88e72d8b38055daef37777a9f9648 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 hsb{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.41.34"}\r
     durationUnits{\r
         hm{"h:mm"}\r
         hms{"h:mm:ss"}\r
index 43f98ab4375022af9761aa65a85d26a0a9a840a2..e76213c15a604df00a8eca176919ac4d15f6d133 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 hu{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.65"}\r
     durationUnits{\r
         hm{"h:mm"}\r
         hms{"h:mm:ss"}\r
@@ -123,6 +123,16 @@ hu{
                 one{"{0} részecske/millió"}\r
                 other{"{0} részecske/millió"}\r
             }\r
+            percent{\r
+                dnam{"százalék"}\r
+                one{"{0} százalék"}\r
+                other{"{0} százalék"}\r
+            }\r
+            permille{\r
+                dnam{"ezrelék"}\r
+                one{"{0} ezrelék"}\r
+                other{"{0} ezrelék"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -147,6 +157,7 @@ hu{
             }\r
         }\r
         coordinate{\r
+            dnam{"kardinális irány"}\r
             east{"{0} K"}\r
             north{"{0} É"}\r
             south{"{0} D"}\r
@@ -193,6 +204,11 @@ hu{
                 one{"{0} megabájt"}\r
                 other{"{0} megabájt"}\r
             }\r
+            petabyte{\r
+                dnam{"petabájt"}\r
+                one{"{0} petabájt"}\r
+                other{"{0} petabájt"}\r
+            }\r
             terabit{\r
                 dnam{"terabit"}\r
                 one{"{0} terabit"}\r
@@ -537,6 +553,11 @@ hu{
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"atmoszféra"}\r
+                one{"{0} atmoszféra"}\r
+                other{"{0} atmoszféra"}\r
+            }\r
             hectopascal{\r
                 dnam{"hektopascal"}\r
                 one{"{0} hektopascal"}\r
@@ -785,6 +806,13 @@ hu{
         compound{\r
             per{"{0}/{1}"}\r
         }\r
+        concentr{\r
+            percent{\r
+                dnam{"%"}\r
+                one{"{0}%"}\r
+                other{"{0}%"}\r
+            }\r
+        }\r
         consumption{\r
             liter-per-100kilometers{\r
                 dnam{"l/100 km"}\r
@@ -793,6 +821,7 @@ hu{
             }\r
         }\r
         coordinate{\r
+            dnam{"irány"}\r
             east{"{0} K"}\r
             north{"{0} É"}\r
             south{"{0} D"}\r
@@ -1157,6 +1186,16 @@ hu{
                 one{"{0} ppm"}\r
                 other{"{0} ppm"}\r
             }\r
+            percent{\r
+                dnam{"százalék"}\r
+                one{"{0}%"}\r
+                other{"{0}%"}\r
+            }\r
+            permille{\r
+                dnam{"ezrelék"}\r
+                one{"{0}‰"}\r
+                other{"{0}‰"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -1181,6 +1220,7 @@ hu{
             }\r
         }\r
         coordinate{\r
+            dnam{"irány"}\r
             east{"{0} K"}\r
             north{"{0} É"}\r
             south{"{0} D"}\r
@@ -1227,6 +1267,11 @@ hu{
                 one{"{0} MB"}\r
                 other{"{0} MB"}\r
             }\r
+            petabyte{\r
+                dnam{"PB"}\r
+                one{"{0} PB"}\r
+                other{"{0} PB"}\r
+            }\r
             terabit{\r
                 dnam{"Tb"}\r
                 one{"{0} Tb"}\r
@@ -1571,6 +1616,11 @@ hu{
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"atm"}\r
+                one{"{0} atm"}\r
+                other{"{0} atm"}\r
+            }\r
             hectopascal{\r
                 dnam{"hPa"}\r
                 one{"{0} hPa"}\r
index 3c95a8b8c16b2a21c13deda86dbae4dcd98c55b3..67796dfaa46c87aa0b68eb259b2a42e511ce30b9 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 hy{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.50"}\r
     durationUnits{\r
         hm{"h:mm"}\r
         hms{"h:mm:ss"}\r
@@ -123,6 +123,16 @@ hy{
                 one{"{0} մասնիկ միլիոնի վրա"}\r
                 other{"{0} մասնիկ միլիոնի վրա"}\r
             }\r
+            percent{\r
+                dnam{"տոկոս"}\r
+                one{"{0} տոկոս"}\r
+                other{"{0} տոկոս"}\r
+            }\r
+            permille{\r
+                dnam{"պրոմիլ"}\r
+                one{"{0} պրոմիլ"}\r
+                other{"{0} պրոմիլ"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -147,6 +157,7 @@ hy{
             }\r
         }\r
         coordinate{\r
+            dnam{"ուղղություն"}\r
             east{"արևելյան երկարության {0}"}\r
             north{"հյուսիսային լայնության {0}"}\r
             south{"հարավային լայնության {0}"}\r
@@ -193,6 +204,11 @@ hy{
                 one{"{0} մեգաբայթ"}\r
                 other{"{0} մեգաբայթ"}\r
             }\r
+            petabyte{\r
+                dnam{"պետաբայթ"}\r
+                one{"{0} պետաբայթ"}\r
+                other{"{0} պետաբայթ"}\r
+            }\r
             terabit{\r
                 dnam{"տերաբիթեր"}\r
                 one{"{0} տերաբիթ"}\r
@@ -537,6 +553,11 @@ hy{
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"մթնոլորտներ"}\r
+                one{"{0} մթնոլորտ"}\r
+                other{"{0} մթնոլորտ"}\r
+            }\r
             hectopascal{\r
                 dnam{"հեկտոպասկալ"}\r
                 one{"{0} հեկտոպասկալ"}\r
@@ -785,6 +806,13 @@ hy{
         compound{\r
             per{"{0}/{1}"}\r
         }\r
+        concentr{\r
+            percent{\r
+                dnam{"%"}\r
+                one{"{0}%"}\r
+                other{"{0}%"}\r
+            }\r
+        }\r
         consumption{\r
             liter-per-100kilometers{\r
                 dnam{"լ/100 կմ"}\r
@@ -793,6 +821,7 @@ hy{
             }\r
         }\r
         coordinate{\r
+            dnam{"ուղղ․"}\r
             east{"{0} ավ․ ե․"}\r
             north{"{0} հս․ լ․"}\r
             south{"{0} հվ․ լ․"}\r
@@ -1092,6 +1121,16 @@ hy{
                 one{"{0} մասնիկ/միլիոն"}\r
                 other{"{0} մասնիկ/միլիոն"}\r
             }\r
+            percent{\r
+                dnam{"տոկոս"}\r
+                one{"{0}%"}\r
+                other{"{0}%"}\r
+            }\r
+            permille{\r
+                dnam{"պրոմիլ"}\r
+                one{"{0}‰"}\r
+                other{"{0}‰"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -1116,6 +1155,7 @@ hy{
             }\r
         }\r
         coordinate{\r
+            dnam{"ուղղություն"}\r
             east{"{0} ավ․ ե․"}\r
             north{"{0} հս․ լ․"}\r
             south{"{0} հվ․ լ․"}\r
@@ -1162,6 +1202,11 @@ hy{
                 one{"{0} ՄԲ"}\r
                 other{"{0} ՄԲ"}\r
             }\r
+            petabyte{\r
+                dnam{"պետաբայթ"}\r
+                one{"{0} ՊԲ"}\r
+                other{"{0} ՊԲ"}\r
+            }\r
             terabit{\r
                 dnam{"Տբիթ"}\r
                 one{"{0} Տբիթ"}\r
@@ -1506,6 +1551,11 @@ hy{
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"մթն"}\r
+                one{"{0} մթն"}\r
+                other{"{0} մթն"}\r
+            }\r
             hectopascal{\r
                 dnam{"հՊա"}\r
                 one{"{0} հՊա"}\r
diff --git a/source/data/unit/ia.txt b/source/data/unit/ia.txt
new file mode 100644 (file)
index 0000000..fe1cd6f
--- /dev/null
@@ -0,0 +1,1053 @@
+// © 2016 and later: Unicode, Inc. and others.\r
+// License & terms of use: http://www.unicode.org/copyright.html#License\r
+ia{\r
+    Version{"2.1.44.15"}\r
+    durationUnits{\r
+        hm{"hh:mm"}\r
+        hms{"hh:mm:ss"}\r
+        ms{"mm:ss"}\r
+    }\r
+    units{\r
+        acceleration{\r
+            g-force{\r
+                dnam{"fortia g"}\r
+            }\r
+            meter-per-second-squared{\r
+                dnam{"metros per secunda quadrate"}\r
+            }\r
+        }\r
+        angle{\r
+            arc-minute{\r
+                dnam{"minutas de arco"}\r
+            }\r
+            arc-second{\r
+                dnam{"secundas de arco"}\r
+            }\r
+            degree{\r
+                dnam{"grados"}\r
+            }\r
+            radian{\r
+                dnam{"radianos"}\r
+            }\r
+            revolution{\r
+                dnam{"revolutiones"}\r
+            }\r
+        }\r
+        area{\r
+            acre{\r
+                dnam{"acres"}\r
+            }\r
+            hectare{\r
+                dnam{"hectares"}\r
+            }\r
+            square-centimeter{\r
+                dnam{"centimetros quadrate"}\r
+                per{"{0} per centimetro quadrate"}\r
+            }\r
+            square-foot{\r
+                dnam{"pedes quadrate"}\r
+            }\r
+            square-inch{\r
+                dnam{"pollices quadrate"}\r
+                per{"{0} per pollice quadrate"}\r
+            }\r
+            square-kilometer{\r
+                dnam{"kilometros quadrate"}\r
+                per{"{0} per kilometro quadrate"}\r
+            }\r
+            square-meter{\r
+                dnam{"metros quadrate"}\r
+                per{"{0} per metro quadrate"}\r
+            }\r
+            square-mile{\r
+                dnam{"millias quadrate"}\r
+                per{"{0} per millia quadrate"}\r
+            }\r
+            square-yard{\r
+                dnam{"yards quadrate"}\r
+            }\r
+        }\r
+        compound{\r
+            per{"{0} per {1}"}\r
+        }\r
+        concentr{\r
+            karat{\r
+                dnam{"carates"}\r
+            }\r
+            milligram-per-deciliter{\r
+                dnam{"milligrammas per decilitro"}\r
+            }\r
+            millimole-per-liter{\r
+                dnam{"millimoles per litro"}\r
+            }\r
+            part-per-million{\r
+                dnam{"partes per million"}\r
+            }\r
+            percent{\r
+                dnam{"per cento"}\r
+            }\r
+            permille{\r
+                dnam{"per mille"}\r
+            }\r
+        }\r
+        consumption{\r
+            liter-per-100kilometers{\r
+                dnam{"litros per 100 kilometros"}\r
+            }\r
+            liter-per-kilometer{\r
+                dnam{"litros per kilometro"}\r
+            }\r
+            mile-per-gallon{\r
+                dnam{"millias per gallon"}\r
+            }\r
+            mile-per-gallon-imperial{\r
+                dnam{"millias per gallon imperial"}\r
+            }\r
+        }\r
+        coordinate{\r
+            dnam{"direction cardinal"}\r
+            east{"{0} est"}\r
+            north{"{0} nord"}\r
+            south{"{0} sud"}\r
+            west{"{0} west"}\r
+        }\r
+        digital{\r
+            bit{\r
+                dnam{"bits"}\r
+            }\r
+            byte{\r
+                dnam{"bytes"}\r
+            }\r
+            gigabit{\r
+                dnam{"gigabits"}\r
+            }\r
+            gigabyte{\r
+                dnam{"gigabytes"}\r
+            }\r
+            kilobit{\r
+                dnam{"kilobits"}\r
+            }\r
+            kilobyte{\r
+                dnam{"kilobytes"}\r
+            }\r
+            megabit{\r
+                dnam{"megabits"}\r
+            }\r
+            megabyte{\r
+                dnam{"megabytes"}\r
+            }\r
+            petabyte{\r
+                dnam{"petabytes"}\r
+            }\r
+            terabit{\r
+                dnam{"terabits"}\r
+            }\r
+            terabyte{\r
+                dnam{"terabytes"}\r
+            }\r
+        }\r
+        duration{\r
+            century{\r
+                dnam{"seculos"}\r
+            }\r
+            day{\r
+                dnam{"dies"}\r
+                per{"{0} per die"}\r
+            }\r
+            hour{\r
+                dnam{"horas"}\r
+                per{"{0} per hora"}\r
+            }\r
+            microsecond{\r
+                dnam{"microsecundas"}\r
+            }\r
+            millisecond{\r
+                dnam{"millisecundas"}\r
+            }\r
+            minute{\r
+                dnam{"minutas"}\r
+                per{"{0} per minuta"}\r
+            }\r
+            month{\r
+                dnam{"menses"}\r
+                per{"{0} per mense"}\r
+            }\r
+            nanosecond{\r
+                dnam{"nanosecundas"}\r
+            }\r
+            second{\r
+                dnam{"secundas"}\r
+                per{"{0} per secunda"}\r
+            }\r
+            week{\r
+                dnam{"septimanas"}\r
+                per{"{0} per septimana"}\r
+            }\r
+            year{\r
+                dnam{"annos"}\r
+                per{"{0} per anno"}\r
+            }\r
+        }\r
+        electric{\r
+            ampere{\r
+                dnam{"amperes"}\r
+            }\r
+            milliampere{\r
+                dnam{"milliamperes"}\r
+            }\r
+            ohm{\r
+                dnam{"ohms"}\r
+            }\r
+            volt{\r
+                dnam{"volts"}\r
+            }\r
+        }\r
+        energy{\r
+            calorie{\r
+                dnam{"calorias"}\r
+            }\r
+            foodcalorie{\r
+                dnam{"kilocalorias"}\r
+            }\r
+            joule{\r
+                dnam{"joules"}\r
+            }\r
+            kilocalorie{\r
+                dnam{"kilocalorias"}\r
+            }\r
+            kilojoule{\r
+                dnam{"kilojoules"}\r
+            }\r
+            kilowatt-hour{\r
+                dnam{"kilowatthoras"}\r
+            }\r
+        }\r
+        frequency{\r
+            gigahertz{\r
+                dnam{"gigahertz"}\r
+            }\r
+            hertz{\r
+                dnam{"hertz"}\r
+            }\r
+            kilohertz{\r
+                dnam{"kilohertz"}\r
+            }\r
+            megahertz{\r
+                dnam{"megahertz"}\r
+            }\r
+        }\r
+        length{\r
+            astronomical-unit{\r
+                dnam{"unitates astronomic"}\r
+            }\r
+            centimeter{\r
+                dnam{"centimetros"}\r
+                per{"{0} per centimetro"}\r
+            }\r
+            decimeter{\r
+                dnam{"decimetros"}\r
+            }\r
+            foot{\r
+                dnam{"pedes"}\r
+                per{"{0} per pede"}\r
+            }\r
+            inch{\r
+                dnam{"pollices"}\r
+                per{"{0} per pollice"}\r
+            }\r
+            kilometer{\r
+                dnam{"kilometros"}\r
+                per{"{0} per kilometro"}\r
+            }\r
+            light-year{\r
+                dnam{"annos lumine"}\r
+            }\r
+            meter{\r
+                dnam{"metros"}\r
+                per{"{0} per metro"}\r
+            }\r
+            micrometer{\r
+                dnam{"micrometros"}\r
+            }\r
+            mile{\r
+                dnam{"millias"}\r
+            }\r
+            mile-scandinavian{\r
+                dnam{"millias scandinave"}\r
+            }\r
+            millimeter{\r
+                dnam{"millimetros"}\r
+            }\r
+            nanometer{\r
+                dnam{"nanometros"}\r
+            }\r
+            nautical-mile{\r
+                dnam{"millias nautic"}\r
+            }\r
+            parsec{\r
+                dnam{"parsecs"}\r
+            }\r
+            picometer{\r
+                dnam{"picometros"}\r
+            }\r
+            point{\r
+                dnam{"punctos"}\r
+            }\r
+            yard{\r
+                dnam{"yards"}\r
+            }\r
+        }\r
+        light{\r
+            lux{\r
+                dnam{"lux"}\r
+            }\r
+        }\r
+        mass{\r
+            carat{\r
+                dnam{"carates"}\r
+            }\r
+            gram{\r
+                dnam{"grammas"}\r
+                per{"{0} per gramma"}\r
+            }\r
+            kilogram{\r
+                dnam{"kilogrammas"}\r
+                per{"{0} per kilogramma"}\r
+            }\r
+            metric-ton{\r
+                dnam{"tonnas"}\r
+            }\r
+            microgram{\r
+                dnam{"microgrammas"}\r
+            }\r
+            milligram{\r
+                dnam{"milligrammas"}\r
+            }\r
+            ounce{\r
+                dnam{"uncias"}\r
+                per{"{0} per uncia"}\r
+            }\r
+            ounce-troy{\r
+                dnam{"uncias troy"}\r
+            }\r
+            pound{\r
+                dnam{"libras"}\r
+                per{"{0} per libra"}\r
+            }\r
+            ton{\r
+                dnam{"tonnas curte"}\r
+            }\r
+        }\r
+        power{\r
+            gigawatt{\r
+                dnam{"gigawatts"}\r
+            }\r
+            horsepower{\r
+                dnam{"cavallos-vapor"}\r
+            }\r
+            kilowatt{\r
+                dnam{"kilowatts"}\r
+            }\r
+            megawatt{\r
+                dnam{"megawatts"}\r
+            }\r
+            milliwatt{\r
+                dnam{"milliwatts"}\r
+            }\r
+            watt{\r
+                dnam{"watts"}\r
+            }\r
+        }\r
+        pressure{\r
+            atmosphere{\r
+                dnam{"atmospheras"}\r
+            }\r
+            hectopascal{\r
+                dnam{"hectopascales"}\r
+            }\r
+            inch-hg{\r
+                dnam{"pollices de mercurio"}\r
+            }\r
+            millibar{\r
+                dnam{"millibares"}\r
+            }\r
+            millimeter-of-mercury{\r
+                dnam{"milimetros de mercurio"}\r
+            }\r
+            pound-per-square-inch{\r
+                dnam{"libras per pollice quadrate"}\r
+            }\r
+        }\r
+        speed{\r
+            kilometer-per-hour{\r
+                dnam{"kilometros per hora"}\r
+            }\r
+            knot{\r
+                dnam{"nodos"}\r
+            }\r
+            meter-per-second{\r
+                dnam{"metros per secunda"}\r
+            }\r
+            mile-per-hour{\r
+                dnam{"millias per hora"}\r
+            }\r
+        }\r
+        temperature{\r
+            celsius{\r
+                dnam{"grados Celcius"}\r
+            }\r
+            fahrenheit{\r
+                dnam{"grados Fahrenheit"}\r
+            }\r
+            generic{\r
+                dnam{"grados"}\r
+            }\r
+            kelvin{\r
+                dnam{"kelvin"}\r
+            }\r
+        }\r
+        volume{\r
+            acre-foot{\r
+                dnam{"acre-pedes"}\r
+            }\r
+            centiliter{\r
+                dnam{"centilitros"}\r
+            }\r
+            cubic-centimeter{\r
+                dnam{"centimetros cubic"}\r
+                per{"{0} per centimetro cubic"}\r
+            }\r
+            cubic-foot{\r
+                dnam{"pedes cubic"}\r
+            }\r
+            cubic-inch{\r
+                dnam{"inches cubic"}\r
+            }\r
+            cubic-kilometer{\r
+                dnam{"kilometros cubic"}\r
+            }\r
+            cubic-meter{\r
+                dnam{"metros cubic"}\r
+                per{"{0} per metro cubic"}\r
+            }\r
+            cubic-mile{\r
+                dnam{"millias cubic"}\r
+            }\r
+            cubic-yard{\r
+                dnam{"yards cubic"}\r
+            }\r
+            cup{\r
+                dnam{"tassas"}\r
+            }\r
+            cup-metric{\r
+                dnam{"tassas metric"}\r
+            }\r
+            deciliter{\r
+                dnam{"decilitros"}\r
+            }\r
+            fluid-ounce{\r
+                dnam{"uncias liquide"}\r
+            }\r
+            gallon{\r
+                dnam{"gallones"}\r
+                per{"{0} per gallon"}\r
+            }\r
+            gallon-imperial{\r
+                dnam{"gallones imp."}\r
+                per{"{0} per gallon imp."}\r
+            }\r
+            hectoliter{\r
+                dnam{"hectolitros"}\r
+            }\r
+            liter{\r
+                dnam{"litros"}\r
+                per{"{0} per litro"}\r
+            }\r
+            megaliter{\r
+                dnam{"megalitros"}\r
+            }\r
+            milliliter{\r
+                dnam{"millilitros"}\r
+            }\r
+            pint{\r
+                dnam{"pintas"}\r
+            }\r
+            pint-metric{\r
+                dnam{"pintas metric"}\r
+            }\r
+            quart{\r
+                dnam{"quartos"}\r
+            }\r
+            tablespoon{\r
+                dnam{"coclearatas a suppa"}\r
+            }\r
+            teaspoon{\r
+                dnam{"coclearatas a the"}\r
+            }\r
+        }\r
+    }\r
+    unitsNarrow{\r
+        compound{\r
+            per{"{0}/{1}"}\r
+        }\r
+        concentr{\r
+            percent{\r
+                dnam{"%"}\r
+            }\r
+        }\r
+        consumption{\r
+            liter-per-100kilometers{\r
+                dnam{"L/100km"}\r
+            }\r
+        }\r
+        coordinate{\r
+            dnam{"dir."}\r
+            east{"{0}E"}\r
+            north{"{0}N"}\r
+            south{"{0}S"}\r
+            west{"{0}W"}\r
+        }\r
+        duration{\r
+            day{\r
+                dnam{"die"}\r
+            }\r
+            hour{\r
+                dnam{"hora"}\r
+            }\r
+            millisecond{\r
+                dnam{"millisec"}\r
+            }\r
+            minute{\r
+                dnam{"min"}\r
+            }\r
+            month{\r
+                dnam{"mense"}\r
+            }\r
+            second{\r
+                dnam{"s"}\r
+            }\r
+            week{\r
+                dnam{"sept."}\r
+            }\r
+            year{\r
+                dnam{"an"}\r
+            }\r
+        }\r
+        length{\r
+            centimeter{\r
+                dnam{"cm"}\r
+            }\r
+            kilometer{\r
+                dnam{"km"}\r
+            }\r
+            meter{\r
+                dnam{"m"}\r
+            }\r
+            millimeter{\r
+                dnam{"mm"}\r
+            }\r
+        }\r
+        mass{\r
+            gram{\r
+                dnam{"g"}\r
+            }\r
+            kilogram{\r
+                dnam{"kg"}\r
+            }\r
+        }\r
+        speed{\r
+            kilometer-per-hour{\r
+                dnam{"km/h"}\r
+            }\r
+        }\r
+        temperature{\r
+            celsius{\r
+                dnam{"°C"}\r
+            }\r
+        }\r
+        volume{\r
+            liter{\r
+                dnam{"L"}\r
+            }\r
+        }\r
+    }\r
+    unitsShort{\r
+        acceleration{\r
+            g-force{\r
+                dnam{"fortia g"}\r
+            }\r
+            meter-per-second-squared{\r
+                dnam{"m/s²"}\r
+            }\r
+        }\r
+        angle{\r
+            arc-minute{\r
+                dnam{"′"}\r
+            }\r
+            arc-second{\r
+                dnam{"″"}\r
+            }\r
+            degree{\r
+                dnam{"°"}\r
+            }\r
+            radian{\r
+                dnam{"rad"}\r
+            }\r
+            revolution{\r
+                dnam{"rev"}\r
+            }\r
+        }\r
+        area{\r
+            acre{\r
+                dnam{"ac"}\r
+            }\r
+            hectare{\r
+                dnam{"ha"}\r
+            }\r
+            square-centimeter{\r
+                dnam{"cm²"}\r
+                per{"{0}/cm²"}\r
+            }\r
+            square-foot{\r
+                dnam{"ft²"}\r
+            }\r
+            square-inch{\r
+                dnam{"in²"}\r
+                per{"{0}/in²"}\r
+            }\r
+            square-kilometer{\r
+                dnam{"km²"}\r
+                per{"{0}/km²"}\r
+            }\r
+            square-meter{\r
+                dnam{"m²"}\r
+                per{"{0}/m²"}\r
+            }\r
+            square-mile{\r
+                dnam{"mi²"}\r
+                per{"{0}/mi²"}\r
+            }\r
+            square-yard{\r
+                dnam{"yd²"}\r
+            }\r
+        }\r
+        compound{\r
+            per{"{0}/{1}"}\r
+        }\r
+        concentr{\r
+            karat{\r
+                dnam{"kt"}\r
+            }\r
+            milligram-per-deciliter{\r
+                dnam{"mg/dL"}\r
+            }\r
+            millimole-per-liter{\r
+                dnam{"mmol/L"}\r
+            }\r
+            part-per-million{\r
+                dnam{"ppm"}\r
+            }\r
+            percent{\r
+                dnam{"%"}\r
+            }\r
+            permille{\r
+                dnam{"‰"}\r
+            }\r
+        }\r
+        consumption{\r
+            liter-per-100kilometers{\r
+                dnam{"L/100km"}\r
+            }\r
+            liter-per-kilometer{\r
+                dnam{"L/km"}\r
+            }\r
+            mile-per-gallon{\r
+                dnam{"mi/gal"}\r
+            }\r
+            mile-per-gallon-imperial{\r
+                dnam{"mi/gal imp."}\r
+            }\r
+        }\r
+        coordinate{\r
+            dnam{"direction"}\r
+            east{"{0} E"}\r
+            north{"{0} N"}\r
+            south{"{0} S"}\r
+            west{"{0} W"}\r
+        }\r
+        digital{\r
+            bit{\r
+                dnam{"b"}\r
+            }\r
+            byte{\r
+                dnam{"B"}\r
+            }\r
+            gigabit{\r
+                dnam{"Gb"}\r
+            }\r
+            gigabyte{\r
+                dnam{"GB"}\r
+            }\r
+            kilobit{\r
+                dnam{"kb"}\r
+            }\r
+            kilobyte{\r
+                dnam{"kB"}\r
+            }\r
+            megabit{\r
+                dnam{"Mb"}\r
+            }\r
+            megabyte{\r
+                dnam{"MB"}\r
+            }\r
+            petabyte{\r
+                dnam{"PB"}\r
+            }\r
+            terabit{\r
+                dnam{"Tb"}\r
+            }\r
+            terabyte{\r
+                dnam{"TB"}\r
+            }\r
+        }\r
+        duration{\r
+            century{\r
+                dnam{"scl"}\r
+            }\r
+            day{\r
+                dnam{"dies"}\r
+                per{"{0}/d"}\r
+            }\r
+            hour{\r
+                dnam{"horas"}\r
+                per{"{0}/h"}\r
+            }\r
+            microsecond{\r
+                dnam{"μs"}\r
+            }\r
+            millisecond{\r
+                dnam{"millisec"}\r
+            }\r
+            minute{\r
+                dnam{"min"}\r
+                per{"{0}/min"}\r
+            }\r
+            month{\r
+                dnam{"menses"}\r
+                per{"{0}/m"}\r
+            }\r
+            nanosecond{\r
+                dnam{"ns"}\r
+            }\r
+            second{\r
+                dnam{"sec"}\r
+                per{"{0}/s"}\r
+            }\r
+            week{\r
+                dnam{"septimanas"}\r
+                per{"{0}/sept"}\r
+            }\r
+            year{\r
+                dnam{"annos"}\r
+                per{"{0}/an"}\r
+            }\r
+        }\r
+        electric{\r
+            ampere{\r
+                dnam{"A"}\r
+            }\r
+            milliampere{\r
+                dnam{"mA"}\r
+            }\r
+            ohm{\r
+                dnam{"Ω"}\r
+            }\r
+            volt{\r
+                dnam{"V"}\r
+            }\r
+        }\r
+        energy{\r
+            calorie{\r
+                dnam{"cal"}\r
+            }\r
+            foodcalorie{\r
+                dnam{"kcal"}\r
+            }\r
+            joule{\r
+                dnam{"J"}\r
+            }\r
+            kilocalorie{\r
+                dnam{"kcal"}\r
+            }\r
+            kilojoule{\r
+                dnam{"kJ"}\r
+            }\r
+            kilowatt-hour{\r
+                dnam{"kWh"}\r
+            }\r
+        }\r
+        frequency{\r
+            gigahertz{\r
+                dnam{"GHz"}\r
+            }\r
+            hertz{\r
+                dnam{"Hz"}\r
+            }\r
+            kilohertz{\r
+                dnam{"kHz"}\r
+            }\r
+            megahertz{\r
+                dnam{"MHz"}\r
+            }\r
+        }\r
+        length{\r
+            astronomical-unit{\r
+                dnam{"ua"}\r
+            }\r
+            centimeter{\r
+                dnam{"cm"}\r
+                per{"{0}/cm"}\r
+            }\r
+            decimeter{\r
+                dnam{"dm"}\r
+            }\r
+            foot{\r
+                dnam{"ft"}\r
+                per{"{0}/ft"}\r
+            }\r
+            inch{\r
+                dnam{"in"}\r
+                per{"{0}/in"}\r
+            }\r
+            kilometer{\r
+                dnam{"km"}\r
+                per{"{0}/km"}\r
+            }\r
+            light-year{\r
+                dnam{"al"}\r
+            }\r
+            meter{\r
+                dnam{"m"}\r
+                per{"{0}/m"}\r
+            }\r
+            micrometer{\r
+                dnam{"µm"}\r
+            }\r
+            mile{\r
+                dnam{"mi"}\r
+            }\r
+            mile-scandinavian{\r
+                dnam{"smi"}\r
+            }\r
+            millimeter{\r
+                dnam{"mm"}\r
+            }\r
+            nanometer{\r
+                dnam{"nm"}\r
+            }\r
+            nautical-mile{\r
+                dnam{"nmi"}\r
+            }\r
+            parsec{\r
+                dnam{"pc"}\r
+            }\r
+            picometer{\r
+                dnam{"pm"}\r
+            }\r
+            point{\r
+                dnam{"pt"}\r
+            }\r
+            yard{\r
+                dnam{"yd"}\r
+            }\r
+        }\r
+        light{\r
+            lux{\r
+                dnam{"lx"}\r
+            }\r
+        }\r
+        mass{\r
+            carat{\r
+                dnam{"ct"}\r
+            }\r
+            gram{\r
+                dnam{"g"}\r
+                per{"{0}/g"}\r
+            }\r
+            kilogram{\r
+                dnam{"kg"}\r
+                per{"{0}/kg"}\r
+            }\r
+            metric-ton{\r
+                dnam{"t"}\r
+            }\r
+            microgram{\r
+                dnam{"µg"}\r
+            }\r
+            milligram{\r
+                dnam{"mg"}\r
+            }\r
+            ounce{\r
+                dnam{"oz"}\r
+                per{"{0}/oz"}\r
+            }\r
+            ounce-troy{\r
+                dnam{"oz t"}\r
+            }\r
+            pound{\r
+                dnam{"lb"}\r
+                per{"{0}/lb"}\r
+            }\r
+            ton{\r
+                dnam{"tn"}\r
+            }\r
+        }\r
+        power{\r
+            gigawatt{\r
+                dnam{"GW"}\r
+            }\r
+            horsepower{\r
+                dnam{"cv"}\r
+            }\r
+            kilowatt{\r
+                dnam{"kW"}\r
+            }\r
+            megawatt{\r
+                dnam{"MW"}\r
+            }\r
+            milliwatt{\r
+                dnam{"mW"}\r
+            }\r
+            watt{\r
+                dnam{"W"}\r
+            }\r
+        }\r
+        pressure{\r
+            atmosphere{\r
+                dnam{"atm"}\r
+            }\r
+            hectopascal{\r
+                dnam{"hPa"}\r
+            }\r
+            inch-hg{\r
+                dnam{"inHg"}\r
+            }\r
+            millibar{\r
+                dnam{"mbar"}\r
+            }\r
+            millimeter-of-mercury{\r
+                dnam{"mm Hg"}\r
+            }\r
+            pound-per-square-inch{\r
+                dnam{"lb/in²"}\r
+            }\r
+        }\r
+        speed{\r
+            kilometer-per-hour{\r
+                dnam{"km/h"}\r
+            }\r
+            knot{\r
+                dnam{"kn"}\r
+            }\r
+            meter-per-second{\r
+                dnam{"m/s"}\r
+            }\r
+            mile-per-hour{\r
+                dnam{"mi/h"}\r
+            }\r
+        }\r
+        temperature{\r
+            celsius{\r
+                dnam{"°C"}\r
+            }\r
+            fahrenheit{\r
+                dnam{"°F"}\r
+            }\r
+            generic{\r
+                dnam{"°"}\r
+            }\r
+            kelvin{\r
+                dnam{"K"}\r
+            }\r
+        }\r
+        volume{\r
+            acre-foot{\r
+                dnam{"ac pd"}\r
+            }\r
+            centiliter{\r
+                dnam{"cL"}\r
+            }\r
+            cubic-centimeter{\r
+                dnam{"cm³"}\r
+                per{"{0}/cm³"}\r
+            }\r
+            cubic-foot{\r
+                dnam{"pd³"}\r
+            }\r
+            cubic-inch{\r
+                dnam{"in³"}\r
+            }\r
+            cubic-kilometer{\r
+                dnam{"km³"}\r
+            }\r
+            cubic-meter{\r
+                dnam{"m³"}\r
+                per{"{0}/m³"}\r
+            }\r
+            cubic-mile{\r
+                dnam{"mi³"}\r
+            }\r
+            cubic-yard{\r
+                dnam{"yd³"}\r
+            }\r
+            cup{\r
+                dnam{"tas"}\r
+            }\r
+            cup-metric{\r
+                dnam{"tasm"}\r
+            }\r
+            deciliter{\r
+                dnam{"dL"}\r
+            }\r
+            fluid-ounce{\r
+                dnam{"oz liq"}\r
+            }\r
+            gallon{\r
+                dnam{"gal"}\r
+                per{"{0}/gal"}\r
+            }\r
+            gallon-imperial{\r
+                dnam{"gal imp"}\r
+                per{"{0}/gal imp"}\r
+            }\r
+            hectoliter{\r
+                dnam{"hL"}\r
+            }\r
+            liter{\r
+                dnam{"L"}\r
+                per{"{0}/L"}\r
+            }\r
+            megaliter{\r
+                dnam{"ML"}\r
+            }\r
+            milliliter{\r
+                dnam{"mL"}\r
+            }\r
+            pint{\r
+                dnam{"pt"}\r
+            }\r
+            pint-metric{\r
+                dnam{"ptm"}\r
+            }\r
+            quart{\r
+                dnam{"qt"}\r
+            }\r
+            tablespoon{\r
+                dnam{"cocl. a suppa"}\r
+            }\r
+            teaspoon{\r
+                dnam{"cocl. a the"}\r
+            }\r
+        }\r
+    }\r
+}\r
index 2bb5e6df4a3ab6982126bf7561e738b3cb509fca..40d3422bcafbc369e47b021974af72598195f19a 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 id{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.20"}\r
     durationUnits{\r
         hm{"h.mm"}\r
         hms{"h.mm.ss"}\r
@@ -103,6 +103,14 @@ id{
                 dnam{"bagian per juta"}\r
                 other{"{0} bagian per juta"}\r
             }\r
+            percent{\r
+                dnam{"persen"}\r
+                other{"{0} persen"}\r
+            }\r
+            permille{\r
+                dnam{"permil"}\r
+                other{"{0} permil"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -123,6 +131,7 @@ id{
             }\r
         }\r
         coordinate{\r
+            dnam{"arah mata angin"}\r
             east{"{0}T"}\r
             north{"{0}U"}\r
             south{"{0}S"}\r
@@ -161,6 +170,10 @@ id{
                 dnam{"megabyte"}\r
                 other{"{0} megabyte"}\r
             }\r
+            petabyte{\r
+                dnam{"petabyte"}\r
+                other{"{0} petabyte"}\r
+            }\r
             terabit{\r
                 dnam{"terabit"}\r
                 other{"{0} terabit"}\r
@@ -455,6 +468,10 @@ id{
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"atmosfer"}\r
+                other{"{0} atmosfer"}\r
+            }\r
             hectopascal{\r
                 dnam{"hektopaskal"}\r
                 other{"{0} hektopaskal"}\r
@@ -661,6 +678,12 @@ id{
         compound{\r
             per{"{0}/{1}"}\r
         }\r
+        concentr{\r
+            percent{\r
+                dnam{"%"}\r
+                other{"{0}%"}\r
+            }\r
+        }\r
         consumption{\r
             liter-per-100kilometers{\r
                 dnam{"L/100km"}\r
@@ -668,6 +691,7 @@ id{
             }\r
         }\r
         coordinate{\r
+            dnam{"arah"}\r
             east{"{0}T"}\r
             north{"{0}U"}\r
             south{"{0}S"}\r
@@ -1041,6 +1065,14 @@ id{
                 dnam{"bagian/juta"}\r
                 other{"{0} ppm"}\r
             }\r
+            percent{\r
+                dnam{"persen"}\r
+                other{"{0}%"}\r
+            }\r
+            permille{\r
+                dnam{"permil"}\r
+                other{"{0}‰"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -1061,6 +1093,7 @@ id{
             }\r
         }\r
         coordinate{\r
+            dnam{"arah"}\r
             east{"{0}T"}\r
             north{"{0}U"}\r
             south{"{0}S"}\r
@@ -1099,6 +1132,10 @@ id{
                 dnam{"MByte"}\r
                 other{"{0} MB"}\r
             }\r
+            petabyte{\r
+                dnam{"PByte"}\r
+                other{"{0} PB"}\r
+            }\r
             terabit{\r
                 dnam{"Tbit"}\r
                 other{"{0} Tb"}\r
@@ -1393,6 +1430,10 @@ id{
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"atm"}\r
+                other{"{0} atm"}\r
+            }\r
             hectopascal{\r
                 dnam{"hPa"}\r
                 other{"{0} hPa"}\r
index 4ac2604833cfa7af2fb3b9d86d71b67e5f0c5a6a..bb5bc666291ae916b1e6ca168e70340a12209d66 100644 (file)
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 ig{\r
-    Version{"2.1.38.69"}\r
+    Version{"2.1.44.88"}\r
 }\r
index 8ae659f89369a0412f2c9c765831cb1db01ee8c9..c4d00d1ae0ef62fa11d879c74faedf1c2851321c 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 is{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.91"}\r
     durationUnits{\r
         hm{"h:mm"}\r
         hms{"h:mm:ss"}\r
@@ -123,6 +123,16 @@ is{
                 one{"{0} milljónarhluti"}\r
                 other{"{0} milljónarhlutar"}\r
             }\r
+            percent{\r
+                dnam{"prósent"}\r
+                one{"{0} prósent"}\r
+                other{"{0} prósent"}\r
+            }\r
+            permille{\r
+                dnam{"prómill"}\r
+                one{"{0} prómill"}\r
+                other{"{0} prómill"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -147,6 +157,7 @@ is{
             }\r
         }\r
         coordinate{\r
+            dnam{"höfuðátt"}\r
             east{"{0} austur"}\r
             north{"{0} norður"}\r
             south{"{0} suður"}\r
@@ -193,6 +204,11 @@ is{
                 one{"{0} megabæti"}\r
                 other{"{0} megabæti"}\r
             }\r
+            petabyte{\r
+                dnam{"petabæt"}\r
+                one{"{0} petabæt"}\r
+                other{"{0} petabæt"}\r
+            }\r
             terabit{\r
                 dnam{"terabitar"}\r
                 one{"{0} terabiti"}\r
@@ -552,6 +568,11 @@ is{
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"loftþyngdir"}\r
+                one{"{0} loftþyngd"}\r
+                other{"{0} loftþyngdir"}\r
+            }\r
             hectopascal{\r
                 dnam{"hektópasköl"}\r
                 one{"{0} hektópaskal"}\r
@@ -798,6 +819,13 @@ is{
         compound{\r
             per{"{0}/{1}"}\r
         }\r
+        concentr{\r
+            percent{\r
+                dnam{"%"}\r
+                one{"{0}%"}\r
+                other{"{0}%"}\r
+            }\r
+        }\r
         consumption{\r
             liter-per-100kilometers{\r
                 dnam{"l/100km"}\r
@@ -806,6 +834,7 @@ is{
             }\r
         }\r
         coordinate{\r
+            dnam{"átt"}\r
             east{"{0}A"}\r
             north{"{0}N"}\r
             south{"{0}S"}\r
@@ -894,8 +923,8 @@ is{
             }\r
             fathom{\r
                 dnam{"faðmur"}\r
-                one{"{0}fm"}\r
-                other{"{0}fm"}\r
+                one{"{0}fth"}\r
+                other{"{0}fth"}\r
             }\r
             foot{\r
                 dnam{"fet"}\r
@@ -1260,6 +1289,16 @@ is{
                 one{"{0} ppm"}\r
                 other{"{0} ppm"}\r
             }\r
+            percent{\r
+                dnam{"prósent"}\r
+                one{"{0}%"}\r
+                other{"{0} %"}\r
+            }\r
+            permille{\r
+                dnam{"prómill"}\r
+                one{"{0}‰"}\r
+                other{"{0}‰"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -1284,6 +1323,7 @@ is{
             }\r
         }\r
         coordinate{\r
+            dnam{"átt"}\r
             east{"{0} A"}\r
             north{"{0} N"}\r
             south{"{0} S"}\r
@@ -1330,6 +1370,11 @@ is{
                 one{"{0} MB"}\r
                 other{"{0} MB"}\r
             }\r
+            petabyte{\r
+                dnam{"Pbæt"}\r
+                one{"{0} PB"}\r
+                other{"{0} PB"}\r
+            }\r
             terabit{\r
                 dnam{"Tb"}\r
                 one{"{0} Tb"}\r
@@ -1500,8 +1545,8 @@ is{
             }\r
             fathom{\r
                 dnam{"faðmar"}\r
-                one{"{0} ftm"}\r
-                other{"{0} ftm"}\r
+                one{"{0} fth"}\r
+                other{"{0} fth"}\r
             }\r
             foot{\r
                 dnam{"fet"}\r
@@ -1689,6 +1734,11 @@ is{
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"atm"}\r
+                one{"{0} atm"}\r
+                other{"{0} atm"}\r
+            }\r
             hectopascal{\r
                 dnam{"hPa"}\r
                 one{"{0} hPa"}\r
index 9abe161b71dc08daafe7b07bedb943b83360687c..94b32dd9e18500361c3acef9c6811c60682ff04e 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 it{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.86"}\r
     durationUnits{\r
         hm{"h:mm"}\r
         hms{"h:mm:ss"}\r
@@ -123,6 +123,16 @@ it{
                 one{"{0} parte per milione"}\r
                 other{"{0} parti per milione"}\r
             }\r
+            percent{\r
+                dnam{"percentuale"}\r
+                one{"{0} percento"}\r
+                other{"{0} percento"}\r
+            }\r
+            permille{\r
+                dnam{"permille"}\r
+                one{"{0}‰"}\r
+                other{"{0}‰"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -147,6 +157,7 @@ it{
             }\r
         }\r
         coordinate{\r
+            dnam{"punti cardinali"}\r
             east{"{0}E"}\r
             north{"{0}N"}\r
             south{"{0}S"}\r
@@ -193,6 +204,11 @@ it{
                 one{"{0} megabyte"}\r
                 other{"{0} megabyte"}\r
             }\r
+            petabyte{\r
+                dnam{"petabyte"}\r
+                one{"{0} petabyte"}\r
+                other{"{0} petabyte"}\r
+            }\r
             terabit{\r
                 dnam{"terabit"}\r
                 one{"{0} terabit"}\r
@@ -537,6 +553,11 @@ it{
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"atmosfere"}\r
+                one{"{0} atmosfera"}\r
+                other{"{0} atmosfere"}\r
+            }\r
             hectopascal{\r
                 dnam{"ettopascal"}\r
                 one{"{0} ettopascal"}\r
@@ -790,6 +811,13 @@ it{
         compound{\r
             per{"{0}/{1}"}\r
         }\r
+        concentr{\r
+            percent{\r
+                dnam{"%"}\r
+                one{"{0}%"}\r
+                other{"{0}%"}\r
+            }\r
+        }\r
         consumption{\r
             liter-per-100kilometers{\r
                 dnam{"L/100km"}\r
@@ -798,6 +826,7 @@ it{
             }\r
         }\r
         coordinate{\r
+            dnam{"punto"}\r
             east{"{0}E"}\r
             north{"{0}N"}\r
             south{"{0}S"}\r
@@ -826,8 +855,8 @@ it{
             }\r
             month{\r
                 dnam{"mese"}\r
-                one{"{0}mese"}\r
-                other{"{0}mesi"}\r
+                one{"{0} mese"}\r
+                other{"{0} mesi"}\r
             }\r
             second{\r
                 dnam{"s"}\r
@@ -1098,6 +1127,16 @@ it{
                 one{"{0} ppm"}\r
                 other{"{0} ppm"}\r
             }\r
+            percent{\r
+                dnam{"percento"}\r
+                one{"{0}%"}\r
+                other{"{0}%"}\r
+            }\r
+            permille{\r
+                dnam{"‰"}\r
+                one{"{0}‰"}\r
+                other{"{0}‰"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -1122,6 +1161,7 @@ it{
             }\r
         }\r
         coordinate{\r
+            dnam{"punto"}\r
             east{"{0}E"}\r
             north{"{0}N"}\r
             south{"{0}S"}\r
@@ -1168,6 +1208,11 @@ it{
                 one{"{0} MB"}\r
                 other{"{0} MB"}\r
             }\r
+            petabyte{\r
+                dnam{"PByte"}\r
+                one{"{0} PB"}\r
+                other{"{0} PB"}\r
+            }\r
             terabit{\r
                 dnam{"Tb"}\r
                 one{"{0} Tb"}\r
@@ -1512,6 +1557,11 @@ it{
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"atm"}\r
+                one{"{0} atm"}\r
+                other{"{0} atm"}\r
+            }\r
             hectopascal{\r
                 dnam{"hPa"}\r
                 one{"{0} hPa"}\r
index cf33a226c3d8d6dce1e5e6e06dd30f9fe76f935f..e0e1efc072c2c11908c4960824ce88f5d0161428 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 ja{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.91"}\r
     durationUnits{\r
         hm{"h:mm"}\r
         hms{"h:mm:ss"}\r
@@ -103,6 +103,14 @@ ja{
                 dnam{"ppm"}\r
                 other{"{0} ppm"}\r
             }\r
+            percent{\r
+                dnam{"パーセント"}\r
+                other{"{0} パーセント"}\r
+            }\r
+            permille{\r
+                dnam{"パーミル"}\r
+                other{"{0} パーミル"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -123,6 +131,7 @@ ja{
             }\r
         }\r
         coordinate{\r
+            dnam{"方位"}\r
             east{"東経{0}"}\r
             north{"北緯{0}"}\r
             south{"南緯{0}"}\r
@@ -161,6 +170,10 @@ ja{
                 dnam{"メガバイト"}\r
                 other{"{0} メガバイト"}\r
             }\r
+            petabyte{\r
+                dnam{"ペタバイト"}\r
+                other{"{0} ペタバイト"}\r
+            }\r
             terabit{\r
                 dnam{"テラビット"}\r
                 other{"{0} テラビット"}\r
@@ -455,6 +468,10 @@ ja{
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"気圧"}\r
+                other{"{0} 気圧"}\r
+            }\r
             hectopascal{\r
                 dnam{"ヘクトパスカル"}\r
                 other{"{0} ヘクトパスカル"}\r
@@ -681,6 +698,10 @@ ja{
             karat{\r
                 other{"{0}K"}\r
             }\r
+            percent{\r
+                dnam{"%"}\r
+                other{"{0}%"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -695,6 +716,7 @@ ja{
             }\r
         }\r
         coordinate{\r
+            dnam{"方位"}\r
             east{"{0}E"}\r
             north{"{0}N"}\r
             south{"{0}S"}\r
@@ -739,12 +761,12 @@ ja{
             }\r
             day{\r
                 dnam{"日"}\r
-                other{"{0}"}\r
+                other{"{0}d"}\r
                 per{"{0}/日"}\r
             }\r
             hour{\r
                 dnam{"時間"}\r
-                other{"{0}時間"}\r
+                other{"{0}h"}\r
                 per{"{0}/時間"}\r
             }\r
             microsecond{\r
@@ -757,7 +779,7 @@ ja{
             }\r
             minute{\r
                 dnam{"分"}\r
-                other{"{0}"}\r
+                other{"{0}m"}\r
                 per{"{0}/分"}\r
             }\r
             month{\r
@@ -771,7 +793,7 @@ ja{
             }\r
             second{\r
                 dnam{"秒"}\r
-                other{"{0}"}\r
+                other{"{0}s"}\r
                 per{"{0}/秒"}\r
             }\r
             week{\r
@@ -849,7 +871,7 @@ ja{
             }\r
             fathom{\r
                 dnam{"fm"}\r
-                other{"{0}fm"}\r
+                other{"{0}fth"}\r
             }\r
             foot{\r
                 dnam{"フィート"}\r
@@ -1214,6 +1236,14 @@ ja{
                 dnam{"ppm"}\r
                 other{"{0} ppm"}\r
             }\r
+            percent{\r
+                dnam{"パーセント"}\r
+                other{"{0}%"}\r
+            }\r
+            permille{\r
+                dnam{"パーミル"}\r
+                other{"{0}‰"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -1234,6 +1264,7 @@ ja{
             }\r
         }\r
         coordinate{\r
+            dnam{"方位"}\r
             east{"東経{0}"}\r
             north{"北緯{0}"}\r
             south{"南緯{0}"}\r
@@ -1272,6 +1303,10 @@ ja{
                 dnam{"MB"}\r
                 other{"{0} MB"}\r
             }\r
+            petabyte{\r
+                dnam{"ペタバイト"}\r
+                other{"{0} PB"}\r
+            }\r
             terabit{\r
                 dnam{"テラビット"}\r
                 other{"{0} Tb"}\r
@@ -1412,7 +1447,7 @@ ja{
             }\r
             fathom{\r
                 dnam{"ファゾム"}\r
-                other{"{0} fm"}\r
+                other{"{0} fth"}\r
             }\r
             foot{\r
                 dnam{"フィート"}\r
@@ -1566,6 +1601,10 @@ ja{
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"気圧"}\r
+                other{"{0} atm"}\r
+            }\r
             hectopascal{\r
                 dnam{"hPa"}\r
                 other{"{0} hPa"}\r
diff --git a/source/data/unit/jv.txt b/source/data/unit/jv.txt
new file mode 100644 (file)
index 0000000..8c929ba
--- /dev/null
@@ -0,0 +1,1342 @@
+// © 2016 and later: Unicode, Inc. and others.\r
+// License & terms of use: http://www.unicode.org/copyright.html#License\r
+jv{\r
+    Version{"2.1.44.15"}\r
+    durationUnits{\r
+        hm{"h:mm"}\r
+        hms{"h:mm:ss"}\r
+        ms{"m:ss"}\r
+    }\r
+    units{\r
+        acceleration{\r
+            g-force{\r
+                dnam{"tenaga-g"}\r
+                other{"{0} tenaga-g"}\r
+            }\r
+            meter-per-second-squared{\r
+                dnam{"meter saben detik kuadrat"}\r
+                other{"{0} meter saben detik kuadrat"}\r
+            }\r
+        }\r
+        angle{\r
+            arc-minute{\r
+                dnam{"menit saka busur"}\r
+                other{"{0} menit saka busur"}\r
+            }\r
+            arc-second{\r
+                dnam{"detik saka busur"}\r
+                other{"{0} detik saka busur"}\r
+            }\r
+            degree{\r
+                dnam{"derajat"}\r
+                other{"{0} derajat"}\r
+            }\r
+            radian{\r
+                dnam{"radian"}\r
+                other{"{0} radian"}\r
+            }\r
+            revolution{\r
+                dnam{"revolusi"}\r
+                other{"{0} revolusi"}\r
+            }\r
+        }\r
+        area{\r
+            acre{\r
+                dnam{"are"}\r
+                other{"{0} are"}\r
+            }\r
+            hectare{\r
+                dnam{"hektar"}\r
+                other{"{0} hektar"}\r
+            }\r
+            square-centimeter{\r
+                dnam{"sentimeter persegi"}\r
+                other{"{0} sentimeter persegi"}\r
+                per{"{0} saben sentimeter persegi"}\r
+            }\r
+            square-foot{\r
+                dnam{"kaki persegi"}\r
+                other{"{0} kaki persegi"}\r
+            }\r
+            square-inch{\r
+                dnam{"inci persegi"}\r
+                other{"{0} inci persegi"}\r
+                per{"{0} saben inci persegi"}\r
+            }\r
+            square-kilometer{\r
+                dnam{"kilometer persegi"}\r
+                other{"{0} kilometer persegi"}\r
+                per{"{0} saben kilometer persegi"}\r
+            }\r
+            square-meter{\r
+                dnam{"meter persegi"}\r
+                other{"{0} meter persegi"}\r
+                per{"{0} saben meter persegi"}\r
+            }\r
+            square-mile{\r
+                dnam{"mil persegi"}\r
+                other{"{0} mil persegi"}\r
+                per{"{0} saben mil persegi"}\r
+            }\r
+            square-yard{\r
+                dnam{"yard persegi"}\r
+                other{"{0} yard persegi"}\r
+            }\r
+        }\r
+        compound{\r
+            per{"{0} saben {1}"}\r
+        }\r
+        concentr{\r
+            karat{\r
+                dnam{"karat"}\r
+                other{"{0} karat"}\r
+            }\r
+            milligram-per-deciliter{\r
+                dnam{"miligram saben desiliter"}\r
+                other{"{0} miligram saben desiliter"}\r
+            }\r
+            millimole-per-liter{\r
+                dnam{"milimol saben liter"}\r
+                other{"{0} milimol saben liter"}\r
+            }\r
+            part-per-million{\r
+                dnam{"bagean saben yuta"}\r
+                other{"{0} bagean saben yuta"}\r
+            }\r
+            percent{\r
+                dnam{"persen"}\r
+                other{"{0} persen"}\r
+            }\r
+            permille{\r
+                dnam{"permil"}\r
+                other{"{0} permil"}\r
+            }\r
+        }\r
+        consumption{\r
+            liter-per-100kilometers{\r
+                dnam{"liter saben 100 kilometer"}\r
+                other{"{0} liter saben 100 kilometer"}\r
+            }\r
+            liter-per-kilometer{\r
+                dnam{"liter saben kilometer"}\r
+                other{"{0} liter saben kilometer"}\r
+            }\r
+            mile-per-gallon{\r
+                dnam{"mil saben galon"}\r
+                other{"{0} mil saben galon"}\r
+            }\r
+            mile-per-gallon-imperial{\r
+                dnam{"mil saben galon inggris"}\r
+                other{"{0} mil saben galon inggris"}\r
+            }\r
+        }\r
+        coordinate{\r
+            dnam{"arah kardinal"}\r
+            east{"{0} wetan"}\r
+            north{"{0} lor"}\r
+            south{"{0} kidul"}\r
+            west{"{0} kulon"}\r
+        }\r
+        digital{\r
+            bit{\r
+                dnam{"bit"}\r
+                other{"{0} bit"}\r
+            }\r
+            byte{\r
+                dnam{"bite"}\r
+                other{"{0} bite"}\r
+            }\r
+            gigabit{\r
+                dnam{"gigabit"}\r
+                other{"{0} gigabit"}\r
+            }\r
+            gigabyte{\r
+                dnam{"gigabite"}\r
+                other{"{0} gigabite"}\r
+            }\r
+            kilobit{\r
+                dnam{"kilobit"}\r
+                other{"{0} kilobit"}\r
+            }\r
+            kilobyte{\r
+                dnam{"kilobite"}\r
+                other{"{0} kilobite"}\r
+            }\r
+            megabit{\r
+                dnam{"megabit"}\r
+                other{"{0} megabit"}\r
+            }\r
+            megabyte{\r
+                dnam{"megabite"}\r
+                other{"{0} megabite"}\r
+            }\r
+            petabyte{\r
+                dnam{"petabite"}\r
+                other{"{0} petabite"}\r
+            }\r
+            terabit{\r
+                dnam{"terabit"}\r
+                other{"{0} terabit"}\r
+            }\r
+            terabyte{\r
+                dnam{"terabite"}\r
+                other{"{0} terabite"}\r
+            }\r
+        }\r
+        duration{\r
+            century{\r
+                dnam{"abad"}\r
+                other{"{0} abad"}\r
+            }\r
+            day{\r
+                dnam{"dino"}\r
+                other{"{0} dino"}\r
+                per{"{0} saben dino"}\r
+            }\r
+            hour{\r
+                dnam{"jam"}\r
+                other{"{0} jam"}\r
+                per{"{0} saben jam"}\r
+            }\r
+            microsecond{\r
+                dnam{"mikrodetik"}\r
+                other{"{0} mikrodetik"}\r
+            }\r
+            millisecond{\r
+                dnam{"milidetik"}\r
+                other{"{0} milidetik"}\r
+            }\r
+            minute{\r
+                dnam{"menit"}\r
+                other{"{0} menit"}\r
+                per{"{0} saben menit"}\r
+            }\r
+            month{\r
+                dnam{"sasi"}\r
+                other{"{0} sasi"}\r
+                per{"{0} saben sasi"}\r
+            }\r
+            nanosecond{\r
+                dnam{"nanodetik"}\r
+                other{"{0} nanodetik"}\r
+            }\r
+            second{\r
+                dnam{"detik"}\r
+                other{"{0} detik"}\r
+                per{"{0} saben detik"}\r
+            }\r
+            week{\r
+                dnam{"pekan"}\r
+                other{"{0} pekan"}\r
+                per{"{0} saben pekan"}\r
+            }\r
+            year{\r
+                dnam{"taun"}\r
+                other{"{0} taun"}\r
+                per{"{0} saben taun"}\r
+            }\r
+        }\r
+        electric{\r
+            ampere{\r
+                dnam{"amper"}\r
+                other{"{0} amper"}\r
+            }\r
+            milliampere{\r
+                dnam{"miliamper"}\r
+                other{"{0} miliamper"}\r
+            }\r
+            ohm{\r
+                dnam{"ohm"}\r
+                other{"{0} ohm"}\r
+            }\r
+            volt{\r
+                dnam{"volt"}\r
+                other{"{0} volt"}\r
+            }\r
+        }\r
+        energy{\r
+            calorie{\r
+                dnam{"kalori"}\r
+                other{"{0} kalori"}\r
+            }\r
+            foodcalorie{\r
+                dnam{"Kalori"}\r
+                other{"{0} Kalori"}\r
+            }\r
+            joule{\r
+                dnam{"jol"}\r
+                other{"{0} jol"}\r
+            }\r
+            kilocalorie{\r
+                dnam{"kilokalori"}\r
+                other{"{0} kilokalori"}\r
+            }\r
+            kilojoule{\r
+                dnam{"kilojol"}\r
+                other{"{0} kilojol"}\r
+            }\r
+            kilowatt-hour{\r
+                dnam{"kilowatt-jam"}\r
+                other{"{0} kilowatt-jam"}\r
+            }\r
+        }\r
+        frequency{\r
+            gigahertz{\r
+                dnam{"gigahet"}\r
+                other{"{0} gigahet"}\r
+            }\r
+            hertz{\r
+                dnam{"het"}\r
+                other{"{0} het"}\r
+            }\r
+            kilohertz{\r
+                dnam{"kilohet"}\r
+                other{"{0} kilohet"}\r
+            }\r
+            megahertz{\r
+                dnam{"megahet"}\r
+                other{"{0} megahet"}\r
+            }\r
+        }\r
+        length{\r
+            astronomical-unit{\r
+                dnam{"unit astronomi"}\r
+                other{"{0} unit astronomi"}\r
+            }\r
+            centimeter{\r
+                dnam{"sentimeter"}\r
+                other{"{0} sentimeter"}\r
+                per{"{0} saben sentimeter"}\r
+            }\r
+            decimeter{\r
+                dnam{"desimeter"}\r
+                other{"{0} desimeter"}\r
+            }\r
+            foot{\r
+                dnam{"kaki"}\r
+                other{"{0} kaki"}\r
+                per{"{0} saben kaki"}\r
+            }\r
+            inch{\r
+                dnam{"inci"}\r
+                other{"{0} inci"}\r
+                per{"{0} saben inci"}\r
+            }\r
+            kilometer{\r
+                dnam{"kilometer"}\r
+                other{"{0} kilometer"}\r
+                per{"{0} saben kilometer"}\r
+            }\r
+            light-year{\r
+                dnam{"taun cahya"}\r
+                other{"{0} taun cahya"}\r
+            }\r
+            meter{\r
+                dnam{"meter"}\r
+                other{"{0} meter"}\r
+                per{"{0} saben meter"}\r
+            }\r
+            micrometer{\r
+                dnam{"mikrometer"}\r
+                other{"{0} mikrometer"}\r
+            }\r
+            mile{\r
+                dnam{"mil"}\r
+                other{"{0} mil"}\r
+            }\r
+            mile-scandinavian{\r
+                dnam{"mil-skandinavia"}\r
+                other{"{0} mil-skandinavia"}\r
+            }\r
+            millimeter{\r
+                dnam{"milimeter"}\r
+                other{"{0} milimeter"}\r
+            }\r
+            nanometer{\r
+                dnam{"nanometer"}\r
+                other{"{0} nanometer"}\r
+            }\r
+            nautical-mile{\r
+                dnam{"mil segoro"}\r
+                other{"{0} mil segoro"}\r
+            }\r
+            parsec{\r
+                dnam{"parsek"}\r
+                other{"{0} parsek"}\r
+            }\r
+            picometer{\r
+                dnam{"pikometer"}\r
+                other{"{0} pikometer"}\r
+            }\r
+            point{\r
+                dnam{"poin"}\r
+                other{"{0} poin"}\r
+            }\r
+            yard{\r
+                dnam{"yard"}\r
+                other{"{0} yard"}\r
+            }\r
+        }\r
+        light{\r
+            lux{\r
+                dnam{"luk"}\r
+                other{"{0} luk"}\r
+            }\r
+        }\r
+        mass{\r
+            carat{\r
+                dnam{"karat"}\r
+                other{"{0} karat"}\r
+            }\r
+            gram{\r
+                dnam{"gram"}\r
+                other{"{0} gram"}\r
+                per{"{0} saben gram"}\r
+            }\r
+            kilogram{\r
+                dnam{"kilogram"}\r
+                other{"{0} kilogram"}\r
+                per{"{0} saben kilogram"}\r
+            }\r
+            metric-ton{\r
+                dnam{"metrik ton"}\r
+                other{"{0} metrik ton"}\r
+            }\r
+            microgram{\r
+                dnam{"mikrogram"}\r
+                other{"{0} mikrogram"}\r
+            }\r
+            milligram{\r
+                dnam{"miligram"}\r
+                other{"{0} miligram"}\r
+            }\r
+            ounce{\r
+                dnam{"ons"}\r
+                other{"{0} ons"}\r
+                per{"{0} saben ons"}\r
+            }\r
+            ounce-troy{\r
+                dnam{"troy ons"}\r
+                other{"{0} troy ons"}\r
+            }\r
+            pound{\r
+                dnam{"pon"}\r
+                other{"{0} pon"}\r
+                per{"{0} saben pon"}\r
+            }\r
+            ton{\r
+                dnam{"ton"}\r
+                other{"{0} ton"}\r
+            }\r
+        }\r
+        power{\r
+            gigawatt{\r
+                dnam{"gigawatt"}\r
+                other{"{0} gigawatt"}\r
+            }\r
+            horsepower{\r
+                dnam{"tenogo jaran"}\r
+                other{"{0} tenogo jaran"}\r
+            }\r
+            kilowatt{\r
+                dnam{"kilowatt"}\r
+                other{"{0} kilowatt"}\r
+            }\r
+            megawatt{\r
+                dnam{"megawatt"}\r
+                other{"{0} megawatt"}\r
+            }\r
+            milliwatt{\r
+                dnam{"miliwatt"}\r
+                other{"{0} miliwatt"}\r
+            }\r
+            watt{\r
+                dnam{"watt"}\r
+                other{"{0} watt"}\r
+            }\r
+        }\r
+        pressure{\r
+            atmosphere{\r
+                dnam{"atmosfer"}\r
+                other{"{0} atmosfer"}\r
+            }\r
+            hectopascal{\r
+                dnam{"hektopaskal"}\r
+                other{"{0} hektopaskal"}\r
+            }\r
+            inch-hg{\r
+                dnam{"inci saka raksa"}\r
+                other{"{0} inci saka raksa"}\r
+            }\r
+            millibar{\r
+                dnam{"milibar"}\r
+                other{"{0} milibar"}\r
+            }\r
+            millimeter-of-mercury{\r
+                dnam{"milimeter saka raksa"}\r
+                other{"{0} milimeter saka raksa"}\r
+            }\r
+            pound-per-square-inch{\r
+                dnam{"pon saben inci kuadrat"}\r
+                other{"{0} pon saben inci kuadrat"}\r
+            }\r
+        }\r
+        speed{\r
+            kilometer-per-hour{\r
+                dnam{"kilometer saben jam"}\r
+                other{"{0} kilometer saben jam"}\r
+            }\r
+            knot{\r
+                dnam{"knot"}\r
+                other{"{0} knot"}\r
+            }\r
+            meter-per-second{\r
+                dnam{"meter saben detik"}\r
+                other{"{0} meter saben detik"}\r
+            }\r
+            mile-per-hour{\r
+                dnam{"mil saben jam"}\r
+                other{"{0} mil saben jam"}\r
+            }\r
+        }\r
+        temperature{\r
+            celsius{\r
+                dnam{"derajat celsius"}\r
+                other{"{0} derajat celsius"}\r
+            }\r
+            fahrenheit{\r
+                dnam{"derajat Fahrenhet"}\r
+                other{"{0} derajat Fahrenhet"}\r
+            }\r
+            generic{\r
+                dnam{"°"}\r
+                other{"{0}°"}\r
+            }\r
+            kelvin{\r
+                dnam{"kelvin"}\r
+                other{"{0} kelvin"}\r
+            }\r
+        }\r
+        volume{\r
+            acre-foot{\r
+                dnam{"are-kaki"}\r
+                other{"{0} are-kaki"}\r
+            }\r
+            centiliter{\r
+                dnam{"sentiliter"}\r
+                other{"{0} sentiliter"}\r
+            }\r
+            cubic-centimeter{\r
+                dnam{"sentimeter kubik"}\r
+                other{"{0} sentimeter kubik"}\r
+                per{"{0} saben sentimeter kubik"}\r
+            }\r
+            cubic-foot{\r
+                dnam{"kaki kubik"}\r
+                other{"{0} kaki kubik"}\r
+            }\r
+            cubic-inch{\r
+                dnam{"inci kubik"}\r
+                other{"{0} inci kubik"}\r
+            }\r
+            cubic-kilometer{\r
+                dnam{"kilometer kubik"}\r
+                other{"{0} kilometer kubik"}\r
+            }\r
+            cubic-meter{\r
+                dnam{"meter kubik"}\r
+                other{"{0} meter kubik"}\r
+                per{"{0} saben meter kubik"}\r
+            }\r
+            cubic-mile{\r
+                dnam{"mil kubik"}\r
+                other{"{0} mil kubik"}\r
+            }\r
+            cubic-yard{\r
+                dnam{"yard kubik"}\r
+                other{"{0} yard kubik"}\r
+            }\r
+            cup{\r
+                dnam{"kup"}\r
+                other{"{0} kup"}\r
+            }\r
+            cup-metric{\r
+                dnam{"metrik kup"}\r
+                other{"{0} metrik kup"}\r
+            }\r
+            deciliter{\r
+                dnam{"desiliter"}\r
+                other{"{0} desiliter"}\r
+            }\r
+            fluid-ounce{\r
+                dnam{"ons banyu"}\r
+                other{"{0} ons banyu"}\r
+            }\r
+            gallon{\r
+                dnam{"galon"}\r
+                other{"{0} galon"}\r
+                per{"{0} saben galon"}\r
+            }\r
+            gallon-imperial{\r
+                dnam{"galon inggris"}\r
+                other{"{0} galon inggris"}\r
+                per{"{0} saben galon inggris"}\r
+            }\r
+            hectoliter{\r
+                dnam{"hektoliter"}\r
+                other{"{0} hektoliter"}\r
+            }\r
+            liter{\r
+                dnam{"liter"}\r
+                other{"{0} liter"}\r
+                per{"{0} saben liter"}\r
+            }\r
+            megaliter{\r
+                dnam{"megaliter"}\r
+                other{"{0} megaliter"}\r
+            }\r
+            milliliter{\r
+                dnam{"mililiter"}\r
+                other{"{0} mililiter"}\r
+            }\r
+            pint{\r
+                dnam{"pin"}\r
+                other{"{0} pin"}\r
+            }\r
+            pint-metric{\r
+                dnam{"metrik pin"}\r
+                other{"{0} metrik pin"}\r
+            }\r
+            quart{\r
+                dnam{"seprapat galon"}\r
+                other{"{0} seprapat galon"}\r
+            }\r
+            tablespoon{\r
+                dnam{"sendok mangan"}\r
+                other{"{0} sendok mangan"}\r
+            }\r
+            teaspoon{\r
+                dnam{"sendok teh"}\r
+                other{"{0} sendok teh"}\r
+            }\r
+        }\r
+    }\r
+    unitsNarrow{\r
+        compound{\r
+            per{"{0}/{1}"}\r
+        }\r
+        concentr{\r
+            percent{\r
+                dnam{"%"}\r
+                other{"{0}%"}\r
+            }\r
+        }\r
+        consumption{\r
+            liter-per-100kilometers{\r
+                dnam{"L/100 km"}\r
+                other{"{0} L/100 km"}\r
+            }\r
+        }\r
+        coordinate{\r
+            dnam{"arah"}\r
+            east{"{0} wetan"}\r
+            north{"{0} lor"}\r
+            south{"{0} kidul"}\r
+            west{"{0} kulon"}\r
+        }\r
+        duration{\r
+            day{\r
+                dnam{"dino"}\r
+                other{"{0} dino"}\r
+            }\r
+            hour{\r
+                dnam{"jam"}\r
+                other{"{0}j"}\r
+            }\r
+            millisecond{\r
+                dnam{"md"}\r
+                other{"{0} md"}\r
+            }\r
+            minute{\r
+                dnam{"mnt"}\r
+                other{"{0} mnt"}\r
+            }\r
+            month{\r
+                dnam{"sasi"}\r
+                other{"{0} sasi"}\r
+            }\r
+            second{\r
+                dnam{"dtk"}\r
+                other{"{0} dtk"}\r
+            }\r
+            week{\r
+                dnam{"pekan"}\r
+                other{"{0} pekan"}\r
+            }\r
+            year{\r
+                dnam{"taun"}\r
+                other{"{0} taun"}\r
+            }\r
+        }\r
+        length{\r
+            centimeter{\r
+                dnam{"cm"}\r
+                other{"{0} cm"}\r
+            }\r
+            kilometer{\r
+                dnam{"km"}\r
+                other{"{0} km"}\r
+            }\r
+            meter{\r
+                dnam{"m"}\r
+                other{"{0} m"}\r
+            }\r
+            millimeter{\r
+                dnam{"mm"}\r
+                other{"{0} mm"}\r
+            }\r
+        }\r
+        mass{\r
+            gram{\r
+                dnam{"gram"}\r
+                other{"{0} g"}\r
+            }\r
+            kilogram{\r
+                dnam{"kg"}\r
+                other{"{0} kg"}\r
+            }\r
+        }\r
+        speed{\r
+            kilometer-per-hour{\r
+                dnam{"km/jam"}\r
+                other{"{0} km/jam"}\r
+            }\r
+        }\r
+        temperature{\r
+            celsius{\r
+                dnam{"°C"}\r
+                other{"{0}°C"}\r
+            }\r
+        }\r
+        volume{\r
+            liter{\r
+                dnam{"liter"}\r
+                other{"{0} L"}\r
+            }\r
+        }\r
+    }\r
+    unitsShort{\r
+        acceleration{\r
+            g-force{\r
+                dnam{"tenaga-g"}\r
+                other{"{0} G"}\r
+            }\r
+            meter-per-second-squared{\r
+                dnam{"meter/detik²"}\r
+                other{"{0} meter/detik²"}\r
+            }\r
+        }\r
+        angle{\r
+            arc-minute{\r
+                dnam{"menit saka busur"}\r
+                other{"{0} menit saka busur"}\r
+            }\r
+            arc-second{\r
+                dnam{"detik saka busur"}\r
+                other{"{0} detik saka busur"}\r
+            }\r
+            degree{\r
+                dnam{"derajat"}\r
+                other{"{0}°"}\r
+            }\r
+            radian{\r
+                dnam{"rad"}\r
+                other{"{0} rad"}\r
+            }\r
+            revolution{\r
+                dnam{"rev"}\r
+                other{"{0} rev"}\r
+            }\r
+        }\r
+        area{\r
+            acre{\r
+                dnam{"are"}\r
+                other{"{0} are"}\r
+            }\r
+            hectare{\r
+                dnam{"hektar"}\r
+                other{"{0} ha"}\r
+            }\r
+            square-centimeter{\r
+                dnam{"cm²"}\r
+                other{"{0} cm²"}\r
+                per{"{0}/cm²"}\r
+            }\r
+            square-foot{\r
+                dnam{"kaki persegi"}\r
+                other{"{0} kaki persegi"}\r
+            }\r
+            square-inch{\r
+                dnam{"inci²"}\r
+                other{"{0} inci²"}\r
+                per{"{0}/inci²"}\r
+            }\r
+            square-kilometer{\r
+                dnam{"km²"}\r
+                other{"{0} km²"}\r
+                per{"{0}/km²"}\r
+            }\r
+            square-meter{\r
+                dnam{"m²"}\r
+                other{"{0} m²"}\r
+                per{"{0}/m²"}\r
+            }\r
+            square-mile{\r
+                dnam{"mil²"}\r
+                other{"{0} mil²"}\r
+                per{"{0}/mil²"}\r
+            }\r
+            square-yard{\r
+                dnam{"yard²"}\r
+                other{"{0} yard²"}\r
+            }\r
+        }\r
+        compound{\r
+            per{"{0}/{1}"}\r
+        }\r
+        concentr{\r
+            karat{\r
+                dnam{"karat"}\r
+                other{"{0} kt"}\r
+            }\r
+            milligram-per-deciliter{\r
+                dnam{"mg/dL"}\r
+                other{"{0} mg/dL"}\r
+            }\r
+            millimole-per-liter{\r
+                dnam{"mmol/L"}\r
+                other{"{0} mmol/L"}\r
+            }\r
+            part-per-million{\r
+                dnam{"bagean/yuta"}\r
+                other{"{0} bagean saben yuta"}\r
+            }\r
+            percent{\r
+                dnam{"persen"}\r
+                other{"{0}%"}\r
+            }\r
+            permille{\r
+                dnam{"permil"}\r
+                other{"{0}‰"}\r
+            }\r
+        }\r
+        consumption{\r
+            liter-per-100kilometers{\r
+                dnam{"L/100 km"}\r
+                other{"{0} L/100 km"}\r
+            }\r
+            liter-per-kilometer{\r
+                dnam{"liter/km"}\r
+                other{"{0} L/km"}\r
+            }\r
+            mile-per-gallon{\r
+                dnam{"mil/galon"}\r
+                other{"{0} mpg"}\r
+            }\r
+            mile-per-gallon-imperial{\r
+                dnam{"mil/galon inggris"}\r
+                other{"{0} mpg inggris"}\r
+            }\r
+        }\r
+        coordinate{\r
+            dnam{"arah"}\r
+            east{"{0} wetan"}\r
+            north{"{0} lor"}\r
+            south{"{0} kidul"}\r
+            west{"{0} kulon"}\r
+        }\r
+        digital{\r
+            bit{\r
+                dnam{"bit"}\r
+                other{"{0} bit"}\r
+            }\r
+            byte{\r
+                dnam{"bite"}\r
+                other{"{0} bite"}\r
+            }\r
+            gigabit{\r
+                dnam{"Gbit"}\r
+                other{"{0} Gb"}\r
+            }\r
+            gigabyte{\r
+                dnam{"GBite"}\r
+                other{"{0} GB"}\r
+            }\r
+            kilobit{\r
+                dnam{"kbit"}\r
+                other{"{0} kb"}\r
+            }\r
+            kilobyte{\r
+                dnam{"kBite"}\r
+                other{"{0} kB"}\r
+            }\r
+            megabit{\r
+                dnam{"Mbit"}\r
+                other{"{0} Mb"}\r
+            }\r
+            megabyte{\r
+                dnam{"MBite"}\r
+                other{"{0} MB"}\r
+            }\r
+            petabyte{\r
+                dnam{"PBite"}\r
+                other{"{0} PB"}\r
+            }\r
+            terabit{\r
+                dnam{"Tbit"}\r
+                other{"{0} Tb"}\r
+            }\r
+            terabyte{\r
+                dnam{"TBite"}\r
+                other{"{0} TB"}\r
+            }\r
+        }\r
+        duration{\r
+            century{\r
+                dnam{"abad"}\r
+                other{"{0} abad"}\r
+            }\r
+            day{\r
+                dnam{"dino"}\r
+                other{"{0} dino"}\r
+                per{"{0}/dino"}\r
+            }\r
+            hour{\r
+                dnam{"jam"}\r
+                other{"{0} jam"}\r
+                per{"{0}/jam"}\r
+            }\r
+            microsecond{\r
+                dnam{"μdtk"}\r
+                other{"{0} μd"}\r
+            }\r
+            millisecond{\r
+                dnam{"milidtk"}\r
+                other{"{0} md"}\r
+            }\r
+            minute{\r
+                dnam{"mnt"}\r
+                other{"{0} mnt"}\r
+                per{"{0}/mnt"}\r
+            }\r
+            month{\r
+                dnam{"sasi"}\r
+                other{"{0} sasi"}\r
+                per{"{0}/sasi"}\r
+            }\r
+            nanosecond{\r
+                dnam{"nanodtk"}\r
+                other{"{0} nd"}\r
+            }\r
+            second{\r
+                dnam{"dtk"}\r
+                other{"{0} dtk"}\r
+                per{"{0}/dtk"}\r
+            }\r
+            week{\r
+                dnam{"pekan"}\r
+                other{"{0} pekan"}\r
+                per{"{0}/pekan"}\r
+            }\r
+            year{\r
+                dnam{"taun"}\r
+                other{"{0} taun"}\r
+                per{"{0}/taun"}\r
+            }\r
+        }\r
+        electric{\r
+            ampere{\r
+                dnam{"amper"}\r
+                other{"{0} A"}\r
+            }\r
+            milliampere{\r
+                dnam{"miliamper"}\r
+                other{"{0} mA"}\r
+            }\r
+            ohm{\r
+                dnam{"ohm"}\r
+                other{"{0} Ω"}\r
+            }\r
+            volt{\r
+                dnam{"volt"}\r
+                other{"{0} V"}\r
+            }\r
+        }\r
+        energy{\r
+            calorie{\r
+                dnam{"kal"}\r
+                other{"{0} kal"}\r
+            }\r
+            foodcalorie{\r
+                dnam{"Kal"}\r
+                other{"{0} Kal"}\r
+            }\r
+            joule{\r
+                dnam{"jol"}\r
+                other{"{0} J"}\r
+            }\r
+            kilocalorie{\r
+                dnam{"kkal"}\r
+                other{"{0} kkal"}\r
+            }\r
+            kilojoule{\r
+                dnam{"kilojol"}\r
+                other{"{0} kJ"}\r
+            }\r
+            kilowatt-hour{\r
+                dnam{"kW-jam"}\r
+                other{"{0} kW-jam"}\r
+            }\r
+        }\r
+        frequency{\r
+            gigahertz{\r
+                dnam{"GHz"}\r
+                other{"{0} GHz"}\r
+            }\r
+            hertz{\r
+                dnam{"Hz"}\r
+                other{"{0} Hz"}\r
+            }\r
+            kilohertz{\r
+                dnam{"kHz"}\r
+                other{"{0} kHz"}\r
+            }\r
+            megahertz{\r
+                dnam{"MHz"}\r
+                other{"{0} MHz"}\r
+            }\r
+        }\r
+        length{\r
+            astronomical-unit{\r
+                dnam{"ua"}\r
+                other{"{0} ua"}\r
+            }\r
+            centimeter{\r
+                dnam{"cm"}\r
+                other{"{0} cm"}\r
+                per{"{0}/cm"}\r
+            }\r
+            decimeter{\r
+                dnam{"dm"}\r
+                other{"{0} dm"}\r
+            }\r
+            foot{\r
+                dnam{"kaki"}\r
+                other{"{0} kaki"}\r
+                per{"{0}/kaki"}\r
+            }\r
+            inch{\r
+                dnam{"inci"}\r
+                other{"{0} in"}\r
+                per{"{0}/in"}\r
+            }\r
+            kilometer{\r
+                dnam{"km"}\r
+                other{"{0} km"}\r
+                per{"{0}/km"}\r
+            }\r
+            light-year{\r
+                dnam{"taun cahya"}\r
+                other{"{0} tc"}\r
+            }\r
+            meter{\r
+                dnam{"m"}\r
+                other{"{0} m"}\r
+                per{"{0}/m"}\r
+            }\r
+            micrometer{\r
+                dnam{"µmeter"}\r
+                other{"{0} µm"}\r
+            }\r
+            mile{\r
+                dnam{"mil"}\r
+                other{"{0} mil"}\r
+            }\r
+            mile-scandinavian{\r
+                dnam{"mil-skandinavia"}\r
+                other{"{0} mil-skandinavia"}\r
+            }\r
+            millimeter{\r
+                dnam{"mm"}\r
+                other{"{0} mm"}\r
+            }\r
+            nanometer{\r
+                dnam{"nm"}\r
+                other{"{0} nm"}\r
+            }\r
+            nautical-mile{\r
+                dnam{"mil segoro"}\r
+                other{"{0} mil segoro"}\r
+            }\r
+            parsec{\r
+                dnam{"parsek"}\r
+                other{"{0} ps"}\r
+            }\r
+            picometer{\r
+                dnam{"pm"}\r
+                other{"{0} pm"}\r
+            }\r
+            point{\r
+                dnam{"poin"}\r
+                other{"{0} p"}\r
+            }\r
+            yard{\r
+                dnam{"yard"}\r
+                other{"{0} yard"}\r
+            }\r
+        }\r
+        light{\r
+            lux{\r
+                dnam{"luk"}\r
+                other{"{0} luk"}\r
+            }\r
+        }\r
+        mass{\r
+            carat{\r
+                dnam{"karat"}\r
+                other{"{0} karat"}\r
+            }\r
+            gram{\r
+                dnam{"gram"}\r
+                other{"{0} g"}\r
+                per{"{0}/g"}\r
+            }\r
+            kilogram{\r
+                dnam{"kg"}\r
+                other{"{0} kg"}\r
+                per{"{0}/kg"}\r
+            }\r
+            metric-ton{\r
+                dnam{"metrik ton"}\r
+                other{"{0} metrik ton"}\r
+            }\r
+            microgram{\r
+                dnam{"mikrogram"}\r
+                other{"{0} mikrogram"}\r
+            }\r
+            milligram{\r
+                dnam{"mg"}\r
+                other{"{0} mg"}\r
+            }\r
+            ounce{\r
+                dnam{"ons"}\r
+                other{"{0} ons"}\r
+                per{"{0}/ons"}\r
+            }\r
+            ounce-troy{\r
+                dnam{"troy ons"}\r
+                other{"{0} troy ons"}\r
+            }\r
+            pound{\r
+                dnam{"pon"}\r
+                other{"{0} pon"}\r
+                per{"{0}/pon"}\r
+            }\r
+            ton{\r
+                dnam{"ton"}\r
+                other{"{0} ton"}\r
+            }\r
+        }\r
+        power{\r
+            gigawatt{\r
+                dnam{"GW"}\r
+                other{"{0} GW"}\r
+            }\r
+            horsepower{\r
+                dnam{"tenogo jaran"}\r
+                other{"{0} tenogo jaran"}\r
+            }\r
+            kilowatt{\r
+                dnam{"kW"}\r
+                other{"{0} kW"}\r
+            }\r
+            megawatt{\r
+                dnam{"MW"}\r
+                other{"{0} MW"}\r
+            }\r
+            milliwatt{\r
+                dnam{"mW"}\r
+                other{"{0} mW"}\r
+            }\r
+            watt{\r
+                dnam{"watt"}\r
+                other{"{0} W"}\r
+            }\r
+        }\r
+        pressure{\r
+            atmosphere{\r
+                dnam{"atm"}\r
+                other{"{0} atm"}\r
+            }\r
+            hectopascal{\r
+                dnam{"hPa"}\r
+                other{"{0} hPa"}\r
+            }\r
+            inch-hg{\r
+                dnam{"inHg"}\r
+                other{"{0} inHg"}\r
+            }\r
+            millibar{\r
+                dnam{"mbar"}\r
+                other{"{0} mbar"}\r
+            }\r
+            millimeter-of-mercury{\r
+                dnam{"mm Hg"}\r
+                other{"{0} mm Hg"}\r
+            }\r
+            pound-per-square-inch{\r
+                dnam{"psi"}\r
+                other{"{0} psi"}\r
+            }\r
+        }\r
+        speed{\r
+            kilometer-per-hour{\r
+                dnam{"km/jam"}\r
+                other{"{0} km/jam"}\r
+            }\r
+            knot{\r
+                dnam{"knot"}\r
+                other{"{0} knot"}\r
+            }\r
+            meter-per-second{\r
+                dnam{"meter/dtk"}\r
+                other{"{0} m/dtk"}\r
+            }\r
+            mile-per-hour{\r
+                dnam{"mil/jam"}\r
+                other{"{0} mil/jam"}\r
+            }\r
+        }\r
+        temperature{\r
+            celsius{\r
+                dnam{"°C"}\r
+                other{"{0}°C"}\r
+            }\r
+            fahrenheit{\r
+                dnam{"°F"}\r
+                other{"{0}°F"}\r
+            }\r
+            generic{\r
+                dnam{"°"}\r
+                other{"{0}°"}\r
+            }\r
+            kelvin{\r
+                dnam{"K"}\r
+                other{"{0} K"}\r
+            }\r
+        }\r
+        volume{\r
+            acre-foot{\r
+                dnam{"are-kaki"}\r
+                other{"{0} are-kaki"}\r
+            }\r
+            centiliter{\r
+                dnam{"sentiliter"}\r
+                other{"{0} sentiliter"}\r
+            }\r
+            cubic-centimeter{\r
+                dnam{"cm³"}\r
+                other{"{0} cm³"}\r
+                per{"{0}/cm³"}\r
+            }\r
+            cubic-foot{\r
+                dnam{"kaki³"}\r
+                other{"{0} kaki³"}\r
+            }\r
+            cubic-inch{\r
+                dnam{"inci³"}\r
+                other{"{0} inci³"}\r
+            }\r
+            cubic-kilometer{\r
+                dnam{"km³"}\r
+                other{"{0} km³"}\r
+            }\r
+            cubic-meter{\r
+                dnam{"m³"}\r
+                other{"{0} m³"}\r
+                per{"{0}/m³"}\r
+            }\r
+            cubic-mile{\r
+                dnam{"mil³"}\r
+                other{"{0} mil³"}\r
+            }\r
+            cubic-yard{\r
+                dnam{"yard³"}\r
+                other{"{0} yard³"}\r
+            }\r
+            cup{\r
+                dnam{"kup"}\r
+                other{"{0} kup"}\r
+            }\r
+            cup-metric{\r
+                dnam{"metrik kup"}\r
+                other{"{0} metrik kup"}\r
+            }\r
+            deciliter{\r
+                dnam{"dL"}\r
+                other{"{0} dL"}\r
+            }\r
+            fluid-ounce{\r
+                dnam{"ons banyu"}\r
+                other{"{0} ons banyu"}\r
+            }\r
+            gallon{\r
+                dnam{"galon"}\r
+                other{"{0} galon"}\r
+                per{"{0}/galon"}\r
+            }\r
+            gallon-imperial{\r
+                dnam{"galon inggris"}\r
+                other{"{0} galon inggris"}\r
+                per{"{0}/galon inggris"}\r
+            }\r
+            hectoliter{\r
+                dnam{"hL"}\r
+                other{"{0} hL"}\r
+            }\r
+            liter{\r
+                dnam{"liter"}\r
+                other{"{0} L"}\r
+                per{"{0}/L"}\r
+            }\r
+            megaliter{\r
+                dnam{"ML"}\r
+                other{"{0} ML"}\r
+            }\r
+            milliliter{\r
+                dnam{"mL"}\r
+                other{"{0} mL"}\r
+            }\r
+            pint{\r
+                dnam{"pin"}\r
+                other{"{0} pin"}\r
+            }\r
+            pint-metric{\r
+                dnam{"metrik pin"}\r
+                other{"{0} metrik pin"}\r
+            }\r
+            quart{\r
+                dnam{"seprapat galon"}\r
+                other{"{0} seprapat galon"}\r
+            }\r
+            tablespoon{\r
+                dnam{"sdk mgn"}\r
+                other{"{0} sdk mgn"}\r
+            }\r
+            teaspoon{\r
+                dnam{"sdk teh"}\r
+                other{"{0} sdk teh"}\r
+            }\r
+        }\r
+    }\r
+}\r
index 1c0382eac2324092e7f05bead2e731883486f600..2aa46498237a26f4d1890bd2580f2ed276e7caaf 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 ka{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.50"}\r
     durationUnits{\r
         hm{"h:mm"}\r
         hms{"h:mm:ss"}\r
@@ -123,6 +123,16 @@ ka{
                 one{"{0} ნაწილი მილიონზე"}\r
                 other{"{0} ნაწილი მილიონზე"}\r
             }\r
+            percent{\r
+                dnam{"პროცენტი"}\r
+                one{"{0} პროცენტი"}\r
+                other{"{0} პროცენტი"}\r
+            }\r
+            permille{\r
+                dnam{"პრომილე"}\r
+                one{"{0} პრომილე"}\r
+                other{"{0} პრომილე"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -147,6 +157,7 @@ ka{
             }\r
         }\r
         coordinate{\r
+            dnam{"კარდინალური მიმართულება"}\r
             east{"{0} აღმოსავლეთით"}\r
             north{"{0} ჩრდილოეთით"}\r
             south{"{0} სამხრეთით"}\r
@@ -193,6 +204,11 @@ ka{
                 one{"{0} მეგაბაიტი"}\r
                 other{"{0} მეგაბაიტი"}\r
             }\r
+            petabyte{\r
+                dnam{"პბაიტი"}\r
+                one{"{0} პბაიტი"}\r
+                other{"{0} პეტაბაიტი"}\r
+            }\r
             terabit{\r
                 dnam{"ტერაბიტი"}\r
                 one{"{0} ტერაბიტი"}\r
@@ -537,6 +553,11 @@ ka{
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"ატმოსფეროები"}\r
+                one{"{0} ატმოსფერო"}\r
+                other{"{0} ატმოსფერო"}\r
+            }\r
             hectopascal{\r
                 dnam{"ჰექტოპასკალი"}\r
                 one{"{0} ჰექტოპასკალი"}\r
@@ -785,6 +806,13 @@ ka{
         compound{\r
             per{"{0}/{1}"}\r
         }\r
+        concentr{\r
+            percent{\r
+                dnam{"%"}\r
+                one{"{0}%"}\r
+                other{"{0}%"}\r
+            }\r
+        }\r
         consumption{\r
             liter-per-100kilometers{\r
                 dnam{"ლ/100კმ"}\r
@@ -793,6 +821,7 @@ ka{
             }\r
         }\r
         coordinate{\r
+            dnam{"მიმართულება"}\r
             east{"{0}აღმ."}\r
             north{"{0}ჩრდ."}\r
             south{"{0} სამხრ."}\r
@@ -1092,6 +1121,16 @@ ka{
                 one{"{0} ppm"}\r
                 other{"{0} ppm"}\r
             }\r
+            percent{\r
+                dnam{"%"}\r
+                one{"{0}%"}\r
+                other{"{0}%"}\r
+            }\r
+            permille{\r
+                dnam{"‰"}\r
+                one{"{0}‰"}\r
+                other{"{0}‰"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -1116,6 +1155,7 @@ ka{
             }\r
         }\r
         coordinate{\r
+            dnam{"მიმართულება"}\r
             east{"{0}აღმ."}\r
             north{"{0}ჩრდ."}\r
             south{"{0} სამხრ."}\r
@@ -1162,6 +1202,11 @@ ka{
                 one{"{0} მბაიტი"}\r
                 other{"{0} მბაიტი"}\r
             }\r
+            petabyte{\r
+                dnam{"პბაიტი"}\r
+                one{"{0} პბაიტი"}\r
+                other{"{0} პბაიტი"}\r
+            }\r
             terabit{\r
                 dnam{"ტბიტი"}\r
                 one{"{0} ტბიტი"}\r
@@ -1506,6 +1551,11 @@ ka{
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"ატმ."}\r
+                one{"{0} ატმ."}\r
+                other{"{0} ატმ."}\r
+            }\r
             hectopascal{\r
                 dnam{"ჰპა"}\r
                 one{"{0} ჰპა"}\r
index a82c3751ece9c1657c12fc6dc12a11a0c5c0348e..6f837e679223e3410276bfd52aa2581b0af0efa5 100644 (file)
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 kab{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.94"}\r
 }\r
index c497974728be967e02abfeee60bda37a7d2047f7..ec1a34d1cf7e1ce334f66bcac08614d8f159a204 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 kea{\r
-    Version{"2.1.39.11"}\r
+    Version{"2.1.43.65"}\r
     durationUnits{\r
         hm{"h:mm"}\r
         hms{"h:mm:ss"}\r
index ec0f59e69a3cb91db254b9c1cb9b9158f2f16fe2..1b7758c1b4d70a0c336cb800f55ead7235c31554 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 kk{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.88"}\r
     durationUnits{\r
         hm{"h:mm"}\r
         hms{"h:mm:ss"}\r
@@ -123,6 +123,16 @@ kk{
                 one{"{0} миллиондық үлес"}\r
                 other{"{0} миллиондық үлес"}\r
             }\r
+            percent{\r
+                dnam{"пайыз"}\r
+                one{"{0} пайыз"}\r
+                other{"{0} пайыз"}\r
+            }\r
+            permille{\r
+                dnam{"промилле"}\r
+                one{"{0} промилле"}\r
+                other{"{0} промилле"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -147,10 +157,11 @@ kk{
             }\r
         }\r
         coordinate{\r
-            east{"{0} Ш"}\r
-            north{"{0} С"}\r
-            south{"{0} О"}\r
-            west{"{0} Б"}\r
+            dnam{"негізгі бағыт"}\r
+            east{"{0} шығыс"}\r
+            north{"{0} солтүстік"}\r
+            south{"{0} оңтүстік"}\r
+            west{"{0} батыс"}\r
         }\r
         digital{\r
             bit{\r
@@ -193,6 +204,11 @@ kk{
                 one{"{0} мегабайт"}\r
                 other{"{0} мегабайт"}\r
             }\r
+            petabyte{\r
+                dnam{"петабайт"}\r
+                one{"{0} петабайт"}\r
+                other{"{0} петабайт"}\r
+            }\r
             terabit{\r
                 dnam{"терабит"}\r
                 one{"{0} терабит"}\r
@@ -537,6 +553,11 @@ kk{
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"атмосфера"}\r
+                one{"{0} атмосфера"}\r
+                other{"{0} атмосфера"}\r
+            }\r
             hectopascal{\r
                 dnam{"гектопаскаль"}\r
                 one{"{0} гектопаскаль"}\r
@@ -785,6 +806,13 @@ kk{
         compound{\r
             per{"{0}/{1}"}\r
         }\r
+        concentr{\r
+            percent{\r
+                dnam{"%"}\r
+                one{"{0}%"}\r
+                other{"{0}%"}\r
+            }\r
+        }\r
         consumption{\r
             liter-per-100kilometers{\r
                 dnam{"л/100 км"}\r
@@ -793,6 +821,7 @@ kk{
             }\r
         }\r
         coordinate{\r
+            dnam{"бағыт"}\r
             east{"{0} Ш"}\r
             north{"{0} С"}\r
             south{"{0} О"}\r
@@ -864,7 +893,7 @@ kk{
                 other{"{0} ly"}\r
             }\r
             meter{\r
-                dnam{"метр"}\r
+                dnam{"м"}\r
                 one{"{0} м"}\r
                 other{"{0} м"}\r
             }\r
@@ -1092,6 +1121,16 @@ kk{
                 one{"{0} ppm"}\r
                 other{"{0} ppm"}\r
             }\r
+            percent{\r
+                dnam{"пайыз"}\r
+                one{"{0}%"}\r
+                other{"{0}%"}\r
+            }\r
+            permille{\r
+                dnam{"промилле"}\r
+                one{"{0}‰"}\r
+                other{"{0}‰"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -1116,6 +1155,7 @@ kk{
             }\r
         }\r
         coordinate{\r
+            dnam{"бағыт"}\r
             east{"{0} Ш"}\r
             north{"{0} С"}\r
             south{"{0} О"}\r
@@ -1162,6 +1202,11 @@ kk{
                 one{"{0} MБ"}\r
                 other{"{0} MБ"}\r
             }\r
+            petabyte{\r
+                dnam{"Пбайт"}\r
+                one{"{0} ПБ"}\r
+                other{"{0} ПБ"}\r
+            }\r
             terabit{\r
                 dnam{"Тбит"}\r
                 one{"{0} Tб"}\r
@@ -1354,7 +1399,7 @@ kk{
                 other{"{0} ж. ж."}\r
             }\r
             meter{\r
-                dnam{"метр"}\r
+                dnam{"м"}\r
                 one{"{0} м"}\r
                 other{"{0} м"}\r
                 per{"{0}/м"}\r
@@ -1506,13 +1551,18 @@ kk{
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"атм"}\r
+                one{"{0} атм"}\r
+                other{"{0} атм"}\r
+            }\r
             hectopascal{\r
                 dnam{"гектопаскаль"}\r
                 one{"{0} гПа"}\r
                 other{"{0} гПа"}\r
             }\r
             inch-hg{\r
-                dnam{"in Hg"}\r
+                dnam{"сынап бағаны дюймі"}\r
                 one{"{0} inHg"}\r
                 other{"{0} inHg"}\r
             }\r
index 42dc8261e6c02f3ea610c7c31bc196de7e9620a7..cb9d29f3807566c55b7f535b1a2beab192ba6494 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 kl{\r
-    Version{"2.1.38.69"}\r
+    Version{"2.1.45.12"}\r
     durationUnits{\r
         hm{"h:mm"}\r
         hms{"h:mm:ss"}\r
@@ -11,8 +11,8 @@ kl{
         length{\r
             fathom{\r
                 dnam{"fm"}\r
-                one{"{0} fm"}\r
-                other{"{0} fm"}\r
+                one{"{0} fth"}\r
+                other{"{0} fth"}\r
             }\r
             furlong{\r
                 dnam{"fur"}\r
@@ -39,8 +39,8 @@ kl{
         length{\r
             fathom{\r
                 dnam{"fm"}\r
-                one{"{0} fm"}\r
-                other{"{0} fm"}\r
+                one{"{0} fth"}\r
+                other{"{0} fth"}\r
             }\r
             furlong{\r
                 dnam{"fur"}\r
@@ -93,8 +93,8 @@ kl{
         length{\r
             fathom{\r
                 dnam{"fm"}\r
-                one{"{0} fm"}\r
-                other{"{0} fm"}\r
+                one{"{0} fth"}\r
+                other{"{0} fth"}\r
             }\r
             furlong{\r
                 dnam{"fur"}\r
index 7c90cc272bfd4f6f1fea6c7c92ce40ac9fc2e0bc..f36a37d3cbbddf805d412290a602a70bef3e1468 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 km{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.88"}\r
     durationUnits{\r
         hm{"h:mm"}\r
         hms{"h:mm:ss"}\r
@@ -103,6 +103,14 @@ km{
                 dnam{"ផ្នែកក្នុងមួយលាន"}\r
                 other{"{0} ផ្នែកក្នុងមួយលាន"}\r
             }\r
+            percent{\r
+                dnam{"ភាគរយ"}\r
+                other{"{0} ភាគរយ"}\r
+            }\r
+            permille{\r
+                dnam{"‰"}\r
+                other{"{0}‰"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -123,6 +131,7 @@ km{
             }\r
         }\r
         coordinate{\r
+            dnam{"ទិសទាំងបួន"}\r
             east{"{0}កើត"}\r
             north{"{0}ជើង"}\r
             south{"{0}ត្បូង"}\r
@@ -161,6 +170,10 @@ km{
                 dnam{"មេហ្គាបៃ"}\r
                 other{"{0} មេហ្គាបៃ"}\r
             }\r
+            petabyte{\r
+                dnam{"PB"}\r
+                other{"{0} PB"}\r
+            }\r
             terabit{\r
                 dnam{"តេរ៉ាប៊ីត"}\r
                 other{"{0} តេរ៉ាប៊ីត"}\r
@@ -443,6 +456,10 @@ km{
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"បរិយាកាស"}\r
+                other{"បរិយាកាស {0}"}\r
+            }\r
             hectopascal{\r
                 dnam{"ហិចតូប៉ាស្កាល់"}\r
                 other{"{0} ហិចតូប៉ាស្កាល់"}\r
@@ -644,6 +661,12 @@ km{
         compound{\r
             per{"{0}/{1}"}\r
         }\r
+        concentr{\r
+            percent{\r
+                dnam{"%"}\r
+                other{"{0}%"}\r
+            }\r
+        }\r
         consumption{\r
             liter-per-100kilometers{\r
                 dnam{"L/100km"}\r
@@ -651,6 +674,7 @@ km{
             }\r
         }\r
         coordinate{\r
+            dnam{"ទិស"}\r
             east{"{0}កើត"}\r
             north{"{0}ជើង"}\r
             south{"{0}ត្បូង"}\r
@@ -894,6 +918,14 @@ km{
                 dnam{"ppm"}\r
                 other{"{0} ppm"}\r
             }\r
+            percent{\r
+                dnam{"ភាគរយ"}\r
+                other{"{0}%"}\r
+            }\r
+            permille{\r
+                dnam{"‰"}\r
+                other{"{0}‰"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -914,6 +946,7 @@ km{
             }\r
         }\r
         coordinate{\r
+            dnam{"ទិស"}\r
             east{"{0}កើត"}\r
             north{"{0}ជើង"}\r
             south{"{0}ត្បូង"}\r
@@ -952,6 +985,10 @@ km{
                 dnam{"MB"}\r
                 other{"{0} MB"}\r
             }\r
+            petabyte{\r
+                dnam{"PB"}\r
+                other{"{0} PB"}\r
+            }\r
             terabit{\r
                 dnam{"Tb"}\r
                 other{"{0} Tb"}\r
@@ -1234,6 +1271,10 @@ km{
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"atm"}\r
+                other{"{0} atm"}\r
+            }\r
             hectopascal{\r
                 dnam{"hPa"}\r
                 other{"{0} hPa"}\r
index e44aed66ab7adb184ceb3a99b5fac93e92830698..ac0eea6938b35f15664fd0fee9e0532e09c18e3b 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 kn{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.88"}\r
     durationUnits{\r
         hm{"h:mm"}\r
         hms{"h:mm:ss"}\r
@@ -123,6 +123,16 @@ kn{
                 one{"{0} ಪ್ರತಿ ಮಿಲಿಯನ್ ಭಾಗ"}\r
                 other{"{0} ಪ್ರತಿ ಮಿಲಿಯನ್ ಭಾಗಗಳು"}\r
             }\r
+            percent{\r
+                dnam{"ಶೇಕಡಾ"}\r
+                one{"{0} ಶೇಕಡಾ"}\r
+                other{"{0} ಶೇಕಡಾ"}\r
+            }\r
+            permille{\r
+                dnam{"ಪ್ರತಿ ಸಾವಿರಕ್ಕೆ"}\r
+                one{"{0} ಪ್ರತಿ ಸಾವಿರಕ್ಕೆ"}\r
+                other{"{0} ಪ್ರತಿ ಸಾವಿರಕ್ಕೆ"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -147,7 +157,8 @@ kn{
             }\r
         }\r
         coordinate{\r
-            east{"{0}ಪೂ"}\r
+            dnam{"ಕಾರ್ಡಿನಲ್ ನಿರ್ದೇಶನ"}\r
+            east{"{0} ಪೂರ್ವ"}\r
             north{"{0}ಉತ್ತರ"}\r
             south{"{0}ದಕ್ಷಿಣ"}\r
             west{"{0}ಪಶ್ಚಿಮ"}\r
@@ -193,6 +204,11 @@ kn{
                 one{"{0} ಮೆಗಾಬೈಟ್‌"}\r
                 other{"{0} ಮೆಗಾಬೈಟ್‌ಗಳು"}\r
             }\r
+            petabyte{\r
+                dnam{"ಪೆಟಾಬೈಟ್‌ಗಳು"}\r
+                one{"{0} ಪೆಟಾಬೈಟ್‌"}\r
+                other{"{0} ಪೆಟಾಬೈಟ್‌ಗಳು"}\r
+            }\r
             terabit{\r
                 dnam{"ಟೆರಾಬಿಟ್‌ಗಳು"}\r
                 one{"{0} ಟೆರಾಬಿಟ್‌"}\r
@@ -257,7 +273,7 @@ kn{
             }\r
             week{\r
                 dnam{"ವಾರಗಳು"}\r
-                one{"{0} ವಾರಗಳು"}\r
+                one{"{0} ವಾರ"}\r
                 other{"{0} ವಾರಗಳು"}\r
                 per{"{0} ಪ್ರತಿ ವಾರಕ್ಕೆ"}\r
             }\r
@@ -542,6 +558,11 @@ kn{
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"ವಾತಾವರಣಗಳು"}\r
+                one{"{0} ವಾತಾವರಣ"}\r
+                other{"{0} ವಾತಾವರಣಗಳು"}\r
+            }\r
             hectopascal{\r
                 dnam{"ಹೆಕ್ಟೋಪ್ಯಾಸ್ಕಲ್‌ಗಳು"}\r
                 one{"{0} ಹೆಕ್ಟೋಪ್ಯಾಸ್ಕಲ್"}\r
@@ -790,6 +811,13 @@ kn{
         compound{\r
             per{"{0}/{1}"}\r
         }\r
+        concentr{\r
+            percent{\r
+                dnam{"%"}\r
+                one{"{0}%"}\r
+                other{"{0}%"}\r
+            }\r
+        }\r
         consumption{\r
             liter-per-100kilometers{\r
                 dnam{"ಲೀ/100ಕಿ.ಮೀ"}\r
@@ -798,6 +826,7 @@ kn{
             }\r
         }\r
         coordinate{\r
+            dnam{"ದಿಕ್ಕು"}\r
             east{"{0}ಪೂ"}\r
             north{"{0}ಉ"}\r
             south{"{0}ದ"}\r
@@ -1158,6 +1187,16 @@ kn{
                 one{"{0} ಭಾಪ್ರಮಿ"}\r
                 other{"{0} ಭಾಪ್ರಮಿ"}\r
             }\r
+            percent{\r
+                dnam{"ಶೇಕಡಾ"}\r
+                one{"{0}%"}\r
+                other{"{0}%"}\r
+            }\r
+            permille{\r
+                dnam{"ಪ್ರತಿ ಸಾವಿರಕ್ಕೆ"}\r
+                one{"{0}‰"}\r
+                other{"{0}‰"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -1182,6 +1221,7 @@ kn{
             }\r
         }\r
         coordinate{\r
+            dnam{"ದಿಕ್ಕು"}\r
             east{"{0}ಪೂ"}\r
             north{"{0}ಉ"}\r
             south{"{0}ದ"}\r
@@ -1228,6 +1268,11 @@ kn{
                 one{"{0} ಮೆ.ಬೈ."}\r
                 other{"{0} ಮೆ.ಬೈ."}\r
             }\r
+            petabyte{\r
+                dnam{"ಪೆಬೈ"}\r
+                one{"{0} ಪೆಬೈ"}\r
+                other{"{0} ಪೆಬೈ"}\r
+            }\r
             terabit{\r
                 dnam{"ಟೆ.ಬಿ."}\r
                 one{"{0} ಟೆ.ಬಿ."}\r
@@ -1577,6 +1622,11 @@ kn{
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"ವಾತಾವರಣಗಳು"}\r
+                one{"{0} ವಾತಾವರಣ"}\r
+                other{"{0} ವಾತಾವರಣ"}\r
+            }\r
             hectopascal{\r
                 dnam{"ಹೆ.ಪ್ಯಾ."}\r
                 one{"{0} ಹೆ.ಪ್ಯಾ"}\r
index 2bcf9ced0e0b99fc9bebb9afb67d6483281b2751..6d3ff7477db679c1c47e09011939aff089879fc9 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 ko{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.91"}\r
     durationUnits{\r
         hm{"h:mm"}\r
         hms{"h:mm:ss"}\r
@@ -103,6 +103,14 @@ ko{
                 dnam{"ppm"}\r
                 other{"{0}ppm"}\r
             }\r
+            percent{\r
+                dnam{"%"}\r
+                other{"{0}%"}\r
+            }\r
+            permille{\r
+                dnam{"‰"}\r
+                other{"{0}‰"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -123,6 +131,7 @@ ko{
             }\r
         }\r
         coordinate{\r
+            dnam{"방향"}\r
             east{"동경 {0}"}\r
             north{"북위 {0}"}\r
             south{"남위 {0}"}\r
@@ -161,6 +170,10 @@ ko{
                 dnam{"메가바이트"}\r
                 other{"{0}메가바이트"}\r
             }\r
+            petabyte{\r
+                dnam{"페타바이트"}\r
+                other{"{0}페타바이트"}\r
+            }\r
             terabit{\r
                 dnam{"테라비트"}\r
                 other{"{0}테라비트"}\r
@@ -455,6 +468,10 @@ ko{
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"atm"}\r
+                other{"{0}atm"}\r
+            }\r
             hectopascal{\r
                 dnam{"헥토파스칼"}\r
                 other{"{0}헥토파스칼"}\r
@@ -661,6 +678,12 @@ ko{
         compound{\r
             per{"{0}/{1}"}\r
         }\r
+        concentr{\r
+            percent{\r
+                dnam{"%"}\r
+                other{"{0}%"}\r
+            }\r
+        }\r
         consumption{\r
             liter-per-100kilometers{\r
                 dnam{"L/100km"}\r
@@ -668,6 +691,7 @@ ko{
             }\r
         }\r
         coordinate{\r
+            dnam{"쪽"}\r
             east{"{0}E"}\r
             north{"{0}N"}\r
             south{"{0}S"}\r
@@ -742,7 +766,7 @@ ko{
             }\r
             fathom{\r
                 dnam{"fm"}\r
-                other{"{0}fm"}\r
+                other{"{0}fth"}\r
             }\r
             foot{\r
                 dnam{"ft"}\r
@@ -1041,6 +1065,14 @@ ko{
                 dnam{"ppm"}\r
                 other{"{0}ppm"}\r
             }\r
+            percent{\r
+                dnam{"%"}\r
+                other{"{0}%"}\r
+            }\r
+            permille{\r
+                dnam{"‰"}\r
+                other{"{0}‰"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -1061,6 +1093,7 @@ ko{
             }\r
         }\r
         coordinate{\r
+            dnam{"쪽"}\r
             east{"{0}E"}\r
             north{"{0}N"}\r
             south{"{0}S"}\r
@@ -1099,6 +1132,10 @@ ko{
                 dnam{"MB"}\r
                 other{"{0}MB"}\r
             }\r
+            petabyte{\r
+                dnam{"PB"}\r
+                other{"{0}PB"}\r
+            }\r
             terabit{\r
                 dnam{"Tb"}\r
                 other{"{0}Tb"}\r
@@ -1239,7 +1276,7 @@ ko{
             }\r
             fathom{\r
                 dnam{"fm"}\r
-                other{"{0}fm"}\r
+                other{"{0}fth"}\r
             }\r
             foot{\r
                 dnam{"ft"}\r
@@ -1393,6 +1430,10 @@ ko{
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"atm"}\r
+                other{"{0}atm"}\r
+            }\r
             hectopascal{\r
                 dnam{"hPa"}\r
                 other{"{0}hPa"}\r
index 79c306fcfd31ce3c5297b76b9b171e2d4fd12689..15856f96c8bbc72e79ff6ecc78307f78c1cd50e1 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 kok{\r
-    Version{"2.1.38.69"}\r
+    Version{"2.1.44.88"}\r
     durationUnits{\r
         hm{"h:mm"}\r
         hms{"h:mm:ss"}\r
index a71071b6ebe3ca76ef8d890685d5d6020a794aa1..056fe2ebd67ea8f9f9e1c7c58a4cf866d42f4a78 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 ks{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.41.34"}\r
     units{\r
         duration{\r
             day{\r
index 19828813c0ac36d4cc50a1aa89498f11e75d8fde..58a980788fd0084ee6a9eb321818859f62a535cb 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 ksh{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.41.34"}\r
     durationUnits{\r
         hm{"h:mm"}\r
         hms{"h:mm:ss"}\r
diff --git a/source/data/unit/ku.txt b/source/data/unit/ku.txt
new file mode 100644 (file)
index 0000000..83492b8
--- /dev/null
@@ -0,0 +1,152 @@
+// © 2016 and later: Unicode, Inc. and others.\r
+// License & terms of use: http://www.unicode.org/copyright.html#License\r
+ku{\r
+    Version{"2.1.44.82"}\r
+    units{\r
+        coordinate{\r
+            east{"{0} rojhilat"}\r
+            north{"{0} bakur"}\r
+            south{"{0} başûr"}\r
+            west{"{0} rojava"}\r
+        }\r
+        duration{\r
+            day{\r
+                dnam{"roj"}\r
+                one{"{0} roj"}\r
+                other{"{0} roj"}\r
+                per{"{0}/roj"}\r
+            }\r
+            hour{\r
+                dnam{"saet"}\r
+                one{"{0} saet"}\r
+                other{"{0} saet"}\r
+                per{"{0}/st"}\r
+            }\r
+            minute{\r
+                dnam{"deqîqe"}\r
+                one{"{0} deqîqe"}\r
+                other{"{0} deqîqe"}\r
+                per{"{0}/d"}\r
+            }\r
+            month{\r
+                dnam{"meh"}\r
+                one{"{0} meh"}\r
+                other{"{0} meh"}\r
+                per{"{0}/meh"}\r
+            }\r
+            second{\r
+                dnam{"sanî"}\r
+                one{"{0} saniye"}\r
+                other{"{0} saniye"}\r
+                per{"{0}/s"}\r
+            }\r
+            week{\r
+                dnam{"hefte"}\r
+                one{"{0} hefte"}\r
+                other{"{0} hefte"}\r
+                per{"{0}/hefte"}\r
+            }\r
+            year{\r
+                dnam{"sal"}\r
+                one{"{0} sal"}\r
+                other{"{0} sal"}\r
+            }\r
+        }\r
+    }\r
+    unitsNarrow{\r
+        coordinate{\r
+            east{"{0}Rh"}\r
+            north{"{0}Bk"}\r
+            south{"{0}Bş"}\r
+            west{"{0}Ra"}\r
+        }\r
+        duration{\r
+            day{\r
+                dnam{"roj"}\r
+                one{"{0}r"}\r
+                other{"{0}r"}\r
+            }\r
+            hour{\r
+                dnam{"saet"}\r
+                one{"{0}st"}\r
+                other{"{0}st"}\r
+            }\r
+            minute{\r
+                dnam{"d"}\r
+                one{"{0}d"}\r
+                other{"{0}d"}\r
+            }\r
+            month{\r
+                dnam{"meh"}\r
+                one{"{0}m"}\r
+                other{"{0}m"}\r
+            }\r
+            second{\r
+                dnam{"s"}\r
+                one{"{0}s"}\r
+                other{"{0}s"}\r
+            }\r
+            week{\r
+                one{"{0}hf"}\r
+                other{"{0}hf"}\r
+            }\r
+            year{\r
+                dnam{"sl"}\r
+                one{"{0}sl"}\r
+                other{"{0}sl"}\r
+            }\r
+        }\r
+    }\r
+    unitsShort{\r
+        coordinate{\r
+            east{"{0} Rh"}\r
+            north{"{0} Bk"}\r
+            south{"{0} Bş"}\r
+            west{"{0} Ra"}\r
+        }\r
+        duration{\r
+            day{\r
+                dnam{"roj"}\r
+                one{"{0} roj"}\r
+                other{"{0} roj"}\r
+                per{"{0}/r"}\r
+            }\r
+            hour{\r
+                dnam{"saet"}\r
+                one{"{0} st"}\r
+                other{"{0} st"}\r
+                per{"{0}/st"}\r
+            }\r
+            minute{\r
+                dnam{"d"}\r
+                one{"{0} d"}\r
+                other{"{0} d"}\r
+                per{"{0}/d"}\r
+            }\r
+            month{\r
+                dnam{"meh"}\r
+                one{"{0} m"}\r
+                other{"{0} m"}\r
+                per{"{0}/m"}\r
+            }\r
+            second{\r
+                dnam{"s"}\r
+                one{"{0} s"}\r
+                other{"{0} s"}\r
+                per{"{0}/s"}\r
+            }\r
+            week{\r
+                dnam{"hf"}\r
+                one{"{0} hf"}\r
+                other{"{0} hf"}\r
+                per{"{0}/hf"}\r
+            }\r
+            year{\r
+                dnam{"sal"}\r
+                one{"{0} sal"}\r
+                other{"{0} sal"}\r
+                per{"{0}/sal"}\r
+            }\r
+        }\r
+    }\r
+}\r
index dd763abe88eabb38ba01ad51fdad640ec8baef1c..9fa7cddb58169e05580f69952f1b1e64d960e52f 100644 (file)
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 kw{\r
-    Version{"2.1.38.69"}\r
+    Version{"2.1.43.65"}\r
 }\r
index 462f7d88cab0332b0b748c9b46311e296285a5e4..dd9aa408f11215e6aeb9757e5ea84d6712165484 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 ky{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.65"}\r
     durationUnits{\r
         hm{"h:mm"}\r
         hms{"h:mm:ss"}\r
@@ -123,6 +123,16 @@ ky{
                 one{"миллионго {0} бөлүк"}\r
                 other{"миллионго {0} бөлүк"}\r
             }\r
+            percent{\r
+                dnam{"пайыз"}\r
+                one{"{0} пайыз"}\r
+                other{"{0} пайыз"}\r
+            }\r
+            permille{\r
+                dnam{"промилле"}\r
+                one{"{0} промилле"}\r
+                other{"{0} промилле"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -147,6 +157,7 @@ ky{
             }\r
         }\r
         coordinate{\r
+            dnam{"негизги багыт"}\r
             east{"{0}Ч"}\r
             north{"{0}Тн"}\r
             south{"{0}Тш"}\r
@@ -193,6 +204,11 @@ ky{
                 one{"{0} мегабайт"}\r
                 other{"{0} мегабайт"}\r
             }\r
+            petabyte{\r
+                dnam{"петабайт"}\r
+                one{"{0} петабайт"}\r
+                other{"{0} ПТБ"}\r
+            }\r
             terabit{\r
                 dnam{"терабит"}\r
                 one{"{0} терабит"}\r
@@ -537,6 +553,11 @@ ky{
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"атмосфера"}\r
+                one{"{0} атмосфера"}\r
+                other{"{0} атм"}\r
+            }\r
             hectopascal{\r
                 dnam{"гектопаскаль"}\r
                 one{"{0} гектопаскаль"}\r
@@ -785,6 +806,13 @@ ky{
         compound{\r
             per{"{1}/{0}"}\r
         }\r
+        concentr{\r
+            percent{\r
+                dnam{"%"}\r
+                one{"{0}%"}\r
+                other{"{0}%"}\r
+            }\r
+        }\r
         consumption{\r
             liter-per-100kilometers{\r
                 dnam{"100 км/л"}\r
@@ -793,6 +821,7 @@ ky{
             }\r
         }\r
         coordinate{\r
+            dnam{"багыт"}\r
             east{"{0}Ч"}\r
             north{"{0}Тн"}\r
             south{"{0}Тш"}\r
@@ -1092,6 +1121,16 @@ ky{
                 one{"{0} ppm"}\r
                 other{"{0} ppm"}\r
             }\r
+            percent{\r
+                dnam{"пайыз"}\r
+                one{"{0}%"}\r
+                other{"{0}%"}\r
+            }\r
+            permille{\r
+                dnam{"промилле"}\r
+                one{"{0}‰"}\r
+                other{"{0}‰"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -1116,6 +1155,7 @@ ky{
             }\r
         }\r
         coordinate{\r
+            dnam{"багыт"}\r
             east{"{0}Ч"}\r
             north{"{0}Тн"}\r
             south{"{0}Тш"}\r
@@ -1162,6 +1202,11 @@ ky{
                 one{"{0} МБ"}\r
                 other{"{0} МБ"}\r
             }\r
+            petabyte{\r
+                dnam{"ПТб"}\r
+                one{"{0} Птб"}\r
+                other{"{0} Птб"}\r
+            }\r
             terabit{\r
                 dnam{"Тбит"}\r
                 one{"{0} Тб"}\r
@@ -1506,6 +1551,11 @@ ky{
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"атм"}\r
+                one{"{0} атм"}\r
+                other{"{0} атмс"}\r
+            }\r
             hectopascal{\r
                 dnam{"гПа"}\r
                 one{"{0} гПа"}\r
index 3f39fd442cb9ac8347adb091e4109772f12228b9..34fc4d56bea80d0f3bbe5127157eec7c6992e132 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 lb{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.91"}\r
     durationUnits{\r
         hm{"h:mm"}\r
         hms{"h:mm:ss"}\r
@@ -764,8 +764,8 @@ lb{
             }\r
             fathom{\r
                 dnam{"fm"}\r
-                one{"{0} fm"}\r
-                other{"{0} fm"}\r
+                one{"{0} fth"}\r
+                other{"{0} fth"}\r
             }\r
             foot{\r
                 one{"{0} ft"}\r
@@ -1337,8 +1337,8 @@ lb{
             }\r
             fathom{\r
                 dnam{"fm"}\r
-                one{"{0} fm"}\r
-                other{"{0} fm"}\r
+                one{"{0} fth"}\r
+                other{"{0} fth"}\r
             }\r
             foot{\r
                 dnam{"ft"}\r
index 3b6928982a83a36b6a7a4cb4004bcaa52a0eedb6..d63cdf7eeda0f1f658be6c9aacd10873c9b79428 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 lo{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.50"}\r
     durationUnits{\r
         hm{"h:mm"}\r
         hms{"h:mm:ss"}\r
@@ -103,6 +103,14 @@ lo{
                 dnam{"ພາດຕໍ່ລ້ານ"}\r
                 other{"{0} ພາດຕໍ່ລ້ານ"}\r
             }\r
+            percent{\r
+                dnam{"ເປີເຊັນ"}\r
+                other{"{0} ເປີເຊັນ"}\r
+            }\r
+            permille{\r
+                dnam{"ຕໍ່ພັນ"}\r
+                other{"{0} ຕໍ່ພັນ"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -123,6 +131,7 @@ lo{
             }\r
         }\r
         coordinate{\r
+            dnam{"ທິດທາງຕາມລຳດັບ"}\r
             east{"{0}E"}\r
             north{"{0}N"}\r
             south{"{0}S"}\r
@@ -161,6 +170,10 @@ lo{
                 dnam{"MB"}\r
                 other{"{0} MB"}\r
             }\r
+            petabyte{\r
+                dnam{"ເພຕາໄບຕ໌"}\r
+                other{"{0} ເພຕາໄບຕ໌"}\r
+            }\r
             terabit{\r
                 dnam{"Tb"}\r
                 other{"{0} Tb"}\r
@@ -443,6 +456,10 @@ lo{
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"atmospheres"}\r
+                other{"{0} atmospheres"}\r
+            }\r
             hectopascal{\r
                 dnam{"hectopascals"}\r
                 other{"{0} hectopascals"}\r
@@ -641,6 +658,12 @@ lo{
         compound{\r
             per{"{0}/{1}"}\r
         }\r
+        concentr{\r
+            percent{\r
+                dnam{"%"}\r
+                other{"{0}%"}\r
+            }\r
+        }\r
         consumption{\r
             liter-per-100kilometers{\r
                 dnam{"ລ/ 100 ກມ"}\r
@@ -648,6 +671,7 @@ lo{
             }\r
         }\r
         coordinate{\r
+            dnam{"ທິດທາງ"}\r
             east{"{0}E"}\r
             north{"{0}N"}\r
             south{"{0}S"}\r
@@ -901,6 +925,14 @@ lo{
                 dnam{"ພາດ/ລ້ານ"}\r
                 other{"{0} ppm"}\r
             }\r
+            percent{\r
+                dnam{"ເປີເຊັນ"}\r
+                other{"{0}%"}\r
+            }\r
+            permille{\r
+                dnam{"ຕໍ່ພັນ"}\r
+                other{"{0}‰"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -921,6 +953,7 @@ lo{
             }\r
         }\r
         coordinate{\r
+            dnam{"ທິດທາງ"}\r
             east{"{0}E"}\r
             north{"{0}N"}\r
             south{"{0}S"}\r
@@ -959,6 +992,10 @@ lo{
                 dnam{"MB"}\r
                 other{"{0} MB"}\r
             }\r
+            petabyte{\r
+                dnam{"PByte"}\r
+                other{"{0} PB"}\r
+            }\r
             terabit{\r
                 dnam{"Tb"}\r
                 other{"{0} Tb"}\r
@@ -1241,6 +1278,10 @@ lo{
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"atm"}\r
+                other{"{0} atm"}\r
+            }\r
             hectopascal{\r
                 dnam{"hPA"}\r
                 other{"{0} hPA"}\r
index 54b285f41a13391264111dd1cf3bdc7a945fb3ea..054545ce2354339587fc909c75c721cef327f9d9 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 lrc{\r
-    Version{"2.1.38.69"}\r
+    Version{"2.1.43.65"}\r
     durationUnits{\r
         hm{"h:mm"}\r
         hms{"h:mm:ss"}\r
index 05c6c449aedab6f04d9a13653666f25a64ac9497..fbe22a91db4e253ecc980d34c62c1f0f168685db 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 lt{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.91"}\r
     durationUnits{\r
         hm{"hh:mm"}\r
         hms{"hh:mm:ss"}\r
@@ -18,8 +18,8 @@ lt{
             }\r
             meter-per-second-squared{\r
                 dnam{"metrai per kvadratinę sekundę"}\r
-                few{"{0} metrai per kvadratinę sekundę"}\r
-                many{"{0} metro per kvadratinę sekundę"}\r
+                few{"{0} m/s²"}\r
+                many{"{0} m/s²"}\r
                 one{"{0} metras per kvadratinę sekundę"}\r
                 other{"{0} metrų per kvadratinę sekundę"}\r
             }\r
@@ -163,6 +163,20 @@ lt{
                 one{"{0} milijoninė dalis"}\r
                 other{"{0} milijoninių dalių"}\r
             }\r
+            percent{\r
+                dnam{"procentas"}\r
+                few{"{0} %"}\r
+                many{"{0} %"}\r
+                one{"{0} procentas"}\r
+                other{"{0} procentas"}\r
+            }\r
+            permille{\r
+                dnam{"promilė"}\r
+                few{"{0} ‰"}\r
+                many{"{0} ‰"}\r
+                one{"{0} promilė"}\r
+                other{"{0} promilė"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -195,6 +209,7 @@ lt{
             }\r
         }\r
         coordinate{\r
+            dnam{"pagrindinė kryptis"}\r
             east{"{0} rytų"}\r
             north{"{0} šiaurės"}\r
             south{"{0} pietų"}\r
@@ -257,6 +272,13 @@ lt{
                 one{"{0} megabaitas"}\r
                 other{"{0} megabaitų"}\r
             }\r
+            petabyte{\r
+                dnam{"pentabaitai"}\r
+                few{"{0} PB"}\r
+                many{"{0} PB"}\r
+                one{"{0} pentabaitas"}\r
+                other{"{0} pentabaitų"}\r
+            }\r
             terabit{\r
                 dnam{"terabitai"}\r
                 few{"{0} terabitai"}\r
@@ -490,7 +512,7 @@ lt{
                 few{"{0} fadomai"}\r
                 many{"{0} fadomo"}\r
                 one{"{0} fadomas"}\r
-                other{"{0} ftm"}\r
+                other{"{0} fth"}\r
             }\r
             foot{\r
                 dnam{"pėdos"}\r
@@ -746,6 +768,13 @@ lt{
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"atmosferos"}\r
+                few{"{0} atmosferos"}\r
+                many{"{0} atmosferos"}\r
+                one{"{0} atmosfera"}\r
+                other{"{0} atmosferų"}\r
+            }\r
             hectopascal{\r
                 dnam{"hektopaskaliai"}\r
                 few{"{0} hektopaskaliai"}\r
@@ -1103,6 +1132,15 @@ lt{
         compound{\r
             per{"{0}/{1}"}\r
         }\r
+        concentr{\r
+            percent{\r
+                dnam{"%"}\r
+                few{"{0} %"}\r
+                many{"{0} %"}\r
+                one{"{0} %"}\r
+                other{"{0} %"}\r
+            }\r
+        }\r
         consumption{\r
             liter-per-100kilometers{\r
                 dnam{"l/100 km"}\r
@@ -1119,6 +1157,7 @@ lt{
             }\r
         }\r
         coordinate{\r
+            dnam{"kryptis"}\r
             east{"{0} R"}\r
             north{"{0} Š"}\r
             south{"{0} P"}\r
@@ -1227,11 +1266,11 @@ lt{
                 other{"{0} dm"}\r
             }\r
             fathom{\r
-                dnam{"ftm"}\r
-                few{"{0} ftm"}\r
-                many{"{0} ftm"}\r
-                one{"{0} ftm"}\r
-                other{"{0} ftm"}\r
+                dnam{"fth"}\r
+                few{"{0} fth"}\r
+                many{"{0} fth"}\r
+                one{"{0} fth"}\r
+                other{"{0} fth"}\r
             }\r
             foot{\r
                 dnam{"pėda"}\r
@@ -1675,6 +1714,20 @@ lt{
                 one{"{0} ppm"}\r
                 other{"{0} ppm"}\r
             }\r
+            percent{\r
+                dnam{"procentas"}\r
+                few{"{0} %"}\r
+                many{"{0} %"}\r
+                one{"{0} %"}\r
+                other{"{0} %"}\r
+            }\r
+            permille{\r
+                dnam{"promilė"}\r
+                few{"{0} ‰"}\r
+                many{"{0} ‰"}\r
+                one{"{0} ‰"}\r
+                other{"{0} ‰"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -1707,6 +1760,7 @@ lt{
             }\r
         }\r
         coordinate{\r
+            dnam{"kryptis"}\r
             east{"{0} R"}\r
             north{"{0} Š"}\r
             south{"{0} P"}\r
@@ -1769,6 +1823,13 @@ lt{
                 one{"{0} MB"}\r
                 other{"{0} MB"}\r
             }\r
+            petabyte{\r
+                dnam{"Petabaitas"}\r
+                few{"{0} PB"}\r
+                many{"{0} PB"}\r
+                one{"{0} PB"}\r
+                other{"{0} PB"}\r
+            }\r
             terabit{\r
                 dnam{"Tb"}\r
                 few{"{0} Tb"}\r
@@ -1998,11 +2059,11 @@ lt{
                 other{"{0} dm"}\r
             }\r
             fathom{\r
-                dnam{"ftm"}\r
-                few{"{0} ftm"}\r
-                many{"{0} ftm"}\r
-                one{"{0} ftm"}\r
-                other{"{0} ftm"}\r
+                dnam{"fth"}\r
+                few{"{0} fth"}\r
+                many{"{0} fth"}\r
+                one{"{0} fth"}\r
+                other{"{0} fth"}\r
             }\r
             foot{\r
                 dnam{"pėda"}\r
@@ -2258,6 +2319,13 @@ lt{
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"atm"}\r
+                few{"{0} atm"}\r
+                many{"{0} atm"}\r
+                one{"{0} atm"}\r
+                other{"{0} atm"}\r
+            }\r
             hectopascal{\r
                 dnam{"hPa"}\r
                 few{"{0} hPa"}\r
index 44f51ef659d10e93e224899f08fe51b7ac139b6f..3dd3538f1773bc455817ca81168cb515350d6362 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 lv{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.91"}\r
     durationUnits{\r
         hm{"h:mm"}\r
         hms{"h:mm:ss"}\r
@@ -143,6 +143,18 @@ lv{
                 other{"{0} miljonās daļas"}\r
                 zero{"{0} miljono daļu"}\r
             }\r
+            percent{\r
+                dnam{"procents"}\r
+                one{"{0} procents"}\r
+                other{"{0} procents"}\r
+                zero{"{0}%"}\r
+            }\r
+            permille{\r
+                dnam{"promile"}\r
+                one{"{0} promile"}\r
+                other{"{0} promile"}\r
+                zero{"{0}‰"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -171,6 +183,7 @@ lv{
             }\r
         }\r
         coordinate{\r
+            dnam{"debespuse"}\r
             east{"{0}A"}\r
             north{"{0}Z"}\r
             south{"{0}D"}\r
@@ -225,6 +238,12 @@ lv{
                 other{"{0} megabaits"}\r
                 zero{"{0} megabaitu"}\r
             }\r
+            petabyte{\r
+                dnam{"petabaiti"}\r
+                one{"{0} petabaitu"}\r
+                other{"{0} petabaiti"}\r
+                zero{"{0} PB"}\r
+            }\r
             terabit{\r
                 dnam{"terabiti"}\r
                 one{"{0} terabits"}\r
@@ -649,6 +668,12 @@ lv{
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"atmosfēras"}\r
+                one{"{0} atmosfēra"}\r
+                other{"{0} atmosfēras"}\r
+                zero{"{0} atm"}\r
+            }\r
             hectopascal{\r
                 dnam{"hektopaskāli"}\r
                 one{"{0} hektopaskāls"}\r
@@ -951,6 +976,14 @@ lv{
         compound{\r
             per{"{0}/{1}"}\r
         }\r
+        concentr{\r
+            percent{\r
+                dnam{"procents"}\r
+                one{"{0}%"}\r
+                other{"{0}%"}\r
+                zero{"{0}%"}\r
+            }\r
+        }\r
         consumption{\r
             liter-per-100kilometers{\r
                 dnam{"l/100 km"}\r
@@ -960,6 +993,7 @@ lv{
             }\r
         }\r
         coordinate{\r
+            dnam{"debespuse"}\r
             east{"{0}A"}\r
             north{"{0}Z"}\r
             south{"{0}D"}\r
@@ -1062,9 +1096,9 @@ lv{
             }\r
             fathom{\r
                 dnam{"fatomi"}\r
-                one{"{0} fm"}\r
-                other{"{0} fm"}\r
-                zero{"{0} fm"}\r
+                one{"{0} fth"}\r
+                other{"{0} fth"}\r
+                zero{"{0} fth"}\r
             }\r
             foot{\r
                 dnam{"pēdas"}\r
@@ -1495,6 +1529,18 @@ lv{
                 other{"{0} ppm"}\r
                 zero{"{0} ppm"}\r
             }\r
+            percent{\r
+                dnam{"procents"}\r
+                one{"{0}%"}\r
+                other{"{0}%"}\r
+                zero{"{0}%"}\r
+            }\r
+            permille{\r
+                dnam{"promile"}\r
+                one{"{0}‰"}\r
+                other{"{0}‰"}\r
+                zero{"{0}‰"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -1523,6 +1569,7 @@ lv{
             }\r
         }\r
         coordinate{\r
+            dnam{"debespuse"}\r
             east{"{0}A"}\r
             north{"{0}Z"}\r
             south{"{0}D"}\r
@@ -1577,6 +1624,12 @@ lv{
                 other{"{0} MB"}\r
                 zero{"{0} MB"}\r
             }\r
+            petabyte{\r
+                dnam{"PB"}\r
+                one{"{0} PB"}\r
+                other{"{0} PB"}\r
+                zero{"{0} PB"}\r
+            }\r
             terabit{\r
                 dnam{"Tb"}\r
                 one{"{0} Tb"}\r
@@ -2001,6 +2054,12 @@ lv{
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"atm"}\r
+                one{"{0} atm"}\r
+                other{"{0} atm"}\r
+                zero{"{0} atm"}\r
+            }\r
             hectopascal{\r
                 dnam{"hPa"}\r
                 one{"{0} hPa"}\r
index cb140716d4a37a6ec0c3c7cac955340270b5f37c..96b4157d15e92815a6f3017a91a5f36b40a2fb09 100644 (file)
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 mg{\r
-    Version{"2.1.39.11"}\r
+    Version{"2.1.43.94"}\r
 }\r
diff --git a/source/data/unit/mi.txt b/source/data/unit/mi.txt
new file mode 100644 (file)
index 0000000..f588f7a
--- /dev/null
@@ -0,0 +1,10 @@
+// © 2016 and later: Unicode, Inc. and others.\r
+// License & terms of use: http://www.unicode.org/copyright.html#License\r
+mi{\r
+    Version{"2.1.44.15"}\r
+    durationUnits{\r
+        hm{"h:mm"}\r
+        hms{"h:mm:ss"}\r
+        ms{"m:ss"}\r
+    }\r
+}\r
index 8ffed670c58bfd2c784962d38531ac1a472fa003..92fa59eb93117f32e188ed3817400b76b630c8a7 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 mk{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.65"}\r
     durationUnits{\r
         hm{"h:mm"}\r
         hms{"h:mm:ss"}\r
@@ -79,13 +79,13 @@ mk{
                 dnam{"квадратни километри"}\r
                 one{"{0} квадратен километар"}\r
                 other{"{0} квадратни километри"}\r
-                per{"{0}/km²"}\r
+                per{"{0} по квадратен километар"}\r
             }\r
             square-meter{\r
                 dnam{"квадратни метри"}\r
                 one{"{0} квадратен метар"}\r
                 other{"{0} квадратни метри"}\r
-                per{"{0} Ð¿Ð¾ Ð¼ÐµÑ\82аÑ\80 ÐºÐ²Ð°Ð´Ñ\80аÑ\82ен"}\r
+                per{"{0} Ð¿Ð¾ ÐºÐ²Ð°Ð´Ñ\80аÑ\82ен Ð¼ÐµÑ\82аÑ\80"}\r
             }\r
             square-mile{\r
                 dnam{"квадратни милји"}\r
@@ -104,7 +104,7 @@ mk{
         }\r
         concentr{\r
             karat{\r
-                dnam{"карат"}\r
+                dnam{"карати"}\r
                 one{"{0} карат"}\r
                 other{"{0} карати"}\r
             }\r
@@ -123,6 +123,16 @@ mk{
                 one{"{0} ppm"}\r
                 other{"{0} ppm"}\r
             }\r
+            percent{\r
+                dnam{"процент"}\r
+                one{"{0} процент"}\r
+                other{"{0} проценти"}\r
+            }\r
+            permille{\r
+                dnam{"промил"}\r
+                one{"{0} промили"}\r
+                other{"{0} промили"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -147,10 +157,11 @@ mk{
             }\r
         }\r
         coordinate{\r
+            dnam{"насока"}\r
             east{"{0} исток"}\r
-            north{"{0}С"}\r
-            south{"{0}Ј"}\r
-            west{"{0}З"}\r
+            north{"{0} север"}\r
+            south{"{0} југ"}\r
+            west{"{0} запад"}\r
         }\r
         digital{\r
             bit{\r
@@ -193,6 +204,11 @@ mk{
                 one{"{0} мегабајт"}\r
                 other{"{0} мегабајти"}\r
             }\r
+            petabyte{\r
+                dnam{"петабајти"}\r
+                one{"{0} петабајт"}\r
+                other{"{0} петабајти"}\r
+            }\r
             terabit{\r
                 dnam{"терабитови"}\r
                 one{"{0} терабит"}\r
@@ -552,6 +568,11 @@ mk{
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"атмосфери"}\r
+                one{"{0} атмосфера"}\r
+                other{"{0} атмосфери"}\r
+            }\r
             hectopascal{\r
                 dnam{"хектопаскали"}\r
                 one{"{0} хектопаскал"}\r
@@ -830,6 +851,11 @@ mk{
                 one{"{0} кт"}\r
                 other{"{0} кт"}\r
             }\r
+            percent{\r
+                dnam{"%"}\r
+                one{"{0} %"}\r
+                other{"{0} %"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -847,6 +873,7 @@ mk{
             }\r
         }\r
         coordinate{\r
+            dnam{"насока"}\r
             east{"{0}И"}\r
             north{"{0}С"}\r
             south{"{0}Ј"}\r
@@ -1427,6 +1454,16 @@ mk{
                 one{"{0} ppm"}\r
                 other{"{0} ppm"}\r
             }\r
+            percent{\r
+                dnam{"процент"}\r
+                one{"{0} %"}\r
+                other{"{0} %"}\r
+            }\r
+            permille{\r
+                dnam{"промили"}\r
+                one{"{0} ‰"}\r
+                other{"{0} ‰"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -1451,6 +1488,7 @@ mk{
             }\r
         }\r
         coordinate{\r
+            dnam{"насока"}\r
             east{"{0}И"}\r
             north{"{0}С"}\r
             south{"{0}Ј"}\r
@@ -1497,6 +1535,11 @@ mk{
                 one{"{0} MB"}\r
                 other{"{0} MB"}\r
             }\r
+            petabyte{\r
+                dnam{"PB"}\r
+                one{"{0} PB"}\r
+                other{"{0} PB"}\r
+            }\r
             terabit{\r
                 dnam{"Tbit"}\r
                 one{"{0} Tb"}\r
@@ -1856,6 +1899,11 @@ mk{
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"атм"}\r
+                one{"{0} атм"}\r
+                other{"{0} атм"}\r
+            }\r
             hectopascal{\r
                 dnam{"hPa"}\r
                 one{"{0} hPa"}\r
index 90aeada864efdfe8c84ed851b60b2e58bf9b245d..39c84359e6dd59152419cbb578a62fd5d4a02d19 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 ml{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.50"}\r
     durationUnits{\r
         hm{"h:mm"}\r
         hms{"h:mm:ss"}\r
@@ -123,6 +123,14 @@ ml{
                 one{"പാർട്ട് / മില്ല്യൺ"}\r
                 other{"{0} പാർട്‌സ് / മില്ല്യൺ"}\r
             }\r
+            percent{\r
+                dnam{"%"}\r
+                one{"{0}%"}\r
+                other{"{0}%"}\r
+            }\r
+            permille{\r
+                dnam{"പ്രതിമില്ലി"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -193,6 +201,10 @@ ml{
                 one{"{0} മെഗാബൈറ്റ്"}\r
                 other{"{0} മെഗാബൈറ്റ്"}\r
             }\r
+            petabyte{\r
+                one{"{0} പെറ്റാബൈറ്റ്"}\r
+                other{"{0} പെറ്റാബൈറ്റ്"}\r
+            }\r
             terabit{\r
                 dnam{"ടെറാബിറ്റ്"}\r
                 one{"{0} ടെറാബിറ്റ്"}\r
@@ -552,6 +564,11 @@ ml{
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"അറ്റ്‌മോസ്‌ഫിയർ"}\r
+                one{"{0} അറ്റ്‌മോസ്‌ഫിയർ"}\r
+                other{"{0} അറ്റ്‌മോസ്‌ഫിയർ"}\r
+            }\r
             hectopascal{\r
                 dnam{"ഹെക്‌ടോപാസ്‌ക്കൽ"}\r
                 one{"{0} ഹെക്‌ടോപാസ്‌ക്കൽ"}\r
@@ -806,6 +823,13 @@ ml{
         compound{\r
             per{"{0}/{1}"}\r
         }\r
+        concentr{\r
+            percent{\r
+                dnam{"%"}\r
+                one{"{0}%"}\r
+                other{"{0}%"}\r
+            }\r
+        }\r
         consumption{\r
             liter-per-100kilometers{\r
                 dnam{"ലി./100 കി.മീ."}\r
@@ -814,6 +838,7 @@ ml{
             }\r
         }\r
         coordinate{\r
+            dnam{"ദിശ"}\r
             east{"{0}കി."}\r
             north{"{0}വ."}\r
             south{"{0}തെ."}\r
@@ -884,6 +909,11 @@ ml{
             }\r
         }\r
         length{\r
+            astronomical-unit{\r
+                dnam{"ജ്യോ.യൂ."}\r
+                one{"{0}ജ്യോ.യൂ"}\r
+                other{"{0}ജ്യോ.യൂ"}\r
+            }\r
             centimeter{\r
                 dnam{"സെ.മീ."}\r
                 one{"{0} സെ.മീ."}\r
@@ -959,6 +989,11 @@ ml{
                 one{"{0} നാ.മീ."}\r
                 other{"{0} നാ.മീ."}\r
             }\r
+            nautical-mile{\r
+                dnam{"നോ.മൈ."}\r
+                one{"{0}ന.മൈ."}\r
+                other{"{0}ന.മൈ."}\r
+            }\r
             parsec{\r
                 dnam{"പാർസെക്"}\r
                 one{"{0} പാ.സെ."}\r
@@ -1019,6 +1054,9 @@ ml{
                 other{"{0} ഔ"}\r
                 per{"{0}/ഔ."}\r
             }\r
+            ounce-troy{\r
+                dnam{"ട്രോ.ഔ."}\r
+            }\r
             pound{\r
                 dnam{"പൗ"}\r
                 one{"{0} പൗ"}\r
@@ -1071,6 +1109,9 @@ ml{
                 one{"{0}മിമീ.മെ."}\r
                 other{"{0}മിമീ.മെ."}\r
             }\r
+            pound-per-square-inch{\r
+                dnam{"പിഎസ്ഐ"}\r
+            }\r
         }\r
         speed{\r
             kilometer-per-hour{\r
@@ -1248,6 +1289,16 @@ ml{
                 one{"{0} പാ.പെ.മി."}\r
                 other{"{0} പാ.പെ.മി."}\r
             }\r
+            percent{\r
+                dnam{"%"}\r
+                one{"{0}%"}\r
+                other{"{0}%"}\r
+            }\r
+            permille{\r
+                dnam{"‰"}\r
+                one{"{0}‰"}\r
+                other{"{0}‰"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -1272,10 +1323,11 @@ ml{
             }\r
         }\r
         coordinate{\r
-            east{"{0}കി."}\r
-            north{"{0}വ."}\r
-            south{"{0}തെ."}\r
-            west{"{0}പ."}\r
+            dnam{"ദിശ"}\r
+            east{"{0} കി."}\r
+            north{"{0} വ."}\r
+            south{"{0} തെ."}\r
+            west{"{0} പ."}\r
         }\r
         digital{\r
             bit{\r
@@ -1318,6 +1370,10 @@ ml{
                 one{"{0} മെ.ബൈ."}\r
                 other{"{0} മെ.ബൈ."}\r
             }\r
+            petabyte{\r
+                one{"{0} PB"}\r
+                other{"{0} PB"}\r
+            }\r
             terabit{\r
                 dnam{"ടെ.ബിറ്റ്"}\r
                 one{"{0} ടെ.ബി."}\r
@@ -1677,6 +1733,11 @@ ml{
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"atm"}\r
+                one{"{0} atm"}\r
+                other{"{0} atm"}\r
+            }\r
             hectopascal{\r
                 dnam{"ഹെ.പാ."}\r
                 one{"{0} ഹെ.പാ."}\r
index f67e76459cf59b73e4b3259efa24b92767159d7d..9282b50bd131e81bd2312dd330db6511f0d0d9c2 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 mn{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.94"}\r
     durationUnits{\r
         hm{"hh:mm"}\r
         hms{"hh:mm:ss"}\r
@@ -123,6 +123,14 @@ mn{
                 one{"{0} хэсэг/саяд"}\r
                 other{"{0} хэсэг/саяд"}\r
             }\r
+            percent{\r
+                dnam{"хувь"}\r
+                one{"{0} хувь"}\r
+                other{"{0} хувь"}\r
+            }\r
+            permille{\r
+                dnam{"‰"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -193,6 +201,11 @@ mn{
                 one{"{0} мегабайт"}\r
                 other{"{0} мегабайт"}\r
             }\r
+            petabyte{\r
+                dnam{"петабайт"}\r
+                one{"{0} петабайт"}\r
+                other{"{0} петабайт"}\r
+            }\r
             terabit{\r
                 dnam{"терабит"}\r
                 one{"{0} терабит"}\r
@@ -537,6 +550,11 @@ mn{
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"уур амьсгал"}\r
+                one{"{0} уур амьсгал"}\r
+                other{"{0} уур амьсгал"}\r
+            }\r
             hectopascal{\r
                 dnam{"гектопаскал"}\r
                 one{"{0} гектопаскал"}\r
@@ -785,6 +803,13 @@ mn{
         compound{\r
             per{"{0}/{1}"}\r
         }\r
+        concentr{\r
+            percent{\r
+                dnam{"%"}\r
+                one{"{0}%"}\r
+                other{"{0}%"}\r
+            }\r
+        }\r
         consumption{\r
             liter-per-100kilometers{\r
                 dnam{"л/100км"}\r
@@ -793,6 +818,7 @@ mn{
             }\r
         }\r
         coordinate{\r
+            dnam{"чиглэл"}\r
             east{"{0}Зүүн"}\r
             north{"{0}Умард"}\r
             south{"{0}Өмнөд"}\r
@@ -1092,6 +1118,16 @@ mn{
                 one{"{0} ppm"}\r
                 other{"{0} ppm"}\r
             }\r
+            percent{\r
+                dnam{"хувь"}\r
+                one{"{0}%"}\r
+                other{"{0}%"}\r
+            }\r
+            permille{\r
+                dnam{"‰"}\r
+                one{"{0}‰"}\r
+                other{"{0}‰"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -1116,6 +1152,7 @@ mn{
             }\r
         }\r
         coordinate{\r
+            dnam{"чиглэл"}\r
             east{"{0}Зүүн"}\r
             north{"{0}Умард"}\r
             south{"{0}Өмнөд"}\r
@@ -1162,6 +1199,11 @@ mn{
                 one{"{0} МБ"}\r
                 other{"{0} МБ"}\r
             }\r
+            petabyte{\r
+                dnam{"ПБайт"}\r
+                one{"{0} ПБ"}\r
+                other{"{0} ПБ"}\r
+            }\r
             terabit{\r
                 dnam{"Тбит"}\r
                 one{"{0} Тб"}\r
@@ -1506,6 +1548,11 @@ mn{
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"atm"}\r
+                one{"{0} atm"}\r
+                other{"{0} atm"}\r
+            }\r
             hectopascal{\r
                 dnam{"гПа"}\r
                 one{"{0} гПа"}\r
index 6dfa980a1b0cd476306fdd3b0526780910fdb28a..516a31b9fa851b688b4bdf36b55d47b787ea3c04 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 mr{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.65"}\r
     durationUnits{\r
         hm{"h:mm"}\r
         hms{"h:mm:ss"}\r
@@ -123,6 +123,16 @@ mr{
                 one{"{0} भाग प्रति दशलक्ष"}\r
                 other{"{0} भाग प्रति दशलक्ष"}\r
             }\r
+            percent{\r
+                dnam{"टक्के"}\r
+                one{"{0} टक्के"}\r
+                other{"{0} टक्के"}\r
+            }\r
+            permille{\r
+                dnam{"प्रतिमैल"}\r
+                one{"{0} प्रतिमैल"}\r
+                other{"{0} प्रतिमैल"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -147,6 +157,7 @@ mr{
             }\r
         }\r
         coordinate{\r
+            dnam{"मुख्य दिशा"}\r
             east{"{0} पूर्व"}\r
             north{"{0} उत्तर"}\r
             south{"{0} दक्षिण"}\r
@@ -193,6 +204,11 @@ mr{
                 one{"{0} मेगाबाइट"}\r
                 other{"{0} मेगाबाइट"}\r
             }\r
+            petabyte{\r
+                dnam{"पेटाबाइट्स"}\r
+                one{"{0} पेटाबाइट"}\r
+                other{"{0} पेटाबाइट्स"}\r
+            }\r
             terabit{\r
                 dnam{"टेराबिट"}\r
                 one{"{0} टेराबिट"}\r
@@ -542,6 +558,11 @@ mr{
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"वातावरण"}\r
+                one{"{0} वातावरण"}\r
+                other{"{0} वातावरण"}\r
+            }\r
             hectopascal{\r
                 dnam{"हेक्टोपास्कल"}\r
                 one{"{0} हेक्टोपास्कल"}\r
@@ -795,6 +816,13 @@ mr{
         compound{\r
             per{"{0}/{1}"}\r
         }\r
+        concentr{\r
+            percent{\r
+                dnam{"%"}\r
+                one{"{0}%"}\r
+                other{"{0}%"}\r
+            }\r
+        }\r
         consumption{\r
             liter-per-100kilometers{\r
                 dnam{"ली/100किमी"}\r
@@ -803,6 +831,7 @@ mr{
             }\r
         }\r
         coordinate{\r
+            dnam{"दिशा"}\r
             east{"{0}पू"}\r
             north{"{0}उ"}\r
             south{"{0}द"}\r
@@ -1207,6 +1236,16 @@ mr{
                 one{"{0} ppm"}\r
                 other{"{0} ppm"}\r
             }\r
+            percent{\r
+                dnam{"टक्के"}\r
+                one{"{0}%"}\r
+                other{"{0}%"}\r
+            }\r
+            permille{\r
+                dnam{"प्रतिमैल"}\r
+                one{"{0}‰"}\r
+                other{"{0}‰"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -1231,6 +1270,7 @@ mr{
             }\r
         }\r
         coordinate{\r
+            dnam{"दिशा"}\r
             east{"{0}पू"}\r
             north{"{0}उ"}\r
             south{"{0}द"}\r
@@ -1277,6 +1317,11 @@ mr{
                 one{"{0} MB"}\r
                 other{"{0} MB"}\r
             }\r
+            petabyte{\r
+                dnam{"PByte"}\r
+                one{"{0} PB"}\r
+                other{"{0} PB"}\r
+            }\r
             terabit{\r
                 dnam{"Tbit"}\r
                 one{"{0} Tb"}\r
@@ -1626,6 +1671,11 @@ mr{
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"atm"}\r
+                one{"{0} atm"}\r
+                other{"{0} atm"}\r
+            }\r
             hectopascal{\r
                 dnam{"hPa"}\r
                 one{"{0} hPa"}\r
index a08d1ae98b1cc6d28fa713be1dca87414279f502..aef81f34c3cebc868d668fda495c6ac67a717db9 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 ms{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.91"}\r
     durationUnits{\r
         hm{"h:mm"}\r
         hms{"h:mm:ss"}\r
@@ -103,6 +103,14 @@ ms{
                 dnam{"bahagian setiap juta"}\r
                 other{"{0} bahagian setiap juta"}\r
             }\r
+            percent{\r
+                dnam{"peratus"}\r
+                other{"{0} peratus"}\r
+            }\r
+            permille{\r
+                dnam{"per seribu"}\r
+                other{"{0} per seribu"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -123,6 +131,7 @@ ms{
             }\r
         }\r
         coordinate{\r
+            dnam{"arah mata angin"}\r
             east{"{0} timur"}\r
             north{"{0} utara"}\r
             south{"{0} selatan"}\r
@@ -161,6 +170,10 @@ ms{
                 dnam{"megabait"}\r
                 other{"{0} megabait"}\r
             }\r
+            petabyte{\r
+                dnam{"petabait"}\r
+                other{"{0} petabait"}\r
+            }\r
             terabit{\r
                 dnam{"terabit"}\r
                 other{"{0} terabit"}\r
@@ -455,6 +468,10 @@ ms{
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"atmosfera"}\r
+                other{"{0} atmosfera"}\r
+            }\r
             hectopascal{\r
                 dnam{"hektopascal"}\r
                 other{"{0} hektopascal"}\r
@@ -661,6 +678,12 @@ ms{
         compound{\r
             per{"{0}/{1}"}\r
         }\r
+        concentr{\r
+            percent{\r
+                dnam{"%"}\r
+                other{"{0}%"}\r
+            }\r
+        }\r
         consumption{\r
             liter-per-100kilometers{\r
                 dnam{"L/100km"}\r
@@ -668,6 +691,7 @@ ms{
             }\r
         }\r
         coordinate{\r
+            dnam{"arah"}\r
             east{"{0}E"}\r
             north{"{0}N"}\r
             south{"{0}S"}\r
@@ -742,7 +766,7 @@ ms{
             }\r
             fathom{\r
                 dnam{"fathom"}\r
-                other{"{0} fm"}\r
+                other{"{0} fth"}\r
             }\r
             foot{\r
                 dnam{"ka"}\r
@@ -1041,6 +1065,14 @@ ms{
                 dnam{"ppm"}\r
                 other{"{0} ppm"}\r
             }\r
+            percent{\r
+                dnam{"peratus"}\r
+                other{"{0}%"}\r
+            }\r
+            permille{\r
+                dnam{"per seribu"}\r
+                other{"{0}‰"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -1061,6 +1093,7 @@ ms{
             }\r
         }\r
         coordinate{\r
+            dnam{"arah"}\r
             east{"{0}E"}\r
             north{"{0}N"}\r
             south{"{0}S"}\r
@@ -1099,6 +1132,10 @@ ms{
                 dnam{"MBait"}\r
                 other{"{0} MB"}\r
             }\r
+            petabyte{\r
+                dnam{"PB"}\r
+                other{"{0} PB"}\r
+            }\r
             terabit{\r
                 dnam{"Tbit"}\r
                 other{"{0} Tb"}\r
@@ -1239,7 +1276,7 @@ ms{
             }\r
             fathom{\r
                 dnam{"fathom"}\r
-                other{"{0} ftm"}\r
+                other{"{0} fth"}\r
             }\r
             foot{\r
                 dnam{"kaki"}\r
@@ -1393,6 +1430,10 @@ ms{
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"atm"}\r
+                other{"{0} atm"}\r
+            }\r
             hectopascal{\r
                 dnam{"hPa"}\r
                 other{"{0} hPa"}\r
index bc626e40115176b7d1806fc66089f7af306ef56d..eaeb71f55b9b20a98d6a9710bd5d33d45b03e312 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 mt{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.94"}\r
     units{\r
         angle{\r
             arc-minute{\r
index a92efd7c3033bcfe7544ded71646a1e7c489affe..12ea676c0ac02b9c3c44b47a3fbf516f1eb834b4 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 my{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.88"}\r
     durationUnits{\r
         hm{"h:mm"}\r
         hms{"h:mm:ss"}\r
@@ -103,6 +103,14 @@ my{
                 dnam{"တစ်သန်းပုံ တစ်ပုံ"}\r
                 other{"တစ်သန်းပုံ {0} ပုံ"}\r
             }\r
+            percent{\r
+                dnam{"ရာခိုင်နှုန်း"}\r
+                other{"{0} ရာခိုင်နှုန်း"}\r
+            }\r
+            permille{\r
+                dnam{"ထောင်လီစိတ်"}\r
+                other{"{0} ထောင်လီစိတ်"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -123,6 +131,7 @@ my{
             }\r
         }\r
         coordinate{\r
+            dnam{"အရပ် လေးမျက်နှာ"}\r
             east{"{0} အရှေ့"}\r
             north{"{0} မြောက်"}\r
             south{"{0} တောင်"}\r
@@ -161,6 +170,10 @@ my{
                 dnam{"မီဂါဘိုက်"}\r
                 other{"{0} မီဂါဘိုက်"}\r
             }\r
+            petabyte{\r
+                dnam{"ပက်တာဘိုက်"}\r
+                other{"{0} ပက်တာဘိုက်"}\r
+            }\r
             terabit{\r
                 dnam{"တယ်ရာဘစ်"}\r
                 other{"{0} တယ်ရာဘစ်"}\r
@@ -287,8 +300,8 @@ my{
         }\r
         length{\r
             astronomical-unit{\r
-                dnam{"á\80\94á\80\80á\80¹á\80\81á\80\90á\80¹á\80\90á\80\97á\80±á\80\92á\80\9aá\80°á\80\94á\80\85á\80º"}\r
-                other{"{0} á\80\94á\80\80á\80¹á\80\81á\80\90á\80¹á\80\90á\80\97á\80±á\80\92á\80\9aá\80°á\80\94á\80\85á\80º"}\r
+                dnam{"á\80\94á\80\80á\80ºá\80\81á\80\90á\80ºá\80\90á\80\97á\80\92á\80±á\80\9aá\80°á\80\94á\80\88"}\r
+                other{"{0} á\80\94á\80\80á\80ºá\80\81á\80\90á\80ºá\80\90á\80\97á\80\92á\80±á\80\9aá\80°á\80\94á\80\88"}\r
             }\r
             centimeter{\r
                 dnam{"စင်တီမီတာ"}\r
@@ -443,6 +456,10 @@ my{
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"ကမ္ဘာ့လေထု"}\r
+                other{"{0} ကမ္ဘာ့လေထု"}\r
+            }\r
             hectopascal{\r
                 dnam{"ဟက်တိုပါစကယ်"}\r
                 other{"{0} ဟက်တိုပါစကယ်"}\r
@@ -644,6 +661,12 @@ my{
         compound{\r
             per{"{0}/{1}"}\r
         }\r
+        concentr{\r
+            percent{\r
+                dnam{"%"}\r
+                other{"{0}%"}\r
+            }\r
+        }\r
         consumption{\r
             liter-per-100kilometers{\r
                 dnam{"L/100km"}\r
@@ -651,6 +674,7 @@ my{
             }\r
         }\r
         coordinate{\r
+            dnam{"လမ်းကြောင်း"}\r
             east{"{0}E"}\r
             north{"{0}N"}\r
             south{"{0}S"}\r
@@ -894,6 +918,14 @@ my{
                 dnam{"တစ်သန်းပုံ တစ်ပုံ"}\r
                 other{"{0} ppm"}\r
             }\r
+            percent{\r
+                dnam{"%"}\r
+                other{"{0}%"}\r
+            }\r
+            permille{\r
+                dnam{"‰"}\r
+                other{"{0}‰"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -914,6 +946,7 @@ my{
             }\r
         }\r
         coordinate{\r
+            dnam{"လမ်းကြောင်း"}\r
             east{"{0} E"}\r
             north{"{0} N"}\r
             south{"{0} S"}\r
@@ -952,6 +985,10 @@ my{
                 dnam{"မီဂါဘိုက်"}\r
                 other{"{0} MB"}\r
             }\r
+            petabyte{\r
+                dnam{"PB"}\r
+                other{"{0} PB"}\r
+            }\r
             terabit{\r
                 dnam{"တယ်ရာဘစ်"}\r
                 other{"{0} Tb"}\r
@@ -1078,7 +1115,7 @@ my{
         }\r
         length{\r
             astronomical-unit{\r
-                dnam{"á\80\94á\80\80á\80¹á\80\81á\80\90á\80¹á\80\90á\80\97á\80±á\80\92á\80\9aá\80°á\80\94á\80\85á\80º"}\r
+                dnam{"á\80\94á\80\80á\80ºá\80\81á\80\90á\80ºá\80\90á\80\97á\80\92á\80±á\80\9aá\80°á\80\94á\80\88"}\r
                 other{"{0} au"}\r
             }\r
             centimeter{\r
@@ -1234,6 +1271,10 @@ my{
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"atm"}\r
+                other{"{0} atm"}\r
+            }\r
             hectopascal{\r
                 dnam{"hPa"}\r
                 other{"{0} hPa"}\r
@@ -1352,8 +1393,8 @@ my{
                 per{"{0}/gal US"}\r
             }\r
             gallon-imperial{\r
-                dnam{"á\80\9aá\80°á\80\80á\80±á\80\82ါလံ"}\r
-                other{"{0} á\80\9aá\80°á\80\80á\80±á\80\82ါလံ"}\r
+                dnam{"á\80\9aá\80°á\80\80á\80\82á\80±ါလံ"}\r
+                other{"{0} á\80\9aá\80°á\80\80á\80\82á\80±ါလံ"}\r
                 per{"{0}/gal Imp."}\r
             }\r
             hectoliter{\r
index e8c1fef7b096c944bb2f1bb134d647205949e6c8..9729fb248502cbf07893009b9cd00d09b1646e14 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 mzn{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.41.34"}\r
     durationUnits{\r
         hm{"h:mm"}\r
         hms{"h:mm:ss"}\r
index a31c21b1eded492493e78c4786033dd97e509e31..2ceb655b5bdcf879b2ae8de4a6ffdb872ee671d8 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 nb{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.2"}\r
     durationUnits{\r
         hm{"h:mm"}\r
         hms{"h:mm:ss"}\r
@@ -123,6 +123,16 @@ nb{
                 one{"{0} del per million"}\r
                 other{"{0} deler per million"}\r
             }\r
+            percent{\r
+                dnam{"prosent"}\r
+                one{"{0} prosent"}\r
+                other{"{0} prosent"}\r
+            }\r
+            permille{\r
+                dnam{"promille"}\r
+                one{"{0} promille"}\r
+                other{"{0} promille"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -147,6 +157,7 @@ nb{
             }\r
         }\r
         coordinate{\r
+            dnam{"himmelretning"}\r
             east{"{0} øst"}\r
             north{"{0} nord"}\r
             south{"{0} sør"}\r
@@ -193,6 +204,11 @@ nb{
                 one{"{0} megabyte"}\r
                 other{"{0} megabyte"}\r
             }\r
+            petabyte{\r
+                dnam{"petabyte"}\r
+                one{"{0} petabyte"}\r
+                other{"{0} petabyte"}\r
+            }\r
             terabit{\r
                 dnam{"terabit"}\r
                 one{"{0} terabit"}\r
@@ -537,6 +553,11 @@ nb{
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"atmosfærer"}\r
+                one{"{0} atmosfære"}\r
+                other{"{0} atmosfærer"}\r
+            }\r
             hectopascal{\r
                 dnam{"hektopascal"}\r
                 one{"{0} hektopascal"}\r
@@ -791,6 +812,13 @@ nb{
         compound{\r
             per{"{0}/{1}"}\r
         }\r
+        concentr{\r
+            percent{\r
+                dnam{"%"}\r
+                one{"{0} %"}\r
+                other{"{0} %"}\r
+            }\r
+        }\r
         consumption{\r
             liter-per-100kilometers{\r
                 dnam{"l/100km"}\r
@@ -799,6 +827,7 @@ nb{
             }\r
         }\r
         coordinate{\r
+            dnam{"retning"}\r
             east{"{0}Ø"}\r
             north{"{0}N"}\r
             south{"{0}S"}\r
@@ -1214,6 +1243,16 @@ nb{
                 one{"{0} ppm"}\r
                 other{"{0} ppm"}\r
             }\r
+            percent{\r
+                dnam{"prosent"}\r
+                one{"{0} %"}\r
+                other{"{0} %"}\r
+            }\r
+            permille{\r
+                dnam{"promille"}\r
+                one{"{0} ‰"}\r
+                other{"{0} ‰"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -1238,6 +1277,7 @@ nb{
             }\r
         }\r
         coordinate{\r
+            dnam{"retning"}\r
             east{"{0} Ø"}\r
             north{"{0} N"}\r
             south{"{0} S"}\r
@@ -1284,6 +1324,11 @@ nb{
                 one{"{0} MB"}\r
                 other{"{0} MB"}\r
             }\r
+            petabyte{\r
+                dnam{"PB"}\r
+                one{"{0} PB"}\r
+                other{"{0} PB"}\r
+            }\r
             terabit{\r
                 dnam{"Tb"}\r
                 one{"{0} Tb"}\r
@@ -1628,6 +1673,11 @@ nb{
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"atm"}\r
+                one{"{0} atm"}\r
+                other{"{0} atm"}\r
+            }\r
             hectopascal{\r
                 dnam{"hPa"}\r
                 one{"{0} hPa"}\r
index 878592aef6c01dfbab076ebe6586ef70ea20b175..ced70e4d4406c20266031164f3777987fd9b4467 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 ne{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.50"}\r
     durationUnits{\r
         hm{"h:mm"}\r
         hms{"h:mm:ss"}\r
@@ -123,6 +123,16 @@ ne{
                 one{"{0} ppm"}\r
                 other{"{0} ppm"}\r
             }\r
+            percent{\r
+                dnam{"प्रतिशत"}\r
+                one{"{0} प्रतिशत"}\r
+                other{"{0} प्रतिशत"}\r
+            }\r
+            permille{\r
+                dnam{"प्रति मिल"}\r
+                one{"{0} प्रति मिल"}\r
+                other{"{0} प्रति मिल"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -147,6 +157,7 @@ ne{
             }\r
         }\r
         coordinate{\r
+            dnam{"मुख्य दिशा"}\r
             east{"{0}पूर्व"}\r
             north{"{0}उत्तर"}\r
             south{"{0}दक्षिण"}\r
@@ -193,6 +204,11 @@ ne{
                 one{"{0}मेगाबाइट"}\r
                 other{"{0}मेगाबाइट"}\r
             }\r
+            petabyte{\r
+                dnam{"पिटाबाइटहरू"}\r
+                one{"{0} पिटाबाइट"}\r
+                other{"{0} पिटाबाइटहरू"}\r
+            }\r
             terabit{\r
                 dnam{"टेराबिट"}\r
                 one{"{0}टेराबिट"}\r
@@ -537,6 +553,11 @@ ne{
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"वायुमण्डल"}\r
+                one{"{0} वायुमण्डल"}\r
+                other{"{0} वायुमण्डलहरू"}\r
+            }\r
             hectopascal{\r
                 dnam{"हेक्टो पास्कल"}\r
                 one{"{0} हेक्टो पास्कल"}\r
@@ -785,6 +806,13 @@ ne{
         compound{\r
             per{"{0}प्रति {1}"}\r
         }\r
+        concentr{\r
+            percent{\r
+                dnam{"प्रतिशत"}\r
+                one{"{0}प्रतिशत"}\r
+                other{"{0}प्रतिशत"}\r
+            }\r
+        }\r
         consumption{\r
             liter-per-100kilometers{\r
                 dnam{"लि./१००कि.मि."}\r
@@ -793,6 +821,7 @@ ne{
             }\r
         }\r
         coordinate{\r
+            dnam{"दिशा"}\r
             east{"{0}पूर्व"}\r
             north{"{0}उत्तर"}\r
             south{"{0}दक्षिण"}\r
@@ -1094,6 +1123,16 @@ ne{
                 one{"{0} ppm"}\r
                 other{"{0} ppm"}\r
             }\r
+            percent{\r
+                dnam{"प्रतिशत"}\r
+                one{"{0}प्रतिशत"}\r
+                other{"{0}प्रतिशत"}\r
+            }\r
+            permille{\r
+                dnam{"प्रति मिल"}\r
+                one{"{0}प्रति मिल"}\r
+                other{"{0}प्रतिशत १"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -1118,6 +1157,7 @@ ne{
             }\r
         }\r
         coordinate{\r
+            dnam{"दिशा"}\r
             east{"{0}पूर्व"}\r
             north{"{0}उत्तर"}\r
             south{"{0}दक्षिण"}\r
@@ -1164,6 +1204,11 @@ ne{
                 one{"{0} MB"}\r
                 other{"{0} MB"}\r
             }\r
+            petabyte{\r
+                dnam{"पिटाबाइट"}\r
+                one{"{0} पिटा"}\r
+                other{"{0} पिटा"}\r
+            }\r
             terabit{\r
                 dnam{"Tb"}\r
                 one{"{0} Tb"}\r
@@ -1508,6 +1553,11 @@ ne{
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"वायु"}\r
+                one{"{0} वायु"}\r
+                other{"{0} वायु"}\r
+            }\r
             hectopascal{\r
                 dnam{"हेक्टो पास्कल"}\r
                 one{"{0}hPa"}\r
index 797ee068f93df136384840acf710de66cfba6823..e658c88ba9921b9c310b83149e0d8872742f0025 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 nl{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.45.14"}\r
     durationUnits{\r
         hm{"h:mm"}\r
         hms{"h:mm:ss"}\r
@@ -123,6 +123,16 @@ nl{
                 one{"{0} ppm"}\r
                 other{"{0} ppm"}\r
             }\r
+            percent{\r
+                dnam{"procent"}\r
+                one{"{0} procent"}\r
+                other{"{0} procent"}\r
+            }\r
+            permille{\r
+                dnam{"promille"}\r
+                one{"{0} promille"}\r
+                other{"{0} promille"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -147,6 +157,7 @@ nl{
             }\r
         }\r
         coordinate{\r
+            dnam{"windstreek"}\r
             east{"{0} oosterlengte"}\r
             north{"{0} noorderbreedte"}\r
             south{"{0} zuiderbreedte"}\r
@@ -193,6 +204,11 @@ nl{
                 one{"{0} megabyte"}\r
                 other{"{0} megabyte"}\r
             }\r
+            petabyte{\r
+                dnam{"petabyte"}\r
+                one{"{0} petabyte"}\r
+                other{"{0} petabyte"}\r
+            }\r
             terabit{\r
                 dnam{"terabit"}\r
                 one{"{0} terabit"}\r
@@ -552,6 +568,11 @@ nl{
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"atmosfeer"}\r
+                one{"{0} atmosfeer"}\r
+                other{"{0} atmosfeer"}\r
+            }\r
             hectopascal{\r
                 dnam{"hectopascal"}\r
                 one{"{0} hectopascal"}\r
@@ -852,9 +873,35 @@ nl{
         }\r
         concentr{\r
             karat{\r
+                dnam{"K"}\r
                 one{"{0} K"}\r
                 other{"{0} K"}\r
             }\r
+            milligram-per-deciliter{\r
+                dnam{"mg/dl"}\r
+                one{"{0} mg/dl"}\r
+                other{"{0} mg/dl"}\r
+            }\r
+            millimole-per-liter{\r
+                dnam{"millimol/liter"}\r
+                one{"{0} mmol/l"}\r
+                other{"{0} mmol/l"}\r
+            }\r
+            part-per-million{\r
+                dnam{"ppm"}\r
+                one{"{0} ppm"}\r
+                other{"{0} ppm"}\r
+            }\r
+            percent{\r
+                dnam{"%"}\r
+                one{"{0}%"}\r
+                other{"{0}%"}\r
+            }\r
+            permille{\r
+                dnam{"promille"}\r
+                one{"{0}‰"}\r
+                other{"{0}‰"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -872,8 +919,14 @@ nl{
                 one{"{0} mpg"}\r
                 other{"{0} mpg"}\r
             }\r
+            mile-per-gallon-imperial{\r
+                dnam{"mijl/imp. gal"}\r
+                one{"{0} m/gUK"}\r
+                other{"{0} m/gUK"}\r
+            }\r
         }\r
         coordinate{\r
+            dnam{"windstreek"}\r
             east{"{0} OL"}\r
             north{"{0} NB"}\r
             south{"{0} ZB"}\r
@@ -920,6 +973,11 @@ nl{
                 one{"{0} MB"}\r
                 other{"{0} MB"}\r
             }\r
+            petabyte{\r
+                dnam{"PB"}\r
+                one{"{0} PB"}\r
+                other{"{0} PB"}\r
+            }\r
             terabit{\r
                 dnam{"Tb"}\r
                 one{"{0} Tb"}\r
@@ -1090,8 +1148,8 @@ nl{
             }\r
             fathom{\r
                 dnam{"fm"}\r
-                one{"{0} fm"}\r
-                other{"{0} fm"}\r
+                one{"{0} fth"}\r
+                other{"{0} fth"}\r
             }\r
             foot{\r
                 dnam{"ft"}\r
@@ -1279,6 +1337,11 @@ nl{
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"atm"}\r
+                one{"{0} atm"}\r
+                other{"{0} atm"}\r
+            }\r
             hectopascal{\r
                 dnam{"hPa"}\r
                 one{"{0} hPa"}\r
@@ -1598,6 +1661,16 @@ nl{
                 one{"{0} ppm"}\r
                 other{"{0} ppm"}\r
             }\r
+            percent{\r
+                dnam{"procent"}\r
+                one{"{0}%"}\r
+                other{"{0}%"}\r
+            }\r
+            permille{\r
+                dnam{"promille"}\r
+                one{"{0}‰"}\r
+                other{"{0}‰"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -1622,6 +1695,7 @@ nl{
             }\r
         }\r
         coordinate{\r
+            dnam{"windstreek"}\r
             east{"{0} OL"}\r
             north{"{0} NB"}\r
             south{"{0} ZB"}\r
@@ -1668,6 +1742,11 @@ nl{
                 one{"{0} MB"}\r
                 other{"{0} MB"}\r
             }\r
+            petabyte{\r
+                dnam{"PB"}\r
+                one{"{0} PB"}\r
+                other{"{0} PB"}\r
+            }\r
             terabit{\r
                 dnam{"Tb"}\r
                 one{"{0} Tb"}\r
@@ -1838,8 +1917,8 @@ nl{
             }\r
             fathom{\r
                 dnam{"fm"}\r
-                one{"{0} fm"}\r
-                other{"{0} fm"}\r
+                one{"{0} fth"}\r
+                other{"{0} fth"}\r
             }\r
             foot{\r
                 dnam{"ft"}\r
@@ -2027,6 +2106,11 @@ nl{
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"atm"}\r
+                one{"{0} atm"}\r
+                other{"{0} atm"}\r
+            }\r
             hectopascal{\r
                 dnam{"hPa"}\r
                 one{"{0} hPa"}\r
index 5f1ea9618312d66aebe155725e2e820a83187950..fe1fd76edccaf937b8b9eb3fe040e95d21da32ec 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 nn{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.94"}\r
     durationUnits{\r
         hm{"h:mm"}\r
         hms{"h:mm:ss"}\r
index f4d19eba9a989eb2f1d806b9396f1d374ba64bca..3bb175ff3d8f76733d47535c7b03f828a12a8bf0 100644 (file)
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 om{\r
-    Version{"2.1.38.69"}\r
+    Version{"2.1.43.94"}\r
 }\r
index c290a6ded15c89bd473f5bd91500eaed82bd136d..00489589ab4e54290bbd2977d52e1caed5fa7744 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 or{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.65"}\r
     durationUnits{\r
         hm{"h:mm"}\r
         hms{"h:mm:ss"}\r
@@ -123,6 +123,16 @@ or{
                 one{"{0} ଅଂଶ ପ୍ରତି ନିୟୁତ"}\r
                 other{"{0} ଅଂଶ ପ୍ରତି ନିୟୁତ"}\r
             }\r
+            percent{\r
+                dnam{"ଶତକଡ଼ା"}\r
+                one{"{0} ଶତକଡ଼ା"}\r
+                other{"{0} ଶତକଡ଼ା"}\r
+            }\r
+            permille{\r
+                dnam{"ପରମିଲ"}\r
+                one{"{0} ପରମିଲ"}\r
+                other{"{0} ପରମିଲ"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -147,6 +157,7 @@ or{
             }\r
         }\r
         coordinate{\r
+            dnam{"ପ୍ରଧାନ ଦିଶା"}\r
             east{"{0} ପୂର୍ବ"}\r
             north{"{0} ଉତ୍ତର"}\r
             south{"{0} ଦକ୍ଷିଣ"}\r
@@ -193,6 +204,11 @@ or{
                 one{"{0} ମେଗାବାଇଟ୍"}\r
                 other{"{0} ମେଗାବାଇଟ୍"}\r
             }\r
+            petabyte{\r
+                dnam{"PB"}\r
+                one{"{0} PB"}\r
+                other{"{0} PB"}\r
+            }\r
             terabit{\r
                 dnam{"ଟେରାବିଟ୍"}\r
                 one{"{0} ଟେରାବିଟ୍"}\r
@@ -537,6 +553,11 @@ or{
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"ଆଟମୋସ୍ପିଅର"}\r
+                one{"{0} ଆଟମୋସ୍ପିଅର"}\r
+                other{"{0} ଆଟମୋସ୍ପିଅର"}\r
+            }\r
             hectopascal{\r
                 dnam{"ହେକ୍ଟୋପାସ୍କେଲ୍"}\r
                 one{"{0} ହେକ୍ଟୋପାସ୍କେଲ୍"}\r
@@ -739,6 +760,13 @@ or{
         compound{\r
             per{"{0}/{1}"}\r
         }\r
+        concentr{\r
+            percent{\r
+                dnam{"%"}\r
+                one{"{0}%"}\r
+                other{"{0}%"}\r
+            }\r
+        }\r
         consumption{\r
             liter-per-100kilometers{\r
                 dnam{"ଲି/100କିମି"}\r
@@ -747,6 +775,7 @@ or{
             }\r
         }\r
         coordinate{\r
+            dnam{"ଦିଗ"}\r
             east{"{0} ପୂ"}\r
             north{"{0}ଉ"}\r
             south{"{0} ଦ"}\r
@@ -966,6 +995,16 @@ or{
                 one{"{0} ପିପିଏମ୍"}\r
                 other{"{0} ପିପିଏମ୍"}\r
             }\r
+            percent{\r
+                dnam{"ଶତକଡ଼ା"}\r
+                one{"{0}%"}\r
+                other{"{0}%"}\r
+            }\r
+            permille{\r
+                dnam{"ପରମିଲ"}\r
+                one{"{0}‰"}\r
+                other{"{0}‰"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -990,6 +1029,7 @@ or{
             }\r
         }\r
         coordinate{\r
+            dnam{"ଦିଗ"}\r
             east{"{0} ପୂ"}\r
             north{"{0} ଉ"}\r
             south{"{0} ଦ"}\r
@@ -1036,6 +1076,11 @@ or{
                 one{"{0} MB"}\r
                 other{"{0} MB"}\r
             }\r
+            petabyte{\r
+                dnam{"PByte"}\r
+                one{"{0} PB"}\r
+                other{"{0} PB"}\r
+            }\r
             terabit{\r
                 dnam{"ଟିବିଟ୍"}\r
                 one{"{0} Tb"}\r
@@ -1380,6 +1425,11 @@ or{
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"atm"}\r
+                one{"{0} atm"}\r
+                other{"{0} atm"}\r
+            }\r
             hectopascal{\r
                 dnam{"hPa"}\r
                 one{"{0} hPa"}\r
index ce5d67f5195511127d4dca663c3469277ff73e06..742a3353585034d6d461aac4a88fe5771c9ae9cf 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 pa{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.65"}\r
     durationUnits{\r
         hm{"h:mm"}\r
         hms{"h:mm:ss"}\r
@@ -123,6 +123,16 @@ pa{
                 one{"{0} ਹਿੱਸਾ ਪ੍ਰਤੀ ਮਿਲੀਅਨ"}\r
                 other{"{0} ਹਿੱਸੇ ਪ੍ਰਤੀ ਮਿਲੀਅਨ"}\r
             }\r
+            percent{\r
+                dnam{"ਪ੍ਰਤੀਸ਼ਤ"}\r
+                one{"{0} ਪ੍ਰਤੀਸ਼ਤ"}\r
+                other{"{0} ਪ੍ਰਤੀਸ਼ਤ"}\r
+            }\r
+            permille{\r
+                dnam{"ਪਰਮਾਈਲ"}\r
+                one{"{0} ਪਰਮਾਈਲ"}\r
+                other{"{0} ਪਰਮਾਈਲ"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -147,6 +157,7 @@ pa{
             }\r
         }\r
         coordinate{\r
+            dnam{"ਮੁੱਖ ਦਿਸ਼ਾ"}\r
             east{"{0}ਪੂ"}\r
             north{"{0}ਉ"}\r
             south{"{0}ਦੱ"}\r
@@ -193,6 +204,11 @@ pa{
                 one{"{0} ਮੈਗਾਬਾਇਟ"}\r
                 other{"{0} ਮੈਗਾਬਾਇਟ"}\r
             }\r
+            petabyte{\r
+                dnam{"ਪੈਟਾਬਾਇਟ"}\r
+                one{"{0} ਪੈਟਾਬਾਇਟ"}\r
+                other{"{0} ਪੈਟਾਬਾਇਟ"}\r
+            }\r
             terabit{\r
                 dnam{"ਟੇਰਾਬਿਟ"}\r
                 one{"{0} ਟੇਰਾਬਿਟ"}\r
@@ -552,6 +568,11 @@ pa{
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"ਵਾਯੂਮੰਡਲ"}\r
+                one{"{0} ਵਾਯੂਮੰਡਲ"}\r
+                other{"{0} ਵਾਯੂਮੰਡਲ"}\r
+            }\r
             hectopascal{\r
                 dnam{"ਹੈਕਟੋਪਾਸਕਲ"}\r
                 one{"{0} ਹੈਕਟੋਪਾਸਕਲ"}\r
@@ -830,6 +851,11 @@ pa{
                 one{"{0} ਕੇਰਟ"}\r
                 other{"{0} ਕੇਰਟ"}\r
             }\r
+            percent{\r
+                dnam{"ਪ੍ਰਤੀਸ਼ਤ"}\r
+                one{"{0}%"}\r
+                other{"{0}%"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -847,6 +873,7 @@ pa{
             }\r
         }\r
         coordinate{\r
+            dnam{"ਦਿਸ਼ਾ"}\r
             east{"{0}ਪੂ"}\r
             north{"{0}ਉ"}\r
             south{"{0}ਦੱ"}\r
@@ -1441,6 +1468,16 @@ pa{
                 one{"{0} ppm"}\r
                 other{"{0} ppm"}\r
             }\r
+            percent{\r
+                dnam{"ਪ੍ਰਤੀਸ਼ਤ"}\r
+                one{"{0}%"}\r
+                other{"{0}%"}\r
+            }\r
+            permille{\r
+                dnam{"ਪਰਮਾਈਲ"}\r
+                one{"{0}‰"}\r
+                other{"{0}‰"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -1465,6 +1502,7 @@ pa{
             }\r
         }\r
         coordinate{\r
+            dnam{"ਦਿਸ਼ਾ"}\r
             east{"{0}ਪੂ"}\r
             north{"{0}ਉ"}\r
             south{"{0}ਦੱ"}\r
@@ -1511,6 +1549,11 @@ pa{
                 one{"{0} MB"}\r
                 other{"{0} MB"}\r
             }\r
+            petabyte{\r
+                dnam{"ਪੈਟਾਬਾਇਟ"}\r
+                one{"{0} PB"}\r
+                other{"{0} PB"}\r
+            }\r
             terabit{\r
                 dnam{"ਟੇਰਾਬਿਟ"}\r
                 one{"{0} Tb"}\r
@@ -1870,6 +1913,11 @@ pa{
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"ਵਾ. ਮੰ."}\r
+                one{"{0} ਵਾ. ਮੰ."}\r
+                other{"{0} ਵਾ. ਮੰ."}\r
+            }\r
             hectopascal{\r
                 dnam{"ਹੈ.ਪਾ."}\r
                 one{"{0} ਹੈ.ਪਾ."}\r
index 55a0c779b95dd7dfd6b2c8f434d3d9126ec05cb6..07e34a29edaccb97a1602ba7353dd83ca00ec997 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 pl{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.50"}\r
     durationUnits{\r
         hm{"h:mm"}\r
         hms{"h:mm:ss"}\r
@@ -163,6 +163,20 @@ pl{
                 one{"{0} część na milion"}\r
                 other{"{0} części na milion"}\r
             }\r
+            percent{\r
+                dnam{"procent"}\r
+                few{"{0} procent"}\r
+                many{"{0} procent"}\r
+                one{"{0} procent"}\r
+                other{"{0} procent"}\r
+            }\r
+            permille{\r
+                dnam{"promil"}\r
+                few{"{0} promile"}\r
+                many{"{0} promili"}\r
+                one{"{0} promil"}\r
+                other{"{0} promila"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -195,6 +209,7 @@ pl{
             }\r
         }\r
         coordinate{\r
+            dnam{"kierunek świata"}\r
             east{"{0}E"}\r
             north{"{0}N"}\r
             south{"{0}S"}\r
@@ -257,6 +272,13 @@ pl{
                 one{"{0} megabajt"}\r
                 other{"{0} megabajta"}\r
             }\r
+            petabyte{\r
+                dnam{"PB"}\r
+                few{"{0} PB"}\r
+                many{"{0} PB"}\r
+                one{"{0} PB"}\r
+                other{"{0} PB"}\r
+            }\r
             terabit{\r
                 dnam{"terabity"}\r
                 few{"{0} terabity"}\r
@@ -725,6 +747,13 @@ pl{
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"atm"}\r
+                few{"{0} atm"}\r
+                many{"{0} atm"}\r
+                one{"{0} atm"}\r
+                other{"{0} atm"}\r
+            }\r
             hectopascal{\r
                 dnam{"hektopaskale"}\r
                 few{"{0} hektopaskale"}\r
@@ -1067,6 +1096,15 @@ pl{
         compound{\r
             per{"{0}/{1}"}\r
         }\r
+        concentr{\r
+            percent{\r
+                dnam{"%"}\r
+                few{"{0}%"}\r
+                many{"{0}%"}\r
+                one{"{0}%"}\r
+                other{"{0}%"}\r
+            }\r
+        }\r
         consumption{\r
             liter-per-100kilometers{\r
                 dnam{"l/100 km"}\r
@@ -1077,6 +1115,7 @@ pl{
             }\r
         }\r
         coordinate{\r
+            dnam{"kierunek"}\r
             east{"{0}E"}\r
             north{"{0}N"}\r
             south{"{0}S"}\r
@@ -1562,6 +1601,20 @@ pl{
                 one{"{0} ppm"}\r
                 other{"{0} ppm"}\r
             }\r
+            percent{\r
+                dnam{"procent"}\r
+                few{"{0}%"}\r
+                many{"{0}%"}\r
+                one{"{0}%"}\r
+                other{"{0}%"}\r
+            }\r
+            permille{\r
+                dnam{"promil"}\r
+                few{"{0}‰"}\r
+                many{"{0}‰"}\r
+                one{"{0}‰"}\r
+                other{"{0}‰"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -1594,6 +1647,7 @@ pl{
             }\r
         }\r
         coordinate{\r
+            dnam{"kierunek"}\r
             east{"{0}E"}\r
             north{"{0}N"}\r
             south{"{0}S"}\r
@@ -1656,6 +1710,13 @@ pl{
                 one{"{0} MB"}\r
                 other{"{0} MB"}\r
             }\r
+            petabyte{\r
+                dnam{"PB"}\r
+                few{"{0} PB"}\r
+                many{"{0} PB"}\r
+                one{"{0} PB"}\r
+                other{"{0} PB"}\r
+            }\r
             terabit{\r
                 dnam{"Tb"}\r
                 few{"{0} Tb"}\r
@@ -1790,17 +1851,17 @@ pl{
         energy{\r
             calorie{\r
                 dnam{"cal"}\r
-                few{"{0} kal"}\r
-                many{"{0} kal"}\r
-                one{"{0} kal"}\r
-                other{"{0} kal"}\r
+                few{"{0} cal"}\r
+                many{"{0} cal"}\r
+                one{"{0} cal"}\r
+                other{"{0} cal"}\r
             }\r
             foodcalorie{\r
-                dnam{"kal"}\r
-                few{"{0} kal"}\r
-                many{"{0} kal"}\r
-                one{"{0} kal"}\r
-                other{"{0} kal"}\r
+                dnam{"cal"}\r
+                few{"{0} cal"}\r
+                many{"{0} cal"}\r
+                one{"{0} cal"}\r
+                other{"{0} cal"}\r
             }\r
             joule{\r
                 dnam{"J"}\r
@@ -2124,6 +2185,13 @@ pl{
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"atm"}\r
+                few{"{0} atm"}\r
+                many{"{0} atm"}\r
+                one{"{0} atm"}\r
+                other{"{0} atm"}\r
+            }\r
             hectopascal{\r
                 dnam{"hPa"}\r
                 few{"{0} hPa"}\r
index 02953a1e331e64f5bab71bda490587b881a2af63..32cdecb14fd3d29266a03d49e6848bdf96af6ac4 100644 (file)
Binary files a/source/data/unit/pool.res and b/source/data/unit/pool.res differ
index 9ccbb88eed601baa8d1adc5075aae037908c0b00..624ac5634449ff55f625a4516b5cc09d640b3f6e 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 ps{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.94"}\r
     durationUnits{\r
         hm{"h:mm"}\r
         hms{"h:mm:ss"}\r
@@ -10,9 +10,9 @@ ps{
     units{\r
         acceleration{\r
             g-force{\r
-                dnam{"g-force"}\r
-                one{"{0} g-force"}\r
-                other{"{0} g-force"}\r
+                dnam{"د جاذبې قوه"}\r
+                one{"{0} د جاذبې قوه"}\r
+                other{"{0} د جاذبې قوه"}\r
             }\r
             meter-per-second-squared{\r
                 dnam{"meters per second squared"}\r
@@ -22,64 +22,64 @@ ps{
         }\r
         angle{\r
             arc-minute{\r
-                dnam{"آرشیف"}\r
-                one{"{0}"}\r
-                other{"{0}"}\r
+                dnam{"آرکمنټس"}\r
+                one{"{0} آرکمنټ"}\r
+                other{"{0} آرکمنټس"}\r
             }\r
             arc-second{\r
-                dnam{"آرکیسیفسونه"}\r
-                one{"{0}"}\r
-                other{"{0}"}\r
+                dnam{"آرک ثانيې"}\r
+                one{"{0} آرک ثانيه"}\r
+                other{"{0} آرک ثانيې"}\r
             }\r
             degree{\r
-                dnam{"درجو"}\r
-                one{"{0}°"}\r
-                other{"{0}°"}\r
+                dnam{"درجې"}\r
+                one{"{0} درجې"}\r
+                other{"{0} درجې"}\r
             }\r
             radian{\r
                 dnam{"رادیان"}\r
-                one{"{0} rad"}\r
-                other{"{0} rad"}\r
+                one{"{0} راديان"}\r
+                other{"{0} راديان"}\r
             }\r
             revolution{\r
                 dnam{"انقلاب"}\r
-                one{"{0} rev"}\r
-                other{"{0} rev"}\r
+                one{"{0} انقلاب"}\r
+                other{"{0} انقلاب"}\r
             }\r
         }\r
         area{\r
             acre{\r
-                dnam{"acres"}\r
-                one{"{0} acre"}\r
-                other{"{0} acres"}\r
+                dnam{"ايکړز"}\r
+                one{"{0} ايکړ"}\r
+                other{"{0} ايکړز"}\r
             }\r
             hectare{\r
-                dnam{"hectares"}\r
-                one{"{0} hectare"}\r
-                other{"{0} hectares"}\r
+                dnam{"هيکترې"}\r
+                one{"{0} هيکتر"}\r
+                other{"{0} هيکترې"}\r
             }\r
             square-centimeter{\r
-                dnam{"square centimeters"}\r
-                one{"{0} square centimeter"}\r
-                other{"{0} square centimeters"}\r
-                per{"{0} per square centimeter"}\r
+                dnam{"مربع سنتي متر"}\r
+                one{"{0} مربع سنتي متر"}\r
+                other{"{0} مربع سنتي متر"}\r
+                per{"{0} في مربع سنتي متر"}\r
             }\r
             square-foot{\r
-                dnam{"square feet"}\r
-                one{"{0} square foot"}\r
-                other{"{0} square feet"}\r
+                dnam{"مربع فټ"}\r
+                one{"{0} مربع فټ"}\r
+                other{"{0} مربع فټ"}\r
             }\r
             square-inch{\r
-                dnam{"square inches"}\r
-                one{"{0} square inch"}\r
-                other{"{0} square inches"}\r
-                per{"{0} per square inch"}\r
+                dnam{"مربع انچ"}\r
+                one{"{0} مربع انچ"}\r
+                other{"{0} مربع انچ"}\r
+                per{"{0} في مربع انچ"}\r
             }\r
             square-kilometer{\r
-                dnam{"square kilometers"}\r
-                one{"{0} square kilometer"}\r
-                other{"{0} square kilometers"}\r
-                per{"{0} per square kilometer"}\r
+                dnam{"مربع کيلو متره"}\r
+                one{"{0} مربع کيلو متر"}\r
+                other{"{0} مربع کيلو متره"}\r
+                per{"{0} في مربع کيلو متر"}\r
             }\r
             square-meter{\r
                 dnam{"square meters"}\r
@@ -88,120 +88,136 @@ ps{
                 per{"{0} per square meter"}\r
             }\r
             square-mile{\r
-                dnam{"square miles"}\r
-                one{"{0} square mile"}\r
-                other{"{0} square miles"}\r
-                per{"{0} per square mile"}\r
+                dnam{"مربع ميل"}\r
+                one{"{0} مربع ميل"}\r
+                other{"{0} مربع ميل"}\r
+                per{"{0} في مربع ميل"}\r
             }\r
             square-yard{\r
-                dnam{"square yards"}\r
-                one{"{0} square yard"}\r
-                other{"{0} square yards"}\r
+                dnam{"مربع ګر"}\r
+                one{"{0} مربع ګز"}\r
+                other{"{0} مربع ګز"}\r
             }\r
         }\r
         compound{\r
-            per{"{0}/{1}"}\r
+            per{"{0}في {1}"}\r
         }\r
         concentr{\r
             karat{\r
-                dnam{"کارات"}\r
-                one{"{0} kt"}\r
-                other{"{0} kt"}\r
+                dnam{"قيراط"}\r
+                one{"{0} قيراط"}\r
+                other{"{0} قيراط"}\r
             }\r
             milligram-per-deciliter{\r
-                dnam{"mg/dL"}\r
-                one{"{0} mg/dL"}\r
-                other{"{0} mg/dL"}\r
+                dnam{"ملي ګرام في ډيسي ليټر"}\r
+                one{"{0} ملي ګرام في ډيسي ليټر"}\r
+                other{"{0} ملي ګرام في ډيسي ليټر"}\r
             }\r
             millimole-per-liter{\r
-                dnam{"mmol/L"}\r
-                one{"{0} mmol/L"}\r
-                other{"{0} mmol/L"}\r
+                dnam{"ملي مولز في ليټر"}\r
+                one{"{0} ملي مول في ليټر"}\r
+                other{"{0} ملي مول في ليټر"}\r
             }\r
             part-per-million{\r
-                dnam{"ppm"}\r
-                one{"{0} ppm"}\r
-                other{"{0} ppm"}\r
+                dnam{"پاړتس في مليون"}\r
+                one{"{0} پارټ في مليون"}\r
+                other{"{0} پارټس في مليون"}\r
+            }\r
+            percent{\r
+                dnam{"سلنه"}\r
+                one{"{0} سلنه"}\r
+                other{"{0} سلنه"}\r
+            }\r
+            permille{\r
+                dnam{"في ميل"}\r
+                one{"{0} في ميل"}\r
+                other{"{0} في ميل"}\r
             }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
-                dnam{"L/100km"}\r
-                one{"{0} L/100km"}\r
-                other{"{0} L/100km"}\r
+                dnam{"ليټرز في ۱۰۰ کيلو مترز"}\r
+                one{"{0} ليټر في ۱۰۰ کلو ميترز"}\r
+                other{"{0} ليټرز في ۱۰۰ کيلو مترز"}\r
             }\r
             liter-per-kilometer{\r
-                dnam{"L/km"}\r
-                one{"{0} L/km"}\r
-                other{"{0} L/km"}\r
+                dnam{"ليټرز في کيلو متر"}\r
+                one{"{0} ليټر في کيلو متر"}\r
+                other{"{0} ليټرز في کيلو متر"}\r
             }\r
             mile-per-gallon{\r
-                dnam{"mpg US"}\r
-                one{"{0} mpg US"}\r
-                other{"{0} mpg US"}\r
+                dnam{"ميلز في ګيلن"}\r
+                one{"{0} ميل في ګيلن"}\r
+                other{"{0} ميلز في ګيلن"}\r
             }\r
             mile-per-gallon-imperial{\r
-                dnam{"mpg Imp."}\r
-                one{"{0} mpg Imp."}\r
-                other{"{0} mpg Imp."}\r
+                dnam{"ميلز في ايمپيريل ګيلن"}\r
+                one{"{0} ميل في ايمپيريل ګيلن"}\r
+                other{"{0} ميلز في ايمپيريل ګيلن"}\r
             }\r
         }\r
         coordinate{\r
+            dnam{"کارډنل اړخ"}\r
             east{"{0} ختيځ"}\r
             north{"{0} شمال"}\r
-            south{"{0} Ø¬Ù\86Ù\88ب"}\r
+            south{"{0} Ø³Ù\88Ù\8aÙ\84"}\r
             west{"{0} لوېديځ"}\r
         }\r
         digital{\r
             bit{\r
-                dnam{"bits"}\r
-                one{"{0} bit"}\r
-                other{"{0} bits"}\r
+                dnam{"بټس"}\r
+                one{"{0} بټ"}\r
+                other{"{0} بټس"}\r
             }\r
             byte{\r
-                dnam{"bytes"}\r
-                one{"{0} byte"}\r
-                other{"{0} bytes"}\r
+                dnam{"بايټس"}\r
+                one{"{0} بايټ"}\r
+                other{"{0} بايټس"}\r
             }\r
             gigabit{\r
-                dnam{"gigabits"}\r
-                one{"{0} gigabit"}\r
-                other{"{0} gigabits"}\r
+                dnam{"ګيګا بټس"}\r
+                one{"{0} ګيګا بټ"}\r
+                other{"{0} ګيګا بټس"}\r
             }\r
             gigabyte{\r
-                dnam{"gigabytes"}\r
-                one{"{0} gigabyte"}\r
-                other{"{0} gigabytes"}\r
+                dnam{"ګيګا بايټس"}\r
+                one{"{0} ګيګا بايټس"}\r
+                other{"{0} ګيګا بايټس"}\r
             }\r
             kilobit{\r
-                dnam{"kilobits"}\r
-                one{"{0} kilobit"}\r
-                other{"{0} kilobits"}\r
+                dnam{"کيلو بټس"}\r
+                one{"{0} کيلو بټ"}\r
+                other{"{0} کيلو بټس"}\r
             }\r
             kilobyte{\r
-                dnam{"kilobytes"}\r
-                one{"{0} kilobyte"}\r
-                other{"{0} kilobytes"}\r
+                dnam{"کيلو بايټس"}\r
+                one{"{0} کيلو بايټ"}\r
+                other{"{0} کيلو بايټس"}\r
             }\r
             megabit{\r
-                dnam{"megabits"}\r
-                one{"{0} megabit"}\r
-                other{"{0} megabits"}\r
+                dnam{"ميګا بټس"}\r
+                one{"{0} ميګا بټ"}\r
+                other{"{0} ميګا بټس"}\r
             }\r
             megabyte{\r
-                dnam{"megabytes"}\r
-                one{"{0} megabyte"}\r
-                other{"{0} megabytes"}\r
+                dnam{"ميګا بايټس"}\r
+                one{"{0} ميګا بايټ"}\r
+                other{"{0} ميګا بايټس"}\r
+            }\r
+            petabyte{\r
+                dnam{"پيټا بايټس"}\r
+                one{"{0} پيټا بايټ"}\r
+                other{"{0} پيټا بايټس"}\r
             }\r
             terabit{\r
-                dnam{"terabits"}\r
-                one{"{0} terabit"}\r
-                other{"{0} terabits"}\r
+                dnam{"ټرا بايټس"}\r
+                one{"{0} ټرا بايټ"}\r
+                other{"{0} ټرا بايټس"}\r
             }\r
             terabyte{\r
-                dnam{"terabytes"}\r
-                one{"{0} terabyte"}\r
-                other{"{0} terabytes"}\r
+                dnam{"ټيرا بايټس"}\r
+                one{"{0} ټيرا بايټ"}\r
+                other{"{0} ټيرا بايټس"}\r
             }\r
         }\r
         duration{\r
@@ -223,7 +239,7 @@ ps{
                 per{"{0}/h"}\r
             }\r
             microsecond{\r
-                dnam{"μs"}\r
+                dnam{"مايکرو ثانيه"}\r
                 one{"{0} μs"}\r
                 other{"{0} μs"}\r
             }\r
@@ -245,7 +261,7 @@ ps{
                 per{"{0}/m"}\r
             }\r
             nanosecond{\r
-                dnam{"ns"}\r
+                dnam{"نينو ثانيه"}\r
                 one{"{0} ns"}\r
                 other{"{0} ns"}\r
             }\r
@@ -270,155 +286,155 @@ ps{
         }\r
         electric{\r
             ampere{\r
-                dnam{"amperes"}\r
-                one{"{0} ampere"}\r
-                other{"{0} amperes"}\r
+                dnam{"ايمپيرز"}\r
+                one{"{0} ايمپير"}\r
+                other{"{0} ايمپيرز"}\r
             }\r
             milliampere{\r
-                dnam{"milliamperes"}\r
-                one{"{0} milliampere"}\r
-                other{"{0} milliamperes"}\r
+                dnam{"ملي ايمپيرز"}\r
+                one{"{0} ملي ايمپير"}\r
+                other{"{0} ملي ايمپيرز"}\r
             }\r
             ohm{\r
-                dnam{"ohms"}\r
-                one{"{0} ohm"}\r
-                other{"{0} ohms"}\r
+                dnam{"اوهمز"}\r
+                one{"{0} اوهم"}\r
+                other{"{0} اوهمز"}\r
             }\r
             volt{\r
-                dnam{"volts"}\r
-                one{"{0} volt"}\r
-                other{"{0} volts"}\r
+                dnam{"وولټس"}\r
+                one{"{0} وولټ"}\r
+                other{"{0} وولټس"}\r
             }\r
         }\r
         energy{\r
             calorie{\r
-                dnam{"calories"}\r
-                one{"{0} calorie"}\r
-                other{"{0} calories"}\r
+                dnam{"کيلريز"}\r
+                one{"{0} کيلري"}\r
+                other{"{0} کيلريز"}\r
             }\r
             foodcalorie{\r
-                dnam{"Calories"}\r
-                one{"{0} Calorie"}\r
-                other{"{0} Calories"}\r
+                dnam{"کيلريز"}\r
+                one{"{0} کيلري"}\r
+                other{"{0} کيلريز"}\r
             }\r
             joule{\r
-                dnam{"joules"}\r
-                one{"{0} joule"}\r
-                other{"{0} joules"}\r
+                dnam{"جولز"}\r
+                one{"{0} جول"}\r
+                other{"{0} جولز"}\r
             }\r
             kilocalorie{\r
-                dnam{"kilocalories"}\r
-                one{"{0} kilocalorie"}\r
-                other{"{0} kilocalories"}\r
+                dnam{"کيلو کيلريز"}\r
+                one{"{0} کيلو کيلري"}\r
+                other{"{0} کيلو کيلريز"}\r
             }\r
             kilojoule{\r
-                dnam{"kilojoules"}\r
-                one{"{0} kilojoule"}\r
-                other{"{0} kilojoules"}\r
+                dnam{"کيلو جولز"}\r
+                one{"{0} کيلو جول"}\r
+                other{"{0} کيلو جولز"}\r
             }\r
             kilowatt-hour{\r
-                dnam{"kilowatt-hours"}\r
-                one{"{0} kilowatt hour"}\r
-                other{"{0} kilowatt-hours"}\r
+                dnam{"کيلو واټ ساعته"}\r
+                one{"{0} کيلو واټ ساعت"}\r
+                other{"{0} کيلو واټ ساعته"}\r
             }\r
         }\r
         frequency{\r
             gigahertz{\r
-                dnam{"gigahertz"}\r
-                one{"{0} gigahertz"}\r
-                other{"{0} gigahertz"}\r
+                dnam{"ګيګا هرټز"}\r
+                one{"{0} ګيګا هرټز"}\r
+                other{"{0} ګيګا هرټز"}\r
             }\r
             hertz{\r
-                dnam{"hertz"}\r
-                one{"{0} hertz"}\r
-                other{"{0} hertz"}\r
+                dnam{"هرټز"}\r
+                one{"{0} هرټز"}\r
+                other{"{0} هرټز"}\r
             }\r
             kilohertz{\r
-                dnam{"kilohertz"}\r
-                one{"{0} kilohertz"}\r
-                other{"{0} kilohertz"}\r
+                dnam{"کيلو هرټز"}\r
+                one{"{0} کيلو هرټز"}\r
+                other{"{0} کيلو هرټز"}\r
             }\r
             megahertz{\r
-                dnam{"megahertz"}\r
-                one{"{0} megahertz"}\r
-                other{"{0} megahertz"}\r
+                dnam{"ميګا هرټز"}\r
+                one{"{0} ميګا هرټز"}\r
+                other{"{0} ميګا هرټز"}\r
             }\r
         }\r
         length{\r
             astronomical-unit{\r
-                dnam{"astronomical units"}\r
-                one{"{0} astronomical unit"}\r
-                other{"{0} astronomical units"}\r
+                dnam{"فلکي احدې"}\r
+                one{"{0} فلکي احد"}\r
+                other{"{0} فلکي احدې"}\r
             }\r
             centimeter{\r
-                dnam{"centimeters"}\r
-                one{"{0} centimeter"}\r
-                other{"{0} centimeters"}\r
-                per{"{0} per centimeter"}\r
+                dnam{"سنتي متره"}\r
+                one{"{0} سنتي متر"}\r
+                other{"{0} سنتي متره"}\r
+                per{"{0} هر سنتي متر"}\r
             }\r
             decimeter{\r
-                dnam{"dm"}\r
-                one{"{0} decimeter"}\r
-                other{"{0} decimeters"}\r
+                dnam{"ډيسي متره"}\r
+                one{"{0} ډيسي متر"}\r
+                other{"{0} ډيسي متره"}\r
             }\r
             foot{\r
-                dnam{"feet"}\r
-                one{"{0} foot"}\r
-                other{"{0} feet"}\r
-                per{"{0}/ft"}\r
+                dnam{"فټه"}\r
+                one{"{0} فټ"}\r
+                other{"{0} فټه"}\r
+                per{"{0}هر فټ"}\r
             }\r
             inch{\r
-                dnam{"inches"}\r
-                one{"{0} inch"}\r
-                other{"{0} inches"}\r
-                per{"{0} per inch"}\r
+                dnam{"انچې"}\r
+                one{"{0} انچ"}\r
+                other{"{0} انچې"}\r
+                per{"{0} هر انچ"}\r
             }\r
             kilometer{\r
-                dnam{"کيلومترونه"}\r
+                dnam{"کيلو ميتره"}\r
                 one{"{0} کيلومتر"}\r
                 other{"{0} کيلومتره"}\r
-                per{"{0}/km"}\r
+                per{"{0}هر کيلو ميتر"}\r
             }\r
             light-year{\r
-                dnam{"light years"}\r
-                one{"{0} light year"}\r
-                other{"{0} light years"}\r
+                dnam{"نوري کالونه"}\r
+                one{"{0} نوري کال"}\r
+                other{"{0} نوري کالونه"}\r
             }\r
             meter{\r
-                dnam{"متر"}\r
-                one{"{0} m"}\r
-                other{"{0} m"}\r
-                per{"{0}/m"}\r
+                dnam{"متره"}\r
+                one{"{0} متر"}\r
+                other{"{0} متره"}\r
+                per{"{0}هر متر"}\r
             }\r
             micrometer{\r
-                dnam{"micrometers"}\r
-                one{"{0} micrometer"}\r
-                other{"{0} micrometers"}\r
+                dnam{"مايکرو متره"}\r
+                one{"{0} مايکرو متر"}\r
+                other{"{0} مايکرو متره"}\r
             }\r
             mile{\r
-                dnam{"miles"}\r
-                one{"{0} mile"}\r
-                other{"{0} miles"}\r
+                dnam{"ميلونه"}\r
+                one{"{0} ميل"}\r
+                other{"{0} ميلونه"}\r
             }\r
             mile-scandinavian{\r
-                dnam{"smi"}\r
-                one{"{0} smi"}\r
-                other{"{0} smi"}\r
+                dnam{"سکېنډنيوين ميل"}\r
+                one{"{0} سکېنډنيوين ميل"}\r
+                other{"{0} سکېنډنيوين ميلونه"}\r
             }\r
             millimeter{\r
-                dnam{"millimeters"}\r
-                one{"{0} millimeter"}\r
-                other{"{0} millimeters"}\r
+                dnam{"ملي متره"}\r
+                one{"{0} ملي متر"}\r
+                other{"{0} ملي متره"}\r
             }\r
             nanometer{\r
-                dnam{"nanometers"}\r
-                one{"{0} nanometer"}\r
-                other{"{0} nanometers"}\r
+                dnam{"نينو متره"}\r
+                one{"{0} نينو متر"}\r
+                other{"{0} نينو متره"}\r
             }\r
             nautical-mile{\r
-                dnam{"nmi"}\r
-                one{"{0} nmi"}\r
-                other{"{0} nmi"}\r
+                dnam{"بحري ميلونه"}\r
+                one{"{0} بحري ميل"}\r
+                other{"{0} بحري ميلونه"}\r
             }\r
             parsec{\r
                 dnam{"parsecs"}\r
@@ -426,9 +442,9 @@ ps{
                 other{"{0} parsecs"}\r
             }\r
             picometer{\r
-                dnam{"picometers"}\r
-                one{"{0} picometer"}\r
-                other{"{0} picometers"}\r
+                dnam{"پيکو متره"}\r
+                one{"{0} پيکو متر"}\r
+                other{"{0} پيکو متره"}\r
             }\r
             point{\r
                 dnam{"pt"}\r
@@ -436,165 +452,170 @@ ps{
                 other{"{0} pt"}\r
             }\r
             yard{\r
-                dnam{"yards"}\r
-                one{"{0} yard"}\r
-                other{"{0} yards"}\r
+                dnam{"ګز"}\r
+                one{"{0} ګز"}\r
+                other{"{0} ګزه"}\r
             }\r
         }\r
         light{\r
             lux{\r
-                dnam{"lx"}\r
-                one{"{0} lx"}\r
-                other{"{0} lx"}\r
+                dnam{"lux"}\r
+                one{"{0} lux"}\r
+                other{"{0} lux"}\r
             }\r
         }\r
         mass{\r
             carat{\r
-                dnam{"carats"}\r
-                one{"{0} carat"}\r
-                other{"{0} carats"}\r
+                dnam{"قيراط"}\r
+                one{"{0} قيراط"}\r
+                other{"{0} قيراط"}\r
             }\r
             gram{\r
-                dnam{"grams"}\r
-                one{"{0} gram"}\r
-                other{"{0} grams"}\r
-                per{"{0} per gram"}\r
+                dnam{"ګرامز"}\r
+                one{"{0} ګرام"}\r
+                other{"{0} ګرامز"}\r
+                per{"{0} في ګرام"}\r
             }\r
             kilogram{\r
-                dnam{"kilograms"}\r
-                one{"{0} kilogram"}\r
-                other{"{0} kilograms"}\r
-                per{"{0} per kilogram"}\r
+                dnam{"کيلو ګرامز"}\r
+                one{"{0} کيلو ګرام"}\r
+                other{"{0} کيلو ګرامز"}\r
+                per{"{0} في کيلو ګرام"}\r
             }\r
             metric-ton{\r
-                dnam{"metric tons"}\r
-                one{"{0} metric ton"}\r
-                other{"{0} metric tons"}\r
+                dnam{"ميټرک ټنز"}\r
+                one{"{0} ميټرک ټن"}\r
+                other{"{0} ميټرک ټنز"}\r
             }\r
             microgram{\r
-                dnam{"micrograms"}\r
-                one{"{0} microgram"}\r
-                other{"{0} micrograms"}\r
+                dnam{"مايکرو ګرامز"}\r
+                one{"{0} مايکرو ګرام"}\r
+                other{"{0} مايکرو ګرامز"}\r
             }\r
             milligram{\r
-                dnam{"milligrams"}\r
-                one{"{0} milligram"}\r
-                other{"{0} milligrams"}\r
+                dnam{"ملي ګرامز"}\r
+                one{"{0} ملي ګرام"}\r
+                other{"{0} ملي ګرامز"}\r
             }\r
             ounce{\r
-                dnam{"ounces"}\r
-                one{"{0} ounce"}\r
-                other{"{0} ounces"}\r
-                per{"{0} per ounce"}\r
+                dnam{"اونسز"}\r
+                one{"{0} اونس"}\r
+                other{"{0} اونسز"}\r
+                per{"{0} في اونس"}\r
             }\r
             ounce-troy{\r
-                dnam{"troy ounces"}\r
-                one{"{0} troy ounce"}\r
-                other{"{0} troy ounces"}\r
+                dnam{"ټروي اونسز"}\r
+                one{"{0} ټروي اونس"}\r
+                other{"{0} ټروي اونسز"}\r
             }\r
             pound{\r
-                dnam{"pounds"}\r
-                one{"{0} pound"}\r
-                other{"{0} pounds"}\r
-                per{"{0} per pound"}\r
+                dnam{"پاونډز"}\r
+                one{"{0} پاونډ"}\r
+                other{"{0} پاونډز"}\r
+                per{"{0} في پاونډ"}\r
             }\r
             ton{\r
-                dnam{"tons"}\r
-                one{"{0} ton"}\r
-                other{"{0} tons"}\r
+                dnam{"ټنز"}\r
+                one{"{0} ټن"}\r
+                other{"{0} ټنز"}\r
             }\r
         }\r
         power{\r
             gigawatt{\r
-                dnam{"gigawatts"}\r
-                one{"{0} gigawatt"}\r
-                other{"{0} gigawatts"}\r
+                dnam{"ګيګا واټس"}\r
+                one{"{0} ګيګا واټ"}\r
+                other{"{0} ګيګا واټس"}\r
             }\r
             horsepower{\r
-                dnam{"horsepower"}\r
-                one{"{0} horsepower"}\r
-                other{"{0} horsepower"}\r
+                dnam{"هارس پاور"}\r
+                one{"{0} هارس پاور"}\r
+                other{"{0} هارس پاور"}\r
             }\r
             kilowatt{\r
-                dnam{"kilowatts"}\r
-                one{"{0} kilowatt"}\r
-                other{"{0} kilowatts"}\r
+                dnam{"کيلو واټس"}\r
+                one{"{0} کيلو واټ"}\r
+                other{"{0} کيلو واټس"}\r
             }\r
             megawatt{\r
-                dnam{"megawatts"}\r
-                one{"{0} megawatt"}\r
-                other{"{0} megawatts"}\r
+                dnam{"ميګا واټس"}\r
+                one{"{0} ميګا واټ"}\r
+                other{"{0} ميګا واټس"}\r
             }\r
             milliwatt{\r
-                dnam{"milliwatts"}\r
-                one{"{0} milliwatt"}\r
-                other{"{0} milliwatts"}\r
+                dnam{"ملي واټس"}\r
+                one{"{0} ملي واټ"}\r
+                other{"{0} ملي واټس"}\r
             }\r
             watt{\r
-                dnam{"watts"}\r
-                one{"{0} watt"}\r
-                other{"{0} watts"}\r
+                dnam{"واټس"}\r
+                one{"{0} واټ"}\r
+                other{"{0} واټس"}\r
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"اتموسفيرز"}\r
+                one{"{0} اتموسفير"}\r
+                other{"{0} اتموسفيرز"}\r
+            }\r
             hectopascal{\r
-                dnam{"hectopascals"}\r
-                one{"{0} hectopascal"}\r
-                other{"{0} hectopascals"}\r
+                dnam{"هيکټو پاسکلز"}\r
+                one{"{0} هيکټو پاسکل"}\r
+                other{"{0} هيکټو پاسکلز"}\r
             }\r
             inch-hg{\r
-                dnam{"inches of mercury"}\r
-                one{"{0} inch of mercury"}\r
-                other{"{0} inches of mercury"}\r
+                dnam{"د پارې انچې"}\r
+                one{"{0} د پارې انچ"}\r
+                other{"{0} د پارې انچې"}\r
             }\r
             millibar{\r
-                dnam{"millibars"}\r
-                one{"{0} millibar"}\r
-                other{"{0} millibars"}\r
+                dnam{"ملي بارز"}\r
+                one{"{0} ملي بار"}\r
+                other{"{0} ملي بارز"}\r
             }\r
             millimeter-of-mercury{\r
-                dnam{"millimeters of mercury"}\r
-                one{"{0} millimeter of mercury"}\r
-                other{"{0} millimeters of mercury"}\r
+                dnam{"د پارې ملي مترز"}\r
+                one{"{0} د پارې ملي متر"}\r
+                other{"{0} د پارې ملي مترز"}\r
             }\r
             pound-per-square-inch{\r
-                dnam{"pounds per square inch"}\r
-                one{"{0} pound per square inch"}\r
-                other{"{0} pounds per square inch"}\r
+                dnam{"پاونډ في مربع انچ"}\r
+                one{"{0} پاونډ في مربع انچ"}\r
+                other{"{0} پاونډ في مربع انچ"}\r
             }\r
         }\r
         speed{\r
             kilometer-per-hour{\r
-                dnam{"kilometers per hour"}\r
-                one{"{0} kilometer per hour"}\r
-                other{"{0} kilometers per hour"}\r
+                dnam{"کيلو متر في ساعت"}\r
+                one{"{0} کيلو متر في ساعت"}\r
+                other{"{0} کيلو متر في ساعت"}\r
             }\r
             knot{\r
-                dnam{"knots"}\r
-                one{"{0} knot"}\r
-                other{"{0} knots"}\r
+                dnam{"ناټس"}\r
+                one{"{0} ناټ"}\r
+                other{"{0} ناټس"}\r
             }\r
             meter-per-second{\r
-                dnam{"meters per second"}\r
-                one{"{0} meter per second"}\r
-                other{"{0} meters per second"}\r
+                dnam{"متر في ثانيه"}\r
+                one{"{0} متر في ثانيه"}\r
+                other{"{0} متر في ثانيه"}\r
             }\r
             mile-per-hour{\r
-                dnam{"miles per hour"}\r
-                one{"{0} mile per hour"}\r
-                other{"{0} miles per hour"}\r
+                dnam{"ميل في ساعت"}\r
+                one{"{0} ميل في ساعت"}\r
+                other{"{0} ميل في ساعت"}\r
             }\r
         }\r
         temperature{\r
             celsius{\r
-                dnam{"degrees Celsius"}\r
-                one{"{0} degree Celsius"}\r
-                other{"{0} degrees Celsius"}\r
+                dnam{"درجې سيلسيس"}\r
+                one{"{0} درجې سيلسيس"}\r
+                other{"{0} درجې سيلسيس"}\r
             }\r
             fahrenheit{\r
-                dnam{"degrees Fahrenheit"}\r
-                one{"{0} degree Fahrenheit"}\r
-                other{"{0} degrees Fahrenheit"}\r
+                dnam{"درجې فارنهايټ"}\r
+                one{"{0} درجې فارنهايټ"}\r
+                other{"{0} درجې فارنهايټ"}\r
             }\r
             generic{\r
                 dnam{"°"}\r
@@ -602,63 +623,63 @@ ps{
                 other{"{0}°"}\r
             }\r
             kelvin{\r
-                dnam{"kelvins"}\r
-                one{"{0} kelvin"}\r
-                other{"{0} kelvins"}\r
+                dnam{"کيلونز"}\r
+                one{"{0} کيلون"}\r
+                other{"{0} کيلونز"}\r
             }\r
         }\r
         volume{\r
             acre-foot{\r
-                dnam{"acre-feet"}\r
-                one{"{0} acre-foot"}\r
-                other{"{0} acre-feet"}\r
+                dnam{"اکړ فټ"}\r
+                one{"{0} اکړ فټ"}\r
+                other{"{0} اکړ فټ"}\r
             }\r
             centiliter{\r
-                dnam{"centiliters"}\r
-                one{"{0} centiliter"}\r
-                other{"{0} centiliters"}\r
+                dnam{"سنټي ليټرز"}\r
+                one{"{0} سنټي ليټر"}\r
+                other{"{0} سنټي ليټرز"}\r
             }\r
             cubic-centimeter{\r
-                dnam{"cubic centimeters"}\r
-                one{"{0} cubic centimeter"}\r
-                other{"{0} cubic centimeters"}\r
-                per{"{0} per cubic centimeter"}\r
+                dnam{"مکعب سنتي متر"}\r
+                one{"{0} مکعب سنتي متر"}\r
+                other{"{0} مکعب سنتي متر"}\r
+                per{"{0} في مکعب سنتي متر"}\r
             }\r
             cubic-foot{\r
-                dnam{"cubic feet"}\r
-                one{"{0} cubic foot"}\r
-                other{"{0} cubic feet"}\r
+                dnam{"مکعب فټ"}\r
+                one{"{0} مکعب فټ"}\r
+                other{"{0} مکعب فټ"}\r
             }\r
             cubic-inch{\r
-                dnam{"cubic inches"}\r
-                one{"{0} cubic inch"}\r
-                other{"{0} cubic inches"}\r
+                dnam{"مکعب انچ"}\r
+                one{"{0} مکعب انچ"}\r
+                other{"{0} مکعب انچ"}\r
             }\r
             cubic-kilometer{\r
-                dnam{"cubic kilometers"}\r
-                one{"{0} cubic kilometer"}\r
-                other{"{0} cubic kilometers"}\r
+                dnam{"مکعب کيلو متر"}\r
+                one{"مکعب کيلو متر"}\r
+                other{"{0} مکعب کيلو متر"}\r
             }\r
             cubic-meter{\r
-                dnam{"cubic meters"}\r
-                one{"{0} cubic meter"}\r
-                other{"{0} cubic meters"}\r
-                per{"{0} per cubic meter"}\r
+                dnam{"مکعب متر"}\r
+                one{"{0} مکعب متر"}\r
+                other{"{0} مکعب متر"}\r
+                per{"{0} في مکعب متر"}\r
             }\r
             cubic-mile{\r
-                dnam{"cubic miles"}\r
-                one{"{0} cubic mile"}\r
-                other{"{0} cubic miles"}\r
+                dnam{"مکعب ميل"}\r
+                one{"{0} مکعب ميل"}\r
+                other{"{0} مکعب ميل"}\r
             }\r
             cubic-yard{\r
-                dnam{"cubic yards"}\r
-                one{"{0} cubic yard"}\r
-                other{"{0} cubic yards"}\r
+                dnam{"مکعب ګز"}\r
+                one{"{0} مکعب ګز"}\r
+                other{"{0} مکعب ګز"}\r
             }\r
             cup{\r
-                dnam{"cups"}\r
-                one{"{0} cup"}\r
-                other{"{0} cups"}\r
+                dnam{"پيالې"}\r
+                one{"{0} پياله"}\r
+                other{"{0} پيالې"}\r
             }\r
             cup-metric{\r
                 dnam{"metric cups"}\r
@@ -666,9 +687,9 @@ ps{
                 other{"{0} metric cups"}\r
             }\r
             deciliter{\r
-                dnam{"deciliters"}\r
-                one{"{0} deciliter"}\r
-                other{"{0} deciliters"}\r
+                dnam{"ډيسي ليټرز"}\r
+                one{"{0} ډيسي ليټر"}\r
+                other{"{0} ډيسي ليټرز"}\r
             }\r
             fluid-ounce{\r
                 dnam{"fluid ounces"}\r
@@ -676,10 +697,10 @@ ps{
                 other{"{0} fluid ounces"}\r
             }\r
             gallon{\r
-                dnam{"gallons"}\r
-                one{"{0} gallon"}\r
-                other{"{0} gallons"}\r
-                per{"{0} per gallon"}\r
+                dnam{"ګيلنز"}\r
+                one{"{0} ګيلن"}\r
+                other{"{0} ګيلنز"}\r
+                per{"{0} في ګيلن"}\r
             }\r
             gallon-imperial{\r
                 dnam{"Imp. gallons"}\r
@@ -688,25 +709,25 @@ ps{
                 per{"{0} per Imp. gallon"}\r
             }\r
             hectoliter{\r
-                dnam{"hectoliters"}\r
-                one{"{0} hectoliter"}\r
-                other{"{0} hectoliters"}\r
+                dnam{"هيکټو ليټرز"}\r
+                one{"{0} هيکټو ليټر"}\r
+                other{"{0} هيکټو ليټرز"}\r
             }\r
             liter{\r
-                dnam{"liters"}\r
-                one{"{0} liter"}\r
-                other{"{0} liters"}\r
-                per{"{0} per liter"}\r
+                dnam{"ليټرز"}\r
+                one{"{0} ليټر"}\r
+                other{"{0} ليټرز"}\r
+                per{"{0} في ليټر"}\r
             }\r
             megaliter{\r
-                dnam{"megaliters"}\r
-                one{"{0} megaliter"}\r
-                other{"{0} megaliters"}\r
+                dnam{"ميګا ليټرز"}\r
+                one{"{0} ميګا ليټر"}\r
+                other{"{0} ميګا ليټرز"}\r
             }\r
             milliliter{\r
-                dnam{"milliliters"}\r
-                one{"{0} milliliter"}\r
-                other{"{0} milliliters"}\r
+                dnam{"ملي ليټرز"}\r
+                one{"{0} ملي ليټر"}\r
+                other{"{0} ملي ليټرز"}\r
             }\r
             pint{\r
                 dnam{"pints"}\r
@@ -719,19 +740,19 @@ ps{
                 other{"{0} metric pints"}\r
             }\r
             quart{\r
-                dnam{"quarts"}\r
-                one{"{0} quart"}\r
-                other{"{0} quarts"}\r
+                dnam{"څلورمه"}\r
+                one{"{0} څلورمه"}\r
+                other{"{0} څلورمه"}\r
             }\r
             tablespoon{\r
-                dnam{"tablespoons"}\r
+                dnam{"د ميز کاچوغه"}\r
                 one{"{0} tablespoon"}\r
                 other{"{0} tablespoons"}\r
             }\r
             teaspoon{\r
-                dnam{"teaspoons"}\r
-                one{"{0} teaspoon"}\r
-                other{"{0} teaspoons"}\r
+                dnam{"د ميز کاچوغې"}\r
+                one{"{0} د ميز کاچوغه"}\r
+                other{"{0} د ميز کاچوغې"}\r
             }\r
         }\r
     }\r
@@ -739,6 +760,13 @@ ps{
         compound{\r
             per{"{0}/{1}"}\r
         }\r
+        concentr{\r
+            percent{\r
+                dnam{"سلنه"}\r
+                one{"{0}%"}\r
+                other{"{0}%"}\r
+            }\r
+        }\r
         consumption{\r
             liter-per-100kilometers{\r
                 dnam{"L/100km"}\r
@@ -747,16 +775,17 @@ ps{
             }\r
         }\r
         coordinate{\r
+            dnam{"اړخ"}\r
             east{"{0}خ"}\r
             north{"{0}ش"}\r
-            south{"{0}ج"}\r
+            south{"{0}س"}\r
             west{"{0}ل"}\r
         }\r
         duration{\r
             day{\r
                 dnam{"ورځ"}\r
                 one{"{0} ورځ"}\r
-                other{"{0} ورځې"}\r
+                other{"{0}d"}\r
             }\r
             hour{\r
                 dnam{"hr"}\r
@@ -806,7 +835,7 @@ ps{
                 other{"{0} km"}\r
             }\r
             meter{\r
-                dnam{"meter"}\r
+                dnam{"m"}\r
                 one{"{0} m"}\r
                 other{"{0} m"}\r
             }\r
@@ -818,7 +847,7 @@ ps{
         }\r
         mass{\r
             gram{\r
-                dnam{"gram"}\r
+                dnam{"ګرام"}\r
                 one{"{0}g"}\r
                 other{"{0}g"}\r
             }\r
@@ -853,7 +882,7 @@ ps{
     unitsShort{\r
         acceleration{\r
             g-force{\r
-                dnam{"g-force"}\r
+                dnam{"د جاذبې قوه"}\r
                 one{"{0} G"}\r
                 other{"{0} G"}\r
             }\r
@@ -865,7 +894,7 @@ ps{
         }\r
         angle{\r
             arc-minute{\r
-                dnam{"آرکسیسیس"}\r
+                dnam{"arcmins"}\r
                 one{"{0}′"}\r
                 other{"{0}′"}\r
             }\r
@@ -875,7 +904,7 @@ ps{
                 other{"{0}″"}\r
             }\r
             degree{\r
-                dnam{"درجو"}\r
+                dnam{"درجې"}\r
                 one{"{0}°"}\r
                 other{"{0}°"}\r
             }\r
@@ -892,12 +921,12 @@ ps{
         }\r
         area{\r
             acre{\r
-                dnam{"acres"}\r
+                dnam{"ايکړز"}\r
                 one{"{0} ac"}\r
                 other{"{0} ac"}\r
             }\r
             hectare{\r
-                dnam{"hectares"}\r
+                dnam{"هيکترې"}\r
                 one{"{0} ha"}\r
                 other{"{0} ha"}\r
             }\r
@@ -947,7 +976,7 @@ ps{
         }\r
         concentr{\r
             karat{\r
-                dnam{"کارات"}\r
+                dnam{"قيراط"}\r
                 one{"{0} kt"}\r
                 other{"{0} kt"}\r
             }\r
@@ -957,15 +986,25 @@ ps{
                 other{"{0} mg/dL"}\r
             }\r
             millimole-per-liter{\r
-                dnam{"mmol/L"}\r
+                dnam{"ملي مول/ليټر"}\r
                 one{"{0} mmol/L"}\r
                 other{"{0} mmol/L"}\r
             }\r
             part-per-million{\r
-                dnam{"ppm"}\r
+                dnam{"پارټس/مليون"}\r
                 one{"{0} ppm"}\r
                 other{"{0} ppm"}\r
             }\r
+            percent{\r
+                dnam{"سلنه"}\r
+                one{"{0}%"}\r
+                other{"{0}%"}\r
+            }\r
+            permille{\r
+                dnam{"في ميل"}\r
+                one{"{0}‰"}\r
+                other{"{0}‰"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -984,15 +1023,16 @@ ps{
                 other{"{0} mpg US"}\r
             }\r
             mile-per-gallon-imperial{\r
-                dnam{"mpg Imp."}\r
+                dnam{"ميلز/ګيلن ايمپيريل"}\r
                 one{"{0} mpg Imp."}\r
                 other{"{0} mpg Imp."}\r
             }\r
         }\r
         coordinate{\r
+            dnam{"اړخ"}\r
             east{"{0} خ"}\r
             north{"{0} ش"}\r
-            south{"{0} Ø¬"}\r
+            south{"{0} Ø³"}\r
             west{"{0} ل"}\r
         }\r
         digital{\r
@@ -1036,6 +1076,11 @@ ps{
                 one{"{0} MB"}\r
                 other{"{0} MB"}\r
             }\r
+            petabyte{\r
+                dnam{"PByte"}\r
+                one{"{0} PB"}\r
+                other{"{0} PB"}\r
+            }\r
             terabit{\r
                 dnam{"Tbit"}\r
                 one{"{0} Tb"}\r
@@ -1060,7 +1105,7 @@ ps{
                 per{"{0}/d"}\r
             }\r
             hour{\r
-                dnam{"hr"}\r
+                dnam{"ساعتونه"}\r
                 one{"{0} h"}\r
                 other{"{0} h"}\r
                 per{"{0}/h"}\r
@@ -1076,7 +1121,7 @@ ps{
                 other{"{0} ms"}\r
             }\r
             minute{\r
-                dnam{"min"}\r
+                dnam{"mins"}\r
                 one{"{0} min"}\r
                 other{"{0} min"}\r
                 per{"{0}/min"}\r
@@ -1123,7 +1168,7 @@ ps{
                 other{"{0} mA"}\r
             }\r
             ohm{\r
-                dnam{"ohms"}\r
+                dnam{"اوهمز"}\r
                 one{"{0} Ω"}\r
                 other{"{0} Ω"}\r
             }\r
@@ -1145,7 +1190,7 @@ ps{
                 other{"{0} Cal"}\r
             }\r
             joule{\r
-                dnam{"joules"}\r
+                dnam{"جولز"}\r
                 one{"{0} J"}\r
                 other{"{0} J"}\r
             }\r
@@ -1155,7 +1200,7 @@ ps{
                 other{"{0} kcal"}\r
             }\r
             kilojoule{\r
-                dnam{"kilojoule"}\r
+                dnam{"کيلو جول"}\r
                 one{"{0} kJ"}\r
                 other{"{0} kJ"}\r
             }\r
@@ -1205,13 +1250,13 @@ ps{
                 other{"{0} dm"}\r
             }\r
             foot{\r
-                dnam{"feet"}\r
+                dnam{"فټه"}\r
                 one{"{0} ft"}\r
                 other{"{0} ft"}\r
                 per{"{0}/ft"}\r
             }\r
             inch{\r
-                dnam{"inches"}\r
+                dnam{"انچې"}\r
                 one{"{0} in"}\r
                 other{"{0} in"}\r
                 per{"{0}/in"}\r
@@ -1228,7 +1273,7 @@ ps{
                 other{"{0} ly"}\r
             }\r
             meter{\r
-                dnam{"meter"}\r
+                dnam{"m"}\r
                 one{"{0} m"}\r
                 other{"{0} m"}\r
                 per{"{0}/m"}\r
@@ -1239,7 +1284,7 @@ ps{
                 other{"{0} µm"}\r
             }\r
             mile{\r
-                dnam{"miles"}\r
+                dnam{"ميلونه"}\r
                 one{"{0} mi"}\r
                 other{"{0} mi"}\r
             }\r
@@ -1279,7 +1324,7 @@ ps{
                 other{"{0} pt"}\r
             }\r
             yard{\r
-                dnam{"yards"}\r
+                dnam{"ګزه"}\r
                 one{"{0} yd"}\r
                 other{"{0} yd"}\r
             }\r
@@ -1293,12 +1338,12 @@ ps{
         }\r
         mass{\r
             carat{\r
-                dnam{"carats"}\r
+                dnam{"قيراط"}\r
                 one{"{0} CD"}\r
                 other{"{0} CD"}\r
             }\r
             gram{\r
-                dnam{"grams"}\r
+                dnam{"ګرامز"}\r
                 one{"{0} g"}\r
                 other{"{0} g"}\r
                 per{"{0}/g"}\r
@@ -1336,13 +1381,13 @@ ps{
                 other{"{0} oz t"}\r
             }\r
             pound{\r
-                dnam{"pounds"}\r
+                dnam{"پاونډز"}\r
                 one{"{0} lb"}\r
                 other{"{0} lb"}\r
                 per{"{0}/lb"}\r
             }\r
             ton{\r
-                dnam{"tons"}\r
+                dnam{"ټنز"}\r
                 one{"{0} tn"}\r
                 other{"{0} tn"}\r
             }\r
@@ -1374,12 +1419,17 @@ ps{
                 other{"{0} mW"}\r
             }\r
             watt{\r
-                dnam{"watts"}\r
+                dnam{"واټس"}\r
                 one{"{0} W"}\r
                 other{"{0} W"}\r
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"atm"}\r
+                one{"{0} atm"}\r
+                other{"{0} atm"}\r
+            }\r
             hectopascal{\r
                 dnam{"hPa"}\r
                 one{"{0} hPa"}\r
@@ -1499,7 +1549,7 @@ ps{
                 other{"{0} yd³"}\r
             }\r
             cup{\r
-                dnam{"cups"}\r
+                dnam{"پيالې"}\r
                 one{"{0} c"}\r
                 other{"{0} c"}\r
             }\r
@@ -1536,7 +1586,7 @@ ps{
                 other{"{0} hL"}\r
             }\r
             liter{\r
-                dnam{"liters"}\r
+                dnam{"ليټرز"}\r
                 one{"{0} L"}\r
                 other{"{0} L"}\r
                 per{"{0}/L"}\r
index 6679c287ad529e10bf584c644a988f92174e4085..a17f2fa8ad5f5e1e78b0afa1f9fd68d02670149a 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 pt{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.65"}\r
     durationUnits{\r
         hm{"h:mm"}\r
         hms{"h:mm:ss"}\r
@@ -123,6 +123,16 @@ pt{
                 one{"{0} parte por milhão"}\r
                 other{"{0} partes por milhão"}\r
             }\r
+            percent{\r
+                dnam{"por cento"}\r
+                one{"{0} por cento"}\r
+                other{"{0} por cento"}\r
+            }\r
+            permille{\r
+                dnam{"por mil"}\r
+                one{"{0} por mil"}\r
+                other{"{0} por mil"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -147,6 +157,7 @@ pt{
             }\r
         }\r
         coordinate{\r
+            dnam{"direção cardeal"}\r
             east{"{0}E"}\r
             north{"{0}N"}\r
             south{"{0}S"}\r
@@ -193,6 +204,11 @@ pt{
                 one{"{0} megabyte"}\r
                 other{"{0} megabytes"}\r
             }\r
+            petabyte{\r
+                dnam{"petabytes"}\r
+                one{"{0} petabyte"}\r
+                other{"{0} petabytes"}\r
+            }\r
             terabit{\r
                 dnam{"terabits"}\r
                 one{"{0} terabit"}\r
@@ -552,6 +568,11 @@ pt{
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"atmosferas"}\r
+                one{"{0} atmosfera"}\r
+                other{"{0} atmosferas"}\r
+            }\r
             hectopascal{\r
                 dnam{"hectopascais"}\r
                 one{"{0} hectopascal"}\r
@@ -806,6 +827,13 @@ pt{
         compound{\r
             per{"{0}/{1}"}\r
         }\r
+        concentr{\r
+            percent{\r
+                dnam{"%"}\r
+                one{"{0}%"}\r
+                other{"{0}%"}\r
+            }\r
+        }\r
         consumption{\r
             liter-per-100kilometers{\r
                 dnam{"l/100 km"}\r
@@ -814,6 +842,7 @@ pt{
             }\r
         }\r
         coordinate{\r
+            dnam{"direção"}\r
             east{"{0}E"}\r
             north{"{0}N"}\r
             south{"{0}S"}\r
@@ -1268,6 +1297,16 @@ pt{
                 one{"{0} ppm"}\r
                 other{"{0} ppm"}\r
             }\r
+            percent{\r
+                dnam{"por cento"}\r
+                one{"{0}%"}\r
+                other{"{0}%"}\r
+            }\r
+            permille{\r
+                dnam{"por mil"}\r
+                one{"{0}‰"}\r
+                other{"{0}‰"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -1292,6 +1331,7 @@ pt{
             }\r
         }\r
         coordinate{\r
+            dnam{"direção"}\r
             east{"{0}E"}\r
             north{"{0}N"}\r
             south{"{0}S"}\r
@@ -1338,6 +1378,11 @@ pt{
                 one{"{0} MB"}\r
                 other{"{0} MB"}\r
             }\r
+            petabyte{\r
+                dnam{"PByte"}\r
+                one{"{0} PB"}\r
+                other{"{0} PB"}\r
+            }\r
             terabit{\r
                 dnam{"Tbit"}\r
                 one{"{0} Tb"}\r
@@ -1697,6 +1742,11 @@ pt{
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"atm"}\r
+                one{"{0} atm"}\r
+                other{"{0} atm"}\r
+            }\r
             hectopascal{\r
                 dnam{"hPa"}\r
                 one{"{0} hPa"}\r
index 30511ef6907bfa14a06976f9ef474f785c722118..b75cb834d1f3f4f954418c6a472b441b03aa4bb2 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 pt_PT{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.9"}\r
     units{\r
         acceleration{\r
             g-force{\r
index 8623e75e20d37486b693cc9a2b98c5e84917104a..699311428bd17a6447225697b9d83bb502e3b70c 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 qu{\r
-    Version{"2.1.38.72"}\r
+    Version{"2.1.43.94"}\r
     durationUnits{\r
         hm{"h:mm"}\r
         hms{"h:mm:ss"}\r
index bb7d9bdaf3473ee599956ebf9faffd0dbd318117..65af1004d5d0e64966bc0b040c4291da2664fd59 100644 (file)
@@ -1,6 +1,6 @@
 # © 2016 and later: Unicode, Inc. and others.\r
 # License & terms of use: http://www.unicode.org/copyright.html#License\r
-UNIT_CLDR_VERSION = 33.1\r
+UNIT_CLDR_VERSION = 34\r
 # A list of txt's to build\r
 # Note:\r
 #\r
@@ -86,38 +86,39 @@ UNIT_SOURCE = af.txt agq.txt ak.txt am.txt\
  fr_CA.txt fr_HT.txt fur.txt fy.txt ga.txt\\r
  gd.txt gl.txt gsw.txt gu.txt guz.txt\\r
  gv.txt ha.txt haw.txt he.txt hi.txt\\r
- hr.txt hsb.txt hu.txt hy.txt id.txt\\r
- ig.txt ii.txt is.txt it.txt ja.txt\\r
- jgo.txt jmc.txt ka.txt kab.txt kam.txt\\r
- kde.txt kea.txt khq.txt ki.txt kk.txt\\r
- kkj.txt kl.txt kln.txt km.txt kn.txt\\r
- ko.txt kok.txt ks.txt ksb.txt ksf.txt\\r
- ksh.txt kw.txt ky.txt lag.txt lb.txt\\r
- lg.txt lkt.txt ln.txt lo.txt lrc.txt\\r
- lt.txt lu.txt luo.txt luy.txt lv.txt\\r
- mas.txt mer.txt mfe.txt mg.txt mgh.txt\\r
- mgo.txt mk.txt ml.txt mn.txt mr.txt\\r
- ms.txt mt.txt mua.txt my.txt mzn.txt\\r
- naq.txt nb.txt nd.txt nds.txt ne.txt\\r
- nl.txt nmg.txt nn.txt nnh.txt nus.txt\\r
- nyn.txt om.txt or.txt os.txt pa.txt\\r
- pa_Arab.txt pa_Guru.txt pl.txt ps.txt pt.txt\\r
- pt_AO.txt pt_CH.txt pt_CV.txt pt_GQ.txt pt_GW.txt\\r
- pt_LU.txt pt_MO.txt pt_MZ.txt pt_PT.txt pt_ST.txt\\r
- pt_TL.txt qu.txt rm.txt rn.txt ro.txt\\r
- ro_MD.txt rof.txt ru.txt rw.txt rwk.txt\\r
- sah.txt saq.txt sbp.txt se.txt seh.txt\\r
+ hr.txt hsb.txt hu.txt hy.txt ia.txt\\r
+ id.txt ig.txt ii.txt is.txt it.txt\\r
+ ja.txt jgo.txt jmc.txt jv.txt ka.txt\\r
+ kab.txt kam.txt kde.txt kea.txt khq.txt\\r
+ ki.txt kk.txt kkj.txt kl.txt kln.txt\\r
+ km.txt kn.txt ko.txt kok.txt ks.txt\\r
+ ksb.txt ksf.txt ksh.txt ku.txt kw.txt\\r
+ ky.txt lag.txt lb.txt lg.txt lkt.txt\\r
+ ln.txt lo.txt lrc.txt lt.txt lu.txt\\r
+ luo.txt luy.txt lv.txt mas.txt mer.txt\\r
+ mfe.txt mg.txt mgh.txt mgo.txt mi.txt\\r
+ mk.txt ml.txt mn.txt mr.txt ms.txt\\r
+ mt.txt mua.txt my.txt mzn.txt naq.txt\\r
+ nb.txt nd.txt nds.txt ne.txt nl.txt\\r
+ nmg.txt nn.txt nnh.txt nus.txt nyn.txt\\r
+ om.txt or.txt os.txt pa.txt pa_Arab.txt\\r
+ pa_Guru.txt pl.txt ps.txt pt.txt pt_AO.txt\\r
+ pt_CH.txt pt_CV.txt pt_GQ.txt pt_GW.txt pt_LU.txt\\r
+ pt_MO.txt pt_MZ.txt pt_PT.txt pt_ST.txt pt_TL.txt\\r
+ qu.txt rm.txt rn.txt ro.txt ro_MD.txt\\r
+ rof.txt ru.txt rw.txt rwk.txt sah.txt\\r
+ saq.txt sbp.txt sd.txt se.txt seh.txt\\r
  ses.txt sg.txt shi.txt shi_Latn.txt shi_Tfng.txt\\r
  si.txt sk.txt sl.txt smn.txt sn.txt\\r
  so.txt sq.txt sr.txt sr_Cyrl.txt sr_Latn.txt\\r
  sv.txt sv_FI.txt sw.txt ta.txt te.txt\\r
- teo.txt tg.txt th.txt ti.txt to.txt\\r
- tr.txt tt.txt twq.txt tzm.txt ug.txt\\r
- uk.txt ur.txt ur_IN.txt uz.txt uz_Arab.txt\\r
- uz_Cyrl.txt uz_Latn.txt vai.txt vai_Latn.txt vai_Vaii.txt\\r
- vi.txt vun.txt wae.txt wo.txt xog.txt\\r
yav.txt yi.txt yo.txt yue.txt yue_Hans.txt\\r
- yue_Hant.txt zgh.txt zh.txt zh_Hans.txt zh_Hans_HK.txt\\r
- zh_Hans_MO.txt zh_Hans_SG.txt zh_Hant.txt zh_Hant_HK.txt zh_Hant_MO.txt\\r
- zu.txt\r
+ teo.txt tg.txt th.txt ti.txt tk.txt\\r
+ to.txt tr.txt tt.txt twq.txt tzm.txt\\r
+ ug.txt uk.txt ur.txt ur_IN.txt uz.txt\\r
+ uz_Arab.txt uz_Cyrl.txt uz_Latn.txt vai.txt vai_Latn.txt\\r
+ vai_Vaii.txt vi.txt vun.txt wae.txt wo.txt\\r
xh.txt xog.txt yav.txt yi.txt yo.txt\\r
+ yue.txt yue_Hans.txt yue_Hant.txt zgh.txt zh.txt\\r
+ zh_Hans.txt zh_Hans_HK.txt zh_Hans_MO.txt zh_Hans_SG.txt zh_Hant.txt\\r
+ zh_Hant_HK.txt zh_Hant_MO.txt zu.txt\r
 \r
index fb5892d87c004c3071dd8a7fd7bad1063dbe4ce4..64d580d452bd520f47241f5580512ed179fbb111 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 rm{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.94"}\r
     durationUnits{\r
         hm{"h:mm"}\r
         hms{"h:mm:ss"}\r
index b1f5d4e0ad83e78fe4a089a361b871f20cca94b8..749df0d4c8c0db675bbbd3b93400d7885c0e23f3 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 ro{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.94"}\r
     durationUnits{\r
         hm{"h:mm"}\r
         hms{"h:mm:ss"}\r
@@ -143,6 +143,18 @@ ro{
                 one{"{0} parte pe milion"}\r
                 other{"{0} de părți pe milion"}\r
             }\r
+            percent{\r
+                dnam{"procent"}\r
+                few{"{0} procente"}\r
+                one{"{0} procent"}\r
+                other{"{0} de procente"}\r
+            }\r
+            permille{\r
+                dnam{"‰"}\r
+                few{"{0} la mie"}\r
+                one{"la mie"}\r
+                other{"{0} la mie"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -171,6 +183,7 @@ ro{
             }\r
         }\r
         coordinate{\r
+            dnam{"punct cardinal"}\r
             east{"{0} E"}\r
             north{"{0} N"}\r
             south{"{0} S"}\r
@@ -225,6 +238,12 @@ ro{
                 one{"{0} megabyte"}\r
                 other{"{0} de megabyți"}\r
             }\r
+            petabyte{\r
+                dnam{"petabyți"}\r
+                few{"{0} petabyți"}\r
+                one{"{0} petabyte"}\r
+                other{"{0} de petabyți"}\r
+            }\r
             terabit{\r
                 dnam{"terabiți"}\r
                 few{"{0} terabiți"}\r
@@ -631,6 +650,12 @@ ro{
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"atmosfere"}\r
+                few{"{0} atmosfere"}\r
+                one{"{0} atmosferă"}\r
+                other{"{0} de atmosfere"}\r
+            }\r
             hectopascal{\r
                 dnam{"hectopascali"}\r
                 few{"{0} hectopascali"}\r
@@ -932,6 +957,14 @@ ro{
         compound{\r
             per{"{0}/{1}"}\r
         }\r
+        concentr{\r
+            percent{\r
+                dnam{"%"}\r
+                few{"{0}%"}\r
+                one{"{0}%"}\r
+                other{"{0}%"}\r
+            }\r
+        }\r
         consumption{\r
             liter-per-100kilometers{\r
                 dnam{"l/100 km"}\r
@@ -941,6 +974,7 @@ ro{
             }\r
         }\r
         coordinate{\r
+            dnam{"direcție"}\r
             east{"{0}E"}\r
             north{"{0}N"}\r
             south{"{0}S"}\r
@@ -1464,6 +1498,18 @@ ro{
                 one{"{0} ppm"}\r
                 other{"{0} ppm"}\r
             }\r
+            percent{\r
+                dnam{"%"}\r
+                few{"{0}%"}\r
+                one{"{0}%"}\r
+                other{"{0}%"}\r
+            }\r
+            permille{\r
+                dnam{"‰"}\r
+                few{"{0}‰"}\r
+                one{"{0}‰"}\r
+                other{"{0}‰"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -1492,6 +1538,7 @@ ro{
             }\r
         }\r
         coordinate{\r
+            dnam{"direcție"}\r
             east{"{0}E"}\r
             north{"{0}N"}\r
             south{"{0}S"}\r
@@ -1546,6 +1593,12 @@ ro{
                 one{"{0} MB"}\r
                 other{"{0} MB"}\r
             }\r
+            petabyte{\r
+                dnam{"PB"}\r
+                few{"{0} PB"}\r
+                one{"{0} PB"}\r
+                other{"{0} PB"}\r
+            }\r
             terabit{\r
                 dnam{"Tb"}\r
                 few{"{0} Tb"}\r
@@ -1952,6 +2005,12 @@ ro{
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"atm"}\r
+                few{"{0} atm"}\r
+                one{"{0} atm"}\r
+                other{"{0} atm"}\r
+            }\r
             hectopascal{\r
                 dnam{"hPa"}\r
                 few{"{0} hPa"}\r
index 9bd7c7777d1277e4335b3851e2858c8bf8fe4556..4cd8a53e2e319190a2dac41198b054ab510ff329 100644 (file)
@@ -4,7 +4,7 @@
  * ICU <specials> source: <path>/common/main/root.xml\r
  */\r
 root{\r
-    Version{"2.1.41.58"}\r
+    Version{"2.1.44.91"}\r
     durationUnits{\r
         hm{"h:mm"}\r
         hms{"h:mm:ss"}\r
@@ -108,6 +108,14 @@ root{
                 dnam{"ppm"}\r
                 other{"{0} ppm"}\r
             }\r
+            percent{\r
+                dnam{"%"}\r
+                other{"{0}%"}\r
+            }\r
+            permille{\r
+                dnam{"‰"}\r
+                other{"{0}‰"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -128,6 +136,7 @@ root{
             }\r
         }\r
         coordinate{\r
+            dnam{"direction"}\r
             east{"{0}E"}\r
             north{"{0}N"}\r
             south{"{0}S"}\r
@@ -166,6 +175,10 @@ root{
                 dnam{"MB"}\r
                 other{"{0} MB"}\r
             }\r
+            petabyte{\r
+                dnam{"PB"}\r
+                other{"{0} PB"}\r
+            }\r
             terabit{\r
                 dnam{"Tb"}\r
                 other{"{0} Tb"}\r
@@ -306,7 +319,7 @@ root{
             }\r
             fathom{\r
                 dnam{"fm"}\r
-                other{"{0} fm"}\r
+                other{"{0} fth"}\r
             }\r
             foot{\r
                 dnam{"ft"}\r
@@ -460,6 +473,10 @@ root{
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"atm"}\r
+                other{"{0} atm"}\r
+            }\r
             hectopascal{\r
                 dnam{"hPa"}\r
                 other{"{0} hPa"}\r
index cf774ea8995c9f0db916b67da16b3870d1f19687..0059009308e986d5512121a4c2074f235b288499 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 ru{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.45.15"}\r
     durationUnits{\r
         hm{"h:mm"}\r
         hms{"h:mm:ss"}\r
@@ -163,6 +163,20 @@ ru{
                 one{"{0} миллионная доля"}\r
                 other{"{0} миллионной доли"}\r
             }\r
+            percent{\r
+                dnam{"проценты"}\r
+                few{"{0} процента"}\r
+                many{"{0} процентов"}\r
+                one{"{0} процент"}\r
+                other{"{0} процента"}\r
+            }\r
+            permille{\r
+                dnam{"промилле"}\r
+                few{"{0} промилле"}\r
+                many{"{0} промилле"}\r
+                one{"{0} промилле"}\r
+                other{"{0} промилле"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -195,6 +209,7 @@ ru{
             }\r
         }\r
         coordinate{\r
+            dnam{"направление"}\r
             east{"{0} восточной долготы"}\r
             north{"{0} северной широты"}\r
             south{"{0} южной широты"}\r
@@ -257,6 +272,13 @@ ru{
                 one{"{0} мегабайт"}\r
                 other{"{0} мегабайта"}\r
             }\r
+            petabyte{\r
+                dnam{"петабайты"}\r
+                few{"{0} петабайта"}\r
+                many{"{0} петабайт"}\r
+                one{"{0} петабайт"}\r
+                other{"{0} петабайта"}\r
+            }\r
             terabit{\r
                 dnam{"терабиты"}\r
                 few{"{0} терабита"}\r
@@ -746,6 +768,13 @@ ru{
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"атмосферы"}\r
+                few{"{0} атмосферы"}\r
+                many{"{0} атмосфер"}\r
+                one{"{0} атмосфера"}\r
+                other{"{0} атмосферы"}\r
+            }\r
             hectopascal{\r
                 dnam{"гектопаскали"}\r
                 few{"{0} гектопаскаля"}\r
@@ -799,7 +828,7 @@ ru{
             }\r
             meter-per-second{\r
                 dnam{"метры в секунду"}\r
-                few{"{0} Ð¼ÐµÑ\82Ñ\80а Ð² Ñ\81екÑ\83ндÑ\8bÑ\83"}\r
+                few{"{0} метра в секунду"}\r
                 many{"{0} метров в секунду"}\r
                 one{"{0} метр в секунду"}\r
                 other{"{0} метра в секунду"}\r
@@ -1096,6 +1125,15 @@ ru{
         compound{\r
             per{"{0}/{1}"}\r
         }\r
+        concentr{\r
+            percent{\r
+                dnam{"%"}\r
+                few{"{0}%"}\r
+                many{"{0}%"}\r
+                one{"{0}%"}\r
+                other{"{0}%"}\r
+            }\r
+        }\r
         consumption{\r
             liter-per-100kilometers{\r
                 dnam{"л/100 км"}\r
@@ -1106,6 +1144,7 @@ ru{
             }\r
         }\r
         coordinate{\r
+            dnam{"напр."}\r
             east{"{0} в. д."}\r
             north{"{0} с. ш."}\r
             south{"{0} ю. ш."}\r
@@ -1644,11 +1683,11 @@ ru{
                 per{"{0}/см²"}\r
             }\r
             square-foot{\r
-                dnam{"Ñ\84Ñ\83Ñ\82²"}\r
-                few{"{0} Ñ\84Ñ\83Ñ\82²"}\r
-                many{"{0} Ñ\84Ñ\83Ñ\82²"}\r
-                one{"{0} Ñ\84Ñ\83Ñ\82²"}\r
-                other{"{0} Ñ\84Ñ\83Ñ\82²"}\r
+                dnam{"фт²"}\r
+                few{"{0} фт²"}\r
+                many{"{0} фт²"}\r
+                one{"{0} фт²"}\r
+                other{"{0} фт²"}\r
             }\r
             square-inch{\r
                 dnam{"дюйм²"}\r
@@ -1722,6 +1761,20 @@ ru{
                 one{"{0} ppm"}\r
                 other{"{0} ppm"}\r
             }\r
+            percent{\r
+                dnam{"%"}\r
+                few{"{0} %"}\r
+                many{"{0} %"}\r
+                one{"{0} %"}\r
+                other{"{0} %"}\r
+            }\r
+            permille{\r
+                dnam{"‰"}\r
+                few{"{0} ‰"}\r
+                many{"{0} ‰"}\r
+                one{"{0} ‰"}\r
+                other{"{0} ‰"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -1754,6 +1807,7 @@ ru{
             }\r
         }\r
         coordinate{\r
+            dnam{"направление"}\r
             east{"{0} в. д."}\r
             north{"{0} с. ш."}\r
             south{"{0} ю. ш."}\r
@@ -1816,6 +1870,13 @@ ru{
                 one{"{0} МБ"}\r
                 other{"{0} МБ"}\r
             }\r
+            petabyte{\r
+                dnam{"ПБ"}\r
+                few{"{0} ПБ"}\r
+                many{"{0} ПБ"}\r
+                one{"{0} ПБ"}\r
+                other{"{0} ПБ"}\r
+            }\r
             terabit{\r
                 dnam{"Тбит"}\r
                 few{"{0} Тбит"}\r
@@ -1848,7 +1909,7 @@ ru{
                 per{"{0}/д"}\r
             }\r
             hour{\r
-                dnam{"ч"}\r
+                dnam{"ч."}\r
                 few{"{0} ч."}\r
                 many{"{0} ч."}\r
                 one{"{0} ч."}\r
@@ -1893,11 +1954,11 @@ ru{
                 other{"{0} нс"}\r
             }\r
             second{\r
-                dnam{"с"}\r
-                few{"{0} с."}\r
-                many{"{0} с."}\r
-                one{"{0} с."}\r
-                other{"{0} с."}\r
+                dnam{"сек."}\r
+                few{"{0} сек."}\r
+                many{"{0} сек."}\r
+                one{"{0} сек."}\r
+                other{"{0} сек."}\r
                 per{"{0}/c"}\r
             }\r
             week{\r
@@ -2305,6 +2366,13 @@ ru{
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"атм"}\r
+                few{"{0} атм"}\r
+                many{"{0} атм"}\r
+                one{"{0} атм"}\r
+                other{"{0} атм"}\r
+            }\r
             hectopascal{\r
                 dnam{"гПа"}\r
                 few{"{0} гПа"}\r
@@ -2425,11 +2493,11 @@ ru{
                 per{"{0}/см³"}\r
             }\r
             cubic-foot{\r
-                dnam{"Ñ\84Ñ\83Ñ\82³"}\r
-                few{"{0} Ñ\84Ñ\83Ñ\82³"}\r
-                many{"{0} Ñ\84Ñ\83Ñ\82³"}\r
-                one{"{0} Ñ\84Ñ\83Ñ\82³"}\r
-                other{"{0} Ñ\84Ñ\83Ñ\82³"}\r
+                dnam{"фт³"}\r
+                few{"{0} фт³"}\r
+                many{"{0} фт³"}\r
+                one{"{0} фт³"}\r
+                other{"{0} фт³"}\r
             }\r
             cubic-inch{\r
                 dnam{"дюйм³"}\r
index 3bc3de73c27a321058b42d597108bcf9b8f48b1d..990f6ec41083e8a39d6557dbcd142684c0c020b5 100644 (file)
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 rw{\r
-    Version{"2.1.38.72"}\r
+    Version{"2.1.44.88"}\r
 }\r
index 1127196036eea46e67bbff88f3bfc0f250635ab4..eb18010f4334979042fc19a48e8780c2950eb5f8 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 sah{\r
-    Version{"2.1.38.69"}\r
+    Version{"2.1.43.94"}\r
     durationUnits{\r
         hm{"h:mm"}\r
         hms{"h:mm:ss"}\r
diff --git a/source/data/unit/sd.txt b/source/data/unit/sd.txt
new file mode 100644 (file)
index 0000000..180f40e
--- /dev/null
@@ -0,0 +1,1643 @@
+// © 2016 and later: Unicode, Inc. and others.\r
+// License & terms of use: http://www.unicode.org/copyright.html#License\r
+sd{\r
+    Version{"2.1.43.94"}\r
+    durationUnits{\r
+        hm{"h:mm"}\r
+        hms{"h:mm:ss"}\r
+        ms{"m:ss"}\r
+    }\r
+    units{\r
+        acceleration{\r
+            g-force{\r
+                dnam{"ڪشش ثقل"}\r
+                one{"{0} ڪشش ثقل"}\r
+                other{"{0} ڪشش ثقل"}\r
+            }\r
+            meter-per-second-squared{\r
+                dnam{"ميٽر في سيڪنڊ اسڪوائر"}\r
+                one{"{0} m/s²"}\r
+                other{"{0} ميٽر في سيڪنڊ اسڪوائر"}\r
+            }\r
+        }\r
+        angle{\r
+            arc-minute{\r
+                dnam{"آرڪ منٽز"}\r
+                one{"{0} آرڪ منٽز"}\r
+                other{"{0} آرڪ منٽز"}\r
+            }\r
+            arc-second{\r
+                dnam{"آرڪ سيڪنڊز"}\r
+                one{"{0} آرڪ سيڪنڊز"}\r
+                other{"{0} آرڪ سيڪنڊز"}\r
+            }\r
+            degree{\r
+                dnam{"ڊگريز"}\r
+                one{"{0} ڊگريز"}\r
+                other{"{0} ڊگريز"}\r
+            }\r
+            radian{\r
+                dnam{"ريڊيئنز"}\r
+                one{"{0} ريڊيئنز"}\r
+                other{"{0} ريڊيئنز"}\r
+            }\r
+            revolution{\r
+                dnam{"گردش"}\r
+                one{"{0} گردشون"}\r
+                other{"{0} گردشون"}\r
+            }\r
+        }\r
+        area{\r
+            acre{\r
+                dnam{"ايڪڙ"}\r
+                one{"{0} ايڪڙ"}\r
+                other{"{0} ايڪڙ"}\r
+            }\r
+            hectare{\r
+                dnam{"هيڪٽر"}\r
+                one{"{0} هيڪٽر"}\r
+                other{"{0} هيڪٽر"}\r
+            }\r
+            square-centimeter{\r
+                dnam{"اسڪوائر سينٽي ميٽر"}\r
+                one{"{0} اسڪوائر سينٽي ميٽر"}\r
+                other{"{0} اسڪوائر سينٽي ميٽر"}\r
+                per{"{0} في اسڪوائر سينٽي ميٽر"}\r
+            }\r
+            square-foot{\r
+                dnam{"اسڪوائر فٽ"}\r
+                one{"{0} اسڪوائر فٽ"}\r
+                other{"{0} اسڪوائر فٽ"}\r
+            }\r
+            square-inch{\r
+                dnam{"اسڪوائر انچ"}\r
+                one{"{0} اسڪوائر انچ"}\r
+                other{"{0} اسڪوائر انچ"}\r
+                per{"{0} في اسڪوائر انچ"}\r
+            }\r
+            square-kilometer{\r
+                dnam{"اسڪوائر ڪلوميٽر"}\r
+                one{"{0} اسڪوائر ڪلوميٽر"}\r
+                other{"{0} اسڪوائر ڪلوميٽر"}\r
+                per{"{0} في اسڪوائر ڪلوميٽر"}\r
+            }\r
+            square-meter{\r
+                dnam{"اسڪوائر ميٽر"}\r
+                one{"{0} اسڪوائر ميٽر"}\r
+                other{"{0} اسڪوائر ميٽر"}\r
+                per{"{0} في اسڪوائر ميٽر"}\r
+            }\r
+            square-mile{\r
+                dnam{"اسڪوائر ميل"}\r
+                one{"{0} اسڪوائر ميل"}\r
+                other{"{0} اسڪوائر ميل"}\r
+                per{"{0} في اسڪوائر ميل"}\r
+            }\r
+            square-yard{\r
+                dnam{"اسڪوائر يارڊ"}\r
+                one{"{0} ااسڪوائر يارڊ"}\r
+                other{"{0} ااسڪوائر يارڊ"}\r
+            }\r
+        }\r
+        compound{\r
+            per{"في {1} تي {0}"}\r
+        }\r
+        concentr{\r
+            karat{\r
+                dnam{"قيراط"}\r
+                one{"{0} قيراط"}\r
+                other{"{0} قيراط"}\r
+            }\r
+            milligram-per-deciliter{\r
+                dnam{"ملي گرامز في ڊيسي ليٽر"}\r
+                one{"{0} mg/dL"}\r
+                other{"{0} ملي گرامز في ڊيسي ليٽر"}\r
+            }\r
+            millimole-per-liter{\r
+                dnam{"ملي مولز في ليٽر"}\r
+                one{"{0} ملي مولز في ليٽر"}\r
+                other{"{0} ملي مولز في ليٽر"}\r
+            }\r
+            part-per-million{\r
+                dnam{"حصا في ملين"}\r
+                one{"{0} حصا في ملين"}\r
+                other{"{0} حصا في ملين"}\r
+            }\r
+            percent{\r
+                dnam{"%"}\r
+                one{"{0}%"}\r
+                other{"{0}%"}\r
+            }\r
+            permille{\r
+                dnam{"‰"}\r
+                one{"{0}‰"}\r
+                other{"{0}‰"}\r
+            }\r
+        }\r
+        consumption{\r
+            liter-per-100kilometers{\r
+                dnam{"ليٽرز في 100 ڪلو ميٽر"}\r
+                one{"{0} L/100km"}\r
+                other{"{0} ليٽرز في 100 ڪلو ميٽر"}\r
+            }\r
+            liter-per-kilometer{\r
+                dnam{"ليٽرز في ڪلو ميٽر"}\r
+                one{"{0} ليٽرز في ڪلو ميٽر"}\r
+                other{"{0} ليٽرز في ڪلو ميٽر"}\r
+            }\r
+            mile-per-gallon{\r
+                dnam{"ميل في گيلن"}\r
+                one{"{0} ميل في گيلن"}\r
+                other{"{0} ميل في گيلن"}\r
+            }\r
+            mile-per-gallon-imperial{\r
+                dnam{"ميل في امپيريل گيلن"}\r
+                one{"{0} ميل في امپيريل گيلن"}\r
+                other{"{0} ميل في امپيريل گيلن"}\r
+            }\r
+        }\r
+        coordinate{\r
+            dnam{"ڪارڊينل ڊائريڪشن"}\r
+            east{"{0} اوڀر"}\r
+            north{"{0} اتر"}\r
+            south{"{0} ڏکڻ"}\r
+            west{"{0} اولهه"}\r
+        }\r
+        digital{\r
+            bit{\r
+                dnam{"بٽز"}\r
+                one{"{0} بٽ"}\r
+                other{"{0} بٽز"}\r
+            }\r
+            byte{\r
+                dnam{"بائيٽز"}\r
+                one{"{0} بائيٽ"}\r
+                other{"{0} بائيٽز"}\r
+            }\r
+            gigabit{\r
+                dnam{"گيگا بٽز"}\r
+                one{"{0} گيگا بٽز"}\r
+                other{"{0} گيگا بٽز"}\r
+            }\r
+            gigabyte{\r
+                dnam{"گيگا بائيٽز"}\r
+                one{"{0} گيگا بائيٽز"}\r
+                other{"{0} گيگا بائيٽز"}\r
+            }\r
+            kilobit{\r
+                dnam{"ڪلو بٽز"}\r
+                one{"{0} ڪلو بٽز"}\r
+                other{"{0} ڪلو بٽز"}\r
+            }\r
+            kilobyte{\r
+                dnam{"ڪلو بائيٽز"}\r
+                one{"{0} ڪلو بائيٽز"}\r
+                other{"{0} ڪلو بائيٽز"}\r
+            }\r
+            megabit{\r
+                dnam{"ميگا بٽز"}\r
+                one{"{0} ميگا بٽز"}\r
+                other{"{0} ميگا بٽز"}\r
+            }\r
+            megabyte{\r
+                dnam{"ميگا بائيٽز"}\r
+                one{"{0} ميگا بائيٽز"}\r
+                other{"{0} ميگا بائيٽز"}\r
+            }\r
+            petabyte{\r
+                dnam{"پيرا بائيٽس"}\r
+                one{"{0} پيرا بائيٽس"}\r
+                other{"{0} پيرا بائيٽس"}\r
+            }\r
+            terabit{\r
+                dnam{"ٽيرا بٽز"}\r
+                one{"{0} ٽيرا بٽز"}\r
+                other{"{0} ٽيرا بٽز"}\r
+            }\r
+            terabyte{\r
+                dnam{"ٽيرا بائيٽز"}\r
+                one{"{0} ٽيرا بائيٽز"}\r
+                other{"{0} ٽيرا بائيٽز"}\r
+            }\r
+        }\r
+        duration{\r
+            century{\r
+                dnam{"صديون"}\r
+                one{"{0} c"}\r
+                other{"{0} صديون"}\r
+            }\r
+            day{\r
+                dnam{"ڏينهن"}\r
+                one{"{0} ڏينهن"}\r
+                other{"{0} ڏينهن"}\r
+                per{"{0} في ڏينهن"}\r
+            }\r
+            hour{\r
+                dnam{"ڪلاڪ"}\r
+                one{"{0} ڪلاڪ"}\r
+                other{"{0} ڪلاڪ"}\r
+                per{"{0} في ڪلاڪ"}\r
+            }\r
+            microsecond{\r
+                dnam{"مائڪرو سيڪنڊ"}\r
+                one{"{0} مائڪرو سيڪنڊ"}\r
+                other{"{0} مائڪرو سيڪنڊ"}\r
+            }\r
+            millisecond{\r
+                dnam{"ملي سيڪنڊ"}\r
+                one{"{0} ملي سيڪنڊ"}\r
+                other{"{0} ملي سيڪنڊ"}\r
+            }\r
+            minute{\r
+                dnam{"منٽ"}\r
+                one{"{0} منٽ"}\r
+                other{"{0} منٽ"}\r
+                per{"{0} في منٽ"}\r
+            }\r
+            month{\r
+                dnam{"مهينا"}\r
+                one{"{0} مهينا"}\r
+                other{"{0} مهينا"}\r
+                per{"{0} في مهيني"}\r
+            }\r
+            nanosecond{\r
+                dnam{"نينو سيڪنڊ"}\r
+                one{"{0} نينو سيڪنڊ"}\r
+                other{"{0} نينو سيڪنڊ"}\r
+            }\r
+            second{\r
+                dnam{"سيڪنڊ"}\r
+                one{"{0} في سيڪنڊ"}\r
+                other{"{0} سيڪنڊ"}\r
+                per{"{0} في سيڪنڊ"}\r
+            }\r
+            week{\r
+                dnam{"هفتا"}\r
+                one{"{0} هفتا"}\r
+                other{"{0} هفتا"}\r
+                per{"{0} في هفتي"}\r
+            }\r
+            year{\r
+                dnam{"سال"}\r
+                one{"{0} سال"}\r
+                other{"{0} سال"}\r
+                per{"{0} في سال"}\r
+            }\r
+        }\r
+        electric{\r
+            ampere{\r
+                dnam{"ایمپئیر"}\r
+                one{"{0} ایمپئیر"}\r
+                other{"{0} ایمپئیر"}\r
+            }\r
+            milliampere{\r
+                dnam{"ملي ايمپئير"}\r
+                one{"{0} ملي ايمپئير"}\r
+                other{"{0} ملي ايمپئير"}\r
+            }\r
+            ohm{\r
+                dnam{"اوهمس"}\r
+                one{"{0} اوهم"}\r
+                other{"{0} اوهمس"}\r
+            }\r
+            volt{\r
+                dnam{"وولٽز"}\r
+                one{"{0} وولٽ"}\r
+                other{"{0} وولٽز"}\r
+            }\r
+        }\r
+        energy{\r
+            calorie{\r
+                dnam{"ڪيلوري"}\r
+                one{"{0} ڪيلوري"}\r
+                other{"{0} ڪيلوريز"}\r
+            }\r
+            foodcalorie{\r
+                dnam{"ڪيلوريز"}\r
+                one{"{0} ڪيلوري"}\r
+                other{"{0} ڪيلوريز"}\r
+            }\r
+            joule{\r
+                dnam{"جول"}\r
+                one{"{0} جول"}\r
+                other{"{0} جولز"}\r
+            }\r
+            kilocalorie{\r
+                dnam{"ڪلو ڪيلوريز"}\r
+                one{"{0} ڪلو ڪيلوريز"}\r
+                other{"{0} ڪلو ڪيلوريز"}\r
+            }\r
+            kilojoule{\r
+                dnam{"ڪلو جولز"}\r
+                one{"{0} ڪلو جول"}\r
+                other{"{0} ڪلو جولز"}\r
+            }\r
+            kilowatt-hour{\r
+                dnam{"ڪلو واٽ في ڪلاڪ"}\r
+                one{"{0} ڪلو واٽ في ڪلڪ"}\r
+                other{"{0} ڪلو واٽ في ڪلڪ"}\r
+            }\r
+        }\r
+        frequency{\r
+            gigahertz{\r
+                dnam{"گيگا هرٽز"}\r
+                one{"{0} گيگا هرٽز"}\r
+                other{"{0} گيگا هرٽز"}\r
+            }\r
+            hertz{\r
+                dnam{"هرٽز"}\r
+                one{"{0} هرٽز"}\r
+                other{"{0} هرٽز"}\r
+            }\r
+            kilohertz{\r
+                dnam{"ڪلو هرٽز"}\r
+                one{"{0} ڪلو هرٽز"}\r
+                other{"{0} ڪلو هرٽز"}\r
+            }\r
+            megahertz{\r
+                dnam{"ميگا هرٽز"}\r
+                one{"{0} ميگا هرٽز"}\r
+                other{"{0} ميگا هرٽز"}\r
+            }\r
+        }\r
+        length{\r
+            astronomical-unit{\r
+                dnam{"فلڪيات جا يونٽ"}\r
+                one{"{0} فلڪيات جا يونٽ"}\r
+                other{"{0} فلڪيات جا يونٽ"}\r
+            }\r
+            centimeter{\r
+                dnam{"سينٽي ميٽر"}\r
+                one{"{0} سينٽي ميٽر"}\r
+                other{"{0} سينٽي ميٽر"}\r
+                per{"{0} في سينٽي ميٽر"}\r
+            }\r
+            decimeter{\r
+                dnam{"ڊيسي ميٽر"}\r
+                one{"{0} ڊيسي ميٽر"}\r
+                other{"{0} ڊيسي ميٽر"}\r
+            }\r
+            foot{\r
+                dnam{"فوٽ"}\r
+                one{"{0} فوٽ"}\r
+                other{"{0} فوٽ"}\r
+                per{"{0} في فوٽ"}\r
+            }\r
+            inch{\r
+                dnam{"انچ"}\r
+                one{"{0} انچ"}\r
+                other{"{0} انچ"}\r
+                per{"{0} في انچ"}\r
+            }\r
+            kilometer{\r
+                dnam{"ڪلوميٽر"}\r
+                one{"{0} ڪلوميٽر"}\r
+                other{"{0} ڪلوميٽر"}\r
+                per{"{0} في ڪلوميٽر"}\r
+            }\r
+            light-year{\r
+                dnam{"لائيٽ ايئرس"}\r
+                one{"{0} لائيٽ ايئرس"}\r
+                other{"{0} لائيٽ ايئرس"}\r
+            }\r
+            meter{\r
+                dnam{"ميٽر"}\r
+                one{"{0} ميٽر"}\r
+                other{"{0} ميٽر"}\r
+                per{"{0} في ميٽر"}\r
+            }\r
+            micrometer{\r
+                dnam{"مائڪرو ميٽر"}\r
+                one{"{0} مائڪرو ميٽر"}\r
+                other{"{0} مائڪرو ميٽر"}\r
+            }\r
+            mile{\r
+                dnam{"ميل"}\r
+                one{"{0} ميل"}\r
+                other{"{0} ميل"}\r
+            }\r
+            mile-scandinavian{\r
+                dnam{"اسڪینڊي نیویائي ميل"}\r
+                one{"{0} اسڪینڊي نیویائي ميل"}\r
+                other{"{0} اسڪینڊي نیویائي ميل"}\r
+            }\r
+            millimeter{\r
+                dnam{"ملي ميٽر"}\r
+                one{"{0} ملي ميٽر"}\r
+                other{"{0} ملي ميٽر"}\r
+            }\r
+            nanometer{\r
+                dnam{"نينو ميٽر"}\r
+                one{"{0} نينو ميٽر"}\r
+                other{"{0} نينو ميٽر"}\r
+            }\r
+            nautical-mile{\r
+                dnam{"سمندري ميل"}\r
+                one{"{0} سمندري ميل"}\r
+                other{"{0} سمندري ميل"}\r
+            }\r
+            parsec{\r
+                dnam{"پارسيڪ"}\r
+                one{"{0} pc"}\r
+                other{"{0} پارسيڪ"}\r
+            }\r
+            picometer{\r
+                dnam{"پيڪو ميٽر"}\r
+                one{"{0} پيڪو ميٽر"}\r
+                other{"{0} پيڪو ميٽر"}\r
+            }\r
+            point{\r
+                dnam{"پوائينٽون"}\r
+                one{"{0} پوائينٽون"}\r
+                other{"{0} پوائينٽون"}\r
+            }\r
+            yard{\r
+                dnam{"گز"}\r
+                one{"{0} گز"}\r
+                other{"{0} گز"}\r
+            }\r
+        }\r
+        light{\r
+            lux{\r
+                dnam{"لڪس"}\r
+                one{"{0} لڪس"}\r
+                other{"{0} لڪس"}\r
+            }\r
+        }\r
+        mass{\r
+            carat{\r
+                dnam{"ڪيرٽ"}\r
+                one{"{0} ڪيرٽ"}\r
+                other{"{0} ڪيرٽ"}\r
+            }\r
+            gram{\r
+                dnam{"گرامَ"}\r
+                one{"{0} گرام"}\r
+                other{"{0} گرامَ"}\r
+                per{"{0} في گرام"}\r
+            }\r
+            kilogram{\r
+                dnam{"ڪلوگرامَ"}\r
+                one{"{0} ڪلوگرام"}\r
+                other{"{0}ڪلوگرامَ"}\r
+                per{"{0} في ڪلوگرام"}\r
+            }\r
+            metric-ton{\r
+                dnam{"ميٽرڪ ٽَنَ"}\r
+                one{"{0} ميٽرڪ ٽَنُ"}\r
+                other{"{0} ميٽرڪ ٽَنَ"}\r
+            }\r
+            microgram{\r
+                dnam{"مائڪروگرامَ"}\r
+                one{"{0} مائڪروگرام"}\r
+                other{"{0} مائڪرو گرام"}\r
+            }\r
+            milligram{\r
+                dnam{"ملي گرامَ"}\r
+                one{"{0} ملي گرام"}\r
+                other{"{0} ملي گرامَ"}\r
+            }\r
+            ounce{\r
+                dnam{"اونس"}\r
+                one{"{0} اونس"}\r
+                other{"{0} اونس"}\r
+                per{"{0} في اونس"}\r
+            }\r
+            ounce-troy{\r
+                dnam{"ٽرائي اونس"}\r
+                one{"{0} ٽرائي اونس"}\r
+                other{"{0} ٽرائي اونس"}\r
+            }\r
+            pound{\r
+                dnam{"پائونڊ"}\r
+                one{"{0} پائونڊ"}\r
+                other{"{0} پائونڊ"}\r
+                per{"{0} في پائونڊ"}\r
+            }\r
+            ton{\r
+                dnam{"ٽن"}\r
+                one{"{0} ٽن"}\r
+                other{"{0} ٽن"}\r
+            }\r
+        }\r
+        power{\r
+            gigawatt{\r
+                dnam{"گيگا واٽ"}\r
+                one{"{0} گيگا واٽ"}\r
+                other{"{0} گيگا واٽز"}\r
+            }\r
+            horsepower{\r
+                dnam{"هارس پاور"}\r
+                one{"{0} هارس پاور"}\r
+                other{"{0} هارس پاور"}\r
+            }\r
+            kilowatt{\r
+                dnam{"ڪلو واٽز"}\r
+                one{"{0} ڪلو واٽ"}\r
+                other{"{0} ڪلو واٽز"}\r
+            }\r
+            megawatt{\r
+                dnam{"ميگا واٽز"}\r
+                one{"{0} ميگا واٽ"}\r
+                other{"{0} ميگا واٽز"}\r
+            }\r
+            milliwatt{\r
+                dnam{"ملي واٽز"}\r
+                one{"{0} ملي واٽ"}\r
+                other{"{0} ملي واٽز"}\r
+            }\r
+            watt{\r
+                dnam{"واٽز"}\r
+                one{"{0} واٽ"}\r
+                other{"{0} واٽز"}\r
+            }\r
+        }\r
+        pressure{\r
+            atmosphere{\r
+                dnam{"ايٽماس فيئر"}\r
+                one{"{0} ايٽماس فيئر"}\r
+                other{"{0} ايٽماس فيئر"}\r
+            }\r
+            hectopascal{\r
+                dnam{"هيڪٽوپاسڪلز"}\r
+                one{"{0} هيڪٽوپاسڪلز"}\r
+                other{"{0} هيڪٽوپاسڪلز"}\r
+            }\r
+            inch-hg{\r
+                dnam{"مرڪري جا انچز"}\r
+                one{"مرڪري جا {0} انچز"}\r
+                other{"مرڪري جا {0} انچز"}\r
+            }\r
+            millibar{\r
+                dnam{"ملي بارز"}\r
+                one{"{0} ملي بارز"}\r
+                other{"{0} ملي بارز"}\r
+            }\r
+            millimeter-of-mercury{\r
+                dnam{"مرڪري جو ملي ميٽر"}\r
+                one{"مرڪري جو {0} ملي ميٽر"}\r
+                other{"مرڪري جو {0} ملي ميٽر"}\r
+            }\r
+            pound-per-square-inch{\r
+                dnam{"پائونڊز في اسڪوائر انچ"}\r
+                one{"{0} psi"}\r
+                other{"{0} پائونڊز في اسڪوائر انچ"}\r
+            }\r
+        }\r
+        speed{\r
+            kilometer-per-hour{\r
+                dnam{"ڪلوميٽر في ڪلاڪ"}\r
+                one{"{0} ڪلوميٽر في ڪلاڪ"}\r
+                other{"{0} ڪلوميٽر في ڪلاڪ"}\r
+            }\r
+            knot{\r
+                dnam{"ناٽ"}\r
+                one{"{0} ناٽ"}\r
+                other{"{0} ناٽ"}\r
+            }\r
+            meter-per-second{\r
+                dnam{"ميٽر في سيڪنڊ"}\r
+                one{"{0} ميٽر في سيڪنڊ"}\r
+                other{"{0} ميٽر في سيڪنڊ"}\r
+            }\r
+            mile-per-hour{\r
+                dnam{"ميل في ڪلاڪ"}\r
+                one{"{0} ميل في ڪلاڪ"}\r
+                other{"{0} ميل في ڪلاڪ"}\r
+            }\r
+        }\r
+        temperature{\r
+            celsius{\r
+                dnam{"ڊگري سيلسيس"}\r
+                one{"{0} ڊگري سيلسيس"}\r
+                other{"{0} ڊگري سيلسيس"}\r
+            }\r
+            fahrenheit{\r
+                dnam{"ڊگريز فارن هائيٽ"}\r
+                one{"{0} ڊگريز فارن هائيٽ"}\r
+                other{"{0} ڊگريز فارن هائيٽ"}\r
+            }\r
+            generic{\r
+                dnam{"ڊگري"}\r
+                one{"{0} ڊگري"}\r
+                other{"{0} ڊگري"}\r
+            }\r
+            kelvin{\r
+                dnam{"ڪيلونز"}\r
+                one{"{0} ڪيلونز"}\r
+                other{"{0} ڪيلونز"}\r
+            }\r
+        }\r
+        volume{\r
+            acre-foot{\r
+                dnam{"ايڪڙ فٽ"}\r
+                one{"{0} ايڪڙ فٽ"}\r
+                other{"{0} ايڪڙ فٽ"}\r
+            }\r
+            centiliter{\r
+                dnam{"سينٽي ليٽر"}\r
+                one{"{0} سينٽي ليٽر"}\r
+                other{"{0} سينٽي ليٽر"}\r
+            }\r
+            cubic-centimeter{\r
+                dnam{"ڪيوبڪ سينٽي ميٽر"}\r
+                one{"{0} ڪيوبڪ سينٽي ميٽر"}\r
+                other{"{0} ڪيوبڪ سينٽي ميٽر"}\r
+                per{"{0} في ڪيوبڪ سينٽي ميٽر"}\r
+            }\r
+            cubic-foot{\r
+                dnam{"ڪيوبڪ فٽ"}\r
+                one{"{0} ڪيوبڪ فٽ"}\r
+                other{"{0} ڪيوبڪ فٽ"}\r
+            }\r
+            cubic-inch{\r
+                dnam{"ڪيوبڪ انچ"}\r
+                one{"{0} ڪيوبڪ انچ"}\r
+                other{"{0} ڪيوبڪ انچ"}\r
+            }\r
+            cubic-kilometer{\r
+                dnam{"ڪيوبڪ ڪلوميٽر"}\r
+                one{"{0} ڪيوبڪ ڪلوميٽر"}\r
+                other{"{0} ڪيوبڪ ڪلوميٽر"}\r
+            }\r
+            cubic-meter{\r
+                dnam{"ڪيوبڪ ميٽر"}\r
+                one{"{0} ڪيوبڪ ميٽر"}\r
+                other{"{0} ڪيوبڪ ميٽر"}\r
+                per{"{0} في ڪيوبڪ ميٽر"}\r
+            }\r
+            cubic-mile{\r
+                dnam{"ڪيوبڪ ميل"}\r
+                one{"{0} ڪيوبڪ ميل"}\r
+                other{"{0} ڪيوبڪ ميل"}\r
+            }\r
+            cubic-yard{\r
+                dnam{"ڪيوبڪ يارڊ"}\r
+                one{"{0} ڪيوبڪ يارڊ"}\r
+                other{"{0} ڪيوبڪ يارڊ"}\r
+            }\r
+            cup{\r
+                dnam{"ڪپ ماپو"}\r
+                one{"{0} ڪپ ماپو"}\r
+                other{"{0} ڪپ ماپو"}\r
+            }\r
+            cup-metric{\r
+                dnam{"ميٽرڪ ڪپ"}\r
+                one{"{0} ميٽرڪ ڪپ"}\r
+                other{"{0} ميٽرڪ ڪپ"}\r
+            }\r
+            deciliter{\r
+                dnam{"ڊيسي ليٽر"}\r
+                one{"{0} ڊيسي ليٽر"}\r
+                other{"{0} ڊيسي ليٽر"}\r
+            }\r
+            fluid-ounce{\r
+                dnam{"پاڻياٺ اونس"}\r
+                one{"{0} پاڻياٺ اونس"}\r
+                other{"{0} پاڻياٺ اونس"}\r
+            }\r
+            gallon{\r
+                dnam{"گيلن"}\r
+                one{"{0} گيلن"}\r
+                other{"{0} گيلن"}\r
+                per{"{0} في گيلن"}\r
+            }\r
+            gallon-imperial{\r
+                dnam{"امپيريل گيلن"}\r
+                one{"{0} امپيريل گيلن"}\r
+                other{"{0} امپيريل گيلن"}\r
+                per{"{0} في امپيريل گيلن"}\r
+            }\r
+            hectoliter{\r
+                dnam{"هيڪٽو ليٽر"}\r
+                one{"{0} هيڪٽو ليٽر"}\r
+                other{"{0} هيڪٽو ليٽر"}\r
+            }\r
+            liter{\r
+                dnam{"ليٽر"}\r
+                one{"{0} ليٽر"}\r
+                other{"{0} ليٽر"}\r
+                per{"{0} في ليٽر"}\r
+            }\r
+            megaliter{\r
+                dnam{"ميگا ليٽر"}\r
+                one{"{0} ميگا ليٽر"}\r
+                other{"{0} ميگا ليٽر"}\r
+            }\r
+            milliliter{\r
+                dnam{"ملي ليٽر"}\r
+                one{"{0} ملي ليٽر"}\r
+                other{"{0} ملي ليٽر"}\r
+            }\r
+            pint{\r
+                dnam{"پنٽ"}\r
+                one{"{0} پنٽ"}\r
+                other{"{0} پنٽ"}\r
+            }\r
+            pint-metric{\r
+                dnam{"ميٽرڪ پنٽ"}\r
+                one{"{0} ميٽرڪ پنٽ"}\r
+                other{"{0} ميٽرڪ پنٽ"}\r
+            }\r
+            quart{\r
+                dnam{"چوٿائي گيلن"}\r
+                one{"{0} چوٿائي گيلن"}\r
+                other{"{0} چوٿائي گيلن"}\r
+            }\r
+            tablespoon{\r
+                dnam{"کاڌي جا چمچا"}\r
+                one{"{0} کاڌي جا چمچا"}\r
+                other{"{0} کاڌي جا چمچا"}\r
+            }\r
+            teaspoon{\r
+                dnam{"چانهن جا چمچا"}\r
+                one{"{0} چانهن جا چمچا"}\r
+                other{"{0} چانهن جا چمچا"}\r
+            }\r
+        }\r
+    }\r
+    unitsNarrow{\r
+        compound{\r
+            per{"{0}/{1}"}\r
+        }\r
+        concentr{\r
+            percent{\r
+                dnam{"%"}\r
+                one{"{0}%"}\r
+                other{"{0}%"}\r
+            }\r
+        }\r
+        consumption{\r
+            liter-per-100kilometers{\r
+                dnam{"L/100km"}\r
+                one{"{0} L/100km"}\r
+                other{"{0} L/100km"}\r
+            }\r
+        }\r
+        coordinate{\r
+            dnam{"ڊائريڪشن"}\r
+            east{"{0} اوڀر"}\r
+            north{"{0} اتر"}\r
+            south{"{0} ڏکڻ"}\r
+            west{"{0} اولهه"}\r
+        }\r
+        duration{\r
+            day{\r
+                dnam{"ڏينهن"}\r
+                one{"{0} ڏينهن"}\r
+                other{"{0} ڏينهن"}\r
+            }\r
+            hour{\r
+                dnam{"ڪلاڪ"}\r
+                one{"{0} ڪلاڪ"}\r
+                other{"{0} ڪلاڪ"}\r
+            }\r
+            millisecond{\r
+                dnam{"ملي سيڪنڊ"}\r
+                one{"{0} ms"}\r
+                other{"{0} ms"}\r
+            }\r
+            minute{\r
+                dnam{"منٽ"}\r
+                one{"{0} منٽ"}\r
+                other{"{0} منٽ"}\r
+            }\r
+            month{\r
+                dnam{"مهينو"}\r
+                one{"{0} مهينا"}\r
+                other{"{0} مهينا"}\r
+            }\r
+            second{\r
+                dnam{"سيڪنڊ"}\r
+                one{"{0} s"}\r
+                other{"{0} سيڪنڊ"}\r
+            }\r
+            week{\r
+                dnam{"هفتو"}\r
+                one{"{0} هفتا"}\r
+                other{"{0} هفتي"}\r
+            }\r
+            year{\r
+                dnam{"سال"}\r
+                one{"{0} سال"}\r
+                other{"{0} سال"}\r
+            }\r
+        }\r
+        length{\r
+            centimeter{\r
+                dnam{"سينٽي ميٽر"}\r
+                one{"{0} cm"}\r
+                other{"{0} cm"}\r
+            }\r
+            kilometer{\r
+                dnam{"ڪلوميٽر"}\r
+                one{"{0} ڪلوميٽر"}\r
+                other{"{0} ڪلوميٽر"}\r
+            }\r
+            meter{\r
+                dnam{"ميٽر"}\r
+                one{"{0} ميٽر"}\r
+                other{"{0} ميٽر"}\r
+            }\r
+            millimeter{\r
+                dnam{"ملي ميٽر"}\r
+                one{"{0} ملي ميٽر"}\r
+                other{"{0} ملي ميٽر"}\r
+            }\r
+        }\r
+        mass{\r
+            gram{\r
+                dnam{"گرام"}\r
+                one{"{0}گـ."}\r
+                other{"{0}گـ."}\r
+                per{"{0}/گـ."}\r
+            }\r
+            kilogram{\r
+                dnam{"ڪ.گـ."}\r
+                one{"{0}ڪ.گـ."}\r
+                other{"{0}ڪ.گـ."}\r
+                per{"{0}/ڪ.گـ."}\r
+            }\r
+            metric-ton{\r
+                dnam{"ٽَـ"}\r
+                one{"{0}ٽَـ"}\r
+                other{"{0}ٽَـ"}\r
+            }\r
+            milligram{\r
+                dnam{"مـ.گـ."}\r
+                one{"{0}مـ.گـ."}\r
+                other{"{0}مـ.گـ."}\r
+            }\r
+        }\r
+        speed{\r
+            kilometer-per-hour{\r
+                dnam{"ڪلوميٽر في ڪلاڪ"}\r
+                one{"{0} km/h"}\r
+                other{"{0} km/h"}\r
+            }\r
+        }\r
+        temperature{\r
+            celsius{\r
+                dnam{"ڊگري سيلسيس"}\r
+                one{"{0}°C"}\r
+                other{"{0}°C"}\r
+            }\r
+        }\r
+        volume{\r
+            liter{\r
+                dnam{"ليٽر"}\r
+                one{"{0} ليٽر"}\r
+                other{"{0} ليٽر"}\r
+            }\r
+        }\r
+    }\r
+    unitsShort{\r
+        acceleration{\r
+            g-force{\r
+                dnam{"ڪشش ثقل"}\r
+                one{"{0} ڪشش ثقل"}\r
+                other{"{0} ڪشش ثقل"}\r
+            }\r
+            meter-per-second-squared{\r
+                dnam{"ميٽر في سيڪنڊ اسڪوائر"}\r
+                one{"{0} m/s²"}\r
+                other{"{0} m/s²"}\r
+            }\r
+        }\r
+        angle{\r
+            arc-minute{\r
+                dnam{"آرڪ منٽز"}\r
+                one{"{0} آرڪ منٽز"}\r
+                other{"{0} آرڪ منٽز"}\r
+            }\r
+            arc-second{\r
+                dnam{"آرڪ سيڪنڊز"}\r
+                one{"{0} آرڪ سيڪنڊز"}\r
+                other{"{0} آرڪ سيڪنڊز"}\r
+            }\r
+            degree{\r
+                dnam{"ڊگري"}\r
+                one{"{0} ڊگريز"}\r
+                other{"{0} ڊگريز"}\r
+            }\r
+            radian{\r
+                dnam{"ريڊيئن"}\r
+                one{"{0} ريڊيئنز"}\r
+                other{"{0} ريڊيئنز"}\r
+            }\r
+            revolution{\r
+                dnam{"گردش"}\r
+                one{"{0} گردشون"}\r
+                other{"{0} گردشون"}\r
+            }\r
+        }\r
+        area{\r
+            acre{\r
+                dnam{"ايڪڙ"}\r
+                one{"{0} ايڪڙ"}\r
+                other{"{0} ايڪڙ"}\r
+            }\r
+            hectare{\r
+                dnam{"هيڪٽر"}\r
+                one{"{0} هيڪٽر"}\r
+                other{"{0} هيڪٽر"}\r
+            }\r
+            square-centimeter{\r
+                dnam{"اسڪوائر سينٽي ميٽر"}\r
+                one{"{0} اسڪوائر سينٽي ميٽر"}\r
+                other{"{0} اسڪوائر سينٽي ميٽر"}\r
+                per{"{0} في اسڪوائر سينٽي ميٽر"}\r
+            }\r
+            square-foot{\r
+                dnam{"اسڪوائر فٽ"}\r
+                one{"{0} اسڪوائر فٽ"}\r
+                other{"{0} اسڪوائر فٽ"}\r
+            }\r
+            square-inch{\r
+                dnam{"اسڪوائر انچ"}\r
+                one{"{0} اسڪوائر انچ"}\r
+                other{"{0} اسڪوائر انچ"}\r
+                per{"{0} في اسڪوائر انچ"}\r
+            }\r
+            square-kilometer{\r
+                dnam{"اسڪوائر ڪلوميٽر"}\r
+                one{"{0} اسڪوائر ڪلوميٽر"}\r
+                other{"{0} اسڪوائر ڪلوميٽر"}\r
+                per{"{0} اسڪوائر ڪلوميٽر"}\r
+            }\r
+            square-meter{\r
+                dnam{"اسڪوائر ميٽر"}\r
+                one{"{0} اسڪوائر ميٽر"}\r
+                other{"{0} اسڪوائر ميٽر"}\r
+                per{"{0} في اسڪوائر ميٽر"}\r
+            }\r
+            square-mile{\r
+                dnam{"اسڪوائر ميل"}\r
+                one{"{0} اسڪوائر ميل"}\r
+                other{"{0} اسڪوائر ميل"}\r
+                per{"{0} في اسڪوائر ميل"}\r
+            }\r
+            square-yard{\r
+                dnam{"اسڪوائر يارڊ"}\r
+                one{"{0} ااسڪوائر يارڊ"}\r
+                other{"{0} ااسڪوائر يارڊ"}\r
+            }\r
+        }\r
+        compound{\r
+            per{"{0}/{1}"}\r
+        }\r
+        concentr{\r
+            karat{\r
+                dnam{"قيراط"}\r
+                one{"{0} قيراط"}\r
+                other{"{0} قيراط"}\r
+            }\r
+            milligram-per-deciliter{\r
+                dnam{"ملي گرامز في ڊيسي ليٽر"}\r
+                one{"{0} mg/dL"}\r
+                other{"{0} mg/dL"}\r
+            }\r
+            millimole-per-liter{\r
+                dnam{"ملي مولز في ليٽر"}\r
+                one{"{0} ملي مولز في ليٽر"}\r
+                other{"{0} ملي مولز في ليٽر"}\r
+            }\r
+            part-per-million{\r
+                dnam{"حصا في ملين"}\r
+                one{"{0} حصا في ملين"}\r
+                other{"{0} حصا في ملين"}\r
+            }\r
+            percent{\r
+                dnam{"%"}\r
+                one{"{0}%"}\r
+                other{"{0}%"}\r
+            }\r
+            permille{\r
+                dnam{"‰"}\r
+                one{"{0}‰"}\r
+                other{"{0}‰"}\r
+            }\r
+        }\r
+        consumption{\r
+            liter-per-100kilometers{\r
+                dnam{"L/100km"}\r
+                one{"{0} L/100km"}\r
+                other{"{0} L/100km"}\r
+            }\r
+            liter-per-kilometer{\r
+                dnam{"ليٽرز في ڪلو ميٽر"}\r
+                one{"{0} L/km"}\r
+                other{"{0} L/km"}\r
+            }\r
+            mile-per-gallon{\r
+                dnam{"ميل في گيلن"}\r
+                one{"{0} ميل في گيلن"}\r
+                other{"{0} ميل في گيلن"}\r
+            }\r
+            mile-per-gallon-imperial{\r
+                dnam{"ميل في امپيريل گيلن"}\r
+                one{"{0} ميل في امپيريل گيلن"}\r
+                other{"{0} ميل في امپيريل گيلن"}\r
+            }\r
+        }\r
+        coordinate{\r
+            dnam{"ڊائريڪشن"}\r
+            east{"{0} اوڀر"}\r
+            north{"{0} اتر"}\r
+            south{"{0} ڏکڻ"}\r
+            west{"{0} اولهه"}\r
+        }\r
+        digital{\r
+            bit{\r
+                dnam{"بٽ"}\r
+                one{"{0} بٽ"}\r
+                other{"{0} بٽ"}\r
+            }\r
+            byte{\r
+                dnam{"بائيٽ"}\r
+                one{"{0} بائيٽ"}\r
+                other{"{0} بائيٽ"}\r
+            }\r
+            gigabit{\r
+                dnam{"گيگا بٽ"}\r
+                one{"{0} گيگا بٽز"}\r
+                other{"{0} گيگا بٽز"}\r
+            }\r
+            gigabyte{\r
+                dnam{"گيگا بائيٽ"}\r
+                one{"{0} گيگا بائيٽز"}\r
+                other{"{0} گيگا بائيٽز"}\r
+            }\r
+            kilobit{\r
+                dnam{"ڪلو بٽ"}\r
+                one{"{0} ڪلو بٽز"}\r
+                other{"{0} ڪلو بٽز"}\r
+            }\r
+            kilobyte{\r
+                dnam{"ڪلو بائيٽ"}\r
+                one{"{0} ڪلو بائيٽز"}\r
+                other{"{0} ڪلو بائيٽز"}\r
+            }\r
+            megabit{\r
+                dnam{"ميگا بٽ"}\r
+                one{"{0} ميگا بٽز"}\r
+                other{"{0} ميگا بٽز"}\r
+            }\r
+            megabyte{\r
+                dnam{"ميگا بائيٽ"}\r
+                one{"{0} ميگا بائيٽز"}\r
+                other{"{0} ميگا بائيٽز"}\r
+            }\r
+            petabyte{\r
+                dnam{"پيرا بائيٽس"}\r
+                one{"{0} پيرا بائيٽس"}\r
+                other{"{0} پيرا بائيٽس"}\r
+            }\r
+            terabit{\r
+                dnam{"ٽيرا بٽز"}\r
+                one{"{0} ٽيرا بٽز"}\r
+                other{"{0} ٽيرا بٽز"}\r
+            }\r
+            terabyte{\r
+                dnam{"ٽيرا بائيٽز"}\r
+                one{"{0} ٽيرا بائيٽز"}\r
+                other{"{0} ٽيرا بائيٽز"}\r
+            }\r
+        }\r
+        duration{\r
+            century{\r
+                dnam{"c"}\r
+                one{"{0} c"}\r
+                other{"{0} c"}\r
+            }\r
+            day{\r
+                dnam{"ڏينهن"}\r
+                one{"{0} ڏينهن"}\r
+                other{"{0} ڏينهن"}\r
+                per{"{0} في ڏينهن"}\r
+            }\r
+            hour{\r
+                dnam{"ڪلاڪ"}\r
+                one{"{0} ڪلاڪ"}\r
+                other{"{0} ڪلاڪ"}\r
+                per{"{0} في ڪلاڪ"}\r
+            }\r
+            microsecond{\r
+                dnam{"مائڪرو سيڪنڊ"}\r
+                one{"{0} مائڪرو سيڪنڊ"}\r
+                other{"{0} مائڪرو سيڪنڊ"}\r
+            }\r
+            millisecond{\r
+                dnam{"ملي سيڪنڊ"}\r
+                one{"{0} ملي سيڪنڊ"}\r
+                other{"{0} ملي سيڪنڊ"}\r
+            }\r
+            minute{\r
+                dnam{"منٽ"}\r
+                one{"{0} منٽ"}\r
+                other{"{0} منٽ"}\r
+                per{"{0} في منٽ"}\r
+            }\r
+            month{\r
+                dnam{"مهينا"}\r
+                one{"{0} مهينا"}\r
+                other{"{0} مهينا"}\r
+                per{"{0} في مهيني"}\r
+            }\r
+            nanosecond{\r
+                dnam{"نينو سيڪنڊ"}\r
+                one{"{0} نينو سيڪنڊ"}\r
+                other{"{0} نينو سيڪنڊ"}\r
+            }\r
+            second{\r
+                dnam{"سيڪنڊ"}\r
+                one{"{0} في سيڪنڊ"}\r
+                other{"{0} في سيڪنڊ"}\r
+                per{"{0} في سيڪنڊ"}\r
+            }\r
+            week{\r
+                dnam{"هفتا"}\r
+                one{"{0} هفتا"}\r
+                other{"{0} هفتا"}\r
+                per{"{0} في هفتي"}\r
+            }\r
+            year{\r
+                dnam{"سال"}\r
+                one{"{0} سال"}\r
+                other{"{0} سال"}\r
+                per{"{0} في سال"}\r
+            }\r
+        }\r
+        electric{\r
+            ampere{\r
+                dnam{"ایمپئیر"}\r
+                one{"{0} ایمپئیر"}\r
+                other{"{0} ایمپئیر"}\r
+            }\r
+            milliampere{\r
+                dnam{"ملي ايمپئير"}\r
+                one{"{0} ملي ايمپئير"}\r
+                other{"{0} ملي ايمپئير"}\r
+            }\r
+            ohm{\r
+                dnam{"اوهمس"}\r
+                one{"{0} Ω"}\r
+                other{"{0} Ω"}\r
+            }\r
+            volt{\r
+                dnam{"وولٽ"}\r
+                one{"{0} وولٽ"}\r
+                other{"{0} وولٽ"}\r
+            }\r
+        }\r
+        energy{\r
+            calorie{\r
+                dnam{"ڪيلوري"}\r
+                one{"{0} ڪيلوري"}\r
+                other{"{0} ڪيلوري"}\r
+            }\r
+            foodcalorie{\r
+                dnam{"ڪيلوري"}\r
+                one{"{0} ڪيلوري"}\r
+                other{"{0} ڪيلوري"}\r
+            }\r
+            joule{\r
+                dnam{"جول"}\r
+                one{"{0} جول"}\r
+                other{"{0} جول"}\r
+            }\r
+            kilocalorie{\r
+                dnam{"ڪلو ڪيلوريز"}\r
+                one{"{0} ڪلو ڪيلوريز"}\r
+                other{"{0} ڪلو ڪيلوريز"}\r
+            }\r
+            kilojoule{\r
+                dnam{"ڪلو جول"}\r
+                one{"{0} ڪلو جول"}\r
+                other{"{0} ڪلو جول"}\r
+            }\r
+            kilowatt-hour{\r
+                dnam{"ڪلو واٽ في ڪلاڪ"}\r
+                one{"{0} ڪلو واٽ في ڪلڪ"}\r
+                other{"{0} ڪلو واٽ في ڪلڪ"}\r
+            }\r
+        }\r
+        frequency{\r
+            gigahertz{\r
+                dnam{"گيگا هرٽز"}\r
+                one{"{0} گيگا هرٽز"}\r
+                other{"{0} گيگا هرٽز"}\r
+            }\r
+            hertz{\r
+                dnam{"هرٽز"}\r
+                one{"{0} هرٽز"}\r
+                other{"{0} هرٽز"}\r
+            }\r
+            kilohertz{\r
+                dnam{"ڪلو هرٽز"}\r
+                one{"{0} ڪلو هرٽز"}\r
+                other{"{0} ڪلو هرٽز"}\r
+            }\r
+            megahertz{\r
+                dnam{"ميگا هرٽز"}\r
+                one{"{0} ميگا هرٽز"}\r
+                other{"{0} ميگا هرٽز"}\r
+            }\r
+        }\r
+        length{\r
+            astronomical-unit{\r
+                dnam{"فلڪيات جا يونٽ"}\r
+                one{"{0} فلڪيات جا يونٽ"}\r
+                other{"{0} فلڪيات جا يونٽ"}\r
+            }\r
+            centimeter{\r
+                dnam{"سينٽي ميٽر"}\r
+                one{"{0} سينٽي ميٽر"}\r
+                other{"{0} سينٽي ميٽر"}\r
+                per{"{0} في سينٽي ميٽر"}\r
+            }\r
+            decimeter{\r
+                dnam{"ڊيسي ميٽر"}\r
+                one{"{0} ڊيسي ميٽر"}\r
+                other{"{0} ڊيسي ميٽر"}\r
+            }\r
+            foot{\r
+                dnam{"فوٽ"}\r
+                one{"{0} فوٽ"}\r
+                other{"{0} فوٽ"}\r
+                per{"{0} في فوٽ"}\r
+            }\r
+            inch{\r
+                dnam{"انچ"}\r
+                one{"{0} انچ"}\r
+                other{"{0} انچ"}\r
+                per{"{0} في انچ"}\r
+            }\r
+            kilometer{\r
+                dnam{"ڪلوميٽر"}\r
+                one{"{0} ڪلوميٽر"}\r
+                other{"{0} ڪلوميٽر"}\r
+                per{"{0} في ڪلوميٽر"}\r
+            }\r
+            light-year{\r
+                dnam{"لائيٽ ايئرس"}\r
+                one{"{0} لائيٽ ايئرس"}\r
+                other{"{0} لائيٽ ايئرس"}\r
+            }\r
+            meter{\r
+                dnam{"ميٽر"}\r
+                one{"{0} ميٽر"}\r
+                other{"{0} ميٽر"}\r
+                per{"{0} في ميٽر"}\r
+            }\r
+            micrometer{\r
+                dnam{"مائڪرو ميٽر"}\r
+                one{"{0} مائڪرو ميٽر"}\r
+                other{"{0} مائڪرو ميٽر"}\r
+            }\r
+            mile{\r
+                dnam{"ميل"}\r
+                one{"{0} ميل"}\r
+                other{"{0} ميل"}\r
+            }\r
+            mile-scandinavian{\r
+                dnam{"اسڪینڊي نیویائي ميل"}\r
+                one{"{0} اسڪینڊي نیویائي ميل"}\r
+                other{"{0} اسڪینڊي نیویائي ميل"}\r
+            }\r
+            millimeter{\r
+                dnam{"ملي ميٽر"}\r
+                one{"{0} ملي ميٽر"}\r
+                other{"{0} ملي ميٽر"}\r
+            }\r
+            nanometer{\r
+                dnam{"نينو ميٽر"}\r
+                one{"{0} نينو ميٽر"}\r
+                other{"{0} نينو ميٽر"}\r
+            }\r
+            nautical-mile{\r
+                dnam{"سمندري ميل"}\r
+                one{"{0} سمندري ميل"}\r
+                other{"{0} سمندري ميل"}\r
+            }\r
+            parsec{\r
+                dnam{"پارسيڪ"}\r
+                one{"{0} pc"}\r
+                other{"{0} pc"}\r
+            }\r
+            picometer{\r
+                dnam{"پيڪو ميٽر"}\r
+                one{"{0} پيڪو ميٽر"}\r
+                other{"{0} پيڪو ميٽر"}\r
+            }\r
+            point{\r
+                dnam{"پوائينٽون"}\r
+                one{"{0} پوائينٽون"}\r
+                other{"{0} پوائينٽون"}\r
+            }\r
+            yard{\r
+                dnam{"گز"}\r
+                one{"{0} گز"}\r
+                other{"{0} گز"}\r
+            }\r
+        }\r
+        light{\r
+            lux{\r
+                dnam{"لڪس"}\r
+                one{"{0} لڪس"}\r
+                other{"{0} لڪس"}\r
+            }\r
+        }\r
+        mass{\r
+            carat{\r
+                dnam{"ڪيرٽ"}\r
+                one{"{0} ڪيرٽ"}\r
+                other{"{0} ڪيرٽ"}\r
+            }\r
+            gram{\r
+                dnam{"گرامَ"}\r
+                one{"{0} گـ"}\r
+                other{"{0} گـ."}\r
+                per{"{0}/گـ."}\r
+            }\r
+            kilogram{\r
+                dnam{"ڪلو گرام"}\r
+                one{"{0} ڪلو گرام"}\r
+                other{"{0} ڪ.گـ."}\r
+                per{"{0}/ڪ.گـ."}\r
+            }\r
+            metric-ton{\r
+                dnam{"ٽَـ"}\r
+                one{"{0} ٽَـ"}\r
+                other{"{0} ٽَـ"}\r
+            }\r
+            microgram{\r
+                dnam{"مائڪرو گرام"}\r
+                one{"{0} مائڪرو گرام"}\r
+                other{"{0} مائڪرو گرام"}\r
+            }\r
+            milligram{\r
+                dnam{"مـ.گـ."}\r
+                one{"{0} مـ.گـ."}\r
+                other{"{0} مـ.گـ."}\r
+            }\r
+            ounce{\r
+                dnam{"اونس"}\r
+                one{"{0} اونس"}\r
+                other{"{0} اونس"}\r
+                per{"{0} في اونس"}\r
+            }\r
+            ounce-troy{\r
+                dnam{"ٽرائي اونس"}\r
+                one{"{0} ٽرائي اونس"}\r
+                other{"{0} ٽرائي اونس"}\r
+            }\r
+            pound{\r
+                dnam{"پائونڊ"}\r
+                one{"{0} پائونڊ"}\r
+                other{"{0} پائونڊ"}\r
+                per{"{0} في پائونڊ"}\r
+            }\r
+            ton{\r
+                dnam{"ٽن"}\r
+                one{"{0} ٽن"}\r
+                other{"{0} ٽن"}\r
+            }\r
+        }\r
+        power{\r
+            gigawatt{\r
+                dnam{"گيگا واٽ"}\r
+                one{"{0} گيگا واٽ"}\r
+                other{"{0} گيگا واٽ"}\r
+            }\r
+            horsepower{\r
+                dnam{"هارس پاور"}\r
+                one{"{0} هارس پاور"}\r
+                other{"{0} هارس پاور"}\r
+            }\r
+            kilowatt{\r
+                dnam{"ڪلو واٽ"}\r
+                one{"{0} ڪلو واٽ"}\r
+                other{"{0} ڪلو واٽ"}\r
+            }\r
+            megawatt{\r
+                dnam{"ميگا واٽ"}\r
+                one{"{0} ميگا واٽ"}\r
+                other{"{0} ميگا واٽ"}\r
+            }\r
+            milliwatt{\r
+                dnam{"ملي واٽ"}\r
+                one{"{0} ملي واٽ"}\r
+                other{"{0} ملي واٽ"}\r
+            }\r
+            watt{\r
+                dnam{"واٽز"}\r
+                one{"{0} واٽ"}\r
+                other{"{0} واٽ"}\r
+            }\r
+        }\r
+        pressure{\r
+            atmosphere{\r
+                dnam{"ايٽماس فيئر"}\r
+                one{"{0} ايٽماس فيئر"}\r
+                other{"{0} ايٽماس فيئر"}\r
+            }\r
+            hectopascal{\r
+                dnam{"هيڪٽوپاسڪلز"}\r
+                one{"{0} هيڪٽوپاسڪلز"}\r
+                other{"{0} هيڪٽوپاسڪلز"}\r
+            }\r
+            inch-hg{\r
+                dnam{"مرڪري جا انچز"}\r
+                one{"مرڪري جا {0} انچز"}\r
+                other{"مرڪري جا {0} انچز"}\r
+            }\r
+            millibar{\r
+                dnam{"ملي بارز"}\r
+                one{"{0} ملي بارز"}\r
+                other{"{0} ملي بارز"}\r
+            }\r
+            millimeter-of-mercury{\r
+                dnam{"مرڪري جو ملي ميٽر"}\r
+                one{"مرڪري جو {0} ملي ميٽر"}\r
+                other{"مرڪري جو {0} ملي ميٽر"}\r
+            }\r
+            pound-per-square-inch{\r
+                dnam{"پائونڊز في اسڪوائر انچ"}\r
+                one{"{0} psi"}\r
+                other{"{0} psi"}\r
+            }\r
+        }\r
+        speed{\r
+            kilometer-per-hour{\r
+                dnam{"ڪلوميٽر في ڪلاڪ"}\r
+                one{"{0} ڪلوميٽر في ڪلاڪ"}\r
+                other{"{0} ڪلوميٽر في ڪلاڪ"}\r
+            }\r
+            knot{\r
+                dnam{"ناٽ"}\r
+                one{"{0} ناٽ"}\r
+                other{"{0} ناٽ"}\r
+            }\r
+            meter-per-second{\r
+                dnam{"ميٽر في سيڪنڊ"}\r
+                one{"{0} ميٽر في سيڪنڊ"}\r
+                other{"{0} ميٽر في سيڪنڊ"}\r
+            }\r
+            mile-per-hour{\r
+                dnam{"ميل في ڪلاڪ"}\r
+                one{"{0} ميل في ڪلاڪ"}\r
+                other{"{0} ميل في ڪلاڪ"}\r
+            }\r
+        }\r
+        temperature{\r
+            celsius{\r
+                dnam{"ڊگري سيلسيس"}\r
+                one{"{0} ڊگري سيلسيس"}\r
+                other{"{0} ڊگري سيلسيس"}\r
+            }\r
+            fahrenheit{\r
+                dnam{"ڊگريز فارن هائيٽ"}\r
+                one{"{0} ڊگريز فارن هائيٽ"}\r
+                other{"{0} ڊگريز فارن هائيٽ"}\r
+            }\r
+            generic{\r
+                dnam{"ڊگري"}\r
+                one{"{0} ڊگري"}\r
+                other{"{0} ڊگري"}\r
+            }\r
+            kelvin{\r
+                dnam{"ڪيلونز"}\r
+                one{"{0} ڪيلونز"}\r
+                other{"{0} ڪيلونز"}\r
+            }\r
+        }\r
+        volume{\r
+            acre-foot{\r
+                dnam{"ايڪڙ فٽ"}\r
+                one{"{0} ايڪڙ فٽ"}\r
+                other{"{0} ايڪڙ فٽ"}\r
+            }\r
+            centiliter{\r
+                dnam{"سينٽي ليٽر"}\r
+                one{"{0} سينٽي ليٽر"}\r
+                other{"{0} سينٽي ليٽر"}\r
+            }\r
+            cubic-centimeter{\r
+                dnam{"ڪيوبڪ سينٽي ميٽر"}\r
+                one{"{0} ڪيوبڪ سينٽي ميٽر"}\r
+                other{"{0} ڪيوبڪ سينٽي ميٽر"}\r
+                per{"{0} في ڪيوبڪ سينٽي ميٽر"}\r
+            }\r
+            cubic-foot{\r
+                dnam{"ڪيوبڪ فٽ"}\r
+                one{"{0} ڪيوبڪ فٽ"}\r
+                other{"{0} ڪيوبڪ فٽ"}\r
+            }\r
+            cubic-inch{\r
+                dnam{"ڪيوبڪ انچ"}\r
+                one{"{0} ڪيوبڪ انچ"}\r
+                other{"{0} ڪيوبڪ انچ"}\r
+            }\r
+            cubic-kilometer{\r
+                dnam{"ڪيوبڪ ڪلوميٽر"}\r
+                one{"{0} ڪيوبڪ ڪلوميٽر"}\r
+                other{"{0} ڪيوبڪ ڪلوميٽر"}\r
+            }\r
+            cubic-meter{\r
+                dnam{"ڪيوبڪ ميٽر"}\r
+                one{"{0} ڪيوبڪ ميٽر"}\r
+                other{"{0} ڪيوبڪ ميٽر"}\r
+                per{"{0} في ڪيوبڪ ميٽر"}\r
+            }\r
+            cubic-mile{\r
+                dnam{"ڪيوبڪ ميل"}\r
+                one{"{0} ڪيوبڪ ميل"}\r
+                other{"{0} ڪيوبڪ ميل"}\r
+            }\r
+            cubic-yard{\r
+                dnam{"ڪيوبڪ يارڊ"}\r
+                one{"{0} ڪيوبڪ يارڊ"}\r
+                other{"{0} ڪيوبڪ يارڊ"}\r
+            }\r
+            cup{\r
+                dnam{"ڪپ ماپو"}\r
+                one{"{0} ڪپ ماپو"}\r
+                other{"{0} ڪپ ماپو"}\r
+            }\r
+            cup-metric{\r
+                dnam{"ميٽرڪ ڪپ"}\r
+                one{"{0} ميٽرڪ ڪپ"}\r
+                other{"{0} ميٽرڪ ڪپ"}\r
+            }\r
+            deciliter{\r
+                dnam{"ڊيسي ليٽر"}\r
+                one{"{0} ڊيسي ليٽر"}\r
+                other{"{0} ڊيسي ليٽر"}\r
+            }\r
+            fluid-ounce{\r
+                dnam{"پاڻياٺ اونس"}\r
+                one{"{0} پاڻياٺ اونس"}\r
+                other{"{0} پاڻياٺ اونس"}\r
+            }\r
+            gallon{\r
+                dnam{"گيلن"}\r
+                one{"{0} گيلن"}\r
+                other{"{0} گيلن"}\r
+                per{"{0} في گيلن"}\r
+            }\r
+            gallon-imperial{\r
+                dnam{"امپيريل گيلن"}\r
+                one{"{0} امپيريل گيلن"}\r
+                other{"{0} امپيريل گيلن"}\r
+                per{"{0} في امپيريل گيلن"}\r
+            }\r
+            hectoliter{\r
+                dnam{"هيڪٽو ليٽر"}\r
+                one{"{0} هيڪٽو ليٽر"}\r
+                other{"{0} هيڪٽو ليٽر"}\r
+            }\r
+            liter{\r
+                dnam{"ليٽر"}\r
+                one{"{0} ليٽر"}\r
+                other{"{0} ليٽر"}\r
+                per{"{0} في ليٽر"}\r
+            }\r
+            megaliter{\r
+                dnam{"ميگا ليٽر"}\r
+                one{"{0} ميگا ليٽر"}\r
+                other{"{0} ميگا ليٽر"}\r
+            }\r
+            milliliter{\r
+                dnam{"ملي ليٽر"}\r
+                one{"{0} ملي ليٽر"}\r
+                other{"{0} ملي ليٽر"}\r
+            }\r
+            pint{\r
+                dnam{"پنٽ"}\r
+                one{"{0} پنٽ"}\r
+                other{"{0} پنٽ"}\r
+            }\r
+            pint-metric{\r
+                dnam{"ميٽرڪ پنٽ"}\r
+                one{"{0} ميٽرڪ پنٽ"}\r
+                other{"{0} ميٽرڪ پنٽ"}\r
+            }\r
+            quart{\r
+                dnam{"چوٿائي گيلن"}\r
+                one{"{0} چوٿائي گيلن"}\r
+                other{"{0} چوٿائي گيلن"}\r
+            }\r
+            tablespoon{\r
+                dnam{"کاڌي جا چمچا"}\r
+                one{"{0} کاڌي جا چمچا"}\r
+                other{"{0} کاڌي جا چمچا"}\r
+            }\r
+            teaspoon{\r
+                dnam{"چانهن جا چمچا"}\r
+                one{"{0} چانهن جا چمچا"}\r
+                other{"{0} چانهن جا چمچا"}\r
+            }\r
+        }\r
+    }\r
+}\r
index 6b3b628257f393256902251e1928eb74acd0b5b2..c04c7b572bc1c828bcecd68cda83f6333f900a9b 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 se{\r
-    Version{"2.1.38.69"}\r
+    Version{"2.1.43.94"}\r
     durationUnits{\r
         hm{"h:mm"}\r
         hms{"h:mm:ss"}\r
index 0d69ec72bd6487bfbfdb3b0c9de4eb8ce78f5de3..e85ca800ca829f2a55aa636f0f548a6d431f9c76 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 si{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.50"}\r
     durationUnits{\r
         hm{"h.mm"}\r
         hms{"h.mm.ss"}\r
@@ -123,6 +123,16 @@ si{
                 one{"මිලියනයට කොටස් {0}"}\r
                 other{"මිලියනයට කොටස් {0}"}\r
             }\r
+            percent{\r
+                dnam{"ප්‍රතිශතය"}\r
+                one{"ප්‍රතිශතය {0}"}\r
+                other{"ප්‍රතිශතය {0}"}\r
+            }\r
+            permille{\r
+                dnam{"ප්‍රතිසහශ්‍රක"}\r
+                one{"ප්‍රතිසහශ්‍රක {0}"}\r
+                other{"ප්‍රතිසහශ්‍රක {0}"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -147,6 +157,7 @@ si{
             }\r
         }\r
         coordinate{\r
+            dnam{"කාර්ඩිනල් දිශාව"}\r
             east{"{0}නැ"}\r
             north{"{0}උ"}\r
             south{"{0}ද"}\r
@@ -193,6 +204,11 @@ si{
                 one{"මෙගාබයිට් {0}"}\r
                 other{"මෙගාබයිට් {0}"}\r
             }\r
+            petabyte{\r
+                dnam{"පෙටාබයිට්"}\r
+                one{"පෙටාබයිට් {0}"}\r
+                other{"පෙටාබයිට් {0}"}\r
+            }\r
             terabit{\r
                 dnam{"ටෙරාබිට්"}\r
                 one{"ටෙරාබිට් {0}"}\r
@@ -537,6 +553,11 @@ si{
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"වායුගෝල"}\r
+                one{"වායුගෝල {0}"}\r
+                other{"වායුගෝල {0}"}\r
+            }\r
             hectopascal{\r
                 dnam{"හෙක්ටොපැස්කල්"}\r
                 one{"හෙක්ටොපැස්කල් {0}"}\r
@@ -785,6 +806,13 @@ si{
         compound{\r
             per{"{0}/{1}"}\r
         }\r
+        concentr{\r
+            percent{\r
+                dnam{"%"}\r
+                one{"{0}%"}\r
+                other{"{0}%"}\r
+            }\r
+        }\r
         consumption{\r
             liter-per-100kilometers{\r
                 dnam{"ලී/කිමී100"}\r
@@ -793,6 +821,7 @@ si{
             }\r
         }\r
         coordinate{\r
+            dnam{"දිශාව"}\r
             east{"{0}නැ"}\r
             north{"{0}උ"}\r
             south{"{0}ද"}\r
@@ -1092,6 +1121,16 @@ si{
                 one{"{0} මිලිකො"}\r
                 other{"{0} මිලිකො"}\r
             }\r
+            percent{\r
+                dnam{"ප්‍රතිශතය"}\r
+                one{"{0}%"}\r
+                other{"{0}%"}\r
+            }\r
+            permille{\r
+                dnam{"‰"}\r
+                one{"{0}‰"}\r
+                other{"{0}‰"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -1116,6 +1155,7 @@ si{
             }\r
         }\r
         coordinate{\r
+            dnam{"දිශාව"}\r
             east{"{0}නැ"}\r
             north{"{0}උ"}\r
             south{"{0}ද"}\r
@@ -1162,6 +1202,11 @@ si{
                 one{"මෙබ {0}"}\r
                 other{"මෙබ {0}"}\r
             }\r
+            petabyte{\r
+                dnam{"පෙබයිට්"}\r
+                one{"පෙබ {0}"}\r
+                other{"පෙබ {0}"}\r
+            }\r
             terabit{\r
                 dnam{"ටෙබිට්"}\r
                 one{"ටේබි {0}"}\r
@@ -1506,6 +1551,11 @@ si{
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"වායුගෝ"}\r
+                one{"වායුගෝ {0}"}\r
+                other{"වායුගෝ {0}"}\r
+            }\r
             hectopascal{\r
                 dnam{"හෙක්ටොපැස්කල්"}\r
                 one{"හෙ.පැ {0}"}\r
index d3b6d8cea4d939fdd9f81c40457c076e5a04f07e..117981aaf801b3ca74f3a6026ad57ca709db98dc 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 sk{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.65"}\r
     durationUnits{\r
         hm{"h:mm"}\r
         hms{"h:mm:ss"}\r
@@ -163,6 +163,20 @@ sk{
                 one{"{0} milióntina"}\r
                 other{"{0} milióntin"}\r
             }\r
+            percent{\r
+                dnam{"percentá"}\r
+                few{"{0} percentá"}\r
+                many{"{0} percenta"}\r
+                one{"{0} percento"}\r
+                other{"{0} percent"}\r
+            }\r
+            permille{\r
+                dnam{"promile"}\r
+                few{"{0} promile"}\r
+                many{"{0} promile"}\r
+                one{"{0} promile"}\r
+                other{"{0} promile"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -195,6 +209,7 @@ sk{
             }\r
         }\r
         coordinate{\r
+            dnam{"svetová strana"}\r
             east{"{0} E"}\r
             north{"{0} N"}\r
             south{"{0} S"}\r
@@ -257,6 +272,13 @@ sk{
                 one{"{0} megabajt"}\r
                 other{"{0} megabajtov"}\r
             }\r
+            petabyte{\r
+                dnam{"petabajty"}\r
+                few{"{0} petabajty"}\r
+                many{"{0} petabajtu"}\r
+                one{"{0} petabajt"}\r
+                other{"{0} petabajtov"}\r
+            }\r
             terabit{\r
                 dnam{"terabity"}\r
                 few{"{0} terabity"}\r
@@ -732,6 +754,13 @@ sk{
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"atmosféry"}\r
+                few{"{0} atmosféry"}\r
+                many{"{0} atmosféry"}\r
+                one{"{0} atmosféra"}\r
+                other{"{0} atmosfér"}\r
+            }\r
             hectopascal{\r
                 dnam{"hektopascaly"}\r
                 few{"{0} hektopascaly"}\r
@@ -1113,6 +1142,13 @@ sk{
                 one{"{0} kt"}\r
                 other{"{0} kt"}\r
             }\r
+            percent{\r
+                dnam{"%"}\r
+                few{"{0} %"}\r
+                many{"{0} %"}\r
+                one{"{0} %"}\r
+                other{"{0} %"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -1136,6 +1172,7 @@ sk{
             }\r
         }\r
         coordinate{\r
+            dnam{"svetová strana"}\r
             east{"{0} E"}\r
             north{"{0} N"}\r
             south{"{0} S"}\r
@@ -1880,6 +1917,20 @@ sk{
                 one{"{0} ppm"}\r
                 other{"{0} ppm"}\r
             }\r
+            percent{\r
+                dnam{"%"}\r
+                few{"{0} %"}\r
+                many{"{0} %"}\r
+                one{"{0} %"}\r
+                other{"{0} %"}\r
+            }\r
+            permille{\r
+                dnam{"‰"}\r
+                few{"{0} ‰"}\r
+                many{"{0} ‰"}\r
+                one{"{0} ‰"}\r
+                other{"{0} ‰"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -1912,6 +1963,7 @@ sk{
             }\r
         }\r
         coordinate{\r
+            dnam{"svetová strana"}\r
             east{"{0} E"}\r
             north{"{0} N"}\r
             south{"{0} S"}\r
@@ -1974,6 +2026,13 @@ sk{
                 one{"{0} MB"}\r
                 other{"{0} MB"}\r
             }\r
+            petabyte{\r
+                dnam{"PB"}\r
+                few{"{0} PB"}\r
+                many{"{0} PB"}\r
+                one{"{0} PB"}\r
+                other{"{0} PB"}\r
+            }\r
             terabit{\r
                 dnam{"Tb"}\r
                 few{"{0} Tb"}\r
@@ -2449,6 +2508,13 @@ sk{
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"atm"}\r
+                few{"{0} atm"}\r
+                many{"{0} atm"}\r
+                one{"{0} atm"}\r
+                other{"{0} atm"}\r
+            }\r
             hectopascal{\r
                 dnam{"hPa"}\r
                 few{"{0} hPa"}\r
index 1674096ed9385009bc99658ea2187bce319dbf6f..da36d1ef4ee100673fe97824cba3f6f7f59c4dab 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 sl{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.91"}\r
     durationUnits{\r
         hm{"h.mm"}\r
         hms{"h.mm.ss"}\r
@@ -163,6 +163,20 @@ sl{
                 other{"{0} delcev na milijon"}\r
                 two{"{0} delca na milijon"}\r
             }\r
+            percent{\r
+                dnam{"odstotek"}\r
+                few{"{0} %"}\r
+                one{"{0} odstotek"}\r
+                other{"{0} odstotkov"}\r
+                two{"{0} %"}\r
+            }\r
+            permille{\r
+                dnam{"promile"}\r
+                few{"{0} ‰"}\r
+                one{"{0} promile"}\r
+                other{"{0} promilov"}\r
+                two{"{0} ‰"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -195,6 +209,7 @@ sl{
             }\r
         }\r
         coordinate{\r
+            dnam{"stran neba"}\r
             east{"{0} V"}\r
             north{"{0} S"}\r
             south{"{0} J"}\r
@@ -257,6 +272,13 @@ sl{
                 other{"{0} megabajtov"}\r
                 two{"{0} megabajta"}\r
             }\r
+            petabyte{\r
+                dnam{"petabajti"}\r
+                few{"{0} PB"}\r
+                one{"{0} petabajt"}\r
+                other{"{0} petabajtov"}\r
+                two{"{0} PB"}\r
+            }\r
             terabit{\r
                 dnam{"terabiti"}\r
                 few{"{0} terabiti"}\r
@@ -487,10 +509,10 @@ sl{
             }\r
             fathom{\r
                 dnam{"fm"}\r
-                few{"{0} fm"}\r
-                one{"{0} fm"}\r
-                other{"{0} fm"}\r
-                two{"{0} fm"}\r
+                few{"{0} fth"}\r
+                one{"{0} fth"}\r
+                other{"{0} fth"}\r
+                two{"{0} fth"}\r
             }\r
             foot{\r
                 dnam{"čevlji"}\r
@@ -746,6 +768,13 @@ sl{
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"atmosfere"}\r
+                few{"{0} atmosfere"}\r
+                one{"{0} atmosfera"}\r
+                other{"{0} atmosfer"}\r
+                two{"{0} atmosferi"}\r
+            }\r
             hectopascal{\r
                 dnam{"hektopaskali"}\r
                 few{"{0} hektopaskali"}\r
@@ -1096,6 +1125,15 @@ sl{
         compound{\r
             per{"{0}/{1}"}\r
         }\r
+        concentr{\r
+            percent{\r
+                dnam{"%"}\r
+                few{"{0} %"}\r
+                one{"{0} %"}\r
+                other{"{0} %"}\r
+                two{"{0} %"}\r
+            }\r
+        }\r
         consumption{\r
             liter-per-100kilometers{\r
                 dnam{"l/100 km"}\r
@@ -1106,6 +1144,7 @@ sl{
             }\r
         }\r
         coordinate{\r
+            dnam{"smer"}\r
             east{"{0} V"}\r
             north{"{0} S"}\r
             south{"{0} J"}\r
@@ -1222,10 +1261,10 @@ sl{
             }\r
             fathom{\r
                 dnam{"fm"}\r
-                few{"{0} fm"}\r
-                one{"{0} fm"}\r
-                other{"{0} fm"}\r
-                two{"{0} fm"}\r
+                few{"{0} fth"}\r
+                one{"{0} fth"}\r
+                other{"{0} fth"}\r
+                two{"{0} fth"}\r
             }\r
             foot{\r
                 dnam{"ft"}\r
@@ -1261,7 +1300,7 @@ sl{
             light-year{\r
                 dnam{"sv. let"}\r
                 few{"{0} sv. l."}\r
-                one{"{0} ly"}\r
+                one{"{0} sv. l."}\r
                 other{"{0} sv. l."}\r
                 two{"{0} sv. l."}\r
             }\r
@@ -1722,6 +1761,20 @@ sl{
                 other{"{0} ppm"}\r
                 two{"{0} ppm"}\r
             }\r
+            percent{\r
+                dnam{"odstotek"}\r
+                few{"{0} %"}\r
+                one{"{0} %"}\r
+                other{"{0} %"}\r
+                two{"{0} %"}\r
+            }\r
+            permille{\r
+                dnam{"promile"}\r
+                few{"{0} ‰"}\r
+                one{"{0} ‰"}\r
+                other{"{0} ‰"}\r
+                two{"{0} ‰"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -1754,6 +1807,7 @@ sl{
             }\r
         }\r
         coordinate{\r
+            dnam{"smer"}\r
             east{"{0} V"}\r
             north{"{0} S"}\r
             south{"{0} J"}\r
@@ -1816,6 +1870,13 @@ sl{
                 other{"{0} MB"}\r
                 two{"{0} MB"}\r
             }\r
+            petabyte{\r
+                dnam{"PB"}\r
+                few{"{0} PB"}\r
+                one{"{0} PB"}\r
+                other{"{0} PB"}\r
+                two{"{0} PB"}\r
+            }\r
             terabit{\r
                 dnam{"Tb"}\r
                 few{"{0} Tb"}\r
@@ -2046,10 +2107,10 @@ sl{
             }\r
             fathom{\r
                 dnam{"fm"}\r
-                few{"{0} fm"}\r
-                one{"{0} fm"}\r
-                other{"{0} fm"}\r
-                two{"{0} fm"}\r
+                few{"{0} fth"}\r
+                one{"{0} fth"}\r
+                other{"{0} fth"}\r
+                two{"{0} fth"}\r
             }\r
             foot{\r
                 dnam{"ft"}\r
@@ -2305,6 +2366,13 @@ sl{
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"atm"}\r
+                few{"{0} atm"}\r
+                one{"{0} atm"}\r
+                other{"{0} atm"}\r
+                two{"{0} atm"}\r
+            }\r
             hectopascal{\r
                 dnam{"hPa"}\r
                 few{"{0} hPa"}\r
index 7724fa70d60bcccf806646c3cf36c909f073bf80..9b77be71015db0647cf96b41ed772e45429d1288 100644 (file)
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 sn{\r
-    Version{"2.1.39.11"}\r
+    Version{"2.1.43.94"}\r
 }\r
index c3835c32693e2d7d4e90f272de8b3b1551a6a0ff..2ea777b1c08f2b44115d705dfc21da022a5c5dd0 100644 (file)
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 so{\r
-    Version{"2.1.38.69"}\r
+    Version{"2.1.43.94"}\r
+    durationUnits{\r
+        hm{"h:mm"}\r
+        hms{"h:mm:ss"}\r
+        ms{"m:ss"}\r
+    }\r
+    units{\r
+        acceleration{\r
+            g-force{\r
+                dnam{"cadaadis dib ku riixaya"}\r
+                one{"{0} cadaadis dib ku riixaya"}\r
+                other{"{0} cadaadis dib ku riixaya"}\r
+            }\r
+            meter-per-second-squared{\r
+                dnam{"mitir kasta daqiiqad labo jabbaaran"}\r
+                one{"mitir kastadaqiiqad labo jabbaaran"}\r
+                other{"{0} m/s²"}\r
+            }\r
+        }\r
+        angle{\r
+            arc-minute{\r
+                dnam{"aarkminit"}\r
+                one{"{0} aarkminit"}\r
+                other{"{0} aarkminit"}\r
+            }\r
+            arc-second{\r
+                dnam{"aarksekond"}\r
+                one{"{0}aarksekond"}\r
+                other{"{0}aarksekond"}\r
+            }\r
+            degree{\r
+                dnam{"darajo"}\r
+                one{"{0} darajo"}\r
+                other{"{0} darajo"}\r
+            }\r
+            radian{\r
+                dnam{"shucaac"}\r
+                one{"{0} shucaac"}\r
+                other{"{0} shucaac"}\r
+            }\r
+            revolution{\r
+                dnam{"wareeg"}\r
+                one{"{0} wareeg"}\r
+                other{"{0} wareeg"}\r
+            }\r
+        }\r
+        area{\r
+            acre{\r
+                dnam{"aakres"}\r
+                one{"{0} aakre"}\r
+                other{"{0} aakres"}\r
+            }\r
+            hectare{\r
+                dnam{"hektar"}\r
+                one{"hektar"}\r
+                other{"{0} hektar"}\r
+            }\r
+            square-centimeter{\r
+                dnam{"sentimitir jabbaaran"}\r
+                one{"sentimitir jabbaaran"}\r
+                other{"{0} sentimitir jabbaaran"}\r
+                per{"{0} sentimitir jabbaaran/ kasta"}\r
+            }\r
+            square-foot{\r
+                dnam{"fiit labo jabbaaran"}\r
+                one{"{0} fiit labo jabbaaran"}\r
+                other{"{0} fiit labo jabbaaran"}\r
+            }\r
+            square-inch{\r
+                dnam{"Injis labo jabbaaran"}\r
+                one{"{0} Inji labo jabbaaran"}\r
+                other{"{0} inji labo jabbaaran"}\r
+                per{"{0} Inji labo jabbaaran/kasta"}\r
+            }\r
+            square-kilometer{\r
+                dnam{"labo jabaaran kiilomitir"}\r
+                one{"{0} labo jabaaran kiilomitir"}\r
+                other{"{0} labo jabaaran kiilomitir"}\r
+                per{"{0} labo jabaaran kiilomitir kasta"}\r
+            }\r
+            square-meter{\r
+                dnam{"mitir jabbaaran"}\r
+                one{"{0} mitir jabbaaran"}\r
+                other{"{0} mitir jabbaaran"}\r
+                per{"{0} mitir jabbaaran/kasta"}\r
+            }\r
+            square-mile{\r
+                dnam{"meyl jabbaaran"}\r
+                one{"{0} meyl jabbaaran"}\r
+                other{"{0} meyl jabbaaran"}\r
+                per{"{0} meyl jabbaaran/kasta"}\r
+            }\r
+            square-yard{\r
+                dnam{"yaardi labo jabbaaran"}\r
+                one{"{0} yaardi labo jabbaaran"}\r
+                other{"{0} yaardi labo jabbaaran"}\r
+            }\r
+        }\r
+        compound{\r
+            per{"{0}/{1}"}\r
+        }\r
+        concentr{\r
+            karat{\r
+                dnam{"karaat"}\r
+                one{"{0} karaat"}\r
+                other{"{0} karaat"}\r
+            }\r
+            milligram-per-deciliter{\r
+                dnam{"milligaram baar desilitar"}\r
+                one{"{0} milligaram baar desilitar"}\r
+                other{"{0} milligaram baar desilitar"}\r
+            }\r
+            millimole-per-liter{\r
+                dnam{"millimool baar litar"}\r
+                one{"{0} millimool baar litar"}\r
+                other{"{0} millimool baar litar"}\r
+            }\r
+            part-per-million{\r
+                dnam{"baart baar milyan"}\r
+                one{"{0} baart baar milyan"}\r
+                other{"{0} baart baar milyan"}\r
+            }\r
+            percent{\r
+                dnam{"boqolkiiba"}\r
+                one{"{0} boqolkiiba"}\r
+                other{"{0} boqolkiiba"}\r
+            }\r
+            permille{\r
+                dnam{"baarmiil"}\r
+                one{"{0} baarmiil"}\r
+                other{"{0} baarmiil"}\r
+            }\r
+        }\r
+        consumption{\r
+            liter-per-100kilometers{\r
+                dnam{"litar baar 100 kiilomitir"}\r
+                one{"{0} litar baar 100 kiilomitir"}\r
+                other{"{0} litar baar 100 kiilomitir"}\r
+            }\r
+            liter-per-kilometer{\r
+                dnam{"litar baar kiilomitir"}\r
+                one{"litar baarkiilomitir"}\r
+                other{"{0} litar baar kiilomitirlitar baar kiilomitir"}\r
+            }\r
+            mile-per-gallon{\r
+                dnam{"meyl baar galoon"}\r
+                one{"{0} meyl baar galoon"}\r
+                other{"{0} meyl baar galoon"}\r
+            }\r
+            mile-per-gallon-imperial{\r
+                dnam{"meyl baar imb.galoon"}\r
+                one{"{0} meyl baar imb.galoon"}\r
+                other{"{0} meyl baar imb.galoon"}\r
+            }\r
+        }\r
+        coordinate{\r
+            dnam{"Jihada"}\r
+            east{"{0} Bari"}\r
+            north{"{0} Waqooyi"}\r
+            south{"{0} Koonfur"}\r
+            west{"{0} galbeed"}\r
+        }\r
+        digital{\r
+            bit{\r
+                dnam{"bit"}\r
+                one{"{0} bit"}\r
+                other{"{0} bit"}\r
+            }\r
+            byte{\r
+                dnam{"beyt"}\r
+                one{"{0} beyt"}\r
+                other{"{0} beyt"}\r
+            }\r
+            gigabit{\r
+                dnam{"gigabit"}\r
+                one{"{0} gigabit"}\r
+                other{"{0} gigabit"}\r
+            }\r
+            gigabyte{\r
+                dnam{"gigabeyt"}\r
+                one{"{0} gigabeyt"}\r
+                other{"{0} gigabeyt"}\r
+            }\r
+            kilobit{\r
+                dnam{"kilobit"}\r
+                one{"{0} kilobit"}\r
+                other{"{0} kilobit"}\r
+            }\r
+            kilobyte{\r
+                dnam{"kiiloobeyt"}\r
+                one{"{0} kiilobeyt"}\r
+                other{"{0} kilobeyt"}\r
+            }\r
+            megabit{\r
+                dnam{"megabits"}\r
+                one{"{0} megabit"}\r
+                other{"{0} megabit"}\r
+            }\r
+            megabyte{\r
+                dnam{"megabeyt"}\r
+                one{"{0} megabeyt"}\r
+                other{"{0} megabeyt"}\r
+            }\r
+            petabyte{\r
+                dnam{"betybeyt"}\r
+                one{"{0} betabeyt"}\r
+                other{"{0} betabeyt"}\r
+            }\r
+            terabit{\r
+                dnam{"terabit"}\r
+                one{"{0} terabit"}\r
+                other{"{0} terabit"}\r
+            }\r
+            terabyte{\r
+                dnam{"terabeyt"}\r
+                one{"{0} terabeyt"}\r
+                other{"{0} terabeyt"}\r
+            }\r
+        }\r
+        duration{\r
+            century{\r
+                dnam{"Qarniyaal"}\r
+                one{"Qarni"}\r
+                other{"{0} Qarniyaal"}\r
+            }\r
+            day{\r
+                dnam{"Maalmo"}\r
+                one{"{0} maalin"}\r
+                other{"{0} maalmooyin"}\r
+                per{"{0} maalin kasta"}\r
+            }\r
+            hour{\r
+                dnam{"saacado"}\r
+                one{"{0} saacad"}\r
+                other{"{0} saacado"}\r
+                per{"{0} saacad/kasta"}\r
+            }\r
+            microsecond{\r
+                dnam{"μs"}\r
+                one{"{0} μs"}\r
+                other{"{0} μs"}\r
+            }\r
+            millisecond{\r
+                dnam{"ms"}\r
+                one{"{0} ms"}\r
+                other{"{0} ms"}\r
+            }\r
+            minute{\r
+                dnam{"daqiiqadooyin"}\r
+                one{"{0} daqiiqad"}\r
+                other{"{0} daqiiqad"}\r
+                per{"{0} daqiiqad/kasta"}\r
+            }\r
+            month{\r
+                dnam{"Bilooyin"}\r
+                one{"{0}Bil"}\r
+                other{"{0}Bil"}\r
+                per{"{0}Bil kasta"}\r
+            }\r
+            nanosecond{\r
+                dnam{"ns"}\r
+                one{"{0} ns"}\r
+                other{"{0} ns"}\r
+            }\r
+            second{\r
+                dnam{"il-biriqsi"}\r
+                one{"{0} il-biriqsi"}\r
+                other{"{0} il-biriqsi"}\r
+                per{"{0} Il-biriqsi/Kasta"}\r
+            }\r
+            week{\r
+                dnam{"Usbuuc/Sitimaan"}\r
+                one{"Usbuuc/Sitimaan"}\r
+                other{"{0} Usbuucyo"}\r
+                per{"{0} Usbuuc kasta"}\r
+            }\r
+            year{\r
+                dnam{"Sannado"}\r
+                one{"{0} Sannad"}\r
+                other{"{0}Sannado"}\r
+                per{"{0} Sannad Kasta"}\r
+            }\r
+        }\r
+        electric{\r
+            ampere{\r
+                dnam{"amberes"}\r
+                one{"{0} ambeer"}\r
+                other{"{0} ambeer"}\r
+            }\r
+            milliampere{\r
+                dnam{"miliambeer"}\r
+                one{"{0}miliambeer"}\r
+                other{"{0}miliambeer"}\r
+            }\r
+            ohm{\r
+                dnam{"ohm"}\r
+                one{"{0} ohm"}\r
+                other{"{0} ohm"}\r
+            }\r
+            volt{\r
+                dnam{"foolt"}\r
+                one{"{0} foolt"}\r
+                other{"{0} foolt"}\r
+            }\r
+        }\r
+        energy{\r
+            calorie{\r
+                dnam{"kalooris"}\r
+                one{"{0} kalooris"}\r
+                other{"{0} kalooris"}\r
+            }\r
+            foodcalorie{\r
+                dnam{"kalooris"}\r
+                one{"{0} kalooris"}\r
+                other{"{0} kalooris"}\r
+            }\r
+            joule{\r
+                dnam{"Juul"}\r
+                one{"{0} juul"}\r
+                other{"{0} juuls"}\r
+            }\r
+            kilocalorie{\r
+                dnam{"kilokalooris"}\r
+                one{"{0} kilokalooris"}\r
+                other{"{0} kilokalooris"}\r
+            }\r
+            kilojoule{\r
+                dnam{"kilojoules"}\r
+                one{"{0} kiilojuul"}\r
+                other{"{0} kiilojuuls"}\r
+            }\r
+            kilowatt-hour{\r
+                dnam{"kiilowaat- saacado"}\r
+                one{"{0} kiilowaat saacaddiiba"}\r
+                other{"{0} kiilowaat saacaddiiba"}\r
+            }\r
+        }\r
+        frequency{\r
+            gigahertz{\r
+                dnam{"gigahaart"}\r
+                one{"{0} gigahaart"}\r
+                other{"{0} gigahaart"}\r
+            }\r
+            hertz{\r
+                dnam{"haarts"}\r
+                one{"{0} haarts"}\r
+                other{"{0} haarts"}\r
+            }\r
+            kilohertz{\r
+                dnam{"kiilohaarts"}\r
+                one{"{0} kiilohaarts"}\r
+                other{"{0} kiilohaarts"}\r
+            }\r
+            megahertz{\r
+                dnam{"meegahaarts"}\r
+                one{"{0} megahaarts"}\r
+                other{"{0} megahaarts"}\r
+            }\r
+        }\r
+        length{\r
+            astronomical-unit{\r
+                dnam{"unit-ka astronomikal"}\r
+                one{"unit-ka astronomikal"}\r
+                other{"{0} unit-ka astronomikal"}\r
+            }\r
+            centimeter{\r
+                dnam{"Sentimitir"}\r
+                one{"{0} sentimitir"}\r
+                other{"{0} sentimitir"}\r
+                per{"{0}/cm"}\r
+            }\r
+            decimeter{\r
+                dnam{"desimitir"}\r
+                one{"{0} desimitir"}\r
+                other{"{0} dsimitir"}\r
+            }\r
+            foot{\r
+                dnam{"fiit"}\r
+                one{"Fiit"}\r
+                other{"{0}Fiit"}\r
+                per{"{0}/ft"}\r
+            }\r
+            inch{\r
+                dnam{"Injis"}\r
+                one{"Injis"}\r
+                other{"{0} injis"}\r
+                per{"{0} inji/kasta"}\r
+            }\r
+            kilometer{\r
+                dnam{"Kiilo mitir"}\r
+                one{"Kiilo mitir"}\r
+                other{"{0}Kiilo mitir"}\r
+                per{"{0}/km"}\r
+            }\r
+            light-year{\r
+                dnam{"masaafada iftiinka"}\r
+                one{"Masaafada Iftiinka"}\r
+                other{"{0}masaafad iftiinka"}\r
+            }\r
+            meter{\r
+                dnam{"mitir"}\r
+                one{"{0} mitir"}\r
+                other{"{0} mitir"}\r
+                per{"{0} /m"}\r
+            }\r
+            micrometer{\r
+                dnam{"mikromitir"}\r
+                one{"{0} mikromitir"}\r
+                other{"{0} mikromitir"}\r
+            }\r
+            mile{\r
+                dnam{"Meyl"}\r
+                one{"{0} meyl"}\r
+                other{"{0} meyl"}\r
+            }\r
+            mile-scandinavian{\r
+                dnam{"meyl-iskandineyfiyaan"}\r
+                one{"{0} meyl-iskandineyfiyaan"}\r
+                other{"{0} meyl-iskanddineyfiyaan"}\r
+            }\r
+            millimeter{\r
+                dnam{"milimitir"}\r
+                one{"{0} milimitir"}\r
+                other{"{0} milimitir"}\r
+            }\r
+            nanometer{\r
+                dnam{"nanomitir"}\r
+                one{"{0} nanomitir"}\r
+                other{"{0} nanomitir"}\r
+            }\r
+            nautical-mile{\r
+                dnam{"Nuutikal meyl"}\r
+                one{"nuutika meyl"}\r
+                other{"{0} nuutikal meyl"}\r
+            }\r
+            parsec{\r
+                dnam{"Barseks"}\r
+                one{"{0} barseks"}\r
+                other{"{0} barseks"}\r
+            }\r
+            picometer{\r
+                dnam{"Bikomitir"}\r
+                one{"{0} bikomitir"}\r
+                other{"{0} bikomitir"}\r
+            }\r
+            point{\r
+                dnam{"dhibicyo"}\r
+                one{"{0} dhibic"}\r
+                other{"{0} dhibic"}\r
+            }\r
+            yard{\r
+                dnam{"Yaardi"}\r
+                one{"{0} yaardi"}\r
+                other{"{0} yaardi"}\r
+            }\r
+        }\r
+        light{\r
+            lux{\r
+                dnam{"laks"}\r
+                one{"{0} laks"}\r
+                other{"{0} laks"}\r
+            }\r
+        }\r
+        mass{\r
+            carat{\r
+                dnam{"karaats"}\r
+                one{"{0} karaats"}\r
+                other{"{0} karaats"}\r
+            }\r
+            gram{\r
+                dnam{"garaam"}\r
+                one{"{0} garaam"}\r
+                other{"{0} garaam"}\r
+                per{"{0} garaam kasta"}\r
+            }\r
+            kilogram{\r
+                dnam{"kiilogaraam"}\r
+                one{"{0} kiilogaraam"}\r
+                other{"{0} kiilogaraam"}\r
+                per{"{0} kiilogaraam"}\r
+            }\r
+            metric-ton{\r
+                dnam{"metrik ton"}\r
+                one{"{0} metrik ton"}\r
+                other{"{0} metrik ton"}\r
+            }\r
+            microgram{\r
+                dnam{"mikrogaraam"}\r
+                one{"{0}mikrogaraam"}\r
+                other{"{0}mikrogaraam"}\r
+            }\r
+            milligram{\r
+                dnam{"miligaraam"}\r
+                one{"{0} miligaraam"}\r
+                other{"{0} miligaraam"}\r
+            }\r
+            ounce{\r
+                dnam{"owns"}\r
+                one{"{0} owns"}\r
+                other{"{0} owns"}\r
+                per{"{0} owns kasta"}\r
+            }\r
+            ounce-troy{\r
+                dnam{"torooy owns"}\r
+                one{"{0} torooy owns"}\r
+                other{"{0} torooy owns"}\r
+            }\r
+            pound{\r
+                dnam{"bownd"}\r
+                one{"{0} bownd"}\r
+                other{"{0} bownd"}\r
+                per{"{0} bowndkiiba"}\r
+            }\r
+            ton{\r
+                dnam{"tan"}\r
+                one{"{0}tan"}\r
+                other{"{0}tan"}\r
+            }\r
+        }\r
+        power{\r
+            gigawatt{\r
+                dnam{"gigawaats"}\r
+                one{"{0} gigawaat"}\r
+                other{"{0} gigawaat"}\r
+            }\r
+            horsepower{\r
+                dnam{"korontadafardaha"}\r
+                one{"{0}korontadafardaha"}\r
+                other{"{0}korontadafardaha"}\r
+            }\r
+            kilowatt{\r
+                dnam{"kiilowaat"}\r
+                one{"{0} kiilowaat"}\r
+                other{"{0} kiilowaat"}\r
+            }\r
+            megawatt{\r
+                dnam{"meegawaat"}\r
+                one{"{0} meegawaat"}\r
+                other{"{0} meegawaat"}\r
+            }\r
+            milliwatt{\r
+                dnam{"miliwaat"}\r
+                one{"{0} miliwaat"}\r
+                other{"{0} miliwaat"}\r
+            }\r
+            watt{\r
+                dnam{"waat"}\r
+                one{"{0} waat"}\r
+                other{"{0} waat"}\r
+            }\r
+        }\r
+        pressure{\r
+            atmosphere{\r
+                dnam{"jawiga"}\r
+                one{"{0} jawiga"}\r
+                other{"{0} jawiga"}\r
+            }\r
+            hectopascal{\r
+                dnam{"hektobaskal"}\r
+                one{"{0}hektobaskals"}\r
+                other{"{0}hektobaskal"}\r
+            }\r
+            inch-hg{\r
+                dnam{"inji maarkuri"}\r
+                one{"{0} inji maarkuri"}\r
+                other{"{0} inji maarkuri"}\r
+            }\r
+            millibar{\r
+                dnam{"milibaars"}\r
+                one{"{0} milibaar"}\r
+                other{"{0} milibaar"}\r
+            }\r
+            millimeter-of-mercury{\r
+                dnam{"milimeter ee maarkuri"}\r
+                one{"{0} milimeter ee maarkuri"}\r
+                other{"{0} milimeter ee maarkuri"}\r
+            }\r
+            pound-per-square-inch{\r
+                dnam{"bownd baar inji labo jabbaaran"}\r
+                one{"{0} bownd baar inji labo jabbaaran"}\r
+                other{"{0} bownd baar inji labo jabbaaran"}\r
+            }\r
+        }\r
+        speed{\r
+            kilometer-per-hour{\r
+                dnam{"kiilomitir saacaddiiba"}\r
+                one{"{0} kiiomitir saacaddiiba"}\r
+                other{"{0} kiilomitir saacaddiiba"}\r
+            }\r
+            knot{\r
+                dnam{"gunnad"}\r
+                one{"{0} gunnad"}\r
+                other{"{0} gunnad"}\r
+            }\r
+            meter-per-second{\r
+                dnam{"mitir il-biriqsi kasta"}\r
+                one{"mitir il-biriqsi kasta"}\r
+                other{"{0} mitir ilbiriqsi kasta"}\r
+            }\r
+            mile-per-hour{\r
+                dnam{"mely saacaddiiba"}\r
+                one{"{0} meyl saacaddiiba"}\r
+                other{"{0} meyl saacaddiiba"}\r
+            }\r
+        }\r
+        temperature{\r
+            celsius{\r
+                dnam{"degrii selsiyaas"}\r
+                one{"{0}°degrii selsiyaas"}\r
+                other{"{0}°degrii selsiyaas"}\r
+            }\r
+            fahrenheit{\r
+                dnam{"degrees Faahrenheyt"}\r
+                one{"{0} degrii Faahrenheyt"}\r
+                other{"{0} degrii Faahrenheyt"}\r
+            }\r
+            generic{\r
+                dnam{"°"}\r
+                one{"{0}°"}\r
+                other{"{0}°"}\r
+            }\r
+            kelvin{\r
+                dnam{"kelfin"}\r
+                one{"{0} kelfin"}\r
+                other{"{0} kelfin"}\r
+            }\r
+        }\r
+        volume{\r
+            acre-foot{\r
+                dnam{"akre-fiit"}\r
+                one{"{0} akre-fiit"}\r
+                other{"{0} akre-fiit"}\r
+            }\r
+            centiliter{\r
+                dnam{"sentilitar"}\r
+                one{"{0} sentilitar"}\r
+                other{"{0} sentilitar"}\r
+            }\r
+            cubic-centimeter{\r
+                dnam{"sentimitir saddex jabbaaran"}\r
+                one{"{0} sentimitir saddex jabbaaran"}\r
+                other{"{0} sentimitir saddex jabbaaran"}\r
+                per{"{0}/sentimitir saddex jabbaaran"}\r
+            }\r
+            cubic-foot{\r
+                dnam{"fiit saddex jabbaaran"}\r
+                one{"{0} fiit saddex jabbaaran"}\r
+                other{"{0} fiit saddex jabbaaran"}\r
+            }\r
+            cubic-inch{\r
+                dnam{"inji saddex jabbaaran"}\r
+                one{"{0} inji saddex jabbaaran"}\r
+                other{"{0} inji saddex jabbaaran"}\r
+            }\r
+            cubic-kilometer{\r
+                dnam{"kiilomitir saddex jabbaaran"}\r
+                one{"{0} kiilomitir saddex jabbaaran"}\r
+                other{"{0} kiilomitir saddex jabaaran"}\r
+            }\r
+            cubic-meter{\r
+                dnam{"mitir saddex jabbaaran"}\r
+                one{"{0}"}\r
+                other{"{0} mitir saddex jabbaaran"}\r
+                per{"{0} mitir saddex jabbaaran"}\r
+            }\r
+            cubic-mile{\r
+                dnam{"meyl saddex jabbaaran"}\r
+                one{"{0} meyl saddex jabbaaran"}\r
+                other{"{0} meyl saddex jabbaaran"}\r
+            }\r
+            cubic-yard{\r
+                dnam{"yaardi saddex jabbaaran"}\r
+                one{"{0} yaardi saddex jabbaaran"}\r
+                other{"{0} yaardi saddex jabbaaran"}\r
+            }\r
+            cup{\r
+                dnam{"kaab"}\r
+                one{"{0} kaab"}\r
+                other{"{0} kaab"}\r
+            }\r
+            cup-metric{\r
+                dnam{"metrik kab"}\r
+                one{"metrik kab"}\r
+                other{"{0} merik kab"}\r
+            }\r
+            deciliter{\r
+                dnam{"desilitar"}\r
+                one{"{0} desilitar"}\r
+                other{"{0} desilitar"}\r
+            }\r
+            fluid-ounce{\r
+                dnam{"fuluud owns"}\r
+                one{"{0} fuluud owns"}\r
+                other{"{0} fuluud owns"}\r
+            }\r
+            gallon{\r
+                dnam{"galoons"}\r
+                one{"{0}galoons"}\r
+                other{"{0} galoons"}\r
+                per{"{0}/gal US"}\r
+            }\r
+            gallon-imperial{\r
+                dnam{"imb.galoons"}\r
+                one{"{0} imb. galoon"}\r
+                other{"{0} imb. galoons"}\r
+                per{"{0} /imb.galoon"}\r
+            }\r
+            hectoliter{\r
+                dnam{"hektolitar"}\r
+                one{"{0} hektolitar"}\r
+                other{"{0} hektarlitar"}\r
+            }\r
+            liter{\r
+                dnam{"litar"}\r
+                one{"{0} litar"}\r
+                other{"{0} litar"}\r
+                per{"{0} litar kasta"}\r
+            }\r
+            megaliter{\r
+                dnam{"megalitar"}\r
+                one{"{0} megalitar"}\r
+                other{"{0} megalitar"}\r
+            }\r
+            milliliter{\r
+                dnam{"mililitar"}\r
+                one{"{0} mililitar"}\r
+                other{"{0} mililitar"}\r
+            }\r
+            pint{\r
+                dnam{"bints"}\r
+                one{"{0} bints"}\r
+                other{"{0} bints"}\r
+            }\r
+            pint-metric{\r
+                dnam{"metrik bints"}\r
+                one{"{0} metrik bint"}\r
+                other{"{0} metrik bint"}\r
+            }\r
+            quart{\r
+                dnam{"kowaarts"}\r
+                one{"{0} kowaarts"}\r
+                other{"{0}kowaarts"}\r
+            }\r
+            tablespoon{\r
+                dnam{"malgacad"}\r
+                one{"{0} malgacad"}\r
+                other{"{0} malgacad"}\r
+            }\r
+            teaspoon{\r
+                dnam{"malgacadda shaah"}\r
+                one{"malgacadda shaah"}\r
+                other{"{0} malgacadda shaaha"}\r
+            }\r
+        }\r
+    }\r
+    unitsNarrow{\r
+        compound{\r
+            per{"{0}/{1}"}\r
+        }\r
+        concentr{\r
+            percent{\r
+                dnam{"%"}\r
+                one{"{0}%"}\r
+                other{"{0}%"}\r
+            }\r
+        }\r
+        consumption{\r
+            liter-per-100kilometers{\r
+                dnam{"L/100km"}\r
+                one{"{0} L/100km"}\r
+                other{"{0} L/100km"}\r
+            }\r
+        }\r
+        coordinate{\r
+            dnam{"jiho"}\r
+            east{"{0} B"}\r
+            north{"{0} W"}\r
+            south{"{0} K"}\r
+            west{"{0} G"}\r
+        }\r
+        duration{\r
+            day{\r
+                dnam{"maalmo"}\r
+                one{"{0}M"}\r
+                other{"{0}M/k"}\r
+                per{"{0}M/K"}\r
+            }\r
+            hour{\r
+                dnam{"saacado"}\r
+                one{"{0} h"}\r
+                other{"{0} S"}\r
+            }\r
+            millisecond{\r
+                dnam{"ms"}\r
+                one{"{0} ms"}\r
+                other{"{0} ms"}\r
+            }\r
+            minute{\r
+                dnam{"daqiiqado"}\r
+                one{"{0} daqiiqo"}\r
+                other{"{0} daqiiqo"}\r
+            }\r
+            month{\r
+                dnam{"Bilooyin"}\r
+                one{"{0}Bil"}\r
+                other{"{0}Bil"}\r
+            }\r
+            second{\r
+                dnam{"il-biriqsi"}\r
+                one{"{0} s"}\r
+                other{"{0} s"}\r
+            }\r
+            week{\r
+                dnam{"Usbuucyo"}\r
+                one{"{0} Sit"}\r
+                other{"{0} U"}\r
+                per{"{0} U/K"}\r
+            }\r
+            year{\r
+                dnam{"SN"}\r
+                one{"S"}\r
+                other{"{0}Sno"}\r
+            }\r
+        }\r
+        length{\r
+            centimeter{\r
+                dnam{"cm"}\r
+                one{"{0} cm"}\r
+                other{"{0} cm"}\r
+            }\r
+            kilometer{\r
+                dnam{"km"}\r
+                one{"{0} km"}\r
+                other{"{0} km"}\r
+            }\r
+            meter{\r
+                dnam{"m"}\r
+                one{"{0} m"}\r
+                other{"{0} m"}\r
+            }\r
+            millimeter{\r
+                dnam{"mm"}\r
+                one{"{0} mm"}\r
+                other{"{0} mm"}\r
+            }\r
+        }\r
+        mass{\r
+            gram{\r
+                dnam{"garaam"}\r
+                one{"{0} g"}\r
+                other{"{0} g"}\r
+            }\r
+            kilogram{\r
+                dnam{"kg"}\r
+                one{"{0} kg"}\r
+                other{"{0} kg"}\r
+            }\r
+        }\r
+        speed{\r
+            kilometer-per-hour{\r
+                dnam{"km/s"}\r
+                one{"{0} km/s"}\r
+                other{"{0} km/s"}\r
+            }\r
+        }\r
+        temperature{\r
+            celsius{\r
+                dnam{"°C"}\r
+                one{"{0}°C"}\r
+                other{"{0}°C"}\r
+            }\r
+        }\r
+        volume{\r
+            liter{\r
+                dnam{"litar"}\r
+                one{"{0} l"}\r
+                other{"{0} l"}\r
+            }\r
+        }\r
+    }\r
+    unitsShort{\r
+        acceleration{\r
+            g-force{\r
+                dnam{"cadaadis dib ku riixaya"}\r
+                one{"{0} G"}\r
+                other{"{0} G"}\r
+            }\r
+            meter-per-second-squared{\r
+                dnam{"m/s²"}\r
+                one{"{0} m/s²"}\r
+                other{"{0} m/s²"}\r
+            }\r
+        }\r
+        angle{\r
+            arc-minute{\r
+                dnam{"aarkminit"}\r
+                one{"{0} aarkminit"}\r
+                other{"{0} aarkminit"}\r
+            }\r
+            arc-second{\r
+                dnam{"aarksekond"}\r
+                one{"{0}aarksekond"}\r
+                other{"{0}aarksekond"}\r
+            }\r
+            degree{\r
+                dnam{"darajo"}\r
+                one{"{0} darajo"}\r
+                other{"{0} darajo"}\r
+            }\r
+            radian{\r
+                dnam{"shucaac"}\r
+                one{"{0} shucaac"}\r
+                other{"{0} shucaac"}\r
+            }\r
+            revolution{\r
+                dnam{"Wareeg"}\r
+                one{"{0} wareeg"}\r
+                other{"{0} wareeg"}\r
+            }\r
+        }\r
+        area{\r
+            acre{\r
+                dnam{"aakres"}\r
+                one{"{0} ac"}\r
+                other{"{0} ac"}\r
+            }\r
+            hectare{\r
+                dnam{"hektar"}\r
+                one{"{0} ha"}\r
+                other{"{0} ha"}\r
+            }\r
+            square-centimeter{\r
+                dnam{"cm²"}\r
+                one{"{0} cm²"}\r
+                other{"{0} cm²"}\r
+                per{"{0}/cm²"}\r
+            }\r
+            square-foot{\r
+                dnam{"fiit jabbaaran"}\r
+                one{"{0} ft²"}\r
+                other{"{0} ft²"}\r
+            }\r
+            square-inch{\r
+                dnam{"Injis labo jabbaaran"}\r
+                one{"{0} in²"}\r
+                other{"{0} in²"}\r
+                per{"{0}/in²"}\r
+            }\r
+            square-kilometer{\r
+                dnam{"km²"}\r
+                one{"{0} km²"}\r
+                other{"{0} km²"}\r
+                per{"{0}/km²"}\r
+            }\r
+            square-meter{\r
+                dnam{"mitir jabbaaran"}\r
+                one{"{0} m²"}\r
+                other{"{0} m²"}\r
+                per{"{0}/m²"}\r
+            }\r
+            square-mile{\r
+                dnam{"meyl jabbaaran"}\r
+                one{"{0} mi²"}\r
+                other{"{0} mi²"}\r
+                per{"{0}/mi²"}\r
+            }\r
+            square-yard{\r
+                dnam{"yaardi labo jabbaaran"}\r
+                one{"{0} yd²"}\r
+                other{"{0} yd²"}\r
+            }\r
+        }\r
+        compound{\r
+            per{"{0}/{1}"}\r
+        }\r
+        concentr{\r
+            karat{\r
+                dnam{"karaat"}\r
+                one{"{0} kt"}\r
+                other{"{0} kt"}\r
+            }\r
+            milligram-per-deciliter{\r
+                dnam{"mg/dL"}\r
+                one{"{0} mg/dL"}\r
+                other{"{0} mg/dL"}\r
+            }\r
+            millimole-per-liter{\r
+                dnam{"mmol/L"}\r
+                one{"{0} mmol/L"}\r
+                other{"{0} mmol/L"}\r
+            }\r
+            part-per-million{\r
+                dnam{"baart/milyan"}\r
+                one{"{0} ppm"}\r
+                other{"{0} ppm"}\r
+            }\r
+            percent{\r
+                dnam{"boqolkiiba"}\r
+                one{"{0}%"}\r
+                other{"{0}%"}\r
+            }\r
+            permille{\r
+                dnam{"baarmiil"}\r
+                one{"{0}‰"}\r
+                other{"{0}‰"}\r
+            }\r
+        }\r
+        consumption{\r
+            liter-per-100kilometers{\r
+                dnam{"L/100km"}\r
+                one{"{0} L/100km"}\r
+                other{"{0} L/100km"}\r
+            }\r
+            liter-per-kilometer{\r
+                dnam{"litar/kiilomitir"}\r
+                one{"{0} L/km"}\r
+                other{"{0} L/km"}\r
+            }\r
+            mile-per-gallon{\r
+                dnam{"meyl/galoon"}\r
+                one{"{0} mpg US"}\r
+                other{"{0} mpg US"}\r
+            }\r
+            mile-per-gallon-imperial{\r
+                dnam{"meyl/gal imb."}\r
+                one{"{0} mpg Imp."}\r
+                other{"{0} mpg Imp."}\r
+            }\r
+        }\r
+        coordinate{\r
+            dnam{"jiho"}\r
+            east{"{0} B"}\r
+            north{"{0} W"}\r
+            south{"{0} K"}\r
+            west{"{0} G"}\r
+        }\r
+        digital{\r
+            bit{\r
+                dnam{"bit"}\r
+                one{"{0} bit"}\r
+                other{"{0} bit"}\r
+            }\r
+            byte{\r
+                dnam{"beyt"}\r
+                one{"{0} beyt"}\r
+                other{"{0} beyt"}\r
+            }\r
+            gigabit{\r
+                dnam{"Gbit"}\r
+                one{"{0} Gb"}\r
+                other{"{0} Gb"}\r
+            }\r
+            gigabyte{\r
+                dnam{"GBeyt"}\r
+                one{"{0} GB"}\r
+                other{"{0} GB"}\r
+            }\r
+            kilobit{\r
+                dnam{"kbit"}\r
+                one{"{0} kb"}\r
+                other{"{0} kb"}\r
+            }\r
+            kilobyte{\r
+                dnam{"kBeyt"}\r
+                one{"{0} kB"}\r
+                other{"{0} kB"}\r
+            }\r
+            megabit{\r
+                dnam{"Mbit"}\r
+                one{"{0} Mb"}\r
+                other{"{0} Mb"}\r
+            }\r
+            megabyte{\r
+                dnam{"MBeyt"}\r
+                one{"{0} MB"}\r
+                other{"{0} MB"}\r
+            }\r
+            petabyte{\r
+                dnam{"bBeyt"}\r
+                one{"{0} PB"}\r
+                other{"{0} PB"}\r
+            }\r
+            terabit{\r
+                dnam{"Tbit"}\r
+                one{"{0} Tb"}\r
+                other{"{0} Tb"}\r
+            }\r
+            terabyte{\r
+                dnam{"TBeyt"}\r
+                one{"{0} TB"}\r
+                other{"{0} TB"}\r
+            }\r
+        }\r
+        duration{\r
+            century{\r
+                dnam{"c"}\r
+                one{"{0} c"}\r
+                other{"{0} c"}\r
+            }\r
+            day{\r
+                dnam{"maalmo"}\r
+                one{"{0} maalin"}\r
+                other{"{0} maalmooyin"}\r
+                per{"{0}M/K"}\r
+            }\r
+            hour{\r
+                dnam{"saacado"}\r
+                one{"{0} s"}\r
+                other{"{0} h"}\r
+                per{"{0} s/k"}\r
+            }\r
+            microsecond{\r
+                dnam{"μs"}\r
+                one{"{0} μs"}\r
+                other{"{0} μs"}\r
+            }\r
+            millisecond{\r
+                dnam{"ms"}\r
+                one{"{0} ms"}\r
+                other{"{0} ms"}\r
+            }\r
+            minute{\r
+                dnam{"daqiiqado"}\r
+                one{"{0} daqiiqo"}\r
+                other{"{0} daqiiqo"}\r
+                per{"{0} d/k"}\r
+            }\r
+            month{\r
+                dnam{"Bilooyin"}\r
+                one{"{0}Bil"}\r
+                other{"{0}Bil"}\r
+                per{"{0}B/K"}\r
+            }\r
+            nanosecond{\r
+                dnam{"ns"}\r
+                one{"{0} ns"}\r
+                other{"{0} ns"}\r
+            }\r
+            second{\r
+                dnam{"il-biriqsi"}\r
+                one{"{0} il -biriqsi"}\r
+                other{"{0} il-biriqsi"}\r
+                per{"{0} Il-biriqsi/Kasta"}\r
+            }\r
+            week{\r
+                dnam{"Usbuucyo"}\r
+                one{"{0} Sit"}\r
+                other{"{0} Usbuucyo"}\r
+                per{"{0} U/K"}\r
+            }\r
+            year{\r
+                dnam{"SN"}\r
+                one{"S"}\r
+                other{"{0}Sno"}\r
+                per{"{0}S/K"}\r
+            }\r
+        }\r
+        electric{\r
+            ampere{\r
+                dnam{"amp"}\r
+                one{"{0} A"}\r
+                other{"{0} A"}\r
+            }\r
+            milliampere{\r
+                dnam{"mA"}\r
+                one{"{0} mA"}\r
+                other{"{0} mA"}\r
+            }\r
+            ohm{\r
+                dnam{"ohm"}\r
+                one{"{0} Ω"}\r
+                other{"{0} Ω"}\r
+            }\r
+            volt{\r
+                dnam{"foolt"}\r
+                one{"{0} V"}\r
+                other{"{0} V"}\r
+            }\r
+        }\r
+        energy{\r
+            calorie{\r
+                dnam{"cal"}\r
+                one{"{0} cal"}\r
+                other{"{0} cal"}\r
+            }\r
+            foodcalorie{\r
+                dnam{"Cal"}\r
+                one{"{0} Cal"}\r
+                other{"{0} Cal"}\r
+            }\r
+            joule{\r
+                dnam{"juuls"}\r
+                one{"{0} J"}\r
+                other{"{0} J"}\r
+            }\r
+            kilocalorie{\r
+                dnam{"kilokalooris"}\r
+                one{"{0} kilokalooris"}\r
+                other{"{0} kcal"}\r
+            }\r
+            kilojoule{\r
+                dnam{"kiilojuul"}\r
+                one{"{0} kJ"}\r
+                other{"{0} kJ"}\r
+            }\r
+            kilowatt-hour{\r
+                dnam{"KW-saacad"}\r
+                one{"{0} KWs"}\r
+                other{"{0} KWs"}\r
+            }\r
+        }\r
+        frequency{\r
+            gigahertz{\r
+                dnam{"GHz"}\r
+                one{"{0} GHz"}\r
+                other{"{0} GHz"}\r
+            }\r
+            hertz{\r
+                dnam{"Hz"}\r
+                one{"{0} Hz"}\r
+                other{"{0} Hz"}\r
+            }\r
+            kilohertz{\r
+                dnam{"kHz"}\r
+                one{"{0} kHz"}\r
+                other{"{0} kHz"}\r
+            }\r
+            megahertz{\r
+                dnam{"MHz"}\r
+                one{"{0} MHz"}\r
+                other{"{0} MHz"}\r
+            }\r
+        }\r
+        length{\r
+            astronomical-unit{\r
+                dnam{"au"}\r
+                one{"{0} au"}\r
+                other{"{0} au"}\r
+            }\r
+            centimeter{\r
+                dnam{"cm"}\r
+                one{"{0} cm"}\r
+                other{"{0} cm"}\r
+                per{"{0}/cm"}\r
+            }\r
+            decimeter{\r
+                dnam{"dm"}\r
+                one{"{0} dm"}\r
+                other{"{0} dm"}\r
+            }\r
+            foot{\r
+                dnam{"ft"}\r
+                one{"{0} ft"}\r
+                other{"{0} ft"}\r
+                per{"{0}/ft"}\r
+            }\r
+            inch{\r
+                dnam{"injjis"}\r
+                one{"{0} in"}\r
+                other{"{0} in"}\r
+                per{"{0}/in"}\r
+            }\r
+            kilometer{\r
+                dnam{"km"}\r
+                one{"{0} km"}\r
+                other{"{0} km"}\r
+                per{"{0}/km"}\r
+            }\r
+            light-year{\r
+                dnam{"ly"}\r
+                one{"{0} ly"}\r
+                other{"{0} ly"}\r
+            }\r
+            meter{\r
+                dnam{"m"}\r
+                one{"{0} m"}\r
+                other{"{0} m"}\r
+                per{"{0}/m"}\r
+            }\r
+            micrometer{\r
+                dnam{"µmitir"}\r
+                one{"{0} µm"}\r
+                other{"{0} µm"}\r
+            }\r
+            mile{\r
+                dnam{"meyl"}\r
+                one{"{0} mi"}\r
+                other{"{0} mi"}\r
+            }\r
+            mile-scandinavian{\r
+                dnam{"smi"}\r
+                one{"{0} smi"}\r
+                other{"{0} smi"}\r
+            }\r
+            millimeter{\r
+                dnam{"mm"}\r
+                one{"{0} mm"}\r
+                other{"{0} mm"}\r
+            }\r
+            nanometer{\r
+                dnam{"nm"}\r
+                one{"{0} nm"}\r
+                other{"{0} nm"}\r
+            }\r
+            nautical-mile{\r
+                dnam{"nmi"}\r
+                one{"{0} nmi"}\r
+                other{"{0} nmi"}\r
+            }\r
+            parsec{\r
+                dnam{"pc"}\r
+                one{"{0} pc"}\r
+                other{"{0} pc"}\r
+            }\r
+            picometer{\r
+                dnam{"bm"}\r
+                one{"{0} bm"}\r
+                other{"{0} bm"}\r
+            }\r
+            point{\r
+                dnam{"dhibicyo"}\r
+                one{"{0} dhibic"}\r
+                other{"{0} dhibic"}\r
+            }\r
+            yard{\r
+                dnam{"yaardi"}\r
+                one{"{0} yd"}\r
+                other{"{0} yd"}\r
+            }\r
+        }\r
+        light{\r
+            lux{\r
+                dnam{"laks"}\r
+                one{"{0} lx"}\r
+                other{"{0} lx"}\r
+            }\r
+        }\r
+        mass{\r
+            carat{\r
+                dnam{"karaats"}\r
+                one{"{0} CD"}\r
+                other{"{0} CD"}\r
+            }\r
+            gram{\r
+                dnam{"garaam"}\r
+                one{"{0} g"}\r
+                other{"{0} g"}\r
+                per{"{0}/g"}\r
+            }\r
+            kilogram{\r
+                dnam{"kg"}\r
+                one{"{0} kg"}\r
+                other{"{0} kg"}\r
+                per{"{0}/kg"}\r
+            }\r
+            metric-ton{\r
+                dnam{"t"}\r
+                one{"{0} t"}\r
+                other{"{0} t"}\r
+            }\r
+            microgram{\r
+                dnam{"µg"}\r
+                one{"{0} µg"}\r
+                other{"{0} µg"}\r
+            }\r
+            milligram{\r
+                dnam{"mg"}\r
+                one{"{0} mg"}\r
+                other{"{0} mg"}\r
+            }\r
+            ounce{\r
+                dnam{"oz"}\r
+                one{"{0} oz"}\r
+                other{"{0} oz"}\r
+                per{"{0}/oz"}\r
+            }\r
+            ounce-troy{\r
+                dnam{"torooy os"}\r
+                one{"{0} oz t"}\r
+                other{"{0} oz t"}\r
+            }\r
+            pound{\r
+                dnam{"bownd"}\r
+                one{"{0} lb"}\r
+                other{"{0} lb"}\r
+                per{"{0}/lb"}\r
+            }\r
+            ton{\r
+                dnam{"tan"}\r
+                one{"{0} tn"}\r
+                other{"{0} tn"}\r
+            }\r
+        }\r
+        power{\r
+            gigawatt{\r
+                dnam{"GW"}\r
+                one{"{0} GW"}\r
+                other{"{0} GW"}\r
+            }\r
+            horsepower{\r
+                dnam{"hp"}\r
+                one{"{0} hp"}\r
+                other{"{0} hp"}\r
+            }\r
+            kilowatt{\r
+                dnam{"kW"}\r
+                one{"{0} kW"}\r
+                other{"{0} kW"}\r
+            }\r
+            megawatt{\r
+                dnam{"MW"}\r
+                one{"{0} MW"}\r
+                other{"{0} MW"}\r
+            }\r
+            milliwatt{\r
+                dnam{"mW"}\r
+                one{"{0} mW"}\r
+                other{"{0} mW"}\r
+            }\r
+            watt{\r
+                dnam{"waat"}\r
+                one{"{0} W"}\r
+                other{"{0} W"}\r
+            }\r
+        }\r
+        pressure{\r
+            atmosphere{\r
+                dnam{"jawiga"}\r
+                one{"{0} atm"}\r
+                other{"{0} atm"}\r
+            }\r
+            hectopascal{\r
+                dnam{"hPa"}\r
+                one{"{0} hPa"}\r
+                other{"{0} hPa"}\r
+            }\r
+            inch-hg{\r
+                dnam{"inHg"}\r
+                one{"{0} inHg"}\r
+                other{"{0} inHg"}\r
+            }\r
+            millibar{\r
+                dnam{"mbar"}\r
+                one{"{0} mbar"}\r
+                other{"{0} mbar"}\r
+            }\r
+            millimeter-of-mercury{\r
+                dnam{"mm Hg"}\r
+                one{"{0} mm Hg"}\r
+                other{"{0} mm Hg"}\r
+            }\r
+            pound-per-square-inch{\r
+                dnam{"psi"}\r
+                one{"{0} psi"}\r
+                other{"{0} psi"}\r
+            }\r
+        }\r
+        speed{\r
+            kilometer-per-hour{\r
+                dnam{"kiilomitir saacaddiiba"}\r
+                one{"{0} kiilomitir saaciidaba"}\r
+                other{"{0} km/s"}\r
+            }\r
+            knot{\r
+                dnam{"gn"}\r
+                one{"{0} gn"}\r
+                other{"{0} gn"}\r
+            }\r
+            meter-per-second{\r
+                dnam{"mitir/ilbiriqsi"}\r
+                one{"{0} m/ilbiriqsi"}\r
+                other{"{0} m/ilbiriqsi"}\r
+            }\r
+            mile-per-hour{\r
+                dnam{"meyl saacaddiiba"}\r
+                one{"{0} m/s"}\r
+                other{"{0} m/s"}\r
+            }\r
+        }\r
+        temperature{\r
+            celsius{\r
+                dnam{"deg. C"}\r
+                one{"{0}°C"}\r
+                other{"{0}°C"}\r
+            }\r
+            fahrenheit{\r
+                dnam{"deg. F"}\r
+                one{"{0}°F"}\r
+                other{"{0}°F"}\r
+            }\r
+            generic{\r
+                dnam{"°"}\r
+                one{"{0}°"}\r
+                other{"{0}°"}\r
+            }\r
+            kelvin{\r
+                dnam{"K"}\r
+                one{"{0} K"}\r
+                other{"{0} K"}\r
+            }\r
+        }\r
+        volume{\r
+            acre-foot{\r
+                dnam{"akr ft"}\r
+                one{"{0} ac ft"}\r
+                other{"{0} ac ft"}\r
+            }\r
+            centiliter{\r
+                dnam{"cL"}\r
+                one{"{0} cL"}\r
+                other{"{0} cL"}\r
+            }\r
+            cubic-centimeter{\r
+                dnam{"cm³"}\r
+                one{"{0} cm³"}\r
+                other{"{0} cm³"}\r
+                per{"{0}/cm³"}\r
+            }\r
+            cubic-foot{\r
+                dnam{"fiit saddex jabbaaran"}\r
+                one{"{0} ft³"}\r
+                other{"{0} ft³"}\r
+            }\r
+            cubic-inch{\r
+                dnam{"inji saddex jabbaaran"}\r
+                one{"{0} in³"}\r
+                other{"{0} in³"}\r
+            }\r
+            cubic-kilometer{\r
+                dnam{"km³"}\r
+                one{"{0} km³"}\r
+                other{"{0} km³"}\r
+            }\r
+            cubic-meter{\r
+                dnam{"m³"}\r
+                one{"{0} m³"}\r
+                other{"{0} m³"}\r
+                per{"{0}/m³"}\r
+            }\r
+            cubic-mile{\r
+                dnam{"mi³"}\r
+                one{"{0} mi³"}\r
+                other{"{0} mi³"}\r
+            }\r
+            cubic-yard{\r
+                dnam{"yaardi saddex jabbaaran"}\r
+                one{"{0} yd³"}\r
+                other{"{0} yd³"}\r
+            }\r
+            cup{\r
+                dnam{"kaab"}\r
+                one{"{0} c"}\r
+                other{"{0} c"}\r
+            }\r
+            cup-metric{\r
+                dnam{"mcup"}\r
+                one{"{0} mc"}\r
+                other{"{0} mc"}\r
+            }\r
+            deciliter{\r
+                dnam{"dL"}\r
+                one{"{0} dL"}\r
+                other{"{0} dL"}\r
+            }\r
+            fluid-ounce{\r
+                dnam{"fuluud owns"}\r
+                one{"{0} fl oz"}\r
+                other{"{0} fl oz"}\r
+            }\r
+            gallon{\r
+                dnam{"US gal"}\r
+                one{"{0} gal US"}\r
+                other{"{0} gal US"}\r
+                per{"{0}/gal US"}\r
+            }\r
+            gallon-imperial{\r
+                dnam{"imb.gal"}\r
+                one{"{0} gal Imp."}\r
+                other{"{0} gal Imp."}\r
+                per{"{0}/gal Imp."}\r
+            }\r
+            hectoliter{\r
+                dnam{"hL"}\r
+                one{"{0} hL"}\r
+                other{"{0} hL"}\r
+            }\r
+            liter{\r
+                dnam{"litar"}\r
+                one{"{0} l"}\r
+                other{"{0} l"}\r
+                per{"{0}/l"}\r
+            }\r
+            megaliter{\r
+                dnam{"ML"}\r
+                one{"{0} ML"}\r
+                other{"{0} ML"}\r
+            }\r
+            milliliter{\r
+                dnam{"mL"}\r
+                one{"{0} mL"}\r
+                other{"{0} mL"}\r
+            }\r
+            pint{\r
+                dnam{"bints"}\r
+                one{"{0} pt"}\r
+                other{"{0} pt"}\r
+            }\r
+            pint-metric{\r
+                dnam{"mpt"}\r
+                one{"{0} mpt"}\r
+                other{"{0} mpt"}\r
+            }\r
+            quart{\r
+                dnam{"qt"}\r
+                one{"{0} qt"}\r
+                other{"{0} qt"}\r
+            }\r
+            tablespoon{\r
+                dnam{"malgacad"}\r
+                one{"{0} tbsp"}\r
+                other{"{0} tbsp"}\r
+            }\r
+            teaspoon{\r
+                dnam{"tsp"}\r
+                one{"{0} tsp"}\r
+                other{"{0} tsp"}\r
+            }\r
+        }\r
+    }\r
 }\r
index c1a69adb61828d87b734fa4b9bf6fcc5a2d8de9f..afd5f24f1dc560249f5dfb635e79cd80528ebb54 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 sq{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.50"}\r
     durationUnits{\r
         hm{"h:mm"}\r
         hms{"h:mm:ss"}\r
@@ -123,6 +123,16 @@ sq{
                 one{"{0} pjesë për milion"}\r
                 other{"{0} pjesë për milion"}\r
             }\r
+            percent{\r
+                dnam{"përqind"}\r
+                one{"{0} përqind"}\r
+                other{"{0} përqind"}\r
+            }\r
+            permille{\r
+                dnam{"përmijë"}\r
+                one{"{0} përmijë"}\r
+                other{"{0} përmijë"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -147,6 +157,7 @@ sq{
             }\r
         }\r
         coordinate{\r
+            dnam{"drejtimi kardinal"}\r
             east{"{0} Lindje"}\r
             north{"{0} Veri"}\r
             south{"{0} Jug"}\r
@@ -193,6 +204,11 @@ sq{
                 one{"{0} megabajt"}\r
                 other{"{0} megabajt"}\r
             }\r
+            petabyte{\r
+                dnam{"petabajt"}\r
+                one{"{0} petabajt"}\r
+                other{"{0} petabajt"}\r
+            }\r
             terabit{\r
                 dnam{"terabit"}\r
                 one{"{0} terabit"}\r
@@ -537,6 +553,11 @@ sq{
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"atmosferë"}\r
+                one{"{0} atmosferë"}\r
+                other{"{0} atmosferë"}\r
+            }\r
             hectopascal{\r
                 dnam{"hektopaskal"}\r
                 one{"{0} hektopaskal"}\r
@@ -785,6 +806,13 @@ sq{
         compound{\r
             per{"{0}/{1}"}\r
         }\r
+        concentr{\r
+            percent{\r
+                dnam{"%"}\r
+                one{"{0}%"}\r
+                other{"{0}%"}\r
+            }\r
+        }\r
         consumption{\r
             liter-per-100kilometers{\r
                 dnam{"L/100km"}\r
@@ -798,6 +826,7 @@ sq{
             }\r
         }\r
         coordinate{\r
+            dnam{"drejtimi"}\r
             east{"{0} L"}\r
             north{"{0} V"}\r
             south{"{0} J"}\r
@@ -1122,6 +1151,16 @@ sq{
                 one{"{0} ppm"}\r
                 other{"{0} ppm"}\r
             }\r
+            percent{\r
+                dnam{"%"}\r
+                one{"{0}%"}\r
+                other{"{0}%"}\r
+            }\r
+            permille{\r
+                dnam{"‰"}\r
+                one{"{0}‰"}\r
+                other{"{0}‰"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -1146,6 +1185,7 @@ sq{
             }\r
         }\r
         coordinate{\r
+            dnam{"drejtimi"}\r
             east{"{0} L"}\r
             north{"{0} V"}\r
             south{"{0} J"}\r
@@ -1192,6 +1232,11 @@ sq{
                 one{"{0} MB"}\r
                 other{"{0} MB"}\r
             }\r
+            petabyte{\r
+                dnam{"PBajt"}\r
+                one{"{0} PB"}\r
+                other{"{0} PB"}\r
+            }\r
             terabit{\r
                 dnam{"Tbit"}\r
                 one{"{0} Tb"}\r
@@ -1536,6 +1581,11 @@ sq{
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"atm"}\r
+                one{"{0} atm"}\r
+                other{"{0} atm"}\r
+            }\r
             hectopascal{\r
                 dnam{"hPa"}\r
                 one{"{0} hPa"}\r
index 20e0bfcad7d73184f12fd595a073e6808fdf52ae..561a03732c21ea437d1d7afd2ec6ae5b483d4fd4 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 sr{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.94"}\r
     durationUnits{\r
         hm{"h:mm"}\r
         hms{"h:mm:ss"}\r
@@ -143,6 +143,18 @@ sr{
                 one{"{0} честица на милион"}\r
                 other{"{0} честица на милион"}\r
             }\r
+            percent{\r
+                dnam{"проценат"}\r
+                few{"{0} процената"}\r
+                one{"{0} проценат"}\r
+                other{"{0} процената"}\r
+            }\r
+            permille{\r
+                dnam{"промил"}\r
+                few{"{0} промила"}\r
+                one{"{0} промил"}\r
+                other{"{0} промила"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -171,6 +183,7 @@ sr{
             }\r
         }\r
         coordinate{\r
+            dnam{"главни правац"}\r
             east{"{0}И"}\r
             north{"{0}С"}\r
             south{"{0}Ј"}\r
@@ -225,6 +238,12 @@ sr{
                 one{"{0} мегабајт"}\r
                 other{"{0} мегабајта"}\r
             }\r
+            petabyte{\r
+                dnam{"петабајти"}\r
+                few{"{0} петабајта"}\r
+                one{"{0} петабајт"}\r
+                other{"{0} петабајта"}\r
+            }\r
             terabit{\r
                 dnam{"терабитови"}\r
                 few{"{0} терабита"}\r
@@ -631,6 +650,12 @@ sr{
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"атмосфере"}\r
+                few{"{0} атмосфере"}\r
+                one{"{0} атмосфера"}\r
+                other{"{0} атмосфера"}\r
+            }\r
             hectopascal{\r
                 dnam{"хектопаскали"}\r
                 few{"{0} хектопаскала"}\r
@@ -926,6 +951,14 @@ sr{
         compound{\r
             per{"{0}/{1}"}\r
         }\r
+        concentr{\r
+            percent{\r
+                dnam{"%"}\r
+                few{"{0}%"}\r
+                one{"{0}%"}\r
+                other{"{0}%"}\r
+            }\r
+        }\r
         consumption{\r
             liter-per-100kilometers{\r
                 dnam{"L/100km"}\r
@@ -935,6 +968,7 @@ sr{
             }\r
         }\r
         coordinate{\r
+            dnam{"правац"}\r
             east{"{0}И"}\r
             north{"{0}С"}\r
             south{"{0}Ј"}\r
@@ -1291,6 +1325,18 @@ sr{
                 one{"{0} ppm"}\r
                 other{"{0} ppm"}\r
             }\r
+            percent{\r
+                dnam{"проценат"}\r
+                few{"{0}%"}\r
+                one{"{0}%"}\r
+                other{"{0}%"}\r
+            }\r
+            permille{\r
+                dnam{"промил"}\r
+                few{"{0}‰"}\r
+                one{"{0}‰"}\r
+                other{"{0}‰"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -1319,6 +1365,7 @@ sr{
             }\r
         }\r
         coordinate{\r
+            dnam{"правац"}\r
             east{"{0}И"}\r
             north{"{0}С"}\r
             south{"{0}Ј"}\r
@@ -1373,6 +1420,12 @@ sr{
                 one{"{0} MB"}\r
                 other{"{0} MB"}\r
             }\r
+            petabyte{\r
+                dnam{"PB"}\r
+                few{"{0} PB"}\r
+                one{"{0} PB"}\r
+                other{"{0} PB"}\r
+            }\r
             terabit{\r
                 dnam{"Tb"}\r
                 few{"{0} Tb"}\r
@@ -1779,6 +1832,12 @@ sr{
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"atm"}\r
+                few{"{0} atm"}\r
+                one{"{0} atm"}\r
+                other{"{0} atm"}\r
+            }\r
             hectopascal{\r
                 dnam{"hPa"}\r
                 few{"{0} hPa"}\r
index d52de6b3319c0ffb4301c097a5b07056d80d58d6..e17af248c91227f0fa06c6b8e446dcac3336905c 100644 (file)
@@ -2,7 +2,7 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 sr_Latn{\r
     %%Parent{"root"}\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.50"}\r
     durationUnits{\r
         hm{"h:mm"}\r
         hms{"h:mm:ss"}\r
@@ -144,6 +144,18 @@ sr_Latn{
                 one{"{0} čestica na milion"}\r
                 other{"{0} čestica na milion"}\r
             }\r
+            percent{\r
+                dnam{"procenat"}\r
+                few{"{0} procenata"}\r
+                one{"{0} procenat"}\r
+                other{"{0} procenata"}\r
+            }\r
+            permille{\r
+                dnam{"promil"}\r
+                few{"{0} promila"}\r
+                one{"{0} promil"}\r
+                other{"{0} promila"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -172,6 +184,7 @@ sr_Latn{
             }\r
         }\r
         coordinate{\r
+            dnam{"glavni pravac"}\r
             east{"{0}I"}\r
             north{"{0}S"}\r
             south{"{0}J"}\r
@@ -226,6 +239,12 @@ sr_Latn{
                 one{"{0} megabajt"}\r
                 other{"{0} megabajta"}\r
             }\r
+            petabyte{\r
+                dnam{"petabajti"}\r
+                few{"{0} petabajta"}\r
+                one{"{0} petabajt"}\r
+                other{"{0} petabajta"}\r
+            }\r
             terabit{\r
                 dnam{"terabitovi"}\r
                 few{"{0} terabita"}\r
@@ -632,6 +651,12 @@ sr_Latn{
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"atmosfere"}\r
+                few{"{0} atmosfere"}\r
+                one{"{0} atmosfera"}\r
+                other{"{0} atmosfera"}\r
+            }\r
             hectopascal{\r
                 dnam{"hektopaskali"}\r
                 few{"{0} hektopaskala"}\r
@@ -927,6 +952,14 @@ sr_Latn{
         compound{\r
             per{"{0}/{1}"}\r
         }\r
+        concentr{\r
+            percent{\r
+                dnam{"%"}\r
+                few{"{0}%"}\r
+                one{"{0}%"}\r
+                other{"{0}%"}\r
+            }\r
+        }\r
         consumption{\r
             liter-per-100kilometers{\r
                 dnam{"L/100km"}\r
@@ -936,6 +969,7 @@ sr_Latn{
             }\r
         }\r
         coordinate{\r
+            dnam{"pravac"}\r
             east{"{0}I"}\r
             north{"{0}S"}\r
             south{"{0}J"}\r
@@ -1292,6 +1326,18 @@ sr_Latn{
                 one{"{0} ppm"}\r
                 other{"{0} ppm"}\r
             }\r
+            percent{\r
+                dnam{"procenat"}\r
+                few{"{0}%"}\r
+                one{"{0}%"}\r
+                other{"{0}%"}\r
+            }\r
+            permille{\r
+                dnam{"promil"}\r
+                few{"{0}‰"}\r
+                one{"{0}‰"}\r
+                other{"{0}‰"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -1320,6 +1366,7 @@ sr_Latn{
             }\r
         }\r
         coordinate{\r
+            dnam{"pravac"}\r
             east{"{0}I"}\r
             north{"{0}S"}\r
             south{"{0}J"}\r
@@ -1374,6 +1421,12 @@ sr_Latn{
                 one{"{0} MB"}\r
                 other{"{0} MB"}\r
             }\r
+            petabyte{\r
+                dnam{"PB"}\r
+                few{"{0} PB"}\r
+                one{"{0} PB"}\r
+                other{"{0} PB"}\r
+            }\r
             terabit{\r
                 dnam{"Tb"}\r
                 few{"{0} Tb"}\r
@@ -1780,6 +1833,12 @@ sr_Latn{
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"atm"}\r
+                few{"{0} atm"}\r
+                one{"{0} atm"}\r
+                other{"{0} atm"}\r
+            }\r
             hectopascal{\r
                 dnam{"hPa"}\r
                 few{"{0} hPa"}\r
index f5680c8407a790ef810e2cbf6705b7d0acd4d7b2..b94a2944e974f60c09292437afb8dae22796fc07 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 sv{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.94"}\r
     durationUnits{\r
         hm{"h:mm"}\r
         hms{"h:mm:ss"}\r
@@ -123,6 +123,16 @@ sv{
                 one{"{0} miljondel"}\r
                 other{"{0} miljondelar"}\r
             }\r
+            percent{\r
+                dnam{"procent"}\r
+                one{"{0} procent"}\r
+                other{"{0} procent"}\r
+            }\r
+            permille{\r
+                dnam{"promille"}\r
+                one{"{0} promille"}\r
+                other{"{0} promille"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -147,6 +157,7 @@ sv{
             }\r
         }\r
         coordinate{\r
+            dnam{"kompassriktning"}\r
             east{"{0} öst"}\r
             north{"{0} nord"}\r
             south{"{0} syd"}\r
@@ -193,6 +204,11 @@ sv{
                 one{"{0} megabyte"}\r
                 other{"{0} megabyte"}\r
             }\r
+            petabyte{\r
+                dnam{"petabyte"}\r
+                one{"{0} petabyte"}\r
+                other{"{0} petabyte"}\r
+            }\r
             terabit{\r
                 dnam{"terabit"}\r
                 one{"{0} terabit"}\r
@@ -552,6 +568,11 @@ sv{
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"atmosfärer"}\r
+                one{"{0} atmosfär"}\r
+                other{"{0} atmosfärer"}\r
+            }\r
             hectopascal{\r
                 dnam{"hektopascal"}\r
                 one{"{0} hektopascal"}\r
@@ -871,6 +892,16 @@ sv{
                 one{"{0} ppm"}\r
                 other{"{0} ppm"}\r
             }\r
+            percent{\r
+                dnam{"%"}\r
+                one{"{0} %"}\r
+                other{"{0} %"}\r
+            }\r
+            permille{\r
+                dnam{"‰"}\r
+                one{"{0}‰"}\r
+                other{"{0}‰"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -895,6 +926,7 @@ sv{
             }\r
         }\r
         coordinate{\r
+            dnam{"riktning"}\r
             east{"{0}Ö"}\r
             north{"{0}N"}\r
             south{"{0}S"}\r
@@ -1280,6 +1312,11 @@ sv{
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"atm"}\r
+                one{"{0}atm"}\r
+                other{"{0}atm"}\r
+            }\r
             hectopascal{\r
                 dnam{"hPa"}\r
                 one{"{0}hPa"}\r
@@ -1599,6 +1636,16 @@ sv{
                 one{"{0} ppm"}\r
                 other{"{0} ppm"}\r
             }\r
+            percent{\r
+                dnam{"%"}\r
+                one{"{0} %"}\r
+                other{"{0} %"}\r
+            }\r
+            permille{\r
+                dnam{"‰"}\r
+                one{"{0} ‰"}\r
+                other{"{0} ‰"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -1623,6 +1670,7 @@ sv{
             }\r
         }\r
         coordinate{\r
+            dnam{"väderstreck"}\r
             east{"{0} Ö"}\r
             north{"{0} N"}\r
             south{"{0} S"}\r
@@ -1669,6 +1717,11 @@ sv{
                 one{"{0} MB"}\r
                 other{"{0} MB"}\r
             }\r
+            petabyte{\r
+                dnam{"PB"}\r
+                one{"{0} PB"}\r
+                other{"{0} PB"}\r
+            }\r
             terabit{\r
                 dnam{"Tb"}\r
                 one{"{0} Tb"}\r
@@ -2028,6 +2081,11 @@ sv{
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"atm"}\r
+                one{"{0} atm"}\r
+                other{"{0} atm"}\r
+            }\r
             hectopascal{\r
                 dnam{"hPa"}\r
                 one{"{0} hPa"}\r
index 48a2dd91fc5a75fb011676090895cd80b5e20b04..1f1784e9e20d85ac7882aa4114e56aced3d083f8 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 sw{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.65"}\r
     durationUnits{\r
         hm{"h:mm"}\r
         hms{"h:mm:ss"}\r
@@ -123,6 +123,16 @@ sw{
                 one{"ppm {0}"}\r
                 other{"ppm {0}"}\r
             }\r
+            percent{\r
+                dnam{"asilimia"}\r
+                one{"asilimia {0}"}\r
+                other{"asilimia {0}"}\r
+            }\r
+            permille{\r
+                dnam{"kwa elfu"}\r
+                one{"{0} kwa kila elfu"}\r
+                other{"{0} kwa kila elfu"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -147,6 +157,7 @@ sw{
             }\r
         }\r
         coordinate{\r
+            dnam{"sehemu kuu za dira"}\r
             east{"{0} Mashariki"}\r
             north{"{0} Kaskazini"}\r
             south{"{0} Kusini"}\r
@@ -193,6 +204,11 @@ sw{
                 one{"megabaiti {0}"}\r
                 other{"megabaiti {0}"}\r
             }\r
+            petabyte{\r
+                dnam{"petabaiti"}\r
+                one{"petabaiti {0}"}\r
+                other{"petabaiti {0}"}\r
+            }\r
             terabit{\r
                 dnam{"terabiti"}\r
                 one{"terabiti {0}"}\r
@@ -537,6 +553,11 @@ sw{
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"kanieneo ya hewa"}\r
+                one{"kanieneo {0}"}\r
+                other{"kanieneo {0}"}\r
+            }\r
             hectopascal{\r
                 dnam{"hektopaskali"}\r
                 one{"hektopaskali {0}"}\r
@@ -785,6 +806,13 @@ sw{
         compound{\r
             per{"{0}/{1}"}\r
         }\r
+        concentr{\r
+            percent{\r
+                dnam{"asilimia"}\r
+                one{"asilimia {0}"}\r
+                other{"asilimia {0}"}\r
+            }\r
+        }\r
         consumption{\r
             liter-per-100kilometers{\r
                 dnam{"lita kwa kilomita 100"}\r
@@ -793,6 +821,7 @@ sw{
             }\r
         }\r
         coordinate{\r
+            dnam{"mwelekeo"}\r
             east{"{0} Mashariki"}\r
             north{"{0} Kaskazini"}\r
             south{"{0} Kusini"}\r
@@ -1099,6 +1128,16 @@ sw{
                 one{"ppm {0}"}\r
                 other{"ppm {0}"}\r
             }\r
+            percent{\r
+                dnam{"asilimia"}\r
+                one{"asilimia {0}"}\r
+                other{"asilimia {0}"}\r
+            }\r
+            permille{\r
+                dnam{"kwa elfu"}\r
+                one{"{0} kwa elfu"}\r
+                other{"{0} kwa elfu"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -1123,6 +1162,7 @@ sw{
             }\r
         }\r
         coordinate{\r
+            dnam{"mwelekeo"}\r
             east{"{0} Mashariki"}\r
             north{"{0} Kaskazini"}\r
             south{"{0} Kusini"}\r
@@ -1169,6 +1209,11 @@ sw{
                 one{"MB {0}"}\r
                 other{"MB {0}"}\r
             }\r
+            petabyte{\r
+                dnam{"petabaiti"}\r
+                one{"PB {0}"}\r
+                other{"PB {0}"}\r
+            }\r
             terabit{\r
                 dnam{"terabiti"}\r
                 one{"terabiti {0}"}\r
@@ -1513,6 +1558,11 @@ sw{
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"atm"}\r
+                one{"atm {0}"}\r
+                other{"atm {0}"}\r
+            }\r
             hectopascal{\r
                 dnam{"hektopaskali"}\r
                 one{"hPa {0}"}\r
index 538ca251d6782eb6464068b0d876564a3ff6ec49..5fcf098dd958f872b4679b86181897561635bf18 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 ta{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.50"}\r
     durationUnits{\r
         hm{"h:mm"}\r
         hms{"h:mm:ss"}\r
@@ -123,6 +123,16 @@ ta{
                 one{"{0} பகுதி/மில்லியன்"}\r
                 other{"{0} பகுதிகள்/மில்லியன்"}\r
             }\r
+            percent{\r
+                dnam{"சதவீதம்"}\r
+                one{"{0} சதவீதம்"}\r
+                other{"{0} சதவீதம்"}\r
+            }\r
+            permille{\r
+                dnam{"மில்லி ஒன்றுக்கு"}\r
+                one{"மில்லி ஒன்றுக்கு {0}"}\r
+                other{"மில்லி ஒன்றுக்கு {0}"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -147,6 +157,7 @@ ta{
             }\r
         }\r
         coordinate{\r
+            dnam{"கார்டினல் திசை"}\r
             east{"{0}கி"}\r
             north{"{0}வ"}\r
             south{"{0}தெ"}\r
@@ -193,6 +204,11 @@ ta{
                 one{"{0} மெகாபைட்"}\r
                 other{"{0} மெகாபைட்கள்"}\r
             }\r
+            petabyte{\r
+                dnam{"பெடாபைட்கள்"}\r
+                one{"{0} பெடாபைட்"}\r
+                other{"{0} பெடாபைட்கள்"}\r
+            }\r
             terabit{\r
                 dnam{"டெரா பிட்கள்"}\r
                 one{"{0} டெராபிட்"}\r
@@ -542,6 +558,11 @@ ta{
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"வளிஅழுத்தம்"}\r
+                one{"{0} வளிஅழுத்தம்"}\r
+                other{"{0} வளிஅழுத்தங்கள்"}\r
+            }\r
             hectopascal{\r
                 dnam{"ஹெக்டோபாஸ்கல்"}\r
                 one{"{0} ஹெக்டோபாஸ்கல்"}\r
@@ -790,6 +811,13 @@ ta{
         compound{\r
             per{"{0}/{1}"}\r
         }\r
+        concentr{\r
+            percent{\r
+                dnam{"%"}\r
+                one{"{0}%"}\r
+                other{"{0}%"}\r
+            }\r
+        }\r
         consumption{\r
             liter-per-100kilometers{\r
                 dnam{"லி./100கி.மீ"}\r
@@ -798,6 +826,7 @@ ta{
             }\r
         }\r
         coordinate{\r
+            dnam{"திசை"}\r
             east{"{0}கி"}\r
             north{"{0}வ"}\r
             south{"{0}தெ"}\r
@@ -1157,6 +1186,16 @@ ta{
                 one{"{0} ப./மி."}\r
                 other{"{0} ப./மி."}\r
             }\r
+            percent{\r
+                dnam{"சதவீதம்"}\r
+                one{"{0}%"}\r
+                other{"{0}%"}\r
+            }\r
+            permille{\r
+                dnam{"மில்லி ஒன்றுக்கு"}\r
+                one{"{0}‰"}\r
+                other{"{0}‰"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -1181,6 +1220,7 @@ ta{
             }\r
         }\r
         coordinate{\r
+            dnam{"திசை"}\r
             east{"{0}கி"}\r
             north{"{0}வ"}\r
             south{"{0}தெ"}\r
@@ -1227,6 +1267,11 @@ ta{
                 one{"{0} MB"}\r
                 other{"{0} MB"}\r
             }\r
+            petabyte{\r
+                dnam{"PB"}\r
+                one{"{0} PB"}\r
+                other{"{0} PB"}\r
+            }\r
             terabit{\r
                 dnam{"டெ.பி."}\r
                 one{"{0} Tb"}\r
@@ -1576,6 +1621,11 @@ ta{
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"atm"}\r
+                one{"{0} atm"}\r
+                other{"{0} atm"}\r
+            }\r
             hectopascal{\r
                 dnam{"ஹெ.பாஸ்."}\r
                 one{"{0} ஹெ.பாஸ்."}\r
index 55d01124183cdf2586a49ac1fcc7d9e01c23dc04..b262fccb9afba60e4c2dadcb79f2fd4eb9d915c1 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 te{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.50"}\r
     durationUnits{\r
         hm{"h:mm"}\r
         hms{"h:mm:ss"}\r
@@ -123,6 +123,16 @@ te{
                 one{"{0} భాగం/మిలియన్"}\r
                 other{"{0} భాగాలు/మిలియన్"}\r
             }\r
+            percent{\r
+                dnam{"శాతం"}\r
+                one{"{0} శాతం"}\r
+                other{"{0} శాతం"}\r
+            }\r
+            permille{\r
+                dnam{"మైలుకు"}\r
+                one{"{0}/మైలుకు"}\r
+                other{"{0}/మైలుకు"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -147,6 +157,7 @@ te{
             }\r
         }\r
         coordinate{\r
+            dnam{"కార్డినల్ దిశ"}\r
             east{"{0} తూర్పు"}\r
             north{"{0} ఉత్తరం"}\r
             south{"{0} దక్షిణం"}\r
@@ -193,6 +204,11 @@ te{
                 one{"{0} మెగాబైట్"}\r
                 other{"{0} మెగాబైట్లు"}\r
             }\r
+            petabyte{\r
+                dnam{"పెటాబైట్లు"}\r
+                one{"{0} పెటాబైట్"}\r
+                other{"{0} పెటాబైట్లు"}\r
+            }\r
             terabit{\r
                 dnam{"టెరాబిట్లు"}\r
                 one{"{0} టెరాబిట్"}\r
@@ -542,6 +558,11 @@ te{
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"వాతావరణాలు"}\r
+                one{"{0} వాతావరణం"}\r
+                other{"{0} వాతావరణాలు"}\r
+            }\r
             hectopascal{\r
                 dnam{"హెక్టోపాస్కల్‌లు"}\r
                 one{"{0} హెక్టోపాస్కల్"}\r
@@ -790,6 +811,13 @@ te{
         compound{\r
             per{"{0}/{1}"}\r
         }\r
+        concentr{\r
+            percent{\r
+                dnam{"%"}\r
+                one{"{0}%"}\r
+                other{"{0}%"}\r
+            }\r
+        }\r
         consumption{\r
             liter-per-100kilometers{\r
                 dnam{"లీ/100కి.మీ."}\r
@@ -798,6 +826,7 @@ te{
             }\r
         }\r
         coordinate{\r
+            dnam{"దిశ"}\r
             east{"{0} తూ."}\r
             north{"{0} ఉ."}\r
             south{"{0} ద."}\r
@@ -1157,6 +1186,16 @@ te{
                 one{"{0} భా./మి."}\r
                 other{"{0} భా./మి."}\r
             }\r
+            percent{\r
+                dnam{"శాతం"}\r
+                one{"{0}%"}\r
+                other{"{0}%"}\r
+            }\r
+            permille{\r
+                dnam{"మైలుకు"}\r
+                one{"{0}‰"}\r
+                other{"{0}‰"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -1181,6 +1220,7 @@ te{
             }\r
         }\r
         coordinate{\r
+            dnam{"దిశ"}\r
             east{"{0} తూ."}\r
             north{"{0} ఉ."}\r
             south{"{0} ద."}\r
@@ -1227,6 +1267,11 @@ te{
                 one{"{0} ఎమ్‌బి"}\r
                 other{"{0} ఎమ్‌బి"}\r
             }\r
+            petabyte{\r
+                dnam{"పె.బైట్"}\r
+                one{"{0} పీబీ"}\r
+                other{"{0} పీబీ"}\r
+            }\r
             terabit{\r
                 dnam{"టె.బిట్"}\r
                 one{"{0} టె.బిట్"}\r
@@ -1358,9 +1403,9 @@ te{
         }\r
         frequency{\r
             gigahertz{\r
-                dnam{"గిగా హె"}\r
-                one{"{0} గిగా హె"}\r
-                other{"{0} గిగా హె"}\r
+                dnam{"గిగా హెడ్జ్"}\r
+                one{"{0} గిగా హెడ్జ్"}\r
+                other{"{0} గిగా హెడ్జ్"}\r
             }\r
             hertz{\r
                 dnam{"హెర్ట్‌జ్"}\r
@@ -1466,6 +1511,8 @@ te{
             }\r
             point{\r
                 dnam{"పాయింట్‌లు"}\r
+                one{"{0} pt"}\r
+                other{"{0} pt"}\r
             }\r
             yard{\r
                 dnam{"గజాలు"}\r
@@ -1574,6 +1621,11 @@ te{
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"వాతావ"}\r
+                one{"{0} వాతావ"}\r
+                other{"{0} వాతావ"}\r
+            }\r
             hectopascal{\r
                 dnam{"హె.పా"}\r
                 one{"{0} హె.పా"}\r
index f0d2dcc63b1a9d92170ab5565b7163807fe72efd..123e837d0c0744a0a6ad0c56d76e2296dcb1b9ca 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 tg{\r
-    Version{"2.1.38.71"}\r
+    Version{"2.1.44.88"}\r
     durationUnits{\r
         hm{"h:mm"}\r
         hms{"h:mm:ss"}\r
index 4082423e0df342d2ae549b4ed5a6bd84885e5ec7..d89d24e5e18a28406df5d641aa4331df074fa9df 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 th{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.89"}\r
     durationUnits{\r
         hm{"h:mm"}\r
         hms{"h:mm:ss"}\r
@@ -103,6 +103,14 @@ th{
                 dnam{"ส่วนต่อล้าน"}\r
                 other{"{0} ส่วนต่อล้าน"}\r
             }\r
+            percent{\r
+                dnam{"เปอร์เซ็นต์"}\r
+                other{"{0} เปอร์เซ็นต์"}\r
+            }\r
+            permille{\r
+                dnam{"เปอร์มิลล์"}\r
+                other{"{0} เปอร์มิลล์"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -123,6 +131,7 @@ th{
             }\r
         }\r
         coordinate{\r
+            dnam{"สี่ทิศหลัก"}\r
             east{"{0}ตะวันออก"}\r
             north{"{0}เหนือ"}\r
             south{"{0}ใต้"}\r
@@ -161,6 +170,10 @@ th{
                 dnam{"เมกะไบต์"}\r
                 other{"{0} เมกะไบต์"}\r
             }\r
+            petabyte{\r
+                dnam{"เพตาไบต์"}\r
+                other{"{0} เพตะไบต์"}\r
+            }\r
             terabit{\r
                 dnam{"เทราบิต"}\r
                 other{"{0} เทราบิต"}\r
@@ -443,6 +456,10 @@ th{
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"บรรยากาศ"}\r
+                other{"{0} บรรยากาศ"}\r
+            }\r
             hectopascal{\r
                 dnam{"เฮกโตปาสกาล"}\r
                 other{"{0} เฮกโตปาสกาล"}\r
@@ -644,6 +661,12 @@ th{
         compound{\r
             per{"{0}/{1}"}\r
         }\r
+        concentr{\r
+            percent{\r
+                dnam{"%"}\r
+                other{"{0}%"}\r
+            }\r
+        }\r
         consumption{\r
             liter-per-100kilometers{\r
                 dnam{"ล. /100 กม."}\r
@@ -651,9 +674,10 @@ th{
             }\r
         }\r
         coordinate{\r
+            dnam{"ทิศ"}\r
             east{"{0} ตอ"}\r
             north{"{0} น"}\r
-            south{"{0}à¹\83à¸\95à¹\89"}\r
+            south{"{0}à¸\95"}\r
             west{"{0} ตต"}\r
         }\r
         duration{\r
@@ -909,6 +933,14 @@ th{
                 dnam{"ส่วน/ล้าน"}\r
                 other{"{0} สตล."}\r
             }\r
+            percent{\r
+                dnam{"%"}\r
+                other{"{0}%"}\r
+            }\r
+            permille{\r
+                dnam{"‰"}\r
+                other{"{0}‰"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -929,9 +961,10 @@ th{
             }\r
         }\r
         coordinate{\r
+            dnam{"ทิศหลัก"}\r
             east{"{0} ตอ"}\r
             north{"{0} น"}\r
-            south{"{0}ใต้"}\r
+            south{"{0} ต"}\r
             west{"{0} ตต"}\r
         }\r
         digital{\r
@@ -967,6 +1000,10 @@ th{
                 dnam{"MB"}\r
                 other{"{0} MB"}\r
             }\r
+            petabyte{\r
+                dnam{"PB"}\r
+                other{"{0} PB"}\r
+            }\r
             terabit{\r
                 dnam{"Tb"}\r
                 other{"{0} Tb"}\r
@@ -1249,6 +1286,10 @@ th{
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"บรรยากาศ"}\r
+                other{"{0} atm"}\r
+            }\r
             hectopascal{\r
                 dnam{"เฮกโตปาสกาล"}\r
                 other{"{0} เฮกโตปาสกาล"}\r
index 4a6c1a4097d490f9b29ee702d014f37b69d0ebdd..617370f58dcaa46a41183203af0507374090fc9f 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 ti{\r
-    Version{"2.1.38.72"}\r
+    Version{"2.1.44.88"}\r
     durationUnits{\r
         hm{"h:mm"}\r
         hms{"h:mm:ss"}\r
diff --git a/source/data/unit/tk.txt b/source/data/unit/tk.txt
new file mode 100644 (file)
index 0000000..97117f8
--- /dev/null
@@ -0,0 +1,1631 @@
+// © 2016 and later: Unicode, Inc. and others.\r
+// License & terms of use: http://www.unicode.org/copyright.html#License\r
+tk{\r
+    Version{"2.1.43.65"}\r
+    durationUnits{\r
+        hm{"h:mm"}\r
+        hms{"hh:mm:ss"}\r
+        ms{"m:ss"}\r
+    }\r
+    units{\r
+        acceleration{\r
+            g-force{\r
+                dnam{"erkin düşüş tizlenmesi"}\r
+                one{"{0} G"}\r
+                other{"{0} G"}\r
+            }\r
+            meter-per-second-squared{\r
+                dnam{"inedördül sekuntda metr"}\r
+                one{"{0} metr/inedördül sekunt"}\r
+                other{"{0} metr/inedördül sekunt"}\r
+            }\r
+        }\r
+        angle{\r
+            arc-minute{\r
+                dnam{"burç minudy"}\r
+                one{"{0} burç minudy"}\r
+                other{"{0} burç minudy"}\r
+            }\r
+            arc-second{\r
+                dnam{"burç sekundy"}\r
+                one{"{0} burç sekundy"}\r
+                other{"{0} burç sekundy"}\r
+            }\r
+            degree{\r
+                dnam{"dereje"}\r
+                one{"{0} dereje"}\r
+                other{"{0} dereje"}\r
+            }\r
+            radian{\r
+                dnam{"radian"}\r
+                one{"{0} radian"}\r
+                other{"{0} radian"}\r
+            }\r
+            revolution{\r
+                dnam{"aýlaw"}\r
+                one{"{0} aýlaw"}\r
+                other{"{0} aýlaw"}\r
+            }\r
+        }\r
+        area{\r
+            acre{\r
+                dnam{"akr"}\r
+                one{"{0} akr"}\r
+                other{"{0} akr"}\r
+            }\r
+            hectare{\r
+                dnam{"gektar"}\r
+                one{"{0} gektar"}\r
+                other{"{0} gektar"}\r
+            }\r
+            square-centimeter{\r
+                dnam{"inedördül santimetr"}\r
+                one{"{0} inedördül santimetr"}\r
+                other{"{0} inedördül santimetr"}\r
+                per{"{0}/inedördül santimetr"}\r
+            }\r
+            square-foot{\r
+                dnam{"inedördül fut"}\r
+                one{"{0} inedördül fut"}\r
+                other{"{0} inedördül fut"}\r
+            }\r
+            square-inch{\r
+                dnam{"inedördül dýuým"}\r
+                one{"{0} inedördül dýuým"}\r
+                other{"{0} inedördül dýuým"}\r
+                per{"{0}/inedördül dýuým"}\r
+            }\r
+            square-kilometer{\r
+                dnam{"inedördül kilometr"}\r
+                one{"{0} inedördül kilometr"}\r
+                other{"{0} inedördül kilometr"}\r
+                per{"{0} /inedördül kilometr"}\r
+            }\r
+            square-meter{\r
+                dnam{"inedördül metr"}\r
+                one{"{0} inedördül metr"}\r
+                other{"{0} inedördül metr"}\r
+                per{"{0}/inedördül metr"}\r
+            }\r
+            square-mile{\r
+                dnam{"inedördül mil"}\r
+                one{"{0} inedördül mil"}\r
+                other{"{0} inedördül mil"}\r
+                per{"{0} /inedördül mil"}\r
+            }\r
+            square-yard{\r
+                dnam{"inedördül ýard"}\r
+                one{"{0} inedördül ýard"}\r
+                other{"{0} inedördül ýard"}\r
+            }\r
+        }\r
+        compound{\r
+            per{"{1} başyna {0}"}\r
+        }\r
+        concentr{\r
+            karat{\r
+                dnam{"karat"}\r
+                one{"{0} karat"}\r
+                other{"{0} karat"}\r
+            }\r
+            milligram-per-deciliter{\r
+                dnam{"milligram/desilitr"}\r
+                one{"{0} milligram/desilitr"}\r
+                other{"{0} milligram/desilitr"}\r
+            }\r
+            millimole-per-liter{\r
+                dnam{"millimol/litr"}\r
+                one{"{0} millimol/litr"}\r
+                other{"{0} millimol/litr"}\r
+            }\r
+            part-per-million{\r
+                dnam{"bölejik/million"}\r
+                one{"{0} bölejik/million"}\r
+                other{"{0} bölejik/million"}\r
+            }\r
+            percent{\r
+                dnam{"göterim"}\r
+                one{"{0} göterim"}\r
+                other{"{0} göterim"}\r
+            }\r
+            permille{\r
+                dnam{"promille"}\r
+                one{"{0} promille"}\r
+                other{"{0} promille"}\r
+            }\r
+        }\r
+        consumption{\r
+            liter-per-100kilometers{\r
+                dnam{"litr/100 kilometr"}\r
+                one{"{0} litr/100 kilometr"}\r
+                other{"{0} litr/100 kilometr"}\r
+            }\r
+            liter-per-kilometer{\r
+                dnam{"litr/kilometr"}\r
+                one{"{0} litr/kilometr"}\r
+                other{"{0} litr/kilometr"}\r
+            }\r
+            mile-per-gallon{\r
+                dnam{"mil/gallon"}\r
+                one{"{0} mil/gallon"}\r
+                other{"{0} mil/gallon"}\r
+            }\r
+            mile-per-gallon-imperial{\r
+                dnam{"mil/imp. gallon"}\r
+                one{"{0} mil/imp. gallon"}\r
+                other{"{0} mil/imp. gallon"}\r
+            }\r
+        }\r
+        coordinate{\r
+            dnam{"esasy ugur"}\r
+            east{"{0} gündogar"}\r
+            north{"{0} demirgazyk"}\r
+            south{"{0} günorta"}\r
+            west{"{0} günbatar"}\r
+        }\r
+        digital{\r
+            bit{\r
+                dnam{"bit"}\r
+                one{"{0} bit"}\r
+                other{"{0} bit"}\r
+            }\r
+            byte{\r
+                dnam{"baýt"}\r
+                one{"{0} baýt"}\r
+                other{"{0} baýt"}\r
+            }\r
+            gigabit{\r
+                dnam{"gigabit"}\r
+                one{"{0} gigabit"}\r
+                other{"{0} gigabit"}\r
+            }\r
+            gigabyte{\r
+                dnam{"gigabaýt"}\r
+                one{"{0} gigabaýt"}\r
+                other{"{0} gigabaýt"}\r
+            }\r
+            kilobit{\r
+                dnam{"kilobit"}\r
+                one{"{0} kilobit"}\r
+                other{"{0} kilobit"}\r
+            }\r
+            kilobyte{\r
+                dnam{"kilobaýt"}\r
+                one{"{0} kilobaýt"}\r
+                other{"{0} kilobaýt"}\r
+            }\r
+            megabit{\r
+                dnam{"megabit"}\r
+                one{"{0} megabit"}\r
+                other{"{0} megabit"}\r
+            }\r
+            megabyte{\r
+                dnam{"megabaýt"}\r
+                one{"{0} megabaýt"}\r
+                other{"{0} megabaýt"}\r
+            }\r
+            petabyte{\r
+                dnam{"petabaýt"}\r
+                one{"{0} petabaýt"}\r
+                other{"{0} petabaýt"}\r
+            }\r
+            terabit{\r
+                dnam{"terabit"}\r
+                one{"{0} terabit"}\r
+                other{"{0} terabit"}\r
+            }\r
+            terabyte{\r
+                dnam{"terabaýt"}\r
+                one{"{0} terabaýt"}\r
+                other{"{0} terabaýt"}\r
+            }\r
+        }\r
+        duration{\r
+            century{\r
+                dnam{"asyr"}\r
+                one{"{0} asyr"}\r
+                other{"{0} asyr"}\r
+            }\r
+            day{\r
+                dnam{"gün"}\r
+                one{"{0} gün"}\r
+                other{"{0} gün"}\r
+                per{"{0}/gün"}\r
+            }\r
+            hour{\r
+                dnam{"sagat"}\r
+                one{"{0} sagat"}\r
+                other{"{0} sagat"}\r
+                per{"{0}/sagat"}\r
+            }\r
+            microsecond{\r
+                dnam{"mikrosekunt"}\r
+                one{"{0} mikrosekunt"}\r
+                other{"{0} mikrosekunt"}\r
+            }\r
+            millisecond{\r
+                dnam{"millisekunt"}\r
+                one{"{0} millisekunt"}\r
+                other{"{0} millisekunt"}\r
+            }\r
+            minute{\r
+                dnam{"minut"}\r
+                one{"{0} minut"}\r
+                other{"{0} minut"}\r
+                per{"{0}/minut"}\r
+            }\r
+            month{\r
+                dnam{"aý"}\r
+                one{"{0} aý"}\r
+                other{"{0} aý"}\r
+                per{"{0}/aý"}\r
+            }\r
+            nanosecond{\r
+                dnam{"nanosekunt"}\r
+                one{"{0} nanosekunt"}\r
+                other{"{0} nanosekunt"}\r
+            }\r
+            second{\r
+                dnam{"sekunt"}\r
+                one{"{0} sekunt"}\r
+                other{"{0} sekunt"}\r
+                per{"{0}/sekunt"}\r
+            }\r
+            week{\r
+                dnam{"hepde"}\r
+                one{"{0} hepde"}\r
+                other{"{0} hepde"}\r
+                per{"{0}/hepde"}\r
+            }\r
+            year{\r
+                dnam{"ýyl"}\r
+                one{"{0} ýyl"}\r
+                other{"{0} ýyl"}\r
+                per{"{0}/ý"}\r
+            }\r
+        }\r
+        electric{\r
+            ampere{\r
+                dnam{"amper"}\r
+                one{"{0} amper"}\r
+                other{"{0} amper"}\r
+            }\r
+            milliampere{\r
+                dnam{"milliamper"}\r
+                one{"{0} milliamper"}\r
+                other{"{0} milliamper"}\r
+            }\r
+            ohm{\r
+                dnam{"om"}\r
+                one{"{0} om"}\r
+                other{"{0} om"}\r
+            }\r
+            volt{\r
+                dnam{"wolt"}\r
+                one{"{0} wolt"}\r
+                other{"{0} wolt"}\r
+            }\r
+        }\r
+        energy{\r
+            calorie{\r
+                dnam{"kaloriýa"}\r
+                one{"{0} kaloriýa"}\r
+                other{"{0} kaloriýa"}\r
+            }\r
+            foodcalorie{\r
+                dnam{"Kaloriýa"}\r
+                one{"{0} kaloriýa"}\r
+                other{"{0} kaloriýa"}\r
+            }\r
+            joule{\r
+                dnam{"joul"}\r
+                one{"{0} joul"}\r
+                other{"{0} joul"}\r
+            }\r
+            kilocalorie{\r
+                dnam{"kilokaloriýa"}\r
+                one{"{0} kilokaloriýa"}\r
+                other{"{0} kilokaloriýa"}\r
+            }\r
+            kilojoule{\r
+                dnam{"kilojoul"}\r
+                one{"{0} kilojoul"}\r
+                other{"{0} kilojoul"}\r
+            }\r
+            kilowatt-hour{\r
+                dnam{"kilowat-sagat"}\r
+                one{"{0} kilowat-sagat"}\r
+                other{"{0} kilowat-sagat"}\r
+            }\r
+        }\r
+        frequency{\r
+            gigahertz{\r
+                dnam{"gigagers"}\r
+                one{"{0} gigagers"}\r
+                other{"{0} gigagers"}\r
+            }\r
+            hertz{\r
+                dnam{"gers"}\r
+                one{"{0} gers"}\r
+                other{"{0} gers"}\r
+            }\r
+            kilohertz{\r
+                dnam{"kilogers"}\r
+                one{"{0} kilogers"}\r
+                other{"{0} kilogers"}\r
+            }\r
+            megahertz{\r
+                dnam{"megagers"}\r
+                one{"{0} megagers"}\r
+                other{"{0} megagers"}\r
+            }\r
+        }\r
+        length{\r
+            astronomical-unit{\r
+                dnam{"astronomik birlik"}\r
+                one{"{0} astronomik birlik"}\r
+                other{"{0} astronomik birlik"}\r
+            }\r
+            centimeter{\r
+                dnam{"santimetr"}\r
+                one{"{0} santimetr"}\r
+                other{"{0} santimetr"}\r
+                per{"{0}/sm"}\r
+            }\r
+            decimeter{\r
+                dnam{"desimetr"}\r
+                one{"{0} desimetr"}\r
+                other{"{0} desimetr"}\r
+            }\r
+            foot{\r
+                dnam{"fut"}\r
+                one{"{0} fut"}\r
+                other{"{0} fut"}\r
+                per{"{0}/fut"}\r
+            }\r
+            inch{\r
+                dnam{"dýuým"}\r
+                one{"{0} dýuým"}\r
+                other{"{0} dýuým"}\r
+                per{"{0}/dýuým"}\r
+            }\r
+            kilometer{\r
+                dnam{"kilometr"}\r
+                one{"{0} kilometr"}\r
+                other{"{0} kilometr"}\r
+                per{"{0}/kilometr"}\r
+            }\r
+            light-year{\r
+                dnam{"ýagtylyk ýyly"}\r
+                one{"{0} ýagtylyk ýyly"}\r
+                other{"{0} ýagtylyk ýyly"}\r
+            }\r
+            meter{\r
+                dnam{"metr"}\r
+                one{"{0} metr"}\r
+                other{"{0} metr"}\r
+                per{"{0}/m"}\r
+            }\r
+            micrometer{\r
+                dnam{"mikrometr"}\r
+                one{"{0} mikrometr"}\r
+                other{"{0} mikrometr"}\r
+            }\r
+            mile{\r
+                dnam{"mil"}\r
+                one{"{0} mil"}\r
+                other{"{0} mil"}\r
+            }\r
+            mile-scandinavian{\r
+                dnam{"skandinaw mili"}\r
+                one{"{0} skandinaw mili"}\r
+                other{"{0} skandinaw mili"}\r
+            }\r
+            millimeter{\r
+                dnam{"millimetr"}\r
+                one{"{0} millimetr"}\r
+                other{"{0} millimetr"}\r
+            }\r
+            nanometer{\r
+                dnam{"nanometr"}\r
+                one{"{0} nanometr"}\r
+                other{"{0} nanometr"}\r
+            }\r
+            nautical-mile{\r
+                dnam{"deňiz mili"}\r
+                one{"{0} deňiz mili"}\r
+                other{"{0} deňiz mili"}\r
+            }\r
+            parsec{\r
+                dnam{"parsek"}\r
+                one{"{0} parsek"}\r
+                other{"{0} parsek"}\r
+            }\r
+            picometer{\r
+                dnam{"pikometr"}\r
+                one{"{0} pikometr"}\r
+                other{"{0} pikometr"}\r
+            }\r
+            point{\r
+                dnam{"punkt"}\r
+                one{"{0} punkt"}\r
+                other{"{0} punkt"}\r
+            }\r
+            yard{\r
+                dnam{"ýard"}\r
+                one{"{0} ýard"}\r
+                other{"{0} ýard"}\r
+            }\r
+        }\r
+        light{\r
+            lux{\r
+                dnam{"lýuks"}\r
+                one{"{0} lýuks"}\r
+                other{"{0} lýuks"}\r
+            }\r
+        }\r
+        mass{\r
+            carat{\r
+                dnam{"karat"}\r
+                one{"{0} karat"}\r
+                other{"{0} karat"}\r
+            }\r
+            gram{\r
+                dnam{"gram"}\r
+                one{"{0} gram"}\r
+                other{"{0} gram"}\r
+                per{"{0}/gram"}\r
+            }\r
+            kilogram{\r
+                dnam{"kilogram"}\r
+                one{"{0} kilogram"}\r
+                other{"{0} kilogram"}\r
+                per{"{0}/kilogram"}\r
+            }\r
+            metric-ton{\r
+                dnam{"metrik tonna"}\r
+                one{"{0} metrik tonna"}\r
+                other{"{0} metrik tonna"}\r
+            }\r
+            microgram{\r
+                dnam{"mikrogram"}\r
+                one{"{0} mikrogram"}\r
+                other{"{0} mikrogram"}\r
+            }\r
+            milligram{\r
+                dnam{"milligram"}\r
+                one{"{0} milligram"}\r
+                other{"{0} milligram"}\r
+            }\r
+            ounce{\r
+                dnam{"unsiýa"}\r
+                one{"{0} unsiýa"}\r
+                other{"{0} unsiýa"}\r
+                per{"{0}/unsiýa"}\r
+            }\r
+            ounce-troy{\r
+                dnam{"troý unsiýa"}\r
+                one{"{0} troý unsiýa"}\r
+                other{"{0} troý unsiýa"}\r
+            }\r
+            pound{\r
+                dnam{"funt"}\r
+                one{"{0} funt"}\r
+                other{"{0} funt"}\r
+                per{"{0}/funt"}\r
+            }\r
+            ton{\r
+                dnam{"tonna"}\r
+                one{"{0} tonna"}\r
+                other{"{0} tonna"}\r
+            }\r
+        }\r
+        power{\r
+            gigawatt{\r
+                dnam{"gigawat"}\r
+                one{"{0} gigawat"}\r
+                other{"{0} gigawat"}\r
+            }\r
+            horsepower{\r
+                dnam{"at güýji"}\r
+                one{"{0} at güýji"}\r
+                other{"{0} at güýji"}\r
+            }\r
+            kilowatt{\r
+                dnam{"kilowat"}\r
+                one{"{0} kilowat"}\r
+                other{"{0} kilowat"}\r
+            }\r
+            megawatt{\r
+                dnam{"megawat"}\r
+                one{"{0} megawat"}\r
+                other{"{0} megawat"}\r
+            }\r
+            milliwatt{\r
+                dnam{"milliwat"}\r
+                one{"{0} milliwat"}\r
+                other{"{0} milliwat"}\r
+            }\r
+            watt{\r
+                dnam{"wat"}\r
+                one{"{0} wat"}\r
+                other{"{0} wat"}\r
+            }\r
+        }\r
+        pressure{\r
+            atmosphere{\r
+                dnam{"atm"}\r
+                one{"{0} atmosfera"}\r
+                other{"{0} atmosfera"}\r
+            }\r
+            hectopascal{\r
+                dnam{"gektopaskal"}\r
+                one{"{0} gektopaskal"}\r
+                other{"{0} gektopaskal"}\r
+            }\r
+            inch-hg{\r
+                dnam{"dýuým simap sütüni"}\r
+                one{"{0} dýuým simap sütüni"}\r
+                other{"{0} dýuým simap sütüni"}\r
+            }\r
+            millibar{\r
+                dnam{"millibar"}\r
+                one{"{0} millibar"}\r
+                other{"{0} millibar"}\r
+            }\r
+            millimeter-of-mercury{\r
+                dnam{"millimetr simap sütüni"}\r
+                one{"{0} millimetr simap sütüni"}\r
+                other{"{0} millimetr simap sütüni"}\r
+            }\r
+            pound-per-square-inch{\r
+                dnam{"funt/inedördül dýuým"}\r
+                one{"{0} funt/inedördül dýuým"}\r
+                other{"{0} funt/inedördül dýuým"}\r
+            }\r
+        }\r
+        speed{\r
+            kilometer-per-hour{\r
+                dnam{"sagatda kilometr"}\r
+                one{"{0} kilometr/sagat"}\r
+                other{"{0} kilometr/sagat"}\r
+            }\r
+            knot{\r
+                dnam{"düwün"}\r
+                one{"{0} düwün"}\r
+                other{"{0} düwün"}\r
+            }\r
+            meter-per-second{\r
+                dnam{"sekuntda metr"}\r
+                one{"{0} metr/sekunt"}\r
+                other{"{0} metr/sekunt"}\r
+            }\r
+            mile-per-hour{\r
+                dnam{"sagatda mil"}\r
+                one{"{0} mil/sagat"}\r
+                other{"{0} mil/sagat"}\r
+            }\r
+        }\r
+        temperature{\r
+            celsius{\r
+                dnam{"Selsiý gradusy"}\r
+                one{"{0} Selsiý gradusy"}\r
+                other{"{0} Selsiý gradusy"}\r
+            }\r
+            fahrenheit{\r
+                dnam{"Farengeýt gradusy"}\r
+                one{"{0} Farengeýt gradusy"}\r
+                other{"{0} Farengeýt gradusy"}\r
+            }\r
+            generic{\r
+                dnam{"°"}\r
+                one{"{0}°"}\r
+                other{"{0}°"}\r
+            }\r
+            kelvin{\r
+                dnam{"Kelwin gradusy"}\r
+                one{"{0} Kelwin gradusy"}\r
+                other{"{0} Kelwin gradusy"}\r
+            }\r
+        }\r
+        volume{\r
+            acre-foot{\r
+                dnam{"akr-fut"}\r
+                one{"{0} akr-fut"}\r
+                other{"{0} akr-fut"}\r
+            }\r
+            centiliter{\r
+                dnam{"santilitr"}\r
+                one{"{0} santilitr"}\r
+                other{"{0} santilitr"}\r
+            }\r
+            cubic-centimeter{\r
+                dnam{"kub santimetr"}\r
+                one{"{0} kub santimetr"}\r
+                other{"{0} kub santimetr"}\r
+                per{"{0}/kub santimetr"}\r
+            }\r
+            cubic-foot{\r
+                dnam{"kub fut"}\r
+                one{"{0} kub fut"}\r
+                other{"{0} kub fut"}\r
+            }\r
+            cubic-inch{\r
+                dnam{"kub dýuým"}\r
+                one{"{0} kub dýuým"}\r
+                other{"{0} kub dýuým"}\r
+            }\r
+            cubic-kilometer{\r
+                dnam{"kub kilometr"}\r
+                one{"{0} kub kilometr"}\r
+                other{"{0} kub kilometr"}\r
+            }\r
+            cubic-meter{\r
+                dnam{"kub metr"}\r
+                one{"{0} kub metr"}\r
+                other{"{0} kub metr"}\r
+                per{"{0}/kub metr"}\r
+            }\r
+            cubic-mile{\r
+                dnam{"kub mil"}\r
+                one{"{0} kub mil"}\r
+                other{"{0} kub mil"}\r
+            }\r
+            cubic-yard{\r
+                dnam{"kub ýard"}\r
+                one{"{0} kub ýard"}\r
+                other{"{0} kub ýard"}\r
+            }\r
+            cup{\r
+                dnam{"käse"}\r
+                one{"{0} käse"}\r
+                other{"{0} käse"}\r
+            }\r
+            cup-metric{\r
+                dnam{"metrik käse"}\r
+                one{"{0} metrik käse"}\r
+                other{"{0} metrik käse"}\r
+            }\r
+            deciliter{\r
+                dnam{"desilitr"}\r
+                one{"{0} desilitr"}\r
+                other{"{0} desilitr"}\r
+            }\r
+            fluid-ounce{\r
+                dnam{"suwuklyk unsiýasy"}\r
+                one{"{0} suwuklyk unsiýasy"}\r
+                other{"{0} suwuklyk unsiýasy"}\r
+            }\r
+            gallon{\r
+                dnam{"gallon"}\r
+                one{"{0} gallon"}\r
+                other{"{0} gallon"}\r
+                per{"{0}/gallon"}\r
+            }\r
+            gallon-imperial{\r
+                dnam{"Imp. gallon"}\r
+                one{"{0} imp. gallon"}\r
+                other{"{0} imp. gallon"}\r
+                per{"{0} /imp. gallon"}\r
+            }\r
+            hectoliter{\r
+                dnam{"gektolitr"}\r
+                one{"{0} gektolitr"}\r
+                other{"{0} gektolitr"}\r
+            }\r
+            liter{\r
+                dnam{"litr"}\r
+                one{"{0} litr"}\r
+                other{"{0} litr"}\r
+                per{"{0} /litr"}\r
+            }\r
+            megaliter{\r
+                dnam{"megalitr"}\r
+                one{"{0} megalitr"}\r
+                other{"{0} megalitr"}\r
+            }\r
+            milliliter{\r
+                dnam{"millilitr"}\r
+                one{"{0} millilitr"}\r
+                other{"{0} millilitr"}\r
+            }\r
+            pint{\r
+                dnam{"pinta"}\r
+                one{"{0} pinta"}\r
+                other{"{0} pinta"}\r
+            }\r
+            pint-metric{\r
+                dnam{"metrik pinta"}\r
+                one{"{0} metrik pinta"}\r
+                other{"{0} metrik pinta"}\r
+            }\r
+            quart{\r
+                dnam{"kwarta"}\r
+                one{"{0} kwarta"}\r
+                other{"{0} kwarta"}\r
+            }\r
+            tablespoon{\r
+                dnam{"nahar çemçesi"}\r
+                one{"{0} nahar çemçesi"}\r
+                other{"{0} nahar çemçesi"}\r
+            }\r
+            teaspoon{\r
+                dnam{"çaý çemçesi"}\r
+                one{"{0} çaý çemçesi"}\r
+                other{"{0} çaý çemçesi"}\r
+            }\r
+        }\r
+    }\r
+    unitsNarrow{\r
+        compound{\r
+            per{"{0}/{1}"}\r
+        }\r
+        concentr{\r
+            percent{\r
+                dnam{"%"}\r
+                one{"{0}%"}\r
+                other{"{0}%"}\r
+            }\r
+        }\r
+        consumption{\r
+            liter-per-100kilometers{\r
+                dnam{"l/100 km"}\r
+                one{"{0} l/100 km"}\r
+                other{"{0} l/100 km"}\r
+            }\r
+        }\r
+        coordinate{\r
+            dnam{"ugur"}\r
+            east{"{0}gd"}\r
+            north{"{0}dg"}\r
+            south{"{0}go"}\r
+            west{"{0}gb"}\r
+        }\r
+        duration{\r
+            day{\r
+                dnam{"g"}\r
+                one{"{0}g"}\r
+                other{"{0}g"}\r
+            }\r
+            hour{\r
+                dnam{"sg"}\r
+                one{"{0}sg"}\r
+                other{"{0}sg"}\r
+            }\r
+            millisecond{\r
+                dnam{"ms"}\r
+                one{"{0}ms"}\r
+                other{"{0}ms"}\r
+            }\r
+            minute{\r
+                dnam{"m"}\r
+                one{"{0}m"}\r
+                other{"{0}m"}\r
+            }\r
+            month{\r
+                dnam{"a"}\r
+                one{"{0}a"}\r
+                other{"{0}a"}\r
+            }\r
+            second{\r
+                dnam{"se"}\r
+                one{"{0}se"}\r
+                other{"{0}se"}\r
+            }\r
+            week{\r
+                dnam{"h"}\r
+                one{"{0}h"}\r
+                other{"{0}h"}\r
+            }\r
+            year{\r
+                dnam{"ý"}\r
+                one{"{0}ý"}\r
+                other{"{0}ý"}\r
+            }\r
+        }\r
+        length{\r
+            centimeter{\r
+                dnam{"sm"}\r
+                one{"{0}sm"}\r
+                other{"{0}sm"}\r
+            }\r
+            kilometer{\r
+                dnam{"km"}\r
+                one{"{0}km"}\r
+                other{"{0}km"}\r
+            }\r
+            meter{\r
+                dnam{"m"}\r
+                one{"{0}m"}\r
+                other{"{0}m"}\r
+            }\r
+            millimeter{\r
+                dnam{"mm"}\r
+                one{"{0}mm"}\r
+                other{"{0}mm"}\r
+            }\r
+        }\r
+        mass{\r
+            gram{\r
+                dnam{"gram"}\r
+                one{"{0}g"}\r
+                other{"{0}g"}\r
+            }\r
+            kilogram{\r
+                dnam{"kg"}\r
+                one{"{0}kg"}\r
+                other{"{0}kg"}\r
+            }\r
+        }\r
+        speed{\r
+            kilometer-per-hour{\r
+                dnam{"km/sag"}\r
+                one{"{0}km/sag"}\r
+                other{"{0}km/sag"}\r
+            }\r
+        }\r
+        temperature{\r
+            celsius{\r
+                dnam{"°C"}\r
+                one{"{0}°C"}\r
+                other{"{0}°C"}\r
+            }\r
+        }\r
+        volume{\r
+            liter{\r
+                dnam{"litr"}\r
+                one{"{0}l"}\r
+                other{"{0}l"}\r
+            }\r
+        }\r
+    }\r
+    unitsShort{\r
+        acceleration{\r
+            g-force{\r
+                dnam{"G"}\r
+                one{"{0} G"}\r
+                other{"{0} G"}\r
+            }\r
+            meter-per-second-squared{\r
+                dnam{"m/s²"}\r
+                one{"{0} m/s²"}\r
+                other{"{0} m/s²"}\r
+            }\r
+        }\r
+        angle{\r
+            arc-minute{\r
+                dnam{"burç minudy"}\r
+                one{"{0} burç min."}\r
+                other{"{0} burç min."}\r
+            }\r
+            arc-second{\r
+                dnam{"burç sekundy"}\r
+                one{"{0} burç sek."}\r
+                other{"{0} burç sek."}\r
+            }\r
+            degree{\r
+                dnam{"dereje"}\r
+                one{"{0}°"}\r
+                other{"{0}°"}\r
+            }\r
+            radian{\r
+                dnam{"rad"}\r
+                one{"{0} rad"}\r
+                other{"{0} rad"}\r
+            }\r
+            revolution{\r
+                dnam{"aýl."}\r
+                one{"{0} aýl."}\r
+                other{"{0} aýl."}\r
+            }\r
+        }\r
+        area{\r
+            acre{\r
+                dnam{"akr"}\r
+                one{"{0} akr"}\r
+                other{"{0} akr"}\r
+            }\r
+            hectare{\r
+                dnam{"ga"}\r
+                one{"{0} ga"}\r
+                other{"{0} ga"}\r
+            }\r
+            square-centimeter{\r
+                dnam{"cm²"}\r
+                one{"{0} cm²"}\r
+                other{"{0} cm²"}\r
+                per{"{0}/cm²"}\r
+            }\r
+            square-foot{\r
+                dnam{"ft²"}\r
+                one{"{0} ft²"}\r
+                other{"{0} ft²"}\r
+            }\r
+            square-inch{\r
+                dnam{"dý²"}\r
+                one{"{0} dý²"}\r
+                other{"{0} dý²"}\r
+                per{"{0}/dý²"}\r
+            }\r
+            square-kilometer{\r
+                dnam{"km²"}\r
+                one{"{0} km²"}\r
+                other{"{0} km²"}\r
+                per{"{0}/km²"}\r
+            }\r
+            square-meter{\r
+                dnam{"m²"}\r
+                one{"{0} m²"}\r
+                other{"{0} m²"}\r
+                per{"{0}/m²"}\r
+            }\r
+            square-mile{\r
+                dnam{"mi²"}\r
+                one{"{0} mi²"}\r
+                other{"{0} mi²"}\r
+                per{"{0}/mi²"}\r
+            }\r
+            square-yard{\r
+                dnam{"ýd²"}\r
+                one{"{0} ýd²"}\r
+                other{"{0} ýd²"}\r
+            }\r
+        }\r
+        compound{\r
+            per{"{0}/{1}"}\r
+        }\r
+        concentr{\r
+            karat{\r
+                dnam{"karat"}\r
+                one{"{0} kt"}\r
+                other{"{0} kt"}\r
+            }\r
+            milligram-per-deciliter{\r
+                dnam{"mg/dL"}\r
+                one{"{0} mg/dL"}\r
+                other{"{0} mg/dL"}\r
+            }\r
+            millimole-per-liter{\r
+                dnam{"millimol/litr"}\r
+                one{"{0} mmol/L"}\r
+                other{"{0} mmol/L"}\r
+            }\r
+            part-per-million{\r
+                dnam{"bölejik/million"}\r
+                one{"{0} ppm"}\r
+                other{"{0} ppm"}\r
+            }\r
+            percent{\r
+                dnam{"göterim"}\r
+                one{"{0}%"}\r
+                other{"{0}%"}\r
+            }\r
+            permille{\r
+                dnam{"promille"}\r
+                one{"{0}‰"}\r
+                other{"{0}‰"}\r
+            }\r
+        }\r
+        consumption{\r
+            liter-per-100kilometers{\r
+                dnam{"l/100 km"}\r
+                one{"{0} l/100 km"}\r
+                other{"{0} l/100 km"}\r
+            }\r
+            liter-per-kilometer{\r
+                dnam{"litr/km"}\r
+                one{"{0} l/km"}\r
+                other{"{0} l/km"}\r
+            }\r
+            mile-per-gallon{\r
+                dnam{"mil/gal."}\r
+                one{"{0} mil/gal."}\r
+                other{"{0} mil/gal."}\r
+            }\r
+            mile-per-gallon-imperial{\r
+                dnam{"mil/imp. gal."}\r
+                one{"{0} mil/imp. gal."}\r
+                other{"{0} mil/imp. gal."}\r
+            }\r
+        }\r
+        coordinate{\r
+            dnam{"ugur"}\r
+            east{"{0} gd"}\r
+            north{"{0} dg"}\r
+            south{"{0} go"}\r
+            west{"{0} gb"}\r
+        }\r
+        digital{\r
+            bit{\r
+                dnam{"bit"}\r
+                one{"{0} bit"}\r
+                other{"{0} bit"}\r
+            }\r
+            byte{\r
+                dnam{"B"}\r
+                one{"{0} B"}\r
+                other{"{0} B"}\r
+            }\r
+            gigabit{\r
+                dnam{"Gbit"}\r
+                one{"{0} Gbit"}\r
+                other{"{0} Gbit"}\r
+            }\r
+            gigabyte{\r
+                dnam{"GB"}\r
+                one{"{0} GB"}\r
+                other{"{0} GB"}\r
+            }\r
+            kilobit{\r
+                dnam{"kbit"}\r
+                one{"{0} kbit"}\r
+                other{"{0} kbit"}\r
+            }\r
+            kilobyte{\r
+                dnam{"kB"}\r
+                one{"{0} kB"}\r
+                other{"{0} kB"}\r
+            }\r
+            megabit{\r
+                dnam{"Mbit"}\r
+                one{"{0} Mbit"}\r
+                other{"{0} Mbit"}\r
+            }\r
+            megabyte{\r
+                dnam{"MB"}\r
+                one{"{0} MB"}\r
+                other{"{0} MB"}\r
+            }\r
+            petabyte{\r
+                dnam{"PB"}\r
+                one{"{0} PB"}\r
+                other{"{0} PB"}\r
+            }\r
+            terabit{\r
+                dnam{"Tbit"}\r
+                one{"{0} Tbit"}\r
+                other{"{0} Tbit"}\r
+            }\r
+            terabyte{\r
+                dnam{"TB"}\r
+                one{"{0} TB"}\r
+                other{"{0} TB"}\r
+            }\r
+        }\r
+        duration{\r
+            century{\r
+                dnam{"as"}\r
+                one{"{0} as"}\r
+                other{"{0} as"}\r
+            }\r
+            day{\r
+                dnam{"gün"}\r
+                one{"{0} gün"}\r
+                other{"{0} gün"}\r
+                per{"{0}/gün"}\r
+            }\r
+            hour{\r
+                dnam{"sag"}\r
+                one{"{0} sag"}\r
+                other{"{0} sag"}\r
+                per{"{0}/sag"}\r
+            }\r
+            microsecond{\r
+                dnam{"μs"}\r
+                one{"{0} μs"}\r
+                other{"{0} μs"}\r
+            }\r
+            millisecond{\r
+                dnam{"msek"}\r
+                one{"{0} msek"}\r
+                other{"{0} msek"}\r
+            }\r
+            minute{\r
+                dnam{"min"}\r
+                one{"{0} min"}\r
+                other{"{0} min"}\r
+                per{"{0}/min"}\r
+            }\r
+            month{\r
+                dnam{"aý"}\r
+                one{"{0} a"}\r
+                other{"{0} a"}\r
+                per{"{0}/a"}\r
+            }\r
+            nanosecond{\r
+                dnam{"ns"}\r
+                one{"{0} ns"}\r
+                other{"{0} ns"}\r
+            }\r
+            second{\r
+                dnam{"sek"}\r
+                one{"{0} sek"}\r
+                other{"{0} sek"}\r
+                per{"{0}/sek"}\r
+            }\r
+            week{\r
+                dnam{"hep"}\r
+                one{"{0} hep"}\r
+                other{"{0} hep"}\r
+                per{"{0}/hep"}\r
+            }\r
+            year{\r
+                dnam{"ý."}\r
+                one{"{0} ý."}\r
+                other{"{0} ý."}\r
+                per{"{0}/ý."}\r
+            }\r
+        }\r
+        electric{\r
+            ampere{\r
+                dnam{"amp"}\r
+                one{"{0} A"}\r
+                other{"{0} A"}\r
+            }\r
+            milliampere{\r
+                dnam{"milliamp"}\r
+                one{"{0} mA"}\r
+                other{"{0} mA"}\r
+            }\r
+            ohm{\r
+                dnam{"Om"}\r
+                one{"{0} Om"}\r
+                other{"{0} Om"}\r
+            }\r
+            volt{\r
+                dnam{"W"}\r
+                one{"{0} W"}\r
+                other{"{0} W"}\r
+            }\r
+        }\r
+        energy{\r
+            calorie{\r
+                dnam{"kal"}\r
+                one{"{0} kal"}\r
+                other{"{0} kal"}\r
+            }\r
+            foodcalorie{\r
+                dnam{"Kal"}\r
+                one{"{0} kal"}\r
+                other{"{0} kal"}\r
+            }\r
+            joule{\r
+                dnam{"J"}\r
+                one{"{0} J"}\r
+                other{"{0} J"}\r
+            }\r
+            kilocalorie{\r
+                dnam{"kkal"}\r
+                one{"{0} kkal"}\r
+                other{"{0} kkal"}\r
+            }\r
+            kilojoule{\r
+                dnam{"kilojoul"}\r
+                one{"{0} kJ"}\r
+                other{"{0} kJ"}\r
+            }\r
+            kilowatt-hour{\r
+                dnam{"kWt. sag"}\r
+                one{"{0} kWt. sag"}\r
+                other{"{0} kWt. sag"}\r
+            }\r
+        }\r
+        frequency{\r
+            gigahertz{\r
+                dnam{"GGs"}\r
+                one{"{0} GGs"}\r
+                other{"{0} GGs"}\r
+            }\r
+            hertz{\r
+                dnam{"Gs"}\r
+                one{"{0} Gs"}\r
+                other{"{0} Gs"}\r
+            }\r
+            kilohertz{\r
+                dnam{"kGs"}\r
+                one{"{0} kGs"}\r
+                other{"{0} kGs"}\r
+            }\r
+            megahertz{\r
+                dnam{"MGs"}\r
+                one{"{0} MGs"}\r
+                other{"{0} MGs"}\r
+            }\r
+        }\r
+        length{\r
+            astronomical-unit{\r
+                dnam{"ab"}\r
+                one{"{0} ab"}\r
+                other{"{0} ab"}\r
+            }\r
+            centimeter{\r
+                dnam{"sm"}\r
+                one{"{0} sm"}\r
+                other{"{0} sm"}\r
+                per{"{0}/sm"}\r
+            }\r
+            decimeter{\r
+                dnam{"dm"}\r
+                one{"{0} dm"}\r
+                other{"{0} dm"}\r
+            }\r
+            foot{\r
+                dnam{"ft"}\r
+                one{"{0} ft"}\r
+                other{"{0} ft"}\r
+                per{"{0}/ft"}\r
+            }\r
+            inch{\r
+                dnam{"dý"}\r
+                one{"{0} dý"}\r
+                other{"{0} dý"}\r
+                per{"{0}/dý"}\r
+            }\r
+            kilometer{\r
+                dnam{"km"}\r
+                one{"{0} km"}\r
+                other{"{0} km"}\r
+                per{"{0}/km"}\r
+            }\r
+            light-year{\r
+                dnam{"ýý"}\r
+                one{"{0} ýý"}\r
+                other{"{0} ýý"}\r
+            }\r
+            meter{\r
+                dnam{"metr"}\r
+                one{"{0} m"}\r
+                other{"{0} m"}\r
+                per{"{0}/m"}\r
+            }\r
+            micrometer{\r
+                dnam{"µm"}\r
+                one{"{0} µm"}\r
+                other{"{0} µm"}\r
+            }\r
+            mile{\r
+                dnam{"mi"}\r
+                one{"{0} mi"}\r
+                other{"{0} mi"}\r
+            }\r
+            mile-scandinavian{\r
+                dnam{"smi"}\r
+                one{"{0} smi"}\r
+                other{"{0} smi"}\r
+            }\r
+            millimeter{\r
+                dnam{"mm"}\r
+                one{"{0} mm"}\r
+                other{"{0} mm"}\r
+            }\r
+            nanometer{\r
+                dnam{"nm"}\r
+                one{"{0} nm"}\r
+                other{"{0} nm"}\r
+            }\r
+            nautical-mile{\r
+                dnam{"dmi"}\r
+                one{"{0} dmi"}\r
+                other{"{0} dmi"}\r
+            }\r
+            parsec{\r
+                dnam{"pk"}\r
+                one{"{0} pk"}\r
+                other{"{0} pk"}\r
+            }\r
+            picometer{\r
+                dnam{"pm"}\r
+                one{"{0} pm"}\r
+                other{"{0} pm"}\r
+            }\r
+            point{\r
+                dnam{"punkt"}\r
+                one{"{0} pt"}\r
+                other{"{0} pt"}\r
+            }\r
+            yard{\r
+                dnam{"ýd"}\r
+                one{"{0} ýd"}\r
+                other{"{0} ýd"}\r
+            }\r
+        }\r
+        light{\r
+            lux{\r
+                dnam{"lk"}\r
+                one{"{0} lk"}\r
+                other{"{0} lk"}\r
+            }\r
+        }\r
+        mass{\r
+            carat{\r
+                dnam{"kar"}\r
+                one{"{0} kar"}\r
+                other{"{0} kar"}\r
+            }\r
+            gram{\r
+                dnam{"gram"}\r
+                one{"{0} g"}\r
+                other{"{0} g"}\r
+                per{"{0}/g"}\r
+            }\r
+            kilogram{\r
+                dnam{"kg"}\r
+                one{"{0} kg"}\r
+                other{"{0} kg"}\r
+                per{"{0}/kg"}\r
+            }\r
+            metric-ton{\r
+                dnam{"t"}\r
+                one{"{0} t"}\r
+                other{"{0} t"}\r
+            }\r
+            microgram{\r
+                dnam{"µg"}\r
+                one{"{0} µg"}\r
+                other{"{0} µg"}\r
+            }\r
+            milligram{\r
+                dnam{"mg"}\r
+                one{"{0} mg"}\r
+                other{"{0} mg"}\r
+            }\r
+            ounce{\r
+                dnam{"uns."}\r
+                one{"{0} uns."}\r
+                other{"{0} uns."}\r
+                per{"{0}/uns."}\r
+            }\r
+            ounce-troy{\r
+                dnam{"oz t"}\r
+                one{"{0} oz t"}\r
+                other{"{0} oz t"}\r
+            }\r
+            pound{\r
+                dnam{"funt"}\r
+                one{"{0} funt"}\r
+                other{"{0} funt"}\r
+                per{"{0}/funt"}\r
+            }\r
+            ton{\r
+                dnam{"tonna"}\r
+                one{"{0} tn"}\r
+                other{"{0} tn"}\r
+            }\r
+        }\r
+        power{\r
+            gigawatt{\r
+                dnam{"GWt"}\r
+                one{"{0} GWt"}\r
+                other{"{0} GWt"}\r
+            }\r
+            horsepower{\r
+                dnam{"a.g."}\r
+                one{"{0} a.g."}\r
+                other{"{0} a.g."}\r
+            }\r
+            kilowatt{\r
+                dnam{"kWt"}\r
+                one{"{0} kWt"}\r
+                other{"{0} kWt"}\r
+            }\r
+            megawatt{\r
+                dnam{"MWt"}\r
+                one{"{0} MWt"}\r
+                other{"{0} MWt"}\r
+            }\r
+            milliwatt{\r
+                dnam{"mWt"}\r
+                one{"{0} mWt"}\r
+                other{"{0} mWt"}\r
+            }\r
+            watt{\r
+                dnam{"Wt"}\r
+                one{"{0} Wt"}\r
+                other{"{0} Wt"}\r
+            }\r
+        }\r
+        pressure{\r
+            atmosphere{\r
+                dnam{"atm"}\r
+                one{"{0} atm"}\r
+                other{"{0} atm"}\r
+            }\r
+            hectopascal{\r
+                dnam{"gPa"}\r
+                one{"{0} gPa"}\r
+                other{"{0} gPa"}\r
+            }\r
+            inch-hg{\r
+                dnam{"dý sim.süt."}\r
+                one{"{0} dý sim.süt."}\r
+                other{"{0} dý sim.süt."}\r
+            }\r
+            millibar{\r
+                dnam{"mbar"}\r
+                one{"{0} mbar"}\r
+                other{"{0} mbar"}\r
+            }\r
+            millimeter-of-mercury{\r
+                dnam{"mm sim.süt."}\r
+                one{"{0} mm sim.süt."}\r
+                other{"{0} mm sim.süt."}\r
+            }\r
+            pound-per-square-inch{\r
+                dnam{"psi"}\r
+                one{"{0} psi"}\r
+                other{"{0} psi"}\r
+            }\r
+        }\r
+        speed{\r
+            kilometer-per-hour{\r
+                dnam{"km/sagat"}\r
+                one{"{0} km/sag"}\r
+                other{"{0} km/sag"}\r
+            }\r
+            knot{\r
+                dnam{"dü."}\r
+                one{"{0} dü."}\r
+                other{"{0} dü."}\r
+            }\r
+            meter-per-second{\r
+                dnam{"m/s"}\r
+                one{"{0} m/s"}\r
+                other{"{0} m/s"}\r
+            }\r
+            mile-per-hour{\r
+                dnam{"mil/sag"}\r
+                one{"{0} mil/sag"}\r
+                other{"{0} mil/sag"}\r
+            }\r
+        }\r
+        temperature{\r
+            celsius{\r
+                dnam{"°C"}\r
+                one{"{0}°C"}\r
+                other{"{0}°C"}\r
+            }\r
+            fahrenheit{\r
+                dnam{"°F"}\r
+                one{"{0}°F"}\r
+                other{"{0}°F"}\r
+            }\r
+            generic{\r
+                dnam{"°"}\r
+                one{"{0}°"}\r
+                other{"{0}°"}\r
+            }\r
+            kelvin{\r
+                dnam{"K"}\r
+                one{"{0} K"}\r
+                other{"{0} K"}\r
+            }\r
+        }\r
+        volume{\r
+            acre-foot{\r
+                dnam{"akr-ft"}\r
+                one{"{0} ak-ft"}\r
+                other{"{0} ak-ft"}\r
+            }\r
+            centiliter{\r
+                dnam{"sl"}\r
+                one{"{0} sl"}\r
+                other{"{0} sl"}\r
+            }\r
+            cubic-centimeter{\r
+                dnam{"sm³"}\r
+                one{"{0} sm³"}\r
+                other{"{0} sm³"}\r
+                per{"{0}/sm³"}\r
+            }\r
+            cubic-foot{\r
+                dnam{"ft³"}\r
+                one{"{0} ft³"}\r
+                other{"{0} ft³"}\r
+            }\r
+            cubic-inch{\r
+                dnam{"dý³"}\r
+                one{"{0} dý³"}\r
+                other{"{0} dý³"}\r
+            }\r
+            cubic-kilometer{\r
+                dnam{"km³"}\r
+                one{"{0} km³"}\r
+                other{"{0} km³"}\r
+            }\r
+            cubic-meter{\r
+                dnam{"m³"}\r
+                one{"{0} m³"}\r
+                other{"{0} m³"}\r
+                per{"{0}/m³"}\r
+            }\r
+            cubic-mile{\r
+                dnam{"mi³"}\r
+                one{"{0} mi³"}\r
+                other{"{0} mi³"}\r
+            }\r
+            cubic-yard{\r
+                dnam{"ýd³"}\r
+                one{"{0} ýd³"}\r
+                other{"{0} ýd³"}\r
+            }\r
+            cup{\r
+                dnam{"käse"}\r
+                one{"{0} kä"}\r
+                other{"{0} kä"}\r
+            }\r
+            cup-metric{\r
+                dnam{"mkä"}\r
+                one{"{0} mkä"}\r
+                other{"{0} mkä"}\r
+            }\r
+            deciliter{\r
+                dnam{"dl"}\r
+                one{"{0} dl"}\r
+                other{"{0} dl"}\r
+            }\r
+            fluid-ounce{\r
+                dnam{"suw. uns."}\r
+                one{"{0} suw. uns."}\r
+                other{"{0} suw. uns."}\r
+            }\r
+            gallon{\r
+                dnam{"gal."}\r
+                one{"{0} gal."}\r
+                other{"{0} gal."}\r
+                per{"{0}/gal."}\r
+            }\r
+            gallon-imperial{\r
+                dnam{"Imp. gal"}\r
+                one{"{0} imp. gal."}\r
+                other{"{0} imp.gal."}\r
+                per{"{0}/imp.gal."}\r
+            }\r
+            hectoliter{\r
+                dnam{"gl"}\r
+                one{"{0} gl"}\r
+                other{"{0} gl"}\r
+            }\r
+            liter{\r
+                dnam{"litr"}\r
+                one{"{0} l"}\r
+                other{"{0} l"}\r
+                per{"{0}/l"}\r
+            }\r
+            megaliter{\r
+                dnam{"Ml"}\r
+                one{"{0} Ml"}\r
+                other{"{0} Ml"}\r
+            }\r
+            milliliter{\r
+                dnam{"ml"}\r
+                one{"{0} ml"}\r
+                other{"{0} ml"}\r
+            }\r
+            pint{\r
+                dnam{"pt"}\r
+                one{"{0} pt"}\r
+                other{"{0} pt"}\r
+            }\r
+            pint-metric{\r
+                dnam{"mpt"}\r
+                one{"{0} mpt"}\r
+                other{"{0} mpt"}\r
+            }\r
+            quart{\r
+                dnam{"kwt"}\r
+                one{"{0} kwt"}\r
+                other{"{0} kwt"}\r
+            }\r
+            tablespoon{\r
+                dnam{"n. ç."}\r
+                one{"{0} n. ç."}\r
+                other{"{0} n. ç."}\r
+            }\r
+            teaspoon{\r
+                dnam{"ç. ç."}\r
+                one{"{0} ç. ç."}\r
+                other{"{0} ç. ç."}\r
+            }\r
+        }\r
+    }\r
+}\r
index d5e060f8cbcdb91fcaeb1ee43d6f1d5076d76db4..bb42d4001c89f9206cc6eaf6d8e36410853aa326 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 to{\r
-    Version{"2.1.38.39"}\r
+    Version{"2.1.44.88"}\r
     durationUnits{\r
         hm{"h:mm"}\r
         hms{"h:mm:ss"}\r
@@ -431,16 +431,16 @@ to{
                 other{"hēkitopasikale ʻe {0}"}\r
             }\r
             inch-hg{\r
-                dnam{"ʻinisi mēkuli"}\r
-                other{"ʻinisi mēkuli ʻe {0}"}\r
+                dnam{"ʻinisi meakuli"}\r
+                other{"ʻinisi meakuli ʻe {0}"}\r
             }\r
             millibar{\r
                 dnam{"milipā"}\r
                 other{"milipā ʻe {0}"}\r
             }\r
             millimeter-of-mercury{\r
-                dnam{"milimita mēkuli"}\r
-                other{"milimita mēkuli ʻe {0}"}\r
+                dnam{"milimita meakuli"}\r
+                other{"milimita meakuli ʻe {0}"}\r
             }\r
             pound-per-square-inch{\r
                 dnam{"pāuni he ʻinisi sikuea"}\r
@@ -1269,6 +1269,9 @@ to{
                 dnam{"mekapaiti"}\r
                 other{"MB ʻe {0}"}\r
             }\r
+            petabyte{\r
+                other{"PB ʻe {0}"}\r
+            }\r
             terabit{\r
                 dnam{"telapiti"}\r
                 other{"Tb ʻe {0}"}\r
@@ -1581,6 +1584,9 @@ to{
                 dnam{"°F"}\r
                 other{"°F ʻe {0}"}\r
             }\r
+            generic{\r
+                other{"° ʻe {0}"}\r
+            }\r
             kelvin{\r
                 dnam{"K"}\r
                 other{"K ʻe {0}"}\r
index 196b982fbb9205a8de28f7fcd883adb9491f7ca4..923ba840608fca9f3cdd6aaa8e83dcd12baf6814 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 tr{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.91"}\r
     durationUnits{\r
         hm{"h:mm"}\r
         hms{"h:mm:ss"}\r
@@ -123,6 +123,16 @@ tr{
                 one{"{0} parça/milyon"}\r
                 other{"{0} parça/milyon"}\r
             }\r
+            percent{\r
+                dnam{"yüzde"}\r
+                one{"yüzde {0}"}\r
+                other{"yüzde {0}"}\r
+            }\r
+            permille{\r
+                dnam{"binde"}\r
+                one{"binde {0}"}\r
+                other{"binde {0}"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -147,6 +157,7 @@ tr{
             }\r
         }\r
         coordinate{\r
+            dnam{"ana yön"}\r
             east{"{0}Doğu"}\r
             north{"{0}Kuzey"}\r
             south{"{0}Güney"}\r
@@ -193,6 +204,11 @@ tr{
                 one{"{0} megabayt"}\r
                 other{"{0} megabayt"}\r
             }\r
+            petabyte{\r
+                dnam{"petabayt"}\r
+                one{"{0} petabayt"}\r
+                other{"{0} petabayt"}\r
+            }\r
             terabit{\r
                 dnam{"terabit"}\r
                 one{"{0} terabit"}\r
@@ -552,6 +568,11 @@ tr{
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"atmosfer"}\r
+                one{"{0} atmosfer"}\r
+                other{"{0} atmosfer"}\r
+            }\r
             hectopascal{\r
                 dnam{"hektopaskal"}\r
                 one{"{0} hektopaskal"}\r
@@ -770,10 +791,12 @@ tr{
         }\r
         angle{\r
             arc-minute{\r
+                dnam{"açısal dk."}\r
                 one{"{0}′"}\r
                 other{"{0}′"}\r
             }\r
             arc-second{\r
+                dnam{"açısal sn."}\r
                 one{"{0}″"}\r
                 other{"{0}″"}\r
             }\r
@@ -785,6 +808,11 @@ tr{
                 one{"{0} rad"}\r
                 other{"{0} rad"}\r
             }\r
+            revolution{\r
+                dnam{"dev"}\r
+                one{"{0} dev"}\r
+                other{"{0} dev"}\r
+            }\r
         }\r
         area{\r
             acre{\r
@@ -843,9 +871,35 @@ tr{
         }\r
         concentr{\r
             karat{\r
+                dnam{"ayar"}\r
                 one{"{0} ayar"}\r
                 other{"{0} ayar"}\r
             }\r
+            milligram-per-deciliter{\r
+                dnam{"mg/dL"}\r
+                one{"{0} mg/dL"}\r
+                other{"{0} mg/dL"}\r
+            }\r
+            millimole-per-liter{\r
+                dnam{"mmol/L"}\r
+                one{"{0} mmol/L"}\r
+                other{"{0} mmol/L"}\r
+            }\r
+            part-per-million{\r
+                dnam{"ppm"}\r
+                one{"{0} ppm"}\r
+                other{"{0} ppm"}\r
+            }\r
+            percent{\r
+                dnam{"%"}\r
+                one{"{0}%"}\r
+                other{"{0}%"}\r
+            }\r
+            permille{\r
+                dnam{"‰"}\r
+                one{"{0}‰"}\r
+                other{"{0}‰"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -854,6 +908,7 @@ tr{
                 other{"{0} L/100km"}\r
             }\r
             liter-per-kilometer{\r
+                dnam{"l/km"}\r
                 one{"{0} l/km"}\r
                 other{"{0} l/km"}\r
             }\r
@@ -863,6 +918,7 @@ tr{
             }\r
         }\r
         coordinate{\r
+            dnam{"yön"}\r
             east{"{0}D"}\r
             north{"{0}K"}\r
             south{"{0}G"}\r
@@ -870,42 +926,52 @@ tr{
         }\r
         digital{\r
             bit{\r
+                dnam{"bit"}\r
                 one{"{0} bit"}\r
                 other{"{0} bit"}\r
             }\r
             byte{\r
+                dnam{"bayt"}\r
                 one{"{0} byte"}\r
                 other{"{0} byte"}\r
             }\r
             gigabit{\r
+                dnam{"Gbit"}\r
                 one{"{0} Gb"}\r
                 other{"{0} Gb"}\r
             }\r
             gigabyte{\r
+                dnam{"GB"}\r
                 one{"{0} GB"}\r
                 other{"{0} GB"}\r
             }\r
             kilobit{\r
+                dnam{"kbit"}\r
                 one{"{0} kb"}\r
                 other{"{0} kb"}\r
             }\r
             kilobyte{\r
+                dnam{"kB"}\r
                 one{"{0} kB"}\r
                 other{"{0} kB"}\r
             }\r
             megabit{\r
+                dnam{"Mbit"}\r
                 one{"{0} Mb"}\r
                 other{"{0} Mb"}\r
             }\r
             megabyte{\r
+                dnam{"MB"}\r
                 one{"{0} MB"}\r
                 other{"{0} MB"}\r
             }\r
             terabit{\r
+                dnam{"Tbit"}\r
                 one{"{0} Tb"}\r
                 other{"{0} Tb"}\r
             }\r
             terabyte{\r
+                dnam{"TB"}\r
                 one{"{0} TB"}\r
                 other{"{0} TB"}\r
             }\r
@@ -976,18 +1042,22 @@ tr{
         }\r
         electric{\r
             ampere{\r
+                dnam{"amper"}\r
                 one{"{0} A"}\r
                 other{"{0} A"}\r
             }\r
             milliampere{\r
+                dnam{"miliamper"}\r
                 one{"{0} mA"}\r
                 other{"{0} mA"}\r
             }\r
             ohm{\r
+                dnam{"ohm"}\r
                 one{"{0} Ω"}\r
                 other{"{0} Ω"}\r
             }\r
             volt{\r
+                dnam{"volt"}\r
                 one{"{0} V"}\r
                 other{"{0} V"}\r
             }\r
@@ -1020,18 +1090,22 @@ tr{
         }\r
         frequency{\r
             gigahertz{\r
+                dnam{"GHz"}\r
                 one{"{0} GHz"}\r
                 other{"{0} GHz"}\r
             }\r
             hertz{\r
+                dnam{"Hz"}\r
                 one{"{0} Hz"}\r
                 other{"{0} Hz"}\r
             }\r
             kilohertz{\r
+                dnam{"kHz"}\r
                 one{"{0} kHz"}\r
                 other{"{0} kHz"}\r
             }\r
             megahertz{\r
+                dnam{"MHz"}\r
                 one{"{0} MHz"}\r
                 other{"{0} MHz"}\r
             }\r
@@ -1055,8 +1129,8 @@ tr{
             }\r
             fathom{\r
                 dnam{"fathom"}\r
-                one{"{0} fm"}\r
-                other{"{0} fm"}\r
+                one{"{0} fth"}\r
+                other{"{0} fth"}\r
             }\r
             foot{\r
                 dnam{"fit"}\r
@@ -1145,6 +1219,7 @@ tr{
         }\r
         light{\r
             lux{\r
+                dnam{"lüks"}\r
                 one{"{0} lüks"}\r
                 other{"{0} lüks"}\r
             }\r
@@ -1517,6 +1592,16 @@ tr{
                 one{"{0} ppm"}\r
                 other{"{0} ppm"}\r
             }\r
+            percent{\r
+                dnam{"%"}\r
+                one{"{0}%"}\r
+                other{"{0}%"}\r
+            }\r
+            permille{\r
+                dnam{"‰"}\r
+                one{"{0}‰"}\r
+                other{"{0}‰"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -1541,6 +1626,7 @@ tr{
             }\r
         }\r
         coordinate{\r
+            dnam{"yön"}\r
             east{"{0}D"}\r
             north{"{0}K"}\r
             south{"{0}G"}\r
@@ -1587,6 +1673,11 @@ tr{
                 one{"{0} MB"}\r
                 other{"{0} MB"}\r
             }\r
+            petabyte{\r
+                dnam{"PB"}\r
+                one{"{0} PB"}\r
+                other{"{0} PB"}\r
+            }\r
             terabit{\r
                 dnam{"Tbit"}\r
                 one{"{0} Tb"}\r
@@ -1757,8 +1848,8 @@ tr{
             }\r
             fathom{\r
                 dnam{"fathom"}\r
-                one{"{0} fm"}\r
-                other{"{0} fm"}\r
+                one{"{0} fth"}\r
+                other{"{0} fth"}\r
             }\r
             foot{\r
                 dnam{"fit"}\r
@@ -1946,6 +2037,11 @@ tr{
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"atm"}\r
+                one{"{0} atm"}\r
+                other{"{0} atm"}\r
+            }\r
             hectopascal{\r
                 dnam{"hPa"}\r
                 one{"{0} hPa"}\r
index 5cf27c89d724dbe089f9a7f021a545d2a2805f80..9ac5990ab40e6cdc9ebce1695de4fed22f0fb1bd 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 tt{\r
-    Version{"2.1.38.72"}\r
+    Version{"2.1.44.88"}\r
     durationUnits{\r
         hm{"h:mm"}\r
         hms{"h:mm:ss"}\r
index e0a0fcea31a0967901e762cbbf45b76aa674ae57..2193c858632ade2eee6200a4ca1e1dbd6c8dad33 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 ug{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.88"}\r
     units{\r
         acceleration{\r
             g-force{\r
index 47b85b2f7eb9e76f03f7ddfe94df1daed5154d09..b864a53e8c3fae8302b7ad67745b4442a55ddcea 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 uk{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.65"}\r
     durationUnits{\r
         hm{"h:mm"}\r
         hms{"h:mm:ss"}\r
@@ -163,6 +163,20 @@ uk{
                 one{"{0} мільйонна доля"}\r
                 other{"{0} мільйонної долі"}\r
             }\r
+            percent{\r
+                dnam{"відсоток"}\r
+                few{"{0} відсотки"}\r
+                many{"{0} відсотків"}\r
+                one{"{0} відсоток"}\r
+                other{"{0} відсотка"}\r
+            }\r
+            permille{\r
+                dnam{"проміле"}\r
+                few{"{0} проміле"}\r
+                many{"{0} проміле"}\r
+                one{"{0} проміле"}\r
+                other{"{0} проміле"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -195,6 +209,7 @@ uk{
             }\r
         }\r
         coordinate{\r
+            dnam{"сторона світу"}\r
             east{"{0} на Схід"}\r
             north{"{0} на Північ"}\r
             south{"{0} на Південь"}\r
@@ -257,6 +272,13 @@ uk{
                 one{"{0} мегабайт"}\r
                 other{"{0} мегабайта"}\r
             }\r
+            petabyte{\r
+                dnam{"петабайти"}\r
+                few{"{0} петабайти"}\r
+                many{"{0} петабайтів"}\r
+                one{"{0} петабайт"}\r
+                other{"{0} петабайту"}\r
+            }\r
             terabit{\r
                 dnam{"терабіти"}\r
                 few{"{0} терабіти"}\r
@@ -580,6 +602,13 @@ uk{
                 one{"{0} пікометр"}\r
                 other{"{0} пікометра"}\r
             }\r
+            point{\r
+                dnam{"пункти"}\r
+                few{"{0} пункти"}\r
+                many{"{0} пунктів"}\r
+                one{"{0} пункт"}\r
+                other{"{0} пункту"}\r
+            }\r
             yard{\r
                 dnam{"ярди"}\r
                 few{"{0} ярди"}\r
@@ -725,6 +754,13 @@ uk{
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"атмосфери"}\r
+                few{"{0} атмосфери"}\r
+                many{"{0} атмосфер"}\r
+                one{"{0} атмосфера"}\r
+                other{"{0} атмосфери"}\r
+            }\r
             hectopascal{\r
                 dnam{"гектопаскалі"}\r
                 few{"{0} гектопаскалі"}\r
@@ -1075,6 +1111,15 @@ uk{
         compound{\r
             per{"{0}/{1}"}\r
         }\r
+        concentr{\r
+            percent{\r
+                dnam{"%"}\r
+                few{"{0}%"}\r
+                many{"{0}%"}\r
+                one{"{0}%"}\r
+                other{"{0}%"}\r
+            }\r
+        }\r
         consumption{\r
             liter-per-100kilometers{\r
                 dnam{"л/100 км"}\r
@@ -1085,6 +1130,7 @@ uk{
             }\r
         }\r
         coordinate{\r
+            dnam{"напрям"}\r
             east{"{0} Сх"}\r
             north{"{0} Пн"}\r
             south{"{0} Пд"}\r
@@ -1655,6 +1701,20 @@ uk{
                 one{"{0} ppm"}\r
                 other{"{0} ppm"}\r
             }\r
+            percent{\r
+                dnam{"відсоток"}\r
+                few{"{0}%"}\r
+                many{"{0}%"}\r
+                one{"{0}%"}\r
+                other{"{0}%"}\r
+            }\r
+            permille{\r
+                dnam{"проміле"}\r
+                few{"{0}‰"}\r
+                many{"{0}‰"}\r
+                one{"{0}‰"}\r
+                other{"{0}‰"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -1687,6 +1747,7 @@ uk{
             }\r
         }\r
         coordinate{\r
+            dnam{"напрямок"}\r
             east{"{0} на Сх"}\r
             north{"{0} на Пн"}\r
             south{"{0} на Пд"}\r
@@ -1749,6 +1810,13 @@ uk{
                 one{"{0} МБ"}\r
                 other{"{0} МБ"}\r
             }\r
+            petabyte{\r
+                dnam{"ПБ"}\r
+                few{"{0} ПБ"}\r
+                many{"{0} ПБ"}\r
+                one{"{0} ПБ"}\r
+                other{"{0} ПБ"}\r
+            }\r
             terabit{\r
                 dnam{"Тбіт"}\r
                 few{"{0} Тб"}\r
@@ -2072,6 +2140,13 @@ uk{
                 one{"{0} пм"}\r
                 other{"{0} пм"}\r
             }\r
+            point{\r
+                dnam{"пт"}\r
+                few{"{0} пт"}\r
+                many{"{0} пт"}\r
+                one{"{0} пт"}\r
+                other{"{0} пт"}\r
+            }\r
             yard{\r
                 dnam{"ярди"}\r
                 few{"{0} ярди"}\r
@@ -2210,6 +2285,13 @@ uk{
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"атм"}\r
+                few{"{0} атм"}\r
+                many{"{0} атм"}\r
+                one{"{0} атм"}\r
+                other{"{0} атм"}\r
+            }\r
             hectopascal{\r
                 dnam{"гПа"}\r
                 few{"{0} гПа"}\r
index 2245acea7677086504e505d1601018b49ff68fda..964379e0023c008f9ba6e5b4b85872c1a0daa699 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 ur{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.3"}\r
     durationUnits{\r
         hm{"h:mm"}\r
         hms{"h:mm:ss"}\r
@@ -15,9 +15,9 @@ ur{
                 other{"{0} جی-فورس"}\r
             }\r
             meter-per-second-squared{\r
-                dnam{"m/s²"}\r
-                one{"{0} m/s²"}\r
-                other{"{0} m/s²"}\r
+                dnam{"میٹر فی مربع سیکنڈ"}\r
+                one{"{0} میٹر فی مربع سیکنڈ"}\r
+                other{"{0} میٹر فی مربع سیکنڈ"}\r
             }\r
         }\r
         angle{\r
@@ -37,14 +37,14 @@ ur{
                 other{"{0} ڈگری"}\r
             }\r
             radian{\r
-                dnam{"rad"}\r
-                one{"{0} rad"}\r
-                other{"{0} rad"}\r
+                dnam{"ریڈینس"}\r
+                one{"{0} ریڈین"}\r
+                other{"{0} ریڈینس"}\r
             }\r
             revolution{\r
-                dnam{"rev"}\r
+                dnam{"گردش"}\r
                 one{"{0} rev"}\r
-                other{"{0} rev"}\r
+                other{"{0} گردش"}\r
             }\r
         }\r
         area{\r
@@ -123,6 +123,16 @@ ur{
                 one{"{0} فی ملین حصے"}\r
                 other{"{0} فی ملین حصے"}\r
             }\r
+            percent{\r
+                dnam{"فیصد"}\r
+                one{"{0} فیصد"}\r
+                other{"{0} فیصد"}\r
+            }\r
+            permille{\r
+                dnam{"فی ہزار"}\r
+                one{"{0} فی ہزار"}\r
+                other{"{0} فی ہزار"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -147,6 +157,7 @@ ur{
             }\r
         }\r
         coordinate{\r
+            dnam{"کارڈینل ڈائریکشن"}\r
             east{"{0} مشرق"}\r
             north{"{0} شمال"}\r
             south{"{0} جنوب"}\r
@@ -193,6 +204,11 @@ ur{
                 one{"{0} میگابائٹ"}\r
                 other{"{0} ميگابائٹس"}\r
             }\r
+            petabyte{\r
+                dnam{"پیٹا بائٹس"}\r
+                one{"{0} پیٹا بائٹ"}\r
+                other{"{0} پیٹا بائٹس"}\r
+            }\r
             terabit{\r
                 dnam{"ٹیرابٹس"}\r
                 one{"{0} ٹیرابٹ"}\r
@@ -483,19 +499,19 @@ ur{
             }\r
             ounce{\r
                 dnam{"اونس"}\r
-                one{"{0} ونس"}\r
-                other{"{0} ونس"}\r
+                one{"{0} اونس"}\r
+                other{"{0} اونس"}\r
                 per{"{0} فی اونس"}\r
             }\r
             ounce-troy{\r
-                dnam{"oz t"}\r
-                one{"{0} oz t"}\r
-                other{"{0} oz t"}\r
+                dnam{"ٹرائے اونس"}\r
+                one{"{0} ٹرائے اونس"}\r
+                other{"{0} ٹرائے اونس"}\r
             }\r
             pound{\r
                 dnam{"پاؤنڈ"}\r
-                one{"{0} پونڈ"}\r
-                other{"{0} پونڈ"}\r
+                one{"{0} پاؤنڈ"}\r
+                other{"{0} پاؤنڈ"}\r
                 per{"{0} فی پاؤنڈ"}\r
             }\r
             stone{\r
@@ -542,6 +558,11 @@ ur{
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"ماحول"}\r
+                one{"{0} ماحول"}\r
+                other{"{0} ماحول"}\r
+            }\r
             hectopascal{\r
                 dnam{"ہیکٹو پاسکل"}\r
                 one{"{0} ہیکٹو پاسکل"}\r
@@ -790,6 +811,13 @@ ur{
         compound{\r
             per{"{0}/{1}"}\r
         }\r
+        concentr{\r
+            percent{\r
+                dnam{"%"}\r
+                one{"{0}%"}\r
+                other{"{0}%"}\r
+            }\r
+        }\r
         consumption{\r
             liter-per-100kilometers{\r
                 dnam{"لیٹر/100 کلو میٹر"}\r
@@ -798,6 +826,7 @@ ur{
             }\r
         }\r
         coordinate{\r
+            dnam{"ڈائریکشن"}\r
             east{"{0}E"}\r
             north{"{0}N"}\r
             south{"{0}S"}\r
@@ -1051,12 +1080,12 @@ ur{
         }\r
         angle{\r
             arc-minute{\r
-                dnam{"arcmin"}\r
+                dnam{"آرک منٹ"}\r
                 one{"{0} آرک منٹ"}\r
                 other{"{0} آرک منٹ"}\r
             }\r
             arc-second{\r
-                dnam{"arcsec"}\r
+                dnam{"آرک سیکنڈ"}\r
                 one{"{0} آرک سیکنڈ"}\r
                 other{"{0} آرک سیکنڈ"}\r
             }\r
@@ -1066,7 +1095,7 @@ ur{
                 other{"{0} ڈگری"}\r
             }\r
             radian{\r
-                dnam{"rad"}\r
+                dnam{"ریڈینس"}\r
                 one{"{0} rad"}\r
                 other{"{0} rad"}\r
             }\r
@@ -1152,6 +1181,16 @@ ur{
                 one{"{0} ppm"}\r
                 other{"{0} ppm"}\r
             }\r
+            percent{\r
+                dnam{"فیصد"}\r
+                one{"{0}%"}\r
+                other{"{0}%"}\r
+            }\r
+            permille{\r
+                dnam{"فی ہزار"}\r
+                one{"{0}‰"}\r
+                other{"{0}‰"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -1176,6 +1215,7 @@ ur{
             }\r
         }\r
         coordinate{\r
+            dnam{"ڈائریکشن"}\r
             east{"{0}E"}\r
             north{"{0}N"}\r
             south{"{0}S"}\r
@@ -1222,6 +1262,11 @@ ur{
                 one{"{0} MB"}\r
                 other{"{0} MB"}\r
             }\r
+            petabyte{\r
+                dnam{"پی بائٹ"}\r
+                one{"{0} پی بی"}\r
+                other{"{0} پی بی"}\r
+            }\r
             terabit{\r
                 dnam{"Tbit"}\r
                 one{"{0} Tb"}\r
@@ -1565,12 +1610,17 @@ ur{
                 other{"{0} mW"}\r
             }\r
             watt{\r
-                dnam{"watts"}\r
+                dnam{"واٹ"}\r
                 one{"{0} واٹ"}\r
                 other{"{0} واٹ"}\r
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"atm"}\r
+                one{"{0} atm"}\r
+                other{"{0} atm"}\r
+            }\r
             hectopascal{\r
                 dnam{"hPa"}\r
                 one{"{0} hPa"}\r
@@ -1664,7 +1714,7 @@ ur{
                 other{"{0} ft³"}\r
             }\r
             cubic-inch{\r
-                dnam{"in³"}\r
+                dnam{"کیوبک انچ"}\r
                 one{"{0} in³"}\r
                 other{"{0} in³"}\r
             }\r
index aee37ab2b8fd4a864f138ee8e518ba0be4919390..ea5b95f41280ccdc5243dd7c89513e9c2c0d4ae5 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 ur_IN{\r
-    Version{"2.1.38.39"}\r
+    Version{"2.1.43.65"}\r
     units{\r
         length{\r
             astronomical-unit{\r
index 256fc12c8f5d7206f3842121d9fb50a8207ac3ec..09c2f12332fee5b88f875b6844157b6d6a8fd211 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 uz{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.88"}\r
     durationUnits{\r
         hm{"h:mm"}\r
         hms{"h:mm:ss"}\r
@@ -123,6 +123,16 @@ uz{
                 one{"milliondan {0}"}\r
                 other{"milliondan {0}"}\r
             }\r
+            percent{\r
+                dnam{"foiz"}\r
+                one{"{0} foiz"}\r
+                other{"{0} foiz"}\r
+            }\r
+            permille{\r
+                dnam{"promille"}\r
+                one{"{0} promille"}\r
+                other{"{0} promille"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -147,6 +157,7 @@ uz{
             }\r
         }\r
         coordinate{\r
+            dnam{"yo‘nalish"}\r
             east{"{0} sharqiy uzunlik"}\r
             north{"{0} shimoliy kenglik"}\r
             south{"{0} janubiy kenglik"}\r
@@ -193,6 +204,11 @@ uz{
                 one{"{0} megabayt"}\r
                 other{"{0} megabayt"}\r
             }\r
+            petabyte{\r
+                dnam{"petabayt"}\r
+                one{"{0} petabayt"}\r
+                other{"{0} petabayt"}\r
+            }\r
             terabit{\r
                 dnam{"terabit"}\r
                 one{"{0} terabit"}\r
@@ -537,6 +553,11 @@ uz{
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"atmosfera"}\r
+                one{"{0} atmosfera"}\r
+                other{"{0} atmosfera"}\r
+            }\r
             hectopascal{\r
                 dnam{"gektopaskal"}\r
                 one{"{0} gektopaskal"}\r
@@ -785,6 +806,13 @@ uz{
         compound{\r
             per{"{0}/{1}"}\r
         }\r
+        concentr{\r
+            percent{\r
+                dnam{"%"}\r
+                one{"{0}%"}\r
+                other{"{0}%"}\r
+            }\r
+        }\r
         consumption{\r
             liter-per-100kilometers{\r
                 dnam{"L/100 km"}\r
@@ -793,6 +821,7 @@ uz{
             }\r
         }\r
         coordinate{\r
+            dnam{"yo‘nalish"}\r
             east{"{0} shq. u."}\r
             north{"{0} shm. k."}\r
             south{"{0} jan. k."}\r
@@ -1092,6 +1121,16 @@ uz{
                 one{"{0} ppm"}\r
                 other{"{0} ppm"}\r
             }\r
+            percent{\r
+                dnam{"foiz"}\r
+                one{"{0}%"}\r
+                other{"{0}%"}\r
+            }\r
+            permille{\r
+                dnam{"promille"}\r
+                one{"{0}‰"}\r
+                other{"{0}‰"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -1116,6 +1155,7 @@ uz{
             }\r
         }\r
         coordinate{\r
+            dnam{"yo‘nalish"}\r
             east{"{0} shq. u."}\r
             north{"{0} shm. k."}\r
             south{"{0} jan. k."}\r
@@ -1162,6 +1202,11 @@ uz{
                 one{"{0} MB"}\r
                 other{"{0} MB"}\r
             }\r
+            petabyte{\r
+                dnam{"PB"}\r
+                one{"{0} PB"}\r
+                other{"{0} PB"}\r
+            }\r
             terabit{\r
                 dnam{"Tbit"}\r
                 one{"{0} Tbit"}\r
@@ -1506,6 +1551,11 @@ uz{
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"atm"}\r
+                one{"{0} atm"}\r
+                other{"{0} atm"}\r
+            }\r
             hectopascal{\r
                 dnam{"gPa"}\r
                 one{"{0} gPa"}\r
index 678547e2f7368421a0551e947ddbbde3b7671db1..0baaa41f15435334386bea78d7b2968894ee74c0 100644 (file)
@@ -2,7 +2,7 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 uz_Cyrl{\r
     %%Parent{"root"}\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.2"}\r
     durationUnits{\r
         hm{"h:mm"}\r
         hms{"h:mm:ss"}\r
index 581aa131e678720290ae8f91475b4cdabc1c9f6f..3714bf145eeeb53b2c93d256f2f3dcbbb520f47a 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 vi{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.65"}\r
     durationUnits{\r
         hm{"h:mm"}\r
         hms{"h:mm:ss"}\r
@@ -103,6 +103,14 @@ vi{
                 dnam{"ppm"}\r
                 other{"{0} ppm"}\r
             }\r
+            percent{\r
+                dnam{"%"}\r
+                other{"{0}%"}\r
+            }\r
+            permille{\r
+                dnam{"‰"}\r
+                other{"{0}‰"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -123,6 +131,7 @@ vi{
             }\r
         }\r
         coordinate{\r
+            dnam{"phương trời"}\r
             east{"{0}Đ"}\r
             north{"{0}B"}\r
             south{"{0}N"}\r
@@ -161,6 +170,10 @@ vi{
                 dnam{"megabyte"}\r
                 other{"{0} megabyte"}\r
             }\r
+            petabyte{\r
+                dnam{"petabyte"}\r
+                other{"{0} PB"}\r
+            }\r
             terabit{\r
                 dnam{"terabit"}\r
                 other{"{0} terabit"}\r
@@ -443,6 +456,10 @@ vi{
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"atm"}\r
+                other{"{0} átmốtphe"}\r
+            }\r
             hectopascal{\r
                 dnam{"héctô pascal"}\r
                 other{"{0} héctô pascal"}\r
@@ -644,6 +661,12 @@ vi{
         compound{\r
             per{"{0}/{1}"}\r
         }\r
+        concentr{\r
+            percent{\r
+                dnam{"%"}\r
+                other{"{0}%"}\r
+            }\r
+        }\r
         consumption{\r
             liter-per-100kilometers{\r
                 dnam{"L/100km"}\r
@@ -651,6 +674,7 @@ vi{
             }\r
         }\r
         coordinate{\r
+            dnam{"hướng"}\r
             east{"{0}Đ"}\r
             north{"{0}B"}\r
             south{"{0}N"}\r
@@ -894,6 +918,14 @@ vi{
                 dnam{"ppm"}\r
                 other{"{0} ppm"}\r
             }\r
+            percent{\r
+                dnam{"%"}\r
+                other{"{0}%"}\r
+            }\r
+            permille{\r
+                dnam{"‰"}\r
+                other{"{0}‰"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -914,6 +946,7 @@ vi{
             }\r
         }\r
         coordinate{\r
+            dnam{"hướng"}\r
             east{"{0}Đ"}\r
             north{"{0}B"}\r
             south{"{0}N"}\r
@@ -952,6 +985,10 @@ vi{
                 dnam{"MB"}\r
                 other{"{0} MB"}\r
             }\r
+            petabyte{\r
+                dnam{"PByte"}\r
+                other{"{0} PB"}\r
+            }\r
             terabit{\r
                 dnam{"Tb"}\r
                 other{"{0} Tb"}\r
@@ -1234,6 +1271,10 @@ vi{
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"atm"}\r
+                other{"{0} atm"}\r
+            }\r
             hectopascal{\r
                 dnam{"hPa"}\r
                 other{"{0} hPa"}\r
@@ -1386,7 +1427,7 @@ vi{
                 other{"{0} qt"}\r
             }\r
             tablespoon{\r
-                dnam{"tbsp"}\r
+                dnam{"thìa xúp"}\r
                 other{"{0} tbsp"}\r
             }\r
             teaspoon{\r
index c3a877418ad79f330038e0268f3fe352335e0987..be6b75407c00b7a06670a3469ddf5fb6173f6956 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 wo{\r
-    Version{"2.1.38.71"}\r
+    Version{"2.1.43.94"}\r
     durationUnits{\r
         hm{"h:mm"}\r
         hms{"h:mm:ss"}\r
diff --git a/source/data/unit/xh.txt b/source/data/unit/xh.txt
new file mode 100644 (file)
index 0000000..64c4b4d
--- /dev/null
@@ -0,0 +1,5 @@
+// © 2016 and later: Unicode, Inc. and others.\r
+// License & terms of use: http://www.unicode.org/copyright.html#License\r
+xh{\r
+    Version{"2.1.44.88"}\r
+}\r
index eb0f317ea4523e4efb14676264ccbd8c85cf2924..31760f0c1867a7a9d90b5ecefb4d9b53c5a79560 100644 (file)
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 yo{\r
-    Version{"2.1.39.11"}\r
+    Version{"2.1.44.88"}\r
 }\r
index 024f13702670064cf5de1eae9caab3023ca01326..47f498cef7d45612438e17522d46aede259f9c4f 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 yue{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.91"}\r
     durationUnits{\r
         hm{"h:mm"}\r
         hms{"h:mm:ss"}\r
@@ -103,6 +103,14 @@ yue{
                 dnam{"百萬分率"}\r
                 other{"{0} 百萬分率"}\r
             }\r
+            percent{\r
+                dnam{"%"}\r
+                other{"{0}%"}\r
+            }\r
+            permille{\r
+                dnam{"‰"}\r
+                other{"{0}‰"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -123,6 +131,7 @@ yue{
             }\r
         }\r
         coordinate{\r
+            dnam{"方向"}\r
             east{"東經{0}"}\r
             north{"北緯{0}"}\r
             south{"南緯{0}"}\r
@@ -161,6 +170,10 @@ yue{
                 dnam{"MB"}\r
                 other{"{0} MB"}\r
             }\r
+            petabyte{\r
+                dnam{"PB"}\r
+                other{"{0} PB"}\r
+            }\r
             terabit{\r
                 dnam{"Tb"}\r
                 other{"{0} Tb"}\r
@@ -455,6 +468,10 @@ yue{
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"atm"}\r
+                other{"{0} atm"}\r
+            }\r
             hectopascal{\r
                 dnam{"百帕"}\r
                 other{"{0} 百帕"}\r
@@ -679,6 +696,10 @@ yue{
             karat{\r
                 other{"{0}kt"}\r
             }\r
+            percent{\r
+                dnam{"%"}\r
+                other{"{0}%"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -693,6 +714,7 @@ yue{
             }\r
         }\r
         coordinate{\r
+            dnam{"方向"}\r
             east{"東經{0}"}\r
             north{"北緯{0}"}\r
             south{"南緯{0}"}\r
@@ -831,7 +853,7 @@ yue{
             }\r
             fathom{\r
                 dnam{"英尋"}\r
-                other{"{0}fm"}\r
+                other{"{0}fth"}\r
             }\r
             foot{\r
                 other{"{0}呎"}\r
@@ -1152,6 +1174,14 @@ yue{
                 dnam{"百萬分率"}\r
                 other{"{0} 百萬分率"}\r
             }\r
+            percent{\r
+                dnam{"%"}\r
+                other{"{0}%"}\r
+            }\r
+            permille{\r
+                dnam{"‰"}\r
+                other{"{0}‰"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -1172,6 +1202,7 @@ yue{
             }\r
         }\r
         coordinate{\r
+            dnam{"方向"}\r
             east{"東經{0}"}\r
             north{"北緯{0}"}\r
             south{"南緯{0}"}\r
@@ -1210,6 +1241,10 @@ yue{
                 dnam{"MB"}\r
                 other{"{0} MB"}\r
             }\r
+            petabyte{\r
+                dnam{"PB"}\r
+                other{"{0} PB"}\r
+            }\r
             terabit{\r
                 dnam{"Tb"}\r
                 other{"{0} Tb"}\r
@@ -1504,6 +1539,10 @@ yue{
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"atm"}\r
+                other{"{0} atm"}\r
+            }\r
             hectopascal{\r
                 dnam{"百帕"}\r
                 other{"{0} 百帕"}\r
index ea1dad1d7a966874ff33bb9fcd78367c3f2e29c2..6e7d8aa7cd203e2240a9987f5eb7507e541bf4c9 100644 (file)
@@ -2,7 +2,7 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 yue_Hans{\r
     %%Parent{"root"}\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.91"}\r
     durationUnits{\r
         hm{"h:mm"}\r
         hms{"h:mm:ss"}\r
@@ -104,6 +104,14 @@ yue_Hans{
                 dnam{"百万分率"}\r
                 other{"{0} 百万分率"}\r
             }\r
+            percent{\r
+                dnam{"%"}\r
+                other{"{0}%"}\r
+            }\r
+            permille{\r
+                dnam{"‰"}\r
+                other{"{0}‰"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -124,6 +132,7 @@ yue_Hans{
             }\r
         }\r
         coordinate{\r
+            dnam{"方向"}\r
             east{"东经{0}"}\r
             north{"北纬{0}"}\r
             south{"南纬{0}"}\r
@@ -162,6 +171,10 @@ yue_Hans{
                 dnam{"MB"}\r
                 other{"{0} MB"}\r
             }\r
+            petabyte{\r
+                dnam{"PB"}\r
+                other{"{0} PB"}\r
+            }\r
             terabit{\r
                 dnam{"Tb"}\r
                 other{"{0} Tb"}\r
@@ -456,6 +469,10 @@ yue_Hans{
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"atm"}\r
+                other{"{0} atm"}\r
+            }\r
             hectopascal{\r
                 dnam{"百帕"}\r
                 other{"{0} 百帕"}\r
@@ -680,6 +697,10 @@ yue_Hans{
             karat{\r
                 other{"{0}kt"}\r
             }\r
+            percent{\r
+                dnam{"%"}\r
+                other{"{0}%"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -694,6 +715,7 @@ yue_Hans{
             }\r
         }\r
         coordinate{\r
+            dnam{"方向"}\r
             east{"东经{0}"}\r
             north{"北纬{0}"}\r
             south{"南纬{0}"}\r
@@ -832,7 +854,7 @@ yue_Hans{
             }\r
             fathom{\r
                 dnam{"英寻"}\r
-                other{"{0}fm"}\r
+                other{"{0}fth"}\r
             }\r
             foot{\r
                 other{"{0}呎"}\r
@@ -1153,6 +1175,14 @@ yue_Hans{
                 dnam{"百万分率"}\r
                 other{"{0} 百万分率"}\r
             }\r
+            percent{\r
+                dnam{"%"}\r
+                other{"{0}%"}\r
+            }\r
+            permille{\r
+                dnam{"‰"}\r
+                other{"{0}‰"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -1173,6 +1203,7 @@ yue_Hans{
             }\r
         }\r
         coordinate{\r
+            dnam{"方向"}\r
             east{"东经{0}"}\r
             north{"北纬{0}"}\r
             south{"南纬{0}"}\r
@@ -1211,6 +1242,10 @@ yue_Hans{
                 dnam{"MB"}\r
                 other{"{0} MB"}\r
             }\r
+            petabyte{\r
+                dnam{"PB"}\r
+                other{"{0} PB"}\r
+            }\r
             terabit{\r
                 dnam{"Tb"}\r
                 other{"{0} Tb"}\r
@@ -1505,6 +1540,10 @@ yue_Hans{
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"atm"}\r
+                other{"{0} atm"}\r
+            }\r
             hectopascal{\r
                 dnam{"百帕"}\r
                 other{"{0} 百帕"}\r
index 1affd805f2a8c8ae2f7864a02f490517fbfafad9..470d4c0745439a7a84d31267aae2bc4f5767d92d 100644 (file)
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 zgh{\r
-    Version{"2.1.39.11"}\r
+    Version{"2.1.43.94"}\r
 }\r
index 309209f7097d1b3562203628b89508d869c6748e..9d9deb17c1be8e141fb5f55244a8b34c97d6a9d3 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 zh{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.76"}\r
     durationUnits{\r
         hm{"h:mm"}\r
         hms{"h:mm:ss"}\r
@@ -103,6 +103,14 @@ zh{
                 dnam{"ppm"}\r
                 other{"百万分之{0}"}\r
             }\r
+            percent{\r
+                dnam{"%"}\r
+                other{"{0}%"}\r
+            }\r
+            permille{\r
+                dnam{"‰"}\r
+                other{"{0}‰"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -123,6 +131,7 @@ zh{
             }\r
         }\r
         coordinate{\r
+            dnam{"主方向"}\r
             east{"东经{0}"}\r
             north{"北纬{0}"}\r
             south{"南纬{0}"}\r
@@ -161,6 +170,10 @@ zh{
                 dnam{"兆字节"}\r
                 other{"{0}兆字节"}\r
             }\r
+            petabyte{\r
+                dnam{"拍字节"}\r
+                other{"{0}拍字节"}\r
+            }\r
             terabit{\r
                 dnam{"太比特"}\r
                 other{"{0}太比特"}\r
@@ -455,6 +468,10 @@ zh{
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"标准大气压"}\r
+                other{"{0}个标准大气压"}\r
+            }\r
             hectopascal{\r
                 dnam{"百帕斯卡"}\r
                 other{"{0}百帕斯卡"}\r
@@ -688,6 +705,12 @@ zh{
         compound{\r
             per{"{0}/{1}"}\r
         }\r
+        concentr{\r
+            percent{\r
+                dnam{"%"}\r
+                other{"{0}%"}\r
+            }\r
+        }\r
         consumption{\r
             liter-per-100kilometers{\r
                 dnam{"升/100千米"}\r
@@ -695,6 +718,7 @@ zh{
             }\r
         }\r
         coordinate{\r
+            dnam{"方向"}\r
             east{"{0}E"}\r
             north{"{0}N"}\r
             south{"{0}S"}\r
@@ -1126,6 +1150,14 @@ zh{
                 dnam{"ppm"}\r
                 other{"{0}ppm"}\r
             }\r
+            percent{\r
+                dnam{"%"}\r
+                other{"{0}%"}\r
+            }\r
+            permille{\r
+                dnam{"‰"}\r
+                other{"{0}‰"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -1146,6 +1178,7 @@ zh{
             }\r
         }\r
         coordinate{\r
+            dnam{"方向"}\r
             east{"东经{0}"}\r
             north{"北纬{0}"}\r
             south{"南纬{0}"}\r
@@ -1184,6 +1217,10 @@ zh{
                 dnam{"兆字节"}\r
                 other{"{0}兆字节"}\r
             }\r
+            petabyte{\r
+                dnam{"PB"}\r
+                other{"{0} PB"}\r
+            }\r
             terabit{\r
                 dnam{"太比特"}\r
                 other{"{0}太比特"}\r
@@ -1478,6 +1515,10 @@ zh{
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"大气压"}\r
+                other{"{0}个大气压"}\r
+            }\r
             hectopascal{\r
                 dnam{"百帕"}\r
                 other{"{0}百帕"}\r
index 70e5ba5152421e8e5c5e3dfabf8495991b3413ad..4ae79674cea8d78b3d5f252839772bcc3eb060ee 100644 (file)
@@ -2,7 +2,7 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 zh_Hant{\r
     %%Parent{"root"}\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.91"}\r
     durationUnits{\r
         hm{"h:mm"}\r
         hms{"h:mm:ss"}\r
@@ -104,6 +104,14 @@ zh_Hant{
                 dnam{"百萬分率"}\r
                 other{"{0} 百萬分率"}\r
             }\r
+            percent{\r
+                dnam{"百分比"}\r
+                other{"{0}%"}\r
+            }\r
+            permille{\r
+                dnam{"千分比"}\r
+                other{"{0}‰"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -124,6 +132,7 @@ zh_Hant{
             }\r
         }\r
         coordinate{\r
+            dnam{"基本方向"}\r
             east{"東經{0}"}\r
             north{"北緯{0}"}\r
             south{"南緯{0}"}\r
@@ -162,6 +171,10 @@ zh_Hant{
                 dnam{"MB"}\r
                 other{"{0} MB"}\r
             }\r
+            petabyte{\r
+                dnam{"PB"}\r
+                other{"{0} PB"}\r
+            }\r
             terabit{\r
                 dnam{"Tb"}\r
                 other{"{0} Tb"}\r
@@ -456,6 +469,10 @@ zh_Hant{
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"氣壓"}\r
+                other{"{0} 大氣壓"}\r
+            }\r
             hectopascal{\r
                 dnam{"百帕"}\r
                 other{"{0} 百帕"}\r
@@ -717,6 +734,10 @@ zh_Hant{
                 dnam{"百萬分率"}\r
                 other{"{0}ppm"}\r
             }\r
+            percent{\r
+                dnam{"百分比"}\r
+                other{"{0}%"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -737,6 +758,7 @@ zh_Hant{
             }\r
         }\r
         coordinate{\r
+            dnam{"方向"}\r
             east{"東經{0}"}\r
             north{"北緯{0}"}\r
             south{"南緯{0}"}\r
@@ -915,7 +937,7 @@ zh_Hant{
             }\r
             fathom{\r
                 dnam{"英尋"}\r
-                other{"{0}fm"}\r
+                other{"{0}fth"}\r
             }\r
             foot{\r
                 dnam{"英尺"}\r
@@ -1329,6 +1351,14 @@ zh_Hant{
                 dnam{"百萬分率"}\r
                 other{"{0} 百萬分率"}\r
             }\r
+            percent{\r
+                dnam{"百分比"}\r
+                other{"{0}%"}\r
+            }\r
+            permille{\r
+                dnam{"千分比"}\r
+                other{"{0}‰"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -1349,6 +1379,7 @@ zh_Hant{
             }\r
         }\r
         coordinate{\r
+            dnam{"方向"}\r
             east{"東經{0}"}\r
             north{"北緯{0}"}\r
             south{"南緯{0}"}\r
@@ -1387,6 +1418,10 @@ zh_Hant{
                 dnam{"MB"}\r
                 other{"{0} MB"}\r
             }\r
+            petabyte{\r
+                dnam{"PB"}\r
+                other{"{0} PB"}\r
+            }\r
             terabit{\r
                 dnam{"Tb"}\r
                 other{"{0} Tb"}\r
@@ -1681,6 +1716,10 @@ zh_Hant{
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"atm"}\r
+                other{"{0} atm"}\r
+            }\r
             hectopascal{\r
                 dnam{"百帕"}\r
                 other{"{0} 百帕"}\r
index a5f81c3c82659500ce2a0f7d75817e1e302defaa..9a1291b4db41a3c17c7b043902970a7542ce086b 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 zh_Hant_HK{\r
-    Version{"2.1.39.11"}\r
+    Version{"2.1.43.65"}\r
     units{\r
         acceleration{\r
             meter-per-second-squared{\r
@@ -340,22 +340,29 @@ zh_Hant_HK{
             west{"{0}W"}\r
         }\r
         duration{\r
+            century{\r
+                other{"{0}世紀"}\r
+            }\r
             day{\r
                 dnam{"日"}\r
                 other{"{0}日"}\r
+                per{"{0} 每日"}\r
             }\r
             hour{\r
                 other{"{0}小時"}\r
+                per{"{0} 每小時"}\r
             }\r
             millisecond{\r
                 other{"{0}毫秒"}\r
             }\r
             minute{\r
                 dnam{"分"}\r
+                other{"{0}分"}\r
                 per{"{0} 每分鐘"}\r
             }\r
             month{\r
                 other{"{0}個月"}\r
+                per{"{0} 每月"}\r
             }\r
             nanosecond{\r
                 dnam{"納秒"}\r
@@ -368,6 +375,7 @@ zh_Hant_HK{
             }\r
             year{\r
                 other{"{0}年"}\r
+                per{"{0} 每年"}\r
             }\r
         }\r
         energy{\r
@@ -419,13 +427,23 @@ zh_Hant_HK{
             }\r
         }\r
         mass{\r
+            gram{\r
+                per{"{0} 每克"}\r
+            }\r
+            kilogram{\r
+                per{"{0} 每公斤"}\r
+            }\r
             ounce{\r
                 dnam{"安士"}\r
                 other{"{0} 安士"}\r
+                per{"{0} 每安士"}\r
             }\r
             ounce-troy{\r
                 dnam{"金衡安士"}\r
             }\r
+            pound{\r
+                per{"{0} 每磅"}\r
+            }\r
         }\r
         power{\r
             megawatt{\r
@@ -466,6 +484,9 @@ zh_Hant_HK{
             acre-foot{\r
                 dnam{"英畝呎"}\r
             }\r
+            centiliter{\r
+                dnam{"厘升"}\r
+            }\r
             cubic-centimeter{\r
                 dnam{"立方厘米"}\r
                 per{"{0} 每立方厘米"}\r
index 43c2f1f45a41dee0d6669abce396f5ec420b8f05..953afbf50b5cfd694381003a87b807ac6e7bab64 100644 (file)
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 zh_Hant_MO{\r
     %%Parent{"zh_Hant_HK"}\r
-    Version{"2.1.38.39"}\r
+    Version{"2.1.43.65"}\r
 }\r
index 9dec6a775f145e55f5487a7cb19cfc0e306f1c77..b4107ef717f76c5e68e6cfa5facccc86da7ea574 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 zu{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.65"}\r
     durationUnits{\r
         hm{"h:mm"}\r
         hms{"h:mm:ss"}\r
@@ -123,6 +123,15 @@ zu{
                 one{"{0} ppm"}\r
                 other{"{0} ppm"}\r
             }\r
+            percent{\r
+                dnam{"%"}\r
+                one{"{0}%"}\r
+                other{"{0}%"}\r
+            }\r
+            permille{\r
+                one{"{0}‰"}\r
+                other{"{0}‰"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -147,6 +156,7 @@ zu{
             }\r
         }\r
         coordinate{\r
+            dnam{"indlela"}\r
             east{"{0}E"}\r
             north{"{0}N"}\r
             south{"{0}S"}\r
@@ -193,6 +203,11 @@ zu{
                 one{"{0} MB"}\r
                 other{"{0} MB"}\r
             }\r
+            petabyte{\r
+                dnam{"PB"}\r
+                one{"{0} PB"}\r
+                other{"{0} PB"}\r
+            }\r
             terabit{\r
                 dnam{"terabits"}\r
                 one{"{0} i-terabit"}\r
@@ -537,6 +552,11 @@ zu{
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"atm"}\r
+                one{"{0} atm"}\r
+                other{"{0} atm"}\r
+            }\r
             hectopascal{\r
                 dnam{"hPa"}\r
                 one{"{0} hPa"}\r
@@ -759,6 +779,13 @@ zu{
         compound{\r
             per{"{0}/{1}"}\r
         }\r
+        concentr{\r
+            percent{\r
+                dnam{"%"}\r
+                one{"{0}%"}\r
+                other{"{0}%"}\r
+            }\r
+        }\r
         consumption{\r
             liter-per-100kilometers{\r
                 dnam{"L/100km"}\r
@@ -767,6 +794,7 @@ zu{
             }\r
         }\r
         coordinate{\r
+            dnam{"indlela"}\r
             east{"{0}E"}\r
             north{"{0}N"}\r
             south{"{0}S"}\r
@@ -990,6 +1018,16 @@ zu{
                 one{"{0} ppm"}\r
                 other{"{0} ppm"}\r
             }\r
+            percent{\r
+                dnam{"%"}\r
+                one{"{0}%"}\r
+                other{"{0}%"}\r
+            }\r
+            permille{\r
+                dnam{"‰"}\r
+                one{"{0}‰"}\r
+                other{"{0}‰"}\r
+            }\r
         }\r
         consumption{\r
             liter-per-100kilometers{\r
@@ -1014,6 +1052,7 @@ zu{
             }\r
         }\r
         coordinate{\r
+            dnam{"indlela"}\r
             east{"{0}E"}\r
             north{"{0}N"}\r
             south{"{0}S"}\r
@@ -1060,6 +1099,11 @@ zu{
                 one{"{0} MB"}\r
                 other{"{0} MB"}\r
             }\r
+            petabyte{\r
+                dnam{"PB"}\r
+                one{"{0} PB"}\r
+                other{"{0} PB"}\r
+            }\r
             terabit{\r
                 dnam{"Tbit"}\r
                 one{"{0} Tb"}\r
@@ -1404,6 +1448,11 @@ zu{
             }\r
         }\r
         pressure{\r
+            atmosphere{\r
+                dnam{"atm"}\r
+                one{"{0} atm"}\r
+                other{"{0} atm"}\r
+            }\r
             hectopascal{\r
                 dnam{"hPa"}\r
                 one{"{0} hPa"}\r
index 7ba8e13e37ae592308445daa3acb3cae8cee5abc..f7e0b2158790417a7cd6c06a647d98c068be43b8 100644 (file)
@@ -14,7 +14,7 @@
 >\r
 <ldml>\r
     <identity>\r
-        <version number="$Revision: 40674 $"/>\r
+        <version number="$Revision$"/>\r
         <language type="de"/>\r
     </identity>\r
 </ldml>\r
index acf3edabda35625d60f6c7157bc32eb3c411d80f..9c4379c79d332a71125ef48de10947fc53d13eac 100644 (file)
@@ -12,7 +12,7 @@
 >\r
 <ldml>\r
     <identity>\r
-        <version number="$Revision: 40674 $"/>\r
+        <version number="$Revision$"/>\r
         <language type="el"/> \r
     </identity>\r
     <special xmlns:icu="http://www.icu-project.org/">\r
index bd7742a0144ae48690ad702f18798dd9c2812830..96b3e7810fbc3ded7e65a7512d2de19eefb431e2 100644 (file)
@@ -12,7 +12,7 @@
 >\r
 <ldml>\r
     <identity>\r
-        <version number="$Revision: 40674 $"/>\r
+        <version number="$Revision$"/>\r
         <language type="en"/> \r
     </identity>\r
 </ldml>\r
index f3b7e45ebc301a7354f97698411df7a969859b31..7d30a3d475eb51020e3ce26d20e7ed7d1e15f533 100644 (file)
@@ -12,7 +12,7 @@
 >\r
 <ldml>\r
     <identity>\r
-        <version number="$Revision: 40674 $"/>\r
+        <version number="$Revision$"/>\r
         <language type="en"/> \r
         <territory type="US"/>\r
     </identity>\r
index 27e38cb2c62ed9af74e8d7a2aa62d9c97d1cd1e0..31d0b3db5a614513ba63199bee3dee1822b02965 100644 (file)
@@ -12,7 +12,7 @@
 >\r
 <ldml>\r
     <identity>\r
-        <version number="$Revision: 40674 $"/>\r
+        <version number="$Revision$"/>\r
         <language type="en"/> \r
         <territory type="US"/> \r
         <variant type="POSIX"/> \r
index 68949e746830a4b564d98dd85a7dbccaff15b8db..5a80e015bdcfa1195fff5c28b8e3b73ed1e64ea3 100644 (file)
@@ -14,7 +14,7 @@
 >\r
 <ldml>\r
     <identity>\r
-        <version number="$Revision: 40674 $"/>\r
+        <version number="$Revision$"/>\r
         <language type="es"/>\r
     </identity>\r
 </ldml>\r
diff --git a/source/data/xml/brkitr/fi.xml b/source/data/xml/brkitr/fi.xml
deleted file mode 100644 (file)
index 02e3b81..0000000
+++ /dev/null
@@ -1,29 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" ?>\r
-<!--\r
- Copyright (C) 2016 and later: Unicode, Inc. and others.\r
- License & terms of use: http://www.unicode.org/copyright.html\r
- Copyright (c) 2010-2015 International Business Machines Corporation and others. All rights reserved.\r
--->\r
-<!DOCTYPE ldml SYSTEM "http://www.unicode.org/repos/cldr/trunk/common/dtd/ldml.dtd"\r
-[\r
-   <!ENTITY % icu SYSTEM "http://www.unicode.org/repos/cldr/trunk/common/dtd/ldmlICU.dtd">\r
-   %icu;\r
-]\r
->\r
-<ldml>\r
-    <identity>\r
-        <version number="$Revision: 40674 $"/>\r
-        <language type="fi"/> \r
-    </identity>\r
-    <special xmlns:icu="http://www.icu-project.org/">\r
-        <icu:breakIteratorData>\r
-            <icu:boundaries>\r
-                <icu:line     icu:dependency="line_fi.brk"/>\r
-                <icu:line     alt="loose"  icu:dependency="line_loose_fi.brk"/>\r
-                <icu:line     alt="normal" icu:dependency="line_normal_fi.brk"/>\r
-                <icu:line     alt="strict" icu:dependency="line_fi.brk"/>\r
-            </icu:boundaries>\r
-        </icu:breakIteratorData>\r
-    </special>\r
-</ldml>\r
-\r
index 8890ccb28e68e459a1282e622e78335f39b5e6f3..9f0f32f727e2fb694cedf3340be417e3be7a2c65 100644 (file)
@@ -14,7 +14,7 @@
 >\r
 <ldml>\r
     <identity>\r
-        <version number="$Revision: 40674 $"/>\r
+        <version number="$Revision$"/>\r
         <language type="fr"/>\r
     </identity>\r
 </ldml>\r
index 3a8897a188064365e2e744608031c9b58ae3bb61..8210976b24ca14b7575998d2ce1147e9a5ccd26f 100644 (file)
@@ -14,7 +14,7 @@
 >\r
 <ldml>\r
     <identity>\r
-        <version number="$Revision: 40674 $"/>\r
+        <version number="$Revision$"/>\r
         <language type="it"/>\r
     </identity>\r
 </ldml>\r
index 4e44f96d94e18771940c6c2a4e2ec3f12490c713..32459122124c24cb05d28b1676859a3759a4b898 100644 (file)
@@ -12,7 +12,7 @@
 >\r
 <ldml>\r
     <identity>\r
-        <version number="$Revision: 40674 $"/>\r
+        <version number="$Revision$"/>\r
         <language type="ja"/> \r
     </identity>\r
     <special xmlns:icu="http://www.icu-project.org/">\r
index f8a40dc80540c1faee2d809483a899ba35b36d97..d1bf2dc6df7867f968103eb3f6138cc6edeeafe7 100644 (file)
@@ -14,7 +14,7 @@
 >\r
 <ldml>\r
     <identity>\r
-        <version number="$Revision: 40674 $"/>\r
+        <version number="$Revision$"/>\r
         <language type="pt"/>\r
     </identity>\r
 </ldml>\r
index 05e2af015f420c4a7eaadc12a00b25a4f8ac0fd4..c37188de70cad959d7804b94394a74e56ee8de6e 100644 (file)
@@ -12,7 +12,7 @@
 >\r
 <ldml>\r
     <identity>\r
-        <version number="$Revision: 40674 $"/>\r
+        <version number="$Revision$"/>\r
         <language type="root"/> \r
     </identity>\r
     <special xmlns:icu="http://www.icu-project.org/">\r
index 75f60e82a2cff5d764eeb8ff6e3466da6e8dc807..054173a00828684ad604c2532b761af7054a7bf5 100644 (file)
@@ -14,7 +14,7 @@
 >\r
 <ldml>\r
     <identity>\r
-        <version number="$Revision: 40674 $"/>\r
+        <version number="$Revision$"/>\r
         <language type="ru"/>\r
     </identity>\r
 </ldml>\r
index cc6c65390d77aa27cb7ba3a7a4118d5442c6acd7..267baf90e982afb671bf75683eeb9597dd6c2067 100644 (file)
@@ -12,7 +12,7 @@
 >\r
 <ldml>\r
     <identity>\r
-        <version number="$Revision: 40674 $"/>\r
+        <version number="$Revision$"/>\r
         <language type="root"/> \r
     </identity>\r
     <special xmlns:icu="http://www.icu-project.org/">\r
index 0bb58d09cef9dc3fc3a5da48cfe4a19b6149d10c..7218623204fbfb1931d8bbae2a8bf44300b5a286 100644 (file)
@@ -12,7 +12,7 @@
 >\r
 <ldml>\r
     <identity>\r
-        <version number="$Revision: 40674 $"/>\r
+        <version number="$Revision$"/>\r
         <language type="root"/> \r
     </identity>\r
 </ldml>\r
index c5c8105531c22595bd1c046b6e921a862e018fbc..2d9e0e3b4adf290980350bc3ca715496a8eb24c8 100644 (file)
@@ -7,7 +7,7 @@
 <!DOCTYPE ldml SYSTEM "http://www.unicode.org/repos/cldr/trunk/common/dtd/ldml.dtd">\r
 <ldml>\r
     <identity>\r
-        <version number="$Revision: 40674 $"/>\r
+        <version number="$Revision$"/>\r
         <language type="be"/>\r
     </identity>\r
     <rbnf>\r
index 859ffa93abd7ce0036e6ac6960b73de60b777c02..3be0286cbec243bb456d936b7f99be83351d7f28 100644 (file)
@@ -7,7 +7,7 @@
 <!DOCTYPE ldml SYSTEM "http://www.unicode.org/repos/cldr/trunk/common/dtd/ldml.dtd">\r
 <ldml>\r
     <identity>\r
-        <version number="$Revision: 40674 $"/>\r
+        <version number="$Revision$"/>\r
         <language type="bg"/>\r
     </identity>\r
     <rbnf>\r
index 361f3ffe2719d1b00c2dc8bbb76d4034aab19f6a..98ae4a7c745717d8c9b4577ab4ca6ea3b9a62224 100644 (file)
@@ -7,7 +7,7 @@
 <!DOCTYPE ldml SYSTEM "http://www.unicode.org/repos/cldr/trunk/common/dtd/ldml.dtd">\r
 <ldml>\r
     <identity>\r
-        <version number="$Revision: 40674 $"/>\r
+        <version number="$Revision$"/>\r
         <language type="ca"/>\r
     </identity>\r
     <rbnf>\r
index 742372be83c6d60ea98cf700c63a6cf1e92bb503..27dd4e2130b72763cfbc0b5d7d913a4e1f883c8f 100644 (file)
@@ -7,7 +7,7 @@
 <!DOCTYPE ldml SYSTEM "http://www.unicode.org/repos/cldr/trunk/common/dtd/ldml.dtd">\r
 <ldml>\r
     <identity>\r
-        <version number="$Revision: 40674 $"/>\r
+        <version number="$Revision$"/>\r
         <language type="cy"/>\r
     </identity>\r
     <rbnf>\r
index e479749887e1c21764519b246b865924de023cf9..6570e628c6c96c279002d70f1964fd84342da0c3 100644 (file)
@@ -7,7 +7,7 @@
 <!DOCTYPE ldml SYSTEM "http://www.unicode.org/repos/cldr/trunk/common/dtd/ldml.dtd">\r
 <ldml>\r
     <identity>\r
-        <version number="$Revision: 40674 $"/>\r
+        <version number="$Revision$"/>\r
         <language type="da"/>\r
     </identity>\r
     <rbnf>\r
index ee2a401f41faffd053bce3ac01930c4a26959bc2..b7264f71d5f9ed95f8e14a07c535936eb0b5cb4c 100644 (file)
@@ -8,7 +8,7 @@
 <ldml>\r
        <identity>\r
 \r
-               <version number="$Revision: 40674 $"/>\r
+               <version number="$Revision$"/>\r
                <language type="de"/>\r
        </identity>\r
     <rbnf>\r
index a9da7cd43d9a365286d2ac71d168a3380ddd5aac..77a3c159f41e77ec9e5df4570de9711327fe4493 100644 (file)
@@ -8,7 +8,7 @@
 <ldml>\r
        <identity>\r
 \r
-               <version number="$Revision: 40674 $"/>\r
+               <version number="$Revision$"/>\r
                <language type="en"/>\r
        </identity>\r
     <rbnf>\r
index 48f7ea9bcbc355c9ee839c3d881a4ddade8aaf03..81be866245501eb5a05f4b3ccf479f401cee3106 100644 (file)
@@ -7,7 +7,7 @@
 <!DOCTYPE ldml SYSTEM "http://www.unicode.org/repos/cldr/trunk/common/dtd/ldml.dtd">\r
 <ldml>\r
     <identity>\r
-        <version number="$Revision: 40674 $"/>\r
+        <version number="$Revision$"/>\r
         <language type="fo"/>\r
     </identity>\r
     <rbnf>\r
index 7e403548d0934a4fa6fed57d01f6c452559dcd93..2b79c09888d23d06aedf764f30b61f4459fccd47 100644 (file)
@@ -7,7 +7,7 @@
 <!DOCTYPE ldml SYSTEM "http://www.unicode.org/repos/cldr/trunk/common/dtd/ldml.dtd">\r
 <ldml>\r
        <identity>\r
-               <version number="$Revision: 40674 $"/>\r
+               <version number="$Revision$"/>\r
                <language type="ga"/>\r
        </identity>\r
     <rbnf>\r
index f6c6ba49425c5824e348f21b574d7d907c4df866..42952b7e3f33e16e8bffa0bde598c391180a7974 100644 (file)
@@ -7,7 +7,7 @@
 <!DOCTYPE ldml SYSTEM "http://www.unicode.org/repos/cldr/trunk/common/dtd/ldml.dtd">\r
 <ldml>\r
     <identity>\r
-        <version number="$Revision: 40674 $"/>\r
+        <version number="$Revision$"/>\r
         <language type="is"/>\r
     </identity>\r
     <rbnf>\r
index ea2ea03559ab677d97e038907a6f8922d833cdbd..66ea00a5874744fa254d85b70edb3ed48bf20509 100644 (file)
@@ -7,7 +7,7 @@
 <!DOCTYPE ldml SYSTEM "http://www.unicode.org/repos/cldr/trunk/common/dtd/ldml.dtd">\r
 <ldml>\r
     <identity>\r
-        <version number="$Revision: 40674 $"/>\r
+        <version number="$Revision$"/>\r
         <language type="mk"/>\r
     </identity>\r
     <rbnf>\r
index d812cffce065a7c7db29a3abc1bbc136e3c358e8..f2461e78cba2ab2142849cb8cd1ffe5571ee09fb 100644 (file)
@@ -8,7 +8,7 @@
 <ldml>\r
        <identity>\r
 \r
-               <version number="$Revision: 40674 $"/>\r
+               <version number="$Revision$"/>\r
                <language type="mt"/>\r
        </identity>\r
     <rbnf>\r
index 71dc2796dd3ee8520204d3de7675533ed6c3170a..1d8c25ea109dc2d115b1bda966c1e2ca3fe309ef 100644 (file)
@@ -7,7 +7,7 @@
 <!DOCTYPE ldml SYSTEM "http://www.unicode.org/repos/cldr/trunk/common/dtd/ldml.dtd">\r
 <ldml>\r
     <identity>\r
-        <version number="$Revision: 40674 $"/>\r
+        <version number="$Revision$"/>\r
         <language type="nb"/>\r
     </identity>\r
     <rbnf>\r
index d837891bf30f06fc80578333507fd6eadb7ca3af..93126fc3e76fcd13cadd743d0bdcea360773ad1e 100644 (file)
@@ -7,7 +7,7 @@
 <!DOCTYPE ldml SYSTEM "http://www.unicode.org/repos/cldr/trunk/common/dtd/ldml.dtd">\r
 <ldml>\r
     <identity>\r
-        <version number="$Revision: 40674 $"/>\r
+        <version number="$Revision$"/>\r
         <language type="nn"/>\r
     </identity>\r
     <rbnf>\r
index 72bb7d0e56c3a62ea546ac306e2ec84d5b6e7c7d..09eaa93c6e41e6a2bd7e9967f1173b85460a6d0e 100644 (file)
@@ -7,7 +7,7 @@
 <!DOCTYPE ldml SYSTEM "http://www.unicode.org/repos/cldr/trunk/common/dtd/ldml.dtd">\r
 <ldml>\r
        <identity>\r
-               <version number="$Revision: 40674 $"/>\r
+               <version number="$Revision$"/>\r
                <language type="root"/>\r
        </identity>\r
     <rbnf>\r
index 1b3f4bd71deca48331a094fc0bd2e3468f3211b7..94281fa1df4892787d6e74ac9c6854a6b5ded573 100644 (file)
@@ -7,7 +7,7 @@
 <!DOCTYPE ldml SYSTEM "http://www.unicode.org/repos/cldr/trunk/common/dtd/ldml.dtd">\r
 <ldml>\r
     <identity>\r
-        <version number="$Revision: 40674 $"/>\r
+        <version number="$Revision$"/>\r
         <language type="ru"/>\r
     </identity>\r
     <rbnf>\r
index e09c530aea7c78aa18cf1b01a585e10b22decbf1..97975c5ff7e317f46541eb4bfb1b9660f4495086 100644 (file)
@@ -7,7 +7,7 @@
 <!DOCTYPE ldml SYSTEM "http://www.unicode.org/repos/cldr/trunk/common/dtd/ldml.dtd">\r
 <ldml>\r
     <identity>\r
-        <version number="$Revision: 40674 $"/>\r
+        <version number="$Revision$"/>\r
         <language type="sr"/>\r
     </identity>\r
     <rbnf>\r
index 71223ffed36b71d1b4263a7d94a3c2c52c610309..8b32cd3e180c5772c602d8da7aff8f14362778af 100644 (file)
@@ -7,7 +7,7 @@
 <!DOCTYPE ldml SYSTEM "http://www.unicode.org/repos/cldr/trunk/common/dtd/ldml.dtd">\r
 <ldml>\r
     <identity>\r
-        <version number="$Revision: 40674 $"/>\r
+        <version number="$Revision$"/>\r
         <language type="uk"/>\r
     </identity>\r
     <rbnf>\r
index 3d4c3056a499e831e0d2cddd6732c74368be8ced..1b040fdb1783d61e52f1956ffc7fd013483500ba 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 af{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.65"}\r
     zoneStrings{\r
         "Africa:Abidjan"{\r
             ec{"Abidjan"}\r
@@ -910,7 +910,7 @@ af{
             ec{"Suid-Georgië"}\r
         }\r
         "Atlantic:St_Helena"{\r
-            ec{"St. Helena"}\r
+            ec{"Sint Helena"}\r
         }\r
         "Atlantic:Stanley"{\r
             ec{"Stanley"}\r
@@ -1287,7 +1287,7 @@ af{
             ec{"Wake"}\r
         }\r
         "Pacific:Wallis"{\r
-            ec{"Wallis"}\r
+            ec{"Mata-Utu"}\r
         }\r
         "meta:Afghanistan"{\r
             ls{"Afganistan-tyd"}\r
index 46e067841c89950b9cea19a71e332fc87612491c..702c8c58ab52f502bcc63e6e930c6ae73fb997b8 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 am{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.65"}\r
     zoneStrings{\r
         "Africa:Abidjan"{\r
             ec{"አቢጃን"}\r
@@ -1318,13 +1318,13 @@ am{
         }\r
         "meta:America_Central"{\r
             ld{"የመካከለኛ የቀን ሰዓት አቆጣጠር"}\r
-            lg{"የመካከለኛ ሰዓት አቆጣጠር"}\r
-            ls{"የመካከለኛ መደበኛ ሰዓት አቆጣጠር"}\r
+            lg{"á\8b¨á\88°á\88\9cá\8a\95 á\8a á\88\9cá\88ªá\8a« á\8b¨á\88\98á\8a«á\8a¨á\88\88á\8a\9b á\88°á\8b\93á\89µ á\8a á\89\86á\8c£á\8c á\88­"}\r
+            ls{"á\8b¨á\88°á\88\9cá\8a\95 á\8a á\88\9cá\88ªá\8a« á\8b¨á\88\98á\8a«á\8a¨á\88\88á\8a\9b á\88\98á\8b°á\89 á\8a\9b á\88°á\8b\93á\89µ á\8a á\89\86á\8c£á\8c á\88­"}\r
         }\r
         "meta:America_Eastern"{\r
-            ld{"á\8b¨á\88\9dá\8b\95á\88«á\89£ዊ የቀን ሰዓት አቆጣጠር"}\r
-            lg{"á\8b¨á\88\9dá\8b\95á\88«á\89£ዊ ሰዓት አቆጣጠር"}\r
-            ls{"á\8b¨á\88\9dá\8b\95á\88«á\89£á\8b\8a á\88\98á\8b°á\89 á\8a\9b á\8b¨ሰዓት አቆጣጠር"}\r
+            ld{"á\88\9dá\88µá\88«á\89\83ዊ የቀን ሰዓት አቆጣጠር"}\r
+            lg{"á\88\9dá\88µá\88«á\89\83ዊ ሰዓት አቆጣጠር"}\r
+            ls{"á\88\9dá\88µá\88«á\89\83á\8b\8a á\88\98á\8b°á\89 á\8a\9b ሰዓት አቆጣጠር"}\r
         }\r
         "meta:America_Mountain"{\r
             ld{"የተራራ የቀንሰዓት አቆጣጠር"}\r
index 35def1c65fb59aa261d54497f4cdb831c6b9925b..eaa61e293307781f4b358a4e6a76654d0a86ce49 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 ar{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.50"}\r
     zoneStrings{\r
         "Africa:Abidjan"{\r
             ec{"أبيدجان"}\r
@@ -439,7 +439,7 @@ ar{
             ec{"ميتلاكاتلا"}\r
         }\r
         "America:Mexico_City"{\r
-            ec{"مدينة المكسيك"}\r
+            ec{"مكسيكو سيتي"}\r
         }\r
         "America:Miquelon"{\r
             ec{"مكويلون"}\r
@@ -1004,7 +1004,7 @@ ar{
             ec{"جبل طارق"}\r
         }\r
         "Europe:Guernsey"{\r
-            ec{"غÙ\8aرÙ\86سي"}\r
+            ec{"غÙ\8aرÙ\86زي"}\r
         }\r
         "Europe:Helsinki"{\r
             ec{"هلسنكي"}\r
@@ -1434,9 +1434,9 @@ ar{
             ls{"توقيت تشاتام الرسمي"}\r
         }\r
         "meta:Chile"{\r
-            ld{"توقيت شيلي الصيفي"}\r
-            lg{"توقيت شيلي"}\r
-            ls{"توقيت شيلي الرسمي"}\r
+            ld{"تÙ\88Ù\82Ù\8aت ØªØ´Ù\8aÙ\84Ù\8a Ø§Ù\84صÙ\8aÙ\81Ù\8a"}\r
+            lg{"تÙ\88Ù\82Ù\8aت ØªØ´Ù\8aÙ\84Ù\8a"}\r
+            ls{"تÙ\88Ù\82Ù\8aت ØªØ´Ù\8aÙ\84Ù\8a Ø§Ù\84رسÙ\85Ù\8a"}\r
         }\r
         "meta:China"{\r
             ld{"توقيت الصين الصيفي"}\r
@@ -1460,9 +1460,9 @@ ar{
             ls{"توقيت كولومبيا الرسمي"}\r
         }\r
         "meta:Cook"{\r
-            ld{"تÙ\88Ù\82Ù\8aت Ø¬Ø²Ø± Ù\83Ù\88Ù\88Ù\83 Ø§Ù\84صÙ\8aÙ\81Ù\8a"}\r
+            ld{"توقيت جزر كوك الصيفي"}\r
             lg{"توقيت جزر كووك"}\r
-            ls{"تÙ\88Ù\82Ù\8aت Ø¬Ø²Ø± Ù\83Ù\88Ù\88Ù\83 Ø§Ù\84رسÙ\85Ù\8a"}\r
+            ls{"توقيت جزر كوك الرسمي"}\r
         }\r
         "meta:Cuba"{\r
             ld{"توقيت كوبا الصيفي"}\r
@@ -1515,7 +1515,7 @@ ar{
             ls{"توقيت فيجي الرسمي"}\r
         }\r
         "meta:French_Guiana"{\r
-            ls{"توقيت غايانا الفرنسية"}\r
+            ls{"توقيت غويانا الفرنسية"}\r
         }\r
         "meta:French_Southern"{\r
             ls{"توقيت المقاطعات الفرنسية الجنوبية والأنتارتيكية"}\r
@@ -1656,7 +1656,7 @@ ar{
             ls{"توقيت ماليزيا"}\r
         }\r
         "meta:Maldives"{\r
-            ls{"تÙ\88Ù\82Ù\8aت Ø§Ù\84Ù\80مالديف"}\r
+            ls{"تÙ\88Ù\82Ù\8aت Ø¬Ø²Ø± Ø§Ù\84مالديف"}\r
         }\r
         "meta:Marquesas"{\r
             ls{"توقيت ماركيساس"}\r
@@ -1784,7 +1784,7 @@ ar{
             ls{"توقيت بيونغ يانغ"}\r
         }\r
         "meta:Reunion"{\r
-            ls{"تÙ\88Ù\82Ù\8aت Ø±Ù\8aÙ\88نيون"}\r
+            ls{"تÙ\88Ù\82Ù\8aت Ø±Ù\88Ù\8aنيون"}\r
         }\r
         "meta:Rothera"{\r
             ls{"توقيت روثيرا"}\r
index 416eee09e467462b8eecb60411647d9befc7a157..ef8a6242293947d04b47aab6829a4568c2a404c1 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 as{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.94"}\r
     zoneStrings{\r
         "Africa:Abidjan"{\r
             ec{"আবিডজান"}\r
index 6b603693499cacdf6fe665405af4f7acdb12c6ae..52f6aef69966b9fcd883b873b9de20a445b149b5 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 ast{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.91"}\r
     zoneStrings{\r
         "Africa:Abidjan"{\r
             ec{"Abidjan"}\r
index 555f60c23a6321044b7243d9dd448669f95b98cf..19c13e816d425025f4bf4e3c0bf5b8e14d0aba5b 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 az{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.53"}\r
     zoneStrings{\r
         "Africa:Abidjan"{\r
             ec{"Abican"}\r
index 92831f66d2e6ab17839b777c4826a90d3c981209..68bc942c00f4d31d98d73dae44a69dd6431b669c 100644 (file)
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 az_Cyrl{\r
     %%Parent{"root"}\r
-    Version{"2.1.38.69"}\r
+    Version{"2.1.44.53"}\r
 }\r
index b7cef7f4382f62ff5e316ccb196194e4f4a20de8..1446734200d75b24b720815b53849d1f4125a42a 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 be{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.65"}\r
     zoneStrings{\r
         "Africa:Abidjan"{\r
             ec{"Абіджан"}\r
@@ -301,7 +301,7 @@ be{
             ec{"Эйрунэпе"}\r
         }\r
         "America:El_Salvador"{\r
-            ec{"ЭлÑ\8c¡Ð°Ð»Ñ\8cвадоÑ\80"}\r
+            ec{"Сальвадор"}\r
         }\r
         "America:Fort_Nelson"{\r
             ec{"Форт-Нельсан"}\r
@@ -1372,9 +1372,9 @@ be{
             ls{"Стандартны час цэнтральнай Аўстраліі"}\r
         }\r
         "meta:Australia_CentralWestern"{\r
-            ld{"Ð\97аÑ\85однÑ\96 Ð»ÐµÑ\82нÑ\96 Ñ\87аÑ\81 Ð¦Ñ\8dнÑ\82Ñ\80алÑ\8cнай Аўстраліі"}\r
-            lg{"Ð\97аÑ\85однÑ\96 Ñ\87аÑ\81 Ð¦Ñ\8dнÑ\82Ñ\80алÑ\8cнай Аўстраліі"}\r
-            ls{"Ð\97аÑ\85однÑ\96 Ñ\81Ñ\82андаÑ\80Ñ\82нÑ\8b Ñ\87аÑ\81 Ð¦Ñ\8dнÑ\82Ñ\80алÑ\8cнай Аўстраліі"}\r
+            ld{"Ð\9bеÑ\82нÑ\96 Ñ\86Ñ\8dнÑ\82Ñ\80алÑ\8cна-заÑ\85однÑ\96 Ñ\87аÑ\81 Аўстраліі"}\r
+            lg{"ЦÑ\8dнÑ\82Ñ\80алÑ\8cна-заÑ\85однÑ\96 Ñ\87аÑ\81 Аўстраліі"}\r
+            ls{"СÑ\82андаÑ\80Ñ\82нÑ\8b Ñ\86Ñ\8dнÑ\82Ñ\80алÑ\8cна-заÑ\85однÑ\96 Ñ\87аÑ\81 Аўстраліі"}\r
         }\r
         "meta:Australia_Eastern"{\r
             ld{"Летні час усходняй Аўстраліі"}\r
@@ -1613,7 +1613,7 @@ be{
             ls{"Стандартны час Карэі"}\r
         }\r
         "meta:Kosrae"{\r
-            ls{"ЧаÑ\81 Ð²Ð¾Ñ\81Ñ\82Ñ\80ава Ð\9aаÑ\81Ñ\80ае"}\r
+            ls{"ЧаÑ\81 Ð°Ñ\81Ñ\82Ñ\80авоÑ\9e Ð\9aÑ\83Ñ\81аÑ\96е"}\r
         }\r
         "meta:Krasnoyarsk"{\r
             ld{"Краснаярскі летні час"}\r
@@ -1643,7 +1643,7 @@ be{
             ls{"Час Малайзіі"}\r
         }\r
         "meta:Maldives"{\r
-            ls{"Час Мальдыў"}\r
+            ls{"Час Мальдываў"}\r
         }\r
         "meta:Marquesas"{\r
             ls{"Час Маркізскіх астравоў"}\r
index 616d1dd9e49c616713e88bbaaf9039e19d979920..d24d085d9ec245ea25b018773e6c222c3f0dedde 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 bg{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.94"}\r
     zoneStrings{\r
         "Africa:Abidjan"{\r
             ec{"Абиджан"}\r
index fd03cee418e1098d9644580884f85fef812dc425..abc8d6676be32fcb4ce7b3dad7a73d4a52bb5dfa 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 bn{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.91"}\r
     zoneStrings{\r
         "Africa:Abidjan"{\r
             ec{"আবিদজান"}\r
@@ -259,7 +259,7 @@ bn{
             ec{"চিহুয়াহুয়া"}\r
         }\r
         "America:Coral_Harbour"{\r
-            ec{"à¦\95à§\8bরাল à¦¹à¦¾à¦°à§\8dবার"}\r
+            ec{"à¦\86à¦\9fিà¦\95à§\8bà¦\95ান"}\r
         }\r
         "America:Cordoba"{\r
             ec{"কর্ডোবা"}\r
@@ -1146,7 +1146,7 @@ bn{
             ec{"ছাগোস"}\r
         }\r
         "Indian:Christmas"{\r
-            ec{"বড়দিন"}\r
+            ec{"à¦\95à§\8dরিসমাস"}\r
         }\r
         "Indian:Cocos"{\r
             ec{"কোকোস"}\r
index 5ba2f747edadbf7c5765584b1044cec2e9d569b5..fd4703bd81d73a6292c68992dfde44928cd4cd9e 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 br{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.91"}\r
     zoneStrings{\r
         "Africa:Abidjan"{\r
             ec{"Abidjan"}\r
index 16677c8b093a9b0a4aa1af4c050b8ccb9953de14..3be801bfb8413d97490de6e825c918df7d32e6a8 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 brx{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.41.34"}\r
     zoneStrings{\r
         "Africa:Abidjan"{\r
             ec{"अबिद्जान"}\r
index e51f499e9c040958ce7e9a8b85a2b39eb2605769..db5118ac5ec7f2788a8fe552cb4c4be65e12d257 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 bs{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.88"}\r
     zoneStrings{\r
         "Africa:Abidjan"{\r
             ec{"Abidjan"}\r
index cd6f4fe3e2841ab9a4ebb43be2c29a4e70be4976..13eb6c1f007d59c834ad639e94d605d656511383 100644 (file)
@@ -2,7 +2,7 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 bs_Cyrl{\r
     %%Parent{"root"}\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.41.34"}\r
     zoneStrings{\r
         "Africa:Abidjan"{\r
             ec{"Абиџан"}\r
index 0dcf9a2fbce561e22716d2b144bfb5e34daa7d86..852cf6e78b6db05408ca5c5cc0e0838fe057fd83 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 ca{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.65"}\r
     zoneStrings{\r
         "Africa:Abidjan"{\r
             ec{"Abidjan"}\r
@@ -814,7 +814,7 @@ ca{
             ec{"Kizil-Orda"}\r
         }\r
         "Asia:Rangoon"{\r
-            ec{"Rangoon"}\r
+            ec{"Yangôn"}\r
         }\r
         "Asia:Riyadh"{\r
             ec{"Al-Riyād"}\r
@@ -862,7 +862,7 @@ ca{
             ec{"Tomsk"}\r
         }\r
         "Asia:Ulaanbaatar"{\r
-            ec{"Ulaanbaatar"}\r
+            ec{"Ulan Bator"}\r
         }\r
         "Asia:Urumqi"{\r
             ec{"Urumchi"}\r
@@ -1332,9 +1332,9 @@ ca{
             ls{"Hora estàndard de muntanya d’Amèrica del Nord"}\r
         }\r
         "meta:America_Pacific"{\r
-            ld{"Hora d’estiu del Pacífic"}\r
-            lg{"Hora del Pacífic"}\r
-            ls{"Hora estàndard del Pacífic"}\r
+            ld{"Hora d’estiu del Pacífic d’Amèrica del Nord"}\r
+            lg{"Hora del Pacífic d’Amèrica del Nord"}\r
+            ls{"Hora estàndard del Pacífic d’Amèrica del Nord"}\r
         }\r
         "meta:Anadyr"{\r
             ld{"Horari d’estiu d’Anadyr"}\r
@@ -1473,7 +1473,7 @@ ca{
             ls{"Hora de Davis"}\r
         }\r
         "meta:DumontDUrville"{\r
-            ls{"Hora de Dumont-d’Urville"}\r
+            ls{"Hora de Dumont d’Urville"}\r
         }\r
         "meta:East_Timor"{\r
             ls{"Hora de Timor Oriental"}\r
@@ -1579,7 +1579,7 @@ ca{
             ls{"Hora estàndard de Hovd"}\r
         }\r
         "meta:India"{\r
-            ls{"Hora estàndard de l’Índia"}\r
+            ls{"Hora de l’Índia"}\r
         }\r
         "meta:Indian_Ocean"{\r
             ls{"Hora de l’oceà Índic"}\r
@@ -1779,9 +1779,9 @@ ca{
             ls{"Hora de les illes Phoenix"}\r
         }\r
         "meta:Pierre_Miquelon"{\r
-            ld{"Hora d’estiu de Saint-Pierre i Miquelon"}\r
-            lg{"Hora de Saint-Pierre i Miquelon"}\r
-            ls{"Hora estàndard de Saint-Pierre i Miquelon"}\r
+            ld{"Hora d’estiu de Saint-Pierre-et-Miquelon"}\r
+            lg{"Hora de Saint-Pierre-et-Miquelon"}\r
+            ls{"Hora estàndard de Saint-Pierre-et-Miquelon"}\r
         }\r
         "meta:Pitcairn"{\r
             ls{"Hora de Pitcairn"}\r
@@ -1913,7 +1913,7 @@ ca{
         gmtZeroFormat{"GMT"}\r
         hourFormat{"+HH:mm;-HH:mm"}\r
         regionFormat{"Hora de: {0}"}\r
-        regionFormatDaylight{"Horari d’estiu, {0}"}\r
+        regionFormatDaylight{"Hora d’estiu, {0}"}\r
         regionFormatStandard{"Hora estàndard, {0}"}\r
     }\r
 }\r
index 20515d0f8cc3fedf987d7d20c54e48ec946cb402..986bc2aa4956cb073bf04d3e63fbc432395e42b7 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 ccp{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.50"}\r
     zoneStrings{\r
         "Africa:Abidjan"{\r
             ec{"𑄃𑄝𑄨𑄘𑄴𑄎𑄚𑄴"}\r
index 9c38f83e321cdc814d20316ac82b8a1b7845e6ef..2450cdcc77fd2a5162dbffc04789878c5fc89166 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 ce{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.41.34"}\r
     zoneStrings{\r
         "Africa:Abidjan"{\r
             ec{"Абиджан"}\r
index fa58db3f3dda01d58dbecb943e08943283c3b23d..60694151e240620f25c78f6616b4109658273ec2 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 chr{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.2"}\r
     zoneStrings{\r
         "Africa:Abidjan"{\r
             ec{"ᎠᏈᏣᏂ"}\r
@@ -1307,7 +1307,7 @@ chr{
             ls{"ᏭᏕᎵᎬ ᎬᎿᎨᏍᏛ ᎠᏟᎶᏍᏗ ᎠᏟᎢᎵᏒ"}\r
         }\r
         "meta:Alaska"{\r
-            ld{"á\8e á\8e³á\8f\8dá\8e¦ á\8eªá\8e¯ á\8e¢á\8e¦ á\8e á\8f\9fá\8e¢á\8eµá\8f\8dá\8f\92á\8e©"}\r
+            ld{"á\8e á\8e³á\8f\8dá\8e¦ á\8eªá\8e¯ á\8e¢á\8e¦ á\8e á\8f\9fá\8e¢á\8eµá\8f\92"}\r
             lg{"ᎠᎳᏍᎦ ᎠᏟᎢᎵᏒ"}\r
             ls{"ᎠᎳᏍᎦ ᎠᏟᎶᏍᏗ ᎠᏟᎢᎵᏒ"}\r
             sd{"AKDT"}\r
@@ -1320,7 +1320,7 @@ chr{
             ls{"ᎠᎺᏌᏂ ᎠᏟᎶᏍᏗ ᎠᏟᎢᎵᏒ"}\r
         }\r
         "meta:America_Central"{\r
-            ld{"á\8e á\8f°á\8f\9f á\8eªá\8e¯ á\8e¢á\8e¦ á\8e á\8f\9fá\8e¢á\8eµá\8f\8dá\8f\92á\8e©"}\r
+            ld{"á\8e á\8f°á\8f\9f á\8eªá\8e¯ á\8e¢á\8e¦ á\8e á\8f\9fá\8e¢á\8eµá\8f\92"}\r
             lg{"ᎠᏰᏟ ᎠᏟᎢᎵᏒ"}\r
             ls{"ᎠᏰᏟ ᎠᏟᎶᏍᏗ ᎠᏟᎢᎵᏒ"}\r
             sd{"CDT"}\r
@@ -1328,7 +1328,7 @@ chr{
             ss{"CST"}\r
         }\r
         "meta:America_Eastern"{\r
-            ld{"á\8f\97á\8e§á\8e¸á\8e¬ á\8f\97á\8f\9c á\8eªá\8e¯ á\8e¢á\8e¦ á\8e á\8f\9fá\8e¢á\8eµá\8f\8dá\8f\92á\8e©"}\r
+            ld{"á\8f\97á\8e§á\8e¸á\8e¬ á\8f\97á\8f\9c á\8eªá\8e¯ á\8e¢á\8e¦ á\8e á\8f\9fá\8e¢á\8eµá\8f\92"}\r
             lg{"ᏗᎧᎸᎬ ᏗᏜ ᎠᏟᎢᎵᏒ"}\r
             ls{"ᏗᎧᎸᎬ ᏗᏜ ᎠᏟᎶᏍᏗ ᎠᏟᎢᎵᏒ"}\r
             sd{"EDT"}\r
@@ -1336,7 +1336,7 @@ chr{
             ss{"EST"}\r
         }\r
         "meta:America_Mountain"{\r
-            ld{"á\8e£á\8f\93á\8e¸ á\8eªá\8e¯ á\8e¢á\8e¦ á\8e á\8f\9fá\8e¢á\8eµá\8f\8dá\8f\92á\8e©"}\r
+            ld{"á\8e£á\8f\93á\8e¸ á\8eªá\8e¯ á\8e¢á\8e¦ á\8e á\8f\9fá\8e¢á\8eµá\8f\92"}\r
             lg{"ᎣᏓᎸ ᎠᏟᎢᎵᏒ"}\r
             ls{"ᎣᏓᎸ ᎠᏟᎶᏍᏗ ᎠᏟᎢᎵᏒ"}\r
             sd{"MDT"}\r
@@ -1344,7 +1344,7 @@ chr{
             ss{"MST"}\r
         }\r
         "meta:America_Pacific"{\r
-            ld{"á\8f­á\8f\95á\8eµá\8e¬ á\8eªá\8e¯ á\8e¢á\8e¦ á\8e á\8f\9fá\8e¢á\8eµá\8f\8dá\8f\92á\8e©"}\r
+            ld{"á\8f­á\8f\95á\8eµá\8e¬ á\8eªá\8e¯ á\8e¢á\8e¦ á\8e á\8f\9fá\8e¢á\8eµá\8f\92"}\r
             lg{"ᏭᏕᎵᎬ ᎠᏟᎢᎵᏒ"}\r
             ls{"ᏭᏕᎵᎬ ᎠᏟᎶᏍᏗ ᎠᏟᎢᎵᏒ"}\r
             sd{"PDT"}\r
@@ -1352,12 +1352,12 @@ chr{
             ss{"PST"}\r
         }\r
         "meta:Apia"{\r
-            ld{"ᎠᏈᎠ ᎪᎯ ᎢᎦ ᎠᏟᎢᎵᏒ"}\r
+            ld{"ᎠᏈᎠ ᎪᎯ ᎢᎦ ᎠᏟᎢᎵᏒ"}\r
             lg{"ᎠᏈᎠ ᎠᏟᎢᎵᏒ"}\r
             ls{"ᎠᏈᎠ ᎠᏟᎶᏍᏗ ᎠᏟᎢᎵᏒ"}\r
         }\r
         "meta:Arabian"{\r
-            ld{"ᎠᎴᏈᏯ ᎪᎯ ᎢᎦ ᎠᏟᎢᎵᏒ"}\r
+            ld{"ᎠᎴᏈᏯ ᎪᎯ ᎢᎦ ᎠᏟᎢᎵᏒ"}\r
             lg{"ᎠᎴᏈᏯ ᎠᏟᎢᎵᏒ"}\r
             ls{"ᎠᎴᏈᏯ ᎠᏟᎶᏍᏗ ᎠᏟᎢᎵᏒ"}\r
         }\r
@@ -1377,7 +1377,7 @@ chr{
             ls{"ᎠᎵᎻᏂᎠ ᎠᏟᎶᏍᏗ ᎠᏟᎢᎵᏒ"}\r
         }\r
         "meta:Atlantic"{\r
-            ld{"á\8f\97á\8e§á\8e¸á\8e¬ á\8eªá\8e¯ á\8e¢á\8e¦ á\8e á\8f\9fá\8e¢á\8eµá\8f\8dá\8f\92á\8e©"}\r
+            ld{"á\8f\97á\8e§á\8e¸á\8e¬ á\8eªá\8e¯ á\8e¢á\8e¦ á\8e á\8f\9fá\8e¢á\8eµá\8f\92"}\r
             lg{"ᏗᎧᎸᎬ ᎠᏟᎢᎵᏒ"}\r
             ls{"ᏗᎧᎸᎬ ᎠᏟᎶᏍᏗ ᎠᏟᎢᎵᏒ"}\r
             sd{"ADT"}\r
@@ -1385,22 +1385,22 @@ chr{
             ss{"AST"}\r
         }\r
         "meta:Australia_Central"{\r
-            ld{"ᎠᏰᏟ ᎡᎳᏗᏜ ᎪᎯ ᎢᎦ ᎠᏟᎢᎵᏒ"}\r
+            ld{"ᎠᏰᏟ ᎡᎳᏗᏜ ᎪᎯ ᎢᎦ ᎠᏟᎢᎵᏒ"}\r
             lg{"ᎠᏰᏟ ᎡᎳᏗᏜ ᎠᏟᎢᎵᏒ"}\r
             ls{"ᎠᏰᏟ ᎡᎳᏗᏜ ᎠᏟᎶᏍᏗ ᎠᏟᎢᎵᏒ"}\r
         }\r
         "meta:Australia_CentralWestern"{\r
-            ld{"ᎠᏰᏟ ᎡᎳᏗᏜ ᏭᏕᎵᎬ ᏗᏜ ᎪᎯ ᎢᎦ ᎠᏟᎢᎵᏒ"}\r
+            ld{"ᎠᏰᏟ ᎡᎳᏗᏜ ᏭᏕᎵᎬ ᏗᏜ ᎪᎯ ᎢᎦ ᎠᏟᎢᎵᏒ"}\r
             lg{"ᎠᏰᏟ ᎡᎳᏗᏜ ᏭᏕᎵᎬ ᏗᏜ ᎠᏟᎢᎵᏒ"}\r
             ls{"ᎠᏰᏟ ᎡᎳᏗᏜ ᏭᏕᎵᎬ ᏗᏜ ᎠᏟᎶᏍᏗ ᎠᏟᎢᎵᏒ"}\r
         }\r
         "meta:Australia_Eastern"{\r
-            ld{"ᎡᎳᏗᏜ ᏗᎧᎸᎬ ᏗᏜ ᎪᎯ ᎢᎦ ᎠᏟᎢᎵᏒ"}\r
+            ld{"ᎡᎳᏗᏜ ᏗᎧᎸᎬ ᏗᏜ ᎪᎯ ᎢᎦ ᎠᏟᎢᎵᏒ"}\r
             lg{"ᎡᎳᏗᏜ ᏗᎧᎸᎬ ᏗᏜ ᎠᏟᎢᎵᏒ"}\r
             ls{"ᎡᎳᏗᏜ ᏗᎧᎸᎬ ᏗᏜ ᎠᏟᎶᏍᏗ ᎠᏟᎢᎵᏒ"}\r
         }\r
         "meta:Australia_Western"{\r
-            ld{"ᎡᎳᏗᏜ ᏭᏕᎵᎬ ᏗᏜ ᎪᎯ ᎢᎦ ᎠᏟᎢᎵᏒ"}\r
+            ld{"ᎡᎳᏗᏜ ᏭᏕᎵᎬ ᏗᏜ ᎪᎯ ᎢᎦ ᎠᏟᎢᎵᏒ"}\r
             lg{"ᎡᎳᏗᏜ ᏭᏕᎵᎬ ᏗᏜ ᎠᏟᎢᎵᏒ"}\r
             ls{"ᎡᎳᏗᏜ ᏭᏕᎵᎬ ᏗᏜ ᎠᏟᎶᏍᏗ ᎠᏟᎢᎵᏒ"}\r
         }\r
@@ -1442,7 +1442,7 @@ chr{
             ls{"ᏣᎼᎶ ᎠᏟᎶᏍᏗ ᎠᏟᎢᎵᏒ"}\r
         }\r
         "meta:Chatham"{\r
-            ld{"ᏣᏝᎻ ᎪᎯ ᎢᎦ ᎠᏟᎢᎵᏒ"}\r
+            ld{"ᏣᏝᎻ ᎪᎯ ᎢᎦ ᎠᏟᎢᎵᏒ"}\r
             lg{"ᏣᏝᎻ ᎠᏟᎢᎵᏒ"}\r
             ls{"ᏣᏝᎻ ᎠᏟᎶᏍᏗ ᎠᏟᎢᎵᏒ"}\r
         }\r
@@ -1452,7 +1452,7 @@ chr{
             ls{"ᏥᎵ ᎠᏟᎶᏍᏗ ᎠᏟᎢᎵᏒ"}\r
         }\r
         "meta:China"{\r
-            ld{"ᏓᎶᏂᎨᏍᏛ ᎪᎯ ᎢᎦ ᎠᏟᎢᎵᏒ"}\r
+            ld{"ᏓᎶᏂᎨᏍᏛ ᎪᎯ ᎢᎦ ᎠᏟᎢᎵᏒ"}\r
             lg{"ᏓᎶᏂᎨᏍᏛ ᎠᏟᎢᎵᏒ"}\r
             ls{"ᏓᎶᏂᎨᏍᏛ ᎠᏟᎶᏍᏗ ᎠᏟᎢᎵᏒ"}\r
         }\r
@@ -1478,7 +1478,7 @@ chr{
             ls{"ᎠᏓᏍᏓᏴᎲᏍᎩ ᏚᎦᏚᏛᎢ ᎠᏟᎶᏍᏗ ᎠᏟᎢᎵᏒ"}\r
         }\r
         "meta:Cuba"{\r
-            ld{"á\8e«á\8f\86 á\8eªá\8e¯ á\8e¢á\8e¦ á\8e á\8f\9fá\8e¢á\8eµá\8f\8dá\8f\92á\8e©"}\r
+            ld{"á\8e«á\8f\86 á\8eªá\8e¯ á\8e¢á\8e¦ á\8e á\8f\9fá\8e¢á\8eµá\8f\92"}\r
             lg{"ᎫᏆ ᎠᏟᎢᎵᏒ"}\r
             ls{"ᎫᏆ ᎠᏟᎶᏍᏗ ᎠᏟᎢᎵᏒ"}\r
         }\r
@@ -1531,7 +1531,7 @@ chr{
             ls{"ᎠᏂᎦᎸ ᏈᏯᎾ ᎠᏟᎢᎵᏒ"}\r
         }\r
         "meta:French_Southern"{\r
-            ls{"ᎠᏂᎦᎸᏥ ᎤᎦᏃᏮ ᎠᎴ ᎤᏁᏍᏓᎶ ᎠᏟᎢᎵᏒ"}\r
+            ls{"ᎠᏂᎦᎸᏥ ᎤᎦᏃᏮ & ᎤᏁᏍᏓᎶ ᎠᏟᎢᎵᏒ"}\r
         }\r
         "meta:GMT"{\r
             ls{"ᎢᏤ ᎢᏳᏍᏗ ᎠᏟᎢᎵᏒ"}\r
@@ -1567,7 +1567,7 @@ chr{
             ls{"ᎦᏯᎾ ᎠᏟᎢᎵᏒ"}\r
         }\r
         "meta:Hawaii_Aleutian"{\r
-            ld{"á\8e­á\8f©á\8f±-á\8e á\8eµá\8f³á\8f\8fá\8e á\8f\82 á\8eªá\8e¯ á\8e¢á\8e¦ á\8e á\8f\9fá\8e¢á\8eµá\8f\8dá\8f\92á\8e©"}\r
+            ld{"á\8e­á\8f©á\8f±-á\8e á\8eµá\8f³á\8f\8fá\8e á\8f\82 á\8eªá\8e¯ á\8e¢á\8e¦ á\8e á\8f\9fá\8e¢á\8eµá\8f\92"}\r
             lg{"ᎭᏩᏱ-ᎠᎵᏳᏏᎠᏂ ᎠᏟᎢᎵᏒ"}\r
             ls{"ᎭᏩᏱ-ᎠᎵᏳᏏᎠᏂ ᎠᏟᎶᏍᏗ ᎠᏟᎢᎵᏒ"}\r
             sd{"HADT"}\r
@@ -1603,7 +1603,7 @@ chr{
             ls{"ᏭᏕᎵᎬ ᏗᏜ ᎢᏂᏙᏂᏍᏯ ᎠᏟᎢᎵᏒ"}\r
         }\r
         "meta:Iran"{\r
-            ld{"ᎢᎳᏂ ᎪᎯ ᎢᎦ ᎠᏟᎢᎵᏒ"}\r
+            ld{"ᎢᎳᏂ ᎪᎯ ᎢᎦ ᎠᏟᎢᎵᏒ"}\r
             lg{"ᎢᎳᏂ ᎠᏟᎢᎵᏒ"}\r
             ls{"ᎢᎳᏂ ᎠᏟᎶᏍᏗ ᎠᏟᎢᎵᏒ"}\r
         }\r
@@ -1618,7 +1618,7 @@ chr{
             ls{"ᎢᏏᎵᏱ ᎠᏟᎶᏍᏗ ᎠᏟᎢᎵᏒ"}\r
         }\r
         "meta:Japan"{\r
-            ld{"ᏣᏩᏂᏏ ᎪᎯ ᎢᎦ ᎠᏟᎢᎵᏒ"}\r
+            ld{"ᏣᏩᏂᏏ ᎪᎯ ᎢᎦ ᎠᏟᎢᎵᏒ"}\r
             lg{"ᏣᏩᏂᏏ ᎠᏟᎢᎵᏒ"}\r
             ls{"ᏣᏩᏂᏏ ᎠᏟᎶᏍᏗ ᎠᏟᎢᎵᏒ"}\r
         }\r
@@ -1629,7 +1629,7 @@ chr{
             ls{"ᏭᏕᎵᎬ ᎧᏎᎧᏍᏕᏂ ᎠᏟᎢᎵᏒ"}\r
         }\r
         "meta:Korea"{\r
-            ld{"ᎪᎵᎠᏂ ᎪᎯ ᎢᎦ ᎠᏟᎢᎵᏒ"}\r
+            ld{"ᎪᎵᎠᏂ ᎪᎯ ᎢᎦ ᎠᏟᎢᎵᏒ"}\r
             lg{"ᎪᎵᎠᏂ ᎠᏟᎢᎵᏒ"}\r
             ls{"ᎪᎵᎠᏂ ᎠᏟᎶᏍᏗ ᎠᏟᎢᎵᏒ"}\r
         }\r
@@ -1648,7 +1648,7 @@ chr{
             ls{"ᎠᏍᏓᏅᏅ ᏚᎦᏚᏛᎢ ᎠᏟᎢᎵᏒ"}\r
         }\r
         "meta:Lord_Howe"{\r
-            ld{"ᎤᎬᏫᏳᎯ ᎭᏫ ᎪᎯ ᎢᎦ ᎠᏟᎢᎵᏒ"}\r
+            ld{"ᎤᎬᏫᏳᎯ ᎭᏫ ᎪᎯ ᎢᎦ ᎠᏟᎢᎵᏒ"}\r
             lg{"ᎤᎬᏫᏳᎯ ᎭᏫ ᎠᏟᎢᎵᏒ"}\r
             ls{"ᎤᎬᏫᏳᎯ ᎭᏫ ᎠᏟᎶᏍᏗ ᎠᏟᎢᎵᏒ"}\r
         }\r
@@ -1681,12 +1681,12 @@ chr{
             ls{"ᎹᏌᏂ ᎠᏟᎢᎵᏒ"}\r
         }\r
         "meta:Mexico_Northwest"{\r
-            ld{"á\8f§á\8f´á\8f¢ á\8f­á\8f\95á\8eµá\8e¬ á\8e á\8f\82á\8f\8dá\8f\86á\8f\82 á\8eªá\8e¯ á\8e¢á\8e¦ á\8e á\8f\9fá\8e¢á\8eµá\8f\8dá\8f\92á\8e©"}\r
+            ld{"á\8f§á\8f´á\8f¢ á\8f­á\8f\95á\8eµá\8e¬ á\8e á\8f\82á\8f\8dá\8f\86á\8f\82 á\8eªá\8e¯ á\8e¢á\8e¦ á\8e á\8f\9fá\8e¢á\8eµá\8f\92"}\r
             lg{"ᏧᏴᏢ ᏭᏕᎵᎬ ᎠᏂᏍᏆᏂ ᎠᏟᎢᎵᏒ"}\r
             ls{"ᏧᏴᏢ ᏭᏕᎵᎬ ᎠᏂᏍᏆᏂ ᎠᏟᎶᏍᏗ ᎠᏟᎢᎵᏒ"}\r
         }\r
         "meta:Mexico_Pacific"{\r
-            ld{"á\8e á\8f\82á\8f\8dá\8f\86á\8f\82 á\8f­á\8f\95á\8eµá\8e¬ á\8eªá\8e¯ á\8e¢á\8e¦ á\8e á\8f\9fá\8e¢á\8eµá\8f\8dá\8f\92á\8e©"}\r
+            ld{"á\8e á\8f\82á\8f\8dá\8f\86á\8f\82 á\8f­á\8f\95á\8eµá\8e¬ á\8eªá\8e¯ á\8e¢á\8e¦ á\8e á\8f\9fá\8e¢á\8eµá\8f\92"}\r
             lg{"ᎠᏂᏍᏆᏂ ᏭᏕᎵᎬ ᎠᏟᎢᎵᏒ"}\r
             ls{"ᎠᏂᏍᏆᏂ ᏭᏕᎵᎬ ᎠᏟᎶᏍᏗ ᎠᏟᎢᎵᏒ"}\r
         }\r
@@ -1715,12 +1715,12 @@ chr{
             ls{"ᎢᏤ ᎧᎵᏙᏂᎠᏂ ᎠᏟᎶᏍᏗ ᎠᏟᎢᎵᏒ"}\r
         }\r
         "meta:New_Zealand"{\r
-            ld{"ᎢᏤ ᏏᎢᎴᏂᏗ ᎪᎯ ᎢᎦ ᎠᏟᎢᎵᏒ"}\r
+            ld{"ᎢᏤ ᏏᎢᎴᏂᏗ ᎪᎯ ᎢᎦ ᎠᏟᎢᎵᏒ"}\r
             lg{"ᎢᏤ ᏏᎢᎴᏂᏗ ᎠᏟᎢᎵᏒ"}\r
             ls{"ᎢᏤ ᏏᎢᎴᏂᏗ ᎠᏟᎶᏍᏗ ᎠᏟᎢᎵᏒ"}\r
         }\r
         "meta:Newfoundland"{\r
-            ld{"á\8e¢á\8f¤á\8e¤á\8f\82á\8f©á\8f\9bá\8f\93á\8e¦á\8f\99á\8e¯ á\8eªá\8e¯ á\8e¢á\8e¦ á\8e á\8f\9fá\8e¢á\8eµá\8f\8dá\8f\92á\8e©"}\r
+            ld{"á\8e¢á\8f¤á\8e¤á\8f\82á\8f©á\8f\9bá\8f\93á\8e¦á\8f\99á\8e¯ á\8eªá\8e¯ á\8e¢á\8e¦ á\8e á\8f\9fá\8e¢á\8eµá\8f\92"}\r
             lg{"ᎢᏤᎤᏂᏩᏛᏓᎦᏙᎯ ᎠᏟᎢᎵᏒ"}\r
             ls{"ᎢᏤᎤᏂᏩᏛᏓᎦᏙᎯ ᎠᏟᎶᏍᏗ ᎠᏟᎢᎵᏒ"}\r
         }\r
@@ -1775,9 +1775,9 @@ chr{
             ls{"ᏧᎴᎯᏌᏅᎯ ᏚᎦᏚᏛᎢ ᎠᏟᎢᎵᏒ"}\r
         }\r
         "meta:Pierre_Miquelon"{\r
-            ld{"ᎤᏓᏅᏘ ᏈᏰ ᎠᎴ ᎻᏇᎶᏂ ᎪᎯ ᎢᎦ ᎠᏟᎢᎵᏒᎩ"}\r
-            lg{"ᎤᏓᏅᏘ ᏈᏰ ᎠᎴ ᎻᏇᎶᏂ ᎠᏟᎢᎵᏒ"}\r
-            ls{"ᎤᏓᏅᏘ ᏈᏰ ᎠᎴ ᎻᏇᎶᏂ ᎠᏟᎶᏍᏗ ᎠᏟᎢᎵᏒ"}\r
+            ld{"ᎤᏓᏅᏘ ᏈᏰ & ᎻᏇᎶᏂ ᎪᎯ ᎢᎦ ᎠᏟᎢᎵᏒ"}\r
+            lg{"ᎤᏓᏅᏘ ᏈᏰ & ᎻᏇᎶᏂ ᎠᏟᎢᎵᏒ"}\r
+            ls{"ᎤᏓᏅᏘ ᏈᏰ & ᎻᏇᎶᏂ ᎠᏟᎶᏍᏗ ᎠᏟᎢᎵᏒ"}\r
         }\r
         "meta:Pitcairn"{\r
             ls{"ᏈᎧᎵᏂ ᎠᏟᎢᎵᏒ"}\r
@@ -1800,7 +1800,7 @@ chr{
             ls{"ᏌᎧᎵᏂ ᎠᏟᎶᏍᏗ ᎠᏟᎢᎵᏒ"}\r
         }\r
         "meta:Samoa"{\r
-            ld{"ᏌᎼᎠ ᎪᎯ ᎢᎦ ᎠᏟᎢᎵᏒ"}\r
+            ld{"ᏌᎼᎠ ᎪᎯ ᎢᎦ ᎠᏟᎢᎵᏒ"}\r
             lg{"ᏌᎼᎠ ᎠᏟᎢᎵᏒ"}\r
             ls{"ᏌᎼᎠ ᎠᏟᎶᏍᏗ ᎠᏟᎢᎵᏒ"}\r
         }\r
@@ -1826,7 +1826,7 @@ chr{
             ls{"ᏔᎯᏘ ᎠᏟᎢᎵᏒ"}\r
         }\r
         "meta:Taipei"{\r
-            ld{"ᏔᏱᏇ ᎪᎯ ᎢᎦ ᎠᏟᎢᎵᏒ"}\r
+            ld{"ᏔᏱᏇ ᎪᎯ ᎢᎦ ᎠᏟᎢᎵᏒ"}\r
             lg{"ᏔᏱᏇ ᎠᏟᎢᎵᏒ"}\r
             ls{"ᏔᏱᏇ ᎠᏟᎶᏍᏗ ᎠᏟᎢᎵᏒ"}\r
         }\r
@@ -1904,7 +1904,7 @@ chr{
         gmtZeroFormat{"GMT"}\r
         hourFormat{"+HH:mm;-HH:mm"}\r
         regionFormat{"{0} ᎠᏟᎢᎵᏒ"}\r
-        regionFormatDaylight{"{0} á\8eªá\8e¯ á\8e¢á\8e¦ á\8e á\8f\9fá\8e¢á\8eµá\8f\8dá\8f\92á\8e©"}\r
+        regionFormatDaylight{"{0} á\8eªá\8e¯ á\8e¢á\8e¦ á\8e á\8f\9fá\8e¢á\8eµá\8f\92"}\r
         regionFormatStandard{"{0} ᎠᏟᎶᏍᏗ ᎠᏟᎢᎵᏒ"}\r
     }\r
 }\r
index e2239e954599eed5ebf07ebd1118978e946988d4..e7b733d8e9269dd0f5fa81ad5a175ff0a4b4bd64 100644 (file)
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 ckb{\r
-    Version{"2.1.38.71"}\r
+    Version{"2.1.44.88"}\r
 }\r
index b3973a2b14516ec21557588c53d301c1a4151183..02c477410fde669636ebaedc59e8f192a0dc89f6 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 cs{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.91"}\r
     zoneStrings{\r
         "Africa:Abidjan"{\r
             ec{"Abidžan"}\r
@@ -956,7 +956,7 @@ cs{
             ss{"UTC"}\r
         }\r
         "Etc:Unknown"{\r
-            ec{"Neznámé město"}\r
+            ec{"neznámé město"}\r
         }\r
         "Europe:Amsterdam"{\r
             ec{"Amsterdam"}\r
index ea4d06559de9c3cfe3f5643031c60ba021bb9c48..616d5b74ef7a80bc024db95c57e52c6076f0f729 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 cy{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.91"}\r
     zoneStrings{\r
         "Africa:Abidjan"{\r
             ec{"Abidjan"}\r
index 41c4d0124245912d7529945966e05090bf12d02f..b04d9b591ead8d2f4fbf413d0bf2f3599d4594de 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 da{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.65"}\r
     zoneStrings{\r
         "Africa:Abidjan"{\r
             ec{"Abidjan"}\r
@@ -664,7 +664,7 @@ da{
             ec{"Atyrau"}\r
         }\r
         "Asia:Baghdad"{\r
-            ec{"Baghdad"}\r
+            ec{"Bagdad"}\r
         }\r
         "Asia:Bahrain"{\r
             ec{"Bahrain"}\r
@@ -895,7 +895,7 @@ da{
             ec{"De Kanariske Øer"}\r
         }\r
         "Atlantic:Cape_Verde"{\r
-            ec{"Cabo Verde"}\r
+            ec{"Kap Verde"}\r
         }\r
         "Atlantic:Faeroe"{\r
             ec{"Færøerne"}\r
@@ -1110,7 +1110,7 @@ da{
             ec{"Uljanovsk"}\r
         }\r
         "Europe:Uzhgorod"{\r
-            ec{"Uzhgorod"}\r
+            ec{"Uzjhorod"}\r
         }\r
         "Europe:Vaduz"{\r
             ec{"Vaduz"}\r
@@ -1146,7 +1146,7 @@ da{
             ec{"Chagos"}\r
         }\r
         "Indian:Christmas"{\r
-            ec{"Christmas"}\r
+            ec{"Juleøerne"}\r
         }\r
         "Indian:Cocos"{\r
             ec{"Cocos"}\r
@@ -1382,9 +1382,9 @@ da{
             ls{"Vestargentinsk normaltid"}\r
         }\r
         "meta:Armenia"{\r
-            ld{"Armenien-sommertid"}\r
-            lg{"Armenien-tid"}\r
-            ls{"Armenien-normaltid"}\r
+            ld{"Armensk sommertid"}\r
+            lg{"Armensk tid"}\r
+            ls{"Armensk normaltid"}\r
         }\r
         "meta:Atlantic"{\r
             ld{"Atlantic-sommertid"}\r
@@ -1412,9 +1412,9 @@ da{
             ls{"Vestaustralsk normaltid"}\r
         }\r
         "meta:Azerbaijan"{\r
-            ld{"Aserbajdsjan-sommertid"}\r
-            lg{"Aserbajdsjan-tid"}\r
-            ls{"Aserbajdsjan-normaltid"}\r
+            ld{"Aserbajdsjansk sommertid"}\r
+            lg{"Aserbajdsjansk tid"}\r
+            ls{"Aserbajdsjansk normaltid"}\r
         }\r
         "meta:Azores"{\r
             ld{"Azorerne-sommertid"}\r
@@ -1441,9 +1441,9 @@ da{
             ls{"Brunei Darussalam-tid"}\r
         }\r
         "meta:Cape_Verde"{\r
-            ld{"Cabo Verde-sommertid"}\r
-            lg{"Cabo Verde-tid"}\r
-            ls{"Cabo Verde-normaltid"}\r
+            ld{"Kap Verde-sommertid"}\r
+            lg{"Kap Verde-tid"}\r
+            ls{"Kap Verde-normaltid"}\r
         }\r
         "meta:Chamorro"{\r
             ls{"Chamorro-tid"}\r
@@ -1539,9 +1539,9 @@ da{
             ls{"Falklandsøerne-normaltid"}\r
         }\r
         "meta:Fiji"{\r
-            ld{"Fiji-sommertid"}\r
-            lg{"Fiji-tid"}\r
-            ls{"Fiji-normaltid"}\r
+            ld{"Fijiansk sommertid"}\r
+            lg{"Fijiansk tid"}\r
+            ls{"Fijiansk normaltid"}\r
         }\r
         "meta:French_Guiana"{\r
             ls{"Fransk Guyana-tid"}\r
@@ -1559,9 +1559,9 @@ da{
             ls{"Gambier-tid"}\r
         }\r
         "meta:Georgia"{\r
-            ld{"Georgien-sommertid"}\r
-            lg{"Georgien-tid"}\r
-            ls{"Georgien-normaltid"}\r
+            ld{"Georgisk sommertid"}\r
+            lg{"Georgisk tid"}\r
+            ls{"Georgisk normaltid"}\r
         }\r
         "meta:Gilbert_Islands"{\r
             ls{"Gilbertøerne-tid"}\r
@@ -1601,7 +1601,7 @@ da{
             ls{"Hovd-normaltid"}\r
         }\r
         "meta:India"{\r
-            ls{"Indien-normaltid"}\r
+            ls{"Indisk normaltid"}\r
         }\r
         "meta:Indian_Ocean"{\r
             ls{"Indiske Ocean-normaltid"}\r
@@ -1619,9 +1619,9 @@ da{
             ls{"Vestindonesisk tid"}\r
         }\r
         "meta:Iran"{\r
-            ld{"Iran-sommertid"}\r
-            lg{"Iran-tid"}\r
-            ls{"Iran-normaltid"}\r
+            ld{"Iransk sommertid"}\r
+            lg{"Iransk tid"}\r
+            ls{"Iransk normaltid"}\r
         }\r
         "meta:Irkutsk"{\r
             ld{"Irkutsk-sommertid"}\r
@@ -1736,7 +1736,7 @@ da{
             ls{"Nauru-tid"}\r
         }\r
         "meta:Nepal"{\r
-            ls{"Nepal-tid"}\r
+            ls{"Nepalesisk tid"}\r
         }\r
         "meta:New_Caledonia"{\r
             ld{"Ny Kaledonien-sommertid"}\r
@@ -1744,9 +1744,9 @@ da{
             ls{"Ny Kaledonien-normaltid"}\r
         }\r
         "meta:New_Zealand"{\r
-            ld{"New Zealand-sommertid"}\r
-            lg{"New Zealand-tid"}\r
-            ls{"New Zealand-normaltid"}\r
+            ld{"Newzealandsk sommertid"}\r
+            lg{"Newzealandsk tid"}\r
+            ls{"Newzealandsk normaltid"}\r
         }\r
         "meta:Newfoundland"{\r
             ld{"Newfoundlandsk sommertid"}\r
@@ -1778,9 +1778,9 @@ da{
             ls{"Omsk-normaltid"}\r
         }\r
         "meta:Pakistan"{\r
-            ld{"Pakistan-sommertid"}\r
-            lg{"Pakistan-tid"}\r
-            ls{"Pakistan-normaltid"}\r
+            ld{"Pakistansk sommertid"}\r
+            lg{"Pakistansk tid"}\r
+            ls{"Pakistansk normaltid"}\r
         }\r
         "meta:Palau"{\r
             ls{"Palau-normaltid"}\r
@@ -1799,9 +1799,9 @@ da{
             ls{"Peruviansk normaltid"}\r
         }\r
         "meta:Philippines"{\r
-            ld{"Filippinerne-sommertid"}\r
+            ld{"Filippinsk sommertid"}\r
             lg{"Filippinsk tid"}\r
-            ls{"Filippinerne-normaltid"}\r
+            ls{"Filippinsk normaltid"}\r
         }\r
         "meta:Phoenix_Islands"{\r
             ls{"Phoenixøen-tid"}\r
@@ -1842,9 +1842,9 @@ da{
             ls{"Samara-normaltid"}\r
         }\r
         "meta:Samoa"{\r
-            ld{"Samoa-sommertid"}\r
-            lg{"Samoa-tid"}\r
-            ls{"Samoa-normaltid"}\r
+            ld{"Samoansk sommertid"}\r
+            lg{"Samoansk tid"}\r
+            ls{"Samoansk normaltid"}\r
         }\r
         "meta:Seychelles"{\r
             ls{"Seychellisk tid"}\r
@@ -1879,9 +1879,9 @@ da{
             ls{"Tokelau-tid"}\r
         }\r
         "meta:Tonga"{\r
-            ld{"Tonga-sommertid"}\r
-            lg{"Tonga-tid"}\r
-            ls{"Tonga-normaltid"}\r
+            ld{"Tongansk sommertid"}\r
+            lg{"Tongansk tid"}\r
+            ls{"Tongansk normaltid"}\r
         }\r
         "meta:Truk"{\r
             ls{"Chuuk-tid"}\r
@@ -1932,9 +1932,9 @@ da{
             ls{"Wallis og Futuna-tid"}\r
         }\r
         "meta:Yakutsk"{\r
-            ld{"Yakutsk-sommertid"}\r
-            lg{"Yakutsk-tid"}\r
-            ls{"Yakutsk-normaltid"}\r
+            ld{"Jakutsk-sommertid"}\r
+            lg{"Jakutsk-tid"}\r
+            ls{"Jakutsk-normaltid"}\r
         }\r
         "meta:Yekaterinburg"{\r
             ld{"Jekaterinburg-sommertid"}\r
index 23853eb38e55963667598827df7e7939f0d5c9f5..76b46f336af672540b7b7b0ab2fe3ef8411da73f 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 de{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.91"}\r
     zoneStrings{\r
         "Africa:Abidjan"{\r
             ec{"Abidjan"}\r
@@ -685,7 +685,7 @@ de{
             ec{"Bischkek"}\r
         }\r
         "Asia:Brunei"{\r
-            ec{"Brunei"}\r
+            ec{"Brunei Darussalam"}\r
         }\r
         "Asia:Calcutta"{\r
             ec{"Kalkutta"}\r
@@ -769,7 +769,7 @@ de{
             ec{"Kuwait"}\r
         }\r
         "Asia:Macau"{\r
-            ec{"Macao"}\r
+            ec{"Macau"}\r
         }\r
         "Asia:Magadan"{\r
             ec{"Magadan"}\r
@@ -889,7 +889,7 @@ de{
             ec{"Azoren"}\r
         }\r
         "Atlantic:Bermuda"{\r
-            ec{"Bermudas"}\r
+            ec{"Bermuda"}\r
         }\r
         "Atlantic:Canary"{\r
             ec{"Kanaren"}\r
@@ -1438,7 +1438,7 @@ de{
             ls{"Brasília-Normalzeit"}\r
         }\r
         "meta:Brunei"{\r
-            ls{"Brunei-Zeit"}\r
+            ls{"Brunei-Darussalam-Zeit"}\r
         }\r
         "meta:Cape_Verde"{\r
             ld{"Cabo-Verde-Sommerzeit"}\r
@@ -1810,9 +1810,9 @@ de{
             ls{"Phoenixinseln-Zeit"}\r
         }\r
         "meta:Pierre_Miquelon"{\r
-            ld{"Saint-Pierre-und-Miquelon-Sommerzeit"}\r
-            lg{"Saint-Pierre-und-Miquelon-Zeit"}\r
-            ls{"Saint-Pierre-und-Miquelon-Normalzeit"}\r
+            ld{"St.-Pierre-und-Miquelon-Sommerzeit"}\r
+            lg{"St.-Pierre-und-Miquelon-Zeit"}\r
+            ls{"St.-Pierre-und-Miquelon-Normalzeit"}\r
         }\r
         "meta:Pitcairn"{\r
             ls{"Pitcairninseln-Zeit"}\r
@@ -1856,7 +1856,7 @@ de{
             ls{"Singapur-Zeit"}\r
         }\r
         "meta:Solomon"{\r
-            ls{"Salomoninseln-Zeit"}\r
+            ls{"Salomonen-Zeit"}\r
         }\r
         "meta:South_Georgia"{\r
             ls{"Südgeorgische Zeit"}\r
index b7a929395b67a2ab2651049fcb396bc20f238087..97f990fdc21db94afa753e1e32d16c84e87b924c 100644 (file)
@@ -1,10 +1,22 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 de_CH{\r
-    Version{"2.1.39.37"}\r
+    Version{"2.1.44.50"}\r
     zoneStrings{\r
+        "Asia:Brunei"{\r
+            ec{"Brunei"}\r
+        }\r
+        "Asia:Macau"{\r
+            ec{"Macao"}\r
+        }\r
         "Europe:Saratov"{\r
             ec{"Saratov"}\r
         }\r
+        "meta:Brunei"{\r
+            ls{"Brunei-Zeit"}\r
+        }\r
+        "meta:Solomon"{\r
+            ls{"Salomoninseln-Zeit"}\r
+        }\r
     }\r
 }\r
index 3ec9846960f7fb0fd239fde73e4a83141461b1bb..f70d21976d7f3e9ad2c131154c353f450742563f 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 dsb{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.41.34"}\r
     zoneStrings{\r
         "Africa:Accra"{\r
             ec{"Akkra"}\r
index 244205719b75664711f2ab5e29353a4191e829db..67015f7f8b8ef337e7dab86dff1ebc12655a655b 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 dz{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.41.34"}\r
     zoneStrings{\r
         "Africa:Cairo"{\r
             ec{"ཀཱའི་རོ"}\r
index 48d6752036046d7476f98a9dde5aed1f50966525..1aae561aae0052ac4c6b0b8f564912800b7cbe98 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 ee{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.88"}\r
     zoneStrings{\r
         "Africa:Abidjan"{\r
             ec{"Abidjan"}\r
index 9ec99ac17102899be426bac4e4457c616065f941..e67a1e2f202a992048e02711a278e8878b2dfd99 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 el{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.65"}\r
     zoneStrings{\r
         "Africa:Abidjan"{\r
             ec{"Αμπιτζάν"}\r
@@ -880,7 +880,7 @@ el{
             ec{"Γιακούτσκ"}\r
         }\r
         "Asia:Yekaterinburg"{\r
-            ec{"Î\91ικαÏ\84εÏ\81ίνμÏ\80οÏ\85Ï\81γκ"}\r
+            ec{"Î\91ικαÏ\84εÏ\81ινοÏ\8dÏ\80ολη"}\r
         }\r
         "Asia:Yerevan"{\r
             ec{"Ερεβάν"}\r
@@ -913,7 +913,7 @@ el{
             ec{"Αγ. Ελένη"}\r
         }\r
         "Atlantic:Stanley"{\r
-            ec{"ΣÏ\84άνλεÏ\8b"}\r
+            ec{"ΣÏ\84άνλεÏ\8a"}\r
         }\r
         "Australia:Adelaide"{\r
             ec{"Αδελαΐδα"}\r
@@ -1287,7 +1287,7 @@ el{
             ec{"Γουέικ"}\r
         }\r
         "Pacific:Wallis"{\r
-            ec{"Î\9fυάλις"}\r
+            ec{"Î\93ουάλις"}\r
         }\r
         "meta:Afghanistan"{\r
             ls{"Ώρα Αφγανιστάν"}\r
index a1c863d8118fa9c89cf60be9b1edc4775b478a74..a2ba40e77b4a3eddc7aab0bdef9b7bfc2b9d2fd3 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 en{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.91"}\r
     zoneStrings{\r
         "Africa:Sao_Tome"{\r
             ec{"São Tomé"}\r
index b1b8cde732f07e717aa19dc550cb55375b39b7bf..c66c2b9b7df7108bcd59d369aa315bb6defc5bb7 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 en_001{\r
-    Version{"2.1.38.69"}\r
+    Version{"2.1.44.18"}\r
     zoneStrings{\r
         "Pacific:Honolulu"{\r
             sd{"∅∅∅"}\r
index b1bf79f96550ff91732260cb6cb1d0f82c00759c..eb98843c4f3ff3e0693d4cbbe1e47c9d35ec826e 100644 (file)
@@ -2,7 +2,7 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 en_AU{\r
     %%Parent{"en_001"}\r
-    Version{"2.1.38.73"}\r
+    Version{"2.1.44.18"}\r
     zoneStrings{\r
         "America:St_Barthelemy"{\r
             ec{"St Barthélemy"}\r
@@ -57,6 +57,14 @@ en_AU{
             lg{"Cook Island Time"}\r
             ls{"Cook Island Standard Time"}\r
         }\r
+        "meta:Iran"{\r
+            lg{"Iran Time"}\r
+            ls{"Iran Standard Time"}\r
+        }\r
+        "meta:Israel"{\r
+            lg{"Israel Time"}\r
+            ls{"Israel Standard Time"}\r
+        }\r
         "meta:Japan"{\r
             ld{"Japan Summer Time"}\r
             lg{"Japan Time"}\r
index 79bbbecd2ccb6e50aed016ac4e504e2056c52ae1..c9f5e1b4bfffdd6c677b54b4045abf45e05ab534 100644 (file)
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 en_BE{\r
     %%Parent{"en_001"}\r
-    Version{"2.1.38.69"}\r
+    Version{"2.1.44.18"}\r
 }\r
index 8d7f40e055f964fef4b4dbb315b45fb85590f2d5..6cfd1eecde284d0186ffc9f6081f40b8f8a301bf 100644 (file)
@@ -2,7 +2,7 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 en_CA{\r
     %%Parent{"en_001"}\r
-    Version{"2.1.38.73"}\r
+    Version{"2.1.44.88"}\r
     zoneStrings{\r
         "Asia:Rangoon"{\r
             ec{"Rangoon"}\r
index fc277f3a85cbcca80f5f2e69a6f8f92602f07546..f0570aeacd214fe82237dbc0b1990e8a0e2e087e 100644 (file)
@@ -2,7 +2,7 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 en_GB{\r
     %%Parent{"en_001"}\r
-    Version{"2.1.38.73"}\r
+    Version{"2.1.44.18"}\r
     zoneStrings{\r
         "America:St_Barthelemy"{\r
             ec{"St Barthélemy"}\r
@@ -22,22 +22,12 @@ en_GB{
         "America:St_Vincent"{\r
             ec{"St Vincent"}\r
         }\r
-        "Asia:Rangoon"{\r
-            ec{"Rangoon"}\r
-        }\r
         "Atlantic:St_Helena"{\r
             ec{"St Helena"}\r
         }\r
         "Europe:London"{\r
             sd{"BST"}\r
         }\r
-        "Pacific:Honolulu"{\r
-            ec{"Honolulu"}\r
-        }\r
-        "meta:Australia_Central"{\r
-            lg{"Central Australia Time"}\r
-            ls{"Australian Central Standard Time"}\r
-        }\r
         "meta:Europe_Central"{\r
             sd{"CEST"}\r
             sg{"CET"}\r
@@ -53,14 +43,6 @@ en_GB{
             sg{"WET"}\r
             ss{"WET"}\r
         }\r
-        "meta:Kyrgystan"{\r
-            ls{"Kyrgystan Time"}\r
-        }\r
-        "meta:Mongolia"{\r
-            ld{"Ulan Bator Summer Time"}\r
-            lg{"Ulan Bator Time"}\r
-            ls{"Ulan Bator Standard Time"}\r
-        }\r
         "meta:Pierre_Miquelon"{\r
             ld{"St Pierre & Miquelon Daylight Time"}\r
             lg{"St Pierre & Miquelon Time"}\r
index 384307764baa7fc044ebe735f45f49d782cb26d3..5524968867b47255e67344e81e64ef4c3534eb41 100644 (file)
@@ -2,7 +2,7 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 en_HK{\r
     %%Parent{"en_001"}\r
-    Version{"2.1.38.69"}\r
+    Version{"2.1.43.65"}\r
     zoneStrings{\r
         "meta:Hong_Kong"{\r
             sd{"HKST"}\r
index e235a2a6a84155bba8c0fe595a4afff848e27c01..20a642ac4f75b6c7f18f4597844557dbedadacd2 100644 (file)
@@ -2,7 +2,7 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 en_IE{\r
     %%Parent{"en_001"}\r
-    Version{"2.1.38.69"}\r
+    Version{"2.1.44.18"}\r
     zoneStrings{\r
         "Europe:Dublin"{\r
             sd{"IST"}\r
index 09583168e3c3ea4f71bdd99ca29228136485961b..dd4c8345410b39eadf3682e3834c0c3f75932721 100644 (file)
@@ -2,7 +2,7 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 en_IN{\r
     %%Parent{"en_001"}\r
-    Version{"2.1.38.73"}\r
+    Version{"2.1.44.18"}\r
     zoneStrings{\r
         "Asia:Rangoon"{\r
             ec{"Rangoon"}\r
index 47beda639122e92c68191e8de9aada265bbf52f3..275273173a875074ca80e8daeb04440c52d4bfd4 100644 (file)
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 en_JM{\r
     %%Parent{"en_001"}\r
-    Version{"2.1.38.69"}\r
+    Version{"2.1.44.18"}\r
 }\r
index b3b16ea4192bb0d9af271c7371aa6bd41b15ecad..ca48d444dc41037f6b67ebccdc7e758eebdec2ca 100644 (file)
@@ -2,7 +2,7 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 en_NZ{\r
     %%Parent{"en_001"}\r
-    Version{"2.1.38.73"}\r
+    Version{"2.1.44.88"}\r
     zoneStrings{\r
         "meta:Australia_Central"{\r
             sd{"ACDT"}\r
index 2c0834d05e31b91a8b27c09843474dc58ad569b7..41bdece4074dcaec1a30a0502bb7161556cde627 100644 (file)
@@ -2,7 +2,7 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 en_ZW{\r
     %%Parent{"en_001"}\r
-    Version{"2.1.38.69"}\r
+    Version{"2.1.44.18"}\r
     zoneStrings{\r
         "meta:Africa_Central"{\r
             ss{"CAT"}\r
index 6feb62726d04b62d4e310e5e5e93b8e4f6ea7383..3283da508983cb2a7eda56c6bcb7f6db80549e60 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 es{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.88"}\r
     zoneStrings{\r
         "Africa:Abidjan"{\r
             ec{"Abiyán"}\r
index fb4fe22e8e818bf1eb3ce973c954e42c1af5b479..c2fc0288282f8fc2c2395859f7446e0d5f9ba6fa 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 es_419{\r
-    Version{"2.1.38.39"}\r
+    Version{"2.1.43.65"}\r
     zoneStrings{\r
         "Africa:Accra"{\r
             ec{"Accra"}\r
@@ -9,6 +9,12 @@ es_419{
         "America:Fort_Nelson"{\r
             ec{"Fuerte Nelson"}\r
         }\r
+        "America:Nassau"{\r
+            ec{"Nasáu"}\r
+        }\r
+        "America:Sao_Paulo"{\r
+            ec{"San Pablo"}\r
+        }\r
         "America:St_Thomas"{\r
             ec{"Santo Tomás"}\r
         }\r
@@ -25,9 +31,12 @@ es_419{
             ec{"Isla Wake"}\r
         }\r
         "meta:America_Mountain"{\r
-            ld{"hora de verano de las Montañas"}\r
-            lg{"hora de las Montañas"}\r
-            ls{"hora estándar de las Montañas"}\r
+            ld{"hora de verano de la montaña"}\r
+            lg{"hora de la montaña"}\r
+            ls{"hora estándar de la montaña"}\r
+        }\r
+        "meta:Cocos"{\r
+            ls{"hora de Islas Cocos"}\r
         }\r
         "meta:Cook"{\r
             ld{"hora de verano media de las islas Cook"}\r
@@ -80,12 +89,21 @@ es_419{
         "meta:Macquarie"{\r
             ls{"hora de la Isla Macquarie"}\r
         }\r
+        "meta:Marshall_Islands"{\r
+            ls{"hora de Islas Marshall"}\r
+        }\r
         "meta:Norfolk"{\r
             ls{"hora de la Isla Norfolk"}\r
         }\r
         "meta:Pyongyang"{\r
             ls{"hora de Pionyang"}\r
         }\r
+        "meta:Solomon"{\r
+            ls{"hora de Islas Salomón"}\r
+        }\r
+        "meta:Wake"{\r
+            ls{"hora de Isla Wake"}\r
+        }\r
         regionFormatDaylight{"hora de verano de {0}"}\r
         regionFormatStandard{"hora estándar de {0}"}\r
     }\r
index ef78a93d3c7d4a46b47df66a160c5ef25d321cdc..1b7bab970d5ddba8c2378134df422942b342d660 100644 (file)
@@ -2,7 +2,7 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 es_AR{\r
     %%Parent{"es_419"}\r
-    Version{"2.1.38.39"}\r
+    Version{"2.1.43.65"}\r
     zoneStrings{\r
         "meta:Argentina"{\r
             sd{"ARST"}\r
index 6cb38497b319573ea8a4abc344c5a86ca51843f1..f1697925af111366a4f6cf5d32696960b62d1ab0 100644 (file)
@@ -2,7 +2,7 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 es_CO{\r
     %%Parent{"es_419"}\r
-    Version{"2.1.38.39"}\r
+    Version{"2.1.43.65"}\r
     zoneStrings{\r
         "meta:Colombia"{\r
             sd{"COST"}\r
index b247e1ca8922e800627509fcc5261b8ea8289930..e204d1112167623b4bb52daee8f22d4b1526dae9 100644 (file)
@@ -2,7 +2,7 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 es_MX{\r
     %%Parent{"es_419"}\r
-    Version{"2.1.38.73"}\r
+    Version{"2.1.44.5"}\r
     zoneStrings{\r
         "Africa:Accra"{\r
             ec{"Acra"}\r
@@ -37,6 +37,12 @@ es_MX{
         "Asia:Almaty"{\r
             ec{"Almatý"}\r
         }\r
+        "Asia:Aqtobe"{\r
+            ec{"Aktobé"}\r
+        }\r
+        "Asia:Atyrau"{\r
+            ec{"Atirau"}\r
+        }\r
         "Asia:Dushanbe"{\r
             ec{"Dusambé"}\r
         }\r
@@ -46,9 +52,6 @@ es_MX{
         "Asia:Qatar"{\r
             ec{"Qatar"}\r
         }\r
-        "Asia:Rangoon"{\r
-            ec{"Yangón (Rangún)"}\r
-        }\r
         "Etc:UTC"{\r
             ls{"Tiempo Universal Coordinado"}\r
         }\r
@@ -61,11 +64,6 @@ es_MX{
         "Pacific:Wake"{\r
             ec{"Wake"}\r
         }\r
-        "meta:America_Mountain"{\r
-            ld{"hora de verano de las Montañas Rocosas"}\r
-            lg{"hora de las Montañas Rocosas"}\r
-            ls{"hora estándar de las Montañas Rocosas"}\r
-        }\r
         "meta:Apia"{\r
             ld{"hora de verano de Apia"}\r
             lg{"hora de Apia"}\r
@@ -88,7 +86,7 @@ es_MX{
         }\r
         "meta:Easter"{\r
             ld{"hora de verano de la isla de Pascua"}\r
-            lg{"hora de la isla de Pascua"}\r
+            lg{"hora de Isla de Pascua"}\r
             ls{"hora estándar de la isla de Pascua"}\r
         }\r
         "meta:Europe_Eastern"{\r
@@ -105,12 +103,12 @@ es_MX{
             ls{"hora estándar de Europa occidental"}\r
         }\r
         "meta:Falkland"{\r
-            ld{"hora de verano de las islas Malvinas"}\r
-            lg{"hora de las islas Malvinas"}\r
-            ls{"hora estándar de las islas Malvinas"}\r
+            ld{"hora de verano de Islas Malvinas"}\r
+            lg{"hora de Islas Malvinas"}\r
+            ls{"hora estándar de Islas Malvinas"}\r
         }\r
         "meta:Gilbert_Islands"{\r
-            ls{"hora de las islas Gilbert"}\r
+            ls{"hora de las Islas Gilbert"}\r
         }\r
         "meta:Irkutsk"{\r
             ld{"hora de verano de Irkutsh"}\r
@@ -123,9 +121,6 @@ es_MX{
         "meta:Marshall_Islands"{\r
             ls{"hora de las Islas Marshall"}\r
         }\r
-        "meta:Myanmar"{\r
-            ls{"hora de Myanmar (Birmania)"}\r
-        }\r
         "meta:Norfolk"{\r
             ls{"hora de la isla Norfolk"}\r
         }\r
@@ -136,7 +131,7 @@ es_MX{
             ls{"hora de las Islas Salomón"}\r
         }\r
         "meta:Wake"{\r
-            ls{"hora de la isla Wake"}\r
+            ls{"hora de la Isla Wake"}\r
         }\r
     }\r
 }\r
index b2ab967d4df8c4b02f915439310071800225fc05..02c7041d88c37bf6288b90d8bfb993c80c43dfc2 100644 (file)
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 es_PY{\r
     %%Parent{"es_419"}\r
-    Version{"2.1.38.39"}\r
+    Version{"2.1.43.65"}\r
 }\r
index 1830ba00253b37eed692344d45b0be1e1e05b396..2d6e983341bf68117d0433cd6b3206b3e2eddc62 100644 (file)
@@ -2,7 +2,7 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 es_US{\r
     %%Parent{"es_419"}\r
-    Version{"2.1.38.73"}\r
+    Version{"2.1.43.65"}\r
     zoneStrings{\r
         "Africa:Accra"{\r
             ec{"Acra"}\r
@@ -25,9 +25,6 @@ es_US{
         "Asia:Dushanbe"{\r
             ec{"Dusambé"}\r
         }\r
-        "Asia:Rangoon"{\r
-            ec{"Yangón (Rangún)"}\r
-        }\r
         "Etc:UTC"{\r
             ls{"hora universal coordinada"}\r
         }\r
@@ -103,6 +100,9 @@ es_US{
             lg{"hora de Europa oriental"}\r
             ls{"hora estándar de Europa oriental"}\r
         }\r
+        "meta:Europe_Further_Eastern"{\r
+            ls{"hora del extremo oriental de Europa"}\r
+        }\r
         "meta:Europe_Western"{\r
             ld{"hora de verano de Europa occidental"}\r
             lg{"hora de Europa occidental"}\r
@@ -133,9 +133,6 @@ es_US{
         "meta:Marshall_Islands"{\r
             ls{"hora de las Islas Marshall"}\r
         }\r
-        "meta:Myanmar"{\r
-            ls{"hora de Myanmar (Birmania)"}\r
-        }\r
         "meta:Norfolk"{\r
             ls{"hora de la isla Norfolk"}\r
         }\r
index f581281d1ceb6992d7818274cf2a54e729afa504..4b3293d11f031cfdb99a38681d0867c6d254fab9 100644 (file)
@@ -2,7 +2,7 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 es_UY{\r
     %%Parent{"es_419"}\r
-    Version{"2.1.38.39"}\r
+    Version{"2.1.44.79"}\r
     zoneStrings{\r
         "meta:Uruguay"{\r
             sd{"UYST"}\r
index a6d01422a801724d7eaad41993437ee3bfd83aa4..0d6a248e5492f47a531421f609ed93177354a919 100644 (file)
@@ -2,7 +2,7 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 es_VE{\r
     %%Parent{"es_419"}\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.41.45"}\r
     zoneStrings{\r
         "meta:Venezuela"{\r
             ss{"VET"}\r
index 96ccfd38c0051389096cb2e40001d9c54a5f3f85..a1577d3a5fd2711a87f184ddf3f7126ad4c40752 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 et{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.91"}\r
     zoneStrings{\r
         "Africa:Abidjan"{\r
             ec{"Abidjan"}\r
@@ -1931,8 +1931,8 @@ et{
             ls{"Jakutski standardaeg"}\r
         }\r
         "meta:Yekaterinburg"{\r
-            ld{"Jakaterinburgi suveaeg"}\r
-            lg{"Jakaterinburgi aeg"}\r
+            ld{"Jekaterinburgi suveaeg"}\r
+            lg{"Jekaterinburgi aeg"}\r
             ls{"Jekaterinburgi standardaeg"}\r
         }\r
         fallbackFormat{"{1} ({0})"}\r
index 6fbb557548298de892288355dcfd9cbb6105f4da..78336100e202329a03c14b01020a05bdb1f1887d 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 eu{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.65"}\r
     zoneStrings{\r
         "Africa:Abidjan"{\r
             ec{"Abidjan"}\r
index 3ebfa5516ed43a0ec73237c0eba3ab02390442d7..06c7810bdcc44303aa9bb3a4a529dac4f49764a0 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 fa{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.65"}\r
     zoneStrings{\r
         "Africa:Abidjan"{\r
             ec{"آبیجان"}\r
index 23d9536045535d7ad49908b1f0036eca9a2fdccc..b8a39d4c5b0b80065b06389c674fbacce377b056 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 fi{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.91"}\r
     zoneStrings{\r
         "Africa:Abidjan"{\r
             ec{"Abidjan"}\r
index 5f2697ea03b33932901f14754979877f9497873b..3c2ab5ef4c26bbf0ba10223d42bd2cd3ded1fde6 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 fil{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.91"}\r
     zoneStrings{\r
         "Africa:Abidjan"{\r
             ec{"Abidjan"}\r
index 12be13e3c36ec78f09529db9fb09f24508013c5f..86daf7663f0e9dcceab9cc2a6658ba250f05b0e3 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 fo{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.41.34"}\r
     zoneStrings{\r
         "Africa:Abidjan"{\r
             ec{"Abidjan"}\r
index 8d507a535a4f45dda75e77b0f021b67731a151fa..9c75c70bb421ad2cbc36edb05bba81c6eab1660c 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 fr{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.91"}\r
     zoneStrings{\r
         "Africa:Abidjan"{\r
             ec{"Abidjan"}\r
index b3980fb03869daf29f0047947c81b94ba43b26d9..69edabd82cff4c9b72f301752b576cd596d84de8 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 fr_CA{\r
-    Version{"2.1.38.73"}\r
+    Version{"2.1.43.65"}\r
     zoneStrings{\r
         "Africa:Ndjamena"{\r
             ec{"Ndjamena"}\r
@@ -33,6 +33,9 @@ fr_CA{
         "America:St_Thomas"{\r
             ec{"Saint Thomas"}\r
         }\r
+        "Asia:Dhaka"{\r
+            ec{"Dacca"}\r
+        }\r
         "Asia:Thimphu"{\r
             ec{"Thimphou"}\r
         }\r
index 79df2f4d3dcfe2d37dad2f6c4deccb03952a11e7..b76527eb215bc7193e444284b9766536c42f8663 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 fy{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.41.34"}\r
     zoneStrings{\r
         "Africa:Addis_Ababa"{\r
             ec{"Addis Abeba"}\r
index ae7162761cbdadb9f4d2d7f556bc376ec0eb3040..7cfd062b6d585aee0d16e7eaa1daedc0adbe52fc 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 ga{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.91"}\r
     zoneStrings{\r
         "Africa:Abidjan"{\r
             ec{"Abidjan"}\r
index 128db89acf8fc7b59c12ec36b701c1108a8b629c..5c65b749f11b721b8a7586a02ff4a4ac1d2b974c 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 gd{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.91"}\r
     zoneStrings{\r
         "Africa:Abidjan"{\r
             ec{"Abidjan"}\r
@@ -953,6 +953,7 @@ gd{
         }\r
         "Etc:UTC"{\r
             ls{"Àm Uile-choitcheann Co-òrdanaichte"}\r
+            ss{"UTC"}\r
         }\r
         "Etc:Unknown"{\r
             ec{"Baile neo-aithnichte"}\r
index 6313a9d55145fa9466378893528eca8cb1474ba7..89bd3df6bedc30cd652d78d62151e7c69f3bfd9b 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 gl{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.94"}\r
     zoneStrings{\r
         "Africa:Abidjan"{\r
             ec{"Abidjan"}\r
@@ -550,7 +550,7 @@ gl{
             ec{"Sitka"}\r
         }\r
         "America:St_Barthelemy"{\r
-            ec{"Saint-Barthélemy"}\r
+            ec{"Saint Barthélemy"}\r
         }\r
         "America:St_Johns"{\r
             ec{"Saint John’s"}\r
@@ -1774,9 +1774,9 @@ gl{
             ls{"Horario das Illas Fénix"}\r
         }\r
         "meta:Pierre_Miquelon"{\r
-            ld{"Horario de verán de Saint-Pierre-et-Miquelon"}\r
-            lg{"Horario de Saint-Pierre-et-Miquelon"}\r
-            ls{"Horario estándar de Saint-Pierre-et-Miquelon"}\r
+            ld{"Horario de verán de Saint Pierre et Miquelon"}\r
+            lg{"Horario de Saint Pierre et Miquelon"}\r
+            ls{"Horario estándar de Saint Pierre et Miquelon"}\r
         }\r
         "meta:Pitcairn"{\r
             ls{"Horario de Pitcairn"}\r
index 7e70d36f061bf806c88ccaeb59338341e10a091d..01fec92db355fc4c60159d168bd2278fbc10e6f4 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 gsw{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.41.34"}\r
     zoneStrings{\r
         "Africa:Accra"{\r
             ec{"Akkra"}\r
index 55be34816f3e6763c7ced6c54e0d3d0c8cf8b2a5..e8400b6898285fc50d04d80743e86a9f68c2efd8 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 gu{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.2"}\r
     zoneStrings{\r
         "Africa:Abidjan"{\r
             ec{"આબિદ્જાન"}\r
@@ -1041,7 +1041,7 @@ gu{
             ec{"લક્ઝમબર્ગ"}\r
         }\r
         "Europe:Madrid"{\r
-            ec{"મà«\85ડà«\8dરà«\80ડ"}\r
+            ec{"મà«\87ડà«\8dરિડ"}\r
         }\r
         "Europe:Malta"{\r
             ec{"માલ્ટા"}\r
index d7a0572a83715284f95c3db536fa1681bb13dfc5..dd7d622d8adb39a333e98819814258e5da35e8ca 100644 (file)
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 ha{\r
-    Version{"2.1.39.11"}\r
+    Version{"2.1.43.2"}\r
 }\r
index 5d8bf735405fb7c2e3c9dbe20c5b6971a33222e5..33c5778475a5bf41c66837769121ecb363b3289d 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 haw{\r
-    Version{"2.1.38.69"}\r
+    Version{"2.1.43.94"}\r
     zoneStrings{\r
         "Pacific:Honolulu"{\r
             sd{"HDT"}\r
index a2b1e93cb3516eea3188079f96fd9bc6f8264fa2..5dad13e72b33e345683998af84efc2917140d23c 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 he{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.94"}\r
     zoneStrings{\r
         "Africa:Abidjan"{\r
             ec{"אביג׳אן"}\r
@@ -1311,6 +1311,11 @@ he{
             lg{"שעון אלסקה"}\r
             ls{"שעון אלסקה (חורף)"}\r
         }\r
+        "meta:Almaty"{\r
+            ld{"שעון אלמטי (קיץ)"}\r
+            lg{"שעון אלמטי"}\r
+            ls{"שעון אלמטי (חורף)"}\r
+        }\r
         "meta:Amazon"{\r
             ld{"שעון אמזונס (קיץ)"}\r
             lg{"שעון אמזונס"}\r
@@ -1346,6 +1351,16 @@ he{
             lg{"שעון אפיה"}\r
             ls{"שעון אפיה (חורף)"}\r
         }\r
+        "meta:Aqtau"{\r
+            ld{"שעון אקטאו (קיץ)"}\r
+            lg{"שעון אקטאו"}\r
+            ls{"שעון אקטאו (חורף)"}\r
+        }\r
+        "meta:Aqtobe"{\r
+            ld{"שעון אוקטובה (קיץ)"}\r
+            lg{"שעון אקטובה"}\r
+            ls{"שעון אוקטובה (חורף)"}\r
+        }\r
         "meta:Arabian"{\r
             ld{"שעון חצי האי ערב (קיץ)"}\r
             lg{"שעון חצי האי ערב"}\r
@@ -1788,6 +1803,11 @@ he{
         "meta:Pyongyang"{\r
             ls{"שעון פיונגיאנג"}\r
         }\r
+        "meta:Qyzylorda"{\r
+            ld{"שעון קיזילורדה (קיץ)"}\r
+            lg{"שעון קיזילורדה"}\r
+            ls{"שעון קיזילורדה (חורף)"}\r
+        }\r
         "meta:Reunion"{\r
             ls{"שעון ראוניון"}\r
         }\r
index 95eb61597bbbd8b23e95da96c2f25a9b2be0b678..285fbedb0e465be24e5b877a198ccf5bf81bca21 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 hi{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.50"}\r
     zoneStrings{\r
         "Africa:Abidjan"{\r
             ec{"अबिदजान"}\r
index 6b4126baa5522645008775349b12fa6138ee9dd1..6749f0f3f1c59f225ba2304aba7ded5f11dead6a 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 hr{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.50"}\r
     zoneStrings{\r
         "Africa:Abidjan"{\r
             ec{"Abidjan"}\r
index 831883651c9a6460f290cfba8eb6d60c3b43bd37..6e18a8d3ce01faf07a1b34c01efa897187c49373 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 hsb{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.41.34"}\r
     zoneStrings{\r
         "Africa:Accra"{\r
             ec{"Akkra"}\r
index 5315caeb69922bcc073d4610606745dbd050e7fc..cc38dc16d2b382629ca5aa07601122a1a0e039a0 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 hu{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.65"}\r
     zoneStrings{\r
         "Africa:Abidjan"{\r
             ec{"Abidjan"}\r
index 27c1aed80cab19a53abd3edd452877cb2a3e0313..c2405e49bc077fbb9e760fa9caf7b6bc5437f09a 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 hy{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.50"}\r
     zoneStrings{\r
         "Africa:Abidjan"{\r
             ec{"Աբիջան"}\r
diff --git a/source/data/zone/ia.txt b/source/data/zone/ia.txt
new file mode 100644 (file)
index 0000000..94960ba
--- /dev/null
@@ -0,0 +1,749 @@
+// © 2016 and later: Unicode, Inc. and others.\r
+// License & terms of use: http://www.unicode.org/copyright.html#License\r
+ia{\r
+    Version{"2.1.44.15"}\r
+    zoneStrings{\r
+        "Africa:Ceuta"{\r
+            ec{"Ceuta"}\r
+        }\r
+        "America:Adak"{\r
+            ec{"Adak"}\r
+        }\r
+        "America:Anchorage"{\r
+            ec{"Anchorage"}\r
+        }\r
+        "America:Anguilla"{\r
+            ec{"Anguilla"}\r
+        }\r
+        "America:Antigua"{\r
+            ec{"Antigua"}\r
+        }\r
+        "America:Aruba"{\r
+            ec{"Aruba"}\r
+        }\r
+        "America:Bahia_Banderas"{\r
+            ec{"Bahia de Banderas"}\r
+        }\r
+        "America:Barbados"{\r
+            ec{"Barbados"}\r
+        }\r
+        "America:Belize"{\r
+            ec{"Belize"}\r
+        }\r
+        "America:Blanc-Sablon"{\r
+            ec{"Blanc-Sablon"}\r
+        }\r
+        "America:Boise"{\r
+            ec{"Boise"}\r
+        }\r
+        "America:Cambridge_Bay"{\r
+            ec{"Cambridge Bay"}\r
+        }\r
+        "America:Cancun"{\r
+            ec{"Cancun"}\r
+        }\r
+        "America:Cayman"{\r
+            ec{"Caiman"}\r
+        }\r
+        "America:Chicago"{\r
+            ec{"Chicago"}\r
+        }\r
+        "America:Chihuahua"{\r
+            ec{"Chihuahua"}\r
+        }\r
+        "America:Coral_Harbour"{\r
+            ec{"Atikokan"}\r
+        }\r
+        "America:Costa_Rica"{\r
+            ec{"Costa Rica"}\r
+        }\r
+        "America:Creston"{\r
+            ec{"Creston"}\r
+        }\r
+        "America:Curacao"{\r
+            ec{"Curaçao"}\r
+        }\r
+        "America:Danmarkshavn"{\r
+            ec{"Danmarkshavn"}\r
+        }\r
+        "America:Dawson"{\r
+            ec{"Dawson"}\r
+        }\r
+        "America:Dawson_Creek"{\r
+            ec{"Dawson Creek"}\r
+        }\r
+        "America:Denver"{\r
+            ec{"Denver"}\r
+        }\r
+        "America:Detroit"{\r
+            ec{"Detroit"}\r
+        }\r
+        "America:Dominica"{\r
+            ec{"Dominica"}\r
+        }\r
+        "America:Edmonton"{\r
+            ec{"Edmonton"}\r
+        }\r
+        "America:El_Salvador"{\r
+            ec{"El Salvador"}\r
+        }\r
+        "America:Fort_Nelson"{\r
+            ec{"Fort Nelson"}\r
+        }\r
+        "America:Glace_Bay"{\r
+            ec{"Glace Bay"}\r
+        }\r
+        "America:Godthab"{\r
+            ec{"Nuuk"}\r
+        }\r
+        "America:Goose_Bay"{\r
+            ec{"Goose Bay"}\r
+        }\r
+        "America:Grand_Turk"{\r
+            ec{"Grand Turk"}\r
+        }\r
+        "America:Grenada"{\r
+            ec{"Grenada"}\r
+        }\r
+        "America:Guadeloupe"{\r
+            ec{"Guadeloupe"}\r
+        }\r
+        "America:Guatemala"{\r
+            ec{"Guatemala"}\r
+        }\r
+        "America:Halifax"{\r
+            ec{"Halifax"}\r
+        }\r
+        "America:Havana"{\r
+            ec{"Havana"}\r
+        }\r
+        "America:Hermosillo"{\r
+            ec{"Hermosillo"}\r
+        }\r
+        "America:Indiana:Knox"{\r
+            ec{"Knox, Indiana"}\r
+        }\r
+        "America:Indiana:Marengo"{\r
+            ec{"Marengo, Indiana"}\r
+        }\r
+        "America:Indiana:Petersburg"{\r
+            ec{"Petersburg, Indiana"}\r
+        }\r
+        "America:Indiana:Tell_City"{\r
+            ec{"Tell City, Indiana"}\r
+        }\r
+        "America:Indiana:Vevay"{\r
+            ec{"Vevay, Indiana"}\r
+        }\r
+        "America:Indiana:Vincennes"{\r
+            ec{"Vincennes, Indiana"}\r
+        }\r
+        "America:Indiana:Winamac"{\r
+            ec{"Winamac, Indiana"}\r
+        }\r
+        "America:Indianapolis"{\r
+            ec{"Indianapolis"}\r
+        }\r
+        "America:Inuvik"{\r
+            ec{"Inuvik"}\r
+        }\r
+        "America:Iqaluit"{\r
+            ec{"Iqaluit"}\r
+        }\r
+        "America:Jamaica"{\r
+            ec{"Jamaica"}\r
+        }\r
+        "America:Juneau"{\r
+            ec{"Juneau"}\r
+        }\r
+        "America:Kentucky:Monticello"{\r
+            ec{"Monticello, Kentucky"}\r
+        }\r
+        "America:Kralendijk"{\r
+            ec{"Kralendijk"}\r
+        }\r
+        "America:Los_Angeles"{\r
+            ec{"Los Angeles"}\r
+        }\r
+        "America:Louisville"{\r
+            ec{"Louisville"}\r
+        }\r
+        "America:Lower_Princes"{\r
+            ec{"Lower Prince’s Quarter"}\r
+        }\r
+        "America:Managua"{\r
+            ec{"Managua"}\r
+        }\r
+        "America:Marigot"{\r
+            ec{"Marigot"}\r
+        }\r
+        "America:Martinique"{\r
+            ec{"Martinica"}\r
+        }\r
+        "America:Matamoros"{\r
+            ec{"Matamoros"}\r
+        }\r
+        "America:Mazatlan"{\r
+            ec{"Mazatlan"}\r
+        }\r
+        "America:Menominee"{\r
+            ec{"Menominee"}\r
+        }\r
+        "America:Merida"{\r
+            ec{"Merida"}\r
+        }\r
+        "America:Metlakatla"{\r
+            ec{"Metlakatla"}\r
+        }\r
+        "America:Mexico_City"{\r
+            ec{"Citate de Mexico"}\r
+        }\r
+        "America:Miquelon"{\r
+            ec{"Miquelon"}\r
+        }\r
+        "America:Moncton"{\r
+            ec{"Moncton"}\r
+        }\r
+        "America:Monterrey"{\r
+            ec{"Monterrey"}\r
+        }\r
+        "America:Montserrat"{\r
+            ec{"Montserrat"}\r
+        }\r
+        "America:Nassau"{\r
+            ec{"Nassau"}\r
+        }\r
+        "America:New_York"{\r
+            ec{"Nove York"}\r
+        }\r
+        "America:Nipigon"{\r
+            ec{"Nipigon"}\r
+        }\r
+        "America:Nome"{\r
+            ec{"Nome"}\r
+        }\r
+        "America:North_Dakota:Beulah"{\r
+            ec{"Beulah, Dakota del Nord"}\r
+        }\r
+        "America:North_Dakota:Center"{\r
+            ec{"Center, Dakota del Nord"}\r
+        }\r
+        "America:North_Dakota:New_Salem"{\r
+            ec{"New Salem, Dakota del Nord"}\r
+        }\r
+        "America:Ojinaga"{\r
+            ec{"Ojinaga"}\r
+        }\r
+        "America:Panama"{\r
+            ec{"Panama"}\r
+        }\r
+        "America:Pangnirtung"{\r
+            ec{"Pangnirtung"}\r
+        }\r
+        "America:Phoenix"{\r
+            ec{"Phoenix"}\r
+        }\r
+        "America:Port-au-Prince"{\r
+            ec{"Port-au-Prince"}\r
+        }\r
+        "America:Port_of_Spain"{\r
+            ec{"Port of Spain"}\r
+        }\r
+        "America:Puerto_Rico"{\r
+            ec{"Porto Rico"}\r
+        }\r
+        "America:Rainy_River"{\r
+            ec{"Rainy River"}\r
+        }\r
+        "America:Rankin_Inlet"{\r
+            ec{"Rankin Inlet"}\r
+        }\r
+        "America:Regina"{\r
+            ec{"Regina"}\r
+        }\r
+        "America:Resolute"{\r
+            ec{"Resolute"}\r
+        }\r
+        "America:Santo_Domingo"{\r
+            ec{"Santo Domingo"}\r
+        }\r
+        "America:Scoresbysund"{\r
+            ec{"Ittoqqortoormiit"}\r
+        }\r
+        "America:Sitka"{\r
+            ec{"Sitka"}\r
+        }\r
+        "America:St_Barthelemy"{\r
+            ec{"Sancte Bartholomeo"}\r
+        }\r
+        "America:St_Johns"{\r
+            ec{"Sancte Johannes de Terranova"}\r
+        }\r
+        "America:St_Kitts"{\r
+            ec{"Sancte Christophoro"}\r
+        }\r
+        "America:St_Lucia"{\r
+            ec{"Sancte Lucia"}\r
+        }\r
+        "America:St_Thomas"{\r
+            ec{"Sancte Thomas"}\r
+        }\r
+        "America:St_Vincent"{\r
+            ec{"Sancte Vincente"}\r
+        }\r
+        "America:Swift_Current"{\r
+            ec{"Swift Current"}\r
+        }\r
+        "America:Tegucigalpa"{\r
+            ec{"Tegucigalpa"}\r
+        }\r
+        "America:Thule"{\r
+            ec{"Thule"}\r
+        }\r
+        "America:Thunder_Bay"{\r
+            ec{"Thunder Bay"}\r
+        }\r
+        "America:Tijuana"{\r
+            ec{"Tijuana"}\r
+        }\r
+        "America:Toronto"{\r
+            ec{"Toronto"}\r
+        }\r
+        "America:Tortola"{\r
+            ec{"Tortola"}\r
+        }\r
+        "America:Vancouver"{\r
+            ec{"Vancouver"}\r
+        }\r
+        "America:Whitehorse"{\r
+            ec{"Whitehorse"}\r
+        }\r
+        "America:Winnipeg"{\r
+            ec{"Winnipeg"}\r
+        }\r
+        "America:Yakutat"{\r
+            ec{"Yakutat"}\r
+        }\r
+        "America:Yellowknife"{\r
+            ec{"Yellowknife"}\r
+        }\r
+        "Arctic:Longyearbyen"{\r
+            ec{"Longyearbyen"}\r
+        }\r
+        "Asia:Anadyr"{\r
+            ec{"Anadyr"}\r
+        }\r
+        "Asia:Barnaul"{\r
+            ec{"Barnaul"}\r
+        }\r
+        "Asia:Chita"{\r
+            ec{"Chita"}\r
+        }\r
+        "Asia:Irkutsk"{\r
+            ec{"Irkutsk"}\r
+        }\r
+        "Asia:Kamchatka"{\r
+            ec{"Kamchatka"}\r
+        }\r
+        "Asia:Khandyga"{\r
+            ec{"Chandyga"}\r
+        }\r
+        "Asia:Krasnoyarsk"{\r
+            ec{"Krasnoyarsk"}\r
+        }\r
+        "Asia:Magadan"{\r
+            ec{"Magadan"}\r
+        }\r
+        "Asia:Novokuznetsk"{\r
+            ec{"Novokuznetsk"}\r
+        }\r
+        "Asia:Novosibirsk"{\r
+            ec{"Novosibirsk"}\r
+        }\r
+        "Asia:Omsk"{\r
+            ec{"Omsk"}\r
+        }\r
+        "Asia:Sakhalin"{\r
+            ec{"Sachalin"}\r
+        }\r
+        "Asia:Srednekolymsk"{\r
+            ec{"Srednekolymsk"}\r
+        }\r
+        "Asia:Tomsk"{\r
+            ec{"Tomsk"}\r
+        }\r
+        "Asia:Ust-Nera"{\r
+            ec{"Ust-Nera"}\r
+        }\r
+        "Asia:Vladivostok"{\r
+            ec{"Vladivostok"}\r
+        }\r
+        "Asia:Yakutsk"{\r
+            ec{"Yakutsk"}\r
+        }\r
+        "Asia:Yekaterinburg"{\r
+            ec{"Ekaterinburg"}\r
+        }\r
+        "Atlantic:Azores"{\r
+            ec{"Azores"}\r
+        }\r
+        "Atlantic:Bermuda"{\r
+            ec{"Bermuda"}\r
+        }\r
+        "Atlantic:Canary"{\r
+            ec{"Canarias"}\r
+        }\r
+        "Atlantic:Faeroe"{\r
+            ec{"Feroe"}\r
+        }\r
+        "Atlantic:Madeira"{\r
+            ec{"Madeira"}\r
+        }\r
+        "Atlantic:Reykjavik"{\r
+            ec{"Reykjavik"}\r
+        }\r
+        "Etc:UTC"{\r
+            ls{"Universal Tempore Coordinate"}\r
+        }\r
+        "Etc:Unknown"{\r
+            ec{"Citate incognite"}\r
+        }\r
+        "Europe:Amsterdam"{\r
+            ec{"Amsterdam"}\r
+        }\r
+        "Europe:Andorra"{\r
+            ec{"Andorra"}\r
+        }\r
+        "Europe:Astrakhan"{\r
+            ec{"Astrakhan"}\r
+        }\r
+        "Europe:Athens"{\r
+            ec{"Athenas"}\r
+        }\r
+        "Europe:Belgrade"{\r
+            ec{"Belgrado"}\r
+        }\r
+        "Europe:Berlin"{\r
+            ec{"Berlin"}\r
+        }\r
+        "Europe:Bratislava"{\r
+            ec{"Bratislava"}\r
+        }\r
+        "Europe:Brussels"{\r
+            ec{"Bruxelles"}\r
+        }\r
+        "Europe:Bucharest"{\r
+            ec{"Bucarest"}\r
+        }\r
+        "Europe:Budapest"{\r
+            ec{"Budapest"}\r
+        }\r
+        "Europe:Busingen"{\r
+            ec{"Büsingen"}\r
+        }\r
+        "Europe:Chisinau"{\r
+            ec{"Chisinau"}\r
+        }\r
+        "Europe:Copenhagen"{\r
+            ec{"Copenhagen"}\r
+        }\r
+        "Europe:Dublin"{\r
+            ec{"Dublin"}\r
+            ld{"Hora estive irlandese"}\r
+        }\r
+        "Europe:Gibraltar"{\r
+            ec{"Gibraltar"}\r
+        }\r
+        "Europe:Guernsey"{\r
+            ec{"Guernsey"}\r
+        }\r
+        "Europe:Helsinki"{\r
+            ec{"Helsinki"}\r
+        }\r
+        "Europe:Isle_of_Man"{\r
+            ec{"Insula de Man"}\r
+        }\r
+        "Europe:Jersey"{\r
+            ec{"Jersey"}\r
+        }\r
+        "Europe:Kaliningrad"{\r
+            ec{"Kaliningrad"}\r
+        }\r
+        "Europe:Kiev"{\r
+            ec{"Kiev"}\r
+        }\r
+        "Europe:Kirov"{\r
+            ec{"Kirov"}\r
+        }\r
+        "Europe:Lisbon"{\r
+            ec{"Lisbona"}\r
+        }\r
+        "Europe:Ljubljana"{\r
+            ec{"Ljubljana"}\r
+        }\r
+        "Europe:London"{\r
+            ec{"London"}\r
+            ld{"Hora estive britannic"}\r
+        }\r
+        "Europe:Luxembourg"{\r
+            ec{"Luxemburg"}\r
+        }\r
+        "Europe:Madrid"{\r
+            ec{"Madrid"}\r
+        }\r
+        "Europe:Malta"{\r
+            ec{"Malta"}\r
+        }\r
+        "Europe:Mariehamn"{\r
+            ec{"Mariehamn"}\r
+        }\r
+        "Europe:Minsk"{\r
+            ec{"Minsk"}\r
+        }\r
+        "Europe:Monaco"{\r
+            ec{"Monaco"}\r
+        }\r
+        "Europe:Moscow"{\r
+            ec{"Moscova"}\r
+        }\r
+        "Europe:Oslo"{\r
+            ec{"Oslo"}\r
+        }\r
+        "Europe:Paris"{\r
+            ec{"Paris"}\r
+        }\r
+        "Europe:Podgorica"{\r
+            ec{"Podgorica"}\r
+        }\r
+        "Europe:Prague"{\r
+            ec{"Praga"}\r
+        }\r
+        "Europe:Riga"{\r
+            ec{"Riga"}\r
+        }\r
+        "Europe:Rome"{\r
+            ec{"Roma"}\r
+        }\r
+        "Europe:Samara"{\r
+            ec{"Samara"}\r
+        }\r
+        "Europe:San_Marino"{\r
+            ec{"San Marino"}\r
+        }\r
+        "Europe:Sarajevo"{\r
+            ec{"Sarajevo"}\r
+        }\r
+        "Europe:Saratov"{\r
+            ec{"Saratov"}\r
+        }\r
+        "Europe:Simferopol"{\r
+            ec{"Simferopol"}\r
+        }\r
+        "Europe:Skopje"{\r
+            ec{"Skopje"}\r
+        }\r
+        "Europe:Sofia"{\r
+            ec{"Sofia"}\r
+        }\r
+        "Europe:Stockholm"{\r
+            ec{"Stockholm"}\r
+        }\r
+        "Europe:Tallinn"{\r
+            ec{"Tallinn"}\r
+        }\r
+        "Europe:Tirane"{\r
+            ec{"Tirana"}\r
+        }\r
+        "Europe:Ulyanovsk"{\r
+            ec{"Ulyanovsk"}\r
+        }\r
+        "Europe:Uzhgorod"{\r
+            ec{"Uzhgorod"}\r
+        }\r
+        "Europe:Vaduz"{\r
+            ec{"Vaduz"}\r
+        }\r
+        "Europe:Vatican"{\r
+            ec{"Vaticano"}\r
+        }\r
+        "Europe:Vienna"{\r
+            ec{"Vienna"}\r
+        }\r
+        "Europe:Vilnius"{\r
+            ec{"Vilnius"}\r
+        }\r
+        "Europe:Volgograd"{\r
+            ec{"Volgograd"}\r
+        }\r
+        "Europe:Warsaw"{\r
+            ec{"Varsovia"}\r
+        }\r
+        "Europe:Zagreb"{\r
+            ec{"Zagreb"}\r
+        }\r
+        "Europe:Zaporozhye"{\r
+            ec{"Zaporozhye"}\r
+        }\r
+        "Europe:Zurich"{\r
+            ec{"Zurich"}\r
+        }\r
+        "meta:Alaska"{\r
+            ld{"hora estive de Alaska"}\r
+            lg{"hora de Alaska"}\r
+            ls{"hora normal de Alaska"}\r
+        }\r
+        "meta:America_Central"{\r
+            ld{"hora estive central"}\r
+            lg{"hora central"}\r
+            ls{"hora normal central"}\r
+        }\r
+        "meta:America_Eastern"{\r
+            ld{"hora estive del est"}\r
+            lg{"hora del est"}\r
+            ls{"hora normal del est"}\r
+        }\r
+        "meta:America_Mountain"{\r
+            ld{"hora estive del montanias"}\r
+            lg{"hora del montanias"}\r
+            ls{"hora normal del montanias"}\r
+        }\r
+        "meta:America_Pacific"{\r
+            ld{"hora estive pacific"}\r
+            lg{"hora pacific"}\r
+            ls{"hora normal pacific"}\r
+        }\r
+        "meta:Atlantic"{\r
+            ld{"hora estive atlantic"}\r
+            lg{"hora atlantic"}\r
+            ls{"hora normal atlantic"}\r
+        }\r
+        "meta:Azores"{\r
+            ld{"hora estive del Azores"}\r
+            lg{"hora del Azores"}\r
+            ls{"hora normal del Azores"}\r
+        }\r
+        "meta:Cuba"{\r
+            ld{"hora estive de Cuba"}\r
+            lg{"hora de Cuba"}\r
+            ls{"hora normal de Cuba"}\r
+        }\r
+        "meta:Europe_Central"{\r
+            ld{"hora estive de Europa central"}\r
+            lg{"hora de Europa central"}\r
+            ls{"hora normal de Europa central"}\r
+        }\r
+        "meta:Europe_Eastern"{\r
+            ld{"hora estive de Europa oriental"}\r
+            lg{"hora de Europa oriental"}\r
+            ls{"hora normal de Europa oriental"}\r
+        }\r
+        "meta:Europe_Further_Eastern"{\r
+            ls{"hora de Europa ultra-oriental"}\r
+        }\r
+        "meta:Europe_Western"{\r
+            ld{"hora estive de Europa occidental"}\r
+            lg{"hora de Europa occidental"}\r
+            ls{"hora normal de Europa occidental"}\r
+        }\r
+        "meta:GMT"{\r
+            ls{"hora medie de Greenwich"}\r
+        }\r
+        "meta:Greenland_Eastern"{\r
+            ld{"hora estive de Groenlandia oriental"}\r
+            lg{"hora de Groenlandia oriental"}\r
+            ls{"hora normal de Groenlandia oriental"}\r
+        }\r
+        "meta:Greenland_Western"{\r
+            ld{"hora estive de Groenlandia occidental"}\r
+            lg{"hora de Groenlandia occidental"}\r
+            ls{"hora normal de Groenlandia occidental"}\r
+        }\r
+        "meta:Hawaii_Aleutian"{\r
+            ld{"hora estive de Hawaii-Aleutianas"}\r
+            lg{"hora de Hawaii-Aleutianas"}\r
+            ls{"hora normal de Hawaii-Aleutianas"}\r
+        }\r
+        "meta:Irkutsk"{\r
+            ld{"hora estive de Irkutsk"}\r
+            lg{"hora de Irkutsk"}\r
+            ls{"hora normal de Irkutsk"}\r
+        }\r
+        "meta:Krasnoyarsk"{\r
+            ld{"hora estive de Krasnoyarsk"}\r
+            lg{"hora de Krasnoyarsk"}\r
+            ls{"hora normal de Krasnoyarsk"}\r
+        }\r
+        "meta:Magadan"{\r
+            ld{"hora estive de Magadan"}\r
+            lg{"hora de Magadan"}\r
+            ls{"hora normal de Magadan"}\r
+        }\r
+        "meta:Mexico_Northwest"{\r
+            ld{"hora estive del nordwest de Mexico"}\r
+            lg{"hora del nordwest de Mexico"}\r
+            ls{"hora normal del nordwest de Mexico"}\r
+        }\r
+        "meta:Mexico_Pacific"{\r
+            ld{"hora estive del Pacifico mexican"}\r
+            lg{"hora del Pacifico mexican"}\r
+            ls{"hora normal del Pacifico mexican"}\r
+        }\r
+        "meta:Moscow"{\r
+            ld{"hora estive de Moscova"}\r
+            lg{"hora de Moscova"}\r
+            ls{"hora normal de Moscova"}\r
+        }\r
+        "meta:Newfoundland"{\r
+            ld{"hora estive de Terranova"}\r
+            lg{"hora de Terranova"}\r
+            ls{"hora normal de Terranova"}\r
+        }\r
+        "meta:Novosibirsk"{\r
+            ld{"hora estive de Novosibirsk"}\r
+            lg{"hora de Novosibirsk"}\r
+            ls{"hora normal de Novosibirsk"}\r
+        }\r
+        "meta:Omsk"{\r
+            ld{"hora estive de Omsk"}\r
+            lg{"hora de Omsk"}\r
+            ls{"hora normal de Omsk"}\r
+        }\r
+        "meta:Pierre_Miquelon"{\r
+            ld{"hora estive de Saint-Pierre e Miquelon"}\r
+            lg{"hora de Saint-Pierre e Miquelon"}\r
+            ls{"hora normal de Saint-Pierre e Miquelon"}\r
+        }\r
+        "meta:Sakhalin"{\r
+            ld{"hora estive de Sachalin"}\r
+            lg{"hora de Sachalin"}\r
+            ls{"hora normal de Sachalin"}\r
+        }\r
+        "meta:Vladivostok"{\r
+            ld{"hora estive de Vladivostok"}\r
+            lg{"hora de Vladivostok"}\r
+            ls{"hora normal de Vladivostok"}\r
+        }\r
+        "meta:Volgograd"{\r
+            ld{"hora estive de Volgograd"}\r
+            lg{"hora de Volgograd"}\r
+            ls{"hora normal de Volgograd"}\r
+        }\r
+        "meta:Yakutsk"{\r
+            ld{"hora estive de Yakutsk"}\r
+            lg{"hora de Yakutsk"}\r
+            ls{"hora normal de Yakutsk"}\r
+        }\r
+        "meta:Yekaterinburg"{\r
+            ld{"hora estive de Ekaterinburg"}\r
+            lg{"hora de Ekaterinburg"}\r
+            ls{"hora normal de Ekaterinburg"}\r
+        }\r
+        fallbackFormat{"{1} ({0})"}\r
+        gmtFormat{"GMT{0}"}\r
+        gmtZeroFormat{"GMT"}\r
+        hourFormat{"+HH:mm;-HH:mm"}\r
+        regionFormat{"hora de {0}"}\r
+        regionFormatDaylight{"hora estive de {0}"}\r
+        regionFormatStandard{"hora normal de {0}"}\r
+    }\r
+}\r
index e6692fbb60acca1df65ebdfeb6ab6c1310b4ebf2..9edaa8d3a7803634c06c25aa693105b9f03c695e 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 id{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.20"}\r
     zoneStrings{\r
         "Africa:Abidjan"{\r
             ec{"Abidjan"}\r
index 4ac2604833cfa7af2fb3b9d86d71b67e5f0c5a6a..bb5bc666291ae916b1e6ca168e70340a12209d66 100644 (file)
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 ig{\r
-    Version{"2.1.38.69"}\r
+    Version{"2.1.44.88"}\r
 }\r
index 50136b87f54b73b879a4ae1840f90f6ca12cb450..6f9954386fd1e3a0bedde625428df8cf39fa85f5 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 is{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.91"}\r
     zoneStrings{\r
         "Africa:Abidjan"{\r
             ec{"Abidjan"}\r
index a71248f61185a33ff31a2c68f862b7523a1e656b..354479257a051b65a5d90fc163e4692732516367 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 it{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.86"}\r
     zoneStrings{\r
         "Africa:Abidjan"{\r
             ec{"Abidjan"}\r
index d6c850572f248621d98b4a6d95b312182dcbf5f5..ca1f986515b0f72b0a7553eafb67f59e227fe3cd 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 ja{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.91"}\r
     zoneStrings{\r
         "Africa:Abidjan"{\r
             ec{"アビジャン"}\r
@@ -556,7 +556,7 @@ ja{
             ec{"セントジョンズ"}\r
         }\r
         "America:St_Kitts"{\r
-            ec{"ã\82»ã\83³ã\83\88ã\82­ã\83\83ã\83\84"}\r
+            ec{"ã\82»ã\83³ã\83\88ã\82¯ã\83ªã\82¹ã\83\88ã\83\95ã\82¡ã\83¼"}\r
         }\r
         "America:St_Lucia"{\r
             ec{"セントルシア"}\r
@@ -1804,9 +1804,9 @@ ja{
             ls{"フェニックス諸島時間"}\r
         }\r
         "meta:Pierre_Miquelon"{\r
-            ld{"サンピエール・ミクロン夏時間"}\r
-            lg{"サンピエール・ミクロン時間"}\r
-            ls{"サンピエール・ミクロン標準時"}\r
+            ld{"サンピエール島・ミクロン島夏時間"}\r
+            lg{"サンピエール島・ミクロン島時間"}\r
+            ls{"サンピエール島・ミクロン島標準時"}\r
         }\r
         "meta:Pitcairn"{\r
             ls{"ピトケアン時間"}\r
diff --git a/source/data/zone/jv.txt b/source/data/zone/jv.txt
new file mode 100644 (file)
index 0000000..3df06fa
--- /dev/null
@@ -0,0 +1,1883 @@
+// © 2016 and later: Unicode, Inc. and others.\r
+// License & terms of use: http://www.unicode.org/copyright.html#License\r
+jv{\r
+    Version{"2.1.44.15"}\r
+    zoneStrings{\r
+        "Africa:Abidjan"{\r
+            ec{"Abidjan"}\r
+        }\r
+        "Africa:Accra"{\r
+            ec{"Accra"}\r
+        }\r
+        "Africa:Addis_Ababa"{\r
+            ec{"Addis Ababa"}\r
+        }\r
+        "Africa:Algiers"{\r
+            ec{"Algiers"}\r
+        }\r
+        "Africa:Asmera"{\r
+            ec{"Asmara"}\r
+        }\r
+        "Africa:Bamako"{\r
+            ec{"Bamako"}\r
+        }\r
+        "Africa:Bangui"{\r
+            ec{"Bangui"}\r
+        }\r
+        "Africa:Banjul"{\r
+            ec{"Banjul"}\r
+        }\r
+        "Africa:Bissau"{\r
+            ec{"Bissau"}\r
+        }\r
+        "Africa:Blantyre"{\r
+            ec{"Blantyre"}\r
+        }\r
+        "Africa:Brazzaville"{\r
+            ec{"Brazzaville"}\r
+        }\r
+        "Africa:Bujumbura"{\r
+            ec{"Bujumbura"}\r
+        }\r
+        "Africa:Cairo"{\r
+            ec{"Kairo"}\r
+        }\r
+        "Africa:Casablanca"{\r
+            ec{"Kasablanka"}\r
+        }\r
+        "Africa:Ceuta"{\r
+            ec{"Ceuta"}\r
+        }\r
+        "Africa:Conakry"{\r
+            ec{"Konakri"}\r
+        }\r
+        "Africa:Dakar"{\r
+            ec{"Dakar"}\r
+        }\r
+        "Africa:Dar_es_Salaam"{\r
+            ec{"Dar es Salaam"}\r
+        }\r
+        "Africa:Djibouti"{\r
+            ec{"Djibouti"}\r
+        }\r
+        "Africa:Douala"{\r
+            ec{"Douala"}\r
+        }\r
+        "Africa:El_Aaiun"{\r
+            ec{"El Aaiun"}\r
+        }\r
+        "Africa:Freetown"{\r
+            ec{"Freetown"}\r
+        }\r
+        "Africa:Gaborone"{\r
+            ec{"Gaborone"}\r
+        }\r
+        "Africa:Harare"{\r
+            ec{"Harare"}\r
+        }\r
+        "Africa:Johannesburg"{\r
+            ec{"Johannesburg"}\r
+        }\r
+        "Africa:Juba"{\r
+            ec{"Juba"}\r
+        }\r
+        "Africa:Kampala"{\r
+            ec{"Kampala"}\r
+        }\r
+        "Africa:Khartoum"{\r
+            ec{"Khartoum"}\r
+        }\r
+        "Africa:Kigali"{\r
+            ec{"Kigali"}\r
+        }\r
+        "Africa:Kinshasa"{\r
+            ec{"Kinshasa"}\r
+        }\r
+        "Africa:Lagos"{\r
+            ec{"Lagos"}\r
+        }\r
+        "Africa:Libreville"{\r
+            ec{"Libreville"}\r
+        }\r
+        "Africa:Lome"{\r
+            ec{"Lome"}\r
+        }\r
+        "Africa:Luanda"{\r
+            ec{"Luanda"}\r
+        }\r
+        "Africa:Lubumbashi"{\r
+            ec{"Lubumbashi"}\r
+        }\r
+        "Africa:Lusaka"{\r
+            ec{"Lusaka"}\r
+        }\r
+        "Africa:Malabo"{\r
+            ec{"Malabo"}\r
+        }\r
+        "Africa:Maputo"{\r
+            ec{"Maputo"}\r
+        }\r
+        "Africa:Maseru"{\r
+            ec{"Maseru"}\r
+        }\r
+        "Africa:Mbabane"{\r
+            ec{"Mbabane"}\r
+        }\r
+        "Africa:Mogadishu"{\r
+            ec{"Mogadishu"}\r
+        }\r
+        "Africa:Monrovia"{\r
+            ec{"Monrovia"}\r
+        }\r
+        "Africa:Nairobi"{\r
+            ec{"Nairobi"}\r
+        }\r
+        "Africa:Ndjamena"{\r
+            ec{"Ndjamena"}\r
+        }\r
+        "Africa:Niamey"{\r
+            ec{"Niamey"}\r
+        }\r
+        "Africa:Nouakchott"{\r
+            ec{"Nouakchott"}\r
+        }\r
+        "Africa:Ouagadougou"{\r
+            ec{"Ouagadougou"}\r
+        }\r
+        "Africa:Porto-Novo"{\r
+            ec{"Porto-Novo"}\r
+        }\r
+        "Africa:Sao_Tome"{\r
+            ec{"Sao Tome"}\r
+        }\r
+        "Africa:Tripoli"{\r
+            ec{"Tripoli"}\r
+        }\r
+        "Africa:Tunis"{\r
+            ec{"Tunis"}\r
+        }\r
+        "Africa:Windhoek"{\r
+            ec{"Windhoek"}\r
+        }\r
+        "America:Adak"{\r
+            ec{"Adak"}\r
+        }\r
+        "America:Anchorage"{\r
+            ec{"Anchorage"}\r
+        }\r
+        "America:Anguilla"{\r
+            ec{"Anguilla"}\r
+        }\r
+        "America:Antigua"{\r
+            ec{"Antigua"}\r
+        }\r
+        "America:Araguaina"{\r
+            ec{"Araguaina"}\r
+        }\r
+        "America:Argentina:La_Rioja"{\r
+            ec{"La Rioja"}\r
+        }\r
+        "America:Argentina:Rio_Gallegos"{\r
+            ec{"Rio Gallegos"}\r
+        }\r
+        "America:Argentina:Salta"{\r
+            ec{"Salta"}\r
+        }\r
+        "America:Argentina:San_Juan"{\r
+            ec{"San Juan"}\r
+        }\r
+        "America:Argentina:San_Luis"{\r
+            ec{"San Luis"}\r
+        }\r
+        "America:Argentina:Tucuman"{\r
+            ec{"Tucuman"}\r
+        }\r
+        "America:Argentina:Ushuaia"{\r
+            ec{"Ushuaia"}\r
+        }\r
+        "America:Aruba"{\r
+            ec{"Aruba"}\r
+        }\r
+        "America:Asuncion"{\r
+            ec{"Asuncion"}\r
+        }\r
+        "America:Bahia"{\r
+            ec{"Bahia"}\r
+        }\r
+        "America:Bahia_Banderas"{\r
+            ec{"Bahia Banderas"}\r
+        }\r
+        "America:Barbados"{\r
+            ec{"Barbados"}\r
+        }\r
+        "America:Belem"{\r
+            ec{"Belem"}\r
+        }\r
+        "America:Belize"{\r
+            ec{"Belise"}\r
+        }\r
+        "America:Blanc-Sablon"{\r
+            ec{"Blanc-Sablon"}\r
+        }\r
+        "America:Boa_Vista"{\r
+            ec{"Boa Vista"}\r
+        }\r
+        "America:Bogota"{\r
+            ec{"Bogota"}\r
+        }\r
+        "America:Boise"{\r
+            ec{"Boise"}\r
+        }\r
+        "America:Buenos_Aires"{\r
+            ec{"Buenos Aires"}\r
+        }\r
+        "America:Cambridge_Bay"{\r
+            ec{"Teluk Cambridge"}\r
+        }\r
+        "America:Campo_Grande"{\r
+            ec{"Kampo Grande"}\r
+        }\r
+        "America:Cancun"{\r
+            ec{"Cancun"}\r
+        }\r
+        "America:Caracas"{\r
+            ec{"Karakas"}\r
+        }\r
+        "America:Catamarca"{\r
+            ec{"Katamarka"}\r
+        }\r
+        "America:Cayenne"{\r
+            ec{"Kayenne"}\r
+        }\r
+        "America:Cayman"{\r
+            ec{"Caiman"}\r
+        }\r
+        "America:Chicago"{\r
+            ec{"Chicago"}\r
+        }\r
+        "America:Chihuahua"{\r
+            ec{"Chihuahua"}\r
+        }\r
+        "America:Coral_Harbour"{\r
+            ec{"Atikokan"}\r
+        }\r
+        "America:Cordoba"{\r
+            ec{"Kordoba"}\r
+        }\r
+        "America:Costa_Rica"{\r
+            ec{"Kosta Rika"}\r
+        }\r
+        "America:Creston"{\r
+            ec{"Creston"}\r
+        }\r
+        "America:Cuiaba"{\r
+            ec{"Kuiaba"}\r
+        }\r
+        "America:Curacao"{\r
+            ec{"Curacao"}\r
+        }\r
+        "America:Danmarkshavn"{\r
+            ec{"Danmarkshavn"}\r
+        }\r
+        "America:Dawson"{\r
+            ec{"Dawson"}\r
+        }\r
+        "America:Dawson_Creek"{\r
+            ec{"Dawson Creek"}\r
+        }\r
+        "America:Denver"{\r
+            ec{"Denver"}\r
+        }\r
+        "America:Detroit"{\r
+            ec{"Detroit"}\r
+        }\r
+        "America:Dominica"{\r
+            ec{"Dominika"}\r
+        }\r
+        "America:Edmonton"{\r
+            ec{"Edmonton"}\r
+        }\r
+        "America:Eirunepe"{\r
+            ec{"Eirunepe"}\r
+        }\r
+        "America:El_Salvador"{\r
+            ec{"El Salvador"}\r
+        }\r
+        "America:Fort_Nelson"{\r
+            ec{"Benteng Nelson"}\r
+        }\r
+        "America:Fortaleza"{\r
+            ec{"Fortaleza"}\r
+        }\r
+        "America:Glace_Bay"{\r
+            ec{"Teluk Glace"}\r
+        }\r
+        "America:Godthab"{\r
+            ec{"Nuuk"}\r
+        }\r
+        "America:Goose_Bay"{\r
+            ec{"Teluk Goose"}\r
+        }\r
+        "America:Grand_Turk"{\r
+            ec{"Grand Turk"}\r
+        }\r
+        "America:Grenada"{\r
+            ec{"Grenada"}\r
+        }\r
+        "America:Guadeloupe"{\r
+            ec{"Guadeloupe"}\r
+        }\r
+        "America:Guatemala"{\r
+            ec{"Guatemala"}\r
+        }\r
+        "America:Guayaquil"{\r
+            ec{"Guayaquil"}\r
+        }\r
+        "America:Guyana"{\r
+            ec{"Guyana"}\r
+        }\r
+        "America:Halifax"{\r
+            ec{"Halifak"}\r
+        }\r
+        "America:Havana"{\r
+            ec{"Havana"}\r
+        }\r
+        "America:Hermosillo"{\r
+            ec{"Hermosillo"}\r
+        }\r
+        "America:Indiana:Knox"{\r
+            ec{"Knox [Indiana]"}\r
+        }\r
+        "America:Indiana:Marengo"{\r
+            ec{"Marengo [Indiana]"}\r
+        }\r
+        "America:Indiana:Petersburg"{\r
+            ec{"Petersburg [Indiana]"}\r
+        }\r
+        "America:Indiana:Tell_City"{\r
+            ec{"Tell City [Indiana]"}\r
+        }\r
+        "America:Indiana:Vevay"{\r
+            ec{"Vevay [Indiana]"}\r
+        }\r
+        "America:Indiana:Vincennes"{\r
+            ec{"Vincennes [Indiana]"}\r
+        }\r
+        "America:Indiana:Winamac"{\r
+            ec{"Winamac [Indiana]"}\r
+        }\r
+        "America:Indianapolis"{\r
+            ec{"Indianapolis"}\r
+        }\r
+        "America:Inuvik"{\r
+            ec{"Inuvik"}\r
+        }\r
+        "America:Iqaluit"{\r
+            ec{"Iqaluit"}\r
+        }\r
+        "America:Jamaica"{\r
+            ec{"Jamaica"}\r
+        }\r
+        "America:Jujuy"{\r
+            ec{"Jujuy"}\r
+        }\r
+        "America:Juneau"{\r
+            ec{"Juneau"}\r
+        }\r
+        "America:Kentucky:Monticello"{\r
+            ec{"Monticello [Kentucky]"}\r
+        }\r
+        "America:Kralendijk"{\r
+            ec{"Kralendijk"}\r
+        }\r
+        "America:La_Paz"{\r
+            ec{"La Paz"}\r
+        }\r
+        "America:Lima"{\r
+            ec{"Lima"}\r
+        }\r
+        "America:Los_Angeles"{\r
+            ec{"Los Angeles"}\r
+        }\r
+        "America:Louisville"{\r
+            ec{"Louisville"}\r
+        }\r
+        "America:Lower_Princes"{\r
+            ec{"Lower Prince’s Quarter"}\r
+        }\r
+        "America:Maceio"{\r
+            ec{"Maceio"}\r
+        }\r
+        "America:Managua"{\r
+            ec{"Managua"}\r
+        }\r
+        "America:Manaus"{\r
+            ec{"Manaus"}\r
+        }\r
+        "America:Marigot"{\r
+            ec{"Marigot"}\r
+        }\r
+        "America:Martinique"{\r
+            ec{"Martinik"}\r
+        }\r
+        "America:Matamoros"{\r
+            ec{"Matamoros"}\r
+        }\r
+        "America:Mazatlan"{\r
+            ec{"Mazatlan"}\r
+        }\r
+        "America:Mendoza"{\r
+            ec{"Mendosa"}\r
+        }\r
+        "America:Menominee"{\r
+            ec{"Menominee"}\r
+        }\r
+        "America:Merida"{\r
+            ec{"Merida"}\r
+        }\r
+        "America:Metlakatla"{\r
+            ec{"Metlakatla"}\r
+        }\r
+        "America:Mexico_City"{\r
+            ec{"Kutho Meksiko"}\r
+        }\r
+        "America:Miquelon"{\r
+            ec{"Miquelon"}\r
+        }\r
+        "America:Moncton"{\r
+            ec{"Moncton"}\r
+        }\r
+        "America:Monterrey"{\r
+            ec{"Monterrey"}\r
+        }\r
+        "America:Montevideo"{\r
+            ec{"Montevideo"}\r
+        }\r
+        "America:Montserrat"{\r
+            ec{"Montserrat"}\r
+        }\r
+        "America:Nassau"{\r
+            ec{"Nassau"}\r
+        }\r
+        "America:New_York"{\r
+            ec{"New York"}\r
+        }\r
+        "America:Nipigon"{\r
+            ec{"Nipigon"}\r
+        }\r
+        "America:Nome"{\r
+            ec{"Nome"}\r
+        }\r
+        "America:Noronha"{\r
+            ec{"Noronha"}\r
+        }\r
+        "America:North_Dakota:Beulah"{\r
+            ec{"Beulah [Dakota Lor]"}\r
+        }\r
+        "America:North_Dakota:Center"{\r
+            ec{"Tengah [Dakota Lor]"}\r
+        }\r
+        "America:North_Dakota:New_Salem"{\r
+            ec{"Salem Anyar [Dakota Lor]"}\r
+        }\r
+        "America:Ojinaga"{\r
+            ec{"Ojinaga"}\r
+        }\r
+        "America:Panama"{\r
+            ec{"Panama"}\r
+        }\r
+        "America:Pangnirtung"{\r
+            ec{"Pangnirtung"}\r
+        }\r
+        "America:Paramaribo"{\r
+            ec{"Paramaribo"}\r
+        }\r
+        "America:Phoenix"{\r
+            ec{"Phoenix"}\r
+        }\r
+        "America:Port-au-Prince"{\r
+            ec{"Port-au-Prince"}\r
+        }\r
+        "America:Port_of_Spain"{\r
+            ec{"Palabuhan Spanyol"}\r
+        }\r
+        "America:Porto_Velho"{\r
+            ec{"Porto Velho"}\r
+        }\r
+        "America:Puerto_Rico"{\r
+            ec{"Puerto Riko"}\r
+        }\r
+        "America:Punta_Arenas"{\r
+            ec{"Punta Arenas"}\r
+        }\r
+        "America:Rainy_River"{\r
+            ec{"Kali Rainy"}\r
+        }\r
+        "America:Rankin_Inlet"{\r
+            ec{"Rankin Inlet"}\r
+        }\r
+        "America:Recife"{\r
+            ec{"Recife"}\r
+        }\r
+        "America:Regina"{\r
+            ec{"Regina"}\r
+        }\r
+        "America:Resolute"{\r
+            ec{"Resolute"}\r
+        }\r
+        "America:Rio_Branco"{\r
+            ec{"Rio Branco"}\r
+        }\r
+        "America:Santarem"{\r
+            ec{"Santarem"}\r
+        }\r
+        "America:Santiago"{\r
+            ec{"Santiago"}\r
+        }\r
+        "America:Santo_Domingo"{\r
+            ec{"Santo Domingo"}\r
+        }\r
+        "America:Sao_Paulo"{\r
+            ec{"Sao Paulo"}\r
+        }\r
+        "America:Scoresbysund"{\r
+            ec{"Ittoqqortoormiit"}\r
+        }\r
+        "America:Sitka"{\r
+            ec{"Sitka"}\r
+        }\r
+        "America:St_Barthelemy"{\r
+            ec{"Santa Barthelemy"}\r
+        }\r
+        "America:St_Johns"{\r
+            ec{"Santa John"}\r
+        }\r
+        "America:St_Kitts"{\r
+            ec{"Santa Kitts"}\r
+        }\r
+        "America:St_Lucia"{\r
+            ec{"Santa Lucia"}\r
+        }\r
+        "America:St_Thomas"{\r
+            ec{"Santa Thomas"}\r
+        }\r
+        "America:St_Vincent"{\r
+            ec{"Santa Vincent"}\r
+        }\r
+        "America:Swift_Current"{\r
+            ec{"Arus Banter"}\r
+        }\r
+        "America:Tegucigalpa"{\r
+            ec{"Tegucigalpa"}\r
+        }\r
+        "America:Thule"{\r
+            ec{"Thule"}\r
+        }\r
+        "America:Thunder_Bay"{\r
+            ec{"Teluk Gludhug"}\r
+        }\r
+        "America:Tijuana"{\r
+            ec{"Tijuana"}\r
+        }\r
+        "America:Toronto"{\r
+            ec{"Toronto"}\r
+        }\r
+        "America:Tortola"{\r
+            ec{"Tortola"}\r
+        }\r
+        "America:Vancouver"{\r
+            ec{"Vancouver"}\r
+        }\r
+        "America:Whitehorse"{\r
+            ec{"Whitehorse"}\r
+        }\r
+        "America:Winnipeg"{\r
+            ec{"Winnipeg"}\r
+        }\r
+        "America:Yakutat"{\r
+            ec{"Yakutat"}\r
+        }\r
+        "America:Yellowknife"{\r
+            ec{"Yellowknife"}\r
+        }\r
+        "Antarctica:Casey"{\r
+            ec{"Casey"}\r
+        }\r
+        "Antarctica:Davis"{\r
+            ec{"Davis"}\r
+        }\r
+        "Antarctica:DumontDUrville"{\r
+            ec{"Dumont d’Urville"}\r
+        }\r
+        "Antarctica:Macquarie"{\r
+            ec{"Macquarie"}\r
+        }\r
+        "Antarctica:Mawson"{\r
+            ec{"Mawson"}\r
+        }\r
+        "Antarctica:McMurdo"{\r
+            ec{"McMurdo"}\r
+        }\r
+        "Antarctica:Palmer"{\r
+            ec{"Palmer"}\r
+        }\r
+        "Antarctica:Rothera"{\r
+            ec{"Rothera"}\r
+        }\r
+        "Antarctica:Syowa"{\r
+            ec{"Syowa"}\r
+        }\r
+        "Antarctica:Troll"{\r
+            ec{"Troll"}\r
+        }\r
+        "Antarctica:Vostok"{\r
+            ec{"Vostok"}\r
+        }\r
+        "Arctic:Longyearbyen"{\r
+            ec{"Longyearbyen"}\r
+        }\r
+        "Asia:Aden"{\r
+            ec{"Aden"}\r
+        }\r
+        "Asia:Almaty"{\r
+            ec{"Almaty"}\r
+        }\r
+        "Asia:Amman"{\r
+            ec{"Amman"}\r
+        }\r
+        "Asia:Anadyr"{\r
+            ec{"Anadyr"}\r
+        }\r
+        "Asia:Aqtau"{\r
+            ec{"Aqtau"}\r
+        }\r
+        "Asia:Aqtobe"{\r
+            ec{"Aqtobe"}\r
+        }\r
+        "Asia:Ashgabat"{\r
+            ec{"Ashgabat"}\r
+        }\r
+        "Asia:Atyrau"{\r
+            ec{"Atyrau"}\r
+        }\r
+        "Asia:Baghdad"{\r
+            ec{"Baghdad"}\r
+        }\r
+        "Asia:Bahrain"{\r
+            ec{"Bahrain"}\r
+        }\r
+        "Asia:Baku"{\r
+            ec{"Baku"}\r
+        }\r
+        "Asia:Bangkok"{\r
+            ec{"Bangkok"}\r
+        }\r
+        "Asia:Barnaul"{\r
+            ec{"Barnaul"}\r
+        }\r
+        "Asia:Beirut"{\r
+            ec{"Beirut"}\r
+        }\r
+        "Asia:Bishkek"{\r
+            ec{"Bishkek"}\r
+        }\r
+        "Asia:Brunei"{\r
+            ec{"Brunei"}\r
+        }\r
+        "Asia:Calcutta"{\r
+            ec{"Kalkuta"}\r
+        }\r
+        "Asia:Chita"{\r
+            ec{"Chita"}\r
+        }\r
+        "Asia:Choibalsan"{\r
+            ec{"Choibalsan"}\r
+        }\r
+        "Asia:Colombo"{\r
+            ec{"Kolombo"}\r
+        }\r
+        "Asia:Damascus"{\r
+            ec{"Damaskus"}\r
+        }\r
+        "Asia:Dhaka"{\r
+            ec{"Dhaka"}\r
+        }\r
+        "Asia:Dili"{\r
+            ec{"Dili"}\r
+        }\r
+        "Asia:Dubai"{\r
+            ec{"Dubai"}\r
+        }\r
+        "Asia:Dushanbe"{\r
+            ec{"Dushanbe"}\r
+        }\r
+        "Asia:Famagusta"{\r
+            ec{"Famagusta"}\r
+        }\r
+        "Asia:Gaza"{\r
+            ec{"Gaza"}\r
+        }\r
+        "Asia:Hebron"{\r
+            ec{"Hebron"}\r
+        }\r
+        "Asia:Hong_Kong"{\r
+            ec{"Hong Kong"}\r
+        }\r
+        "Asia:Hovd"{\r
+            ec{"Hovd"}\r
+        }\r
+        "Asia:Irkutsk"{\r
+            ec{"Irkutsk"}\r
+        }\r
+        "Asia:Jakarta"{\r
+            ec{"Jakarta"}\r
+        }\r
+        "Asia:Jayapura"{\r
+            ec{"Jayapura"}\r
+        }\r
+        "Asia:Jerusalem"{\r
+            ec{"Yerusalem"}\r
+        }\r
+        "Asia:Kabul"{\r
+            ec{"Kabul"}\r
+        }\r
+        "Asia:Kamchatka"{\r
+            ec{"Kamchatka"}\r
+        }\r
+        "Asia:Karachi"{\r
+            ec{"Karachi"}\r
+        }\r
+        "Asia:Katmandu"{\r
+            ec{"Kathmandu"}\r
+        }\r
+        "Asia:Khandyga"{\r
+            ec{"Khandyga"}\r
+        }\r
+        "Asia:Krasnoyarsk"{\r
+            ec{"Krasnoyarsk"}\r
+        }\r
+        "Asia:Kuala_Lumpur"{\r
+            ec{"Kuala Lumpur"}\r
+        }\r
+        "Asia:Kuching"{\r
+            ec{"Kuching"}\r
+        }\r
+        "Asia:Kuwait"{\r
+            ec{"Kuwait"}\r
+        }\r
+        "Asia:Macau"{\r
+            ec{"Macau"}\r
+        }\r
+        "Asia:Magadan"{\r
+            ec{"Magadan"}\r
+        }\r
+        "Asia:Makassar"{\r
+            ec{"Makasar"}\r
+        }\r
+        "Asia:Manila"{\r
+            ec{"Manila"}\r
+        }\r
+        "Asia:Muscat"{\r
+            ec{"Muscat"}\r
+        }\r
+        "Asia:Nicosia"{\r
+            ec{"Nicosia"}\r
+        }\r
+        "Asia:Novokuznetsk"{\r
+            ec{"Novokuznetsk"}\r
+        }\r
+        "Asia:Novosibirsk"{\r
+            ec{"Novosibirsk"}\r
+        }\r
+        "Asia:Omsk"{\r
+            ec{"Omsk"}\r
+        }\r
+        "Asia:Oral"{\r
+            ec{"Oral"}\r
+        }\r
+        "Asia:Phnom_Penh"{\r
+            ec{"Phnom Penh"}\r
+        }\r
+        "Asia:Pontianak"{\r
+            ec{"Pontianak"}\r
+        }\r
+        "Asia:Pyongyang"{\r
+            ec{"Pyongyang"}\r
+        }\r
+        "Asia:Qatar"{\r
+            ec{"Qatar"}\r
+        }\r
+        "Asia:Qyzylorda"{\r
+            ec{"Qyzylorda"}\r
+        }\r
+        "Asia:Rangoon"{\r
+            ec{"Yangon"}\r
+        }\r
+        "Asia:Riyadh"{\r
+            ec{"Riyadh"}\r
+        }\r
+        "Asia:Saigon"{\r
+            ec{"Ho Chi Minh"}\r
+        }\r
+        "Asia:Sakhalin"{\r
+            ec{"Sakhalin"}\r
+        }\r
+        "Asia:Samarkand"{\r
+            ec{"Samarkand"}\r
+        }\r
+        "Asia:Seoul"{\r
+            ec{"Seoul"}\r
+        }\r
+        "Asia:Shanghai"{\r
+            ec{"Shanghai"}\r
+        }\r
+        "Asia:Singapore"{\r
+            ec{"Singapura"}\r
+        }\r
+        "Asia:Srednekolymsk"{\r
+            ec{"Srednekolymsk"}\r
+        }\r
+        "Asia:Taipei"{\r
+            ec{"Taipei"}\r
+        }\r
+        "Asia:Tashkent"{\r
+            ec{"Tashkent"}\r
+        }\r
+        "Asia:Tbilisi"{\r
+            ec{"Tbilisi"}\r
+        }\r
+        "Asia:Tehran"{\r
+            ec{"Teheran"}\r
+        }\r
+        "Asia:Thimphu"{\r
+            ec{"Thimphu"}\r
+        }\r
+        "Asia:Tokyo"{\r
+            ec{"Tokyo"}\r
+        }\r
+        "Asia:Tomsk"{\r
+            ec{"Tomsk"}\r
+        }\r
+        "Asia:Ulaanbaatar"{\r
+            ec{"Ulaanbaatar"}\r
+        }\r
+        "Asia:Urumqi"{\r
+            ec{"Urumqi"}\r
+        }\r
+        "Asia:Ust-Nera"{\r
+            ec{"Ust-Nera"}\r
+        }\r
+        "Asia:Vientiane"{\r
+            ec{"Vientiane"}\r
+        }\r
+        "Asia:Vladivostok"{\r
+            ec{"Vladivostok"}\r
+        }\r
+        "Asia:Yakutsk"{\r
+            ec{"Yakutsk"}\r
+        }\r
+        "Asia:Yekaterinburg"{\r
+            ec{"Yekaterinburg"}\r
+        }\r
+        "Asia:Yerevan"{\r
+            ec{"Yerevan"}\r
+        }\r
+        "Atlantic:Azores"{\r
+            ec{"Azores"}\r
+        }\r
+        "Atlantic:Bermuda"{\r
+            ec{"Bermuda"}\r
+        }\r
+        "Atlantic:Canary"{\r
+            ec{"Kanari"}\r
+        }\r
+        "Atlantic:Cape_Verde"{\r
+            ec{"Kape Verde"}\r
+        }\r
+        "Atlantic:Faeroe"{\r
+            ec{"Faroe"}\r
+        }\r
+        "Atlantic:Madeira"{\r
+            ec{"Madeira"}\r
+        }\r
+        "Atlantic:Reykjavik"{\r
+            ec{"Reykjavik"}\r
+        }\r
+        "Atlantic:South_Georgia"{\r
+            ec{"Georgia Kidul"}\r
+        }\r
+        "Atlantic:St_Helena"{\r
+            ec{"Saint Helena"}\r
+        }\r
+        "Atlantic:Stanley"{\r
+            ec{"Stanley"}\r
+        }\r
+        "Australia:Adelaide"{\r
+            ec{"Adelaide"}\r
+        }\r
+        "Australia:Brisbane"{\r
+            ec{"Brisbane"}\r
+        }\r
+        "Australia:Broken_Hill"{\r
+            ec{"Broken Hill"}\r
+        }\r
+        "Australia:Currie"{\r
+            ec{"Currie"}\r
+        }\r
+        "Australia:Darwin"{\r
+            ec{"Darwin"}\r
+        }\r
+        "Australia:Eucla"{\r
+            ec{"Eucla"}\r
+        }\r
+        "Australia:Hobart"{\r
+            ec{"Hobart"}\r
+        }\r
+        "Australia:Lindeman"{\r
+            ec{"Lindeman"}\r
+        }\r
+        "Australia:Lord_Howe"{\r
+            ec{"Lord Howe"}\r
+        }\r
+        "Australia:Melbourne"{\r
+            ec{"Melbourne"}\r
+        }\r
+        "Australia:Perth"{\r
+            ec{"Perth"}\r
+        }\r
+        "Australia:Sydney"{\r
+            ec{"Sydney"}\r
+        }\r
+        "Etc:UTC"{\r
+            ls{"Wektu Kordinat Universal"}\r
+        }\r
+        "Etc:Unknown"{\r
+            ec{"Kuto Ora Dikenali"}\r
+        }\r
+        "Europe:Amsterdam"{\r
+            ec{"Amsterdam"}\r
+        }\r
+        "Europe:Andorra"{\r
+            ec{"Andorra"}\r
+        }\r
+        "Europe:Astrakhan"{\r
+            ec{"Astrakhan"}\r
+        }\r
+        "Europe:Athens"{\r
+            ec{"Athena"}\r
+        }\r
+        "Europe:Belgrade"{\r
+            ec{"Belgrade"}\r
+        }\r
+        "Europe:Berlin"{\r
+            ec{"Berlin"}\r
+        }\r
+        "Europe:Bratislava"{\r
+            ec{"Bratislava"}\r
+        }\r
+        "Europe:Brussels"{\r
+            ec{"Brussels"}\r
+        }\r
+        "Europe:Bucharest"{\r
+            ec{"Bucharest"}\r
+        }\r
+        "Europe:Budapest"{\r
+            ec{"Budapest"}\r
+        }\r
+        "Europe:Busingen"{\r
+            ec{"Busingen"}\r
+        }\r
+        "Europe:Chisinau"{\r
+            ec{"Chisinau"}\r
+        }\r
+        "Europe:Copenhagen"{\r
+            ec{"Kopenhagen"}\r
+        }\r
+        "Europe:Dublin"{\r
+            ec{"Dublin"}\r
+            ld{"Wektu Standar Irlandia"}\r
+        }\r
+        "Europe:Gibraltar"{\r
+            ec{"Gibraltar"}\r
+        }\r
+        "Europe:Guernsey"{\r
+            ec{"Guernsey"}\r
+        }\r
+        "Europe:Helsinki"{\r
+            ec{"Helsinki"}\r
+        }\r
+        "Europe:Isle_of_Man"{\r
+            ec{"Pulo Man"}\r
+        }\r
+        "Europe:Istanbul"{\r
+            ec{"Istanbul"}\r
+        }\r
+        "Europe:Jersey"{\r
+            ec{"Jersey"}\r
+        }\r
+        "Europe:Kaliningrad"{\r
+            ec{"Kaliningrad"}\r
+        }\r
+        "Europe:Kiev"{\r
+            ec{"Kiev"}\r
+        }\r
+        "Europe:Kirov"{\r
+            ec{"Kirov"}\r
+        }\r
+        "Europe:Lisbon"{\r
+            ec{"Lisbon"}\r
+        }\r
+        "Europe:Ljubljana"{\r
+            ec{"Ljubljana"}\r
+        }\r
+        "Europe:London"{\r
+            ec{"London"}\r
+            ld{"Wektu Ketigo Inggris"}\r
+        }\r
+        "Europe:Luxembourg"{\r
+            ec{"Luksemburk"}\r
+        }\r
+        "Europe:Madrid"{\r
+            ec{"Madrid"}\r
+        }\r
+        "Europe:Malta"{\r
+            ec{"Malta"}\r
+        }\r
+        "Europe:Mariehamn"{\r
+            ec{"Mariehamn"}\r
+        }\r
+        "Europe:Minsk"{\r
+            ec{"Minsk"}\r
+        }\r
+        "Europe:Monaco"{\r
+            ec{"Monako"}\r
+        }\r
+        "Europe:Moscow"{\r
+            ec{"Moscow"}\r
+        }\r
+        "Europe:Oslo"{\r
+            ec{"Oslo"}\r
+        }\r
+        "Europe:Paris"{\r
+            ec{"Paris"}\r
+        }\r
+        "Europe:Podgorica"{\r
+            ec{"Podgorica"}\r
+        }\r
+        "Europe:Prague"{\r
+            ec{"Prague"}\r
+        }\r
+        "Europe:Riga"{\r
+            ec{"Riga"}\r
+        }\r
+        "Europe:Rome"{\r
+            ec{"Roma"}\r
+        }\r
+        "Europe:Samara"{\r
+            ec{"Samara"}\r
+        }\r
+        "Europe:San_Marino"{\r
+            ec{"San Marino"}\r
+        }\r
+        "Europe:Sarajevo"{\r
+            ec{"Sarajevo"}\r
+        }\r
+        "Europe:Saratov"{\r
+            ec{"Saratov"}\r
+        }\r
+        "Europe:Simferopol"{\r
+            ec{"Simferopol"}\r
+        }\r
+        "Europe:Skopje"{\r
+            ec{"Skopje"}\r
+        }\r
+        "Europe:Sofia"{\r
+            ec{"Sofia"}\r
+        }\r
+        "Europe:Stockholm"{\r
+            ec{"Stockholm"}\r
+        }\r
+        "Europe:Tallinn"{\r
+            ec{"Tallinn"}\r
+        }\r
+        "Europe:Tirane"{\r
+            ec{"Tirane"}\r
+        }\r
+        "Europe:Ulyanovsk"{\r
+            ec{"Ulyanovsk"}\r
+        }\r
+        "Europe:Uzhgorod"{\r
+            ec{"Uzhgorod"}\r
+        }\r
+        "Europe:Vaduz"{\r
+            ec{"Vaduz"}\r
+        }\r
+        "Europe:Vatican"{\r
+            ec{"Vatikan"}\r
+        }\r
+        "Europe:Vienna"{\r
+            ec{"Vienna"}\r
+        }\r
+        "Europe:Vilnius"{\r
+            ec{"Vilnius"}\r
+        }\r
+        "Europe:Volgograd"{\r
+            ec{"Volgograd"}\r
+        }\r
+        "Europe:Warsaw"{\r
+            ec{"Warsaw"}\r
+        }\r
+        "Europe:Zagreb"{\r
+            ec{"Zagreb"}\r
+        }\r
+        "Europe:Zaporozhye"{\r
+            ec{"Zaporozhye"}\r
+        }\r
+        "Europe:Zurich"{\r
+            ec{"Zurich"}\r
+        }\r
+        "Indian:Antananarivo"{\r
+            ec{"Antananarivo"}\r
+        }\r
+        "Indian:Chagos"{\r
+            ec{"Khagos"}\r
+        }\r
+        "Indian:Christmas"{\r
+            ec{"Natal"}\r
+        }\r
+        "Indian:Cocos"{\r
+            ec{"Cocos"}\r
+        }\r
+        "Indian:Comoro"{\r
+            ec{"Komoro"}\r
+        }\r
+        "Indian:Kerguelen"{\r
+            ec{"Kerguelen"}\r
+        }\r
+        "Indian:Mahe"{\r
+            ec{"Mahe"}\r
+        }\r
+        "Indian:Maldives"{\r
+            ec{"Maladewa"}\r
+        }\r
+        "Indian:Mauritius"{\r
+            ec{"Mauritius"}\r
+        }\r
+        "Indian:Mayotte"{\r
+            ec{"Mayotte"}\r
+        }\r
+        "Indian:Reunion"{\r
+            ec{"Reunion"}\r
+        }\r
+        "Pacific:Apia"{\r
+            ec{"Apia"}\r
+        }\r
+        "Pacific:Auckland"{\r
+            ec{"Auckland"}\r
+        }\r
+        "Pacific:Bougainville"{\r
+            ec{"Bougainville"}\r
+        }\r
+        "Pacific:Chatham"{\r
+            ec{"Chatham"}\r
+        }\r
+        "Pacific:Easter"{\r
+            ec{"Paskah"}\r
+        }\r
+        "Pacific:Efate"{\r
+            ec{"Efate"}\r
+        }\r
+        "Pacific:Enderbury"{\r
+            ec{"Enderbury"}\r
+        }\r
+        "Pacific:Fakaofo"{\r
+            ec{"Fakaofo"}\r
+        }\r
+        "Pacific:Fiji"{\r
+            ec{"Fiji"}\r
+        }\r
+        "Pacific:Funafuti"{\r
+            ec{"Funafuti"}\r
+        }\r
+        "Pacific:Galapagos"{\r
+            ec{"Galapagos"}\r
+        }\r
+        "Pacific:Gambier"{\r
+            ec{"Gambier"}\r
+        }\r
+        "Pacific:Guadalcanal"{\r
+            ec{"Guadalcanal"}\r
+        }\r
+        "Pacific:Guam"{\r
+            ec{"Guam"}\r
+        }\r
+        "Pacific:Johnston"{\r
+            ec{"Johnston"}\r
+        }\r
+        "Pacific:Kiritimati"{\r
+            ec{"Kiritimati"}\r
+        }\r
+        "Pacific:Kosrae"{\r
+            ec{"Kosrae"}\r
+        }\r
+        "Pacific:Kwajalein"{\r
+            ec{"Kwajalein"}\r
+        }\r
+        "Pacific:Majuro"{\r
+            ec{"Majuro"}\r
+        }\r
+        "Pacific:Marquesas"{\r
+            ec{"Marquesas"}\r
+        }\r
+        "Pacific:Midway"{\r
+            ec{"Midway"}\r
+        }\r
+        "Pacific:Nauru"{\r
+            ec{"Nauru"}\r
+        }\r
+        "Pacific:Niue"{\r
+            ec{"Niue"}\r
+        }\r
+        "Pacific:Norfolk"{\r
+            ec{"Norfolk"}\r
+        }\r
+        "Pacific:Noumea"{\r
+            ec{"Noumea"}\r
+        }\r
+        "Pacific:Pago_Pago"{\r
+            ec{"Pago Pago"}\r
+        }\r
+        "Pacific:Palau"{\r
+            ec{"Palau"}\r
+        }\r
+        "Pacific:Pitcairn"{\r
+            ec{"Pitcairn"}\r
+        }\r
+        "Pacific:Ponape"{\r
+            ec{"Pohnpei"}\r
+        }\r
+        "Pacific:Port_Moresby"{\r
+            ec{"Pelabuhan Moresby"}\r
+        }\r
+        "Pacific:Rarotonga"{\r
+            ec{"Rarotonga"}\r
+        }\r
+        "Pacific:Saipan"{\r
+            ec{"Saipan"}\r
+        }\r
+        "Pacific:Tahiti"{\r
+            ec{"Tahiti"}\r
+        }\r
+        "Pacific:Tarawa"{\r
+            ec{"Tarawa"}\r
+        }\r
+        "Pacific:Tongatapu"{\r
+            ec{"Tongatapu"}\r
+        }\r
+        "Pacific:Truk"{\r
+            ec{"Chuuk"}\r
+        }\r
+        "Pacific:Wake"{\r
+            ec{"Wake"}\r
+        }\r
+        "Pacific:Wallis"{\r
+            ec{"Wallis"}\r
+        }\r
+        "meta:Afghanistan"{\r
+            ls{"Wektu Afghanistan"}\r
+        }\r
+        "meta:Africa_Central"{\r
+            ls{"Wektu Afrika Tengah"}\r
+        }\r
+        "meta:Africa_Eastern"{\r
+            ls{"Wektu Afrika Wetan"}\r
+        }\r
+        "meta:Africa_Southern"{\r
+            ls{"Wektu Standar Afrika Kidul"}\r
+        }\r
+        "meta:Africa_Western"{\r
+            ld{"Wektu Ketigo Afrika Kulon"}\r
+            lg{"Wektu Afrika Kulon"}\r
+            ls{"Wektu Standar Afrika Kulon"}\r
+        }\r
+        "meta:Alaska"{\r
+            ld{"Wektu Ketigo Alaska"}\r
+            lg{"Wektu Alaska"}\r
+            ls{"Wektu Standar Alaska"}\r
+        }\r
+        "meta:Amazon"{\r
+            ld{"Wektu Ketigo Amazon"}\r
+            lg{"Wektu Amazon"}\r
+            ls{"Wektu Standar Amazon"}\r
+        }\r
+        "meta:America_Central"{\r
+            ld{"Wektu Ketigo Tengah"}\r
+            lg{"Wektu Tengah"}\r
+            ls{"Wektu Standar Tengah"}\r
+        }\r
+        "meta:America_Eastern"{\r
+            ld{"Wektu Ketigo sisih Wetah"}\r
+            lg{"Wektu sisih Wetan"}\r
+            ls{"Wektu Standar sisih Wetan"}\r
+        }\r
+        "meta:America_Mountain"{\r
+            ld{"Wektu Ketigo Giri"}\r
+            lg{"Wektu Giri"}\r
+            ls{"Wektu Standar Giri"}\r
+        }\r
+        "meta:America_Pacific"{\r
+            ld{"Wektu Ketigo Pasifik"}\r
+            lg{"Wektu Pasifik"}\r
+            ls{"Wektu Standar Pasifik"}\r
+        }\r
+        "meta:Apia"{\r
+            ld{"Wektu Ketigo Apia"}\r
+            lg{"Wektu Apia"}\r
+            ls{"Wektu Standar Apia"}\r
+        }\r
+        "meta:Arabian"{\r
+            ld{"Wektu Ketigo Arab"}\r
+            lg{"Wektu Arab"}\r
+            ls{"Wektu Standar Arab"}\r
+        }\r
+        "meta:Argentina"{\r
+            ld{"Wektu Ketigo Argentina"}\r
+            lg{"Wektu Argentina"}\r
+            ls{"Wektu Standar Argentina"}\r
+        }\r
+        "meta:Argentina_Western"{\r
+            ld{"Wektu Ketigo Argentina sisih Kulon"}\r
+            lg{"Wektu Argentina sisih Kulon"}\r
+            ls{"Wektu Standar Argentina sisih Kulon"}\r
+        }\r
+        "meta:Armenia"{\r
+            ld{"Wektu Ketigo Armenia"}\r
+            lg{"Wektu Armenia"}\r
+            ls{"Wektu Standar Armenia"}\r
+        }\r
+        "meta:Atlantic"{\r
+            ld{"Wektu Ketigo Atlantik"}\r
+            lg{"Wektu Atlantik"}\r
+            ls{"Wektu Standar Atlantik"}\r
+        }\r
+        "meta:Australia_Central"{\r
+            ld{"Wektu Ketigo Australia Tengah"}\r
+            lg{"Wektu Australia Tengah"}\r
+            ls{"Wektu Standar Australia Tengah"}\r
+        }\r
+        "meta:Australia_CentralWestern"{\r
+            ld{"Wektu Ketigo Australia Tengah sisih Kulon"}\r
+            lg{"Wektu Australia Tengah sisih Kulon"}\r
+            ls{"Wektu Standar Australia Tengah sisih Kulon"}\r
+        }\r
+        "meta:Australia_Eastern"{\r
+            ld{"Wektu Ketigo Australia sisih Wetan"}\r
+            lg{"Wektu Australia sisih Wetan"}\r
+            ls{"Wektu Standar Australia sisih Wetan"}\r
+        }\r
+        "meta:Australia_Western"{\r
+            ld{"Wektu Ketigo Australia sisih Kulon"}\r
+            lg{"Wektu Australia sisih Kulon"}\r
+            ls{"Wektu Standar Australia sisih Kulon"}\r
+        }\r
+        "meta:Azerbaijan"{\r
+            ld{"Wektu Ketigo Azerbaijan"}\r
+            lg{"Wektu Azerbaijan"}\r
+            ls{"Wektu Standar Azerbaijan"}\r
+        }\r
+        "meta:Azores"{\r
+            ld{"Wektu Ketigo Azores"}\r
+            lg{"Wektu Azores"}\r
+            ls{"Wektu Standar Azores"}\r
+        }\r
+        "meta:Bangladesh"{\r
+            ld{"Wektu Ketigo Bangladesh"}\r
+            lg{"Wektu Bangladesh"}\r
+            ls{"Wektu Standar Bangladesh"}\r
+        }\r
+        "meta:Bhutan"{\r
+            ls{"Wektu Bhutan"}\r
+        }\r
+        "meta:Bolivia"{\r
+            ls{"Wektu Bolivia"}\r
+        }\r
+        "meta:Brasilia"{\r
+            ld{"Wektu Ketigo Brasilia"}\r
+            lg{"Wektu Brasilia"}\r
+            ls{"Wektu Standar Brasilia"}\r
+        }\r
+        "meta:Brunei"{\r
+            ls{"Wektu Brunai Darussalam"}\r
+        }\r
+        "meta:Cape_Verde"{\r
+            ld{"Wektu Ketigo Tanjung Verde"}\r
+            lg{"Wektu Tanjung Verde"}\r
+            ls{"Wektu Standar Tanjung Verde"}\r
+        }\r
+        "meta:Chamorro"{\r
+            ls{"Wektu Standar Chamorro"}\r
+        }\r
+        "meta:Chatham"{\r
+            ld{"Wektu Ketigo Chatham"}\r
+            lg{"Wektu Chatham"}\r
+            ls{"Wektu Standar Chatham"}\r
+        }\r
+        "meta:Chile"{\r
+            ld{"Wektu Ketigo Chili"}\r
+            lg{"Wektu Chili"}\r
+            ls{"Wektu Standar Chili"}\r
+        }\r
+        "meta:China"{\r
+            ld{"Wektu Ketigo Cina"}\r
+            lg{"Wektu Cina"}\r
+            ls{"Wektu Standar Cina"}\r
+        }\r
+        "meta:Choibalsan"{\r
+            ld{"WEktu Ketigo Choibalsan"}\r
+            lg{"Wektu Choibalsan"}\r
+            ls{"Wektu Standar Choibalsan"}\r
+        }\r
+        "meta:Christmas"{\r
+            ls{"Wektu Pulo Natal"}\r
+        }\r
+        "meta:Cocos"{\r
+            ls{"Wektu Kepuloan Cocos"}\r
+        }\r
+        "meta:Colombia"{\r
+            ld{"Wektu Ketigo Kolombia"}\r
+            lg{"Wektu Kolombia"}\r
+            ls{"Wektu Standar Kolombia"}\r
+        }\r
+        "meta:Cook"{\r
+            ld{"Wektu Ketigo Kepuloan Cook"}\r
+            lg{"Wektu Kepuloan Cook"}\r
+            ls{"Wektu Standar Kepuloan Cook"}\r
+        }\r
+        "meta:Cuba"{\r
+            ld{"Wektu Ketigo Kuba"}\r
+            lg{"Wektu Kuba"}\r
+            ls{"Wektu Standar Kuba"}\r
+        }\r
+        "meta:Davis"{\r
+            ls{"Wektu Davis"}\r
+        }\r
+        "meta:DumontDUrville"{\r
+            ls{"Wektu Dumont-d’Urville"}\r
+        }\r
+        "meta:East_Timor"{\r
+            ls{"Wektu Timor Leste"}\r
+        }\r
+        "meta:Easter"{\r
+            ld{"Wektu Ketigo Pulo Paskah"}\r
+            lg{"Wektu Pulo Paskah"}\r
+            ls{"Wektu Standar Pulo Paskah"}\r
+        }\r
+        "meta:Ecuador"{\r
+            ls{"Wektu Ekuador"}\r
+        }\r
+        "meta:Europe_Central"{\r
+            ld{"Wektu Ketigo Eropa Tengah"}\r
+            lg{"Wektu Eropa Tengah"}\r
+            ls{"Wektu Standar Eropa Tengah"}\r
+        }\r
+        "meta:Europe_Eastern"{\r
+            ld{"Wektu Ketigo Eropa sisih Wetan"}\r
+            lg{"Wektu Eropa sisih Wetan"}\r
+            ls{"Wektu Standar Eropa sisih Wetan"}\r
+        }\r
+        "meta:Europe_Further_Eastern"{\r
+            ls{"Wektu Eropa sisih Wetan seng Luwih Adoh"}\r
+        }\r
+        "meta:Europe_Western"{\r
+            ld{"Wektu Ketigo Eropa sisih Kulon"}\r
+            lg{"Wektu Eropa sisih Kulon"}\r
+            ls{"Wektu Standar Eropa sisih Kulon"}\r
+        }\r
+        "meta:Falkland"{\r
+            ld{"Wektu Ketigo Kepuloan Falkland"}\r
+            lg{"Wektu Kepuloan Falkland"}\r
+            ls{"Wektu Standar Kepuloan Falkland"}\r
+        }\r
+        "meta:Fiji"{\r
+            ld{"Wektu Ketigo Fiji"}\r
+            lg{"Wektu Fiji"}\r
+            ls{"Wektu Standar Fiji"}\r
+        }\r
+        "meta:French_Guiana"{\r
+            ls{"Wektu Guiana Prancis"}\r
+        }\r
+        "meta:French_Southern"{\r
+            ls{"Wektu Antartika lan Prancis sisih Kidul"}\r
+        }\r
+        "meta:GMT"{\r
+            ls{"Wektu Rerata Greenwich"}\r
+        }\r
+        "meta:Galapagos"{\r
+            ls{"Wektu Galapagos"}\r
+        }\r
+        "meta:Gambier"{\r
+            ls{"Wektu Gambier"}\r
+        }\r
+        "meta:Georgia"{\r
+            ld{"Wektu Ketigo Georgia"}\r
+            lg{"Wektu Georgia"}\r
+            ls{"Wektu Standar Georgia"}\r
+        }\r
+        "meta:Gilbert_Islands"{\r
+            ls{"Wektu Kepuloan Gilbert"}\r
+        }\r
+        "meta:Greenland_Eastern"{\r
+            ld{"Wektu Ketigo Grinland Wetan"}\r
+            lg{"Wektu Grinland Wetan"}\r
+            ls{"Wektu Standar Grinland Wetan"}\r
+        }\r
+        "meta:Greenland_Western"{\r
+            ld{"Wektu Ketigo Grinland Kulon"}\r
+            lg{"Wektu Grinland Kulon"}\r
+            ls{"Wektu Standar Grinland Kulon"}\r
+        }\r
+        "meta:Gulf"{\r
+            ls{"Wektu Standar Teluk"}\r
+        }\r
+        "meta:Guyana"{\r
+            ls{"Wektu Guyana"}\r
+        }\r
+        "meta:Hawaii_Aleutian"{\r
+            ld{"Wektu Ketigo Hawaii-Aleutian"}\r
+            lg{"Wektu Hawaii-Aleutian"}\r
+            ls{"Wektu Standar Hawaii-Aleutian"}\r
+        }\r
+        "meta:Hong_Kong"{\r
+            ld{"Wektu Ketigo Hong Kong"}\r
+            lg{"Wektu Hong Kong"}\r
+            ls{"Wektu Standar Hong Kong"}\r
+        }\r
+        "meta:Hovd"{\r
+            ld{"Wektu Ketigo Hovd"}\r
+            lg{"Wektu Hovd"}\r
+            ls{"Wektu Standar Hovd"}\r
+        }\r
+        "meta:India"{\r
+            ls{"Wektu Standar India"}\r
+        }\r
+        "meta:Indian_Ocean"{\r
+            ls{"Wektu Segoro Hindia"}\r
+        }\r
+        "meta:Indochina"{\r
+            ls{"Wektu Indocina"}\r
+        }\r
+        "meta:Indonesia_Central"{\r
+            ls{"Wektu Indonesia Tengah"}\r
+        }\r
+        "meta:Indonesia_Eastern"{\r
+            ls{"Wektu Indonesia sisih Wetan"}\r
+        }\r
+        "meta:Indonesia_Western"{\r
+            ls{"Wektu Indonesia sisih Kulon"}\r
+        }\r
+        "meta:Iran"{\r
+            ld{"Wektu Ketigo Iran"}\r
+            lg{"Wektu Iran"}\r
+            ls{"Wektu Standar Iran"}\r
+        }\r
+        "meta:Irkutsk"{\r
+            ld{"Wektu Ketigo Irkutsk"}\r
+            lg{"Wektu Irkutsk"}\r
+            ls{"Wektu Standar Irkutsk"}\r
+        }\r
+        "meta:Israel"{\r
+            ld{"Wektu Ketigo Israel"}\r
+            lg{"Wektu Israel"}\r
+            ls{"Wektu Standar Israel"}\r
+        }\r
+        "meta:Japan"{\r
+            ld{"Wektu Ketigo Jepang"}\r
+            lg{"Wektu Jepang"}\r
+            ls{"Wektu Standar Jepang"}\r
+        }\r
+        "meta:Kazakhstan_Eastern"{\r
+            ls{"Wektu Kazakhstan Wetan"}\r
+        }\r
+        "meta:Kazakhstan_Western"{\r
+            ls{"Wektu Kazakhstan Kulon"}\r
+        }\r
+        "meta:Korea"{\r
+            ld{"Wektu Ketigo Korea"}\r
+            lg{"Wektu Korea"}\r
+            ls{"Wektu Standar Korea"}\r
+        }\r
+        "meta:Kosrae"{\r
+            ls{"Wektu Kosrae"}\r
+        }\r
+        "meta:Krasnoyarsk"{\r
+            ld{"Wektu Ketigo Krasnoyarsk"}\r
+            lg{"Wektu Krasnoyarsk"}\r
+            ls{"Wektu Standar Krasnoyarsk"}\r
+        }\r
+        "meta:Kyrgystan"{\r
+            ls{"Wektu Kirgizstan"}\r
+        }\r
+        "meta:Line_Islands"{\r
+            ls{"Wektu Kepuloan Line"}\r
+        }\r
+        "meta:Lord_Howe"{\r
+            ld{"Wektu Ketigo Lord Howe"}\r
+            lg{"Wektu Lord Howe"}\r
+            ls{"Wektu Standar Lord Howe"}\r
+        }\r
+        "meta:Macquarie"{\r
+            ls{"Wektu Pulo Macquarie"}\r
+        }\r
+        "meta:Magadan"{\r
+            ld{"Wektu Ketigo Magadan"}\r
+            lg{"Wektu Magadan"}\r
+            ls{"Wektu Standar Magadan"}\r
+        }\r
+        "meta:Malaysia"{\r
+            ls{"Wektu Malaysia"}\r
+        }\r
+        "meta:Maldives"{\r
+            ls{"Wektu Maladewa"}\r
+        }\r
+        "meta:Marquesas"{\r
+            ls{"Wektu Marquesas"}\r
+        }\r
+        "meta:Marshall_Islands"{\r
+            ls{"Wektu Kepuloan Marshall"}\r
+        }\r
+        "meta:Mauritius"{\r
+            ld{"Wektu Ketigo Mauritius"}\r
+            lg{"Wektu Mauritius"}\r
+            ls{"Wektu Standar Mauritius"}\r
+        }\r
+        "meta:Mawson"{\r
+            ls{"Wektu Mawson"}\r
+        }\r
+        "meta:Mexico_Northwest"{\r
+            ld{"Wektu Ketigo Meksiko Lor-Kulon"}\r
+            lg{"Wektu Meksiko Lor-Kulon"}\r
+            ls{"Wektu Standar Meksiko Lor-Kulon"}\r
+        }\r
+        "meta:Mexico_Pacific"{\r
+            ld{"Wektu Ketigo Pasifik Meksiko"}\r
+            lg{"Wektu Pasifik Meksiko"}\r
+            ls{"Wektu Standar Pasifik Meksiko"}\r
+        }\r
+        "meta:Mongolia"{\r
+            ld{"Wektu Ketigo Ulaanbaatar"}\r
+            lg{"Wektu Ulaanbaatar"}\r
+            ls{"Wektu Standar Ulaanbaatar"}\r
+        }\r
+        "meta:Moscow"{\r
+            ld{"Wektu Ketigo Moscow"}\r
+            lg{"Wektu Moscow"}\r
+            ls{"Wektu Standar Moscow"}\r
+        }\r
+        "meta:Myanmar"{\r
+            ls{"Wektu Myanmar"}\r
+        }\r
+        "meta:Nauru"{\r
+            ls{"Wektu Nauru"}\r
+        }\r
+        "meta:Nepal"{\r
+            ls{"Wektu Nepal"}\r
+        }\r
+        "meta:New_Caledonia"{\r
+            ld{"Wektu Ketigo Kaledonia Anyar"}\r
+            lg{"Wektu Kaledonia Anyar"}\r
+            ls{"Wektu Standar Kaledonia Anyar"}\r
+        }\r
+        "meta:New_Zealand"{\r
+            ld{"Wektu Ketigo Selandia Anyar"}\r
+            lg{"Wektu Selandia Anyar"}\r
+            ls{"Wektu Standar Selandia Anyar"}\r
+        }\r
+        "meta:Newfoundland"{\r
+            ld{"Wektu Ketigo Newfoundland"}\r
+            lg{"Wektu Newfoundland"}\r
+            ls{"Wektu Standar Newfoundland"}\r
+        }\r
+        "meta:Niue"{\r
+            ls{"Wektu Niue"}\r
+        }\r
+        "meta:Norfolk"{\r
+            ls{"Wektu Pulo Norfolk"}\r
+        }\r
+        "meta:Noronha"{\r
+            ld{"Wektu Ketigo Fernando de Noronha"}\r
+            lg{"Wektu Fernando de Noronha"}\r
+            ls{"Wektu Standar Fernando de Noronha"}\r
+        }\r
+        "meta:Novosibirsk"{\r
+            ld{"Wektu Ketigo Novosibirsk"}\r
+            lg{"Wektu Novosibirsk"}\r
+            ls{"Wektu Standar Novosibirsk"}\r
+        }\r
+        "meta:Omsk"{\r
+            ld{"Wektu Ketigo Omsk"}\r
+            lg{"Wektu Omsk"}\r
+            ls{"Wektu Standar Omsk"}\r
+        }\r
+        "meta:Pakistan"{\r
+            ld{"Wektu Ketigo Pakistan"}\r
+            lg{"Wektu Pakistan"}\r
+            ls{"Wektu Standar Pakistan"}\r
+        }\r
+        "meta:Palau"{\r
+            ls{"Wektu Palau"}\r
+        }\r
+        "meta:Papua_New_Guinea"{\r
+            ls{"Wektu Papua Nugini"}\r
+        }\r
+        "meta:Paraguay"{\r
+            ld{"Wektu Ketigo Paraguay"}\r
+            lg{"Wektu Paraguay"}\r
+            ls{"Wektu Standar Paraguay"}\r
+        }\r
+        "meta:Peru"{\r
+            ld{"Wektu Ketigo Peru"}\r
+            lg{"Wektu Peru"}\r
+            ls{"Wektu Standar Peru"}\r
+        }\r
+        "meta:Philippines"{\r
+            ld{"Wektu Ketigo Filipina"}\r
+            lg{"Wektu Filipina"}\r
+            ls{"Wektu Standar Filipina"}\r
+        }\r
+        "meta:Phoenix_Islands"{\r
+            ls{"Wektu Kepuloan Phoenix"}\r
+        }\r
+        "meta:Pierre_Miquelon"{\r
+            ld{"Wektu Ketigo Santa Pierre lan Miquelon"}\r
+            lg{"Wektu Santa Pierre lan Miquelon"}\r
+            ls{"Wektu Standar Santa Pierre lan Miquelon"}\r
+        }\r
+        "meta:Pitcairn"{\r
+            ls{"Wektu Pitcairn"}\r
+        }\r
+        "meta:Ponape"{\r
+            ls{"Wektu Ponape"}\r
+        }\r
+        "meta:Pyongyang"{\r
+            ls{"Wektu Pyongyang"}\r
+        }\r
+        "meta:Reunion"{\r
+            ls{"Wektu Reunion"}\r
+        }\r
+        "meta:Rothera"{\r
+            ls{"Wektu Rothera"}\r
+        }\r
+        "meta:Sakhalin"{\r
+            ld{"Wektu Ketigo Sakhalin"}\r
+            lg{"Wektu Sakhalin"}\r
+            ls{"Wektu Standar Sakhalin"}\r
+        }\r
+        "meta:Samoa"{\r
+            ld{"Wektu Ketigo Samoa"}\r
+            lg{"Wektu Samoa"}\r
+            ls{"Wektu Standar Samoa"}\r
+        }\r
+        "meta:Seychelles"{\r
+            ls{"Wektu Seichelles"}\r
+        }\r
+        "meta:Singapore"{\r
+            ls{"Wektu Standar Singapura"}\r
+        }\r
+        "meta:Solomon"{\r
+            ls{"Wektu Kepuloan Solomon"}\r
+        }\r
+        "meta:South_Georgia"{\r
+            ls{"Wektu Georgia Kidul"}\r
+        }\r
+        "meta:Suriname"{\r
+            ls{"Wektu Suriname"}\r
+        }\r
+        "meta:Syowa"{\r
+            ls{"Wektu Syowa"}\r
+        }\r
+        "meta:Tahiti"{\r
+            ls{"Wektu Tahiti"}\r
+        }\r
+        "meta:Taipei"{\r
+            ld{"Wektu Ketigo Taipei"}\r
+            lg{"Wektu Taipei"}\r
+            ls{"Wektu Standar Taipei"}\r
+        }\r
+        "meta:Tajikistan"{\r
+            ls{"Wektu Tajikistan"}\r
+        }\r
+        "meta:Tokelau"{\r
+            ls{"Wektu Tokelau"}\r
+        }\r
+        "meta:Tonga"{\r
+            ld{"Wektu Ketigo Tonga"}\r
+            lg{"Wektu Tonga"}\r
+            ls{"Wektu Standar Tonga"}\r
+        }\r
+        "meta:Truk"{\r
+            ls{"Wektu Chuuk"}\r
+        }\r
+        "meta:Turkmenistan"{\r
+            ld{"Wektu Ketigo Turkmenistan"}\r
+            lg{"Wektu Turkmenistan"}\r
+            ls{"Wektu Standar Turkmenistan"}\r
+        }\r
+        "meta:Tuvalu"{\r
+            ls{"Wektu Tuvalu"}\r
+        }\r
+        "meta:Uruguay"{\r
+            ld{"Wektu Ketigo Uruguay"}\r
+            lg{"Wektu Uruguay"}\r
+            ls{"Wektu Standar Uruguay"}\r
+        }\r
+        "meta:Uzbekistan"{\r
+            ld{"Wektu Ketigo Usbekistan"}\r
+            lg{"Wektu Usbekistan"}\r
+            ls{"Wektu Standar Usbekistan"}\r
+        }\r
+        "meta:Vanuatu"{\r
+            ld{"Wektu Ketigo Vanuatu"}\r
+            lg{"Wektu Vanuatu"}\r
+            ls{"Wektu Standar Vanuatu"}\r
+        }\r
+        "meta:Venezuela"{\r
+            ls{"Wektu Venezuela"}\r
+        }\r
+        "meta:Vladivostok"{\r
+            ld{"Wektu Ketigo Vladivostok"}\r
+            lg{"Wektu Vladivostok"}\r
+            ls{"Wektu Standar Vladivostok"}\r
+        }\r
+        "meta:Volgograd"{\r
+            ld{"Wektu Ketigo Volgograd"}\r
+            lg{"Wektu Volgograd"}\r
+            ls{"Wektu Standar Volgograd"}\r
+        }\r
+        "meta:Vostok"{\r
+            ls{"Wektu Vostok"}\r
+        }\r
+        "meta:Wake"{\r
+            ls{"Wektu Pulo Wake"}\r
+        }\r
+        "meta:Wallis"{\r
+            ls{"Wektu Wallis lan Futuna"}\r
+        }\r
+        "meta:Yakutsk"{\r
+            ld{"Wektu Ketigo Yakutsk"}\r
+            lg{"Wektu Yakutsk"}\r
+            ls{"Wektu Standar Yakutsk"}\r
+        }\r
+        "meta:Yekaterinburg"{\r
+            ld{"Wektu Ketigo Yekaterinburg"}\r
+            lg{"Wektu Yekaterinburg"}\r
+            ls{"Wektu Standar Yekaterinburg"}\r
+        }\r
+        fallbackFormat{"{1} ({0})"}\r
+        gmtFormat{"GMT{0}"}\r
+        gmtZeroFormat{"GMT"}\r
+        hourFormat{"+HH:mm;-HH:mm"}\r
+        regionFormat{"Wektu {0}"}\r
+        regionFormatDaylight{"Wektu Ketigo {0}"}\r
+        regionFormatStandard{"Wektu Standar {0}"}\r
+    }\r
+}\r
index f75be61328fff4e11ac97b78edae3ba4c9725dca..e57537ae0ccae5633cd19ad0641845bda24c599b 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 ka{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.50"}\r
     zoneStrings{\r
         "Africa:Abidjan"{\r
             ec{"აბიჯანი"}\r
@@ -889,7 +889,7 @@ ka{
             ec{"აზორის კუნძულები"}\r
         }\r
         "Atlantic:Bermuda"{\r
-            ec{"á\83\91á\83\94á\83 á\83\9bá\83£á\83\93á\83\98"}\r
+            ec{"á\83\91á\83\94á\83 á\83\9bá\83£á\83\93á\83\90"}\r
         }\r
         "Atlantic:Canary"{\r
             ec{"კანარი"}\r
index a82c3751ece9c1657c12fc6dc12a11a0c5c0348e..6f837e679223e3410276bfd52aa2581b0af0efa5 100644 (file)
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 kab{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.94"}\r
 }\r
index 0831341b927f686a5e58cfd15a4d91a4f4190ec4..c4cf32990e0c4e46156cbbba5c7d9bbb5f6043d3 100644 (file)
@@ -1,11 +1,17 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 kea{\r
-    Version{"2.1.39.11"}\r
+    Version{"2.1.43.65"}\r
     zoneStrings{\r
         "America:Blanc-Sablon"{\r
             ec{"Blank-Sablon"}\r
         }\r
+        "America:Indianapolis"{\r
+            ec{"Indianapolis"}\r
+        }\r
+        "Atlantic:Bermuda"{\r
+            ec{"Bermuda"}\r
+        }\r
         "Etc:Unknown"{\r
             ec{"Sidadi Diskonxedu"}\r
         }\r
index 89b70b256b55f63fe57a47c70f34df7b4ab80fb8..d2e52802fd8142555bfaf51dce03f5107339f861 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 kk{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.88"}\r
     zoneStrings{\r
         "Africa:Abidjan"{\r
             ec{"Абиджан"}\r
index b3cc35b25d8af208908b69600e6fed8e78122fd4..08122ff4ee052a9a62727978395d9c61c018c31f 100644 (file)
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 kl{\r
-    Version{"2.1.38.69"}\r
+    Version{"2.1.45.12"}\r
 }\r
index 408a5fc73ebe2727a9765476ee2afbcb3b2fe028..ff31aed13ece5df4fb2104041ee86ba0d6c870d3 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 km{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.88"}\r
     zoneStrings{\r
         "Africa:Abidjan"{\r
             ec{"អាប៊ីដ្យាន"}\r
@@ -507,6 +507,9 @@ km{
         "America:Puerto_Rico"{\r
             ec{"ព័រតូរីកូ"}\r
         }\r
+        "America:Punta_Arenas"{\r
+            ec{"ពុនតា អារ៉េណា"}\r
+        }\r
         "America:Rainy_River"{\r
             ec{"រ៉េនីរីវើ"}\r
         }\r
@@ -657,6 +660,9 @@ km{
         "Asia:Ashgabat"{\r
             ec{"អាសហ្គាបាត"}\r
         }\r
+        "Asia:Atyrau"{\r
+            ec{"អាទីរ៉ូ"}\r
+        }\r
         "Asia:Baghdad"{\r
             ec{"បាកដាដ"}\r
         }\r
@@ -708,6 +714,9 @@ km{
         "Asia:Dushanbe"{\r
             ec{"ឌូស្ហាន់បេ"}\r
         }\r
+        "Asia:Famagusta"{\r
+            ec{"ហ្វ៉ាម៉ាហ្គុស្តា"}\r
+        }\r
         "Asia:Gaza"{\r
             ec{"កាសា"}\r
         }\r
index db5aef5eccf27a470aa5d60d47f49f10b5e1d68c..78696a144e7193d3c8d46ab84844a532d7b94514 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 kn{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.88"}\r
     zoneStrings{\r
         "Africa:Abidjan"{\r
             ec{"ಅಬಿದ್‌ಜನ್"}\r
index be78834e45e4cdc4acc59f6c93101da1391209eb..ecf182e5c336f097ec8d3f0ef0cc9b570c092a11 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 ko{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.91"}\r
     zoneStrings{\r
         "Africa:Abidjan"{\r
             ec{"아비장"}\r
@@ -1387,7 +1387,7 @@ ko{
             ls{"아르메니아 표준시"}\r
         }\r
         "meta:Atlantic"{\r
-            ld{"미 ë\8c\80ì\84\9cì\96\91 í\95\98ê³\84 í\91\9cì¤\80ì\8b\9c"}\r
+            ld{"대서양 하계 표준시"}\r
             lg{"대서양 시간"}\r
             ls{"대서양 표준시"}\r
         }\r
index eaa0fdb6b8c09008a2f54c9882a0f1ca201a1e49..2cfd357f89e32209a4bb69de75fe5826b222d2ec 100644 (file)
@@ -1,8 +1,452 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 kok{\r
-    Version{"2.1.38.69"}\r
+    Version{"2.1.44.88"}\r
     zoneStrings{\r
+        "America:Adak"{\r
+            ec{"अडाक"}\r
+        }\r
+        "America:Anchorage"{\r
+            ec{"ऐंकरज"}\r
+        }\r
+        "America:Anguilla"{\r
+            ec{"अंगुला"}\r
+        }\r
+        "America:Antigua"{\r
+            ec{"एँटिगुआ"}\r
+        }\r
+        "America:Araguaina"{\r
+            ec{"अरगुयेना"}\r
+        }\r
+        "America:Argentina:La_Rioja"{\r
+            ec{"ला रियोजा"}\r
+        }\r
+        "America:Argentina:Rio_Gallegos"{\r
+            ec{"रियो गलेगॉस"}\r
+        }\r
+        "America:Argentina:Salta"{\r
+            ec{"साल्टा"}\r
+        }\r
+        "America:Argentina:San_Juan"{\r
+            ec{"सान जुआन"}\r
+        }\r
+        "America:Argentina:San_Luis"{\r
+            ec{"सान लुईस"}\r
+        }\r
+        "America:Argentina:Tucuman"{\r
+            ec{"टुकुमॅन"}\r
+        }\r
+        "America:Argentina:Ushuaia"{\r
+            ec{"उशुआइया"}\r
+        }\r
+        "America:Aruba"{\r
+            ec{"अरुबा"}\r
+        }\r
+        "America:Asuncion"{\r
+            ec{"असंसियन"}\r
+        }\r
+        "America:Bahia"{\r
+            ec{"बहिया"}\r
+        }\r
+        "America:Bahia_Banderas"{\r
+            ec{"बहिया बंदेरस"}\r
+        }\r
+        "America:Barbados"{\r
+            ec{"बारबाडोस"}\r
+        }\r
+        "America:Belem"{\r
+            ec{"बेलेम"}\r
+        }\r
+        "America:Belize"{\r
+            ec{"बेलिझ"}\r
+        }\r
+        "America:Blanc-Sablon"{\r
+            ec{"ब्लांक-साब्लोन"}\r
+        }\r
+        "America:Boa_Vista"{\r
+            ec{"बाओ विस्टा"}\r
+        }\r
+        "America:Bogota"{\r
+            ec{"बोगोटा"}\r
+        }\r
+        "America:Boise"{\r
+            ec{"बोयस"}\r
+        }\r
+        "America:Buenos_Aires"{\r
+            ec{"ब्यूनस आयर्स"}\r
+        }\r
+        "America:Cambridge_Bay"{\r
+            ec{"केंब्रिज बे"}\r
+        }\r
+        "America:Campo_Grande"{\r
+            ec{"कॅम्पो ग्रांड"}\r
+        }\r
+        "America:Cancun"{\r
+            ec{"कानकुन"}\r
+        }\r
+        "America:Caracas"{\r
+            ec{"कराकस"}\r
+        }\r
+        "America:Catamarca"{\r
+            ec{"काटामारका"}\r
+        }\r
+        "America:Cayenne"{\r
+            ec{"केइन"}\r
+        }\r
+        "America:Cayman"{\r
+            ec{"कैमेन"}\r
+        }\r
+        "America:Chicago"{\r
+            ec{"शिकागो"}\r
+        }\r
+        "America:Chihuahua"{\r
+            ec{"चिहुआहुआ"}\r
+        }\r
+        "America:Coral_Harbour"{\r
+            ec{"अतिकोकॉन"}\r
+        }\r
+        "America:Cordoba"{\r
+            ec{"कोरडोबा"}\r
+        }\r
+        "America:Costa_Rica"{\r
+            ec{"कोस्ता रिका"}\r
+        }\r
+        "America:Creston"{\r
+            ec{"क्रेस्टोन"}\r
+        }\r
+        "America:Cuiaba"{\r
+            ec{"कुययबा"}\r
+        }\r
+        "America:Curacao"{\r
+            ec{"कुराकाओ"}\r
+        }\r
+        "America:Danmarkshavn"{\r
+            ec{"डेन्मार्कशॉन"}\r
+        }\r
+        "America:Dawson"{\r
+            ec{"डौसन"}\r
+        }\r
+        "America:Dawson_Creek"{\r
+            ec{"डौसन क्रिक"}\r
+        }\r
+        "America:Denver"{\r
+            ec{"डेन्वेर"}\r
+        }\r
+        "America:Detroit"{\r
+            ec{"डेट्रॉईट"}\r
+        }\r
+        "America:Dominica"{\r
+            ec{"डोमिनीका"}\r
+        }\r
+        "America:Edmonton"{\r
+            ec{"ऍडमोंटन"}\r
+        }\r
+        "America:Eirunepe"{\r
+            ec{"ईरुनेपे"}\r
+        }\r
+        "America:El_Salvador"{\r
+            ec{"एल साल्वाडोर"}\r
+        }\r
+        "America:Fort_Nelson"{\r
+            ec{"फोर्ट नेल्सन"}\r
+        }\r
+        "America:Fortaleza"{\r
+            ec{"फोर्टालेझा"}\r
+        }\r
+        "America:Glace_Bay"{\r
+            ec{"ग्लेस बे"}\r
+        }\r
+        "America:Godthab"{\r
+            ec{"नूक"}\r
+        }\r
+        "America:Goose_Bay"{\r
+            ec{"गूस बे"}\r
+        }\r
+        "America:Grand_Turk"{\r
+            ec{"ग्रँड तुर्क"}\r
+        }\r
+        "America:Grenada"{\r
+            ec{"ग्रेनॅडा"}\r
+        }\r
+        "America:Guadeloupe"{\r
+            ec{"ग्वाडेलोप"}\r
+        }\r
+        "America:Guatemala"{\r
+            ec{"ग्वाटेमाला"}\r
+        }\r
+        "America:Guayaquil"{\r
+            ec{"ग्वायेकिल"}\r
+        }\r
+        "America:Guyana"{\r
+            ec{"गुयाना"}\r
+        }\r
+        "America:Halifax"{\r
+            ec{"हेलिफॅक्स"}\r
+        }\r
+        "America:Havana"{\r
+            ec{"हवाना"}\r
+        }\r
+        "America:Hermosillo"{\r
+            ec{"हर्मोसिलो"}\r
+        }\r
+        "America:Indiana:Knox"{\r
+            ec{"नॉक्स, इंडियाना"}\r
+        }\r
+        "America:Indiana:Marengo"{\r
+            ec{"मारेंगो, इंडियाना"}\r
+        }\r
+        "America:Indiana:Petersburg"{\r
+            ec{"पिटर्सबर्ग, इंडियाना"}\r
+        }\r
+        "America:Indiana:Tell_City"{\r
+            ec{"टेल सिटी, इंडियाना"}\r
+        }\r
+        "America:Indiana:Vevay"{\r
+            ec{"वेवय, इंडियाना"}\r
+        }\r
+        "America:Indiana:Vincennes"{\r
+            ec{"विंसेनस, इंडियाना"}\r
+        }\r
+        "America:Indiana:Winamac"{\r
+            ec{"विनामॅक, इंडियाना"}\r
+        }\r
+        "America:Indianapolis"{\r
+            ec{"इंडियानापोलीस"}\r
+        }\r
+        "America:Inuvik"{\r
+            ec{"इनुविक"}\r
+        }\r
+        "America:Iqaluit"{\r
+            ec{"इकालुयीट"}\r
+        }\r
+        "America:Jamaica"{\r
+            ec{"जमैका"}\r
+        }\r
+        "America:Jujuy"{\r
+            ec{"जुजेय"}\r
+        }\r
+        "America:Juneau"{\r
+            ec{"जूनो"}\r
+        }\r
+        "America:Kentucky:Monticello"{\r
+            ec{"मोंटीसॅलो, केंटुकाय"}\r
+        }\r
+        "America:Kralendijk"{\r
+            ec{"क्रालेनडीक"}\r
+        }\r
+        "America:La_Paz"{\r
+            ec{"ला पाझ"}\r
+        }\r
+        "America:Lima"{\r
+            ec{"लिमा"}\r
+        }\r
+        "America:Los_Angeles"{\r
+            ec{"लॉस एंजलीस"}\r
+        }\r
+        "America:Louisville"{\r
+            ec{"लुईजविले"}\r
+        }\r
+        "America:Lower_Princes"{\r
+            ec{"लोवर प्रिंसेस क्वार्टर"}\r
+        }\r
+        "America:Maceio"{\r
+            ec{"मासियो"}\r
+        }\r
+        "America:Managua"{\r
+            ec{"मॅनाग्वा"}\r
+        }\r
+        "America:Manaus"{\r
+            ec{"मनौस"}\r
+        }\r
+        "America:Marigot"{\r
+            ec{"मेरीगॉट"}\r
+        }\r
+        "America:Martinique"{\r
+            ec{"मार्टिनिक"}\r
+        }\r
+        "America:Matamoros"{\r
+            ec{"माटामोरोस"}\r
+        }\r
+        "America:Mazatlan"{\r
+            ec{"माझाट्लान"}\r
+        }\r
+        "America:Mendoza"{\r
+            ec{"मेन्डोझा"}\r
+        }\r
+        "America:Menominee"{\r
+            ec{"मेनोमिनी"}\r
+        }\r
+        "America:Merida"{\r
+            ec{"मेरिडा"}\r
+        }\r
+        "America:Metlakatla"{\r
+            ec{"मेट्लाकाट्ला"}\r
+        }\r
+        "America:Mexico_City"{\r
+            ec{"मेक्सिको शार"}\r
+        }\r
+        "America:Miquelon"{\r
+            ec{"मिक्वेलोन"}\r
+        }\r
+        "America:Moncton"{\r
+            ec{"मोंक्टॉन"}\r
+        }\r
+        "America:Monterrey"{\r
+            ec{"मोंटेरी"}\r
+        }\r
+        "America:Montevideo"{\r
+            ec{"मोंटेव्हिडियो"}\r
+        }\r
+        "America:Montserrat"{\r
+            ec{"मॉन्टसेराट"}\r
+        }\r
+        "America:Nassau"{\r
+            ec{"नसाऊ"}\r
+        }\r
+        "America:New_York"{\r
+            ec{"न्यु यॉर्क"}\r
+        }\r
+        "America:Nipigon"{\r
+            ec{"निपिगोन"}\r
+        }\r
+        "America:Nome"{\r
+            ec{"नोमे"}\r
+        }\r
+        "America:Noronha"{\r
+            ec{"नोरोन्हा"}\r
+        }\r
+        "America:North_Dakota:Beulah"{\r
+            ec{"ब्यूल्लाह, उत्तर डाकोटा"}\r
+        }\r
+        "America:North_Dakota:Center"{\r
+            ec{"मध्य, उत्तर डाकोटा"}\r
+        }\r
+        "America:North_Dakota:New_Salem"{\r
+            ec{"न्यु सालेम, उत्तर डाकोटा"}\r
+        }\r
+        "America:Ojinaga"{\r
+            ec{"ओजिनागा"}\r
+        }\r
+        "America:Panama"{\r
+            ec{"पनामा"}\r
+        }\r
+        "America:Pangnirtung"{\r
+            ec{"पंगनिर्टुंग"}\r
+        }\r
+        "America:Paramaribo"{\r
+            ec{"परामारिबो"}\r
+        }\r
+        "America:Phoenix"{\r
+            ec{"फिनिक्स"}\r
+        }\r
+        "America:Port-au-Prince"{\r
+            ec{"पोर्ट-औ-प्रिन्स"}\r
+        }\r
+        "America:Port_of_Spain"{\r
+            ec{"पोर्ट ऑफ स्पेन"}\r
+        }\r
+        "America:Porto_Velho"{\r
+            ec{"पोर्टो वेल्हो"}\r
+        }\r
+        "America:Puerto_Rico"{\r
+            ec{"पिर्टो रिको"}\r
+        }\r
+        "America:Punta_Arenas"{\r
+            ec{"पुंटा अरेनास"}\r
+        }\r
+        "America:Rainy_River"{\r
+            ec{"पावसाळी न्हय"}\r
+        }\r
+        "America:Rankin_Inlet"{\r
+            ec{"रँकिन इनलॅट"}\r
+        }\r
+        "America:Recife"{\r
+            ec{"रेसीफ"}\r
+        }\r
+        "America:Regina"{\r
+            ec{"रेजीना"}\r
+        }\r
+        "America:Resolute"{\r
+            ec{"रिसोल्युट"}\r
+        }\r
+        "America:Rio_Branco"{\r
+            ec{"रियो ब्रांको"}\r
+        }\r
+        "America:Santarem"{\r
+            ec{"सांतारेम"}\r
+        }\r
+        "America:Santiago"{\r
+            ec{"सँटियागो"}\r
+        }\r
+        "America:Santo_Domingo"{\r
+            ec{"सांतो डोमिंगो"}\r
+        }\r
+        "America:Sao_Paulo"{\r
+            ec{"साओ पावलो"}\r
+        }\r
+        "America:Scoresbysund"{\r
+            ec{"इटोकॉरटॉर्मीट"}\r
+        }\r
+        "America:Sitka"{\r
+            ec{"सिट्का"}\r
+        }\r
+        "America:St_Barthelemy"{\r
+            ec{"सेंट बार्थेलेमी"}\r
+        }\r
+        "America:St_Johns"{\r
+            ec{"सेंट जॉन्स"}\r
+        }\r
+        "America:St_Kitts"{\r
+            ec{"सेंट किट्स"}\r
+        }\r
+        "America:St_Lucia"{\r
+            ec{"सेंट लुसीया"}\r
+        }\r
+        "America:St_Thomas"{\r
+            ec{"सेंट थॉमस"}\r
+        }\r
+        "America:St_Vincent"{\r
+            ec{"सेंट विन्सेंट"}\r
+        }\r
+        "America:Swift_Current"{\r
+            ec{"स्विफ्ट करंट"}\r
+        }\r
+        "America:Tegucigalpa"{\r
+            ec{"तेगुसिगल्पा"}\r
+        }\r
+        "America:Thule"{\r
+            ec{"थुले"}\r
+        }\r
+        "America:Thunder_Bay"{\r
+            ec{"थंडर बे"}\r
+        }\r
+        "America:Tijuana"{\r
+            ec{"तिजुआना"}\r
+        }\r
+        "America:Toronto"{\r
+            ec{"टॉरंटो"}\r
+        }\r
+        "America:Tortola"{\r
+            ec{"टोरटोला"}\r
+        }\r
+        "America:Vancouver"{\r
+            ec{"व्हँकुव्हर"}\r
+        }\r
+        "America:Whitehorse"{\r
+            ec{"व्हायटहॉर्स"}\r
+        }\r
+        "America:Winnipeg"{\r
+            ec{"विनीपेग"}\r
+        }\r
+        "America:Yakutat"{\r
+            ec{"याकुटाट"}\r
+        }\r
+        "America:Yellowknife"{\r
+            ec{"यलोक्नायफ"}\r
+        }\r
+        "Atlantic:Bermuda"{\r
+            ec{"बर्मुडा"}\r
+        }\r
         "Etc:UTC"{\r
             ls{"समन्वित वैश्विक वेळ"}\r
         }\r
@@ -15,9 +459,190 @@ kok{
         "Europe:London"{\r
             ld{"ब्रिटिश ग्रीष्म वेळ"}\r
         }\r
+        "Pacific:Easter"{\r
+            ec{"ईस्टर"}\r
+        }\r
+        "Pacific:Galapagos"{\r
+            ec{"गालापागोस"}\r
+        }\r
+        "meta:Africa_Central"{\r
+            ls{"मध्य आफ्रिका वेळ"}\r
+        }\r
+        "meta:Africa_Eastern"{\r
+            ls{"उदेंत आफ्रिका वेळ"}\r
+        }\r
+        "meta:Africa_Southern"{\r
+            ls{"दक्षिण आफ्रिका प्रमाणित वेळ"}\r
+        }\r
+        "meta:Africa_Western"{\r
+            ld{"अस्तंत आफ्रिका ग्रीष्म वेळ"}\r
+            lg{"अस्तंत आफ्रिका वेळ"}\r
+            ls{"अस्तंत आफ्रिका प्रमाणित वेळ"}\r
+        }\r
+        "meta:Alaska"{\r
+            ld{"अलास्का डेलायट वेळ"}\r
+            lg{"अलास्का वेळ"}\r
+            ls{"अलास्का प्रमाणित वेळ"}\r
+        }\r
+        "meta:Amazon"{\r
+            ld{"अमेझोन ग्रीष्म वेळ"}\r
+            lg{"अमेझोन वेळ"}\r
+            ls{"अमेझोन प्रमाणित वेळ"}\r
+        }\r
+        "meta:America_Central"{\r
+            ld{"मध्य डेलायट वेळ"}\r
+            lg{"मध्य वेळ"}\r
+            ls{"मध्य प्रमाणित वेळ"}\r
+        }\r
+        "meta:America_Eastern"{\r
+            ld{"उदेंतेचो डेलायट वेळ"}\r
+            lg{"उदेंत वेळ"}\r
+            ls{"उदेंत प्रमाणित वेळ"}\r
+        }\r
+        "meta:America_Mountain"{\r
+            ld{"पर्वतीय डेलायट वेळ"}\r
+            lg{"पर्वतीय वेळ"}\r
+            ls{"पर्वतीय प्रमाणित वेळ"}\r
+        }\r
+        "meta:America_Pacific"{\r
+            ld{"प्रशांत डेलायट वेळ"}\r
+            lg{"प्रशांत वेळ"}\r
+            ls{"प्रशांत प्रमाणित वेळ"}\r
+        }\r
+        "meta:Argentina"{\r
+            ld{"अर्जेंटिना ग्रीष्म वेळ"}\r
+            lg{"अर्जेंटिना वेळ"}\r
+            ls{"अर्जेंटिना प्रमाणित वेळ"}\r
+        }\r
+        "meta:Argentina_Western"{\r
+            ld{"अस्तंत अर्जेंटिना ग्रीष्म वेळ"}\r
+            lg{"अस्तंत अर्जेंटिना वेळ"}\r
+            ls{"अस्तंत अर्जेंटिना प्रमाणित वेळ"}\r
+        }\r
+        "meta:Atlantic"{\r
+            ld{"अटलांटीक डेलायट वेळ"}\r
+            lg{"अटलांटीक वेळ"}\r
+            ls{"अटलांटीक प्रमाणित वेळ"}\r
+        }\r
+        "meta:Bolivia"{\r
+            ls{"बोलिव्हिया वेळ"}\r
+        }\r
+        "meta:Brasilia"{\r
+            ld{"ब्राझिलिया ग्रीष्म वेळ"}\r
+            lg{"ब्राझिलिया वेळ"}\r
+            ls{"ब्राझिलिया प्रमाणित वेळ"}\r
+        }\r
+        "meta:Chile"{\r
+            ld{"चिली ग्रीष्म वेळ"}\r
+            lg{"चिली वेळ"}\r
+            ls{"चिली प्रमाणित वेळ"}\r
+        }\r
+        "meta:Colombia"{\r
+            ld{"कोलंबिया ग्रीष्म वेळ"}\r
+            lg{"कोलंबिया"}\r
+            ls{"कोलंबिया प्रमाणित वेळ"}\r
+        }\r
+        "meta:Cuba"{\r
+            ld{"क्युबा डेलायट वेळ"}\r
+            lg{"क्युबा वेळ"}\r
+            ls{"क्युबा प्रमाणित वेळ"}\r
+        }\r
+        "meta:Easter"{\r
+            ld{"ईस्टर आयलँड ग्रीष्म वेळ"}\r
+            lg{"ईस्टर आयलँड वेळ"}\r
+            ls{"ईस्टर आयलँड प्रमाणित वेळ"}\r
+        }\r
+        "meta:Ecuador"{\r
+            ls{"इक्वेडोर वेळ"}\r
+        }\r
+        "meta:Falkland"{\r
+            ld{"फॉकलँड आयलँड्स ग्रीष्म वेळ"}\r
+            lg{"फॉकलँड आयलँड्स वेळ"}\r
+            ls{"फॉकलँड आयलँड्स प्रमाणित वेळ"}\r
+        }\r
+        "meta:French_Guiana"{\r
+            ls{"फ्रेंच गयाना वेळ"}\r
+        }\r
+        "meta:Galapagos"{\r
+            ls{"गालापागोस वेळ"}\r
+        }\r
+        "meta:Greenland_Eastern"{\r
+            ld{"उदेंत ग्रीनलँड ग्रीष्म वेळ"}\r
+            lg{"उदेंत ग्रीनलँड वेळ"}\r
+            ls{"उदेंत ग्रीनलँड प्रमाणित वेळ"}\r
+        }\r
+        "meta:Greenland_Western"{\r
+            ld{"अस्तंत ग्रीनलँड ग्रीष्म वेळ"}\r
+            lg{"अस्तंत ग्रीनलँड वेळ"}\r
+            ls{"अस्तंत ग्रीनलँड प्रमाणित वेळ"}\r
+        }\r
+        "meta:Guyana"{\r
+            ls{"गुयाना वेळ"}\r
+        }\r
+        "meta:Hawaii_Aleutian"{\r
+            ld{"हवाई-अलेयुशिन डेलायट वेळ"}\r
+            lg{"हवाई-अलेयुशिन वेळ"}\r
+            ls{"हवाई-अलेयुशिन प्रमाणित वेळ"}\r
+        }\r
         "meta:India"{\r
             ls{"भारतीय समय"}\r
             ss{"IST"}\r
         }\r
+        "meta:Mexico_Northwest"{\r
+            ld{"वायव्य मेक्सिको डेलायट वेळ"}\r
+            lg{"वायव्य मेक्सिको वेळ"}\r
+            ls{"वायव्य मेक्सिको प्रमाणित वेळ"}\r
+        }\r
+        "meta:Mexico_Pacific"{\r
+            ld{"मेक्सिकन प्रशांत डेलायट वेळ"}\r
+            lg{"मेक्सिकन प्रशांत वेळ"}\r
+            ls{"मेक्सिकन प्रशांत प्रमाणित वेळ"}\r
+        }\r
+        "meta:Newfoundland"{\r
+            ld{"न्युफावंडलँड डेलायट वेळ"}\r
+            lg{"न्युफावंडलँड वेळ"}\r
+            ls{"न्युफावंडलँड प्रमाणित वेळ"}\r
+        }\r
+        "meta:Noronha"{\r
+            ld{"Vote फर्नांडो दी नोरोन्हा ग्रीष्म वेळ"}\r
+            lg{"फर्नांडो दी नोरोन्हा वेळ"}\r
+            ls{"फर्नांडो दी नोरोन्हा प्रमाणित वेळ"}\r
+        }\r
+        "meta:Paraguay"{\r
+            ld{"परागुआ ग्रीष्म वेळ"}\r
+            lg{"परागुआ वेळ"}\r
+            ls{"परागुआ प्रमाणित वेळ"}\r
+        }\r
+        "meta:Peru"{\r
+            ld{"पेरू ग्रीष्म वेळ"}\r
+            lg{"पेरू वेळ"}\r
+            ls{"पेरू प्रमाणित वेळ"}\r
+        }\r
+        "meta:Pierre_Miquelon"{\r
+            ld{"सेंट पियर आनी मिकलान डेलायट वेळ"}\r
+            lg{"सेंट पियर आनी मिकलान वेळ"}\r
+            ls{"सेंट पियर आनी मिकलान प्रमाणित वेळ"}\r
+        }\r
+        "meta:South_Georgia"{\r
+            ls{"दक्षिण जॉर्जिया वेळ"}\r
+        }\r
+        "meta:Suriname"{\r
+            ls{"सुरिनाम वेळ"}\r
+        }\r
+        "meta:Uruguay"{\r
+            ld{"उरुग्वे ग्रीष्म वेळ"}\r
+            lg{"उरुग्वे वेळ"}\r
+            ls{"उरुग्वे प्रमाणित वेळ"}\r
+        }\r
+        "meta:Venezuela"{\r
+            ls{"वेनेझुएला वेळ"}\r
+        }\r
+        fallbackFormat{"{1} ({0})"}\r
+        gmtFormat{"GMT{0}"}\r
+        gmtZeroFormat{"GMT"}\r
+        hourFormat{"+HH:mm;-HH:mm"}\r
+        regionFormat{"{0} वेळ"}\r
+        regionFormatDaylight{"{0} डेलायट वेळ"}\r
+        regionFormatStandard{"{0} प्रमाणित वेळ"}\r
     }\r
 }\r
index 27b782fb66beca48a3ab05bf9bb3588ef39f8b28..df0808137b9cf8ff3a1d3ba8d169f57fdd945dc1 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 ks{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.41.34"}\r
     zoneStrings{\r
         "Africa:Abidjan"{\r
             ec{"عابِدجان"}\r
index 11772ae009b9463cd5b3b903810fb7319c1c6db8..ddf6af998e7e382619b5f974009b872c17d6da9d 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 ksh{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.41.34"}\r
     zoneStrings{\r
         "Africa:Cairo"{\r
             ec{"Kaijro"}\r
diff --git a/source/data/zone/ku.txt b/source/data/zone/ku.txt
new file mode 100644 (file)
index 0000000..38409ee
--- /dev/null
@@ -0,0 +1,5 @@
+// © 2016 and later: Unicode, Inc. and others.\r
+// License & terms of use: http://www.unicode.org/copyright.html#License\r
+ku{\r
+    Version{"2.1.44.82"}\r
+}\r
index dd763abe88eabb38ba01ad51fdad640ec8baef1c..9fa7cddb58169e05580f69952f1b1e64d960e52f 100644 (file)
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 kw{\r
-    Version{"2.1.38.69"}\r
+    Version{"2.1.43.65"}\r
 }\r
index e4c7c10c710e15a6e8df054862cf8301629d904d..3b00290d1fb55270437983286e2a45f8a0a3a697 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 ky{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.65"}\r
     zoneStrings{\r
         "Africa:Abidjan"{\r
             ec{"Абиджан"}\r
@@ -487,7 +487,7 @@ ky{
             ec{"Панама"}\r
         }\r
         "America:Pangnirtung"{\r
-            ec{"Пангиртуӊ"}\r
+            ec{"Пангиртуң"}\r
         }\r
         "America:Paramaribo"{\r
             ec{"Парамарибо"}\r
@@ -763,7 +763,7 @@ ky{
             ec{"Куала Лумпур"}\r
         }\r
         "Asia:Kuching"{\r
-            ec{"Кучиӊ"}\r
+            ec{"Кучиң"}\r
         }\r
         "Asia:Kuwait"{\r
             ec{"Кувейт"}\r
@@ -1516,7 +1516,7 @@ ky{
             ls{"Француз Түштүгү жана Антарктика убактысы"}\r
         }\r
         "meta:GMT"{\r
-            ls{"GMT, кышкы убакыты"}\r
+            ls{"Гринвич боюнча орточо убакыт"}\r
         }\r
         "meta:Galapagos"{\r
             ls{"Галапагос убактысы"}\r
@@ -1543,7 +1543,7 @@ ky{
             ls{"Батыш Гренландия кышкы убактысы"}\r
         }\r
         "meta:Gulf"{\r
-            ls{"Ð\9fеÑ\80Ñ\81иÑ\8f Ð±Ñ\83лÑ\83Ò£Ñ\83нÑ\83н Ð¶Ð°Ð¹ÐºÑ\8b убакыты"}\r
+            ls{"Ð\91Ñ\83лÑ\83ңдÑ\83н Ñ\81Ñ\82андаÑ\80Ñ\82Ñ\82Ñ\8bк убакыты"}\r
         }\r
         "meta:Guyana"{\r
             ls{"Гвиана убактысы"}\r
@@ -1689,14 +1689,14 @@ ky{
             ls{"Непал убактысы"}\r
         }\r
         "meta:New_Caledonia"{\r
-            ld{"Жаӊы Каледония жайкы убактысы"}\r
-            lg{"Жаӊы Каледония убактысы"}\r
-            ls{"Жаӊы Каледония кышкы убакыты"}\r
+            ld{"Жаңы Каледония жайкы убактысы"}\r
+            lg{"Жаңы Каледония убактысы"}\r
+            ls{"Жаңы Каледония кышкы убакыты"}\r
         }\r
         "meta:New_Zealand"{\r
             ld{"Жаңы Зеландия жайкы убакыты"}\r
-            lg{"Жаӊы Зеландия убактысы"}\r
-            ls{"Жаӊы Зеландия кышкы убакыты"}\r
+            lg{"Жаңы Зеландия убактысы"}\r
+            ls{"Жаңы Зеландия кышкы убакыты"}\r
         }\r
         "meta:Newfoundland"{\r
             ld{"Нюфаундлэнд жайкы убактысы"}\r
@@ -1733,7 +1733,7 @@ ky{
             ls{"Палау убактысы"}\r
         }\r
         "meta:Papua_New_Guinea"{\r
-            ls{"Ð\9fапÑ\83а-Ð\96аңÑ\8b Ð\93винеÑ\8f Ñ\83бакÑ\82Ñ\8bÑ\81ы"}\r
+            ls{"Ð\9fапÑ\83а-Ð\96аңÑ\8b Ð\93винеÑ\8f Ñ\83бакÑ\8bÑ\82ы"}\r
         }\r
         "meta:Paraguay"{\r
             ld{"Парагвай жайкы убактысы"}\r
index 3ffa4248e1585cb2de4bd415e47cb0cb8cb6a9c2..962584cd6c705488bf269080d58f71a8dc9e1072 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 lb{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.91"}\r
     zoneStrings{\r
         "Africa:Accra"{\r
             ec{"Accra"}\r
index 481cc4f2a7bc9053ab2ce34b3584c02317b45428..91f73dabc3b31f124b5285a4cb37d88bb640a26e 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 lo{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.50"}\r
     zoneStrings{\r
         "Africa:Abidjan"{\r
             ec{"ອາບິດແຈນ"}\r
index 62e441784095c17cb49088642b0c8e8a6353b823..3e15fd038e742e1a1e14ba783a9b86234418eb96 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 lrc{\r
-    Version{"2.1.38.69"}\r
+    Version{"2.1.43.65"}\r
     zoneStrings{\r
         "Etc:Unknown"{\r
             ec{"نادیار"}\r
index bc484e517f7a01a5a56c70057b6c3116571d262f..aba95f3b757326722771a44e953a3473683f731a 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 lt{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.91"}\r
     zoneStrings{\r
         "Africa:Abidjan"{\r
             ec{"Abidžanas"}\r
index 153ccddc2ccd061caaabfe244630db1a68d5f170..c36d671e2e7ebe434369d01209be770791e5cd89 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 lv{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.91"}\r
     zoneStrings{\r
         "Africa:Abidjan"{\r
             ec{"Abidžana"}\r
index cb140716d4a37a6ec0c3c7cac955340270b5f37c..96b4157d15e92815a6f3017a91a5f36b40a2fb09 100644 (file)
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 mg{\r
-    Version{"2.1.39.11"}\r
+    Version{"2.1.43.94"}\r
 }\r
diff --git a/source/data/zone/mi.txt b/source/data/zone/mi.txt
new file mode 100644 (file)
index 0000000..03a546f
--- /dev/null
@@ -0,0 +1,195 @@
+// © 2016 and later: Unicode, Inc. and others.\r
+// License & terms of use: http://www.unicode.org/copyright.html#License\r
+mi{\r
+    Version{"2.1.44.15"}\r
+    zoneStrings{\r
+        "America:Araguaina"{\r
+            ec{"Araguaina"}\r
+        }\r
+        "America:Argentina:La_Rioja"{\r
+            ec{"La Rioja"}\r
+        }\r
+        "America:Argentina:Rio_Gallegos"{\r
+            ec{"Rio Gallegos"}\r
+        }\r
+        "America:Argentina:Salta"{\r
+            ec{"Salta"}\r
+        }\r
+        "America:Argentina:San_Juan"{\r
+            ec{"San Juan"}\r
+        }\r
+        "America:Argentina:San_Luis"{\r
+            ec{"San Luis"}\r
+        }\r
+        "America:Argentina:Tucuman"{\r
+            ec{"Tucuman"}\r
+        }\r
+        "America:Argentina:Ushuaia"{\r
+            ec{"Ushuaia"}\r
+        }\r
+        "America:Asuncion"{\r
+            ec{"Asuncion"}\r
+        }\r
+        "America:Bahia"{\r
+            ec{"Bahia"}\r
+        }\r
+        "America:Belem"{\r
+            ec{"Belem"}\r
+        }\r
+        "America:Boa_Vista"{\r
+            ec{"Boa Vista"}\r
+        }\r
+        "America:Bogota"{\r
+            ec{"Bogota"}\r
+        }\r
+        "America:Buenos_Aires"{\r
+            ec{"Buenos Aires"}\r
+        }\r
+        "America:Campo_Grande"{\r
+            ec{"Campo Grande"}\r
+        }\r
+        "America:Caracas"{\r
+            ec{"Caracas"}\r
+        }\r
+        "America:Catamarca"{\r
+            ec{"Catamarca"}\r
+        }\r
+        "America:Cayenne"{\r
+            ec{"Cayenne"}\r
+        }\r
+        "America:Cordoba"{\r
+            ec{"Cordoba"}\r
+        }\r
+        "America:Cuiaba"{\r
+            ec{"Cuiaba"}\r
+        }\r
+        "America:Eirunepe"{\r
+            ec{"Eirunepe"}\r
+        }\r
+        "America:Fortaleza"{\r
+            ec{"Fortaleza"}\r
+        }\r
+        "America:Guayaquil"{\r
+            ec{"Guayaquil"}\r
+        }\r
+        "America:Guyana"{\r
+            ec{"Guyana"}\r
+        }\r
+        "America:Jujuy"{\r
+            ec{"Jujuy"}\r
+        }\r
+        "America:La_Paz"{\r
+            ec{"La Paz"}\r
+        }\r
+        "America:Lima"{\r
+            ec{"Lima"}\r
+        }\r
+        "America:Maceio"{\r
+            ec{"Maceio"}\r
+        }\r
+        "America:Manaus"{\r
+            ec{"Manaus"}\r
+        }\r
+        "America:Mendoza"{\r
+            ec{"Mendoza"}\r
+        }\r
+        "America:Montevideo"{\r
+            ec{"Montevideo"}\r
+        }\r
+        "America:Noronha"{\r
+            ec{"Noronha"}\r
+        }\r
+        "America:Paramaribo"{\r
+            ec{"Paramaribo"}\r
+        }\r
+        "America:Porto_Velho"{\r
+            ec{"Porto Velho"}\r
+        }\r
+        "America:Recife"{\r
+            ec{"Recife"}\r
+        }\r
+        "America:Rio_Branco"{\r
+            ec{"Rio Branco"}\r
+        }\r
+        "America:Santarem"{\r
+            ec{"Santarem"}\r
+        }\r
+        "America:Santiago"{\r
+            ec{"Santiago"}\r
+        }\r
+        "America:Sao_Paulo"{\r
+            ec{"Sao Paulo"}\r
+        }\r
+        "Atlantic:Stanley"{\r
+            ec{"Stanley"}\r
+        }\r
+        "Etc:UTC"{\r
+            ls{"Wā Aonui Kōtuitui"}\r
+        }\r
+        "Etc:Unknown"{\r
+            ec{"Tāone Tē Mōhiotia"}\r
+        }\r
+        "Pacific:Auckland"{\r
+            ec{"Tāmaki Makaurau"}\r
+        }\r
+        "Pacific:Chatham"{\r
+            ec{"Rēkohu"}\r
+        }\r
+        "Pacific:Easter"{\r
+            ec{"Easter"}\r
+        }\r
+        "Pacific:Galapagos"{\r
+            ec{"Galapagos"}\r
+        }\r
+        "meta:America_Central"{\r
+            ld{"Wā Awatea Waenga"}\r
+            lg{"Wā Waenga"}\r
+            ls{"Wā Arowhānui Waenga"}\r
+        }\r
+        "meta:America_Eastern"{\r
+            ld{"Wā Awatea Rāwhiti"}\r
+            lg{"Wā Rāwhiti"}\r
+            ls{"Wā Arowhānui Rāwhiti"}\r
+        }\r
+        "meta:America_Mountain"{\r
+            ld{"Wā Awatea Maunga"}\r
+            lg{"Wā Maunga"}\r
+            ls{"Wā Arowhānui Maunga"}\r
+        }\r
+        "meta:America_Pacific"{\r
+            ld{"Wā Awatea Kiwa"}\r
+            lg{"Wā Kiwa"}\r
+            ls{"Wā Arowhānui Kiwa"}\r
+        }\r
+        "meta:Atlantic"{\r
+            ld{"Wā Awatea Ranatiki"}\r
+            lg{"Wā Ranatiki"}\r
+            ls{"Wā Arowhānui Ranatiki"}\r
+        }\r
+        "meta:Europe_Central"{\r
+            ld{"Wā Raumati Uropi Waenga"}\r
+            lg{"Wā Uropi Waenga"}\r
+            ls{"Wā Arowhānui Uropi Waenga"}\r
+        }\r
+        "meta:Europe_Eastern"{\r
+            ld{"Wā Raumati Uropi Rāwhiti"}\r
+            lg{"Wā Uropi Rāwhiti"}\r
+            ls{"Wā Arowhānui Uropi Rāwhiti"}\r
+        }\r
+        "meta:Europe_Western"{\r
+            ld{"Wā Raumati Uropi Uru"}\r
+            lg{"Wā Uropi Uru"}\r
+            ls{"Wā Arowhānui Uropi Uru"}\r
+        }\r
+        "meta:GMT"{\r
+            ls{"Wā Toharite Greenwich"}\r
+        }\r
+        fallbackFormat{"{1} ({0})"}\r
+        gmtFormat{"GMT{0}"}\r
+        gmtZeroFormat{"GMT"}\r
+        hourFormat{"+HH:mm;-HH:mm"}\r
+        regionFormat{"{0}"}\r
+        regionFormatDaylight{"{0} (+1)"}\r
+        regionFormatStandard{"{0} (+0)"}\r
+    }\r
+}\r
index e0e66a6e3c4136a350883343306212189827efcf..85f3a635e9eee4a23cae80b4f05f589a8a4f0f2d 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 mk{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.65"}\r
     zoneStrings{\r
         "Africa:Abidjan"{\r
             ec{"Абиџан"}\r
index 9ef63ce47a4312746185660736c70514444a89d7..9977b664302e7cc80234535c6e58f3528bca2643 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 ml{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.50"}\r
     zoneStrings{\r
         "Africa:Abidjan"{\r
             ec{"അബിദ്‌ജാൻ‌"}\r
index 87e63b6fe0cf3e0eb0e247f0c3cf711db19f4c51..92b153f057eab46ea4ca506081ea16c66c86770e 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 mn{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.94"}\r
     zoneStrings{\r
         "Africa:Abidjan"{\r
             ec{"Абижан"}\r
@@ -1882,8 +1882,8 @@ mn{
         gmtFormat{"GMT{0}"}\r
         gmtZeroFormat{"GMT"}\r
         hourFormat{"+HH:mm;-HH:mm"}\r
-        regionFormat{"{0} цаг"}\r
-        regionFormatDaylight{"{0} зуны цаг"}\r
-        regionFormatStandard{"{0} стандарт цаг"}\r
+        regionFormat{"{0} цаг"}\r
+        regionFormatDaylight{"{0} зуны цаг"}\r
+        regionFormatStandard{"{0} стандарт цаг"}\r
     }\r
 }\r
index 4ebcb8d336435b318f22a93bc93b8354e423f1e3..3f29875f7f1be589d6ec629785996db1b02a820f 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 mr{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.65"}\r
     zoneStrings{\r
         "Africa:Abidjan"{\r
             ec{"अबिद्जान"}\r
index 772e8bab24f5f13e1db3a885840f2ad483d1d6ed..a64750225dc0029a1311c463346a30bee1632f36 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 ms{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.91"}\r
     zoneStrings{\r
         "Africa:Abidjan"{\r
             ec{"Abidjan"}\r
index 9a793a928719043ac97de94acaffe4ce95880242..93a536e9b7cb14784ea25f82e182033168ccacb4 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 mt{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.94"}\r
     zoneStrings{\r
         "Africa:Abidjan"{\r
             ec{"Abidjan"}\r
index 84f6c7029939dfcffc2513f33eecd0540b379007..308aa25344511d2835a6a53d2e93dc86e418928c 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 my{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.88"}\r
     zoneStrings{\r
         "Africa:Abidjan"{\r
             ec{"အာဘီဂျန်"}\r
@@ -52,7 +52,7 @@ my{
             ec{"ကိုနာကရီး"}\r
         }\r
         "Africa:Dakar"{\r
-            ec{"á\80\92á\80\80á\80¹ကား"}\r
+            ec{"á\80\92á\80\80á\80ºကား"}\r
         }\r
         "Africa:Dar_es_Salaam"{\r
             ec{"ဒါရက်စ်ဆာလမ်"}\r
@@ -160,7 +160,7 @@ my{
             ec{"ဗင်းဟူးခ်"}\r
         }\r
         "America:Adak"{\r
-            ec{"á\80¡á\80¬á\80\92á\80\81á\80º"}\r
+            ec{"á\80¡á\80¬á\80\92á\80\81á\80»"}\r
         }\r
         "America:Anchorage"{\r
             ec{"အန်ကာရေ့ဂျ်"}\r
@@ -244,7 +244,7 @@ my{
             ec{"ကာရာကာစ်"}\r
         }\r
         "America:Catamarca"{\r
-            ec{"á\80\80á\80¬á\80\90á\80¬á\80\99á\80¬á\80\9bá\80ºကာ"}\r
+            ec{"á\80\80á\80¬á\80\90á\80¬á\80\99á\80¬á\80\9bá\80»ကာ"}\r
         }\r
         "America:Cayenne"{\r
             ec{"ကေညင်န်"}\r
@@ -406,7 +406,7 @@ my{
             ec{"လိုအာပရင့်စ် ကွာတာ"}\r
         }\r
         "America:Maceio"{\r
-            ec{"á\80\99á\80¬á\80\86á\80²á\80\9eá\80¼ာ"}\r
+            ec{"á\80\99á\80¬á\80\86á\80²á\80\9eá\80½ာ"}\r
         }\r
         "America:Managua"{\r
             ec{"မာနာဂွါ"}\r
@@ -439,7 +439,7 @@ my{
             ec{"မက်တ်လာကက်လာ"}\r
         }\r
         "America:Mexico_City"{\r
-            ec{"á\80\99á\80\80á\80¹ကဆီကို စီးတီး"}\r
+            ec{"á\80\99á\80\80á\80ºကဆီကို စီးတီး"}\r
         }\r
         "America:Miquelon"{\r
             ec{"မီကွီလွန်"}\r
@@ -655,7 +655,7 @@ my{
             ec{"အက်တာဥု"}\r
         }\r
         "Asia:Aqtobe"{\r
-            ec{"á\80¡á\80¬á\80\81á\80ºတူးဘီ"}\r
+            ec{"á\80¡á\80¬á\80\81á\80»တူးဘီ"}\r
         }\r
         "Asia:Ashgabat"{\r
             ec{"အာရှ်ဂါဘာဒ်"}\r
@@ -688,7 +688,7 @@ my{
             ec{"ဘရူနိုင်း"}\r
         }\r
         "Asia:Calcutta"{\r
-            ec{"á\80\80á\80­á\80¯á\80\9cá\80ºá\80\80á\80\90á\80¹တား"}\r
+            ec{"á\80\80á\80­á\80¯á\80\9cá\80»á\80\80á\80\90á\80ºတား"}\r
         }\r
         "Asia:Chita"{\r
             ec{"ချီတာ"}\r
@@ -703,7 +703,7 @@ my{
             ec{"ဒမားစကပ်"}\r
         }\r
         "Asia:Dhaka"{\r
-            ec{"á\80\92á\80\80á\80¹ကာ"}\r
+            ec{"á\80\92á\80\80á\80ºကာ"}\r
         }\r
         "Asia:Dili"{\r
             ec{"ဒစ်လီ"}\r
@@ -727,7 +727,7 @@ my{
             ec{"ဟောင်ကောင်"}\r
         }\r
         "Asia:Hovd"{\r
-            ec{"á\80\9fá\80­á\80¯á\80¸á\80\97á\80º"}\r
+            ec{"á\80\9fá\80­á\80¯á\80¸á\80\97á\80»"}\r
         }\r
         "Asia:Irkutsk"{\r
             ec{"အီရူခူတ်"}\r
@@ -742,7 +742,7 @@ my{
             ec{"ဂျေရုဆလင်"}\r
         }\r
         "Asia:Kabul"{\r
-            ec{"á\80\80á\80\98á\80°á\80¸á\80\9cá\80º"}\r
+            ec{"á\80\80á\80\98á\80°á\80¸á\80\9cá\80»"}\r
         }\r
         "Asia:Kamchatka"{\r
             ec{"ခမ်ချာ့ခါ"}\r
@@ -751,7 +751,7 @@ my{
             ec{"ကရာချိ"}\r
         }\r
         "Asia:Katmandu"{\r
-            ec{"á\80\81á\80\90á\80¹á\80\90á\80\99á\80\94á\80¹ဒူ"}\r
+            ec{"á\80\81á\80\90á\80ºá\80\90á\80\99á\80\94á\80ºဒူ"}\r
         }\r
         "Asia:Khandyga"{\r
             ec{"ခန်ဒိုင်ဂါ"}\r
index e4db4350bf36950178a05cae6be87f7b59b7dfc3..b72af3408af16077209ba85eec78b8027c4b8537 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 mzn{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.41.34"}\r
     zoneStrings{\r
         fallbackFormat{"{1} ({0})"}\r
         gmtFormat{"GMT{0}"}\r
index 9966d0806beaff6c0b9fb3bdb38a865eb8a56fcb..33668b73f06cdf406f50ee50d93ed0911b00f6c0 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 nb{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.2"}\r
     zoneStrings{\r
         "Africa:Abidjan"{\r
             ec{"Abidjan"}\r
index e9cea0d0d0a1689e167e4920a05de4e57f16c252..9e8a128cb07698b8f6a848250b64d3cc8e505fae 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 ne{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.50"}\r
     zoneStrings{\r
         "Africa:Abidjan"{\r
             ec{"अविड्जान"}\r
index a23f844382fb5f87021d8a996bec3c9a8687c2ee..3d1ad2a29ca134abb41ca080cdcad5d291f5ae4c 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 nl{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.45.14"}\r
     zoneStrings{\r
         "Africa:Abidjan"{\r
             ec{"Abidjan"}\r
@@ -953,6 +953,7 @@ nl{
         }\r
         "Etc:UTC"{\r
             ls{"Gecoördineerde wereldtijd"}\r
+            ss{"UTC"}\r
         }\r
         "Etc:Unknown"{\r
             ec{"onbekende stad"}\r
index 896ceee9dea7313e3a4f73a93a184778d7964562..1c1da14d8bf14f0053441ed8240366b673d141c6 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 nn{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.94"}\r
     zoneStrings{\r
         "Africa:Abidjan"{\r
             ec{"Abidjan"}\r
index 98a6fa63440c04848e75b903dde208dd11c82daf..82f573756300f9b4514d373761727dade097ed9a 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 om{\r
-    Version{"2.1.38.69"}\r
+    Version{"2.1.43.94"}\r
     zoneStrings{\r
         gmtFormat{"GMT{0}"}\r
         hourFormat{"+HH:mm;-HH:mm"}\r
index e9408e68b7844b661ede40ea5fc22a9d141e989d..5df35f18aa90430190295007168f80147c791e42 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 or{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.65"}\r
     zoneStrings{\r
         "Africa:Abidjan"{\r
             ec{"ଆବିଦଜାନ"}\r
index 39de4f806bc11c5448e81c6985adbedfc3fdd17c..31184207d89e67362c565259858f17dab26e50f7 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 pa{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.65"}\r
     zoneStrings{\r
         "Africa:Abidjan"{\r
             ec{"ਅਬੀਦਜਾਨ"}\r
index 1f25aaf59ae4af626e5f7fda3b9975027a483fea..d4faa44cba40cc25c05255b4325fddd8d84e67a4 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 pl{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.50"}\r
     zoneStrings{\r
         "Africa:Abidjan"{\r
             ec{"Abidżan"}\r
@@ -1578,7 +1578,7 @@ pl{
             ls{"Kobdo (czas standardowy)"}\r
         }\r
         "meta:India"{\r
-            ls{"czas indyjski"}\r
+            ls{"czas indyjski standardowy"}\r
         }\r
         "meta:Indian_Ocean"{\r
             ls{"Ocean Indyjski"}\r
@@ -1694,9 +1694,9 @@ pl{
             ls{"Ułan Bator (czas standardowy)"}\r
         }\r
         "meta:Moscow"{\r
-            ld{"czas moskiewski letni"}\r
-            lg{"czas moskiewski"}\r
-            ls{"czas moskiewski standardowy"}\r
+            ld{"Moskwa (letni)"}\r
+            lg{"Moskwa"}\r
+            ls{"Moskwa (standardowy)"}\r
         }\r
         "meta:Myanmar"{\r
             ls{"Mjanma"}\r
index dcbba3f91eeb5b01cd92dddc597c808a8bd06c81..efd4ba3066ccf75cb9089cc87e9b3c6dde0c7236 100644 (file)
Binary files a/source/data/zone/pool.res and b/source/data/zone/pool.res differ
index 2780e531f1cffd88226f17f276b7c90e7be6ce87..ec379e937a5c41b0da96d95ed770f0451105726f 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 ps{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.94"}\r
     zoneStrings{\r
         "Africa:Abidjan"{\r
             ec{"ابيجان"}\r
@@ -105,9 +105,15 @@ ps{
         "Africa:Malabo"{\r
             ec{"مالابو"}\r
         }\r
+        "Africa:Maputo"{\r
+            ec{"ماپوټو"}\r
+        }\r
         "Africa:Maseru"{\r
             ec{"مسرو"}\r
         }\r
+        "Africa:Mbabane"{\r
+            ec{"Mbabane"}\r
+        }\r
         "Africa:Mogadishu"{\r
             ec{"موگديشو"}\r
         }\r
@@ -117,6 +123,9 @@ ps{
         "Africa:Nairobi"{\r
             ec{"نايروبي"}\r
         }\r
+        "Africa:Ndjamena"{\r
+            ec{"نجامینا"}\r
+        }\r
         "Africa:Niamey"{\r
             ec{"نیمي"}\r
         }\r
@@ -258,6 +267,9 @@ ps{
         "America:Curacao"{\r
             ec{"کیکاو"}\r
         }\r
+        "America:Danmarkshavn"{\r
+            ec{"ډنمارک هاربر"}\r
+        }\r
         "America:Dawson"{\r
             ec{"داوسن"}\r
         }\r
@@ -327,6 +339,9 @@ ps{
         "America:Indiana:Marengo"{\r
             ec{"مارینګ، انډیانا"}\r
         }\r
+        "America:Indiana:Petersburg"{\r
+            ec{"پیتربورګ، انډيانا"}\r
+        }\r
         "America:Indiana:Tell_City"{\r
             ec{"ښار، انډیا ته ووایی"}\r
         }\r
@@ -441,6 +456,15 @@ ps{
         "America:Noronha"{\r
             ec{"نورونها"}\r
         }\r
+        "America:North_Dakota:Beulah"{\r
+            ec{"بيلاه، شمالي داکوتا"}\r
+        }\r
+        "America:North_Dakota:Center"{\r
+            ec{"مرکز، د شمالي ټاپو"}\r
+        }\r
+        "America:North_Dakota:New_Salem"{\r
+            ec{"نوی سلیم، شمالي داکوتا"}\r
+        }\r
         "America:Ojinaga"{\r
             ec{"اوجنګا"}\r
         }\r
@@ -501,6 +525,9 @@ ps{
         "America:Sao_Paulo"{\r
             ec{"ساو پاولو"}\r
         }\r
+        "America:Scoresbysund"{\r
+            ec{"Ittoqqortoormiit"}\r
+        }\r
         "America:Sitka"{\r
             ec{"سیټکا"}\r
         }\r
@@ -600,6 +627,9 @@ ps{
         "Asia:Amman"{\r
             ec{"اممان"}\r
         }\r
+        "Asia:Anadyr"{\r
+            ec{"اناډير"}\r
+        }\r
         "Asia:Aqtau"{\r
             ec{"اکاټو"}\r
         }\r
@@ -642,6 +672,9 @@ ps{
         "Asia:Chita"{\r
             ec{"چيتا"}\r
         }\r
+        "Asia:Choibalsan"{\r
+            ec{"Choibalsan"}\r
+        }\r
         "Asia:Colombo"{\r
             ec{"کولمبو"}\r
         }\r
@@ -807,6 +840,9 @@ ps{
         "Asia:Ulaanbaatar"{\r
             ec{"اللانبیر"}\r
         }\r
+        "Asia:Urumqi"{\r
+            ec{"Urumqi"}\r
+        }\r
         "Asia:Ust-Nera"{\r
             ec{"اوسترا"}\r
         }\r
@@ -900,6 +936,9 @@ ps{
         "Europe:Andorra"{\r
             ec{"اندورا"}\r
         }\r
+        "Europe:Astrakhan"{\r
+            ec{"آسترخان"}\r
+        }\r
         "Europe:Athens"{\r
             ec{"ایترین"}\r
         }\r
@@ -1031,6 +1070,12 @@ ps{
         "Europe:Stockholm"{\r
             ec{"استولوم"}\r
         }\r
+        "Europe:Tallinn"{\r
+            ec{"تالين"}\r
+        }\r
+        "Europe:Tirane"{\r
+            ec{"Tirane"}\r
+        }\r
         "Europe:Ulyanovsk"{\r
             ec{"ایلیانوفس"}\r
         }\r
@@ -1163,6 +1208,9 @@ ps{
         "Pacific:Palau"{\r
             ec{"پلو"}\r
         }\r
+        "Pacific:Pitcairn"{\r
+            ec{"Pitcairn"}\r
+        }\r
         "Pacific:Ponape"{\r
             ec{"پونپي"}\r
         }\r
@@ -1324,6 +1372,9 @@ ps{
             lg{"کیپ وردډ وخت"}\r
             ls{"کیپ وردډ معياري وخت"}\r
         }\r
+        "meta:Chamorro"{\r
+            ls{"چمارو معياري وخت"}\r
+        }\r
         "meta:Chatham"{\r
             ld{"د چتام ورځی وخت"}\r
             lg{"چامام وخت"}\r
@@ -1383,7 +1434,7 @@ ps{
             ls{"د اکوادور وخت"}\r
         }\r
         "meta:Europe_Central"{\r
-            ld{"د مرکزي اروپا د اوړي وخت"}\r
+            ld{"وسطي اروپايي د اوړي وخت"}\r
             lg{"منځنۍ اروپا وخت"}\r
             ls{"د مرکزي اروپا معیاري وخت"}\r
         }\r
@@ -1420,6 +1471,11 @@ ps{
         "meta:Gambier"{\r
             ls{"د ګیمبریر وخت"}\r
         }\r
+        "meta:Georgia"{\r
+            ld{"د جورجيا د اوړي وخت"}\r
+            lg{"جورجیا وخت"}\r
+            ls{"جورجیا معیاري وخت"}\r
+        }\r
         "meta:Gilbert_Islands"{\r
             ls{"د ګیلبرټ جزیره وخت"}\r
         }\r
@@ -1693,7 +1749,7 @@ ps{
             ls{"ټیټيټي وخت"}\r
         }\r
         "meta:Taipei"{\r
-            ld{"تاپÙ\8a Ø¯ Ù\88رÚ\81Û\90 Ø¯ Ø±Ú¼Ø§ وخت"}\r
+            ld{"د ØªØ§Ù¾Ù\8a Ø¯ Ø±Ú¼Ø§ Ù\88رÚ\81Û\8d وخت"}\r
             lg{"تاپي وخت"}\r
             ls{"تاپي معياري وخت"}\r
         }\r
@@ -1716,6 +1772,9 @@ ps{
             lg{"ترکمانستان وخت"}\r
             ls{"ترکمنستان معياري وخت"}\r
         }\r
+        "meta:Tuvalu"{\r
+            ls{"د تووالو وخت"}\r
+        }\r
         "meta:Uruguay"{\r
             ld{"یوروګوای اوړي وخت"}\r
             lg{"یوروګوای وخت"}\r
@@ -1740,25 +1799,28 @@ ps{
             ls{"ولادیوستکو معياري وخت"}\r
         }\r
         "meta:Volgograd"{\r
-            ld{"د ولگګراډ سمر وخت"}\r
-            lg{"د ولګاجرا وخت"}\r
-            ls{"دګګراډر معياري وخت"}\r
+            ld{"د والګوګراد د اوړي وخت"}\r
+            lg{"د والګوګراد وخت"}\r
+            ls{"د والګوګراد معياري وخت"}\r
         }\r
         "meta:Vostok"{\r
             ls{"د واستوک وخت"}\r
         }\r
+        "meta:Wake"{\r
+            ls{"دک ټاپو وخت"}\r
+        }\r
         "meta:Wallis"{\r
             ls{"والیس او فوتونا وخت"}\r
         }\r
         "meta:Yakutsk"{\r
-            ld{"داککوسک سمر وخت"}\r
-            lg{"داککوس وخت"}\r
-            ls{"داککوسک معياري وخت"}\r
+            ld{"ياکوټسک د اوړي وخت"}\r
+            lg{"ياکوټسک وخت"}\r
+            ls{"ياکوټسک معياري وخت"}\r
         }\r
         "meta:Yekaterinburg"{\r
-            ld{"د یاراتینګینګ ګرم موسم"}\r
-            lg{"د یاراتینګینګ وخت"}\r
-            ls{"د یاراتینګینبرین معياري وخت"}\r
+            ld{"د ياکټرنبرګ د اوړي وخت"}\r
+            lg{"د ياکيټرنبرګ وخت"}\r
+            ls{"د ياکيټرنبرګ معياري وخت"}\r
         }\r
         fallbackFormat{"{1} ({0})"}\r
         gmtFormat{"GMT{0}"}\r
index 10c6556eb4dc99a4d1bd350bfcd19b42bbd5d177..7eebfd642af3db70f87edffae3fefb71999560e4 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 pt{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.65"}\r
     zoneStrings{\r
         "Africa:Abidjan"{\r
             ec{"Abidjan"}\r
@@ -904,7 +904,7 @@ pt{
             ec{"Madeira"}\r
         }\r
         "Atlantic:Reykjavik"{\r
-            ec{"Reiquiavique"}\r
+            ec{"Reykjavík"}\r
         }\r
         "Atlantic:South_Georgia"{\r
             ec{"Geórgia do Sul"}\r
index ee0d86eede80966e87400ad78768b0028694954e..c0a1cfff68de7a6bc51165a0183fc54e62c82a1e 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 pt_PT{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.9"}\r
     zoneStrings{\r
         "Africa:Addis_Ababa"{\r
             ec{"Adis-Abeba"}\r
@@ -144,6 +144,9 @@ pt_PT{
         "Atlantic:Faeroe"{\r
             ec{"Faroé"}\r
         }\r
+        "Atlantic:Reykjavik"{\r
+            ec{"Reiquiavique"}\r
+        }\r
         "Australia:Lord_Howe"{\r
             ec{"Ilha de Lord Howe"}\r
         }\r
@@ -265,7 +268,7 @@ pt_PT{
         }\r
         "meta:America_Mountain"{\r
             ld{"Hora de verão da Montanha"}\r
-            lg{"Hora de Montanha"}\r
+            lg{"Hora da Montanha"}\r
             ls{"Hora padrão da Montanha"}\r
         }\r
         "meta:America_Pacific"{\r
@@ -352,9 +355,9 @@ pt_PT{
             ss{"AZOT"}\r
         }\r
         "meta:Bangladesh"{\r
-            ld{"Hora de verão do Bangladesh"}\r
-            lg{"Hora do Bangladesh"}\r
-            ls{"Hora padrão do Bangladesh"}\r
+            ld{"Hora de verão do Bangladeche"}\r
+            lg{"Hora do Bangladeche"}\r
+            ls{"Hora padrão do Bangladeche"}\r
         }\r
         "meta:Bhutan"{\r
             ls{"Hora do Butão"}\r
index b8a25beb14955e575d2e8bdea0a22fc9a787a841..33a59b0ec45e384f3b8a2be4260931b170513049 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 qu{\r
-    Version{"2.1.38.72"}\r
+    Version{"2.1.43.94"}\r
     zoneStrings{\r
         "Africa:Abidjan"{\r
             ec{"Abidjan"}\r
index e8c34dd985f850e55ed9a6f54eab4122eaaa7192..b5d04a18e8953542a8c9415ee3eb3ba2b23c673a 100644 (file)
@@ -1,6 +1,6 @@
 # © 2016 and later: Unicode, Inc. and others.\r
 # License & terms of use: http://www.unicode.org/copyright.html#License\r
-ZONE_CLDR_VERSION = 33.1\r
+ZONE_CLDR_VERSION = 34\r
 # A list of txt's to build\r
 # Note:\r
 #\r
@@ -87,38 +87,39 @@ ZONE_SOURCE = af.txt agq.txt ak.txt am.txt\
  fur.txt fy.txt ga.txt gd.txt gl.txt\\r
  gsw.txt gu.txt guz.txt gv.txt ha.txt\\r
  haw.txt he.txt hi.txt hr.txt hsb.txt\\r
- hu.txt hy.txt id.txt ig.txt ii.txt\\r
- is.txt it.txt ja.txt jgo.txt jmc.txt\\r
- ka.txt kab.txt kam.txt kde.txt kea.txt\\r
- khq.txt ki.txt kk.txt kkj.txt kl.txt\\r
- kln.txt km.txt kn.txt ko.txt ko_KP.txt\\r
- kok.txt ks.txt ksb.txt ksf.txt ksh.txt\\r
- kw.txt ky.txt lag.txt lb.txt lg.txt\\r
- lkt.txt ln.txt lo.txt lrc.txt lt.txt\\r
- lu.txt luo.txt luy.txt lv.txt mas.txt\\r
- mer.txt mfe.txt mg.txt mgh.txt mgo.txt\\r
- mk.txt ml.txt mn.txt mr.txt ms.txt\\r
- mt.txt mua.txt my.txt mzn.txt naq.txt\\r
- nb.txt nd.txt nds.txt ne.txt ne_IN.txt\\r
- nl.txt nl_SR.txt nmg.txt nn.txt nnh.txt\\r
- nus.txt nyn.txt om.txt or.txt os.txt\\r
- pa.txt pa_Arab.txt pa_Guru.txt pl.txt ps.txt\\r
- pt.txt pt_AO.txt pt_CH.txt pt_CV.txt pt_GQ.txt\\r
- pt_GW.txt pt_LU.txt pt_MO.txt pt_MZ.txt pt_PT.txt\\r
- pt_ST.txt pt_TL.txt qu.txt qu_BO.txt qu_EC.txt\\r
- rm.txt rn.txt ro.txt rof.txt ru.txt\\r
- rw.txt rwk.txt sah.txt saq.txt sbp.txt\\r
+ hu.txt hy.txt ia.txt id.txt ig.txt\\r
+ ii.txt is.txt it.txt ja.txt jgo.txt\\r
+ jmc.txt jv.txt ka.txt kab.txt kam.txt\\r
+ kde.txt kea.txt khq.txt ki.txt kk.txt\\r
+ kkj.txt kl.txt kln.txt km.txt kn.txt\\r
+ ko.txt ko_KP.txt kok.txt ks.txt ksb.txt\\r
+ ksf.txt ksh.txt ku.txt kw.txt ky.txt\\r
+ lag.txt lb.txt lg.txt lkt.txt ln.txt\\r
+ lo.txt lrc.txt lt.txt lu.txt luo.txt\\r
+ luy.txt lv.txt mas.txt mer.txt mfe.txt\\r
+ mg.txt mgh.txt mgo.txt mi.txt mk.txt\\r
+ ml.txt mn.txt mr.txt ms.txt mt.txt\\r
+ mua.txt my.txt mzn.txt naq.txt nb.txt\\r
+ nd.txt nds.txt ne.txt ne_IN.txt nl.txt\\r
+ nl_SR.txt nmg.txt nn.txt nnh.txt nus.txt\\r
+ nyn.txt om.txt or.txt os.txt pa.txt\\r
+ pa_Arab.txt pa_Guru.txt pl.txt ps.txt pt.txt\\r
+ pt_AO.txt pt_CH.txt pt_CV.txt pt_GQ.txt pt_GW.txt\\r
+ pt_LU.txt pt_MO.txt pt_MZ.txt pt_PT.txt pt_ST.txt\\r
+ pt_TL.txt qu.txt qu_BO.txt qu_EC.txt rm.txt\\r
+ rn.txt ro.txt rof.txt ru.txt rw.txt\\r
+ rwk.txt sah.txt saq.txt sbp.txt sd.txt\\r
  se.txt se_FI.txt seh.txt ses.txt sg.txt\\r
  shi.txt shi_Latn.txt shi_Tfng.txt si.txt sk.txt\\r
  sl.txt smn.txt sn.txt so.txt sq.txt\\r
  sr.txt sr_Cyrl.txt sr_Latn.txt sv.txt sw.txt\\r
  ta.txt ta_MY.txt ta_SG.txt te.txt teo.txt\\r
- tg.txt th.txt ti.txt to.txt tr.txt\\r
- tt.txt twq.txt tzm.txt ug.txt uk.txt\\r
- ur.txt ur_IN.txt uz.txt uz_Arab.txt uz_Cyrl.txt\\r
- uz_Latn.txt vai.txt vai_Latn.txt vai_Vaii.txt vi.txt\\r
- vun.txt wae.txt wo.txt xog.txt yav.txt\\r
yi.txt yo.txt yue.txt yue_Hans.txt yue_Hant.txt\\r
zgh.txt zh.txt zh_Hans.txt zh_Hans_SG.txt zh_Hant.txt\\r
- zh_Hant_HK.txt zh_Hant_MO.txt zu.txt\r
+ tg.txt th.txt ti.txt tk.txt to.txt\\r
+ tr.txt tt.txt twq.txt tzm.txt ug.txt\\r
+ uk.txt ur.txt ur_IN.txt uz.txt uz_Arab.txt\\r
+ uz_Cyrl.txt uz_Latn.txt vai.txt vai_Latn.txt vai_Vaii.txt\\r
+ vi.txt vun.txt wae.txt wo.txt xh.txt\\r
xog.txt yav.txt yi.txt yo.txt yue.txt\\r
yue_Hans.txt yue_Hant.txt zgh.txt zh.txt zh_Hans.txt\\r
+ zh_Hans_SG.txt zh_Hant.txt zh_Hant_HK.txt zh_Hant_MO.txt zu.txt\r
 \r
index 4147d25b7c76351b633a421ffe79262786dcbdb9..d4aacb763d0ffc927482218635d374dfeb2ae6c3 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 rm{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.94"}\r
     zoneStrings{\r
         "Africa:Addis_Ababa"{\r
             ec{"Addis Abeba"}\r
index 5826124f0677da0e6f5a3f7a6d224fa2403f28ee..f7a1d2b7eaf8e1bf19893d3a3d4c9c6f2cfc5bcb 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 ro{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.94"}\r
     zoneStrings{\r
         "Africa:Abidjan"{\r
             ec{"Abidjan"}\r
index 781f97703abdb0a81b4d2bb6aad3621fee782ab2..57462dd6eecc88ef2693b3fee52872daded8d84f 100644 (file)
@@ -4,7 +4,7 @@
  * ICU <specials> source: <path>/common/main/root.xml\r
  */\r
 root{\r
-    Version{"2.1.41.58"}\r
+    Version{"2.1.44.91"}\r
     zoneStrings{\r
         "Africa:Asmera"{\r
             ec{"Asmara"}\r
index 3f6dc84dcfa3568f3eb457325eea20278a9b14cb..283e15357dd96d84ea5d5ad1622a4f13d1c97b8e 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 ru{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.45.15"}\r
     zoneStrings{\r
         "Africa:Abidjan"{\r
             ec{"Абиджан"}\r
@@ -250,7 +250,7 @@ ru{
             ec{"Кайенна"}\r
         }\r
         "America:Cayman"{\r
-            ec{"Ð\9aаймановÑ\8b Ð¾-ва"}\r
+            ec{"Ð\9eÑ\81Ñ\82Ñ\80ова Ð\9aайман"}\r
         }\r
         "America:Chicago"{\r
             ec{"Чикаго"}\r
@@ -1841,13 +1841,13 @@ ru{
             ls{"Самоа, стандартное время"}\r
         }\r
         "meta:Seychelles"{\r
-            ls{"СейÑ\88елÑ\8cÑ\81кие Ð¾строва"}\r
+            ls{"СейÑ\88елÑ\8cÑ\81кие Ð\9eстрова"}\r
         }\r
         "meta:Singapore"{\r
             ls{"Сингапур"}\r
         }\r
         "meta:Solomon"{\r
-            ls{"СоломоновÑ\8b Ð¾строва"}\r
+            ls{"СоломоновÑ\8b Ð\9eстрова"}\r
         }\r
         "meta:South_Georgia"{\r
             ls{"Южная Георгия"}\r
@@ -1881,9 +1881,9 @@ ru{
             ls{"Трук"}\r
         }\r
         "meta:Turkmenistan"{\r
-            ld{"ТÑ\83Ñ\80кмениÑ\8f, летнее время"}\r
-            lg{"ТÑ\83Ñ\80кмениÑ\8f"}\r
-            ls{"ТÑ\83Ñ\80кмениÑ\8f, стандартное время"}\r
+            ld{"ТÑ\83Ñ\80кмениÑ\81Ñ\82ан, летнее время"}\r
+            lg{"ТÑ\83Ñ\80кмениÑ\81Ñ\82ан"}\r
+            ls{"ТÑ\83Ñ\80кмениÑ\81Ñ\82ан, стандартное время"}\r
         }\r
         "meta:Tuvalu"{\r
             ls{"Тувалу"}\r
index d14c0832732bc826cb068f2b3eba7e58ad6633d4..aa331747e5e16b213175be7eb935479723d96ed8 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 rw{\r
-    Version{"2.1.38.72"}\r
+    Version{"2.1.44.88"}\r
     zoneStrings{\r
         gmtFormat{"GMT{0}"}\r
         hourFormat{"+HH:mm;-HH:mm"}\r
index c24373a0cb7d489d02e012562219e45fde10dc89..945e297a844e1526961ca7b647eb28b8d9303666 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 sah{\r
-    Version{"2.1.38.69"}\r
+    Version{"2.1.43.94"}\r
     zoneStrings{\r
         "Asia:Almaty"{\r
             ec{"Алматы"}\r
diff --git a/source/data/zone/sd.txt b/source/data/zone/sd.txt
new file mode 100644 (file)
index 0000000..be6b436
--- /dev/null
@@ -0,0 +1,1887 @@
+// © 2016 and later: Unicode, Inc. and others.\r
+// License & terms of use: http://www.unicode.org/copyright.html#License\r
+sd{\r
+    Version{"2.1.43.94"}\r
+    zoneStrings{\r
+        "Africa:Abidjan"{\r
+            ec{"ابي جان"}\r
+        }\r
+        "Africa:Accra"{\r
+            ec{"ايڪرا"}\r
+        }\r
+        "Africa:Addis_Ababa"{\r
+            ec{"ايڊيس اببا"}\r
+        }\r
+        "Africa:Algiers"{\r
+            ec{"الجيرز"}\r
+        }\r
+        "Africa:Asmera"{\r
+            ec{"ازمارا"}\r
+        }\r
+        "Africa:Bamako"{\r
+            ec{"باماڪو"}\r
+        }\r
+        "Africa:Bangui"{\r
+            ec{"بنگي"}\r
+        }\r
+        "Africa:Banjul"{\r
+            ec{"بينجال"}\r
+        }\r
+        "Africa:Bissau"{\r
+            ec{"بسائو"}\r
+        }\r
+        "Africa:Blantyre"{\r
+            ec{"بلنٽائر"}\r
+        }\r
+        "Africa:Brazzaville"{\r
+            ec{"برازاويل"}\r
+        }\r
+        "Africa:Bujumbura"{\r
+            ec{"بوجمبورا"}\r
+        }\r
+        "Africa:Cairo"{\r
+            ec{"قائرا"}\r
+        }\r
+        "Africa:Casablanca"{\r
+            ec{"ڪاسابلانڪا"}\r
+        }\r
+        "Africa:Ceuta"{\r
+            ec{"سيوٽا"}\r
+        }\r
+        "Africa:Conakry"{\r
+            ec{"ڪوناڪري"}\r
+        }\r
+        "Africa:Dakar"{\r
+            ec{"ڊاڪار"}\r
+        }\r
+        "Africa:Dar_es_Salaam"{\r
+            ec{"دارالسلام"}\r
+        }\r
+        "Africa:Djibouti"{\r
+            ec{"جبوتي"}\r
+        }\r
+        "Africa:Douala"{\r
+            ec{"دوالا"}\r
+        }\r
+        "Africa:El_Aaiun"{\r
+            ec{"ال ايون"}\r
+        }\r
+        "Africa:Freetown"{\r
+            ec{"فري ٽائون"}\r
+        }\r
+        "Africa:Gaborone"{\r
+            ec{"گيبورون"}\r
+        }\r
+        "Africa:Harare"{\r
+            ec{"هراري"}\r
+        }\r
+        "Africa:Johannesburg"{\r
+            ec{"جوهانسبرگ"}\r
+        }\r
+        "Africa:Juba"{\r
+            ec{"جوبا"}\r
+        }\r
+        "Africa:Kampala"{\r
+            ec{"ڪمپالا"}\r
+        }\r
+        "Africa:Khartoum"{\r
+            ec{"خرطوم"}\r
+        }\r
+        "Africa:Kigali"{\r
+            ec{"ڪيگالي"}\r
+        }\r
+        "Africa:Kinshasa"{\r
+            ec{"ڪنشاسا"}\r
+        }\r
+        "Africa:Lagos"{\r
+            ec{"لاگوس"}\r
+        }\r
+        "Africa:Libreville"{\r
+            ec{"لیبرویلی"}\r
+        }\r
+        "Africa:Lome"{\r
+            ec{"لوم"}\r
+        }\r
+        "Africa:Luanda"{\r
+            ec{"لوانڊا"}\r
+        }\r
+        "Africa:Lubumbashi"{\r
+            ec{"لوبمباشی"}\r
+        }\r
+        "Africa:Lusaka"{\r
+            ec{"لوساڪا"}\r
+        }\r
+        "Africa:Malabo"{\r
+            ec{"ملابو"}\r
+        }\r
+        "Africa:Maputo"{\r
+            ec{"ماپوتو"}\r
+        }\r
+        "Africa:Maseru"{\r
+            ec{"ماسيرو"}\r
+        }\r
+        "Africa:Mbabane"{\r
+            ec{"مبابين"}\r
+        }\r
+        "Africa:Mogadishu"{\r
+            ec{"موغادیشو"}\r
+        }\r
+        "Africa:Monrovia"{\r
+            ec{"مونروویا"}\r
+        }\r
+        "Africa:Nairobi"{\r
+            ec{"نيروبي"}\r
+        }\r
+        "Africa:Ndjamena"{\r
+            ec{"نجامينا"}\r
+        }\r
+        "Africa:Niamey"{\r
+            ec{"نيامي"}\r
+        }\r
+        "Africa:Nouakchott"{\r
+            ec{"نواڪشوط"}\r
+        }\r
+        "Africa:Ouagadougou"{\r
+            ec{"آئوگو ڊائوگو"}\r
+        }\r
+        "Africa:Porto-Novo"{\r
+            ec{"پورٽو نوو"}\r
+        }\r
+        "Africa:Sao_Tome"{\r
+            ec{"سائو ٽوم"}\r
+        }\r
+        "Africa:Tripoli"{\r
+            ec{"ٽرپولي"}\r
+        }\r
+        "Africa:Tunis"{\r
+            ec{"تيونس"}\r
+        }\r
+        "Africa:Windhoek"{\r
+            ec{"ونڊهوڪ"}\r
+        }\r
+        "America:Adak"{\r
+            ec{"ادڪ"}\r
+        }\r
+        "America:Anchorage"{\r
+            ec{"اينڪريج"}\r
+        }\r
+        "America:Anguilla"{\r
+            ec{"انگويلا"}\r
+        }\r
+        "America:Antigua"{\r
+            ec{"اينٽيگوا"}\r
+        }\r
+        "America:Araguaina"{\r
+            ec{"اراگویانا"}\r
+        }\r
+        "America:Argentina:La_Rioja"{\r
+            ec{"لا ریئوجا"}\r
+        }\r
+        "America:Argentina:Rio_Gallegos"{\r
+            ec{"ریو گالیگوس"}\r
+        }\r
+        "America:Argentina:Salta"{\r
+            ec{"سالٽا"}\r
+        }\r
+        "America:Argentina:San_Juan"{\r
+            ec{"سان جوآن"}\r
+        }\r
+        "America:Argentina:San_Luis"{\r
+            ec{"سان لوئیس"}\r
+        }\r
+        "America:Argentina:Tucuman"{\r
+            ec{"ٽوڪومين"}\r
+        }\r
+        "America:Argentina:Ushuaia"{\r
+            ec{"اوشوآئیا"}\r
+        }\r
+        "America:Aruba"{\r
+            ec{"اروبا"}\r
+        }\r
+        "America:Asuncion"{\r
+            ec{"اسانسیون"}\r
+        }\r
+        "America:Bahia"{\r
+            ec{"باحيه"}\r
+        }\r
+        "America:Bahia_Banderas"{\r
+            ec{"باهیا بیندراس"}\r
+        }\r
+        "America:Barbados"{\r
+            ec{"بارباڊوس"}\r
+        }\r
+        "America:Belem"{\r
+            ec{"بیلم"}\r
+        }\r
+        "America:Belize"{\r
+            ec{"بیلیز"}\r
+        }\r
+        "America:Blanc-Sablon"{\r
+            ec{"بلانڪ سبلون"}\r
+        }\r
+        "America:Boa_Vista"{\r
+            ec{"بائو وستا"}\r
+        }\r
+        "America:Bogota"{\r
+            ec{"بگوٽا"}\r
+        }\r
+        "America:Boise"{\r
+            ec{"بوئس"}\r
+        }\r
+        "America:Buenos_Aires"{\r
+            ec{"بيونوس ايئرس"}\r
+        }\r
+        "America:Cambridge_Bay"{\r
+            ec{"ڪيمبرج بي"}\r
+        }\r
+        "America:Campo_Grande"{\r
+            ec{"ڪيمپو گرانڊي"}\r
+        }\r
+        "America:Cancun"{\r
+            ec{"ڪانڪون"}\r
+        }\r
+        "America:Caracas"{\r
+            ec{"ڪراڪس"}\r
+        }\r
+        "America:Catamarca"{\r
+            ec{"ڪيٽا مارڪا"}\r
+        }\r
+        "America:Cayenne"{\r
+            ec{"ڪائين"}\r
+        }\r
+        "America:Cayman"{\r
+            ec{"سيامن"}\r
+        }\r
+        "America:Chicago"{\r
+            ec{"شڪاگو"}\r
+        }\r
+        "America:Chihuahua"{\r
+            ec{"چي هوا هوا"}\r
+        }\r
+        "America:Coral_Harbour"{\r
+            ec{"اٽيڪوڪن"}\r
+        }\r
+        "America:Cordoba"{\r
+            ec{"ڪارڊوبا"}\r
+        }\r
+        "America:Costa_Rica"{\r
+            ec{"ڪوسٽا ريڪا"}\r
+        }\r
+        "America:Creston"{\r
+            ec{"ڪريسٽن"}\r
+        }\r
+        "America:Cuiaba"{\r
+            ec{"ڪوئيابا"}\r
+        }\r
+        "America:Curacao"{\r
+            ec{"ڪيوراسائو"}\r
+        }\r
+        "America:Danmarkshavn"{\r
+            ec{"ڊينمارڪ شون"}\r
+        }\r
+        "America:Dawson"{\r
+            ec{"ڊاوسن"}\r
+        }\r
+        "America:Dawson_Creek"{\r
+            ec{"ڊاوسن ڪريڪ"}\r
+        }\r
+        "America:Denver"{\r
+            ec{"ڊينور"}\r
+        }\r
+        "America:Detroit"{\r
+            ec{"ڊيٽرائيٽ"}\r
+        }\r
+        "America:Dominica"{\r
+            ec{"ڊومينيڪا"}\r
+        }\r
+        "America:Edmonton"{\r
+            ec{"ايڊمونٽن"}\r
+        }\r
+        "America:Eirunepe"{\r
+            ec{"ايرونيپ"}\r
+        }\r
+        "America:El_Salvador"{\r
+            ec{"ايل سلواڊور"}\r
+        }\r
+        "America:Fort_Nelson"{\r
+            ec{"فورٽ نيلسن"}\r
+        }\r
+        "America:Fortaleza"{\r
+            ec{"فورٽاليزا"}\r
+        }\r
+        "America:Glace_Bay"{\r
+            ec{"گليس بي"}\r
+        }\r
+        "America:Godthab"{\r
+            ec{"نيوڪ"}\r
+        }\r
+        "America:Goose_Bay"{\r
+            ec{"گوز بي"}\r
+        }\r
+        "America:Grand_Turk"{\r
+            ec{"گرانڊ ترڪ"}\r
+        }\r
+        "America:Grenada"{\r
+            ec{"گريناڊا"}\r
+        }\r
+        "America:Guadeloupe"{\r
+            ec{"گواڊيلوپ"}\r
+        }\r
+        "America:Guatemala"{\r
+            ec{"گوئٽي مالا"}\r
+        }\r
+        "America:Guayaquil"{\r
+            ec{"گواياڪيل"}\r
+        }\r
+        "America:Guyana"{\r
+            ec{"گيانا"}\r
+        }\r
+        "America:Halifax"{\r
+            ec{"هيلي فيڪس"}\r
+        }\r
+        "America:Havana"{\r
+            ec{"هوانا"}\r
+        }\r
+        "America:Hermosillo"{\r
+            ec{"هرموسلو"}\r
+        }\r
+        "America:Indiana:Knox"{\r
+            ec{"ناڪس، انڊيانا"}\r
+        }\r
+        "America:Indiana:Marengo"{\r
+            ec{"مرينگو، انڊيانا"}\r
+        }\r
+        "America:Indiana:Petersburg"{\r
+            ec{"پيٽرسبرگ، انڊيانا"}\r
+        }\r
+        "America:Indiana:Tell_City"{\r
+            ec{"ٽيل سٽي، انڊيانا"}\r
+        }\r
+        "America:Indiana:Vevay"{\r
+            ec{"ويوي، انڊيانا"}\r
+        }\r
+        "America:Indiana:Vincennes"{\r
+            ec{"ونسینیز، انڊیانا"}\r
+        }\r
+        "America:Indiana:Winamac"{\r
+            ec{"ويناميڪ، انڊيانا"}\r
+        }\r
+        "America:Indianapolis"{\r
+            ec{"انڊيانا پولس"}\r
+        }\r
+        "America:Inuvik"{\r
+            ec{"انووڪ"}\r
+        }\r
+        "America:Iqaluit"{\r
+            ec{"اڪالوئٽ"}\r
+        }\r
+        "America:Jamaica"{\r
+            ec{"جمائڪا"}\r
+        }\r
+        "America:Jujuy"{\r
+            ec{"ڪوڪوئي"}\r
+        }\r
+        "America:Juneau"{\r
+            ec{"جونئو"}\r
+        }\r
+        "America:Kentucky:Monticello"{\r
+            ec{"مونٽيسيلو، ڪينٽڪي"}\r
+        }\r
+        "America:Kralendijk"{\r
+            ec{"ڪرالينڊڪ"}\r
+        }\r
+        "America:La_Paz"{\r
+            ec{"لا پز"}\r
+        }\r
+        "America:Lima"{\r
+            ec{"ليما"}\r
+        }\r
+        "America:Los_Angeles"{\r
+            ec{"لاس اينجلس"}\r
+        }\r
+        "America:Louisville"{\r
+            ec{"لوئي ويل"}\r
+        }\r
+        "America:Lower_Princes"{\r
+            ec{"لوئر پرنسز ڪوارٽر"}\r
+        }\r
+        "America:Maceio"{\r
+            ec{"میسیئو"}\r
+        }\r
+        "America:Managua"{\r
+            ec{"ماناگوا"}\r
+        }\r
+        "America:Manaus"{\r
+            ec{"منائوس"}\r
+        }\r
+        "America:Marigot"{\r
+            ec{"ميريگوٽ"}\r
+        }\r
+        "America:Martinique"{\r
+            ec{"مارٽينڪ"}\r
+        }\r
+        "America:Matamoros"{\r
+            ec{"متاموروس"}\r
+        }\r
+        "America:Mazatlan"{\r
+            ec{"مزاٽلان"}\r
+        }\r
+        "America:Mendoza"{\r
+            ec{"مينڊوزا"}\r
+        }\r
+        "America:Menominee"{\r
+            ec{"مینومیني"}\r
+        }\r
+        "America:Merida"{\r
+            ec{"ميريڊا"}\r
+        }\r
+        "America:Metlakatla"{\r
+            ec{"ميٽلاڪاٽالا"}\r
+        }\r
+        "America:Mexico_City"{\r
+            ec{"ميڪسيڪو شهر"}\r
+        }\r
+        "America:Miquelon"{\r
+            ec{"میڪوئیلون"}\r
+        }\r
+        "America:Moncton"{\r
+            ec{"مانڪٽن"}\r
+        }\r
+        "America:Monterrey"{\r
+            ec{"مانٽيري"}\r
+        }\r
+        "America:Montevideo"{\r
+            ec{"مونٽي ويڊيو"}\r
+        }\r
+        "America:Montserrat"{\r
+            ec{"مانٽسريٽ"}\r
+        }\r
+        "America:Nassau"{\r
+            ec{"ناسائو"}\r
+        }\r
+        "America:New_York"{\r
+            ec{"نيويارڪ"}\r
+        }\r
+        "America:Nipigon"{\r
+            ec{"نپيگان"}\r
+        }\r
+        "America:Nome"{\r
+            ec{"نوم"}\r
+        }\r
+        "America:Noronha"{\r
+            ec{"نورانهيا"}\r
+        }\r
+        "America:North_Dakota:Beulah"{\r
+            ec{"بيولاه، اتر ڊڪوٽا"}\r
+        }\r
+        "America:North_Dakota:Center"{\r
+            ec{"سينٽر، اتر ڊڪوٽا"}\r
+        }\r
+        "America:North_Dakota:New_Salem"{\r
+            ec{"نيو سيلم، اتر ڊڪوٽا"}\r
+        }\r
+        "America:Ojinaga"{\r
+            ec{"اوڪيناگا"}\r
+        }\r
+        "America:Panama"{\r
+            ec{"پناما"}\r
+        }\r
+        "America:Pangnirtung"{\r
+            ec{"پینگنرٽنگ"}\r
+        }\r
+        "America:Paramaribo"{\r
+            ec{"پيراميريبو"}\r
+        }\r
+        "America:Phoenix"{\r
+            ec{"فونيڪس"}\r
+        }\r
+        "America:Port-au-Prince"{\r
+            ec{"پورٽ او پرنس"}\r
+        }\r
+        "America:Port_of_Spain"{\r
+            ec{"اسپين جو ٻيٽ"}\r
+        }\r
+        "America:Porto_Velho"{\r
+            ec{"پورٽو ويلهو"}\r
+        }\r
+        "America:Puerto_Rico"{\r
+            ec{"پورٽو ريڪو"}\r
+        }\r
+        "America:Punta_Arenas"{\r
+            ec{"پنٽا اريناس"}\r
+        }\r
+        "America:Rainy_River"{\r
+            ec{"ريني رور"}\r
+        }\r
+        "America:Rankin_Inlet"{\r
+            ec{"رينڪن انليٽ"}\r
+        }\r
+        "America:Recife"{\r
+            ec{"هيسيفي"}\r
+        }\r
+        "America:Regina"{\r
+            ec{"ریجینا"}\r
+        }\r
+        "America:Resolute"{\r
+            ec{"ريزوليوٽ"}\r
+        }\r
+        "America:Rio_Branco"{\r
+            ec{"ريو برانڪو"}\r
+        }\r
+        "America:Santarem"{\r
+            ec{"سنٽاريم"}\r
+        }\r
+        "America:Santiago"{\r
+            ec{"سينٽياگو"}\r
+        }\r
+        "America:Santo_Domingo"{\r
+            ec{"سينٽو ڊومينگو"}\r
+        }\r
+        "America:Sao_Paulo"{\r
+            ec{"سائو پولو"}\r
+        }\r
+        "America:Scoresbysund"{\r
+            ec{"اٽوڪورٽومائٽ"}\r
+        }\r
+        "America:Sitka"{\r
+            ec{"سٽڪا"}\r
+        }\r
+        "America:St_Barthelemy"{\r
+            ec{"سينٽ برٿليمي"}\r
+        }\r
+        "America:St_Johns"{\r
+            ec{"سينٽ جانز"}\r
+        }\r
+        "America:St_Kitts"{\r
+            ec{"سينٽ ڪٽس"}\r
+        }\r
+        "America:St_Lucia"{\r
+            ec{"سينٽ لوسيا"}\r
+        }\r
+        "America:St_Thomas"{\r
+            ec{"سينٽ ٿامس"}\r
+        }\r
+        "America:St_Vincent"{\r
+            ec{"سينٽ ونسينٽ"}\r
+        }\r
+        "America:Swift_Current"{\r
+            ec{"سوئفٽ ڪرنٽ"}\r
+        }\r
+        "America:Tegucigalpa"{\r
+            ec{"ٽيگوسيگلپا"}\r
+        }\r
+        "America:Thule"{\r
+            ec{"ٿولي"}\r
+        }\r
+        "America:Thunder_Bay"{\r
+            ec{"ٿنڊر بي"}\r
+        }\r
+        "America:Tijuana"{\r
+            ec{"تيجوانا"}\r
+        }\r
+        "America:Toronto"{\r
+            ec{"ٽورنٽو"}\r
+        }\r
+        "America:Tortola"{\r
+            ec{"ٽورٽولا"}\r
+        }\r
+        "America:Vancouver"{\r
+            ec{"وينڪوور"}\r
+        }\r
+        "America:Whitehorse"{\r
+            ec{"وائيٽ هائوس"}\r
+        }\r
+        "America:Winnipeg"{\r
+            ec{"وني پيگ"}\r
+        }\r
+        "America:Yakutat"{\r
+            ec{"ياڪوتات"}\r
+        }\r
+        "America:Yellowknife"{\r
+            ec{"ييلو نائيف"}\r
+        }\r
+        "Antarctica:Casey"{\r
+            ec{"ڪيسي"}\r
+        }\r
+        "Antarctica:Davis"{\r
+            ec{"ڊيوس"}\r
+        }\r
+        "Antarctica:DumontDUrville"{\r
+            ec{"ڊومانٽ درويئل"}\r
+        }\r
+        "Antarctica:Macquarie"{\r
+            ec{"مڪوائري"}\r
+        }\r
+        "Antarctica:Mawson"{\r
+            ec{"موسن"}\r
+        }\r
+        "Antarctica:McMurdo"{\r
+            ec{"ميڪ مرڊو"}\r
+        }\r
+        "Antarctica:Palmer"{\r
+            ec{"پامر"}\r
+        }\r
+        "Antarctica:Rothera"{\r
+            ec{"روڌرا"}\r
+        }\r
+        "Antarctica:Syowa"{\r
+            ec{"سيووا"}\r
+        }\r
+        "Antarctica:Troll"{\r
+            ec{"ٽرول"}\r
+        }\r
+        "Antarctica:Vostok"{\r
+            ec{"ووستوڪ"}\r
+        }\r
+        "Arctic:Longyearbyen"{\r
+            ec{"لانگ ائيربن"}\r
+        }\r
+        "Asia:Aden"{\r
+            ec{"عدن"}\r
+        }\r
+        "Asia:Almaty"{\r
+            ec{"الماتي"}\r
+        }\r
+        "Asia:Amman"{\r
+            ec{"امان"}\r
+        }\r
+        "Asia:Anadyr"{\r
+            ec{"انيدر"}\r
+        }\r
+        "Asia:Aqtau"{\r
+            ec{"اڪٽائو"}\r
+        }\r
+        "Asia:Aqtobe"{\r
+            ec{"ايڪٽوب"}\r
+        }\r
+        "Asia:Ashgabat"{\r
+            ec{"آشگاباد"}\r
+        }\r
+        "Asia:Atyrau"{\r
+            ec{"آتيرائو"}\r
+        }\r
+        "Asia:Baghdad"{\r
+            ec{"بغداد"}\r
+        }\r
+        "Asia:Bahrain"{\r
+            ec{"بحرين"}\r
+        }\r
+        "Asia:Baku"{\r
+            ec{"باڪو"}\r
+        }\r
+        "Asia:Bangkok"{\r
+            ec{"بئنڪاڪ"}\r
+        }\r
+        "Asia:Barnaul"{\r
+            ec{"برنل"}\r
+        }\r
+        "Asia:Beirut"{\r
+            ec{"بيروت"}\r
+        }\r
+        "Asia:Bishkek"{\r
+            ec{"بشڪيڪ"}\r
+        }\r
+        "Asia:Brunei"{\r
+            ec{"برونائي"}\r
+        }\r
+        "Asia:Calcutta"{\r
+            ec{"ڪلڪتا"}\r
+        }\r
+        "Asia:Chita"{\r
+            ec{"چيتا"}\r
+        }\r
+        "Asia:Choibalsan"{\r
+            ec{"چوئي بيلسن"}\r
+        }\r
+        "Asia:Colombo"{\r
+            ec{"ڪولمبو"}\r
+        }\r
+        "Asia:Damascus"{\r
+            ec{"دمشق"}\r
+        }\r
+        "Asia:Dhaka"{\r
+            ec{"ڍاڪا"}\r
+        }\r
+        "Asia:Dili"{\r
+            ec{"دلي"}\r
+        }\r
+        "Asia:Dubai"{\r
+            ec{"دبئي"}\r
+        }\r
+        "Asia:Dushanbe"{\r
+            ec{"دوشانبي"}\r
+        }\r
+        "Asia:Famagusta"{\r
+            ec{"فاماگوستا"}\r
+        }\r
+        "Asia:Gaza"{\r
+            ec{"غزه"}\r
+        }\r
+        "Asia:Hebron"{\r
+            ec{"هيبرون"}\r
+        }\r
+        "Asia:Hong_Kong"{\r
+            ec{"هانگ ڪانگ"}\r
+        }\r
+        "Asia:Hovd"{\r
+            ec{"هووڊ"}\r
+        }\r
+        "Asia:Irkutsk"{\r
+            ec{"ارڪتسڪ"}\r
+        }\r
+        "Asia:Jakarta"{\r
+            ec{"جڪارتا"}\r
+        }\r
+        "Asia:Jayapura"{\r
+            ec{"جياپورا"}\r
+        }\r
+        "Asia:Jerusalem"{\r
+            ec{"يوروشلم"}\r
+        }\r
+        "Asia:Kabul"{\r
+            ec{"ڪابل"}\r
+        }\r
+        "Asia:Kamchatka"{\r
+            ec{"ڪمچاسڪي"}\r
+        }\r
+        "Asia:Karachi"{\r
+            ec{"ڪراچي"}\r
+        }\r
+        "Asia:Katmandu"{\r
+            ec{"کٽمنڊو"}\r
+        }\r
+        "Asia:Khandyga"{\r
+            ec{"کندياگا"}\r
+        }\r
+        "Asia:Krasnoyarsk"{\r
+            ec{"ڪريسنويارسڪ"}\r
+        }\r
+        "Asia:Kuala_Lumpur"{\r
+            ec{"ڪوللمپور"}\r
+        }\r
+        "Asia:Kuching"{\r
+            ec{"کوچنگ"}\r
+        }\r
+        "Asia:Kuwait"{\r
+            ec{"ڪويت"}\r
+        }\r
+        "Asia:Macau"{\r
+            ec{"مڪائو"}\r
+        }\r
+        "Asia:Magadan"{\r
+            ec{"مگادان"}\r
+        }\r
+        "Asia:Makassar"{\r
+            ec{"ميڪاسر"}\r
+        }\r
+        "Asia:Manila"{\r
+            ec{"منيلا"}\r
+        }\r
+        "Asia:Muscat"{\r
+            ec{"مسقط"}\r
+        }\r
+        "Asia:Nicosia"{\r
+            ec{"نيڪوسيا"}\r
+        }\r
+        "Asia:Novokuznetsk"{\r
+            ec{"نووڪزنيتسڪ"}\r
+        }\r
+        "Asia:Novosibirsk"{\r
+            ec{"نوواسبئيرسڪ"}\r
+        }\r
+        "Asia:Omsk"{\r
+            ec{"اومسڪ"}\r
+        }\r
+        "Asia:Oral"{\r
+            ec{"زباني"}\r
+        }\r
+        "Asia:Phnom_Penh"{\r
+            ec{"فنام پينه"}\r
+        }\r
+        "Asia:Pontianak"{\r
+            ec{"پونٽيانڪ"}\r
+        }\r
+        "Asia:Pyongyang"{\r
+            ec{"شيانگ يانگ"}\r
+        }\r
+        "Asia:Qatar"{\r
+            ec{"قطر"}\r
+        }\r
+        "Asia:Qyzylorda"{\r
+            ec{"ڪيزلورڊا"}\r
+        }\r
+        "Asia:Rangoon"{\r
+            ec{"رنگون"}\r
+        }\r
+        "Asia:Riyadh"{\r
+            ec{"رياض"}\r
+        }\r
+        "Asia:Saigon"{\r
+            ec{"هوچي من"}\r
+        }\r
+        "Asia:Sakhalin"{\r
+            ec{"شخالين"}\r
+        }\r
+        "Asia:Samarkand"{\r
+            ec{"سمرقند"}\r
+        }\r
+        "Asia:Seoul"{\r
+            ec{"سيول"}\r
+        }\r
+        "Asia:Shanghai"{\r
+            ec{"شنگهائي"}\r
+        }\r
+        "Asia:Singapore"{\r
+            ec{"سنگاپور"}\r
+        }\r
+        "Asia:Srednekolymsk"{\r
+            ec{"سريديڪوليمسڪ"}\r
+        }\r
+        "Asia:Taipei"{\r
+            ec{"تائپي"}\r
+        }\r
+        "Asia:Tashkent"{\r
+            ec{"تاشقنت"}\r
+        }\r
+        "Asia:Tbilisi"{\r
+            ec{"تبليسي"}\r
+        }\r
+        "Asia:Tehran"{\r
+            ec{"تهران"}\r
+        }\r
+        "Asia:Thimphu"{\r
+            ec{"ٿمفو"}\r
+        }\r
+        "Asia:Tokyo"{\r
+            ec{"ٽوڪيو"}\r
+        }\r
+        "Asia:Tomsk"{\r
+            ec{"تمسڪ"}\r
+        }\r
+        "Asia:Ulaanbaatar"{\r
+            ec{"اولان باتر"}\r
+        }\r
+        "Asia:Urumqi"{\r
+            ec{"يورمڪي"}\r
+        }\r
+        "Asia:Ust-Nera"{\r
+            ec{"اسٽ نيرا"}\r
+        }\r
+        "Asia:Vientiane"{\r
+            ec{"وينٽيان"}\r
+        }\r
+        "Asia:Vladivostok"{\r
+            ec{"ولادووستوڪ"}\r
+        }\r
+        "Asia:Yakutsk"{\r
+            ec{"ياڪتسڪ"}\r
+        }\r
+        "Asia:Yekaterinburg"{\r
+            ec{"یڪاٽرنبرگ"}\r
+        }\r
+        "Asia:Yerevan"{\r
+            ec{"يريوان"}\r
+        }\r
+        "Atlantic:Azores"{\r
+            ec{"ازورز"}\r
+        }\r
+        "Atlantic:Bermuda"{\r
+            ec{"برمودا"}\r
+        }\r
+        "Atlantic:Canary"{\r
+            ec{"ڪينري"}\r
+        }\r
+        "Atlantic:Cape_Verde"{\r
+            ec{"ڪيپ ورڊي"}\r
+        }\r
+        "Atlantic:Faeroe"{\r
+            ec{"فيرو"}\r
+        }\r
+        "Atlantic:Madeira"{\r
+            ec{"ماڊيرا"}\r
+        }\r
+        "Atlantic:Reykjavik"{\r
+            ec{"ريڪيوڪ"}\r
+        }\r
+        "Atlantic:South_Georgia"{\r
+            ec{"ڏکڻ جورجيا"}\r
+        }\r
+        "Atlantic:St_Helena"{\r
+            ec{"سينٽ هيلينا"}\r
+        }\r
+        "Atlantic:Stanley"{\r
+            ec{"اسٽينلي"}\r
+        }\r
+        "Australia:Adelaide"{\r
+            ec{"ايڊيلينڊ"}\r
+        }\r
+        "Australia:Brisbane"{\r
+            ec{"برسبين"}\r
+        }\r
+        "Australia:Broken_Hill"{\r
+            ec{"بروڪن هل"}\r
+        }\r
+        "Australia:Currie"{\r
+            ec{"ڪري"}\r
+        }\r
+        "Australia:Darwin"{\r
+            ec{"ڊارون"}\r
+        }\r
+        "Australia:Eucla"{\r
+            ec{"يوڪلا"}\r
+        }\r
+        "Australia:Hobart"{\r
+            ec{"هوبارٽ"}\r
+        }\r
+        "Australia:Lindeman"{\r
+            ec{"لنڊمين"}\r
+        }\r
+        "Australia:Lord_Howe"{\r
+            ec{"لارڊ هائو"}\r
+        }\r
+        "Australia:Melbourne"{\r
+            ec{"ميلبورن"}\r
+        }\r
+        "Australia:Perth"{\r
+            ec{"پرٿ"}\r
+        }\r
+        "Australia:Sydney"{\r
+            ec{"سڊني"}\r
+        }\r
+        "Etc:UTC"{\r
+            ls{"گڏيل دنياوي وقت"}\r
+            ss{"م ع و"}\r
+        }\r
+        "Etc:Unknown"{\r
+            ec{"اڻڄاتل شهر"}\r
+        }\r
+        "Europe:Amsterdam"{\r
+            ec{"ايمسٽرڊيم"}\r
+        }\r
+        "Europe:Andorra"{\r
+            ec{"اندورا"}\r
+        }\r
+        "Europe:Astrakhan"{\r
+            ec{"آستراخان"}\r
+        }\r
+        "Europe:Athens"{\r
+            ec{"ايٿنز"}\r
+        }\r
+        "Europe:Belgrade"{\r
+            ec{"بلغراد"}\r
+        }\r
+        "Europe:Berlin"{\r
+            ec{"برلن"}\r
+        }\r
+        "Europe:Bratislava"{\r
+            ec{"براتيسلوا"}\r
+        }\r
+        "Europe:Brussels"{\r
+            ec{"برسلز"}\r
+        }\r
+        "Europe:Bucharest"{\r
+            ec{"بخاريسٽ"}\r
+        }\r
+        "Europe:Budapest"{\r
+            ec{"بداپيسٽ"}\r
+        }\r
+        "Europe:Busingen"{\r
+            ec{"بزيجين"}\r
+        }\r
+        "Europe:Chisinau"{\r
+            ec{"چسينائو"}\r
+        }\r
+        "Europe:Copenhagen"{\r
+            ec{"ڪوپن هيگن"}\r
+        }\r
+        "Europe:Dublin"{\r
+            ec{"ڊبلن"}\r
+            ld{"آئرش جو معياري وقت"}\r
+        }\r
+        "Europe:Gibraltar"{\r
+            ec{"جبرالٽر"}\r
+        }\r
+        "Europe:Guernsey"{\r
+            ec{"گرنزي"}\r
+        }\r
+        "Europe:Helsinki"{\r
+            ec{"هيلسنڪي"}\r
+        }\r
+        "Europe:Isle_of_Man"{\r
+            ec{"آئيزل آف مين"}\r
+        }\r
+        "Europe:Istanbul"{\r
+            ec{"استنبول"}\r
+        }\r
+        "Europe:Jersey"{\r
+            ec{"جرسي"}\r
+        }\r
+        "Europe:Kaliningrad"{\r
+            ec{"ڪلينن گراڊ"}\r
+        }\r
+        "Europe:Kiev"{\r
+            ec{"ڪيف"}\r
+        }\r
+        "Europe:Kirov"{\r
+            ec{"ڪيروف"}\r
+        }\r
+        "Europe:Lisbon"{\r
+            ec{"لسبن"}\r
+        }\r
+        "Europe:Ljubljana"{\r
+            ec{"لبليانا"}\r
+        }\r
+        "Europe:London"{\r
+            ec{"لنڊن"}\r
+            ld{"برطانيا جي اونهاري جو وقت"}\r
+        }\r
+        "Europe:Luxembourg"{\r
+            ec{"لگزمبرگ"}\r
+        }\r
+        "Europe:Madrid"{\r
+            ec{"ميڊرڊ"}\r
+        }\r
+        "Europe:Malta"{\r
+            ec{"مالٽا"}\r
+        }\r
+        "Europe:Mariehamn"{\r
+            ec{"ميريهام"}\r
+        }\r
+        "Europe:Minsk"{\r
+            ec{"منسڪ"}\r
+        }\r
+        "Europe:Monaco"{\r
+            ec{"موناڪو"}\r
+        }\r
+        "Europe:Moscow"{\r
+            ec{"ماسڪو"}\r
+        }\r
+        "Europe:Oslo"{\r
+            ec{"اوسلو"}\r
+        }\r
+        "Europe:Paris"{\r
+            ec{"پئرس"}\r
+        }\r
+        "Europe:Podgorica"{\r
+            ec{"پوڊگورسيا"}\r
+        }\r
+        "Europe:Prague"{\r
+            ec{"پراگ"}\r
+        }\r
+        "Europe:Riga"{\r
+            ec{"رگا"}\r
+        }\r
+        "Europe:Rome"{\r
+            ec{"روم"}\r
+        }\r
+        "Europe:Samara"{\r
+            ec{"سمارا"}\r
+        }\r
+        "Europe:San_Marino"{\r
+            ec{"سين مرينو"}\r
+        }\r
+        "Europe:Sarajevo"{\r
+            ec{"سراجیوو"}\r
+        }\r
+        "Europe:Saratov"{\r
+            ec{"سراتو"}\r
+        }\r
+        "Europe:Simferopol"{\r
+            ec{"سمفروپول"}\r
+        }\r
+        "Europe:Skopje"{\r
+            ec{"اسڪوپي"}\r
+        }\r
+        "Europe:Sofia"{\r
+            ec{"سوفيا"}\r
+        }\r
+        "Europe:Stockholm"{\r
+            ec{"اسٽاڪ هوم"}\r
+        }\r
+        "Europe:Tallinn"{\r
+            ec{"ٽالن"}\r
+        }\r
+        "Europe:Tirane"{\r
+            ec{"اراني"}\r
+        }\r
+        "Europe:Ulyanovsk"{\r
+            ec{"اليانوسڪ"}\r
+        }\r
+        "Europe:Uzhgorod"{\r
+            ec{"ازهارڊ"}\r
+        }\r
+        "Europe:Vaduz"{\r
+            ec{"وڊوز"}\r
+        }\r
+        "Europe:Vatican"{\r
+            ec{"وئٽيڪن"}\r
+        }\r
+        "Europe:Vienna"{\r
+            ec{"وينا"}\r
+        }\r
+        "Europe:Vilnius"{\r
+            ec{"ويلنيس"}\r
+        }\r
+        "Europe:Volgograd"{\r
+            ec{"وولگوگراد"}\r
+        }\r
+        "Europe:Warsaw"{\r
+            ec{"وارسا"}\r
+        }\r
+        "Europe:Zagreb"{\r
+            ec{"زغرب"}\r
+        }\r
+        "Europe:Zaporozhye"{\r
+            ec{"زيپروزهايا"}\r
+        }\r
+        "Europe:Zurich"{\r
+            ec{"زيورخ"}\r
+        }\r
+        "Indian:Antananarivo"{\r
+            ec{"انتاناناريوو"}\r
+        }\r
+        "Indian:Chagos"{\r
+            ec{"چاگوس"}\r
+        }\r
+        "Indian:Christmas"{\r
+            ec{"ڪرسمس"}\r
+        }\r
+        "Indian:Cocos"{\r
+            ec{"ڪوڪوس"}\r
+        }\r
+        "Indian:Comoro"{\r
+            ec{"ڪومورو"}\r
+        }\r
+        "Indian:Kerguelen"{\r
+            ec{"ڪرگيولين"}\r
+        }\r
+        "Indian:Mahe"{\r
+            ec{"ماهي"}\r
+        }\r
+        "Indian:Maldives"{\r
+            ec{"مالديپ"}\r
+        }\r
+        "Indian:Mauritius"{\r
+            ec{"موريشس"}\r
+        }\r
+        "Indian:Mayotte"{\r
+            ec{"مياٽي"}\r
+        }\r
+        "Indian:Reunion"{\r
+            ec{"ري يونين"}\r
+        }\r
+        "Pacific:Apia"{\r
+            ec{"اپيا"}\r
+        }\r
+        "Pacific:Auckland"{\r
+            ec{"آڪلينڊ"}\r
+        }\r
+        "Pacific:Bougainville"{\r
+            ec{"بوگين ويليا"}\r
+        }\r
+        "Pacific:Chatham"{\r
+            ec{"چئٿم"}\r
+        }\r
+        "Pacific:Easter"{\r
+            ec{"ايسٽر"}\r
+        }\r
+        "Pacific:Efate"{\r
+            ec{"افاتي"}\r
+        }\r
+        "Pacific:Enderbury"{\r
+            ec{"اينڊربري"}\r
+        }\r
+        "Pacific:Fakaofo"{\r
+            ec{"فڪائوفو"}\r
+        }\r
+        "Pacific:Fiji"{\r
+            ec{"فجي"}\r
+        }\r
+        "Pacific:Funafuti"{\r
+            ec{"فنافوٽي"}\r
+        }\r
+        "Pacific:Galapagos"{\r
+            ec{"گالاپاگوز"}\r
+        }\r
+        "Pacific:Gambier"{\r
+            ec{"گيمبيئر"}\r
+        }\r
+        "Pacific:Guadalcanal"{\r
+            ec{"گواڊل ڪينال"}\r
+        }\r
+        "Pacific:Guam"{\r
+            ec{"گوام"}\r
+        }\r
+        "Pacific:Honolulu"{\r
+            ec{"هونو لولو"}\r
+        }\r
+        "Pacific:Johnston"{\r
+            ec{"جانسٹن"}\r
+        }\r
+        "Pacific:Kiritimati"{\r
+            ec{"ڪريٽمٽي"}\r
+        }\r
+        "Pacific:Kosrae"{\r
+            ec{"ڪوسرائي"}\r
+        }\r
+        "Pacific:Kwajalein"{\r
+            ec{"ڪواجلين"}\r
+        }\r
+        "Pacific:Majuro"{\r
+            ec{"مجورو"}\r
+        }\r
+        "Pacific:Marquesas"{\r
+            ec{"مرڪيوسس"}\r
+        }\r
+        "Pacific:Midway"{\r
+            ec{"مڊوي"}\r
+        }\r
+        "Pacific:Nauru"{\r
+            ec{"نائرو"}\r
+        }\r
+        "Pacific:Niue"{\r
+            ec{"نيووي"}\r
+        }\r
+        "Pacific:Norfolk"{\r
+            ec{"نار فوڪ"}\r
+        }\r
+        "Pacific:Noumea"{\r
+            ec{"نائوميا"}\r
+        }\r
+        "Pacific:Pago_Pago"{\r
+            ec{"پاگو پاگو"}\r
+        }\r
+        "Pacific:Palau"{\r
+            ec{"پلائو"}\r
+        }\r
+        "Pacific:Pitcairn"{\r
+            ec{"پٽڪيرن"}\r
+        }\r
+        "Pacific:Ponape"{\r
+            ec{"پونپیئي"}\r
+        }\r
+        "Pacific:Port_Moresby"{\r
+            ec{"پورٽ مورسبي"}\r
+        }\r
+        "Pacific:Rarotonga"{\r
+            ec{"راروٽونگا"}\r
+        }\r
+        "Pacific:Saipan"{\r
+            ec{"سيپن"}\r
+        }\r
+        "Pacific:Tahiti"{\r
+            ec{"تاهٽي"}\r
+        }\r
+        "Pacific:Tarawa"{\r
+            ec{"تراوا"}\r
+        }\r
+        "Pacific:Tongatapu"{\r
+            ec{"ٽونگاٽاپو"}\r
+        }\r
+        "Pacific:Truk"{\r
+            ec{"چيوڪ"}\r
+        }\r
+        "Pacific:Wake"{\r
+            ec{"ويڪ"}\r
+        }\r
+        "Pacific:Wallis"{\r
+            ec{"ويلس"}\r
+        }\r
+        "meta:Afghanistan"{\r
+            ls{"افغانستان جو وقت"}\r
+        }\r
+        "meta:Africa_Central"{\r
+            ls{"مرڪزي آفريقا جو وقت"}\r
+        }\r
+        "meta:Africa_Eastern"{\r
+            ls{"اوڀر آفريڪا جو وقت"}\r
+        }\r
+        "meta:Africa_Southern"{\r
+            ls{"ڏکڻ آفريڪا جو معياري وقت"}\r
+        }\r
+        "meta:Africa_Western"{\r
+            ld{"اولهه آفريقا جي اونهاري جو وقت"}\r
+            lg{"اولهه آفريقا جو وقت"}\r
+            ls{"اولهه آفريقا جو معياري وقت"}\r
+        }\r
+        "meta:Alaska"{\r
+            ld{"الاسڪا جي ڏينهن جو وقت"}\r
+            lg{"الاسڪا جو وقت"}\r
+            ls{"الاسڪا جو معياري وقت"}\r
+        }\r
+        "meta:Amazon"{\r
+            ld{"ايميزون جي اونهاري جو وقت"}\r
+            lg{"ايميزون جو وقت"}\r
+            ls{"ايميزون جو معياري وقت"}\r
+        }\r
+        "meta:America_Central"{\r
+            ld{"مرڪزي ڏينهن جو وقت"}\r
+            lg{"مرڪزي وقت"}\r
+            ls{"مرڪزي معياري وقت"}\r
+        }\r
+        "meta:America_Eastern"{\r
+            ld{"مشرقي ڏينهن جو وقت"}\r
+            lg{"مشرقي وقت"}\r
+            ls{"مشرقي معياري وقت"}\r
+        }\r
+        "meta:America_Mountain"{\r
+            ld{"پهاڙي ڏينهن جو وقت"}\r
+            lg{"پهاڙي وقت"}\r
+            ls{"پهاڙي معياري وقت"}\r
+        }\r
+        "meta:America_Pacific"{\r
+            ld{"پيسيفڪ ڏينهن جو وقت"}\r
+            lg{"پيسيفڪ وقت"}\r
+            ls{"پيسيفڪ معياري وقت"}\r
+        }\r
+        "meta:Apia"{\r
+            ld{"اپيا جي ڏينهن جو وقت"}\r
+            lg{"اپيا جو وقت"}\r
+            ls{"اپيا جو معياري وقت"}\r
+        }\r
+        "meta:Arabian"{\r
+            ld{"عربين جي ڏينهن جو وقت"}\r
+            lg{"عربين جو وقت"}\r
+            ls{"عربين جو معياري وقت"}\r
+        }\r
+        "meta:Argentina"{\r
+            ld{"ارجنٽائن جي اونهاري جو وقت"}\r
+            lg{"ارجنٽائن وقت"}\r
+            ls{"ارجنٽائن معياري وقت"}\r
+        }\r
+        "meta:Argentina_Western"{\r
+            ld{"مغربي ارجنٽائن جي اونهاري جو وقت"}\r
+            lg{"مغربي ارجنٽائن وقت"}\r
+            ls{"مغربي ارجنٽائن جو معياري وقت"}\r
+        }\r
+        "meta:Armenia"{\r
+            ld{"آرمينيا جي اونهاري جو وقت"}\r
+            lg{"آرمينيا جو وقت"}\r
+            ls{"آرمينيا جو معياري وقت"}\r
+        }\r
+        "meta:Atlantic"{\r
+            ld{"ايٽلانٽڪ جي ڏينهن جو وقت"}\r
+            lg{"ايٽلانٽڪ جو وقت"}\r
+            ls{"ايٽلانٽڪ جو معياري وقت"}\r
+        }\r
+        "meta:Australia_Central"{\r
+            ld{"آسٽريليا جو مرڪزي ڏينهن جو وقت"}\r
+            lg{"مرڪزي آسٽريليا جو وقت"}\r
+            ls{"آسٽريليا جو مرڪزي معياري وقت"}\r
+        }\r
+        "meta:Australia_CentralWestern"{\r
+            ld{"آسٽريليا جو مرڪزي مغربي ڏينهن جو وقت"}\r
+            lg{"آسٽريليا جو مرڪزي مغربي وقت"}\r
+            ls{"آسٽريليا جو مرڪزي مغربي معياري وقت"}\r
+        }\r
+        "meta:Australia_Eastern"{\r
+            ld{"آسٽريليا جو مشرقي ڏينهن جو وقت"}\r
+            lg{"اوڀر آسٽريليا جو وقت"}\r
+            ls{"آسٽريليا جو مشرقي معياري وقت"}\r
+        }\r
+        "meta:Australia_Western"{\r
+            ld{"آسٽريليا جو مغربي ڏينهن جو وقت"}\r
+            lg{"مغربي آسٽريليا جو وقت"}\r
+            ls{"آسٽريليا جو مغربي معياري وقت"}\r
+        }\r
+        "meta:Azerbaijan"{\r
+            ld{"آذربائيجان جي اونهاري جو وقت"}\r
+            lg{"آذربائيجان جو وقت"}\r
+            ls{"آذربائيجان جو معياري وقت"}\r
+        }\r
+        "meta:Azores"{\r
+            ld{"ازورز جي اونهاري جو وقت"}\r
+            lg{"ازورز جو وقت"}\r
+            ls{"ازورز جو معياري وقت"}\r
+        }\r
+        "meta:Bangladesh"{\r
+            ld{"بنگلاديش جي اونهاري جو وقت"}\r
+            lg{"بنگلاديش جو وقت"}\r
+            ls{"بنگلاديش جو معياري وقت"}\r
+        }\r
+        "meta:Bhutan"{\r
+            ls{"ڀوٽان جو وقت"}\r
+        }\r
+        "meta:Bolivia"{\r
+            ls{"بولويائي وقت"}\r
+        }\r
+        "meta:Brasilia"{\r
+            ld{"براسيليا جي اونهاري جو وقت"}\r
+            lg{"بريسيليائي وقت"}\r
+            ls{"براسيليا جو معياري وقت"}\r
+        }\r
+        "meta:Brunei"{\r
+            ls{"برونائي داروالسلام جو وقت"}\r
+        }\r
+        "meta:Cape_Verde"{\r
+            ld{"ڪيپ ورڊ جي اونهاري جو وقت"}\r
+            lg{"ڪيپ ورڊ جو وقت"}\r
+            ls{"ڪيپ ورڊ جو معياري وقت"}\r
+        }\r
+        "meta:Chamorro"{\r
+            ls{"چمورو جو معياري وقت"}\r
+        }\r
+        "meta:Chatham"{\r
+            ld{"چئٿم جي ڏينهن جو وقت"}\r
+            lg{"چئٿم جو وقت"}\r
+            ls{"چئٿم جو معياري وقت"}\r
+        }\r
+        "meta:Chile"{\r
+            ld{"چلي جي اونهاري جو وقت"}\r
+            lg{"چلي جو وقت"}\r
+            ls{"چلي جو معياري وقت"}\r
+        }\r
+        "meta:China"{\r
+            ld{"چائنا جي ڏينهن جو وقت"}\r
+            lg{"چائنا جو وقت"}\r
+            ls{"چائنا جو معياري وقت"}\r
+        }\r
+        "meta:Choibalsan"{\r
+            ld{"چوئي بيلسن جي اونهاري جو وقت"}\r
+            lg{"چوئي بيلسن جو وقت"}\r
+            ls{"چوئي بيلسن جو معياري وقت"}\r
+        }\r
+        "meta:Christmas"{\r
+            ls{"ڪرسمس آئي لينڊ جو وقت"}\r
+        }\r
+        "meta:Cocos"{\r
+            ls{"ڪوڪوس آئي لينڊ جو وقت"}\r
+        }\r
+        "meta:Colombia"{\r
+            ld{"ڪولمبيا جي اونهاري جو وقت"}\r
+            lg{"ڪولمبيا جو وقت"}\r
+            ls{"ڪولمبيا جو معياري وقت"}\r
+        }\r
+        "meta:Cook"{\r
+            ld{"ڪوڪ آئي لينڊ جي اڌ اونهاري جو وقت"}\r
+            lg{"ڪوڪ آئي لينڊ جو وقت"}\r
+            ls{"ڪوڪ آئي لينڊ جو معياري وقت"}\r
+        }\r
+        "meta:Cuba"{\r
+            ld{"ڪيوبا جي ڏينهن جو وقت"}\r
+            lg{"ڪيوبا جو وقت"}\r
+            ls{"ڪيوبا جو معياري وقت"}\r
+        }\r
+        "meta:Davis"{\r
+            ls{"ڊيوس جو وقت"}\r
+        }\r
+        "meta:DumontDUrville"{\r
+            ls{"ڊومانٽ درويئل جو وقت"}\r
+        }\r
+        "meta:East_Timor"{\r
+            ls{"اوڀر تيمور جو وقت"}\r
+        }\r
+        "meta:Easter"{\r
+            ld{"ايسٽر آئي لينڊ جي اونهاري جو وقت"}\r
+            lg{"ايسٽر آئي لينڊ جو وقت"}\r
+            ls{"ايسٽر آئي لينڊ جو معياري وقت"}\r
+        }\r
+        "meta:Ecuador"{\r
+            ls{"ايڪواڊور جو وقت"}\r
+        }\r
+        "meta:Europe_Central"{\r
+            ld{"مرڪزي يورپي اونهاري جو وقت"}\r
+            lg{"مرڪزي يورپي وقت"}\r
+            ls{"مرڪزي يورپي معياري وقت"}\r
+        }\r
+        "meta:Europe_Eastern"{\r
+            ld{"مشرقي يورپي اونهاري جو وقت"}\r
+            lg{"مشرقي يورپي وقت"}\r
+            ls{"مشرقي يورپي معياري وقت"}\r
+        }\r
+        "meta:Europe_Further_Eastern"{\r
+            ls{"وڌيڪ مشرقي يورپي وقت"}\r
+        }\r
+        "meta:Europe_Western"{\r
+            ld{"مغربي يورپي ڏينهن جو وقت"}\r
+            lg{"مغربي يورپي وقت"}\r
+            ls{"مغربي يورپي معياري وقت"}\r
+        }\r
+        "meta:Falkland"{\r
+            ld{"فاڪ لينڊ آئي لينڊ جي اونهاري جو وقت"}\r
+            lg{"فاڪ لينڊ آئي لينڊ جو وقت"}\r
+            ls{"فاڪ لينڊ آئي لينڊ جو معياري وقت"}\r
+        }\r
+        "meta:Fiji"{\r
+            ld{"فجي جي اونهاري جو وقت"}\r
+            lg{"فجي جو وقت"}\r
+            ls{"فجي جو معياري وقت"}\r
+        }\r
+        "meta:French_Guiana"{\r
+            ls{"فرانسيسي گيانا جو وقت"}\r
+        }\r
+        "meta:French_Southern"{\r
+            ls{"فرانسيسي ڏاکڻي ۽ انٽارڪٽڪ جو وقت"}\r
+        }\r
+        "meta:GMT"{\r
+            ls{"گرين وچ مين ٽائيم"}\r
+        }\r
+        "meta:Galapagos"{\r
+            ls{"گالاپاگوز جو وقت"}\r
+        }\r
+        "meta:Gambier"{\r
+            ls{"گيمبيئر جو وقت"}\r
+        }\r
+        "meta:Georgia"{\r
+            ld{"جارجيا جي اونهاري جو وقت"}\r
+            lg{"جارجيا جو وقت"}\r
+            ls{"جارجيا جو معياري وقت"}\r
+        }\r
+        "meta:Gilbert_Islands"{\r
+            ls{"گلبرٽ آئي لينڊ جو وقت"}\r
+        }\r
+        "meta:Greenland_Eastern"{\r
+            ld{"مشرقي گرين لينڊ جي اونهاري جو وقت"}\r
+            lg{"مشرقي گرين لينڊ جو وقت"}\r
+            ls{"مشرقي گرين لينڊ جو معياري وقت"}\r
+        }\r
+        "meta:Greenland_Western"{\r
+            ld{"مغربي گرين لينڊ جي اونهاري جو وقت"}\r
+            lg{"مغربي گرين لينڊ جو وقت"}\r
+            ls{"مغربي گرين لينڊ جو معياري وقت"}\r
+        }\r
+        "meta:Gulf"{\r
+            ls{"خلج معياري وقت"}\r
+        }\r
+        "meta:Guyana"{\r
+            ls{"گيانائي وقت"}\r
+        }\r
+        "meta:Hawaii_Aleutian"{\r
+            ld{"هوائي اليوٽين جي ڏينهن جو وقت"}\r
+            lg{"هوائي اليوٽين جو وقت"}\r
+            ls{"هوائي اليوٽين جو معياري وقت"}\r
+        }\r
+        "meta:Hong_Kong"{\r
+            ld{"هانگ ڪانگ جي اونهاري جو وقت"}\r
+            lg{"هانگ ڪانگ جو وقت"}\r
+            ls{"هانگ ڪانگ جو معياري وقت"}\r
+        }\r
+        "meta:Hovd"{\r
+            ld{"هووڊ جي اونهاري جو وقت"}\r
+            lg{"هووڊ جو وقت"}\r
+            ls{"هووڊ جو معياري وقت"}\r
+        }\r
+        "meta:India"{\r
+            ls{"ڀارت جو معياري وقت"}\r
+        }\r
+        "meta:Indian_Ocean"{\r
+            ls{"هند سمنڊ جو وقت"}\r
+        }\r
+        "meta:Indochina"{\r
+            ls{"انڊو چائنا جو وقت"}\r
+        }\r
+        "meta:Indonesia_Central"{\r
+            ls{"مرڪزي انڊونيشيا جو وقت"}\r
+        }\r
+        "meta:Indonesia_Eastern"{\r
+            ls{"اوڀر انڊونيشيا جو وقت"}\r
+        }\r
+        "meta:Indonesia_Western"{\r
+            ls{"اولهه انڊونيشيا جو وقت"}\r
+        }\r
+        "meta:Iran"{\r
+            ld{"ايران جي ڏينهن جو وقت"}\r
+            lg{"ايران جو وقت"}\r
+            ls{"ايران جو معياري وقت"}\r
+        }\r
+        "meta:Irkutsk"{\r
+            ld{"ارڪتسڪ جي ڏينهن جو وقت"}\r
+            lg{"ارڪتسڪ جو وقت"}\r
+            ls{"ارڪتسڪ جو معياري وقت"}\r
+        }\r
+        "meta:Israel"{\r
+            ld{"اسرائيل جي ڏينهن جو وقت"}\r
+            lg{"اسرائيل جو وقت"}\r
+            ls{"اسرائيل جو معياري وقت"}\r
+        }\r
+        "meta:Japan"{\r
+            ld{"جاپان جي ڏينهن جو وقت"}\r
+            lg{"جاپان جو وقت"}\r
+            ls{"جاپان جو معياري وقت"}\r
+        }\r
+        "meta:Kazakhstan_Eastern"{\r
+            ls{"اوڀر قزاقستان جو وقت"}\r
+        }\r
+        "meta:Kazakhstan_Western"{\r
+            ls{"اولهه قزاقستان جو وقت"}\r
+        }\r
+        "meta:Korea"{\r
+            ld{"ڪوريا جي ڏينهن جو وقت"}\r
+            lg{"ڪوريا جو وقت"}\r
+            ls{"ڪوريا جو معياري وقت"}\r
+        }\r
+        "meta:Kosrae"{\r
+            ls{"ڪوسرائي جو وقت"}\r
+        }\r
+        "meta:Krasnoyarsk"{\r
+            ld{"ڪریسنویارسڪ جي ڏينهن جو وقت"}\r
+            lg{"ڪریسنویارسڪ جو وقت"}\r
+            ls{"ڪریسنویارسڪ جو معياري وقت"}\r
+        }\r
+        "meta:Kyrgystan"{\r
+            ls{"ڪرگزستان جو وقت"}\r
+        }\r
+        "meta:Line_Islands"{\r
+            ls{"لائن آئي لينڊ جو وقت"}\r
+        }\r
+        "meta:Lord_Howe"{\r
+            ld{"لورڊ هووي جي ڏينهن جو وقت"}\r
+            lg{"لورڊ هووي جو وقت"}\r
+            ls{"لورڊ هووي جو معياري وقت"}\r
+        }\r
+        "meta:Macquarie"{\r
+            ls{"مڪوائري آئي لينڊ جو وقت"}\r
+        }\r
+        "meta:Magadan"{\r
+            ld{"مگادان جي ڏينهن جي وقت"}\r
+            lg{"مگادان جو وقت"}\r
+            ls{"مگادان جو معياري وقت"}\r
+        }\r
+        "meta:Malaysia"{\r
+            ls{"ملائيشيا جو وقت"}\r
+        }\r
+        "meta:Maldives"{\r
+            ls{"مالديپ جو وقت"}\r
+        }\r
+        "meta:Marquesas"{\r
+            ls{"مرڪيوسس جو وقت"}\r
+        }\r
+        "meta:Marshall_Islands"{\r
+            ls{"مارشل آئي لينڊ جو وقت"}\r
+        }\r
+        "meta:Mauritius"{\r
+            ld{"موريشيس جي اونهاري جو وقت"}\r
+            lg{"موريشيس جو وقت"}\r
+            ls{"موريشيس جو معياري وقت"}\r
+        }\r
+        "meta:Mawson"{\r
+            ls{"مائوسن جو وقت"}\r
+        }\r
+        "meta:Mexico_Northwest"{\r
+            ld{"شمالي مغربي ميڪسيڪو جي ڏينهن جو وقت"}\r
+            lg{"شمالي مغربي ميڪسيڪو جو وقت"}\r
+            ls{"شمالي مغربي ميڪسيڪو جو معياري وقت"}\r
+        }\r
+        "meta:Mexico_Pacific"{\r
+            ld{"ميڪسيڪن پيسيفڪ جي ڏينهن جو وقت"}\r
+            lg{"ميڪسيڪن پيسيفڪ وقت"}\r
+            ls{"ميڪسيڪن پيسيفڪ جو معياري وقت"}\r
+        }\r
+        "meta:Mongolia"{\r
+            ld{"اولان باتر جي اونهاري جو وقت"}\r
+            lg{"اولان باتر جو وقت"}\r
+            ls{"اولان باتر جو معياري وقت"}\r
+        }\r
+        "meta:Moscow"{\r
+            ld{"ماسڪو جي ڏينهن جي وقت"}\r
+            lg{"ماسڪو جو وقت"}\r
+            ls{"ماسڪو جو معياري وقت"}\r
+        }\r
+        "meta:Myanmar"{\r
+            ls{"ميانمار جو وقت"}\r
+        }\r
+        "meta:Nauru"{\r
+            ls{"نائورو جو وقت"}\r
+        }\r
+        "meta:Nepal"{\r
+            ls{"نيپال جو وقت"}\r
+        }\r
+        "meta:New_Caledonia"{\r
+            ld{"نيو ڪيليڊونيا جي اونهاري جو وقت"}\r
+            lg{"نيو ڪيليڊونيا جو وقت"}\r
+            ls{"نيو ڪيليڊونيا جو معياري وقت"}\r
+        }\r
+        "meta:New_Zealand"{\r
+            ld{"نيوزيلينڊ جي ڏينهن جو وقت"}\r
+            lg{"نيوزيلينڊ جو وقت"}\r
+            ls{"نيوزيلينڊ جو معياري وقت"}\r
+        }\r
+        "meta:Newfoundland"{\r
+            ld{"نيو فائونڊ لينڊ جي ڏينهن جو وقت"}\r
+            lg{"نيو فائونڊ لينڊ جو وقت"}\r
+            ls{"نيو فائونڊ لينڊ جو معياري وقت"}\r
+        }\r
+        "meta:Niue"{\r
+            ls{"نيووي جو وقت"}\r
+        }\r
+        "meta:Norfolk"{\r
+            ls{"نار فوڪ آئي لينڊ جو وقت"}\r
+        }\r
+        "meta:Noronha"{\r
+            ld{"فرنانڊو دي نورونها جي اونهاري وقت"}\r
+            lg{"فرنانڊو دي نورونها جو وقت"}\r
+            ls{"فرنانڊو دي نورونها جو معياري وقت"}\r
+        }\r
+        "meta:Novosibirsk"{\r
+            ld{"نوواسبئيرسڪ جي ڏينهن جو وقت"}\r
+            lg{"نوواسبئيرسڪ جو وقت"}\r
+            ls{"نوواسبئيرسڪ جو معياري وقت"}\r
+        }\r
+        "meta:Omsk"{\r
+            ld{"اومسڪ جي ڏينهن جو وقت"}\r
+            lg{"اومسڪ جو وقت"}\r
+            ls{"اومسڪ جو معياري وقت"}\r
+        }\r
+        "meta:Pakistan"{\r
+            ld{"پاڪستان جي اونهاري جو وقت"}\r
+            lg{"پاڪستان جو وقت"}\r
+            ls{"پاڪستان جو معياري وقت"}\r
+        }\r
+        "meta:Palau"{\r
+            ls{"پلائو جو وقت"}\r
+        }\r
+        "meta:Papua_New_Guinea"{\r
+            ls{"پاپوا نيو گني جو وقت"}\r
+        }\r
+        "meta:Paraguay"{\r
+            ld{"پيراگوئي جي اونهاري جو وقت"}\r
+            lg{"پيراگوئي جو وقت"}\r
+            ls{"پيراگوئي جو معياري وقت"}\r
+        }\r
+        "meta:Peru"{\r
+            ld{"پيرو جي اونهاري جو وقت"}\r
+            lg{"پيرو جو وقت"}\r
+            ls{"پيرو جو معياري وقت"}\r
+        }\r
+        "meta:Philippines"{\r
+            ld{"فلپائن جي اونهاري جو وقت"}\r
+            lg{"فلپائن جو وقت"}\r
+            ls{"فلپائن جو معياري وقت"}\r
+        }\r
+        "meta:Phoenix_Islands"{\r
+            ls{"فونيڪس آئي لينڊ جو وقت"}\r
+        }\r
+        "meta:Pierre_Miquelon"{\r
+            ld{"سینٽ پیئر و میڪوئیلون جي ڏينهن جو وقت"}\r
+            lg{"سينٽ پيئر ائن ميڪوئلون جو وقت"}\r
+            ls{"سینٽ پیئر اَئن میڪوئلون جو مانائتو وقت"}\r
+        }\r
+        "meta:Pitcairn"{\r
+            ls{"پٽڪيرن جو وقت"}\r
+        }\r
+        "meta:Ponape"{\r
+            ls{"پوناپي جو وقت"}\r
+        }\r
+        "meta:Pyongyang"{\r
+            ls{"شيانگ يانگ جو وقت"}\r
+        }\r
+        "meta:Reunion"{\r
+            ls{"ري يونين جو وقت"}\r
+        }\r
+        "meta:Rothera"{\r
+            ls{"روٿيرا جو وقت"}\r
+        }\r
+        "meta:Sakhalin"{\r
+            ld{"سخالين جي ڏينهن جو وقت"}\r
+            lg{"سخالين جو وقت"}\r
+            ls{"سخالين جو معياري وقت"}\r
+        }\r
+        "meta:Samoa"{\r
+            ld{"ساموا جي ڏينهن جو وقت"}\r
+            lg{"ساموا جو وقت"}\r
+            ls{"ساموا جو معياري وقت"}\r
+        }\r
+        "meta:Seychelles"{\r
+            ls{"شي شلز جو وقت"}\r
+        }\r
+        "meta:Singapore"{\r
+            ls{"سنگاپور جو معياري وقت"}\r
+        }\r
+        "meta:Solomon"{\r
+            ls{"سولومن آئي لينڊ جو وقت"}\r
+        }\r
+        "meta:South_Georgia"{\r
+            ls{"ڏکڻ جارجيا جو وقت"}\r
+        }\r
+        "meta:Suriname"{\r
+            ls{"سوري نام جو وقت"}\r
+        }\r
+        "meta:Syowa"{\r
+            ls{"سائيوا جو وقت"}\r
+        }\r
+        "meta:Tahiti"{\r
+            ls{"تاهيٽي جو وقت"}\r
+        }\r
+        "meta:Taipei"{\r
+            ld{"تائپي جي ڏينهن جو وقت"}\r
+            lg{"تائپي جو وقت"}\r
+            ls{"تائپي جو معياري وقت"}\r
+        }\r
+        "meta:Tajikistan"{\r
+            ls{"تاجڪستان جو وقت"}\r
+        }\r
+        "meta:Tokelau"{\r
+            ls{"ٽوڪيلائو جو وقت"}\r
+        }\r
+        "meta:Tonga"{\r
+            ld{"ٽونگا جي اونهاري جو وقت"}\r
+            lg{"ٽونگا جو وقت"}\r
+            ls{"ٽونگا جو معياري وقت"}\r
+        }\r
+        "meta:Truk"{\r
+            ls{"چيوڪ جو وقت"}\r
+        }\r
+        "meta:Turkmenistan"{\r
+            ld{"ترڪمانستان جي اونهاري جو وقت"}\r
+            lg{"ترڪمانستان جو وقت"}\r
+            ls{"ترڪمانستان جو معياري وقت"}\r
+        }\r
+        "meta:Tuvalu"{\r
+            ls{"تووالو جو وقت"}\r
+        }\r
+        "meta:Uruguay"{\r
+            ld{"يوروگائي جي اونهاري جو وقت"}\r
+            lg{"يوروگائي جو وقت"}\r
+            ls{"يوروگائي جو معياري وقت"}\r
+        }\r
+        "meta:Uzbekistan"{\r
+            ld{"ازبڪستان جي اونهاري جو وقت"}\r
+            lg{"ازبڪستان جو وقت"}\r
+            ls{"ازبڪستان جو معياري وقت"}\r
+        }\r
+        "meta:Vanuatu"{\r
+            ld{"وانواتو جي ڏينهن جو وقت"}\r
+            lg{"وانواتو جو وقت"}\r
+            ls{"وانواتو جو معياري وقت"}\r
+        }\r
+        "meta:Venezuela"{\r
+            ls{"وينزويلا جو وقت"}\r
+        }\r
+        "meta:Vladivostok"{\r
+            ld{"اولادووستوڪ جي ڏينهن جو وقت"}\r
+            lg{"ولادووستوڪ جو وقت"}\r
+            ls{"ولادووستوڪ جو معياري وقت"}\r
+        }\r
+        "meta:Volgograd"{\r
+            ld{"وولگوگراد جي ڏينهن جو وقت"}\r
+            lg{"وولگوگراد جو وقت"}\r
+            ls{"وولگوگراد جو معياري وقت"}\r
+        }\r
+        "meta:Vostok"{\r
+            ls{"ووسٽوڪ جو وقت"}\r
+        }\r
+        "meta:Wake"{\r
+            ls{"ويڪ آئي لينڊ جو وقت"}\r
+        }\r
+        "meta:Wallis"{\r
+            ls{"ويلس ۽ فتونا جو وقت"}\r
+        }\r
+        "meta:Yakutsk"{\r
+            ld{"ياڪتسڪ جي ڏينهن جو وقت"}\r
+            lg{"ياڪتسڪ جو وقت"}\r
+            ls{"ياڪتسڪ جو معياري وقت"}\r
+        }\r
+        "meta:Yekaterinburg"{\r
+            ld{"يڪاٽيرنبرگ جي ڏينهن جو وقت"}\r
+            lg{"يڪاٽيرنبرگ جو وقت"}\r
+            ls{"يڪاٽيرنبرگ جو معياري وقت"}\r
+        }\r
+        fallbackFormat{"{1} ({0})"}\r
+        gmtFormat{"GMT{0}"}\r
+        gmtZeroFormat{"GMT"}\r
+        hourFormat{"+HH:mm;-HH:mm"}\r
+        regionFormat{"{0} وقت"}\r
+        regionFormatDaylight{"{0} ڏينهن جو وقت"}\r
+        regionFormatStandard{"{0} معياري وقت"}\r
+    }\r
+}\r
index 95448ea13ff1c0bb002395637d8186a31a15ef0f..0aed8f4807395d926a52bed3b548da350acecffe 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 se{\r
-    Version{"2.1.38.69"}\r
+    Version{"2.1.43.94"}\r
     zoneStrings{\r
         "America:Curacao"{\r
             ec{"Curaçao"}\r
index 051bdeb793acb9d6a141c3f6bb2cc48687ecc63c..79ead543e249636f9c51ecad932f55988741a864 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 se_FI{\r
-    Version{"2.1.38.73"}\r
+    Version{"2.1.44.88"}\r
     zoneStrings{\r
         "Africa:Cairo"{\r
             ec{"Kairo"}\r
index 4d01ddb4c18f448f0f5c4eac24bb13d010521033..697f0d9da0c984c2d494d6762a0fcd821447bb00 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 si{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.50"}\r
     zoneStrings{\r
         "Africa:Abidjan"{\r
             ec{"අබිජාන්"}\r
index 71c6b008654c2564959e80852cec10638e9b894f..2b15a10416be1615cd9f8810b90b98672bfffdaa 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 sk{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.65"}\r
     zoneStrings{\r
         "Africa:Abidjan"{\r
             ec{"Abidjan"}\r
index 9fd260ecf48e1e7cbddd0a66dac0a7599f36f02f..cc5e8d0c910b762c6b28424d19f5dc371b8227c0 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 sl{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.91"}\r
     zoneStrings{\r
         "Africa:Abidjan"{\r
             ec{"Abidžan"}\r
@@ -952,7 +952,7 @@ sl{
             ec{"Sydney"}\r
         }\r
         "Etc:UTC"{\r
-            ls{"Univerzalni koordinirani čas"}\r
+            ls{"univerzalni koordinirani čas"}\r
         }\r
         "Etc:Unknown"{\r
             ec{"neznano mesto"}\r
index 7724fa70d60bcccf806646c3cf36c909f073bf80..9b77be71015db0647cf96b41ed772e45429d1288 100644 (file)
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 sn{\r
-    Version{"2.1.39.11"}\r
+    Version{"2.1.43.94"}\r
 }\r
index f16e7e4f85774a9cad999ddcfed7be30f01a1c8b..3da2fb6728e4f9be06e904fa5891a23178d2c5e9 100644 (file)
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 so{\r
-    Version{"2.1.38.69"}\r
+    Version{"2.1.43.94"}\r
     zoneStrings{\r
+        "Africa:Abidjan"{\r
+            ec{"Abidjaan"}\r
+        }\r
+        "Africa:Accra"{\r
+            ec{"Akra"}\r
+        }\r
+        "Africa:Addis_Ababa"{\r
+            ec{"Addis Ababa"}\r
+        }\r
+        "Africa:Algiers"{\r
+            ec{"Aljeeris"}\r
+        }\r
+        "Africa:Asmera"{\r
+            ec{"Caasmara"}\r
+        }\r
+        "Africa:Bamako"{\r
+            ec{"Bamaako"}\r
+        }\r
+        "Africa:Bangui"{\r
+            ec{"Bangui"}\r
+        }\r
+        "Africa:Banjul"{\r
+            ec{"Banjui"}\r
+        }\r
+        "Africa:Bissau"{\r
+            ec{"Bisau"}\r
+        }\r
+        "Africa:Blantyre"{\r
+            ec{"Balantire"}\r
+        }\r
+        "Africa:Brazzaville"{\r
+            ec{"Barasafil"}\r
+        }\r
+        "Africa:Bujumbura"{\r
+            ec{"Bujumbura"}\r
+        }\r
+        "Africa:Cairo"{\r
+            ec{"Qaahira"}\r
+        }\r
+        "Africa:Casablanca"{\r
+            ec{"Kasabalaanka"}\r
+        }\r
+        "Africa:Ceuta"{\r
+            ec{"Seuta"}\r
+        }\r
+        "Africa:Conakry"{\r
+            ec{"Conakri"}\r
+        }\r
+        "Africa:Dakar"{\r
+            ec{"Dakar"}\r
+        }\r
+        "Africa:Dar_es_Salaam"{\r
+            ec{"Daresalaam"}\r
+        }\r
+        "Africa:Djibouti"{\r
+            ec{"Djibuuti"}\r
+        }\r
+        "Africa:Douala"{\r
+            ec{"Douaala"}\r
+        }\r
+        "Africa:El_Aaiun"{\r
+            ec{"El Ceyuun"}\r
+        }\r
+        "Africa:Freetown"{\r
+            ec{"Firiitawn"}\r
+        }\r
+        "Africa:Gaborone"{\r
+            ec{"Gabroon"}\r
+        }\r
+        "Africa:Harare"{\r
+            ec{"Haraare"}\r
+        }\r
+        "Africa:Johannesburg"{\r
+            ec{"Johansbaag"}\r
+        }\r
+        "Africa:Juba"{\r
+            ec{"Juba"}\r
+        }\r
+        "Africa:Kampala"{\r
+            ec{"Kambaala"}\r
+        }\r
+        "Africa:Khartoum"{\r
+            ec{"Khartuum"}\r
+        }\r
+        "Africa:Kigali"{\r
+            ec{"Kigali"}\r
+        }\r
+        "Africa:Kinshasa"{\r
+            ec{"Kinshasa"}\r
+        }\r
+        "Africa:Lagos"{\r
+            ec{"Lagos"}\r
+        }\r
+        "Africa:Libreville"{\r
+            ec{"Librefil"}\r
+        }\r
+        "Africa:Lome"{\r
+            ec{"Loom"}\r
+        }\r
+        "Africa:Luanda"{\r
+            ec{"Luanda"}\r
+        }\r
+        "Africa:Lubumbashi"{\r
+            ec{"Lubumbaashi"}\r
+        }\r
+        "Africa:Lusaka"{\r
+            ec{"Lusaaka"}\r
+        }\r
+        "Africa:Malabo"{\r
+            ec{"Malabo"}\r
+        }\r
+        "Africa:Maputo"{\r
+            ec{"Maputo"}\r
+        }\r
+        "Africa:Maseru"{\r
+            ec{"Maseero"}\r
+        }\r
+        "Africa:Mbabane"{\r
+            ec{"Mbabane"}\r
+        }\r
+        "Africa:Mogadishu"{\r
+            ec{"Muqdisho"}\r
+        }\r
+        "Africa:Monrovia"{\r
+            ec{"Monrofiya"}\r
+        }\r
+        "Africa:Nairobi"{\r
+            ec{"Nairobi"}\r
+        }\r
+        "Africa:Ndjamena"{\r
+            ec{"Ndjamena"}\r
+        }\r
+        "Africa:Niamey"{\r
+            ec{"Niamey"}\r
+        }\r
+        "Africa:Nouakchott"{\r
+            ec{"Nookjot"}\r
+        }\r
+        "Africa:Ouagadougou"{\r
+            ec{"Ouagadougou"}\r
+        }\r
+        "Africa:Porto-Novo"{\r
+            ec{"Boorto-Noofo"}\r
+        }\r
+        "Africa:Sao_Tome"{\r
+            ec{"Sao Tome"}\r
+        }\r
+        "Africa:Tripoli"{\r
+            ec{"Tripoli"}\r
+        }\r
+        "Africa:Tunis"{\r
+            ec{"Tunis"}\r
+        }\r
+        "Africa:Windhoek"{\r
+            ec{"Windhook"}\r
+        }\r
+        "America:Adak"{\r
+            ec{"Adak"}\r
+        }\r
+        "America:Anchorage"{\r
+            ec{"Anjorage"}\r
+        }\r
+        "America:Anguilla"{\r
+            ec{"Anguilla"}\r
+        }\r
+        "America:Antigua"{\r
+            ec{"Antigua"}\r
+        }\r
+        "America:Araguaina"{\r
+            ec{"Araguaina"}\r
+        }\r
+        "America:Argentina:La_Rioja"{\r
+            ec{"La Rioja"}\r
+        }\r
+        "America:Argentina:Rio_Gallegos"{\r
+            ec{"Rio Gallegos"}\r
+        }\r
+        "America:Argentina:Salta"{\r
+            ec{"Salta"}\r
+        }\r
+        "America:Argentina:San_Juan"{\r
+            ec{"San Juan"}\r
+        }\r
+        "America:Argentina:San_Luis"{\r
+            ec{"San Luis"}\r
+        }\r
+        "America:Argentina:Tucuman"{\r
+            ec{"Tukuumaan"}\r
+        }\r
+        "America:Argentina:Ushuaia"{\r
+            ec{"Ushuaay"}\r
+        }\r
+        "America:Aruba"{\r
+            ec{"Aruba"}\r
+        }\r
+        "America:Asuncion"{\r
+            ec{"Asunkion"}\r
+        }\r
+        "America:Bahia"{\r
+            ec{"Baahiya"}\r
+        }\r
+        "America:Bahia_Banderas"{\r
+            ec{"Bahiya Banderas"}\r
+        }\r
+        "America:Barbados"{\r
+            ec{"Barbados"}\r
+        }\r
+        "America:Belem"{\r
+            ec{"Belem"}\r
+        }\r
+        "America:Belize"{\r
+            ec{"Beliise"}\r
+        }\r
+        "America:Blanc-Sablon"{\r
+            ec{"Balank-Sablon"}\r
+        }\r
+        "America:Boa_Vista"{\r
+            ec{"Bow Fista"}\r
+        }\r
+        "America:Bogota"{\r
+            ec{"Bogota"}\r
+        }\r
+        "America:Boise"{\r
+            ec{"Boys"}\r
+        }\r
+        "America:Buenos_Aires"{\r
+            ec{"Boonas Ayris"}\r
+        }\r
+        "America:Cambridge_Bay"{\r
+            ec{"Kambriij Baay"}\r
+        }\r
+        "America:Campo_Grande"{\r
+            ec{"Kaambo Carande"}\r
+        }\r
+        "America:Cancun"{\r
+            ec{"Kaankuun"}\r
+        }\r
+        "America:Caracas"{\r
+            ec{"Karakaas"}\r
+        }\r
+        "America:Catamarca"{\r
+            ec{"Katamaarka"}\r
+        }\r
+        "America:Cayenne"{\r
+            ec{"Kayeen"}\r
+        }\r
+        "America:Cayman"{\r
+            ec{"Keymaan"}\r
+        }\r
+        "America:Chicago"{\r
+            ec{"Jikaago"}\r
+        }\r
+        "America:Chihuahua"{\r
+            ec{"Jiwaahuu"}\r
+        }\r
+        "America:Coral_Harbour"{\r
+            ec{"Atikokaan"}\r
+        }\r
+        "America:Cordoba"{\r
+            ec{"Kordooba"}\r
+        }\r
+        "America:Costa_Rica"{\r
+            ec{"Kosta Riika"}\r
+        }\r
+        "America:Creston"{\r
+            ec{"Karestoon"}\r
+        }\r
+        "America:Cuiaba"{\r
+            ec{"Kuiaaba"}\r
+        }\r
+        "America:Curacao"{\r
+            ec{"Kurakao"}\r
+        }\r
+        "America:Danmarkshavn"{\r
+            ec{"Daanmaakshaan"}\r
+        }\r
+        "America:Dawson"{\r
+            ec{"Doosan"}\r
+        }\r
+        "America:Dawson_Creek"{\r
+            ec{"Doosan Kireek"}\r
+        }\r
+        "America:Denver"{\r
+            ec{"Denfar"}\r
+        }\r
+        "America:Detroit"{\r
+            ec{"Detroyt"}\r
+        }\r
+        "America:Dominica"{\r
+            ec{"Dominika"}\r
+        }\r
+        "America:Edmonton"{\r
+            ec{"Edmonton"}\r
+        }\r
+        "America:Eirunepe"{\r
+            ec{"Iiruneeb"}\r
+        }\r
+        "America:El_Salvador"{\r
+            ec{"El Salfadoor"}\r
+        }\r
+        "America:Fort_Nelson"{\r
+            ec{"Foot Nelsoon"}\r
+        }\r
+        "America:Fortaleza"{\r
+            ec{"Footalesa"}\r
+        }\r
+        "America:Glace_Bay"{\r
+            ec{"Galeys Bay"}\r
+        }\r
+        "America:Godthab"{\r
+            ec{"Nuuk"}\r
+        }\r
+        "America:Goose_Bay"{\r
+            ec{"Guus Bay"}\r
+        }\r
+        "America:Grand_Turk"{\r
+            ec{"Garaand Turk"}\r
+        }\r
+        "America:Grenada"{\r
+            ec{"Garenada"}\r
+        }\r
+        "America:Guadeloupe"{\r
+            ec{"Guadeluub"}\r
+        }\r
+        "America:Guatemala"{\r
+            ec{"Guatemaala"}\r
+        }\r
+        "America:Guayaquil"{\r
+            ec{"Guayaquil"}\r
+        }\r
+        "America:Guyana"{\r
+            ec{"Guyaana"}\r
+        }\r
+        "America:Halifax"{\r
+            ec{"HaliFakis"}\r
+        }\r
+        "America:Havana"{\r
+            ec{"Hafaana"}\r
+        }\r
+        "America:Hermosillo"{\r
+            ec{"Harmosilo"}\r
+        }\r
+        "America:Indiana:Knox"{\r
+            ec{"Nokis, Indiaana"}\r
+        }\r
+        "America:Indiana:Marengo"{\r
+            ec{"Mareengo, Indiaana"}\r
+        }\r
+        "America:Indiana:Petersburg"{\r
+            ec{"Betesbaag, Indiaana"}\r
+        }\r
+        "America:Indiana:Tell_City"{\r
+            ec{"Teel Siti Indiaana"}\r
+        }\r
+        "America:Indiana:Vevay"{\r
+            ec{"Feefaay\, Indiaana"}\r
+        }\r
+        "America:Indiana:Vincennes"{\r
+            ec{"Finseenes, Indiana"}\r
+        }\r
+        "America:Indiana:Winamac"{\r
+            ec{"Winaamak, Indiaana"}\r
+        }\r
+        "America:Indianapolis"{\r
+            ec{"Indaanboolis"}\r
+        }\r
+        "America:Inuvik"{\r
+            ec{"Inuufik"}\r
+        }\r
+        "America:Iqaluit"{\r
+            ec{"Iqaaluut"}\r
+        }\r
+        "America:Jamaica"{\r
+            ec{"Jamaaika"}\r
+        }\r
+        "America:Jujuy"{\r
+            ec{"Jujuy"}\r
+        }\r
+        "America:Juneau"{\r
+            ec{"Juniyuu"}\r
+        }\r
+        "America:Kentucky:Monticello"{\r
+            ec{"Montiseelo, Kentaki"}\r
+        }\r
+        "America:Kralendijk"{\r
+            ec{"Kiraalendik"}\r
+        }\r
+        "America:La_Paz"{\r
+            ec{"Laa Baas"}\r
+        }\r
+        "America:Lima"{\r
+            ec{"Liima"}\r
+        }\r
+        "America:Los_Angeles"{\r
+            ec{"Los Angeles"}\r
+        }\r
+        "America:Louisville"{\r
+            ec{"Luuisfil"}\r
+        }\r
+        "America:Lower_Princes"{\r
+            ec{"Loowa Birinses Kuwaata"}\r
+        }\r
+        "America:Maceio"{\r
+            ec{"Maasiiyo"}\r
+        }\r
+        "America:Managua"{\r
+            ec{"Manaaguwa"}\r
+        }\r
+        "America:Manaus"{\r
+            ec{"Manaauus"}\r
+        }\r
+        "America:Marigot"{\r
+            ec{"Maarigot"}\r
+        }\r
+        "America:Martinique"{\r
+            ec{"Maartiniik"}\r
+        }\r
+        "America:Matamoros"{\r
+            ec{"Mataamooris"}\r
+        }\r
+        "America:Mazatlan"{\r
+            ec{"Mazaatlan"}\r
+        }\r
+        "America:Mendoza"{\r
+            ec{"Meendoosa"}\r
+        }\r
+        "America:Menominee"{\r
+            ec{"Menoominee"}\r
+        }\r
+        "America:Merida"{\r
+            ec{"Meriida"}\r
+        }\r
+        "America:Metlakatla"{\r
+            ec{"Metlaakatla"}\r
+        }\r
+        "America:Mexico_City"{\r
+            ec{"Meksiko Sity"}\r
+        }\r
+        "America:Miquelon"{\r
+            ec{"Miiquulon"}\r
+        }\r
+        "America:Moncton"{\r
+            ec{"Moonktoon"}\r
+        }\r
+        "America:Monterrey"{\r
+            ec{"Moonteerey"}\r
+        }\r
+        "America:Montevideo"{\r
+            ec{"Moontafiidiyo"}\r
+        }\r
+        "America:Montserrat"{\r
+            ec{"Moontseraat"}\r
+        }\r
+        "America:Nassau"{\r
+            ec{"Nasaaw"}\r
+        }\r
+        "America:New_York"{\r
+            ec{"Niyuu Yook"}\r
+        }\r
+        "America:Nipigon"{\r
+            ec{"Nibiigoon"}\r
+        }\r
+        "America:Nome"{\r
+            ec{"Noom"}\r
+        }\r
+        "America:Noronha"{\r
+            ec{"Noroonha"}\r
+        }\r
+        "America:North_Dakota:Beulah"{\r
+            ec{"Biyuulah, Waqooyiga DaKoota"}\r
+        }\r
+        "America:North_Dakota:Center"{\r
+            ec{"Bartamaha, Waqooyiga Dakoota"}\r
+        }\r
+        "America:North_Dakota:New_Salem"{\r
+            ec{"Niyuu Saalem, Waqooyiga Dakoota"}\r
+        }\r
+        "America:Ojinaga"{\r
+            ec{"Ojinaaga"}\r
+        }\r
+        "America:Panama"{\r
+            ec{"Baanama"}\r
+        }\r
+        "America:Pangnirtung"{\r
+            ec{"Paangnirtuung"}\r
+        }\r
+        "America:Paramaribo"{\r
+            ec{"Baramaribo"}\r
+        }\r
+        "America:Phoenix"{\r
+            ec{"Fooniks"}\r
+        }\r
+        "America:Port-au-Prince"{\r
+            ec{"Dekadda Wiilka Boqorka"}\r
+        }\r
+        "America:Port_of_Spain"{\r
+            ec{"Dekadda Isbeyn"}\r
+        }\r
+        "America:Porto_Velho"{\r
+            ec{"Pooro Felho"}\r
+        }\r
+        "America:Puerto_Rico"{\r
+            ec{"Boorta Riiko"}\r
+        }\r
+        "America:Punta_Arenas"{\r
+            ec{"Punta Arinaas"}\r
+        }\r
+        "America:Rainy_River"{\r
+            ec{"Reyni River"}\r
+        }\r
+        "America:Rankin_Inlet"{\r
+            ec{"Raankin Inleet"}\r
+        }\r
+        "America:Recife"{\r
+            ec{"Receyf"}\r
+        }\r
+        "America:Regina"{\r
+            ec{"Rejiina"}\r
+        }\r
+        "America:Resolute"{\r
+            ec{"Resoluut"}\r
+        }\r
+        "America:Rio_Branco"{\r
+            ec{"Riyo Baraanko"}\r
+        }\r
+        "America:Santarem"{\r
+            ec{"Santareem"}\r
+        }\r
+        "America:Santiago"{\r
+            ec{"Santiyaago"}\r
+        }\r
+        "America:Santo_Domingo"{\r
+            ec{"Saanto Domingo"}\r
+        }\r
+        "America:Sao_Paulo"{\r
+            ec{"Saaw Boolo"}\r
+        }\r
+        "America:Scoresbysund"{\r
+            ec{"Itoqortoomiit"}\r
+        }\r
+        "America:Sitka"{\r
+            ec{"Siitka"}\r
+        }\r
+        "America:St_Barthelemy"{\r
+            ec{"St. Baartelemi"}\r
+        }\r
+        "America:St_Johns"{\r
+            ec{"St. Joon"}\r
+        }\r
+        "America:St_Kitts"{\r
+            ec{"St. Kits"}\r
+        }\r
+        "America:St_Lucia"{\r
+            ec{"St. Lusia"}\r
+        }\r
+        "America:St_Thomas"{\r
+            ec{"St. Toomas"}\r
+        }\r
+        "America:St_Vincent"{\r
+            ec{"St. Finsent"}\r
+        }\r
+        "America:Swift_Current"{\r
+            ec{"Iswift Karent"}\r
+        }\r
+        "America:Tegucigalpa"{\r
+            ec{"Tegusigalba"}\r
+        }\r
+        "America:Thule"{\r
+            ec{"Tuul"}\r
+        }\r
+        "America:Thunder_Bay"{\r
+            ec{"Tanda Bay"}\r
+        }\r
+        "America:Tijuana"{\r
+            ec{"Tijuaana"}\r
+        }\r
+        "America:Toronto"{\r
+            ec{"Toronto"}\r
+        }\r
+        "America:Tortola"{\r
+            ec{"Tortola"}\r
+        }\r
+        "America:Vancouver"{\r
+            ec{"Fankuufar"}\r
+        }\r
+        "America:Whitehorse"{\r
+            ec{"Farascad"}\r
+        }\r
+        "America:Winnipeg"{\r
+            ec{"Winibeg"}\r
+        }\r
+        "America:Yakutat"{\r
+            ec{"Yakutaat"}\r
+        }\r
+        "America:Yellowknife"{\r
+            ec{"Yelowneyf"}\r
+        }\r
+        "Antarctica:Casey"{\r
+            ec{"Keysee"}\r
+        }\r
+        "Antarctica:Davis"{\r
+            ec{"Dafis"}\r
+        }\r
+        "Antarctica:DumontDUrville"{\r
+            ec{"Dumont d’urfile"}\r
+        }\r
+        "Antarctica:Macquarie"{\r
+            ec{"Makquariy"}\r
+        }\r
+        "Antarctica:Mawson"{\r
+            ec{"Mawson"}\r
+        }\r
+        "Antarctica:McMurdo"{\r
+            ec{"MakMurdo"}\r
+        }\r
+        "Antarctica:Palmer"{\r
+            ec{"Baamar"}\r
+        }\r
+        "Antarctica:Rothera"{\r
+            ec{"Rotera"}\r
+        }\r
+        "Antarctica:Syowa"{\r
+            ec{"Siyowa"}\r
+        }\r
+        "Antarctica:Troll"{\r
+            ec{"Torool"}\r
+        }\r
+        "Antarctica:Vostok"{\r
+            ec{"Fostok"}\r
+        }\r
+        "Arctic:Longyearbyen"{\r
+            ec{"Longyearbyen"}\r
+        }\r
+        "Asia:Aden"{\r
+            ec{"Cadan"}\r
+        }\r
+        "Asia:Almaty"{\r
+            ec{"Almati"}\r
+        }\r
+        "Asia:Amman"{\r
+            ec{"Amman"}\r
+        }\r
+        "Asia:Anadyr"{\r
+            ec{"Anadiyr"}\r
+        }\r
+        "Asia:Aqtau"{\r
+            ec{"Aktaw"}\r
+        }\r
+        "Asia:Aqtobe"{\r
+            ec{"Aqtobe"}\r
+        }\r
+        "Asia:Ashgabat"{\r
+            ec{"Ashgabat"}\r
+        }\r
+        "Asia:Atyrau"{\r
+            ec{"Atiyraw"}\r
+        }\r
+        "Asia:Baghdad"{\r
+            ec{"Baqdaad"}\r
+        }\r
+        "Asia:Bahrain"{\r
+            ec{"Baxreyn"}\r
+        }\r
+        "Asia:Baku"{\r
+            ec{"Baku"}\r
+        }\r
+        "Asia:Bangkok"{\r
+            ec{"Bangkok"}\r
+        }\r
+        "Asia:Barnaul"{\r
+            ec{"Barnaauul"}\r
+        }\r
+        "Asia:Beirut"{\r
+            ec{"Beyrut"}\r
+        }\r
+        "Asia:Bishkek"{\r
+            ec{"Bishkek"}\r
+        }\r
+        "Asia:Brunei"{\r
+            ec{"Buruney"}\r
+        }\r
+        "Asia:Calcutta"{\r
+            ec{"Kolkata"}\r
+        }\r
+        "Asia:Chita"{\r
+            ec{"Kiita"}\r
+        }\r
+        "Asia:Choibalsan"{\r
+            ec{"Joybalsan"}\r
+        }\r
+        "Asia:Colombo"{\r
+            ec{"Kolombo"}\r
+        }\r
+        "Asia:Damascus"{\r
+            ec{"Dimishiq"}\r
+        }\r
+        "Asia:Dhaka"{\r
+            ec{"Dhaka"}\r
+        }\r
+        "Asia:Dili"{\r
+            ec{"Dili"}\r
+        }\r
+        "Asia:Dubai"{\r
+            ec{"Dubay"}\r
+        }\r
+        "Asia:Dushanbe"{\r
+            ec{"Dushanbe"}\r
+        }\r
+        "Asia:Famagusta"{\r
+            ec{"Famagusta"}\r
+        }\r
+        "Asia:Gaza"{\r
+            ec{"Gasa"}\r
+        }\r
+        "Asia:Hebron"{\r
+            ec{"Hebron"}\r
+        }\r
+        "Asia:Hong_Kong"{\r
+            ec{"Hong Kong"}\r
+        }\r
+        "Asia:Hovd"{\r
+            ec{"Hofud"}\r
+        }\r
+        "Asia:Irkutsk"{\r
+            ec{"Irkutsk"}\r
+        }\r
+        "Asia:Jakarta"{\r
+            ec{"Jakarta"}\r
+        }\r
+        "Asia:Jayapura"{\r
+            ec{"Jayabura"}\r
+        }\r
+        "Asia:Jerusalem"{\r
+            ec{"Jerusalem"}\r
+        }\r
+        "Asia:Kabul"{\r
+            ec{"Kabul"}\r
+        }\r
+        "Asia:Kamchatka"{\r
+            ec{"Kamkatka"}\r
+        }\r
+        "Asia:Karachi"{\r
+            ec{"Karaaji"}\r
+        }\r
+        "Asia:Katmandu"{\r
+            ec{"Katmandu"}\r
+        }\r
+        "Asia:Khandyga"{\r
+            ec{"Khandiyga"}\r
+        }\r
+        "Asia:Krasnoyarsk"{\r
+            ec{"Karasnoyarska"}\r
+        }\r
+        "Asia:Kuala_Lumpur"{\r
+            ec{"Kuala Lambuur"}\r
+        }\r
+        "Asia:Kuching"{\r
+            ec{"Kujing"}\r
+        }\r
+        "Asia:Kuwait"{\r
+            ec{"Kuweyt"}\r
+        }\r
+        "Asia:Macau"{\r
+            ec{"Makaw"}\r
+        }\r
+        "Asia:Magadan"{\r
+            ec{"Magadan"}\r
+        }\r
+        "Asia:Makassar"{\r
+            ec{"Makasar"}\r
+        }\r
+        "Asia:Manila"{\r
+            ec{"Manila"}\r
+        }\r
+        "Asia:Muscat"{\r
+            ec{"Muskat"}\r
+        }\r
+        "Asia:Nicosia"{\r
+            ec{"Nikosiya"}\r
+        }\r
+        "Asia:Novokuznetsk"{\r
+            ec{"Nofokusnetsk"}\r
+        }\r
+        "Asia:Novosibirsk"{\r
+            ec{"Nofosibirsk"}\r
+        }\r
+        "Asia:Omsk"{\r
+            ec{"Omsk"}\r
+        }\r
+        "Asia:Oral"{\r
+            ec{"Oral"}\r
+        }\r
+        "Asia:Phnom_Penh"{\r
+            ec{"Foonom Penh"}\r
+        }\r
+        "Asia:Pontianak"{\r
+            ec{"Botiyaanak"}\r
+        }\r
+        "Asia:Pyongyang"{\r
+            ec{"Boyongyang"}\r
+        }\r
+        "Asia:Qatar"{\r
+            ec{"Qatar"}\r
+        }\r
+        "Asia:Qyzylorda"{\r
+            ec{"Qiyslorda"}\r
+        }\r
+        "Asia:Rangoon"{\r
+            ec{"Yangon"}\r
+        }\r
+        "Asia:Riyadh"{\r
+            ec{"Riyadh"}\r
+        }\r
+        "Asia:Saigon"{\r
+            ec{"Caasimada Hoo Ji Mih"}\r
+        }\r
+        "Asia:Sakhalin"{\r
+            ec{"Sakhalin"}\r
+        }\r
+        "Asia:Samarkand"{\r
+            ec{"Samarkand"}\r
+        }\r
+        "Asia:Seoul"{\r
+            ec{"Sool"}\r
+        }\r
+        "Asia:Shanghai"{\r
+            ec{"Shanghaay"}\r
+        }\r
+        "Asia:Singapore"{\r
+            ec{"Singabuur"}\r
+        }\r
+        "Asia:Srednekolymsk"{\r
+            ec{"Sarednokoleymsk"}\r
+        }\r
+        "Asia:Taipei"{\r
+            ec{"Teybey"}\r
+        }\r
+        "Asia:Tashkent"{\r
+            ec{"Tashkent"}\r
+        }\r
+        "Asia:Tbilisi"{\r
+            ec{"Tbilisi"}\r
+        }\r
+        "Asia:Tehran"{\r
+            ec{"Tehran"}\r
+        }\r
+        "Asia:Thimphu"{\r
+            ec{"Timfu"}\r
+        }\r
+        "Asia:Tokyo"{\r
+            ec{"Tokyo"}\r
+        }\r
+        "Asia:Tomsk"{\r
+            ec{"Tomsk"}\r
+        }\r
+        "Asia:Ulaanbaatar"{\r
+            ec{"Ulaanbaatar"}\r
+        }\r
+        "Asia:Urumqi"{\r
+            ec{"Urumqi"}\r
+        }\r
+        "Asia:Ust-Nera"{\r
+            ec{"Ust-Nera"}\r
+        }\r
+        "Asia:Vientiane"{\r
+            ec{"Viyaantiyaan"}\r
+        }\r
+        "Asia:Vladivostok"{\r
+            ec{"Faladifostok"}\r
+        }\r
+        "Asia:Yakutsk"{\r
+            ec{"Yakutsk"}\r
+        }\r
+        "Asia:Yekaterinburg"{\r
+            ec{"Yekaterinbaag"}\r
+        }\r
+        "Asia:Yerevan"{\r
+            ec{"Yerefan"}\r
+        }\r
+        "Atlantic:Azores"{\r
+            ec{"Asores"}\r
+        }\r
+        "Atlantic:Bermuda"{\r
+            ec{"Barmuuda"}\r
+        }\r
+        "Atlantic:Canary"{\r
+            ec{"Kanari"}\r
+        }\r
+        "Atlantic:Cape_Verde"{\r
+            ec{"Keyb Faarde"}\r
+        }\r
+        "Atlantic:Faeroe"{\r
+            ec{"Faroe"}\r
+        }\r
+        "Atlantic:Madeira"{\r
+            ec{"Madeira"}\r
+        }\r
+        "Atlantic:Reykjavik"{\r
+            ec{"Reykjafik"}\r
+        }\r
+        "Atlantic:South_Georgia"{\r
+            ec{"Koonfurta Joorgiya"}\r
+        }\r
+        "Atlantic:St_Helena"{\r
+            ec{"St. Helena"}\r
+        }\r
+        "Atlantic:Stanley"{\r
+            ec{"Istaanley"}\r
+        }\r
+        "Australia:Adelaide"{\r
+            ec{"Adelaide"}\r
+        }\r
+        "Australia:Brisbane"{\r
+            ec{"Birisban"}\r
+        }\r
+        "Australia:Broken_Hill"{\r
+            ec{"Boroken Hil"}\r
+        }\r
+        "Australia:Currie"{\r
+            ec{"Kuriy"}\r
+        }\r
+        "Australia:Darwin"{\r
+            ec{"Darwin"}\r
+        }\r
+        "Australia:Eucla"{\r
+            ec{"Yukla"}\r
+        }\r
+        "Australia:Hobart"{\r
+            ec{"Hobart"}\r
+        }\r
+        "Australia:Lindeman"{\r
+            ec{"Lindeman"}\r
+        }\r
+        "Australia:Lord_Howe"{\r
+            ec{"Lord Howe"}\r
+        }\r
+        "Australia:Melbourne"{\r
+            ec{"Melboon"}\r
+        }\r
+        "Australia:Perth"{\r
+            ec{"Bert"}\r
+        }\r
+        "Australia:Sydney"{\r
+            ec{"Sidney"}\r
+        }\r
+        "Etc:UTC"{\r
+            ls{"Waqtiga iskuxiran ee caalamka"}\r
+        }\r
+        "Etc:Unknown"{\r
+            ec{"Magaalo aan la garanayn"}\r
+        }\r
+        "Europe:Amsterdam"{\r
+            ec{"Amsterdam"}\r
+        }\r
+        "Europe:Andorra"{\r
+            ec{"Andorra"}\r
+        }\r
+        "Europe:Astrakhan"{\r
+            ec{"Astarakhaan"}\r
+        }\r
+        "Europe:Athens"{\r
+            ec{"Atens"}\r
+        }\r
+        "Europe:Belgrade"{\r
+            ec{"Belgrade"}\r
+        }\r
+        "Europe:Berlin"{\r
+            ec{"Barliin"}\r
+        }\r
+        "Europe:Bratislava"{\r
+            ec{"Baratislafa"}\r
+        }\r
+        "Europe:Brussels"{\r
+            ec{"Barasals"}\r
+        }\r
+        "Europe:Bucharest"{\r
+            ec{"Bujarest"}\r
+        }\r
+        "Europe:Budapest"{\r
+            ec{"Budabest"}\r
+        }\r
+        "Europe:Busingen"{\r
+            ec{"Busingen"}\r
+        }\r
+        "Europe:Chisinau"{\r
+            ec{"Jisinaau"}\r
+        }\r
+        "Europe:Copenhagen"{\r
+            ec{"Kobenhaagan"}\r
+        }\r
+        "Europe:Dublin"{\r
+            ec{"Dublin"}\r
+            ld{"Waqtiyada Caadiga ah ee Irishka"}\r
+        }\r
+        "Europe:Gibraltar"{\r
+            ec{"Gibraltar"}\r
+        }\r
+        "Europe:Guernsey"{\r
+            ec{"Guernsey"}\r
+        }\r
+        "Europe:Helsinki"{\r
+            ec{"Helsinki"}\r
+        }\r
+        "Europe:Isle_of_Man"{\r
+            ec{"Isle of Man"}\r
+        }\r
+        "Europe:Istanbul"{\r
+            ec{"Istanbul"}\r
+        }\r
+        "Europe:Jersey"{\r
+            ec{"Jaarsey"}\r
+        }\r
+        "Europe:Kaliningrad"{\r
+            ec{"Kaliningrad"}\r
+        }\r
+        "Europe:Kiev"{\r
+            ec{"Kiyf"}\r
+        }\r
+        "Europe:Kirov"{\r
+            ec{"Kiroof"}\r
+        }\r
+        "Europe:Lisbon"{\r
+            ec{"Lisbon"}\r
+        }\r
+        "Europe:Ljubljana"{\r
+            ec{"Ljubljana"}\r
+        }\r
+        "Europe:London"{\r
+            ec{"Landan"}\r
+            ld{"Waqtiyada Xagaaga ee Biritishka"}\r
+        }\r
+        "Europe:Luxembourg"{\r
+            ec{"Luksembaaga"}\r
+        }\r
+        "Europe:Madrid"{\r
+            ec{"Madrid"}\r
+        }\r
+        "Europe:Malta"{\r
+            ec{"Malta"}\r
+        }\r
+        "Europe:Mariehamn"{\r
+            ec{"Mariehamn"}\r
+        }\r
+        "Europe:Minsk"{\r
+            ec{"Minsk"}\r
+        }\r
+        "Europe:Monaco"{\r
+            ec{"Monako"}\r
+        }\r
+        "Europe:Moscow"{\r
+            ec{"Moskow"}\r
+        }\r
+        "Europe:Oslo"{\r
+            ec{"Oslo"}\r
+        }\r
+        "Europe:Paris"{\r
+            ec{"Bariis"}\r
+        }\r
+        "Europe:Podgorica"{\r
+            ec{"Bodgorika"}\r
+        }\r
+        "Europe:Prague"{\r
+            ec{"Paraag"}\r
+        }\r
+        "Europe:Riga"{\r
+            ec{"Riija"}\r
+        }\r
+        "Europe:Rome"{\r
+            ec{"Rooma"}\r
+        }\r
+        "Europe:Samara"{\r
+            ec{"Samara"}\r
+        }\r
+        "Europe:San_Marino"{\r
+            ec{"San Marino"}\r
+        }\r
+        "Europe:Sarajevo"{\r
+            ec{"Sarayeefo"}\r
+        }\r
+        "Europe:Saratov"{\r
+            ec{"Saratoof"}\r
+        }\r
+        "Europe:Simferopol"{\r
+            ec{"Simferobol"}\r
+        }\r
+        "Europe:Skopje"{\r
+            ec{"Iskoobje"}\r
+        }\r
+        "Europe:Sofia"{\r
+            ec{"Sofiya"}\r
+        }\r
+        "Europe:Stockholm"{\r
+            ec{"Istokhoom"}\r
+        }\r
+        "Europe:Tallinn"{\r
+            ec{"Tallinn"}\r
+        }\r
+        "Europe:Tirane"{\r
+            ec{"Tirane"}\r
+        }\r
+        "Europe:Ulyanovsk"{\r
+            ec{"Ulyanofsk"}\r
+        }\r
+        "Europe:Uzhgorod"{\r
+            ec{"Usgorod"}\r
+        }\r
+        "Europe:Vaduz"{\r
+            ec{"Faduus"}\r
+        }\r
+        "Europe:Vatican"{\r
+            ec{"Fatikaan"}\r
+        }\r
+        "Europe:Vienna"{\r
+            ec{"Fiyaana"}\r
+        }\r
+        "Europe:Vilnius"{\r
+            ec{"Filnuus"}\r
+        }\r
+        "Europe:Volgograd"{\r
+            ec{"Folgograd"}\r
+        }\r
+        "Europe:Warsaw"{\r
+            ec{"Warsaw"}\r
+        }\r
+        "Europe:Zagreb"{\r
+            ec{"Sagreb"}\r
+        }\r
+        "Europe:Zaporozhye"{\r
+            ec{"Saborosey"}\r
+        }\r
+        "Europe:Zurich"{\r
+            ec{"Surij"}\r
+        }\r
+        "Indian:Antananarivo"{\r
+            ec{"Antananarifo"}\r
+        }\r
+        "Indian:Chagos"{\r
+            ec{"Jagos"}\r
+        }\r
+        "Indian:Christmas"{\r
+            ec{"Kiristmas"}\r
+        }\r
+        "Indian:Cocos"{\r
+            ec{"Kokos"}\r
+        }\r
+        "Indian:Comoro"{\r
+            ec{"Komoro"}\r
+        }\r
+        "Indian:Kerguelen"{\r
+            ec{"Kerguelen"}\r
+        }\r
+        "Indian:Mahe"{\r
+            ec{"Mahe"}\r
+        }\r
+        "Indian:Maldives"{\r
+            ec{"Maldifis"}\r
+        }\r
+        "Indian:Mauritius"{\r
+            ec{"Morishiyaas"}\r
+        }\r
+        "Indian:Mayotte"{\r
+            ec{"Mayote"}\r
+        }\r
+        "Indian:Reunion"{\r
+            ec{"Reunion"}\r
+        }\r
+        "Pacific:Apia"{\r
+            ec{"Abiya"}\r
+        }\r
+        "Pacific:Auckland"{\r
+            ec{"Okland"}\r
+        }\r
+        "Pacific:Bougainville"{\r
+            ec{"Boogaynfil"}\r
+        }\r
+        "Pacific:Chatham"{\r
+            ec{"Jatham"}\r
+        }\r
+        "Pacific:Easter"{\r
+            ec{"Bariga"}\r
+        }\r
+        "Pacific:Efate"{\r
+            ec{"Efate"}\r
+        }\r
+        "Pacific:Enderbury"{\r
+            ec{"Enderbury"}\r
+        }\r
+        "Pacific:Fakaofo"{\r
+            ec{"Fakaofo"}\r
+        }\r
+        "Pacific:Fiji"{\r
+            ec{"Fiji"}\r
+        }\r
+        "Pacific:Funafuti"{\r
+            ec{"Funafuti"}\r
+        }\r
+        "Pacific:Galapagos"{\r
+            ec{"Galabagos"}\r
+        }\r
+        "Pacific:Gambier"{\r
+            ec{"Gambiyr"}\r
+        }\r
+        "Pacific:Guadalcanal"{\r
+            ec{"Cuadalkanal"}\r
+        }\r
+        "Pacific:Guam"{\r
+            ec{"Guam"}\r
+        }\r
+        "Pacific:Johnston"{\r
+            ec{"Joonston"}\r
+        }\r
+        "Pacific:Kiritimati"{\r
+            ec{"Kiritimaati"}\r
+        }\r
+        "Pacific:Kosrae"{\r
+            ec{"Kosrii"}\r
+        }\r
+        "Pacific:Kwajalein"{\r
+            ec{"Kuwajaleyn"}\r
+        }\r
+        "Pacific:Majuro"{\r
+            ec{"Majuro"}\r
+        }\r
+        "Pacific:Marquesas"{\r
+            ec{"Marquesas"}\r
+        }\r
+        "Pacific:Midway"{\r
+            ec{"Midway"}\r
+        }\r
+        "Pacific:Nauru"{\r
+            ec{"Nauru"}\r
+        }\r
+        "Pacific:Niue"{\r
+            ec{"Niyuu"}\r
+        }\r
+        "Pacific:Norfolk"{\r
+            ec{"Noorfolk"}\r
+        }\r
+        "Pacific:Noumea"{\r
+            ec{"Noomiya"}\r
+        }\r
+        "Pacific:Pago_Pago"{\r
+            ec{"Bago Bago"}\r
+        }\r
+        "Pacific:Palau"{\r
+            ec{"Balaw"}\r
+        }\r
+        "Pacific:Pitcairn"{\r
+            ec{"Bitkayrn"}\r
+        }\r
+        "Pacific:Ponape"{\r
+            ec{"Bonbey"}\r
+        }\r
+        "Pacific:Port_Moresby"{\r
+            ec{"Boort Moresbi"}\r
+        }\r
+        "Pacific:Rarotonga"{\r
+            ec{"Rarotonga"}\r
+        }\r
+        "Pacific:Saipan"{\r
+            ec{"Seyban"}\r
+        }\r
+        "Pacific:Tahiti"{\r
+            ec{"Tahiti"}\r
+        }\r
+        "Pacific:Tarawa"{\r
+            ec{"Tarawa"}\r
+        }\r
+        "Pacific:Tongatapu"{\r
+            ec{"Tongatabu"}\r
+        }\r
+        "Pacific:Truk"{\r
+            ec{"Juuk"}\r
+        }\r
+        "Pacific:Wake"{\r
+            ec{"Wake"}\r
+        }\r
+        "Pacific:Wallis"{\r
+            ec{"Walis"}\r
+        }\r
+        "meta:Afghanistan"{\r
+            ls{"Waqtiga Afqanistan"}\r
+        }\r
+        "meta:Africa_Central"{\r
+            ls{"Waqtiga Bartamaha Afrika"}\r
+        }\r
+        "meta:Africa_Eastern"{\r
+            ls{"Waqtiga Bariga Afrika"}\r
+        }\r
+        "meta:Africa_Southern"{\r
+            ls{"Waqtiyada Caadiga ah ee Koonfur Afrika"}\r
+        }\r
+        "meta:Africa_Western"{\r
+            ld{"Waqtiyada Xagaaga ee Galbeedka Afrika"}\r
+            lg{"Waqtiga Galbeedka Afrika"}\r
+            ls{"Waqtiyada Caadiga ah ee Galbeedka Afrika"}\r
+        }\r
+        "meta:Alaska"{\r
+            ld{"Waqtiga Dharaarta ee Alaska"}\r
+            lg{"Waqtiga Alaska"}\r
+            ls{"Waqtiga Caadiga ah ee Alaska"}\r
+        }\r
+        "meta:Amazon"{\r
+            ld{"Waqtiga Xagaaga ee Amason"}\r
+            lg{"Waqtiga Amason"}\r
+            ls{"Waqtiga Istandarka ee Amason"}\r
+        }\r
+        "meta:America_Central"{\r
+            ld{"Waqtiga Dharaarta ee Bartamaha"}\r
+            lg{"Waqtiga Bartamaha"}\r
+            ls{"Waqtiga Caadiga ah ee Bartamaha"}\r
+        }\r
+        "meta:America_Eastern"{\r
+            ld{"Waqtiga Dharaarta ee Bariga"}\r
+            lg{"Waqtiga Bariga"}\r
+            ls{"Waqtiga Caadiga ah ee Bariga"}\r
+        }\r
+        "meta:America_Mountain"{\r
+            ld{"Waqtiga Dharaarta ee Buurleyda"}\r
+            lg{"Waqtiga Buuraleyda"}\r
+            ls{"Waqtiga Caadiga ah ee Buuraleyda"}\r
+        }\r
+        "meta:America_Pacific"{\r
+            ld{"Waqtiga Dharaarta ee Basifika"}\r
+            lg{"Waqtiga Basifika"}\r
+            ls{"Waqtiga Caadiga ah ee Basifika"}\r
+        }\r
+        "meta:Apia"{\r
+            ld{"Waqtiayda Dharaarta ee Abiya"}\r
+            lg{"Waqtiga Abiya"}\r
+            ls{"Waqtiyada Caadiga ah ee Abiya"}\r
+        }\r
+        "meta:Arabian"{\r
+            ld{"Waqtiyada Dharaarta ee Carabta"}\r
+            lg{"Waqtiga Carabta"}\r
+            ls{"Waqtiyada Caadiga ah ee Carabta"}\r
+        }\r
+        "meta:Argentina"{\r
+            ld{"Waqtiga Xagaaga ee Arjentiina"}\r
+            lg{"Waqtia Arjentiina"}\r
+            ls{"Waqtiga istaandarka ee Arjentiina"}\r
+        }\r
+        "meta:Argentina_Western"{\r
+            ld{"Waqtiyada Xagaaga ee Galbeedka Arjentiina"}\r
+            lg{"Waqtiga Galbeedka Arjentiina"}\r
+            ls{"Waqtiyada Caadiga ah ee Arjentiina"}\r
+        }\r
+        "meta:Armenia"{\r
+            ld{"Waqtiyada Xagaaga ee Armeniya"}\r
+            lg{"Waqtiga Armeniya"}\r
+            ls{"Waqtiyada Caadiga ah ee Armeniya"}\r
+        }\r
+        "meta:Atlantic"{\r
+            ld{"Waqtiga Dharaarta ee Atlantik"}\r
+            lg{"Waqtiga Atlantik"}\r
+            ls{"Waqtiga Istaandarka ee Atlantik"}\r
+        }\r
+        "meta:Australia_Central"{\r
+            ld{"Waqtiyada Dharaarta ee Bartamaha Astaraaliya"}\r
+            lg{"Waqtiga Bartamaha Astaraaliya"}\r
+            ls{"Waqtiyada Caadiga ah ee Bartamaha Astaraaliya"}\r
+        }\r
+        "meta:Australia_CentralWestern"{\r
+            ld{"Waqtiyada Dharaarta Bartamaha Galbeedka Australiya"}\r
+            lg{"Waqtiga Bartamaha Galbeedka Astaraaliya"}\r
+            ls{"Waqtiyada Caadiga ah ee Bartamaha Galbeedka Astaraaliya"}\r
+        }\r
+        "meta:Australia_Eastern"{\r
+            ld{"Waqtiyada Dharaarta ee Bariga Australiya"}\r
+            lg{"Waqtiga Bariga Australiya"}\r
+            ls{"Waqtiyada Caadiga ah ee Bariga Australiya"}\r
+        }\r
+        "meta:Australia_Western"{\r
+            ld{"Waqtiyada Dharaarta ee Galbeedka Australiya"}\r
+            lg{"Waqtiga Galbeedka Australiya"}\r
+            ls{"Waqtiyada Caadiga ah ee Galbeedka Australiya"}\r
+        }\r
+        "meta:Azerbaijan"{\r
+            ld{"Waqtiyada Xagaaga ee Asarbeyjan"}\r
+            lg{"Waqtiga Asarbeyjan"}\r
+            ls{"Waqtiyada Caadiga ah ee Asarbeyjan"}\r
+        }\r
+        "meta:Azores"{\r
+            ld{"Waqtiyada Xagaaga ee Asores"}\r
+            lg{"Waqtiga Asores"}\r
+            ls{"Waqtiyada Caadiga ah ee Asores"}\r
+        }\r
+        "meta:Bangladesh"{\r
+            ld{"Waqtiyada Xagaaga ee Bangledeesh"}\r
+            lg{"Waqtiga Bangledeesh"}\r
+            ls{"Waqtiyada Caadiga ah ee Bangledeesh"}\r
+        }\r
+        "meta:Bhutan"{\r
+            ls{"Waqtiga Futan"}\r
+        }\r
+        "meta:Bolivia"{\r
+            ls{"Waqtiga Boliifiya"}\r
+        }\r
+        "meta:Brasilia"{\r
+            ld{"Waqtiyada Xagaaga ee Baraasiliya"}\r
+            lg{"Waqtiga Baraasiliya"}\r
+            ls{"Waqtiga Caadiga ah ee Baraasiliya"}\r
+        }\r
+        "meta:Brunei"{\r
+            ls{"Waqtiga Buruney Daarusalaam"}\r
+        }\r
+        "meta:Cape_Verde"{\r
+            ld{"Waqtiyada Xagaaga ee Keyb Faarde"}\r
+            lg{"Waqtiga Keyb Faarde"}\r
+            ls{"Waqtiyada Caadiga ah ee Keyb Faarde"}\r
+        }\r
+        "meta:Chamorro"{\r
+            ls{"Waqtiyada Caadiga ah ee Jamoro"}\r
+        }\r
+        "meta:Chatham"{\r
+            ld{"Waqtiyada Dharaarta ee Jaatam"}\r
+            lg{"Waqtiga Jaatam"}\r
+            ls{"Waqtiyada Caadiga ah ee Jaatam"}\r
+        }\r
+        "meta:Chile"{\r
+            ld{"Waqtiga Xagaaga ee Jili"}\r
+            lg{"Waqtiga Jili"}\r
+            ls{"Waqtiyada Caadiga ah ee Jili"}\r
+        }\r
+        "meta:China"{\r
+            ld{"Waqtiyada Dharaarta ee Shiinaha"}\r
+            lg{"Waqtiga Shiinaha"}\r
+            ls{"Waqtiyada Caadiga ah ee Shiinaha"}\r
+        }\r
+        "meta:Choibalsan"{\r
+            ld{"Waqtiyada Xagaaga Joybalsan"}\r
+            lg{"Waqtiga Joybalsan"}\r
+            ls{"Waqtiyada Caadiga ah ee Joybalsan"}\r
+        }\r
+        "meta:Christmas"{\r
+            ls{"Waqtiga Kirismas Island"}\r
+        }\r
+        "meta:Cocos"{\r
+            ls{"Waqtiga Kokos Island"}\r
+        }\r
         "meta:Colombia"{\r
             ld{"Waqtiyada Xagaaga Kolambiya"}\r
             lg{"Waqtiga Kolambiya"}\r
             ls{"Waqtiyada Caadiga ah ee kolambiya"}\r
         }\r
+        "meta:Cook"{\r
+            ld{"waqtiga nus xagaaga ah ee jasiiradha cook"}\r
+            lg{"waqtiga jasiiradaha cook"}\r
+            ls{"waqtiga caadiga ah jasiiradaha cook"}\r
+        }\r
+        "meta:Cuba"{\r
+            ld{"Waqtiga Dharaarta ee Kuuba"}\r
+            lg{"Waqtiga Kuuba"}\r
+            ls{"Waqtiga Istaandarka ee Kuuba"}\r
+        }\r
+        "meta:Davis"{\r
+            ls{"Waqtiga Dafis"}\r
+        }\r
+        "meta:DumontDUrville"{\r
+            ls{"Waqtiga Dumont - d’urfille"}\r
+        }\r
+        "meta:East_Timor"{\r
+            ls{"Waqtiga East Timor"}\r
+        }\r
+        "meta:Easter"{\r
+            ld{"Waqtiga Xagaaga ee Bariga Island"}\r
+            lg{"Waqtiga Bariga Island"}\r
+            ls{"Waqtiyada Caadiga ah ee Bariga Island"}\r
+        }\r
+        "meta:Ecuador"{\r
+            ls{"Waqtiga Ekuwador"}\r
+        }\r
+        "meta:Europe_Central"{\r
+            ld{"Waqtiyada Xagaaga ee Bartamaha Yurub"}\r
+            lg{"Waqtiga Bartamaha Yurub"}\r
+            ls{"Waqtiyada Caadiga ah ee Bartamaha Yurub"}\r
+        }\r
+        "meta:Europe_Eastern"{\r
+            ld{"Waqtiyada Xagaaga ee Bariga Yurub"}\r
+            lg{"Waqtiga Bariga Yurub"}\r
+            ls{"Waqtiyada Caadiga ah ee Bariga Yurub"}\r
+        }\r
+        "meta:Europe_Further_Eastern"{\r
+            ls{"Waqtiga Bariga fog ee Yurub"}\r
+        }\r
+        "meta:Europe_Western"{\r
+            ld{"Waqtiyada Xagaaga ee Galbeedka Yurub"}\r
+            lg{"Waqtiga Galbeedka Yurub"}\r
+            ls{"Waqtiyada Caadiga ah ee Galbeedka Yurub"}\r
+        }\r
+        "meta:Falkland"{\r
+            ld{"Waqtiyada Xagaaga ee Faalkland Island"}\r
+            lg{"Waqtiga Faalkland Islands"}\r
+            ls{"Waqtiyada Caadiga ah ee Faalkland Islands"}\r
+        }\r
+        "meta:Fiji"{\r
+            ld{"Waqtiga Xagaaga ee Fiji"}\r
+            lg{"Waqtiga Fiji"}\r
+            ls{"Waqtiyada Caadiga ah ee Fiji"}\r
+        }\r
+        "meta:French_Guiana"{\r
+            ls{"Waqtiga French Guiana"}\r
+        }\r
+        "meta:French_Southern"{\r
+            ls{"Waqtiga Koonfurta Faransiiska & Antaarktik"}\r
+        }\r
+        "meta:GMT"{\r
+            ls{"Waqtiga Celceliska Giriinwij"}\r
+        }\r
         "meta:Galapagos"{\r
             ls{"Waqtiga Galabagos"}\r
         }\r
+        "meta:Gambier"{\r
+            ls{"Waqtiga Gambiyar"}\r
+        }\r
+        "meta:Georgia"{\r
+            ld{"Waqtiyada Xagaaga ee Joorjiya"}\r
+            lg{"Waqtiga Joorjiya"}\r
+            ls{"Waqtiyada Caadiga ah ee Joorjiya"}\r
+        }\r
+        "meta:Gilbert_Islands"{\r
+            ls{"Waqtiga Gilbart Island"}\r
+        }\r
+        "meta:Greenland_Eastern"{\r
+            ld{"Waqtiga Istaandarda ee Dhulka cagaaran"}\r
+            lg{"Waqtiga Bariga Dhulka Cagaaran"}\r
+            ls{"Waqtiga Istaandarka ee Bariga Dhulka cagaaran"}\r
+        }\r
+        "meta:Greenland_Western"{\r
+            ld{"Waqtiga Xagaaga ee Dhulka cagaaran"}\r
+            lg{"Waqtiga Galbeedka Dhulka cagaaran"}\r
+            ls{"Waqtiga Istaandarka ee Galbeedka Dhulka cagaaran"}\r
+        }\r
+        "meta:Gulf"{\r
+            ls{"Waqtiyada Caadiga ah ee Gacanka"}\r
+        }\r
+        "meta:Guyana"{\r
+            ls{"Waqtiga Guyaana"}\r
+        }\r
+        "meta:Hawaii_Aleutian"{\r
+            ld{"Waqtiga Dharaarta ee Hawaii=Alutin"}\r
+            lg{"Waqtiga Hawaii-Alutin"}\r
+            ls{"Waqtiga Istaandarka Hawaii-Alutin"}\r
+        }\r
+        "meta:Hong_Kong"{\r
+            ld{"Waqtiyada Xagaaga ee Hong Kong"}\r
+            lg{"Waqtiga Hong Kong"}\r
+            ls{"Waqtiyada Caadiga ah ee Hong Kong"}\r
+        }\r
+        "meta:Hovd"{\r
+            ld{"Waqtiyada Xagaaga ee Hofud"}\r
+            lg{"Waqtiga Hofd"}\r
+            ls{"Waqtiyada Caadiga ah ee Hofud"}\r
+        }\r
+        "meta:India"{\r
+            ls{"Waqtiyada Caadiga ah ee Hindiya"}\r
+        }\r
+        "meta:Indian_Ocean"{\r
+            ls{"Waqtiga badweynta Hindiya"}\r
+        }\r
+        "meta:Indochina"{\r
+            ls{"Waqtiga Indoshiina"}\r
+        }\r
+        "meta:Indonesia_Central"{\r
+            ls{"Waqtiga Bartamaha Indoneysiya"}\r
+        }\r
+        "meta:Indonesia_Eastern"{\r
+            ls{"Waqtiga Indoneysiya"}\r
+        }\r
+        "meta:Indonesia_Western"{\r
+            ls{"Waqtiga Galbeedka Indoneysiya"}\r
+        }\r
+        "meta:Iran"{\r
+            ld{"Waqtiyada Dharaarta ee Iran"}\r
+            lg{"Waqtiga Iran"}\r
+            ls{"Waqtiyada Caadiga ah ee Iran"}\r
+        }\r
+        "meta:Irkutsk"{\r
+            ld{"Waqtiyada Xagaaga ee Irkutsk"}\r
+            lg{"Waqtiga Irkutsk"}\r
+            ls{"Waqtiyada Caadiga ah ee Irkutsk"}\r
+        }\r
+        "meta:Israel"{\r
+            ld{"Waqtiyada Dharaarta ee Israaiil"}\r
+            lg{"Waqtiga Israaiil"}\r
+            ls{"Waqtiyada Caadiga ah ee Israaiil"}\r
+        }\r
+        "meta:Japan"{\r
+            ld{"Waqtiyada Dharaarta ee Jabaan"}\r
+            lg{"Waqtiga Jabaan"}\r
+            ls{"Waqtiyada Caadiga ah ee Jabaan"}\r
+        }\r
+        "meta:Kazakhstan_Eastern"{\r
+            ls{"Waqtiga Bariga Kasakhistaan"}\r
+        }\r
+        "meta:Kazakhstan_Western"{\r
+            ls{"Waqtiga Koonfurta Kasakhistan"}\r
+        }\r
+        "meta:Korea"{\r
+            ld{"Waqtiga Dharaarta ee Kuuriya"}\r
+            lg{"Waqtiga Kuuriya"}\r
+            ls{"Waqtiyada Caadiga ah ee Kuuriya"}\r
+        }\r
+        "meta:Kosrae"{\r
+            ls{"Waqtiga Kosriy"}\r
+        }\r
+        "meta:Krasnoyarsk"{\r
+            ld{"Waqtiyada Xagaaga ee Karasnoyarsk"}\r
+            lg{"Waqtiga Karasnoyarsk"}\r
+            ls{"Waqtiyada Caadiga ah ee Karasnoyarsk"}\r
+        }\r
+        "meta:Kyrgystan"{\r
+            ls{"Waqtiga Kiyrgistaan"}\r
+        }\r
+        "meta:Line_Islands"{\r
+            ls{"Waqtiga Leyn Island"}\r
+        }\r
+        "meta:Lord_Howe"{\r
+            ld{"Waqtiyada Dharaarta ee Lord Howe"}\r
+            lg{"Waqtiga LOrd Howe"}\r
+            ls{"Waqtiyada Caadiga ah ee Lord Howe"}\r
+        }\r
+        "meta:Macquarie"{\r
+            ls{"waqtiga jaziirada makquariye"}\r
+        }\r
+        "meta:Magadan"{\r
+            ld{"Waqtiyada Xagaaga ee Magadan"}\r
+            lg{"Watiga Magadan"}\r
+            ls{"Waqtiyada Caadiga ah ee Magadan"}\r
+        }\r
+        "meta:Malaysia"{\r
+            ls{"Waqtiga Maleyshiya"}\r
+        }\r
+        "meta:Maldives"{\r
+            ls{"Waqtiga Maldifis"}\r
+        }\r
+        "meta:Marquesas"{\r
+            ls{"Waqtiga Marquesas"}\r
+        }\r
+        "meta:Marshall_Islands"{\r
+            ls{"waqtiga jasiiradaha marshal"}\r
+        }\r
+        "meta:Mauritius"{\r
+            ld{"Waqtiyada Xagaaga ee Morishiyaas"}\r
+            lg{"Waqtiga Morishiyaas"}\r
+            ls{"Waqtiyada Caadiga ah ee Morishiyaas"}\r
+        }\r
+        "meta:Mawson"{\r
+            ls{"Waqtiga Mawson"}\r
+        }\r
+        "meta:Mexico_Northwest"{\r
+            ld{"Waqtiga Dharaarta ee Waqooyigalbeed Meksiko"}\r
+            lg{"Waqtiga Waqooyi-Galbeed ee Meksiko"}\r
+            ls{"waqtiga Istandardka ee waqooyi galbeet meksiko"}\r
+        }\r
+        "meta:Mexico_Pacific"{\r
+            ld{"Waqtiga Dharaarta ee Baasifikada Meksiko"}\r
+            lg{"Waqtiga Baasifikada Meksiko"}\r
+            ls{"waqtiga standardka Baasifikada Meksiko"}\r
+        }\r
+        "meta:Mongolia"{\r
+            ld{"Waqtiyada Xagaaga ee Ulaanbaataar"}\r
+            lg{"Waqtiga Ulaanbaataar"}\r
+            ls{"Waqtiyada Caadiga ah ee Ulaanbaataar"}\r
+        }\r
+        "meta:Moscow"{\r
+            ld{"Waqtiyada Xagaaga ee Moskow"}\r
+            lg{"Waqtiga Moskow"}\r
+            ls{"Waqtiyada Caadiga ah ee Moskow"}\r
+        }\r
+        "meta:Myanmar"{\r
+            ls{"Waqtiga Mayanmaar"}\r
+        }\r
+        "meta:Nauru"{\r
+            ls{"Waqtiga Nauru"}\r
+        }\r
+        "meta:Nepal"{\r
+            ls{"Waqtiga Nebal"}\r
+        }\r
+        "meta:New_Caledonia"{\r
+            ld{"Waqtiga Xagaaga ee Niyuu Kaledoniya"}\r
+            lg{"Waqtiga Niyuu Kaledonya"}\r
+            ls{"Waqtiyada Caadiga ah ee Niyuu Kaledoniya"}\r
+        }\r
+        "meta:New_Zealand"{\r
+            ld{"Waqtiyada Dharaarta ee Niyuu Si’aland"}\r
+            lg{"Waqtiga Niyuu Si’land"}\r
+            ls{"Waqtiyada Caadiga ah ee Niyuu si’lan"}\r
+        }\r
+        "meta:Newfoundland"{\r
+            ld{"Waqtiga Dharaarta ee Newfoundland"}\r
+            lg{"Waqtiga Newfoundland"}\r
+            ls{"Waqtiga Istaandarka ee Newfoundland"}\r
+        }\r
+        "meta:Niue"{\r
+            ls{"Waqtiga Niyuu"}\r
+        }\r
+        "meta:Norfolk"{\r
+            ls{"Waqtiga Norfoolk Island"}\r
+        }\r
+        "meta:Noronha"{\r
+            ld{"Waqtiyada Xagaaga ee Farnaando de Noronho"}\r
+            lg{"Waqtiga Farnaando de Noronho"}\r
+            ls{"Waqtiyada Caadiga ah ee Farnaando de Noronho"}\r
+        }\r
+        "meta:Novosibirsk"{\r
+            ld{"Waqtiyada Xagaaga ee Nofosibirsk"}\r
+            lg{"Waqtiga Nofosibirsk"}\r
+            ls{"Waqtiyada Caadiga ah ee Nofosibirsk"}\r
+        }\r
+        "meta:Omsk"{\r
+            ld{"Waqtiyada Xagaaga ee Omsk"}\r
+            lg{"Waqtiga Omsk"}\r
+            ls{"Waqtiyada Caadiga ah ee Omsk"}\r
+        }\r
+        "meta:Pakistan"{\r
+            ld{"Waqtiyada Xagaaga ee Bakistan"}\r
+            lg{"Waqtiga Bakistan"}\r
+            ls{"Waqtiyada Caadiga ah ee Bakistan"}\r
+        }\r
+        "meta:Palau"{\r
+            ls{"Waqtiga Balaw"}\r
+        }\r
+        "meta:Papua_New_Guinea"{\r
+            ls{"Waqtiga Babua Niyuu Giniya"}\r
+        }\r
+        "meta:Paraguay"{\r
+            ld{"Waqtiyada Xagaaga ee Baragway"}\r
+            lg{"Waqtiga Baragway"}\r
+            ls{"Waqtiyada Caadiga ah ee Baragway"}\r
+        }\r
+        "meta:Peru"{\r
+            ld{"Waqtiyada Xagaaga ee Beeru"}\r
+            lg{"Waqtiga Beeru"}\r
+            ls{"Waqtiyada Caadiga ah ee Beeru"}\r
+        }\r
+        "meta:Philippines"{\r
+            ld{"Waqtiyada Xagaaga ee Filibin"}\r
+            lg{"Waqtiga Filibin"}\r
+            ls{"Waqtiyada Caadiga ah ee Filibin"}\r
+        }\r
+        "meta:Phoenix_Islands"{\r
+            ls{"waqtiga jasiirada fonikis"}\r
+        }\r
+        "meta:Pierre_Miquelon"{\r
+            ld{"Waqtiga Dharaarta ee St. Pierre & Miquelon"}\r
+            lg{"Waqtiga St. Pierre & Miquelon"}\r
+            ls{"Waqtiga Istaandarka ee St. Pierre & Miquelon"}\r
+        }\r
+        "meta:Pitcairn"{\r
+            ls{"Waqtiga Bitkairin"}\r
+        }\r
+        "meta:Ponape"{\r
+            ls{"Waqtiga Bonabe"}\r
+        }\r
+        "meta:Pyongyang"{\r
+            ls{"Waqtiga Boyongyang"}\r
+        }\r
+        "meta:Reunion"{\r
+            ls{"Waqtiga Riyunion"}\r
+        }\r
+        "meta:Rothera"{\r
+            ls{"Waqtiga Rotera"}\r
+        }\r
+        "meta:Sakhalin"{\r
+            ld{"Waqtiyada Xagaaga ee Sakhalin"}\r
+            lg{"Waqtiga Sakhalin"}\r
+            ls{"Waqtiyada Caadiga ah ee Sakhalin"}\r
+        }\r
+        "meta:Samoa"{\r
+            ld{"Waqtiyada Dharaarta ee Samoa"}\r
+            lg{"Waqtiga Samoa"}\r
+            ls{"Waqtiyada Caadiga ah ee Samoa"}\r
+        }\r
+        "meta:Seychelles"{\r
+            ls{"Waqtiga Siisalis"}\r
+        }\r
+        "meta:Singapore"{\r
+            ls{"Waqtiyada Caadiga ah ee Singabuur"}\r
+        }\r
+        "meta:Solomon"{\r
+            ls{"waqtiga jasiirada solomon"}\r
+        }\r
+        "meta:South_Georgia"{\r
+            ls{"Waqtiga Koonfurta Jorjiya"}\r
+        }\r
+        "meta:Suriname"{\r
+            ls{"Waqtiga Surineym"}\r
+        }\r
+        "meta:Syowa"{\r
+            ls{"Waqtiga Siyowa"}\r
+        }\r
+        "meta:Tahiti"{\r
+            ls{"Waqtiga Tahiti"}\r
+        }\r
+        "meta:Taipei"{\r
+            ld{"Waqtiyada Dharaarta ee Teybey"}\r
+            lg{"Waqtiga Teybey"}\r
+            ls{"Waqtiyada Caadiga ah ee Teybey"}\r
+        }\r
+        "meta:Tajikistan"{\r
+            ls{"Waqtiga Tajikistan"}\r
+        }\r
+        "meta:Tokelau"{\r
+            ls{"Waqtiga Tokelau"}\r
+        }\r
+        "meta:Tonga"{\r
+            ld{"Waqtiyada Xagaaga ee Tonga"}\r
+            lg{"Waqtiga Tonga"}\r
+            ls{"Waqtiyada Caadiga ah ee Tonga"}\r
+        }\r
+        "meta:Truk"{\r
+            ls{"Waqtiga Juuk"}\r
+        }\r
+        "meta:Turkmenistan"{\r
+            ld{"Waqtiayda Xagaaga ee Turkmenistan"}\r
+            lg{"Waqtiga Turkenistaan"}\r
+            ls{"Waqtiyada Caadiga ah ee Turkeminstan"}\r
+        }\r
+        "meta:Tuvalu"{\r
+            ls{"Waqtiga Tufalu"}\r
+        }\r
+        "meta:Uruguay"{\r
+            ld{"Waqtiyada Xagaaga ee Urugway"}\r
+            lg{"Waqtiga Urugway"}\r
+            ls{"Waqtiyada Caadiga ah ee Urugway"}\r
+        }\r
+        "meta:Uzbekistan"{\r
+            ld{"Waqtiyada Xagaaga ee Usbekistan"}\r
+            lg{"Waqtiga Usbekistan"}\r
+            ls{"Waqtiyada Caadiga ah ee Usbekistan"}\r
+        }\r
+        "meta:Vanuatu"{\r
+            ld{"Waqtiyada Xagaaga ee Fanautu"}\r
+            lg{"Waqtiga Fanuatu"}\r
+            ls{"Waqtiyada Caadiga ah ee Fanautu"}\r
+        }\r
+        "meta:Venezuela"{\r
+            ls{"Waqtiga Fenezuela"}\r
+        }\r
+        "meta:Vladivostok"{\r
+            ld{"Waqtiyada Xagaaga ee Faladifostok"}\r
+            lg{"Waqtiga Faladifostok"}\r
+            ls{"Waqtiyada Caadiga ah ee Faladifostok"}\r
+        }\r
+        "meta:Volgograd"{\r
+            ld{"Waqtiyada Xagaaga ee Folgograd"}\r
+            lg{"Waqtiga Folgograd"}\r
+            ls{"Waqtiyada Caadiga ah ee Folgograd"}\r
+        }\r
+        "meta:Vostok"{\r
+            ls{"Waqtiga Fostok"}\r
+        }\r
+        "meta:Wake"{\r
+            ls{"Waqtiga jasiirada wake"}\r
+        }\r
+        "meta:Wallis"{\r
+            ls{"Waqtiga Walis & Futuna"}\r
+        }\r
+        "meta:Yakutsk"{\r
+            ld{"Waqtiyada Xagaaga ee Yakutsk"}\r
+            lg{"Waqtiyada Yakutsk"}\r
+            ls{"Waqtiyada Caadiga ah ee Yakutsk"}\r
+        }\r
+        "meta:Yekaterinburg"{\r
+            ld{"Waqtiyada Xagaaga ee Yekaterinbaag"}\r
+            lg{"Waqtiga Yekaterinbaag"}\r
+            ls{"Waqtiyada Caadiga ah ee Yekaterinbaag"}\r
+        }\r
+        fallbackFormat{"{1} ({0})"}\r
+        gmtFormat{"GMT{0}"}\r
+        gmtZeroFormat{"GMT"}\r
+        hourFormat{"+HH:mm;-HH:mm"}\r
+        regionFormat{"{0} Waqtiga"}\r
+        regionFormatDaylight{"{0} Waqtiga Dharaarta"}\r
+        regionFormatStandard{"{0} Waqtiga Caadiga ah"}\r
     }\r
 }\r
index 95c37573c6f6ab02398a9efea94a38d8c9a1b661..623e2208898171502e75e6db9cecf3cd292b83e6 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 sq{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.50"}\r
     zoneStrings{\r
         "Africa:Abidjan"{\r
             ec{"Abixhan"}\r
@@ -274,7 +274,7 @@ sq{
             ec{"Kujaba"}\r
         }\r
         "America:Curacao"{\r
-            ec{"Kuraçao"}\r
+            ec{"Kurasao"}\r
         }\r
         "America:Danmarkshavn"{\r
             ec{"Denmarkshavën"}\r
@@ -322,10 +322,10 @@ sq{
             ec{"Turku i Madh"}\r
         }\r
         "America:Grenada"{\r
-            ec{"Grenadë"}\r
+            ec{"Granadë"}\r
         }\r
         "America:Guadeloupe"{\r
-            ec{"Guadalupe"}\r
+            ec{"Guadelupë"}\r
         }\r
         "America:Guatemala"{\r
             ec{"Guatemalë"}\r
@@ -334,7 +334,7 @@ sq{
             ec{"Guajakuil"}\r
         }\r
         "America:Guyana"{\r
-            ec{"Gujanë"}\r
+            ec{"Guajanë"}\r
         }\r
         "America:Halifax"{\r
             ec{"Halifaks"}\r
@@ -550,7 +550,7 @@ sq{
             ec{"Sitka"}\r
         }\r
         "America:St_Barthelemy"{\r
-            ec{"Shën-Bartolemeo"}\r
+            ec{"Sen-Bartelemi"}\r
         }\r
         "America:St_Johns"{\r
             ec{"Shën-Gjon"}\r
@@ -565,7 +565,7 @@ sq{
             ec{"Shën-Tomas"}\r
         }\r
         "America:St_Vincent"{\r
-            ec{"Shën-Vinsent"}\r
+            ec{"Shën-Vincent"}\r
         }\r
         "America:Swift_Current"{\r
             ec{"Rryma e Shpejtë"}\r
@@ -667,7 +667,7 @@ sq{
             ec{"Bagdad"}\r
         }\r
         "Asia:Bahrain"{\r
-            ec{"Bahrein"}\r
+            ec{"Bahrejn"}\r
         }\r
         "Asia:Baku"{\r
             ec{"Baku"}\r
@@ -889,7 +889,7 @@ sq{
             ec{"Azore"}\r
         }\r
         "Atlantic:Bermuda"{\r
-            ec{"Bermudë"}\r
+            ec{"Bermude"}\r
         }\r
         "Atlantic:Canary"{\r
             ec{"Kanari"}\r
@@ -910,7 +910,7 @@ sq{
             ec{"Xhorxha e Jugut"}\r
         }\r
         "Atlantic:St_Helena"{\r
-            ec{"Shën-Helenë"}\r
+            ec{"Shën-Elenë"}\r
         }\r
         "Atlantic:Stanley"{\r
             ec{"Stenli"}\r
@@ -1004,7 +1004,7 @@ sq{
             ec{"Gjibraltar"}\r
         }\r
         "Europe:Guernsey"{\r
-            ec{"Guernsej"}\r
+            ec{"Gernsej"}\r
         }\r
         "Europe:Helsinki"{\r
             ec{"Helsinki"}\r
@@ -1312,7 +1312,7 @@ sq{
             ls{"Ora standarde e Afrikës Perëndimore"}\r
         }\r
         "meta:Alaska"{\r
-            ld{"Ora verore e Alsaskës"}\r
+            ld{"Ora verore e Alaskës"}\r
             lg{"Ora e Alaskës"}\r
             ls{"Ora standarde e Alaskës"}\r
         }\r
@@ -1433,9 +1433,9 @@ sq{
             ls{"Ora e Bolivisë"}\r
         }\r
         "meta:Brasilia"{\r
-            ld{"Ora verore e Brasilës"}\r
-            lg{"Ora e Brasilës"}\r
-            ls{"Ora standarde e Brasilës"}\r
+            ld{"Ora verore e Brazilisë"}\r
+            lg{"Ora e Brazilisë"}\r
+            ls{"Ora standarde e Brazilisë"}\r
         }\r
         "meta:Brunei"{\r
             ls{"Ora e Brunei-Durasalamit"}\r
@@ -1566,9 +1566,9 @@ sq{
             ls{"Ora standarde e Grenlandës Lindore"}\r
         }\r
         "meta:Greenland_Western"{\r
-            ld{"Ora verore e Grenlandës Perëndimore"}\r
-            lg{"Ora e Grenlandës Perëndimore"}\r
-            ls{"Ora standarde e Grenlandës Perëndimore"}\r
+            ld{"Ora verore e Grënlandës Perëndimore"}\r
+            lg{"Ora e Grënlandës Perëndimore"}\r
+            ls{"Ora standarde e Grënlandës Perëndimore"}\r
         }\r
         "meta:Guam"{\r
             ls{"Ora e Guamit"}\r
@@ -1657,7 +1657,7 @@ sq{
             ls{"Ora standarde e Krasnojarskut"}\r
         }\r
         "meta:Kyrgystan"{\r
-            ls{"Ora e Kirgistanit"}\r
+            ls{"Ora e Kirgizisë"}\r
         }\r
         "meta:Lanka"{\r
             ls{"Ora e Lankasë"}\r
@@ -1693,7 +1693,7 @@ sq{
             ls{"Ora e Ishujve Markezë"}\r
         }\r
         "meta:Marshall_Islands"{\r
-            ls{"Ora e Ishujve Marshallë"}\r
+            ls{"Ora e Ishujve Marshall"}\r
         }\r
         "meta:Mauritius"{\r
             ld{"Ora verore e Mauritiusit"}\r
index 5ce533dbebea751df7bfd6ecb94e36532c804d96..6d7548bc9c60f06f8451d884d0fd742f8a09d15b 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 sr{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.94"}\r
     zoneStrings{\r
         "Africa:Abidjan"{\r
             ec{"Абиџан"}\r
index 12a844b1002929e61354d08898193efe80542636..b758eaa205f4cdc7df0c209607e48a34620afb36 100644 (file)
@@ -2,7 +2,7 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 sr_Latn{\r
     %%Parent{"root"}\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.50"}\r
     zoneStrings{\r
         "Africa:Abidjan"{\r
             ec{"Abidžan"}\r
index a2e4aa2fc65cf387b10f3a0bad1a042d7ab1a4cd..c46384854caac236a8ceffd93bb407f5806bc545 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 sv{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.94"}\r
     zoneStrings{\r
         "Africa:Abidjan"{\r
             ec{"Abidjan"}\r
index b82a022b745d8422ead328f7f57d30c0226f5854..8602b087ff7447b6d6c18c6be7098d2513b5d61d 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 sw{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.65"}\r
     zoneStrings{\r
         "Africa:Abidjan"{\r
             ec{"Abidjan"}\r
index 6627e8940d24864b60cfb2e5efc03031400253d5..b57673b4c58f8f569cf1a523d0bc7dc4f77eafe2 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 ta{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.50"}\r
     zoneStrings{\r
         "Africa:Abidjan"{\r
             ec{"அபிட்ஜான்"}\r
index c082a47b2e558ba1aed0d5f9752981757674f0e0..59d5f01238c8221358254add15220fa915dc023a 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 te{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.50"}\r
     zoneStrings{\r
         "Africa:Abidjan"{\r
             ec{"అబిడ్జాన్"}\r
index 7618f38ad488251ca286bf126850028a23caa9c3..c4a074e563c0c6cdadffcc6106a11536e6819524 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 tg{\r
-    Version{"2.1.38.71"}\r
+    Version{"2.1.44.88"}\r
     zoneStrings{\r
         "Asia:Dushanbe"{\r
             ec{"Душанбе"}\r
index b32b0ae909a412e02d0f57321f0bdcc2e5589fc2..e40186f1fee6b984c899d13e8d1a798c9d9a2861 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 th{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.89"}\r
     zoneStrings{\r
         "Africa:Abidjan"{\r
             ec{"อาบีจาน"}\r
@@ -676,7 +676,7 @@ th{
             ec{"กรุงเทพ"}\r
         }\r
         "Asia:Barnaul"{\r
-            ec{"à¸\9aราà¹\82มล"}\r
+            ec{"à¸\9aารà¹\8cà¹\80à¸\99าวà¹\8c"}\r
         }\r
         "Asia:Beirut"{\r
             ec{"เบรุต"}\r
@@ -955,7 +955,7 @@ th{
             ls{"เวลาสากลเชิงพิกัด"}\r
         }\r
         "Etc:Unknown"{\r
-            ec{"à¹\80มือà¸\87à¸\97ีà¹\88à¹\84มà¹\88รูà¹\89à¸\88ัà¸\81"}\r
+            ec{"à¹\84มà¹\88à¸\97ราà¸\9aà¸\8aืà¹\88อà¹\80มือà¸\87"}\r
         }\r
         "Europe:Amsterdam"{\r
             ec{"อัมสเตอดัม"}\r
index 83608aa04b816c8c11c0d2cfdb8c37058c59031d..8f0611df5332ce12ae810da53c87eea63ccc242b 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 ti{\r
-    Version{"2.1.38.72"}\r
+    Version{"2.1.44.88"}\r
     zoneStrings{\r
         "Africa:Abidjan"{\r
             ec{"Abidjan"}\r
diff --git a/source/data/zone/tk.txt b/source/data/zone/tk.txt
new file mode 100644 (file)
index 0000000..1e0e40d
--- /dev/null
@@ -0,0 +1,1889 @@
+// © 2016 and later: Unicode, Inc. and others.\r
+// License & terms of use: http://www.unicode.org/copyright.html#License\r
+tk{\r
+    Version{"2.1.43.65"}\r
+    zoneStrings{\r
+        "Africa:Abidjan"{\r
+            ec{"Abijan"}\r
+        }\r
+        "Africa:Accra"{\r
+            ec{"Akkra"}\r
+        }\r
+        "Africa:Addis_Ababa"{\r
+            ec{"Addis-Abeba"}\r
+        }\r
+        "Africa:Algiers"{\r
+            ec{"Alžir"}\r
+        }\r
+        "Africa:Asmera"{\r
+            ec{"Asmera"}\r
+        }\r
+        "Africa:Bamako"{\r
+            ec{"Bamako"}\r
+        }\r
+        "Africa:Bangui"{\r
+            ec{"Bangi"}\r
+        }\r
+        "Africa:Banjul"{\r
+            ec{"Banjul"}\r
+        }\r
+        "Africa:Bissau"{\r
+            ec{"Bisau"}\r
+        }\r
+        "Africa:Blantyre"{\r
+            ec{"Blantaýr"}\r
+        }\r
+        "Africa:Brazzaville"{\r
+            ec{"Brazzawil"}\r
+        }\r
+        "Africa:Bujumbura"{\r
+            ec{"Bujumbura"}\r
+        }\r
+        "Africa:Cairo"{\r
+            ec{"Kair"}\r
+        }\r
+        "Africa:Casablanca"{\r
+            ec{"Kasablanka"}\r
+        }\r
+        "Africa:Ceuta"{\r
+            ec{"Seuta"}\r
+        }\r
+        "Africa:Conakry"{\r
+            ec{"Konakri"}\r
+        }\r
+        "Africa:Dakar"{\r
+            ec{"Dakar"}\r
+        }\r
+        "Africa:Dar_es_Salaam"{\r
+            ec{"Dar-es-Salam"}\r
+        }\r
+        "Africa:Djibouti"{\r
+            ec{"Jibuti"}\r
+        }\r
+        "Africa:Douala"{\r
+            ec{"Duala"}\r
+        }\r
+        "Africa:El_Aaiun"{\r
+            ec{"El-Aýun"}\r
+        }\r
+        "Africa:Freetown"{\r
+            ec{"Fritaun"}\r
+        }\r
+        "Africa:Gaborone"{\r
+            ec{"Gaborone"}\r
+        }\r
+        "Africa:Harare"{\r
+            ec{"Harare"}\r
+        }\r
+        "Africa:Johannesburg"{\r
+            ec{"Ýohannesburg"}\r
+        }\r
+        "Africa:Juba"{\r
+            ec{"Juba"}\r
+        }\r
+        "Africa:Kampala"{\r
+            ec{"Kampala"}\r
+        }\r
+        "Africa:Khartoum"{\r
+            ec{"Hartum"}\r
+        }\r
+        "Africa:Kigali"{\r
+            ec{"Kigali"}\r
+        }\r
+        "Africa:Kinshasa"{\r
+            ec{"Kinşasa"}\r
+        }\r
+        "Africa:Lagos"{\r
+            ec{"Lagos"}\r
+        }\r
+        "Africa:Libreville"{\r
+            ec{"Librewil"}\r
+        }\r
+        "Africa:Lome"{\r
+            ec{"Lome"}\r
+        }\r
+        "Africa:Luanda"{\r
+            ec{"Luanda"}\r
+        }\r
+        "Africa:Lubumbashi"{\r
+            ec{"Lubumbaşi"}\r
+        }\r
+        "Africa:Lusaka"{\r
+            ec{"Lusaka"}\r
+        }\r
+        "Africa:Malabo"{\r
+            ec{"Malabo"}\r
+        }\r
+        "Africa:Maputo"{\r
+            ec{"Maputo"}\r
+        }\r
+        "Africa:Maseru"{\r
+            ec{"Maseru"}\r
+        }\r
+        "Africa:Mbabane"{\r
+            ec{"Mbabane"}\r
+        }\r
+        "Africa:Mogadishu"{\r
+            ec{"Mogadişo"}\r
+        }\r
+        "Africa:Monrovia"{\r
+            ec{"Monrowiýa"}\r
+        }\r
+        "Africa:Nairobi"{\r
+            ec{"Naýrobi"}\r
+        }\r
+        "Africa:Ndjamena"{\r
+            ec{"Jamena"}\r
+        }\r
+        "Africa:Niamey"{\r
+            ec{"Niameý"}\r
+        }\r
+        "Africa:Nouakchott"{\r
+            ec{"Nuakşot"}\r
+        }\r
+        "Africa:Ouagadougou"{\r
+            ec{"Uagadugu"}\r
+        }\r
+        "Africa:Porto-Novo"{\r
+            ec{"Porto-Nowo"}\r
+        }\r
+        "Africa:Sao_Tome"{\r
+            ec{"San-Tome"}\r
+        }\r
+        "Africa:Tripoli"{\r
+            ec{"Tripoli"}\r
+        }\r
+        "Africa:Tunis"{\r
+            ec{"Tunis"}\r
+        }\r
+        "Africa:Windhoek"{\r
+            ec{"Windhuk"}\r
+        }\r
+        "America:Adak"{\r
+            ec{"Adak adasy"}\r
+        }\r
+        "America:Anchorage"{\r
+            ec{"Ankoridž"}\r
+        }\r
+        "America:Anguilla"{\r
+            ec{"Angilýa"}\r
+        }\r
+        "America:Antigua"{\r
+            ec{"Antigua"}\r
+        }\r
+        "America:Araguaina"{\r
+            ec{"Araguaýna"}\r
+        }\r
+        "America:Argentina:La_Rioja"{\r
+            ec{"La-Rioha"}\r
+        }\r
+        "America:Argentina:Rio_Gallegos"{\r
+            ec{"Rio-Galegos"}\r
+        }\r
+        "America:Argentina:Salta"{\r
+            ec{"Salta"}\r
+        }\r
+        "America:Argentina:San_Juan"{\r
+            ec{"San-Huan"}\r
+        }\r
+        "America:Argentina:San_Luis"{\r
+            ec{"San-Luis"}\r
+        }\r
+        "America:Argentina:Tucuman"{\r
+            ec{"Tukuman"}\r
+        }\r
+        "America:Argentina:Ushuaia"{\r
+            ec{"Uşuaýa"}\r
+        }\r
+        "America:Aruba"{\r
+            ec{"Aruba"}\r
+        }\r
+        "America:Asuncion"{\r
+            ec{"Asunsýon"}\r
+        }\r
+        "America:Bahia"{\r
+            ec{"Baiýa"}\r
+        }\r
+        "America:Bahia_Banderas"{\r
+            ec{"Baiýa-de-Banderas"}\r
+        }\r
+        "America:Barbados"{\r
+            ec{"Barbados"}\r
+        }\r
+        "America:Belem"{\r
+            ec{"Belen"}\r
+        }\r
+        "America:Belize"{\r
+            ec{"Beliz"}\r
+        }\r
+        "America:Blanc-Sablon"{\r
+            ec{"Blank-Sablon"}\r
+        }\r
+        "America:Boa_Vista"{\r
+            ec{"Boa-Wista"}\r
+        }\r
+        "America:Bogota"{\r
+            ec{"Bogota"}\r
+        }\r
+        "America:Boise"{\r
+            ec{"Boýse"}\r
+        }\r
+        "America:Buenos_Aires"{\r
+            ec{"Buenos-Aýres"}\r
+        }\r
+        "America:Cambridge_Bay"{\r
+            ec{"Kembrij-Beý"}\r
+        }\r
+        "America:Campo_Grande"{\r
+            ec{"Kampu-Grandi"}\r
+        }\r
+        "America:Cancun"{\r
+            ec{"Kankun"}\r
+        }\r
+        "America:Caracas"{\r
+            ec{"Karakas"}\r
+        }\r
+        "America:Catamarca"{\r
+            ec{"Katamarka"}\r
+        }\r
+        "America:Cayenne"{\r
+            ec{"Kaýenna"}\r
+        }\r
+        "America:Cayman"{\r
+            ec{"Kaýman adalary"}\r
+        }\r
+        "America:Chicago"{\r
+            ec{"Çikago"}\r
+        }\r
+        "America:Chihuahua"{\r
+            ec{"Çihuahua"}\r
+        }\r
+        "America:Coral_Harbour"{\r
+            ec{"Atikokan"}\r
+        }\r
+        "America:Cordoba"{\r
+            ec{"Kordowa"}\r
+        }\r
+        "America:Costa_Rica"{\r
+            ec{"Kosta-Rika"}\r
+        }\r
+        "America:Creston"{\r
+            ec{"Kreston"}\r
+        }\r
+        "America:Cuiaba"{\r
+            ec{"Kuýaba"}\r
+        }\r
+        "America:Curacao"{\r
+            ec{"Kýurasao"}\r
+        }\r
+        "America:Danmarkshavn"{\r
+            ec{"Denmarkshawn"}\r
+        }\r
+        "America:Dawson"{\r
+            ec{"Douson"}\r
+        }\r
+        "America:Dawson_Creek"{\r
+            ec{"Douson-Krik"}\r
+        }\r
+        "America:Denver"{\r
+            ec{"Denwer"}\r
+        }\r
+        "America:Detroit"{\r
+            ec{"Detroýt"}\r
+        }\r
+        "America:Dominica"{\r
+            ec{"Dominika"}\r
+        }\r
+        "America:Edmonton"{\r
+            ec{"Edmonton"}\r
+        }\r
+        "America:Eirunepe"{\r
+            ec{"Eýrunepe"}\r
+        }\r
+        "America:El_Salvador"{\r
+            ec{"Salwador"}\r
+        }\r
+        "America:Fort_Nelson"{\r
+            ec{"Fort Nelson"}\r
+        }\r
+        "America:Fortaleza"{\r
+            ec{"Fortaleza"}\r
+        }\r
+        "America:Glace_Bay"{\r
+            ec{"Gleýs-Beý"}\r
+        }\r
+        "America:Godthab"{\r
+            ec{"Nuk"}\r
+        }\r
+        "America:Goose_Bay"{\r
+            ec{"Gus-Beý"}\r
+        }\r
+        "America:Grand_Turk"{\r
+            ec{"Grand-Terk"}\r
+        }\r
+        "America:Grenada"{\r
+            ec{"Grenada"}\r
+        }\r
+        "America:Guadeloupe"{\r
+            ec{"Gwadelupa"}\r
+        }\r
+        "America:Guatemala"{\r
+            ec{"Gwatemala"}\r
+        }\r
+        "America:Guayaquil"{\r
+            ec{"Guýakil"}\r
+        }\r
+        "America:Guyana"{\r
+            ec{"Gaýana"}\r
+        }\r
+        "America:Halifax"{\r
+            ec{"Galifaks"}\r
+        }\r
+        "America:Havana"{\r
+            ec{"Gawana"}\r
+        }\r
+        "America:Hermosillo"{\r
+            ec{"Ermosilo"}\r
+        }\r
+        "America:Indiana:Knox"{\r
+            ec{"Noks, Indiana"}\r
+        }\r
+        "America:Indiana:Marengo"{\r
+            ec{"Marengo, Indiana"}\r
+        }\r
+        "America:Indiana:Petersburg"{\r
+            ec{"Petersburg, Indiana"}\r
+        }\r
+        "America:Indiana:Tell_City"{\r
+            ec{"Tell-Siti, Indiana"}\r
+        }\r
+        "America:Indiana:Vevay"{\r
+            ec{"Wiweý, Indiana"}\r
+        }\r
+        "America:Indiana:Vincennes"{\r
+            ec{"Winsens, Indiana"}\r
+        }\r
+        "America:Indiana:Winamac"{\r
+            ec{"Winamak, Indiana"}\r
+        }\r
+        "America:Indianapolis"{\r
+            ec{"Indianapolis"}\r
+        }\r
+        "America:Inuvik"{\r
+            ec{"Inuwik"}\r
+        }\r
+        "America:Iqaluit"{\r
+            ec{"Ikaluit"}\r
+        }\r
+        "America:Jamaica"{\r
+            ec{"Ýamaýka"}\r
+        }\r
+        "America:Jujuy"{\r
+            ec{"Žužuý"}\r
+        }\r
+        "America:Juneau"{\r
+            ec{"Džuno"}\r
+        }\r
+        "America:Kentucky:Monticello"{\r
+            ec{"Montisello, Kentuki"}\r
+        }\r
+        "America:Kralendijk"{\r
+            ec{"Kralendeýk"}\r
+        }\r
+        "America:La_Paz"{\r
+            ec{"La-Pas"}\r
+        }\r
+        "America:Lima"{\r
+            ec{"Lima"}\r
+        }\r
+        "America:Los_Angeles"{\r
+            ec{"Los-Anjeles"}\r
+        }\r
+        "America:Louisville"{\r
+            ec{"Luiswill"}\r
+        }\r
+        "America:Lower_Princes"{\r
+            ec{"Lower-Prinses-Kuorter"}\r
+        }\r
+        "America:Maceio"{\r
+            ec{"Maseýo"}\r
+        }\r
+        "America:Managua"{\r
+            ec{"Managua"}\r
+        }\r
+        "America:Manaus"{\r
+            ec{"Manaus"}\r
+        }\r
+        "America:Marigot"{\r
+            ec{"Marigo"}\r
+        }\r
+        "America:Martinique"{\r
+            ec{"Martinika"}\r
+        }\r
+        "America:Matamoros"{\r
+            ec{"Matamoros"}\r
+        }\r
+        "America:Mazatlan"{\r
+            ec{"Mazatlan"}\r
+        }\r
+        "America:Mendoza"{\r
+            ec{"Mendosa"}\r
+        }\r
+        "America:Menominee"{\r
+            ec{"Menomini"}\r
+        }\r
+        "America:Merida"{\r
+            ec{"Merida"}\r
+        }\r
+        "America:Metlakatla"{\r
+            ec{"Metlakatla"}\r
+        }\r
+        "America:Mexico_City"{\r
+            ec{"Mehiko"}\r
+        }\r
+        "America:Miquelon"{\r
+            ec{"Mikelon"}\r
+        }\r
+        "America:Moncton"{\r
+            ec{"Monkton"}\r
+        }\r
+        "America:Monterrey"{\r
+            ec{"Monterreý"}\r
+        }\r
+        "America:Montevideo"{\r
+            ec{"Montewideo"}\r
+        }\r
+        "America:Montserrat"{\r
+            ec{"Monserrat"}\r
+        }\r
+        "America:Nassau"{\r
+            ec{"Nassau"}\r
+        }\r
+        "America:New_York"{\r
+            ec{"Nýu-Ýork"}\r
+        }\r
+        "America:Nipigon"{\r
+            ec{"Nipigon"}\r
+        }\r
+        "America:Nome"{\r
+            ec{"Nom"}\r
+        }\r
+        "America:Noronha"{\r
+            ec{"Noronha"}\r
+        }\r
+        "America:North_Dakota:Beulah"{\r
+            ec{"Boýla, Demirgazyk Dakota"}\r
+        }\r
+        "America:North_Dakota:Center"{\r
+            ec{"Sentr, Demirgazyk Dakota"}\r
+        }\r
+        "America:North_Dakota:New_Salem"{\r
+            ec{"Nýu-Salem, D.g. Dakota"}\r
+        }\r
+        "America:Ojinaga"{\r
+            ec{"Ohinaga"}\r
+        }\r
+        "America:Panama"{\r
+            ec{"Panama"}\r
+        }\r
+        "America:Pangnirtung"{\r
+            ec{"Pangnirtang"}\r
+        }\r
+        "America:Paramaribo"{\r
+            ec{"Paramaribo"}\r
+        }\r
+        "America:Phoenix"{\r
+            ec{"Feniks"}\r
+        }\r
+        "America:Port-au-Prince"{\r
+            ec{"Port-o-Prens"}\r
+        }\r
+        "America:Port_of_Spain"{\r
+            ec{"Port-of-Speýn"}\r
+        }\r
+        "America:Porto_Velho"{\r
+            ec{"Portu-Welýu"}\r
+        }\r
+        "America:Puerto_Rico"{\r
+            ec{"Puerto-Riko"}\r
+        }\r
+        "America:Punta_Arenas"{\r
+            ec{"Punta-Arenas"}\r
+        }\r
+        "America:Rainy_River"{\r
+            ec{"Reýni-Riwer"}\r
+        }\r
+        "America:Rankin_Inlet"{\r
+            ec{"Rankin-Inlet"}\r
+        }\r
+        "America:Recife"{\r
+            ec{"Resifi"}\r
+        }\r
+        "America:Regina"{\r
+            ec{"Rejaýna"}\r
+        }\r
+        "America:Resolute"{\r
+            ec{"Rozulýut"}\r
+        }\r
+        "America:Rio_Branco"{\r
+            ec{"Riu-Branku"}\r
+        }\r
+        "America:Santa_Isabel"{\r
+            ec{"Santa-Izabel"}\r
+        }\r
+        "America:Santarem"{\r
+            ec{"Santarem"}\r
+        }\r
+        "America:Santiago"{\r
+            ec{"Santýago"}\r
+        }\r
+        "America:Santo_Domingo"{\r
+            ec{"Santo-Domingo"}\r
+        }\r
+        "America:Sao_Paulo"{\r
+            ec{"San-Paulu"}\r
+        }\r
+        "America:Scoresbysund"{\r
+            ec{"Illokkortoormiut"}\r
+        }\r
+        "America:Sitka"{\r
+            ec{"Sitka"}\r
+        }\r
+        "America:St_Barthelemy"{\r
+            ec{"Sen-Bartelemi"}\r
+        }\r
+        "America:St_Johns"{\r
+            ec{"Sent-Džons"}\r
+        }\r
+        "America:St_Kitts"{\r
+            ec{"Sent-Kits"}\r
+        }\r
+        "America:St_Lucia"{\r
+            ec{"Sent-Lýusiýa"}\r
+        }\r
+        "America:St_Thomas"{\r
+            ec{"Sent-Tomas"}\r
+        }\r
+        "America:St_Vincent"{\r
+            ec{"Sent-Winsent"}\r
+        }\r
+        "America:Swift_Current"{\r
+            ec{"Swift-Karent"}\r
+        }\r
+        "America:Tegucigalpa"{\r
+            ec{"Tegusigalpa"}\r
+        }\r
+        "America:Thule"{\r
+            ec{"Tule"}\r
+        }\r
+        "America:Thunder_Bay"{\r
+            ec{"Tander-Beý"}\r
+        }\r
+        "America:Tijuana"{\r
+            ec{"Tihuana"}\r
+        }\r
+        "America:Toronto"{\r
+            ec{"Toronto"}\r
+        }\r
+        "America:Tortola"{\r
+            ec{"Tortola"}\r
+        }\r
+        "America:Vancouver"{\r
+            ec{"Wankuwer"}\r
+        }\r
+        "America:Whitehorse"{\r
+            ec{"Waýthors"}\r
+        }\r
+        "America:Winnipeg"{\r
+            ec{"Winipeg"}\r
+        }\r
+        "America:Yakutat"{\r
+            ec{"Ýakutat"}\r
+        }\r
+        "America:Yellowknife"{\r
+            ec{"Ýellounaýf"}\r
+        }\r
+        "Antarctica:Casey"{\r
+            ec{"Keýsi"}\r
+        }\r
+        "Antarctica:Davis"{\r
+            ec{"Deýwis"}\r
+        }\r
+        "Antarctica:DumontDUrville"{\r
+            ec{"Dýumon-d-Ýurwil"}\r
+        }\r
+        "Antarctica:Macquarie"{\r
+            ec{"Makkuori"}\r
+        }\r
+        "Antarctica:Mawson"{\r
+            ec{"Mouson"}\r
+        }\r
+        "Antarctica:McMurdo"{\r
+            ec{"Mak-Merdo"}\r
+        }\r
+        "Antarctica:Palmer"{\r
+            ec{"Palmer"}\r
+        }\r
+        "Antarctica:Rothera"{\r
+            ec{"Rotera"}\r
+        }\r
+        "Antarctica:Syowa"{\r
+            ec{"Sýowa"}\r
+        }\r
+        "Antarctica:Troll"{\r
+            ec{"Trol"}\r
+        }\r
+        "Antarctica:Vostok"{\r
+            ec{"Wostok"}\r
+        }\r
+        "Arctic:Longyearbyen"{\r
+            ec{"Longir"}\r
+        }\r
+        "Asia:Aden"{\r
+            ec{"Aden"}\r
+        }\r
+        "Asia:Almaty"{\r
+            ec{"Almaty"}\r
+        }\r
+        "Asia:Amman"{\r
+            ec{"Amman"}\r
+        }\r
+        "Asia:Anadyr"{\r
+            ec{"Anadyr"}\r
+        }\r
+        "Asia:Aqtau"{\r
+            ec{"Aktau"}\r
+        }\r
+        "Asia:Aqtobe"{\r
+            ec{"Aktobe"}\r
+        }\r
+        "Asia:Ashgabat"{\r
+            ec{"Aşgabat"}\r
+        }\r
+        "Asia:Atyrau"{\r
+            ec{"Atyrau"}\r
+        }\r
+        "Asia:Baghdad"{\r
+            ec{"Bagdat"}\r
+        }\r
+        "Asia:Bahrain"{\r
+            ec{"Bahreýn"}\r
+        }\r
+        "Asia:Baku"{\r
+            ec{"Baku"}\r
+        }\r
+        "Asia:Bangkok"{\r
+            ec{"Bangkok"}\r
+        }\r
+        "Asia:Barnaul"{\r
+            ec{"Barnaul"}\r
+        }\r
+        "Asia:Beirut"{\r
+            ec{"Beýrut"}\r
+        }\r
+        "Asia:Bishkek"{\r
+            ec{"Bişkek"}\r
+        }\r
+        "Asia:Brunei"{\r
+            ec{"Bruneý"}\r
+        }\r
+        "Asia:Calcutta"{\r
+            ec{"Kalkutta"}\r
+        }\r
+        "Asia:Chita"{\r
+            ec{"Çita"}\r
+        }\r
+        "Asia:Choibalsan"{\r
+            ec{"Çoýbalsan"}\r
+        }\r
+        "Asia:Colombo"{\r
+            ec{"Kolombo"}\r
+        }\r
+        "Asia:Damascus"{\r
+            ec{"Damask"}\r
+        }\r
+        "Asia:Dhaka"{\r
+            ec{"Dakka"}\r
+        }\r
+        "Asia:Dili"{\r
+            ec{"Dili"}\r
+        }\r
+        "Asia:Dubai"{\r
+            ec{"Dubaý"}\r
+        }\r
+        "Asia:Dushanbe"{\r
+            ec{"Duşanbe"}\r
+        }\r
+        "Asia:Famagusta"{\r
+            ec{"Famagusta"}\r
+        }\r
+        "Asia:Gaza"{\r
+            ec{"Gaza"}\r
+        }\r
+        "Asia:Hebron"{\r
+            ec{"Hewron"}\r
+        }\r
+        "Asia:Hong_Kong"{\r
+            ec{"Gonkong"}\r
+        }\r
+        "Asia:Hovd"{\r
+            ec{"Howd"}\r
+        }\r
+        "Asia:Irkutsk"{\r
+            ec{"Irkutsk"}\r
+        }\r
+        "Asia:Jakarta"{\r
+            ec{"Jakarta"}\r
+        }\r
+        "Asia:Jayapura"{\r
+            ec{"Jaýapura"}\r
+        }\r
+        "Asia:Jerusalem"{\r
+            ec{"Iýerusalim"}\r
+        }\r
+        "Asia:Kabul"{\r
+            ec{"Kabul"}\r
+        }\r
+        "Asia:Kamchatka"{\r
+            ec{"Kamçatka"}\r
+        }\r
+        "Asia:Karachi"{\r
+            ec{"Karaçi"}\r
+        }\r
+        "Asia:Katmandu"{\r
+            ec{"Katmandu"}\r
+        }\r
+        "Asia:Khandyga"{\r
+            ec{"Handyga"}\r
+        }\r
+        "Asia:Krasnoyarsk"{\r
+            ec{"Krasnoýarsk"}\r
+        }\r
+        "Asia:Kuala_Lumpur"{\r
+            ec{"Kuala-Lumpur"}\r
+        }\r
+        "Asia:Kuching"{\r
+            ec{"Kuçing"}\r
+        }\r
+        "Asia:Kuwait"{\r
+            ec{"Kuweýt"}\r
+        }\r
+        "Asia:Macau"{\r
+            ec{"Makao"}\r
+        }\r
+        "Asia:Magadan"{\r
+            ec{"Magadan"}\r
+        }\r
+        "Asia:Makassar"{\r
+            ec{"Makasar"}\r
+        }\r
+        "Asia:Manila"{\r
+            ec{"Manila"}\r
+        }\r
+        "Asia:Muscat"{\r
+            ec{"Maskat"}\r
+        }\r
+        "Asia:Nicosia"{\r
+            ec{"Nikosiýa"}\r
+        }\r
+        "Asia:Novokuznetsk"{\r
+            ec{"Nowokuznetsk"}\r
+        }\r
+        "Asia:Novosibirsk"{\r
+            ec{"Nowosibirsk"}\r
+        }\r
+        "Asia:Omsk"{\r
+            ec{"Omsk"}\r
+        }\r
+        "Asia:Oral"{\r
+            ec{"Oral"}\r
+        }\r
+        "Asia:Phnom_Penh"{\r
+            ec{"Pnompen"}\r
+        }\r
+        "Asia:Pontianak"{\r
+            ec{"Pontianak"}\r
+        }\r
+        "Asia:Pyongyang"{\r
+            ec{"Phenýan"}\r
+        }\r
+        "Asia:Qatar"{\r
+            ec{"Katar"}\r
+        }\r
+        "Asia:Qyzylorda"{\r
+            ec{"Gyzylorda"}\r
+        }\r
+        "Asia:Rangoon"{\r
+            ec{"Rangun"}\r
+        }\r
+        "Asia:Riyadh"{\r
+            ec{"Er-Riýad"}\r
+        }\r
+        "Asia:Saigon"{\r
+            ec{"Hoşimin"}\r
+        }\r
+        "Asia:Sakhalin"{\r
+            ec{"Sahalin"}\r
+        }\r
+        "Asia:Samarkand"{\r
+            ec{"Samarkand"}\r
+        }\r
+        "Asia:Seoul"{\r
+            ec{"Seul"}\r
+        }\r
+        "Asia:Shanghai"{\r
+            ec{"Şanhaý"}\r
+        }\r
+        "Asia:Singapore"{\r
+            ec{"Singapur"}\r
+        }\r
+        "Asia:Srednekolymsk"{\r
+            ec{"Srednekolymsk"}\r
+        }\r
+        "Asia:Taipei"{\r
+            ec{"Taýbeý"}\r
+        }\r
+        "Asia:Tashkent"{\r
+            ec{"Taşkent"}\r
+        }\r
+        "Asia:Tbilisi"{\r
+            ec{"Tbilisi"}\r
+        }\r
+        "Asia:Tehran"{\r
+            ec{"Tähran"}\r
+        }\r
+        "Asia:Thimphu"{\r
+            ec{"Timpu"}\r
+        }\r
+        "Asia:Tokyo"{\r
+            ec{"Tokio"}\r
+        }\r
+        "Asia:Tomsk"{\r
+            ec{"Tomsk"}\r
+        }\r
+        "Asia:Ulaanbaatar"{\r
+            ec{"Ulan-Bator"}\r
+        }\r
+        "Asia:Urumqi"{\r
+            ec{"Urumçi"}\r
+        }\r
+        "Asia:Ust-Nera"{\r
+            ec{"Ust-Nera"}\r
+        }\r
+        "Asia:Vientiane"{\r
+            ec{"Wýentýan"}\r
+        }\r
+        "Asia:Vladivostok"{\r
+            ec{"Wladiwostok"}\r
+        }\r
+        "Asia:Yakutsk"{\r
+            ec{"Ýakutsk"}\r
+        }\r
+        "Asia:Yekaterinburg"{\r
+            ec{"Ýekaterinburg"}\r
+        }\r
+        "Asia:Yerevan"{\r
+            ec{"Ýerewan"}\r
+        }\r
+        "Atlantic:Azores"{\r
+            ec{"Azor adalary"}\r
+        }\r
+        "Atlantic:Bermuda"{\r
+            ec{"Bermuda"}\r
+        }\r
+        "Atlantic:Canary"{\r
+            ec{"Kanar adalary"}\r
+        }\r
+        "Atlantic:Cape_Verde"{\r
+            ec{"Kabo-Werde"}\r
+        }\r
+        "Atlantic:Faeroe"{\r
+            ec{"Farer adalary"}\r
+        }\r
+        "Atlantic:Madeira"{\r
+            ec{"Madeýra adalary"}\r
+        }\r
+        "Atlantic:Reykjavik"{\r
+            ec{"Reýkýawik"}\r
+        }\r
+        "Atlantic:South_Georgia"{\r
+            ec{"Günorta Georgiýa"}\r
+        }\r
+        "Atlantic:St_Helena"{\r
+            ec{"Keramatly Ýelena adasy"}\r
+        }\r
+        "Atlantic:Stanley"{\r
+            ec{"Stenli"}\r
+        }\r
+        "Australia:Adelaide"{\r
+            ec{"Adelaida"}\r
+        }\r
+        "Australia:Brisbane"{\r
+            ec{"Brisben"}\r
+        }\r
+        "Australia:Broken_Hill"{\r
+            ec{"Broken-Hil"}\r
+        }\r
+        "Australia:Currie"{\r
+            ec{"Kerri"}\r
+        }\r
+        "Australia:Darwin"{\r
+            ec{"Darwin"}\r
+        }\r
+        "Australia:Eucla"{\r
+            ec{"Ýukla"}\r
+        }\r
+        "Australia:Hobart"{\r
+            ec{"Hobart"}\r
+        }\r
+        "Australia:Lindeman"{\r
+            ec{"Lindeman"}\r
+        }\r
+        "Australia:Lord_Howe"{\r
+            ec{"Lord-Hau"}\r
+        }\r
+        "Australia:Melbourne"{\r
+            ec{"Melburn"}\r
+        }\r
+        "Australia:Perth"{\r
+            ec{"Pert"}\r
+        }\r
+        "Australia:Sydney"{\r
+            ec{"Sidneý"}\r
+        }\r
+        "Etc:UTC"{\r
+            ls{"Utgaşdyrylýan ähliumumy wagt"}\r
+        }\r
+        "Etc:Unknown"{\r
+            ec{"Näbelli şäher"}\r
+        }\r
+        "Europe:Amsterdam"{\r
+            ec{"Amsterdam"}\r
+        }\r
+        "Europe:Andorra"{\r
+            ec{"Andorra"}\r
+        }\r
+        "Europe:Astrakhan"{\r
+            ec{"Astrahan"}\r
+        }\r
+        "Europe:Athens"{\r
+            ec{"Afiny"}\r
+        }\r
+        "Europe:Belgrade"{\r
+            ec{"Belgrad"}\r
+        }\r
+        "Europe:Berlin"{\r
+            ec{"Berlin"}\r
+        }\r
+        "Europe:Bratislava"{\r
+            ec{"Bratislawa"}\r
+        }\r
+        "Europe:Brussels"{\r
+            ec{"Brýussel"}\r
+        }\r
+        "Europe:Bucharest"{\r
+            ec{"Buharest"}\r
+        }\r
+        "Europe:Budapest"{\r
+            ec{"Budapeşt"}\r
+        }\r
+        "Europe:Busingen"{\r
+            ec{"Býuzingen"}\r
+        }\r
+        "Europe:Chisinau"{\r
+            ec{"Kişinýow"}\r
+        }\r
+        "Europe:Copenhagen"{\r
+            ec{"Kopengagen"}\r
+        }\r
+        "Europe:Dublin"{\r
+            ec{"Dublin"}\r
+            ld{"Irlandiýa standart wagty"}\r
+        }\r
+        "Europe:Gibraltar"{\r
+            ec{"Gibraltar"}\r
+        }\r
+        "Europe:Guernsey"{\r
+            ec{"Gernsi"}\r
+        }\r
+        "Europe:Helsinki"{\r
+            ec{"Helsinki"}\r
+        }\r
+        "Europe:Isle_of_Man"{\r
+            ec{"Men adasy"}\r
+        }\r
+        "Europe:Istanbul"{\r
+            ec{"Stambul"}\r
+        }\r
+        "Europe:Jersey"{\r
+            ec{"Jersi"}\r
+        }\r
+        "Europe:Kaliningrad"{\r
+            ec{"Kaliningrad"}\r
+        }\r
+        "Europe:Kiev"{\r
+            ec{"Kiýew"}\r
+        }\r
+        "Europe:Kirov"{\r
+            ec{"Kirow"}\r
+        }\r
+        "Europe:Lisbon"{\r
+            ec{"Lissabon"}\r
+        }\r
+        "Europe:Ljubljana"{\r
+            ec{"Lýublýana"}\r
+        }\r
+        "Europe:London"{\r
+            ec{"London"}\r
+            ld{"Beýik Britaniýa tomusky wagty"}\r
+        }\r
+        "Europe:Luxembourg"{\r
+            ec{"Lýuksemburg"}\r
+        }\r
+        "Europe:Madrid"{\r
+            ec{"Madrid"}\r
+        }\r
+        "Europe:Malta"{\r
+            ec{"Malta"}\r
+        }\r
+        "Europe:Mariehamn"{\r
+            ec{"Mariýehamn"}\r
+        }\r
+        "Europe:Minsk"{\r
+            ec{"Minsk"}\r
+        }\r
+        "Europe:Monaco"{\r
+            ec{"Monako"}\r
+        }\r
+        "Europe:Moscow"{\r
+            ec{"Moskwa"}\r
+        }\r
+        "Europe:Oslo"{\r
+            ec{"Oslo"}\r
+        }\r
+        "Europe:Paris"{\r
+            ec{"Pariž"}\r
+        }\r
+        "Europe:Podgorica"{\r
+            ec{"Podgorisa"}\r
+        }\r
+        "Europe:Prague"{\r
+            ec{"Praga"}\r
+        }\r
+        "Europe:Riga"{\r
+            ec{"Riga"}\r
+        }\r
+        "Europe:Rome"{\r
+            ec{"Rim"}\r
+        }\r
+        "Europe:Samara"{\r
+            ec{"Samara"}\r
+        }\r
+        "Europe:San_Marino"{\r
+            ec{"San-Marino"}\r
+        }\r
+        "Europe:Sarajevo"{\r
+            ec{"Saraýewo"}\r
+        }\r
+        "Europe:Saratov"{\r
+            ec{"Saratow"}\r
+        }\r
+        "Europe:Simferopol"{\r
+            ec{"Simferopol"}\r
+        }\r
+        "Europe:Skopje"{\r
+            ec{"Skopýe"}\r
+        }\r
+        "Europe:Sofia"{\r
+            ec{"Sofiýa"}\r
+        }\r
+        "Europe:Stockholm"{\r
+            ec{"Stokgolm"}\r
+        }\r
+        "Europe:Tallinn"{\r
+            ec{"Tallin"}\r
+        }\r
+        "Europe:Tirane"{\r
+            ec{"Tirana"}\r
+        }\r
+        "Europe:Ulyanovsk"{\r
+            ec{"Ulýanowsk"}\r
+        }\r
+        "Europe:Uzhgorod"{\r
+            ec{"Užgorod"}\r
+        }\r
+        "Europe:Vaduz"{\r
+            ec{"Waduz"}\r
+        }\r
+        "Europe:Vatican"{\r
+            ec{"Watikan"}\r
+        }\r
+        "Europe:Vienna"{\r
+            ec{"Wena"}\r
+        }\r
+        "Europe:Vilnius"{\r
+            ec{"Wilnýus"}\r
+        }\r
+        "Europe:Volgograd"{\r
+            ec{"Wolgograd"}\r
+        }\r
+        "Europe:Warsaw"{\r
+            ec{"Warşawa"}\r
+        }\r
+        "Europe:Zagreb"{\r
+            ec{"Zagreb"}\r
+        }\r
+        "Europe:Zaporozhye"{\r
+            ec{"Zaporožýe"}\r
+        }\r
+        "Europe:Zurich"{\r
+            ec{"Sýurih"}\r
+        }\r
+        "Indian:Antananarivo"{\r
+            ec{"Antananariwu"}\r
+        }\r
+        "Indian:Chagos"{\r
+            ec{"Çagos"}\r
+        }\r
+        "Indian:Christmas"{\r
+            ec{"Roždestwo"}\r
+        }\r
+        "Indian:Cocos"{\r
+            ec{"Kokos"}\r
+        }\r
+        "Indian:Comoro"{\r
+            ec{"Komor adalary"}\r
+        }\r
+        "Indian:Kerguelen"{\r
+            ec{"Kergelen"}\r
+        }\r
+        "Indian:Mahe"{\r
+            ec{"Maýe"}\r
+        }\r
+        "Indian:Maldives"{\r
+            ec{"Maldiwler"}\r
+        }\r
+        "Indian:Mauritius"{\r
+            ec{"Mawrikiý"}\r
+        }\r
+        "Indian:Mayotte"{\r
+            ec{"Maýotta"}\r
+        }\r
+        "Indian:Reunion"{\r
+            ec{"Reýunýon"}\r
+        }\r
+        "Pacific:Apia"{\r
+            ec{"Apia"}\r
+        }\r
+        "Pacific:Auckland"{\r
+            ec{"Oklend"}\r
+        }\r
+        "Pacific:Bougainville"{\r
+            ec{"Bugenwil"}\r
+        }\r
+        "Pacific:Chatham"{\r
+            ec{"Çatem"}\r
+        }\r
+        "Pacific:Easter"{\r
+            ec{"Pashi adasy"}\r
+        }\r
+        "Pacific:Efate"{\r
+            ec{"Efate"}\r
+        }\r
+        "Pacific:Enderbury"{\r
+            ec{"Enderberi"}\r
+        }\r
+        "Pacific:Fakaofo"{\r
+            ec{"Fakaofo"}\r
+        }\r
+        "Pacific:Fiji"{\r
+            ec{"Fiji"}\r
+        }\r
+        "Pacific:Funafuti"{\r
+            ec{"Funafuti"}\r
+        }\r
+        "Pacific:Galapagos"{\r
+            ec{"Galapagos adalary"}\r
+        }\r
+        "Pacific:Gambier"{\r
+            ec{"Gambýe"}\r
+        }\r
+        "Pacific:Guadalcanal"{\r
+            ec{"Gwadalkanal"}\r
+        }\r
+        "Pacific:Guam"{\r
+            ec{"Guam"}\r
+        }\r
+        "Pacific:Honolulu"{\r
+            ec{"Gonolulu"}\r
+        }\r
+        "Pacific:Johnston"{\r
+            ec{"Jonston"}\r
+        }\r
+        "Pacific:Kiritimati"{\r
+            ec{"Kiritimati"}\r
+        }\r
+        "Pacific:Kosrae"{\r
+            ec{"Kosraýe"}\r
+        }\r
+        "Pacific:Kwajalein"{\r
+            ec{"Kwajaleýn"}\r
+        }\r
+        "Pacific:Majuro"{\r
+            ec{"Majuro"}\r
+        }\r
+        "Pacific:Marquesas"{\r
+            ec{"Markiz adalary"}\r
+        }\r
+        "Pacific:Midway"{\r
+            ec{"Midueý"}\r
+        }\r
+        "Pacific:Nauru"{\r
+            ec{"Nauru"}\r
+        }\r
+        "Pacific:Niue"{\r
+            ec{"Niue"}\r
+        }\r
+        "Pacific:Norfolk"{\r
+            ec{"Norfolk"}\r
+        }\r
+        "Pacific:Noumea"{\r
+            ec{"Numea"}\r
+        }\r
+        "Pacific:Pago_Pago"{\r
+            ec{"Pago-Pago"}\r
+        }\r
+        "Pacific:Palau"{\r
+            ec{"Palau"}\r
+        }\r
+        "Pacific:Pitcairn"{\r
+            ec{"Pitkern"}\r
+        }\r
+        "Pacific:Ponape"{\r
+            ec{"Ponape"}\r
+        }\r
+        "Pacific:Port_Moresby"{\r
+            ec{"Port-Morsbi"}\r
+        }\r
+        "Pacific:Rarotonga"{\r
+            ec{"Rarotonga"}\r
+        }\r
+        "Pacific:Saipan"{\r
+            ec{"Saýpan"}\r
+        }\r
+        "Pacific:Tahiti"{\r
+            ec{"Taiti"}\r
+        }\r
+        "Pacific:Tarawa"{\r
+            ec{"Tarawa"}\r
+        }\r
+        "Pacific:Tongatapu"{\r
+            ec{"Tongatapu"}\r
+        }\r
+        "Pacific:Truk"{\r
+            ec{"Çuuk"}\r
+        }\r
+        "Pacific:Wake"{\r
+            ec{"Weýk"}\r
+        }\r
+        "Pacific:Wallis"{\r
+            ec{"Uollis"}\r
+        }\r
+        "meta:Afghanistan"{\r
+            ls{"Owganystan wagty"}\r
+        }\r
+        "meta:Africa_Central"{\r
+            ls{"Merkezi Afrika wagty"}\r
+        }\r
+        "meta:Africa_Eastern"{\r
+            ls{"Gündogar Afrika wagty"}\r
+        }\r
+        "meta:Africa_Southern"{\r
+            ls{"Günorta Afrika standart wagty"}\r
+        }\r
+        "meta:Africa_Western"{\r
+            ld{"Günbatar Afrika tomusky wagty"}\r
+            lg{"Günbatar Afrika wagty"}\r
+            ls{"Günbatar Afrika standart wagty"}\r
+        }\r
+        "meta:Alaska"{\r
+            ld{"Alýaska tomusky wagty"}\r
+            lg{"Alýaska wagty"}\r
+            ls{"Alýaska standart wagty"}\r
+        }\r
+        "meta:Amazon"{\r
+            ld{"Amazon tomusky wagty"}\r
+            lg{"Amazon wagty"}\r
+            ls{"Amazon standart wagty"}\r
+        }\r
+        "meta:America_Central"{\r
+            ld{"Merkezi Amerika tomusky wagty"}\r
+            lg{"Merkezi Amerika"}\r
+            ls{"Merkezi Amerika standart wagty"}\r
+        }\r
+        "meta:America_Eastern"{\r
+            ld{"Demirgazyk Amerika gündogar tomusky wagty"}\r
+            lg{"Demirgazyk Amerika gündogar wagty"}\r
+            ls{"Demirgazyk Amerika gündogar standart wagty"}\r
+        }\r
+        "meta:America_Mountain"{\r
+            ld{"Demirgazyk Amerika dag tomusky wagty"}\r
+            lg{"Demirgazyk Amerika dag wagty"}\r
+            ls{"Demirgazyk Amerika dag standart wagty"}\r
+        }\r
+        "meta:America_Pacific"{\r
+            ld{"Demirgazyk Amerika Ýuwaş umman tomusky wagty"}\r
+            lg{"Demirgazyk Amerika Ýuwaş umman wagty"}\r
+            ls{"Demirgazyk Amerika Ýuwaş umman standart wagty"}\r
+        }\r
+        "meta:Apia"{\r
+            ld{"Apia tomusky wagty"}\r
+            lg{"Apia wagty"}\r
+            ls{"Apia standart wagty"}\r
+        }\r
+        "meta:Arabian"{\r
+            ld{"Arap ýurtlary tomusky wagty"}\r
+            lg{"Arap ýurtlary wagty"}\r
+            ls{"Arap ýurtlary standart wagty"}\r
+        }\r
+        "meta:Argentina"{\r
+            ld{"Argentina tomusky wagty"}\r
+            lg{"Argentina wagty"}\r
+            ls{"Argentina standart wagty"}\r
+        }\r
+        "meta:Argentina_Western"{\r
+            ld{"Günbatar Argentina tomusky wagty"}\r
+            lg{"Günbatar Argentina wagty"}\r
+            ls{"Günbatar Argentina standart wagty"}\r
+        }\r
+        "meta:Armenia"{\r
+            ld{"Ermenistan tomusky wagty"}\r
+            lg{"Ermenistan wagty"}\r
+            ls{"Ermenistan standart wagty"}\r
+        }\r
+        "meta:Atlantic"{\r
+            ld{"Atlantik tomusky wagty"}\r
+            lg{"Atlantik wagty"}\r
+            ls{"Atlantik standart wagty"}\r
+        }\r
+        "meta:Australia_Central"{\r
+            ld{"Merkezi Awstraliýa tomusky wagty"}\r
+            lg{"Merkezi Awstraliýa wagty"}\r
+            ls{"Merkezi Awstraliýa standart wagty"}\r
+        }\r
+        "meta:Australia_CentralWestern"{\r
+            ld{"Merkezi Awstraliýa günbatar tomusky wagty"}\r
+            lg{"Merkezi Awstraliýa günbatar wagty"}\r
+            ls{"Merkezi Awstraliýa günbatar standart wagty"}\r
+        }\r
+        "meta:Australia_Eastern"{\r
+            ld{"Gündogar Awstraliýa tomusky wagty"}\r
+            lg{"Gündogar Awstraliýa wagty"}\r
+            ls{"Gündogar Awstraliýa standart wagty"}\r
+        }\r
+        "meta:Australia_Western"{\r
+            ld{"Günbatar Awstraliýa tomusky wagty"}\r
+            lg{"Günbatar Awstraliýa wagty"}\r
+            ls{"Günbatar Awstraliýa standart wagty"}\r
+        }\r
+        "meta:Azerbaijan"{\r
+            ld{"Azerbaýjan tomusky wagty"}\r
+            lg{"Azerbaýjan wagty"}\r
+            ls{"Azerbaýjan standart wagty"}\r
+        }\r
+        "meta:Azores"{\r
+            ld{"Azor adalary tomusky wagty"}\r
+            lg{"Azor adalary wagty"}\r
+            ls{"Azor adalary standart wagty"}\r
+        }\r
+        "meta:Bangladesh"{\r
+            ld{"Bangladeş tomusky wagty"}\r
+            lg{"Bangladeş wagty"}\r
+            ls{"Bangladeş standart wagty"}\r
+        }\r
+        "meta:Bhutan"{\r
+            ls{"Butan wagty"}\r
+        }\r
+        "meta:Bolivia"{\r
+            ls{"Boliwiýa wagty"}\r
+        }\r
+        "meta:Brasilia"{\r
+            ld{"Braziliýa tomusky wagty"}\r
+            lg{"Braziliýa wagty"}\r
+            ls{"Braziliýa standart wagty"}\r
+        }\r
+        "meta:Brunei"{\r
+            ls{"Bruneý-Darussalam wagty"}\r
+        }\r
+        "meta:Cape_Verde"{\r
+            ld{"Kabo-Werde tomusky wagty"}\r
+            lg{"Kabo-Werde wagty"}\r
+            ls{"Kabo-Werde standart wagty"}\r
+        }\r
+        "meta:Chamorro"{\r
+            ls{"Çamorro wagty"}\r
+        }\r
+        "meta:Chatham"{\r
+            ld{"Çatem tomusky wagty"}\r
+            lg{"Çatem wagty"}\r
+            ls{"Çatem standart wagty"}\r
+        }\r
+        "meta:Chile"{\r
+            ld{"Çili tomusky wagty"}\r
+            lg{"Çili wagty"}\r
+            ls{"Çili standart wagty"}\r
+        }\r
+        "meta:China"{\r
+            ld{"Hytaý tomusky wagty"}\r
+            lg{"Hytaý wagty"}\r
+            ls{"Hytaý standart wagty"}\r
+        }\r
+        "meta:Choibalsan"{\r
+            ld{"Çoýbalsan tomusky wagt"}\r
+            lg{"Çoýbalsan wagty"}\r
+            ls{"Çoýbalsan standart wagty"}\r
+        }\r
+        "meta:Christmas"{\r
+            ls{"Roždestwo adasy wagty"}\r
+        }\r
+        "meta:Cocos"{\r
+            ls{"Kokos adalary wagty"}\r
+        }\r
+        "meta:Colombia"{\r
+            ld{"Kolumbiýa tomusky wagty"}\r
+            lg{"Kolumbiýa wagty"}\r
+            ls{"Kolumbiýa standart wagty"}\r
+        }\r
+        "meta:Cook"{\r
+            ld{"Kuk adalary tomusky wagty"}\r
+            lg{"Kuk adalary wagty"}\r
+            ls{"Kuk adalary standart wagty"}\r
+        }\r
+        "meta:Cuba"{\r
+            ld{"Kuba tomusky wagty"}\r
+            lg{"Kuba wagty"}\r
+            ls{"Kuba standart wagty"}\r
+        }\r
+        "meta:Davis"{\r
+            ls{"Deýwis wagty"}\r
+        }\r
+        "meta:DumontDUrville"{\r
+            ls{"Dýumon-d-Ýurwil wagty"}\r
+        }\r
+        "meta:East_Timor"{\r
+            ls{"Gündogar Timor wagty"}\r
+        }\r
+        "meta:Easter"{\r
+            ld{"Pasha adasy tomusky wagty"}\r
+            lg{"Pasha adasy wagty"}\r
+            ls{"Pasha adasy standart wagty"}\r
+        }\r
+        "meta:Ecuador"{\r
+            ls{"Ekwador wagty"}\r
+        }\r
+        "meta:Europe_Central"{\r
+            ld{"Merkezi Ýewropa tomusky wagty"}\r
+            lg{"Merkezi Ýewropa wagty"}\r
+            ls{"Merkezi Ýewropa standart wagty"}\r
+        }\r
+        "meta:Europe_Eastern"{\r
+            ld{"Gündogar Ýewropa tomusky wagty"}\r
+            lg{"Gündogar Ýewropa wagty"}\r
+            ls{"Gündogar Ýewropa standart wagty"}\r
+        }\r
+        "meta:Europe_Further_Eastern"{\r
+            ls{"Uzak Gündogar Ýewropa wagty"}\r
+        }\r
+        "meta:Europe_Western"{\r
+            ld{"Günbatar Ýewropa tomusky wagty"}\r
+            lg{"Günbatar Ýewropa wagty"}\r
+            ls{"Günbatar Ýewropa standart wagty"}\r
+        }\r
+        "meta:Falkland"{\r
+            ld{"Folklend adalary tomusky wagty"}\r
+            lg{"Folklend adalary wagty"}\r
+            ls{"Folklend adalary standart wagty"}\r
+        }\r
+        "meta:Fiji"{\r
+            ld{"Fiji tomusky wagty"}\r
+            lg{"Fiji wagty"}\r
+            ls{"Fiji standart wagty"}\r
+        }\r
+        "meta:French_Guiana"{\r
+            ls{"Fransuz Gwianasy wagty"}\r
+        }\r
+        "meta:French_Southern"{\r
+            ls{"Fransuz Günorta we Antarktika ýerleri wagty"}\r
+        }\r
+        "meta:GMT"{\r
+            ls{"Grinwiç boýunça orta wagt"}\r
+        }\r
+        "meta:Galapagos"{\r
+            ls{"Galapagos adalary wagty"}\r
+        }\r
+        "meta:Gambier"{\r
+            ls{"Gambýe wagty"}\r
+        }\r
+        "meta:Georgia"{\r
+            ld{"Gruziýa tomusky wagty"}\r
+            lg{"Gruziýa wagty"}\r
+            ls{"Gruziýa standart wagty"}\r
+        }\r
+        "meta:Gilbert_Islands"{\r
+            ls{"Gilberta adalary wagty"}\r
+        }\r
+        "meta:Greenland_Eastern"{\r
+            ld{"Gündogar Grenlandiýa tomusky wagty"}\r
+            lg{"Gündogar Grenlandiýa wagty"}\r
+            ls{"Gündogar Grenlandiýa standart wagty"}\r
+        }\r
+        "meta:Greenland_Western"{\r
+            ld{"Günbatar Grenlandiýa tomusky wagty"}\r
+            lg{"Günbatar Grenlandiýa wagty"}\r
+            ls{"Günbatar Grenlandiýa standart wagty"}\r
+        }\r
+        "meta:Gulf"{\r
+            ls{"Pars aýlagy standart wagty"}\r
+        }\r
+        "meta:Guyana"{\r
+            ls{"Gaýana wagty"}\r
+        }\r
+        "meta:Hawaii_Aleutian"{\r
+            ld{"Gawaý-Aleut tomusky wagty"}\r
+            lg{"Gawaý-Aleut wagty"}\r
+            ls{"Gawaý-Aleut standart wagty"}\r
+        }\r
+        "meta:Hong_Kong"{\r
+            ld{"Gonkong tomusky wagty"}\r
+            lg{"Gonkong wagty"}\r
+            ls{"Gonkong standart wagty"}\r
+        }\r
+        "meta:Hovd"{\r
+            ld{"Howd tomusky wagty"}\r
+            lg{"Howd wagty"}\r
+            ls{"Howd standart wagty"}\r
+        }\r
+        "meta:India"{\r
+            ls{"Hindistan standart wagty"}\r
+        }\r
+        "meta:Indian_Ocean"{\r
+            ls{"Hindi ummany wagty"}\r
+        }\r
+        "meta:Indochina"{\r
+            ls{"Hindihytaý wagty"}\r
+        }\r
+        "meta:Indonesia_Central"{\r
+            ls{"Merkezi Indoneziýa wagty"}\r
+        }\r
+        "meta:Indonesia_Eastern"{\r
+            ls{"Gündogar Indoneziýa wagty"}\r
+        }\r
+        "meta:Indonesia_Western"{\r
+            ls{"Günbatar Indoneziýa wagty"}\r
+        }\r
+        "meta:Iran"{\r
+            ld{"Eýran tomusky wagty"}\r
+            lg{"Eýran wagty"}\r
+            ls{"Eýran standart wagty"}\r
+        }\r
+        "meta:Irkutsk"{\r
+            ld{"Irkutsk tomusky wagty"}\r
+            lg{"Irkutsk wagty"}\r
+            ls{"Irkutsk standart wagty"}\r
+        }\r
+        "meta:Israel"{\r
+            ld{"Ysraýyl tomusky wagty"}\r
+            lg{"Ysraýyl wagty"}\r
+            ls{"Ysraýyl standart wagty"}\r
+        }\r
+        "meta:Japan"{\r
+            ld{"Ýaponiýa tomusky wagty"}\r
+            lg{"Ýaponiýa wagty"}\r
+            ls{"Ýaponiýa standart wagty"}\r
+        }\r
+        "meta:Kazakhstan_Eastern"{\r
+            ls{"Gündogar Gazagystan wagty"}\r
+        }\r
+        "meta:Kazakhstan_Western"{\r
+            ls{"Günbatar Gazagystan wagty"}\r
+        }\r
+        "meta:Korea"{\r
+            ld{"Koreýa tomusky wagty"}\r
+            lg{"Koreýa wagty"}\r
+            ls{"Koreýa standart wagty"}\r
+        }\r
+        "meta:Kosrae"{\r
+            ls{"Kosraýe wagty"}\r
+        }\r
+        "meta:Krasnoyarsk"{\r
+            ld{"Krasnoýarsk tomusky wagty"}\r
+            lg{"Krasnoýarsk wagty"}\r
+            ls{"Krasnoýarsk standart wagty"}\r
+        }\r
+        "meta:Kyrgystan"{\r
+            ls{"Gyrgyzystan wagty"}\r
+        }\r
+        "meta:Line_Islands"{\r
+            ls{"Laýn adalary wagty"}\r
+        }\r
+        "meta:Lord_Howe"{\r
+            ld{"Lord-Hau tomusky wagty"}\r
+            lg{"Lord-Hau wagty"}\r
+            ls{"Lord-Hau standart wagty"}\r
+        }\r
+        "meta:Macquarie"{\r
+            ls{"Makkuori adasy wagty"}\r
+        }\r
+        "meta:Magadan"{\r
+            ld{"Magadan tomusky wagty"}\r
+            lg{"Magadan wagty"}\r
+            ls{"Magadan standart wagty"}\r
+        }\r
+        "meta:Malaysia"{\r
+            ls{"Malaýziýa wagty"}\r
+        }\r
+        "meta:Maldives"{\r
+            ls{"Maldiwler wagty"}\r
+        }\r
+        "meta:Marquesas"{\r
+            ls{"Markiz adalary wagty"}\r
+        }\r
+        "meta:Marshall_Islands"{\r
+            ls{"Marşall adalary wagty"}\r
+        }\r
+        "meta:Mauritius"{\r
+            ld{"Mawrikiý tomusky wagty"}\r
+            lg{"Mawrikiý wagty"}\r
+            ls{"Mawrikiý standart wagty"}\r
+        }\r
+        "meta:Mawson"{\r
+            ls{"Mouson wagty"}\r
+        }\r
+        "meta:Mexico_Northwest"{\r
+            ld{"Demirgazyk-günbatar Meksika tomusky wagty"}\r
+            lg{"Demirgazyk-günbatar Meksika wagty"}\r
+            ls{"Demirgazyk-günbatar Meksika standart wagty"}\r
+        }\r
+        "meta:Mexico_Pacific"{\r
+            ld{"Meksikan Ýuwaş umman tomusky wagty"}\r
+            lg{"Meksikan Ýuwaş umman wagty"}\r
+            ls{"Meksikan Ýuwaş umman standart wagty"}\r
+        }\r
+        "meta:Mongolia"{\r
+            ld{"Ulan-Bator tomusky wagty"}\r
+            lg{"Ulan-Bator wagty"}\r
+            ls{"Ulan-Bator standart wagty"}\r
+        }\r
+        "meta:Moscow"{\r
+            ld{"Moskwa tomusky wagty"}\r
+            lg{"Moskwa wagty"}\r
+            ls{"Moskwa standart wagty"}\r
+        }\r
+        "meta:Myanmar"{\r
+            ls{"Mýanma wagty"}\r
+        }\r
+        "meta:Nauru"{\r
+            ls{"Nauru wagty"}\r
+        }\r
+        "meta:Nepal"{\r
+            ls{"Nepal wagty"}\r
+        }\r
+        "meta:New_Caledonia"{\r
+            ld{"Täze Kaledoniýa tomusky wagty"}\r
+            lg{"Täze Kaledoniýa wagty"}\r
+            ls{"Täze Kaledoniýa standart wagty"}\r
+        }\r
+        "meta:New_Zealand"{\r
+            ld{"Täze Zelandiýa tomusky wagty"}\r
+            lg{"Täze Zelandiýa wagty"}\r
+            ls{"Täze Zelandiýa standart wagty"}\r
+        }\r
+        "meta:Newfoundland"{\r
+            ld{"Nýufaundlend tomusky wagty"}\r
+            lg{"Nýufaundlend wagty"}\r
+            ls{"Nýufaundlend standart wagty"}\r
+        }\r
+        "meta:Niue"{\r
+            ls{"Niue wagty"}\r
+        }\r
+        "meta:Norfolk"{\r
+            ls{"Norfolk adasy wagty"}\r
+        }\r
+        "meta:Noronha"{\r
+            ld{"Fernandu-di-Noronýa tomusky wagty"}\r
+            lg{"Fernandu-di-Noronýa wagty"}\r
+            ls{"Fernandu-di-Noronýa standart wagty"}\r
+        }\r
+        "meta:Novosibirsk"{\r
+            ld{"Nowosibisk tomusky wagty"}\r
+            lg{"Nowosibirsk wagty"}\r
+            ls{"Nowosibirsk standart wagty"}\r
+        }\r
+        "meta:Omsk"{\r
+            ld{"Omsk tomusky wagty"}\r
+            lg{"Omsk wagty"}\r
+            ls{"Omsk standart wagty"}\r
+        }\r
+        "meta:Pakistan"{\r
+            ld{"Pakistan tomusky wagty"}\r
+            lg{"Pakistan wagty"}\r
+            ls{"Pakistan standart wagty"}\r
+        }\r
+        "meta:Palau"{\r
+            ls{"Palau wagty"}\r
+        }\r
+        "meta:Papua_New_Guinea"{\r
+            ls{"Papua - Täze Gwineýa wagty"}\r
+        }\r
+        "meta:Paraguay"{\r
+            ld{"Paragwaý tomusky wagty"}\r
+            lg{"Paragwaý wagty"}\r
+            ls{"Paragwaý standart wagty"}\r
+        }\r
+        "meta:Peru"{\r
+            ld{"Peru tomusky wagty"}\r
+            lg{"Peru wagty"}\r
+            ls{"Peru standart wagty"}\r
+        }\r
+        "meta:Philippines"{\r
+            ld{"Filippinler tomusky wagty"}\r
+            lg{"Filippinler wagty"}\r
+            ls{"Filippinler standart wagty"}\r
+        }\r
+        "meta:Phoenix_Islands"{\r
+            ls{"Feniks adalary wagty"}\r
+        }\r
+        "meta:Pierre_Miquelon"{\r
+            ld{"Sen-Pýer we Mikelon tomusky wagty"}\r
+            lg{"Sen-Pýer we Mikelon"}\r
+            ls{"Sen-Pýer we Mikelon standart wagty"}\r
+        }\r
+        "meta:Pitcairn"{\r
+            ls{"Pitkern wagty"}\r
+        }\r
+        "meta:Ponape"{\r
+            ls{"Ponape wagty"}\r
+        }\r
+        "meta:Pyongyang"{\r
+            ls{"Phenýan wagty"}\r
+        }\r
+        "meta:Reunion"{\r
+            ls{"Reýunýon wagty"}\r
+        }\r
+        "meta:Rothera"{\r
+            ls{"Rotera wagty"}\r
+        }\r
+        "meta:Sakhalin"{\r
+            ld{"Sahalin tomusky wagty"}\r
+            lg{"Sahalin wagty"}\r
+            ls{"Sahalin standart wagty"}\r
+        }\r
+        "meta:Samoa"{\r
+            ld{"Samoa tomusky wagty"}\r
+            lg{"Samoa wagty"}\r
+            ls{"Samoa standart wagty"}\r
+        }\r
+        "meta:Seychelles"{\r
+            ls{"Seýşel adalary wagty"}\r
+        }\r
+        "meta:Singapore"{\r
+            ls{"Singapur wagty"}\r
+        }\r
+        "meta:Solomon"{\r
+            ls{"Solomon adalary wagty"}\r
+        }\r
+        "meta:South_Georgia"{\r
+            ls{"Günorta Georgiýa wagty"}\r
+        }\r
+        "meta:Suriname"{\r
+            ls{"Surinam wagty"}\r
+        }\r
+        "meta:Syowa"{\r
+            ls{"Sýowa wagty"}\r
+        }\r
+        "meta:Tahiti"{\r
+            ls{"Taiti wagty"}\r
+        }\r
+        "meta:Taipei"{\r
+            ld{"Taýbeý tomusky wagty"}\r
+            lg{"Taýbeý wagty"}\r
+            ls{"Taýbeý standart wagty"}\r
+        }\r
+        "meta:Tajikistan"{\r
+            ls{"Täjigistan wagty"}\r
+        }\r
+        "meta:Tokelau"{\r
+            ls{"Tokelau wagty"}\r
+        }\r
+        "meta:Tonga"{\r
+            ld{"Tonga tomusky wagty"}\r
+            lg{"Tonga wagty"}\r
+            ls{"Tonga standart wagty"}\r
+        }\r
+        "meta:Truk"{\r
+            ls{"Çuuk wagty"}\r
+        }\r
+        "meta:Turkmenistan"{\r
+            ld{"Türkmenistan tomusky wagty"}\r
+            lg{"Türkmenistan wagty"}\r
+            ls{"Türkmenistan standart wagty"}\r
+        }\r
+        "meta:Tuvalu"{\r
+            ls{"Tuwalu wagty"}\r
+        }\r
+        "meta:Uruguay"{\r
+            ld{"Urugwaý tomusky wagty"}\r
+            lg{"Urugwaý wagty"}\r
+            ls{"Urugwaý standart wagty"}\r
+        }\r
+        "meta:Uzbekistan"{\r
+            ld{"Özbegistan tomusky wagty"}\r
+            lg{"Özbegistan wagty"}\r
+            ls{"Özbegistan standart wagty"}\r
+        }\r
+        "meta:Vanuatu"{\r
+            ld{"Wanuatu tomusky wagty"}\r
+            lg{"Wanuatu wagty"}\r
+            ls{"Wanuatu standart wagty"}\r
+        }\r
+        "meta:Venezuela"{\r
+            ls{"Wenesuela wagty"}\r
+        }\r
+        "meta:Vladivostok"{\r
+            ld{"Wladiwostok tomusky wagty"}\r
+            lg{"Wladiwostok wagty"}\r
+            ls{"Wladiwostok standart wagty"}\r
+        }\r
+        "meta:Volgograd"{\r
+            ld{"Wolgograd tomusky wagty"}\r
+            lg{"Wolgograd wagty"}\r
+            ls{"Wolgograd standart wagty"}\r
+        }\r
+        "meta:Vostok"{\r
+            ls{"Wostok wagty"}\r
+        }\r
+        "meta:Wake"{\r
+            ls{"Weýk adasy wagty"}\r
+        }\r
+        "meta:Wallis"{\r
+            ls{"Uollis we Futuna wagty"}\r
+        }\r
+        "meta:Yakutsk"{\r
+            ld{"Ýakutsk tomusky wagty"}\r
+            lg{"Ýakutsk wagty"}\r
+            ls{"Ýakutsk standart wagty"}\r
+        }\r
+        "meta:Yekaterinburg"{\r
+            ld{"Ýekaterinburg tomusky wagty"}\r
+            lg{"Ýekaterinburg wagty"}\r
+            ls{"Ýekaterinburg standart wagty"}\r
+        }\r
+        fallbackFormat{"{1} ({0})"}\r
+        gmtFormat{"GMT{0}"}\r
+        gmtZeroFormat{"GMT"}\r
+        hourFormat{"+HH:mm;-HH:mm"}\r
+        regionFormat{"{0} wagty"}\r
+        regionFormatDaylight{"{0} tomusky wagty"}\r
+        regionFormatStandard{"{0} standart wagty"}\r
+    }\r
+}\r
index ecd6b28451fe6171aa643ca265d33128d29c193e..d4912281e78bcb6dc7dc3431b0873b591359e4dc 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 to{\r
-    Version{"2.1.38.39"}\r
+    Version{"2.1.44.88"}\r
     zoneStrings{\r
         "Africa:Abidjan"{\r
             ec{"Abidjan"}\r
index c512441944d0381ecf9fe4e777a5e932e5acb9f9..0ab184386afe6fa24f44ee152dba6b59d20b1f2b 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 tr{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.91"}\r
     zoneStrings{\r
         "Africa:Abidjan"{\r
             ec{"Abidjan"}\r
index 93ad80c679eb079a1a60ba41c64dc87519037b68..a9b4ee8fb5a06b87eb71eec1934bc52c1c28b0de 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 tt{\r
-    Version{"2.1.38.72"}\r
+    Version{"2.1.44.88"}\r
     zoneStrings{\r
         "Etc:UTC"{\r
             ls{"Бөтендөнья килештерелгән вакыты"}\r
index c66e03a66b5aaa3dffce9d49102ddd5ef19c4ec8..a74f30ecd211d037eb5e858f00c90ae117428e54 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 ug{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.88"}\r
     zoneStrings{\r
         "Africa:Sao_Tome"{\r
             ec{"سان-تومې"}\r
index 7ac8fd07effdfb19dd8f2bfa7ea62f1ab8aca870..93a99df722b55ff2cbbd0d994817fc9bfdb6dc70 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 uk{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.65"}\r
     zoneStrings{\r
         "Africa:Abidjan"{\r
             ec{"Абіджан"}\r
@@ -16,7 +16,7 @@ uk{
             ec{"Алжир"}\r
         }\r
         "Africa:Asmera"{\r
-            ec{"Ð\90Ñ\81мара"}\r
+            ec{"Ð\90Ñ\81мера"}\r
         }\r
         "Africa:Bamako"{\r
             ec{"Бамако"}\r
@@ -31,7 +31,7 @@ uk{
             ec{"Бісау"}\r
         }\r
         "Africa:Blantyre"{\r
-            ec{"Ð\91ланÑ\82ир"}\r
+            ec{"Ð\91ланÑ\82айр"}\r
         }\r
         "Africa:Brazzaville"{\r
             ec{"Браззавіль"}\r
@@ -217,7 +217,7 @@ uk{
             ec{"Беліз"}\r
         }\r
         "America:Blanc-Sablon"{\r
-            ec{"Бланк-Саблон"}\r
+            ec{"Блан-Саблон"}\r
         }\r
         "America:Boa_Vista"{\r
             ec{"Боа-Віста"}\r
@@ -250,7 +250,7 @@ uk{
             ec{"Каєнна"}\r
         }\r
         "America:Cayman"{\r
-            ec{"Ð\9aаймановÑ\96 Ð¾строви"}\r
+            ec{"Ð\9aаймановÑ\96 Ð\9eстрови"}\r
         }\r
         "America:Chicago"{\r
             ec{"Чікаґо"}\r
@@ -454,7 +454,7 @@ uk{
             ec{"Монтевідео"}\r
         }\r
         "America:Montserrat"{\r
-            ec{"Монсеррат"}\r
+            ec{"Ð\9cонÑ\82Ñ\81еÑ\80Ñ\80аÑ\82"}\r
         }\r
         "America:Nassau"{\r
             ec{"Насау"}\r
@@ -1281,7 +1281,7 @@ uk{
             ec{"Тонґатапу"}\r
         }\r
         "Pacific:Truk"{\r
-            ec{"ТÑ\80ук"}\r
+            ec{"ЧÑ\83ук"}\r
         }\r
         "Pacific:Wake"{\r
             ec{"Вейк"}\r
@@ -1818,7 +1818,7 @@ uk{
             ls{"за часом у Сінґапурі"}\r
         }\r
         "meta:Solomon"{\r
-            ls{"за Ñ\87аÑ\81ом Ð½Ð° Ð¡Ð¾Ð»Ð¾Ð¼Ð¾Ð½Ð¾Ð²Ð¸Ñ\85 Ð¾стровах"}\r
+            ls{"за Ñ\87аÑ\81ом Ð½Ð° Ð¡Ð¾Ð»Ð¾Ð¼Ð¾Ð½Ð¾Ð²Ð¸Ñ\85 Ð\9eстровах"}\r
         }\r
         "meta:South_Georgia"{\r
             ls{"за часом на острові Південна Джорджія"}\r
index 118f3731dece543738654dc784b10f62b0ff0701..54c774380f6ac853bad1002b039e69747cf19112 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 ur{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.3"}\r
     zoneStrings{\r
         "Africa:Abidjan"{\r
             ec{"عابدجان"}\r
@@ -1019,7 +1019,7 @@ ur{
             ec{"جرسی"}\r
         }\r
         "Europe:Kaliningrad"{\r
-            ec{"كالينينغراد"}\r
+            ec{"کالينينغراد"}\r
         }\r
         "Europe:Kiev"{\r
             ec{"کیوو"}\r
@@ -1898,7 +1898,7 @@ ur{
         gmtZeroFormat{"GMT"}\r
         hourFormat{"+HH:mm;-HH:mm"}\r
         regionFormat{"{0} وقت"}\r
-        regionFormatDaylight{"{0} (+1)"}\r
-        regionFormatStandard{"{0} (+0)"}\r
+        regionFormatDaylight{"{0} ڈے لائٹ ٹائم"}\r
+        regionFormatStandard{"{0} اسٹینڈرڈ ٹائم"}\r
     }\r
 }\r
index 32e10d542da1a7937f02a142b6ecac9fa7fc949f..a389a2061cb79d3ee89ca4401500f37f420a3e58 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 ur_IN{\r
-    Version{"2.1.38.39"}\r
+    Version{"2.1.43.65"}\r
     zoneStrings{\r
         "Africa:Accra"{\r
             ec{"اکرا"}\r
index 8a95752675f0bf727e75c498447a052402804be6..e41504e123e4074bc5dc174efeb8e6c27b941c18 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 uz{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.88"}\r
     zoneStrings{\r
         "Africa:Abidjan"{\r
             ec{"Abidjan"}\r
index 57d5c3041d9fdb6908744a3b72662e5a8e793e88..b1a968f38510e7c766b5a0713cee44674923140a 100644 (file)
@@ -2,7 +2,7 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 uz_Cyrl{\r
     %%Parent{"root"}\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.2"}\r
     zoneStrings{\r
         "Africa:Asmera"{\r
             ec{"Asmara"}\r
index b2ac0efa46da85c5040bde1d2c138884bdc398b6..3f70804c90b712ab853bd6f04d7e4b40a5160e0a 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 vi{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.65"}\r
     zoneStrings{\r
         "Africa:Abidjan"{\r
             ec{"Abidjan"}\r
index 1c0c8618be1f6fd5f269631d83e4c818f6914589..9966cc3bcf53dc81cc96c8a4698230bff1cccccf 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 wo{\r
-    Version{"2.1.38.71"}\r
+    Version{"2.1.43.94"}\r
     zoneStrings{\r
         "Africa:Dakar"{\r
             ec{"Dakar"}\r
diff --git a/source/data/zone/xh.txt b/source/data/zone/xh.txt
new file mode 100644 (file)
index 0000000..64c4b4d
--- /dev/null
@@ -0,0 +1,5 @@
+// © 2016 and later: Unicode, Inc. and others.\r
+// License & terms of use: http://www.unicode.org/copyright.html#License\r
+xh{\r
+    Version{"2.1.44.88"}\r
+}\r
index eb0f317ea4523e4efb14676264ccbd8c85cf2924..31760f0c1867a7a9d90b5ecefb4d9b53c5a79560 100644 (file)
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 yo{\r
-    Version{"2.1.39.11"}\r
+    Version{"2.1.44.88"}\r
 }\r
index 2a491b0eb4ab6ccc3992a22d68ebb0f4e3a3856d..11a4b8173743c91a2b3090229307da428e6383e5 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 yue{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.91"}\r
     zoneStrings{\r
         "Africa:Abidjan"{\r
             ec{"阿比讓"}\r
index b639892642058df173ec7eb2a01b033e6f65dd5d..5daf40ed280789c837ccd2ab4b01dafd27252a1c 100644 (file)
@@ -2,7 +2,7 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 yue_Hans{\r
     %%Parent{"root"}\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.91"}\r
     zoneStrings{\r
         "Africa:Abidjan"{\r
             ec{"阿比让"}\r
index 1affd805f2a8c8ae2f7864a02f490517fbfafad9..470d4c0745439a7a84d31267aae2bc4f5767d92d 100644 (file)
@@ -1,5 +1,5 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 zgh{\r
-    Version{"2.1.39.11"}\r
+    Version{"2.1.43.94"}\r
 }\r
index ceb2cc16fc17f199b5650dffe58a8431317ec6ab..6880652d26f52eeaccfbd2c81d7fa1e3cf32b5d1 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 zh{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.76"}\r
     zoneStrings{\r
         "Africa:Abidjan"{\r
             ec{"阿比让"}\r
index fae5a58d84967498181e5bbc1dac4b3a663baa9d..be6584cc58a9b9c316b9028128e8d34ec219ecd7 100644 (file)
@@ -2,7 +2,7 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 zh_Hant{\r
     %%Parent{"root"}\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.44.91"}\r
     zoneStrings{\r
         "Africa:Abidjan"{\r
             ec{"阿比讓"}\r
index f3650600ec31bad5df1976a576ef2cbf722fdb1b..4e307097919e91732c9fc5ffbe8551defa3b575c 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 zh_Hant_HK{\r
-    Version{"2.1.39.11"}\r
+    Version{"2.1.43.65"}\r
     zoneStrings{\r
         "Africa:Abidjan"{\r
             ec{"阿比贊"}\r
@@ -106,7 +106,7 @@ zh_Hant_HK{
             ec{"卡宴"}\r
         }\r
         "America:Chihuahua"{\r
-            ec{"芝華華"}\r
+            ec{"芝娃娃"}\r
         }\r
         "America:Cordoba"{\r
             ec{"科爾多瓦"}\r
@@ -174,9 +174,6 @@ zh_Hant_HK{
         "America:Inuvik"{\r
             ec{"伊努維克"}\r
         }\r
-        "America:Kentucky:Monticello"{\r
-            ec{"肯塔基州蒙蒂塞洛"}\r
-        }\r
         "America:Louisville"{\r
             ec{"路易維爾"}\r
         }\r
@@ -358,7 +355,7 @@ zh_Hant_HK{
             ec{"葉卡捷琳堡"}\r
         }\r
         "Asia:Yerevan"{\r
-            ec{"耶烈萬"}\r
+            ec{"埃里温"}\r
         }\r
         "Atlantic:Canary"{\r
             ec{"加那利"}\r
@@ -607,6 +604,10 @@ zh_Hant_HK{
             lg{"費爾南多迪諾羅尼亞時間"}\r
             ls{"費爾南多迪諾羅尼亞標準時間"}\r
         }\r
+        "meta:Omsk"{\r
+            ld{"鄂木斯克夏令時間"}\r
+            ls{"鄂木斯克標準時間"}\r
+        }\r
         "meta:Papua_New_Guinea"{\r
             ls{"巴布亞新畿內亞時間"}\r
         }\r
index 43c2f1f45a41dee0d6669abce396f5ec420b8f05..953afbf50b5cfd694381003a87b807ac6e7bab64 100644 (file)
@@ -2,5 +2,5 @@
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 zh_Hant_MO{\r
     %%Parent{"zh_Hant_HK"}\r
-    Version{"2.1.38.39"}\r
+    Version{"2.1.43.65"}\r
 }\r
index dd4a96c415326730063e0fa62e67d3d90ef80b4e..dd20bb167a638950e26b4e16556593771edba714 100644 (file)
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.\r
 // License & terms of use: http://www.unicode.org/copyright.html#License\r
 zu{\r
-    Version{"2.1.41.97"}\r
+    Version{"2.1.43.65"}\r
     zoneStrings{\r
         "Africa:Abidjan"{\r
             ec{"i-Abidjan"}\r
index 7d4e21b93bbf5e8cc19661a3b1ce06f5cdef0b2b..fb5eb146becf096c6040cb250285755d28f00af7 100644 (file)
@@ -81,6 +81,7 @@ collationsets.o \
 collationcompare.o collationfastlatin.o collationkeys.o rulebasedcollator.o collationroot.o \
 collationrootelements.o collationdatabuilder.o \
 collationweights.o collationruleparser.o collationbuilder.o collationfastlatinbuilder.o \
+listformatter.o ulistformatter.o \
 strmatch.o usearch.o search.o stsearch.o \
 translit.o utrans.o esctrn.o unesctrn.o funcrepl.o strrepl.o tridpars.o \
 cpdtrans.o rbt.o rbt_data.o rbt_pars.o rbt_rule.o rbt_set.o \
@@ -110,7 +111,8 @@ double-conversion-fast-dtoa.o double-conversion-strtod.o \
 numparse_stringsegment.o numparse_parsednumber.o numparse_impl.o \
 numparse_symbols.o numparse_decimal.o numparse_scientific.o numparse_currency.o \
 numparse_affixes.o numparse_compositions.o numparse_validators.o \
-
+numrange_fluent.o numrange_impl.o \
+erarules.o
 
 ## Header files to install
 HEADERS = $(srcdir)/unicode/*.h
index d36a2cc6de3bb0eca9eca09c1f5c7551234d3bc2..3950d1a13f1eaf17bd5feff28aecd43d378bbc95 100644 (file)
@@ -511,8 +511,8 @@ BucketList *AlphabeticIndex::createBucketList(UErrorCode &errorCode) const {
                                           ces, errorCode) &&
                 current.charAt(current.length() - 1) != 0xFFFF /* !current.endsWith("\uffff") */) {
             // "AE-ligature" or "Sch" etc.
-            for (int32_t i = bucketList->size() - 2;; --i) {
-                Bucket *singleBucket = getBucket(*bucketList, i);
+            for (int32_t j = bucketList->size() - 2;; --j) {
+                Bucket *singleBucket = getBucket(*bucketList, j);
                 if (singleBucket->labelType_ != U_ALPHAINDEX_NORMAL) {
                     // There is no single-character bucket since the last
                     // underflow or inflow label.
@@ -608,8 +608,8 @@ BucketList *AlphabeticIndex::createBucketList(UErrorCode &errorCode) const {
     }
     // Do not call publicBucketList->setDeleter():
     // This vector shares its objects with the bucketList.
-    for (int32_t i = 0; i < bucketList->size(); ++i) {
-        bucket = getBucket(*bucketList, i);
+    for (int32_t j = 0; j < bucketList->size(); ++j) {
+        bucket = getBucket(*bucketList, j);
         if (bucket->displayBucket_ == NULL) {
             publicBucketList->addElement(bucket, errorCode);
         }
index d06469e2ae274633bede136323d502704373f0b2..6e382b824b95b7cd6ba8932c3b18c2cee0756c19 100644 (file)
@@ -391,12 +391,12 @@ void AnyTransliterator::registerIDs() {
                 UnicodeString id;
                 TransliteratorIDParser::STVtoID(UnicodeString(TRUE, ANY, 3), target, variant, id);
                 ec = U_ZERO_ERROR;
-                AnyTransliterator* t = new AnyTransliterator(id, target, variant,
+                AnyTransliterator* tl = new AnyTransliterator(id, target, variant,
                                                              targetScript, ec);
                 if (U_FAILURE(ec)) {
-                    delete t;
+                    delete tl;
                 } else {
-                    Transliterator::_registerInstance(t);
+                    Transliterator::_registerInstance(tl);
                     Transliterator::_registerSpecialInverse(target, UnicodeString(TRUE, NULL_ID, 4), FALSE);
                 }
             }
index 526a5a70b4ab957d65a89bdb158573d6702892b1..7a2a6ee383edb3c4ceec3c057214e9a76e78f6bf 100644 (file)
@@ -3797,7 +3797,7 @@ Calendar::setWeekData(const Locale& desiredLocale, const char *type, UErrorCode&
         Locale max = Locale::createFromName(maxLocaleID);
         useLocale = Locale(max.getLanguage(),max.getCountry());
     } else {
-        useLocale = Locale(desiredLocale);
+        useLocale = desiredLocale;
     }
 
     /* The code here is somewhat of a hack, since week data and weekend data aren't really tied to
index 25c8745cbf203b3c590ffea65a67a65394bd653d..d9c6b4607f3b3b3f2a41bc1284ccc83e2cd84c87 100644 (file)
@@ -448,6 +448,13 @@ Collator* U_EXPORT2 Collator::createInstance(const Locale& desiredLocale,
 #endif
     {
         coll = makeInstance(desiredLocale, status);
+        // Either returns NULL with U_FAILURE(status), or non-NULL with U_SUCCESS(status)
+    }
+    // The use of *coll in setAttributesFromKeywords can cause the NULL check to be
+    // optimized out of the delete even though setAttributesFromKeywords returns
+    // immediately if U_FAILURE(status), so we add a check here.
+    if (U_FAILURE(status)) {
+        return NULL;
     }
     setAttributesFromKeywords(desiredLocale, *coll, status);
     if (U_FAILURE(status)) {
@@ -986,8 +993,8 @@ Collator::internalCompareUTF8(const char *left, int32_t leftLength,
         return UCOL_EQUAL;
     }
     return compareUTF8(
-            StringPiece(left, (leftLength < 0) ? uprv_strlen(left) : leftLength),
-            StringPiece(right, (rightLength < 0) ? uprv_strlen(right) : rightLength),
+            StringPiece(left, (leftLength < 0) ? static_cast<int32_t>(uprv_strlen(left)) : leftLength),
+            StringPiece(right, (rightLength < 0) ? static_cast<int32_t>(uprv_strlen(right)) : rightLength),
             errorCode);
 }
 
index 4b9e6b59075e1dcb4452a1654cc62f7f23cbdc1c..b5c322fb44679b5790f10176555ea628eec5e764 100644 (file)
@@ -403,13 +403,13 @@ CollationKeys::writeSortKeyUpToQuaternary(CollationIterator &iter,
                     uint8_t *secs = secondaries.data();
                     int32_t last = secondaries.length() - 1;
                     if(secSegmentStart < last) {
-                        uint8_t *p = secs + secSegmentStart;
-                        uint8_t *q = secs + last;
+                        uint8_t *q = secs + secSegmentStart;
+                        uint8_t *r = secs + last;
                         do {
-                            uint8_t b = *p;
-                            *p++ = *q;
-                            *q-- = b;
-                        } while(p < q);
+                            uint8_t b = *q;
+                            *q++ = *r;
+                            *r-- = b;
+                        } while(q < r);
                     }
                     secondaries.appendByte(p == Collation::NO_CE_PRIMARY ?
                         Collation::LEVEL_SEPARATOR_BYTE : Collation::MERGE_SEPARATOR_BYTE);
index d98f18a19cb117cce614aee86a4e54533a2f6bfd..5579ba8ec3febff1c492b69e39792870b58fc1d4 100644 (file)
@@ -166,7 +166,7 @@ int32_t CharsetRecog_mbcs::match_mbcs(InputText *det, const uint16_t commonChars
                 doubleByteCharCount++;
 
                 if (commonChars != 0) {
-                    if (binarySearch(commonChars, commonCharsLen, iter.charValue) >= 0){
+                    if (binarySearch(commonChars, commonCharsLen, static_cast<uint16_t>(iter.charValue)) >= 0){
                         commonCharCount += 1;
                     }
                 }
index a274d5ee63029969071ddcb3819a08b68afa822b..af9c837af89e4412993c00109c036527e331b9d8 100644 (file)
@@ -17,7 +17,6 @@
 #include <iostream>
 #endif
 
-
 #include "unicode/locid.h"
 #include "unicode/plurrule.h"
 #include "unicode/strenum.h"
@@ -30,7 +29,6 @@
 
 U_NAMESPACE_BEGIN
 
-
 static const UChar gNumberPatternSeparator = 0x3B; // ;
 
 U_CDECL_BEGIN
@@ -65,66 +63,86 @@ static const char gDecimalFormatTag[]="decimalFormat";
 static const char gCurrUnitPtnTag[]="CurrencyUnitPatterns";
 
 CurrencyPluralInfo::CurrencyPluralInfo(UErrorCode& status)
-:   fPluralCountToCurrencyUnitPattern(NULL),
-    fPluralRules(NULL),
-    fLocale(NULL) {
+:   fPluralCountToCurrencyUnitPattern(nullptr),
+    fPluralRules(nullptr),
+    fLocale(nullptr),
+    fInternalStatus(U_ZERO_ERROR) {
     initialize(Locale::getDefault(), status);
 }
 
 CurrencyPluralInfo::CurrencyPluralInfo(const Locale& locale, UErrorCode& status)
-:   fPluralCountToCurrencyUnitPattern(NULL),
-    fPluralRules(NULL),
-    fLocale(NULL) {
+:   fPluralCountToCurrencyUnitPattern(nullptr),
+    fPluralRules(nullptr),
+    fLocale(nullptr),
+    fInternalStatus(U_ZERO_ERROR) {
     initialize(locale, status);
 }
 
 CurrencyPluralInfo::CurrencyPluralInfo(const CurrencyPluralInfo& info) 
 :   UObject(info),
-    fPluralCountToCurrencyUnitPattern(NULL),
-    fPluralRules(NULL),
-    fLocale(NULL) {
+    fPluralCountToCurrencyUnitPattern(nullptr),
+    fPluralRules(nullptr),
+    fLocale(nullptr),
+    fInternalStatus(U_ZERO_ERROR) {
     *this = info;
 }
 
-
 CurrencyPluralInfo&
 CurrencyPluralInfo::operator=(const CurrencyPluralInfo& info) {
     if (this == &info) {
         return *this;
     }
 
+    fInternalStatus = info.fInternalStatus;
+    if (U_FAILURE(fInternalStatus)) {
+        // bail out early if the object we were copying from was already 'invalid'.
+        return *this;
+    }
+
     deleteHash(fPluralCountToCurrencyUnitPattern);
-    UErrorCode status = U_ZERO_ERROR;
-    fPluralCountToCurrencyUnitPattern = initHash(status);
+    fPluralCountToCurrencyUnitPattern = initHash(fInternalStatus);
     copyHash(info.fPluralCountToCurrencyUnitPattern, 
-             fPluralCountToCurrencyUnitPattern, status);
-    if ( U_FAILURE(status) ) {
+             fPluralCountToCurrencyUnitPattern, fInternalStatus);
+    if ( U_FAILURE(fInternalStatus) ) {
         return *this;
     }
 
     delete fPluralRules;
+    fPluralRules = nullptr;
     delete fLocale;
-    if (info.fPluralRules) {
+    fLocale = nullptr;
+
+    if (info.fPluralRules != nullptr) {
         fPluralRules = info.fPluralRules->clone();
-    } else {
-        fPluralRules = NULL;
+        if (fPluralRules == nullptr) {
+            fInternalStatus = U_MEMORY_ALLOCATION_ERROR;
+            return *this;
+        }
     }
-    if (info.fLocale) {
+    if (info.fLocale != nullptr) {
         fLocale = info.fLocale->clone();
-    } else {
-        fLocale = NULL;
+        if (fLocale == nullptr) {
+            // Note: If clone had an error parameter, then we could check/set that instead.
+            fInternalStatus = U_MEMORY_ALLOCATION_ERROR;
+            return *this;
+        }
+        // If the other locale wasn't bogus, but our clone'd locale is bogus, then OOM happened
+        // during the call to clone().
+        if (!info.fLocale->isBogus() && fLocale->isBogus()) {
+            fInternalStatus = U_MEMORY_ALLOCATION_ERROR;
+            return *this;
+        }
     }
     return *this;
 }
 
-
 CurrencyPluralInfo::~CurrencyPluralInfo() {
     deleteHash(fPluralCountToCurrencyUnitPattern);
-    fPluralCountToCurrencyUnitPattern = NULL;
+    fPluralCountToCurrencyUnitPattern = nullptr;
     delete fPluralRules;
     delete fLocale;
-    fPluralRules = NULL;
-    fLocale = NULL;
+    fPluralRules = nullptr;
+    fLocale = nullptr;
 }
 
 UBool
@@ -148,7 +166,14 @@ CurrencyPluralInfo::operator==(const CurrencyPluralInfo& info) const {
 
 CurrencyPluralInfo*
 CurrencyPluralInfo::clone() const {
-    return new CurrencyPluralInfo(*this);
+    CurrencyPluralInfo* newObj = new CurrencyPluralInfo(*this);
+    // Since clone doesn't have a 'status' parameter, the best we can do is return nullptr
+    // if the new object was not full constructed properly (an error occurred).
+    if (newObj != nullptr && U_FAILURE(newObj->fInternalStatus)) {
+        delete newObj;
+        newObj = nullptr;
+    }
+    return newObj;
 }
 
 const PluralRules* 
@@ -161,15 +186,15 @@ CurrencyPluralInfo::getCurrencyPluralPattern(const UnicodeString&  pluralCount,
                                              UnicodeString& result) const {
     const UnicodeString* currencyPluralPattern = 
         (UnicodeString*)fPluralCountToCurrencyUnitPattern->get(pluralCount);
-    if (currencyPluralPattern == NULL) {
+    if (currencyPluralPattern == nullptr) {
         // fall back to "other"
         if (pluralCount.compare(gPluralCountOther, 5)) {
             currencyPluralPattern = 
                 (UnicodeString*)fPluralCountToCurrencyUnitPattern->get(UnicodeString(TRUE, gPluralCountOther, 5));
         }
-        if (currencyPluralPattern == NULL) {
+        if (currencyPluralPattern == nullptr) {
             // no currencyUnitPatterns defined, 
-            // fallback to predefined defult.
+            // fallback to predefined default.
             // This should never happen when ICU resource files are
             // available, since currencyUnitPattern of "other" is always
             // defined in root.
@@ -190,14 +215,11 @@ void
 CurrencyPluralInfo::setPluralRules(const UnicodeString& ruleDescription,
                                    UErrorCode& status) {
     if (U_SUCCESS(status)) {
-        if (fPluralRules) {
-            delete fPluralRules;
-        }
+        delete fPluralRules;
         fPluralRules = PluralRules::createRules(ruleDescription, status);
     }
 }
 
-
 void
 CurrencyPluralInfo::setCurrencyPluralPattern(const UnicodeString& pluralCount,
                                              const UnicodeString& pattern,
@@ -206,31 +228,44 @@ CurrencyPluralInfo::setCurrencyPluralPattern(const UnicodeString& pluralCount,
         UnicodeString* oldValue = static_cast<UnicodeString*>(
             fPluralCountToCurrencyUnitPattern->get(pluralCount));
         delete oldValue;
-        fPluralCountToCurrencyUnitPattern->put(pluralCount, new UnicodeString(pattern), status);
+        LocalPointer<UnicodeString> p(new UnicodeString(pattern), status);
+        if (U_SUCCESS(status)) {
+            // the p object allocated above will be owned by fPluralCountToCurrencyUnitPattern
+            // after the call to put(), even if the method returns failure.
+            fPluralCountToCurrencyUnitPattern->put(pluralCount, p.orphan(), status);
+        }
     }
 }
 
-
 void
 CurrencyPluralInfo::setLocale(const Locale& loc, UErrorCode& status) {
     initialize(loc, status);
 }
 
-
 void 
 CurrencyPluralInfo::initialize(const Locale& loc, UErrorCode& status) {
     if (U_FAILURE(status)) {
         return;
     }
     delete fLocale;
+    fLocale = nullptr;    
+    delete fPluralRules;
+    fPluralRules = nullptr;
+
     fLocale = loc.clone();
-    if (fPluralRules) {
-        delete fPluralRules;
+    if (fLocale == nullptr) {
+        status = U_MEMORY_ALLOCATION_ERROR;
+        return;
+    }
+    // If the locale passed in wasn't bogus, but our clone'd locale is bogus, then OOM happened
+    // during the call to loc.clone().
+    if (!loc.isBogus() && fLocale->isBogus()) {
+        status = U_MEMORY_ALLOCATION_ERROR;
+        return;
     }
     fPluralRules = PluralRules::forLocale(loc, status);
     setupCurrencyPluralPattern(loc, status);
 }
-
    
 void
 CurrencyPluralInfo::setupCurrencyPluralPattern(const Locale& loc, UErrorCode& status) {
@@ -238,31 +273,32 @@ CurrencyPluralInfo::setupCurrencyPluralPattern(const Locale& loc, UErrorCode& st
         return;
     }
 
-    if (fPluralCountToCurrencyUnitPattern) {
-        deleteHash(fPluralCountToCurrencyUnitPattern);
-    }
+    deleteHash(fPluralCountToCurrencyUnitPattern);
     fPluralCountToCurrencyUnitPattern = initHash(status);
     if (U_FAILURE(status)) {
         return;
     }
 
-    NumberingSystem *ns = NumberingSystem::createInstance(loc,status);
+    LocalPointer<NumberingSystem> ns(NumberingSystem::createInstance(loc, status), status);
+    if (U_FAILURE(status)) {
+        return;
+    }
     UErrorCode ec = U_ZERO_ERROR;
-    UResourceBundle *rb = ures_open(NULL, loc.getName(), &ec);
-    UResourceBundle *numElements = ures_getByKeyWithFallback(rb, gNumberElementsTag, NULL, &ec);
-    rb = ures_getByKeyWithFallback(numElements, ns->getName(), rb, &ec);
-    rb = ures_getByKeyWithFallback(rb, gPatternsTag, rb, &ec);
+    LocalUResourceBundlePointer rb(ures_open(nullptr, loc.getName(), &ec));
+    LocalUResourceBundlePointer numElements(ures_getByKeyWithFallback(rb.getAlias(), gNumberElementsTag, nullptr, &ec));
+    ures_getByKeyWithFallback(numElements.getAlias(), ns->getName(), rb.getAlias(), &ec);
+    ures_getByKeyWithFallback(rb.getAlias(), gPatternsTag, rb.getAlias(), &ec);
     int32_t ptnLen;
-    const UChar* numberStylePattern = ures_getStringByKeyWithFallback(rb, gDecimalFormatTag, &ptnLen, &ec);
+    const UChar* numberStylePattern = ures_getStringByKeyWithFallback(rb.getAlias(), gDecimalFormatTag, &ptnLen, &ec);
     // Fall back to "latn" if num sys specific pattern isn't there.
-    if ( ec == U_MISSING_RESOURCE_ERROR && uprv_strcmp(ns->getName(),gLatnTag)) {
+    if ( ec == U_MISSING_RESOURCE_ERROR && (uprv_strcmp(ns->getName(), gLatnTag) != 0)) {
         ec = U_ZERO_ERROR;
-        rb = ures_getByKeyWithFallback(numElements, gLatnTag, rb, &ec);
-        rb = ures_getByKeyWithFallback(rb, gPatternsTag, rb, &ec);
-        numberStylePattern = ures_getStringByKeyWithFallback(rb, gDecimalFormatTag, &ptnLen, &ec);
+        ures_getByKeyWithFallback(numElements.getAlias(), gLatnTag, rb.getAlias(), &ec);
+        ures_getByKeyWithFallback(rb.getAlias(), gPatternsTag, rb.getAlias(), &ec);
+        numberStylePattern = ures_getStringByKeyWithFallback(rb.getAlias(), gDecimalFormatTag, &ptnLen, &ec);
     }
     int32_t numberStylePatternLen = ptnLen;
-    const UChar* negNumberStylePattern = NULL;
+    const UChar* negNumberStylePattern = nullptr;
     int32_t negNumberStylePatternLen = 0;
     // TODO: Java
     // parse to check whether there is ";" separator in the numberStylePattern
@@ -279,127 +315,127 @@ CurrencyPluralInfo::setupCurrencyPluralPattern(const Locale& loc, UErrorCode& st
         }
     }
 
-    ures_close(numElements);
-    ures_close(rb);
-    delete ns;
-
     if (U_FAILURE(ec)) {
+        // If OOM occurred during the above code, then we want to report that back to the caller.
+        if (ec == U_MEMORY_ALLOCATION_ERROR) {
+            status = ec;
+        }
         return;
     }
 
-    UResourceBundle *currRb = ures_open(U_ICUDATA_CURR, loc.getName(), &ec);
-    UResourceBundle *currencyRes = ures_getByKeyWithFallback(currRb, gCurrUnitPtnTag, NULL, &ec);
+    LocalUResourceBundlePointer currRb(ures_open(U_ICUDATA_CURR, loc.getName(), &ec));
+    LocalUResourceBundlePointer currencyRes(ures_getByKeyWithFallback(currRb.getAlias(), gCurrUnitPtnTag, nullptr, &ec));
     
 #ifdef CURRENCY_PLURAL_INFO_DEBUG
     std::cout << "in set up\n";
 #endif
-    StringEnumeration* keywords = fPluralRules->getKeywords(ec);
+    LocalPointer<StringEnumeration> keywords(fPluralRules->getKeywords(ec), ec);
     if (U_SUCCESS(ec)) {
         const char* pluralCount;
-        while ((pluralCount = keywords->next(NULL, ec)) != NULL) {
-            if ( U_SUCCESS(ec) ) {
-                int32_t ptnLen;
-                UErrorCode err = U_ZERO_ERROR;
-                const UChar* patternChars = ures_getStringByKeyWithFallback(
-                    currencyRes, pluralCount, &ptnLen, &err);
-                if (U_SUCCESS(err) && ptnLen > 0) {
-                    UnicodeString* pattern = new UnicodeString(patternChars, ptnLen);
+        while (((pluralCount = keywords->next(nullptr, ec)) != nullptr) && U_SUCCESS(ec)) {
+            int32_t ptnLength;
+            UErrorCode err = U_ZERO_ERROR;
+            const UChar* patternChars = ures_getStringByKeyWithFallback(currencyRes.getAlias(), pluralCount, &ptnLength, &err);
+            if (err == U_MEMORY_ALLOCATION_ERROR || patternChars == nullptr) {
+                ec = err;
+                break;
+            }
+            if (U_SUCCESS(err) && ptnLength > 0) {
+                UnicodeString* pattern = new UnicodeString(patternChars, ptnLength);
+                if (pattern == nullptr) {
+                    ec = U_MEMORY_ALLOCATION_ERROR;
+                    break;
+                }
 #ifdef CURRENCY_PLURAL_INFO_DEBUG
-                    char result_1[1000];
-                    pattern->extract(0, pattern->length(), result_1, "UTF-8");
-                    std::cout << "pluralCount: " << pluralCount << "; pattern: " << result_1 << "\n";
+                char result_1[1000];
+                pattern->extract(0, pattern->length(), result_1, "UTF-8");
+                std::cout << "pluralCount: " << pluralCount << "; pattern: " << result_1 << "\n";
 #endif
-                    pattern->findAndReplace(UnicodeString(TRUE, gPart0, 3), 
-                      UnicodeString(numberStylePattern, numberStylePatternLen));
-                    pattern->findAndReplace(UnicodeString(TRUE, gPart1, 3), UnicodeString(TRUE, gTripleCurrencySign, 3));
-
-                    if (hasSeparator) {
-                        UnicodeString negPattern(patternChars, ptnLen);
-                        negPattern.findAndReplace(UnicodeString(TRUE, gPart0, 3), 
-                          UnicodeString(negNumberStylePattern, negNumberStylePatternLen));
-                        negPattern.findAndReplace(UnicodeString(TRUE, gPart1, 3), UnicodeString(TRUE, gTripleCurrencySign, 3));
-                        pattern->append(gNumberPatternSeparator);
-                        pattern->append(negPattern);
-                    }
+                pattern->findAndReplace(UnicodeString(TRUE, gPart0, 3), 
+                    UnicodeString(numberStylePattern, numberStylePatternLen));
+                pattern->findAndReplace(UnicodeString(TRUE, gPart1, 3), UnicodeString(TRUE, gTripleCurrencySign, 3));
+
+                if (hasSeparator) {
+                    UnicodeString negPattern(patternChars, ptnLength);
+                    negPattern.findAndReplace(UnicodeString(TRUE, gPart0, 3), 
+                        UnicodeString(negNumberStylePattern, negNumberStylePatternLen));
+                    negPattern.findAndReplace(UnicodeString(TRUE, gPart1, 3), UnicodeString(TRUE, gTripleCurrencySign, 3));
+                    pattern->append(gNumberPatternSeparator);
+                    pattern->append(negPattern);
+                }
 #ifdef CURRENCY_PLURAL_INFO_DEBUG
-                    pattern->extract(0, pattern->length(), result_1, "UTF-8");
-                    std::cout << "pluralCount: " << pluralCount << "; pattern: " << result_1 << "\n";
+                pattern->extract(0, pattern->length(), result_1, "UTF-8");
+                std::cout << "pluralCount: " << pluralCount << "; pattern: " << result_1 << "\n";
 #endif
-
-                    fPluralCountToCurrencyUnitPattern->put(UnicodeString(pluralCount, -1, US_INV), pattern, status);
-                }
+                // the 'pattern' object allocated above will be owned by the fPluralCountToCurrencyUnitPattern after the call to
+                // put(), even if the method returns failure.
+                fPluralCountToCurrencyUnitPattern->put(UnicodeString(pluralCount, -1, US_INV), pattern, status);
             }
         }
     }
-    delete keywords;
-    ures_close(currencyRes);
-    ures_close(currRb);
+    // If OOM occurred during the above code, then we want to report that back to the caller.
+    if (ec == U_MEMORY_ALLOCATION_ERROR) {
+        status = ec;
+    }
 }
 
-
-
 void
-CurrencyPluralInfo::deleteHash(Hashtable* hTable) 
-{
-    if ( hTable == NULL ) {
+CurrencyPluralInfo::deleteHash(Hashtable* hTable) {
+    if ( hTable == nullptr ) {
         return;
     }
     int32_t pos = UHASH_FIRST;
-    const UHashElement* element = NULL;
-    while ( (element = hTable->nextElement(pos)) != NULL ) {
+    const UHashElement* element = nullptr;
+    while ( (element = hTable->nextElement(pos)) != nullptr ) {
         const UHashTok valueTok = element->value;
         const UnicodeString* value = (UnicodeString*)valueTok.pointer;
         delete value;
     }
     delete hTable;
-    hTable = NULL;
+    hTable = nullptr;
 }
 
-
 Hashtable*
 CurrencyPluralInfo::initHash(UErrorCode& status) {
-    if ( U_FAILURE(status) ) {
-        return NULL;
-    }
-    Hashtable* hTable;
-    if ( (hTable = new Hashtable(TRUE, status)) == NULL ) {
-        status = U_MEMORY_ALLOCATION_ERROR;
-        return NULL;
+    if (U_FAILURE(status)) {
+        return nullptr;
     }
-    if ( U_FAILURE(status) ) {
-        delete hTable; 
-        return NULL;
+    LocalPointer<Hashtable> hTable(new Hashtable(TRUE, status), status);
+    if (U_FAILURE(status)) {
+        return nullptr;
     }
     hTable->setValueComparator(ValueComparator);
-    return hTable;
+    return hTable.orphan();
 }
 
-
 void
 CurrencyPluralInfo::copyHash(const Hashtable* source,
                            Hashtable* target,
                            UErrorCode& status) {
-    if ( U_FAILURE(status) ) {
+    if (U_FAILURE(status)) {
         return;
     }
     int32_t pos = UHASH_FIRST;
-    const UHashElement* element = NULL;
-    if ( source ) {
-        while ( (element = source->nextElement(pos)) != NULL ) {
+    const UHashElement* element = nullptr;
+    if (source) {
+        while ( (element = source->nextElement(pos)) != nullptr ) {
             const UHashTok keyTok = element->key;
             const UnicodeString* key = (UnicodeString*)keyTok.pointer;
             const UHashTok valueTok = element->value;
             const UnicodeString* value = (UnicodeString*)valueTok.pointer;
-            UnicodeString* copy = new UnicodeString(*value);
-            target->put(UnicodeString(*key), copy, status);
-            if ( U_FAILURE(status) ) {
+            LocalPointer<UnicodeString> copy(new UnicodeString(*value), status);
+            if (U_FAILURE(status)) {
+                return;
+            }
+            // The HashTable owns the 'copy' object after the call to put().
+            target->put(UnicodeString(*key), copy.orphan(), status);
+            if (U_FAILURE(status)) {
                 return;
             }
         }
     }
 }
 
-
 U_NAMESPACE_END
 
 #endif
index 3de6856a2189f7263e3d98ff0daa0174a0e23c7c..7f3490d406b23d7930c709f1d2101270e10bcc91 100644 (file)
@@ -27,9 +27,14 @@ CurrencyUnit::CurrencyUnit(ConstChar16Ptr _isoCode, UErrorCode& ec) {
     // The constructor always leaves the CurrencyUnit in a valid state (with a 3-character currency code).
     // Note: in ICU4J Currency.getInstance(), we check string length for 3, but in ICU4C we allow a
     // non-NUL-terminated string to be passed as an argument, so it is not possible to check length.
+    // However, we allow a NUL-terminated empty string, which should have the same behavior as nullptr.
+    // Consider NUL-terminated strings of length 1 or 2 as invalid.
     const char16_t* isoCodeToUse;
-    if (U_FAILURE(ec) || _isoCode == nullptr) {
+    if (U_FAILURE(ec) || _isoCode == nullptr || _isoCode[0] == 0) {
         isoCodeToUse = kDefaultCurrency;
+    } else if (_isoCode[1] == 0 || _isoCode[2] == 0) {
+        isoCodeToUse = kDefaultCurrency;
+        ec = U_ILLEGAL_ARGUMENT_ERROR;
     } else if (!uprv_isInvariantUString(_isoCode, 3)) {
         // TODO: Perform a more strict ASCII check like in ICU4J isAlpha3Code?
         isoCodeToUse = kDefaultCurrency;
index e6785ab7a1f0537929f29b12d161b9c5fd2dcfe6..d8b1ecdbea1e68dd25cb87bb929364aaaa3156d6 100644 (file)
@@ -436,7 +436,7 @@ DecimalFormatSymbols::initialize(const Locale& loc, UErrorCode& status,
     sink.resolveMissingMonetarySeparators(fSymbols);
 
     // Resolve codePointZero
-    UChar32 tempCodePointZero;
+    UChar32 tempCodePointZero = -1;
     for (int32_t i=0; i<=9; i++) {
         const UnicodeString& stringDigit = getConstDigitSymbol(i);
         if (stringDigit.countChar32() != 1) {
index a2638bb74298e3f15d4081f47ff921795884945c..edd8910d9d4fd69079a5fc725bb5b64866f993b7 100644 (file)
@@ -1057,12 +1057,19 @@ UBool DecimalFormat::areSignificantDigitsUsed() const {
 
 void DecimalFormat::setSignificantDigitsUsed(UBool useSignificantDigits) {
     // These are the default values from the old implementation.
+    if (useSignificantDigits) {
+        if (fields->properties->minimumSignificantDigits != -1 ||
+            fields->properties->maximumSignificantDigits != -1) {
+            return;
+        }
+    } else {
+        if (fields->properties->minimumSignificantDigits == -1 &&
+            fields->properties->maximumSignificantDigits == -1) {
+            return;
+        }
+    }
     int32_t minSig = useSignificantDigits ? 1 : -1;
     int32_t maxSig = useSignificantDigits ? 6 : -1;
-    if (fields->properties->minimumSignificantDigits == minSig &&
-        fields->properties->maximumSignificantDigits == maxSig) {
-        return;
-    }
     fields->properties->minimumSignificantDigits = minSig;
     fields->properties->maximumSignificantDigits = maxSig;
     touchNoError();
@@ -1175,7 +1182,12 @@ void DecimalFormat::setPropertiesFromPattern(const UnicodeString& pattern, int32
 }
 
 const numparse::impl::NumberParserImpl* DecimalFormat::getParser(UErrorCode& status) const {
-    if (U_FAILURE(status)) { return nullptr; }
+    // TODO: Move this into umutex.h? (similar logic also in numrange_fluent.cpp)
+    // See ICU-20146
+
+    if (U_FAILURE(status)) {
+        return nullptr;
+    }
 
     // First try to get the pre-computed parser
     auto* ptr = fields->atomicParser.load();
@@ -1185,13 +1197,17 @@ const numparse::impl::NumberParserImpl* DecimalFormat::getParser(UErrorCode& sta
 
     // Try computing the parser on our own
     auto* temp = NumberParserImpl::createParserFromProperties(*fields->properties, *fields->symbols, false, status);
+    if (U_FAILURE(status)) {
+        return nullptr;
+    }
     if (temp == nullptr) {
         status = U_MEMORY_ALLOCATION_ERROR;
-        // although we may still dereference, call sites should be guarded
+        return nullptr;
     }
 
-    // Note: ptr starts as nullptr; during compare_exchange, it is set to what is actually stored in the
-    // atomic if another thread beat us to computing the parser object.
+    // Note: ptr starts as nullptr; during compare_exchange,
+    // it is set to what is actually stored in the atomic
+    // if another thread beat us to computing the parser object.
     auto* nonConstThis = const_cast<DecimalFormat*>(this);
     if (!nonConstThis->fields->atomicParser.compare_exchange_strong(ptr, temp)) {
         // Another thread beat us to computing the parser
index 455a8e1ee41fef101e698cb5104cc651cb4ed0a8..ab61cf4236288208c7d881f1ffaddc0c336d2058 100644 (file)
@@ -1311,7 +1311,7 @@ DateFormatSymbols::initZoneStringsArray(void) {
         UDate now = Calendar::getNow();
         UnicodeString tzDispName;
 
-        while ((tzid = tzids->snext(status))) {
+        while ((tzid = tzids->snext(status)) != 0) {
             if (U_FAILURE(status)) {
                 break;
             }
@@ -2224,8 +2224,8 @@ DateFormatSymbols::initializeData(const Locale& locale, const char *type, UError
                             ++typeMapPtr;
                         }
                         if (typeMapPtr->usageTypeName != NULL && compResult == 0) {
-                            fCapitalization[typeMapPtr->usageTypeEnumValue][0] = intVector[0];
-                            fCapitalization[typeMapPtr->usageTypeEnumValue][1] = intVector[1];
+                            fCapitalization[typeMapPtr->usageTypeEnumValue][0] = static_cast<UBool>(intVector[0]);
+                            fCapitalization[typeMapPtr->usageTypeEnumValue][1] = static_cast<UBool>(intVector[1]);
                         }
                     }
                 }
index 743b534fc8f9cf1deaf4c76096c7f381703c9664..d952cbf509dc406b60f969b4710ebb38239990a1 100644 (file)
@@ -877,8 +877,7 @@ DateIntervalFormat::getDateTimeSkeleton(const UnicodeString& skeleton,
         if ( MCount < 3 ) {
             normalizedDateSkeleton.append(CAP_M);
         } else {
-            int32_t i;
-            for ( i = 0; i < MCount && i < MAX_M_COUNT; ++i ) {
+            for ( int32_t j = 0; j < MCount && j < MAX_M_COUNT; ++j) {
                  normalizedDateSkeleton.append(CAP_M);
             }
         }
@@ -887,8 +886,7 @@ DateIntervalFormat::getDateTimeSkeleton(const UnicodeString& skeleton,
         if ( ECount <= 3 ) {
             normalizedDateSkeleton.append(CAP_E);
         } else {
-            int32_t i;
-            for ( i = 0; i < ECount && i < MAX_E_COUNT; ++i ) {
+            for ( int32_t j = 0; j < ECount && j < MAX_E_COUNT; ++j ) {
                  normalizedDateSkeleton.append(CAP_E);
             }
         }
index c863a683a5c2f8d0475e6071df3cc0ea67cab6f3..a289fc79c8da0e628ec752cbfb1a339d6c9fd418 100644 (file)
@@ -594,7 +594,7 @@ DateIntervalInfo::getBestSkeleton(const UnicodeString& skeleton,
     const UHashElement* elem = NULL;
     while ( (elem = fIntervalPatterns->nextElement(pos)) != NULL ) {
         const UHashTok keyTok = elem->key;
-        UnicodeString* skeleton = (UnicodeString*)keyTok.pointer;
+        UnicodeString* newSkeleton = (UnicodeString*)keyTok.pointer;
 #ifdef DTITVINF_DEBUG
     skeleton->extract(0,  skeleton->length(), result, "UTF-8");
     sprintf(mesg, "available skeletons: skeleton: %s; \n", result);
@@ -606,7 +606,7 @@ DateIntervalInfo::getBestSkeleton(const UnicodeString& skeleton,
         for ( i = 0; i < fieldLength; ++i ) {
             skeletonFieldWidth[i] = 0;
         }
-        parseSkeleton(*skeleton, skeletonFieldWidth);
+        parseSkeleton(*newSkeleton, skeletonFieldWidth);
         // calculate distance
         int32_t distance = 0;
         int8_t fieldDifference = 1;
@@ -632,7 +632,7 @@ DateIntervalInfo::getBestSkeleton(const UnicodeString& skeleton,
             }
         }
         if ( distance < bestDistance ) {
-            bestSkeleton = skeleton;
+            bestSkeleton = newSkeleton;
             bestDistance = distance;
             bestMatchDistanceInfo = fieldDifference;
         }
index aefd70464eb2d8acee6fae588a7f162fa5bbd202..d7b60d34c45153b0c6d90b06b429a0f0b7accfca 100644 (file)
@@ -18,6 +18,7 @@
 #include "unicode/decimfmt.h"
 #include "unicode/dtfmtsym.h"
 #include "unicode/dtptngen.h"
+#include "unicode/localpointer.h"
 #include "unicode/simpleformatter.h"
 #include "unicode/smpdtfmt.h"
 #include "unicode/udat.h"
@@ -88,17 +89,17 @@ static void ures_a_open(UResourceBundleAIterator *aiter, UResourceBundle *bund,
     aiter->num = ures_getSize(aiter->bund);
     aiter->cursor = 0;
 #if !defined(U_SORT_ASCII_BUNDLE_ITERATOR)
-    aiter->entries = NULL;
+    aiter->entries = nullptr;
 #else
     aiter->entries = (UResAEntry*)uprv_malloc(sizeof(UResAEntry)*aiter->num);
     for(int i=0;i<aiter->num;i++) {
-        aiter->entries[i].item = ures_getByIndex(aiter->bund, i, NULL, status);
+        aiter->entries[i].item = ures_getByIndex(aiter->bund, i, nullptr, status);
         const char *akey = ures_getKey(aiter->entries[i].item);
         int32_t len = uprv_strlen(akey)+1;
         aiter->entries[i].key = (UChar*)uprv_malloc(len*sizeof(UChar));
         u_charsToUChars(akey, aiter->entries[i].key, len);
     }
-    uprv_sortArray(aiter->entries, aiter->num, sizeof(UResAEntry), ures_a_codepointSort, NULL, TRUE, status);
+    uprv_sortArray(aiter->entries, aiter->num, sizeof(UResAEntry), ures_a_codepointSort, nullptr, TRUE, status);
 #endif
 }
 
@@ -115,7 +116,7 @@ static const UChar *ures_a_getNextString(UResourceBundleAIterator *aiter, int32_
 #if !defined(U_SORT_ASCII_BUNDLE_ITERATOR)
     return ures_getNextString(aiter->bund, len, key, err);
 #else
-    if(U_FAILURE(*err)) return NULL;
+    if(U_FAILURE(*err)) return nullptr;
     UResourceBundle *item = aiter->entries[aiter->cursor].item;
     const UChar* ret = ures_getString(item, len, err);
     *key = ures_getKey(item);
@@ -302,49 +303,48 @@ DateTimePatternGenerator::createInstance(UErrorCode& status) {
 DateTimePatternGenerator* U_EXPORT2
 DateTimePatternGenerator::createInstance(const Locale& locale, UErrorCode& status) {
     if (U_FAILURE(status)) {
-        return NULL;
+        return nullptr;
     }
     LocalPointer<DateTimePatternGenerator> result(
             new DateTimePatternGenerator(locale, status), status);
-    return U_SUCCESS(status) ? result.orphan() : NULL;
+    return U_SUCCESS(status) ? result.orphan() : nullptr;
 }
 
 DateTimePatternGenerator*  U_EXPORT2
 DateTimePatternGenerator::createEmptyInstance(UErrorCode& status) {
-    DateTimePatternGenerator *result = new DateTimePatternGenerator(status);
-    if (result == NULL) {
-        status = U_MEMORY_ALLOCATION_ERROR;
-    }
     if (U_FAILURE(status)) {
-        delete result;
-        result = NULL;
+        return nullptr;
     }
-    return result;
+    LocalPointer<DateTimePatternGenerator> result(
+            new DateTimePatternGenerator(status), status);
+    return U_SUCCESS(status) ? result.orphan() : nullptr;
 }
 
 DateTimePatternGenerator::DateTimePatternGenerator(UErrorCode &status) :
-    skipMatcher(NULL),
-    fAvailableFormatKeyHash(NULL)
+    skipMatcher(nullptr),
+    fAvailableFormatKeyHash(nullptr),
+    internalErrorCode(U_ZERO_ERROR)
 {
     fp = new FormatParser();
     dtMatcher = new DateTimeMatcher();
     distanceInfo = new DistanceInfo();
     patternMap = new PatternMap();
-    if (fp == NULL || dtMatcher == NULL || distanceInfo == NULL || patternMap == NULL) {
-        status = U_MEMORY_ALLOCATION_ERROR;
+    if (fp == nullptr || dtMatcher == nullptr || distanceInfo == nullptr || patternMap == nullptr) {
+        internalErrorCode = status = U_MEMORY_ALLOCATION_ERROR;
     }
 }
 
 DateTimePatternGenerator::DateTimePatternGenerator(const Locale& locale, UErrorCode &status) :
-    skipMatcher(NULL),
-    fAvailableFormatKeyHash(NULL)
+    skipMatcher(nullptr),
+    fAvailableFormatKeyHash(nullptr),
+    internalErrorCode(U_ZERO_ERROR)
 {
     fp = new FormatParser();
     dtMatcher = new DateTimeMatcher();
     distanceInfo = new DistanceInfo();
     patternMap = new PatternMap();
-    if (fp == NULL || dtMatcher == NULL || distanceInfo == NULL || patternMap == NULL) {
-        status = U_MEMORY_ALLOCATION_ERROR;
+    if (fp == nullptr || dtMatcher == nullptr || distanceInfo == nullptr || patternMap == nullptr) {
+        internalErrorCode = status = U_MEMORY_ALLOCATION_ERROR;
     }
     else {
         initData(locale, status);
@@ -353,13 +353,17 @@ DateTimePatternGenerator::DateTimePatternGenerator(const Locale& locale, UErrorC
 
 DateTimePatternGenerator::DateTimePatternGenerator(const DateTimePatternGenerator& other) :
     UObject(),
-    skipMatcher(NULL),
-    fAvailableFormatKeyHash(NULL)
+    skipMatcher(nullptr),
+    fAvailableFormatKeyHash(nullptr),
+    internalErrorCode(U_ZERO_ERROR)
 {
     fp = new FormatParser();
     dtMatcher = new DateTimeMatcher();
     distanceInfo = new DistanceInfo();
     patternMap = new PatternMap();
+    if (fp == nullptr || dtMatcher == nullptr || distanceInfo == nullptr || patternMap == nullptr) {
+        internalErrorCode = U_MEMORY_ALLOCATION_ERROR;
+    }
     *this=other;
 }
 
@@ -369,6 +373,7 @@ DateTimePatternGenerator::operator=(const DateTimePatternGenerator& other) {
     if (&other == this) {
         return *this;
     }
+    internalErrorCode = other.internalErrorCode;
     pLocale = other.pLocale;
     fDefaultHourFormatChar = other.fDefaultHourFormatChar;
     *fp = *(other.fp);
@@ -380,11 +385,16 @@ DateTimePatternGenerator::operator=(const DateTimePatternGenerator& other) {
     dateTimeFormat.getTerminatedBuffer();
     decimal.getTerminatedBuffer();
     delete skipMatcher;
-    if ( other.skipMatcher == NULL ) {
-        skipMatcher = NULL;
+    if ( other.skipMatcher == nullptr ) {
+        skipMatcher = nullptr;
     }
     else {
         skipMatcher = new DateTimeMatcher(*other.skipMatcher);
+        if (skipMatcher == nullptr)
+        {
+            internalErrorCode = U_MEMORY_ALLOCATION_ERROR;
+            return *this;
+        }
     }
     for (int32_t i=0; i< UDATPG_FIELD_COUNT; ++i ) {
         appendItemFormats[i] = other.appendItemFormats[i];
@@ -394,9 +404,8 @@ DateTimePatternGenerator::operator=(const DateTimePatternGenerator& other) {
             fieldDisplayNames[i][j].getTerminatedBuffer(); // NUL-terminate for the C API.
         }
     }
-    UErrorCode status = U_ZERO_ERROR;
-    patternMap->copyFrom(*other.patternMap, status);
-    copyHashtable(other.fAvailableFormatKeyHash, status);
+    patternMap->copyFrom(*other.patternMap, internalErrorCode);
+    copyHashtable(other.fAvailableFormatKeyHash, internalErrorCode);
     return *this;
 }
 
@@ -431,21 +440,21 @@ DateTimePatternGenerator::operator!=(const DateTimePatternGenerator& other) cons
 }
 
 DateTimePatternGenerator::~DateTimePatternGenerator() {
-    if (fAvailableFormatKeyHash!=NULL) {
+    if (fAvailableFormatKeyHash!=nullptr) {
         delete fAvailableFormatKeyHash;
     }
 
-    if (fp != NULL) delete fp;
-    if (dtMatcher != NULL) delete dtMatcher;
-    if (distanceInfo != NULL) delete distanceInfo;
-    if (patternMap != NULL) delete patternMap;
-    if (skipMatcher != NULL) delete skipMatcher;
+    if (fp != nullptr) delete fp;
+    if (dtMatcher != nullptr) delete dtMatcher;
+    if (distanceInfo != nullptr) delete distanceInfo;
+    if (patternMap != nullptr) delete patternMap;
+    if (skipMatcher != nullptr) delete skipMatcher;
 }
 
 namespace {
 
 UInitOnce initOnce = U_INITONCE_INITIALIZER;
-UHashtable *localeToAllowedHourFormatsMap = NULL;
+UHashtable *localeToAllowedHourFormatsMap = nullptr;
 
 // Value deleter for hashmap.
 U_CFUNC void U_CALLCONV deleteAllowedHourFormats(void *ptr) {
@@ -474,8 +483,8 @@ void
 DateTimePatternGenerator::initData(const Locale& locale, UErrorCode &status) {
     //const char *baseLangName = locale.getBaseName(); // unused
 
-    skipMatcher = NULL;
-    fAvailableFormatKeyHash=NULL;
+    skipMatcher = nullptr;
+    fAvailableFormatKeyHash=nullptr;
     addCanonicalItems(status);
     addICUPatterns(locale, status);
     addCLDRData(locale, status);
@@ -483,6 +492,8 @@ DateTimePatternGenerator::initData(const Locale& locale, UErrorCode &status) {
     setDecimalSymbols(locale, status);
     umtx_initOnce(initOnce, loadAllowedHourFormatsData, status);
     getAllowedHourFormats(locale, status);
+    // If any of the above methods failed then the object is in an invalid state.
+    internalErrorCode = status;
 } // DateTimePatternGenerator::initData
 
 namespace {
@@ -505,7 +516,7 @@ struct AllowedHourFormatsSink : public ResourceSink {
                     LocalMemory<int32_t> list;
                     int32_t length;
                     if (value.getType() == URES_STRING) {
-                        if (list.allocateInsteadAndReset(2) == NULL) {
+                        if (list.allocateInsteadAndReset(2) == nullptr) {
                             errorCode = U_MEMORY_ALLOCATION_ERROR;
                             return;
                         }
@@ -515,7 +526,7 @@ struct AllowedHourFormatsSink : public ResourceSink {
                     else {
                         ResourceArray allowedFormats = value.getArray(errorCode);
                         length = allowedFormats.getSize();
-                        if (list.allocateInsteadAndReset(length + 1) == NULL) {
+                        if (list.allocateInsteadAndReset(length + 1) == nullptr) {
                             errorCode = U_MEMORY_ALLOCATION_ERROR;
                             return;
                         }
@@ -555,9 +566,14 @@ AllowedHourFormatsSink::~AllowedHourFormatsSink() {}
 U_CFUNC void U_CALLCONV DateTimePatternGenerator::loadAllowedHourFormatsData(UErrorCode &status) {
     if (U_FAILURE(status)) { return; }
     localeToAllowedHourFormatsMap = uhash_open(
-        uhash_hashChars, uhash_compareChars, NULL, &status);
+        uhash_hashChars, uhash_compareChars, nullptr, &status);
+    if (U_FAILURE(status)) { return; }
+
     uhash_setValueDeleter(localeToAllowedHourFormatsMap, deleteAllowedHourFormats);
-    LocalUResourceBundlePointer rb(ures_openDirect(NULL, "supplementalData", &status));
+    ucln_i18n_registerCleanup(UCLN_I18N_ALLOWED_HOUR_FORMATS, allowedHourFormatsCleanup);
+
+    LocalUResourceBundlePointer rb(ures_openDirect(nullptr, "supplementalData", &status));
+    if (U_FAILURE(status)) { return; }
 
     AllowedHourFormatsSink sink;
     // TODO: Currently in the enumeration each table allocates a new array.
@@ -566,9 +582,7 @@ U_CFUNC void U_CALLCONV DateTimePatternGenerator::loadAllowedHourFormatsData(UEr
     // into the hashmap, store 6 single-value sub-arrays right at the beginning of the
     // vector (at index enum*2) for easy data sharing, copy sub-arrays into runtime
     // object. Remember to clean up the vector, too.
-    ures_getAllItemsWithFallback(rb.getAlias(), "timeData", sink, status);
-
-    ucln_i18n_registerCleanup(UCLN_I18N_ALLOWED_HOUR_FORMATS, allowedHourFormatsCleanup);
+    ures_getAllItemsWithFallback(rb.getAlias(), "timeData", sink, status);    
 }
 
 void DateTimePatternGenerator::getAllowedHourFormats(const Locale &locale, UErrorCode &status) {
@@ -589,17 +603,17 @@ void DateTimePatternGenerator::getAllowedHourFormats(const Locale &locale, UErro
     const char *language = maxLocale.getLanguage();
 
     CharString langCountry;
-    langCountry.append(language, uprv_strlen(language), status);
+    langCountry.append(language, static_cast<int32_t>(uprv_strlen(language)), status);
     langCountry.append('_', status);
-    langCountry.append(country, uprv_strlen(country), status);
+    langCountry.append(country, static_cast<int32_t>(uprv_strlen(country)), status);
 
     int32_t *allowedFormats;
     allowedFormats = (int32_t *)uhash_get(localeToAllowedHourFormatsMap, langCountry.data());
-    if (allowedFormats == NULL) {
+    if (allowedFormats == nullptr) {
         allowedFormats = (int32_t *)uhash_get(localeToAllowedHourFormatsMap, const_cast<char *>(country));
     }
 
-    if (allowedFormats != NULL) {  // Lookup is successful
+    if (allowedFormats != nullptr) {  // Lookup is successful
         for (int32_t i = 0; i < UPRV_LENGTHOF(fAllowedHourFormats); ++i) {
             fAllowedHourFormats[i] = allowedFormats[i];
             if (allowedFormats[i] == ALLOWED_HOUR_FORMAT_UNKNOWN) {
@@ -615,10 +629,10 @@ void DateTimePatternGenerator::getAllowedHourFormats(const Locale &locale, UErro
 UnicodeString
 DateTimePatternGenerator::getSkeleton(const UnicodeString& pattern, UErrorCode&
 /*status*/) {
-    FormatParser fp;
+    FormatParser fp2;
     DateTimeMatcher matcher;
     PtnSkeleton localSkeleton;
-    matcher.set(pattern, &fp, localSkeleton);
+    matcher.set(pattern, &fp2, localSkeleton);
     return localSkeleton.getSkeleton();
 }
 
@@ -634,10 +648,10 @@ DateTimePatternGenerator::staticGetSkeleton(
 
 UnicodeString
 DateTimePatternGenerator::getBaseSkeleton(const UnicodeString& pattern, UErrorCode& /*status*/) {
-    FormatParser fp;
+    FormatParser fp2;
     DateTimeMatcher matcher;
     PtnSkeleton localSkeleton;
-    matcher.set(pattern, &fp, localSkeleton);
+    matcher.set(pattern, &fp2, localSkeleton);
     return localSkeleton.getBaseSkeleton();
 }
 
@@ -663,7 +677,7 @@ DateTimePatternGenerator::addICUPatterns(const Locale& locale, UErrorCode& statu
         DateFormat::EStyle style = (DateFormat::EStyle)i;
         df = DateFormat::createDateInstance(style, locale);
         SimpleDateFormat* sdf;
-        if (df != NULL && (sdf = dynamic_cast<SimpleDateFormat*>(df)) != NULL) {
+        if (df != nullptr && (sdf = dynamic_cast<SimpleDateFormat*>(df)) != nullptr) {
             sdf->toPattern(dfPattern);
             addPattern(dfPattern, FALSE, conflictingString, status);
         }
@@ -672,7 +686,7 @@ DateTimePatternGenerator::addICUPatterns(const Locale& locale, UErrorCode& statu
         if (U_FAILURE(status)) { return; }
 
         df = DateFormat::createTimeInstance(style, locale);
-        if (df != NULL && (sdf = dynamic_cast<SimpleDateFormat*>(df)) != NULL) {
+        if (df != nullptr && (sdf = dynamic_cast<SimpleDateFormat*>(df)) != nullptr) {
             sdf->toPattern(dfPattern);
             addPattern(dfPattern, FALSE, conflictingString, status);
 
@@ -747,13 +761,14 @@ DateTimePatternGenerator::getCalendarTypeToUse(const Locale& locale, CharString&
         ures_getFunctionalEquivalent(
             localeWithCalendarKey,
             ULOC_LOCALE_IDENTIFIER_CAPACITY,
-            NULL,
+            nullptr,
             "calendar",
             "calendar",
             locale.getName(),
-            NULL,
+            nullptr,
             FALSE,
             &err);
+        if (U_FAILURE(err)) { return; }
         localeWithCalendarKey[ULOC_LOCALE_IDENTIFIER_CAPACITY-1] = 0; // ensure null termination
         // now get the calendar key value from that locale
         char calendarType[ULOC_KEYWORDS_CAPACITY];
@@ -763,7 +778,8 @@ DateTimePatternGenerator::getCalendarTypeToUse(const Locale& locale, CharString&
             calendarType,
             ULOC_KEYWORDS_CAPACITY,
             &err);
-        if (U_SUCCESS(err) && calendarTypeLen < ULOC_KEYWORDS_CAPACITY) {
+        if (U_FAILURE(err)) { return; }
+        if (calendarTypeLen < ULOC_KEYWORDS_CAPACITY) {
             destination.clear().append(calendarType, -1, err);
             if (U_FAILURE(err)) { return; }
         }
@@ -774,7 +790,7 @@ DateTimePatternGenerator::getCalendarTypeToUse(const Locale& locale, CharString&
 void
 DateTimePatternGenerator::consumeShortTimePattern(const UnicodeString& shortTimePattern,
         UErrorCode& status) {
-
+    if (U_FAILURE(status)) { return; }
     // set fDefaultHourFormatChar to the hour format character from this pattern
     int32_t tfIdx, tfLen = shortTimePattern.length();
     UBool ignoreChars = FALSE;
@@ -782,7 +798,7 @@ DateTimePatternGenerator::consumeShortTimePattern(const UnicodeString& shortTime
         UChar tfChar = shortTimePattern.charAt(tfIdx);
         if ( tfChar == SINGLE_QUOTE ) {
             ignoreChars = !ignoreChars; // toggle (handle quoted literals & '' for single quote)
-        } else if ( !ignoreChars && u_strchr(hourFormatChars, tfChar) != NULL ) {
+        } else if ( !ignoreChars && u_strchr(hourFormatChars, tfChar) != nullptr ) {
             fDefaultHourFormatChar = tfChar;
             break;
         }
@@ -872,9 +888,9 @@ struct DateTimePatternGenerator::AppendItemNamesSink : public ResourceSink {
                 valueStr.getTerminatedBuffer();
             }
             for (int32_t j = 1; j < UDATPG_WIDTH_COUNT; j++) {
-                UnicodeString& valueStr = dtpg.getMutableFieldDisplayName((UDateTimePatternField)i, (UDateTimePGDisplayWidth)j);
-                if (valueStr.isEmpty()) {
-                    valueStr = dtpg.getFieldDisplayName((UDateTimePatternField)i, (UDateTimePGDisplayWidth)(j-1));
+                UnicodeString& valueStr2 = dtpg.getMutableFieldDisplayName((UDateTimePatternField)i, (UDateTimePGDisplayWidth)j);
+                if (valueStr2.isEmpty()) {
+                    valueStr2 = dtpg.getFieldDisplayName((UDateTimePatternField)i, (UDateTimePGDisplayWidth)(j-1));
                 }
             }
         }
@@ -921,7 +937,7 @@ DateTimePatternGenerator::addCLDRData(const Locale& locale, UErrorCode& errorCod
     UnicodeString rbPattern, value, field;
     CharString path;
 
-    LocalUResourceBundlePointer rb(ures_open(NULL, locale.getName(), &errorCode));
+    LocalUResourceBundlePointer rb(ures_open(nullptr, locale.getName(), &errorCode));
     if (U_FAILURE(errorCode)) { return; }
 
     CharString calendarTypeToUse; // to be filled in with the type to use, if all goes well
@@ -966,12 +982,13 @@ DateTimePatternGenerator::addCLDRData(const Locale& locale, UErrorCode& errorCod
 
 void
 DateTimePatternGenerator::initHashtable(UErrorCode& err) {
-    if (fAvailableFormatKeyHash!=NULL) {
+    if (U_FAILURE(err)) { return; }
+    if (fAvailableFormatKeyHash!=nullptr) {
         return;
     }
-    if ((fAvailableFormatKeyHash = new Hashtable(FALSE, err))==NULL) {
-        err=U_MEMORY_ALLOCATION_ERROR;
-        return;
+    LocalPointer<Hashtable> hash(new Hashtable(FALSE, err), err);
+    if (U_SUCCESS(err)) {
+        fAvailableFormatKeyHash = hash.orphan();
     }
 }
 
@@ -1028,7 +1045,14 @@ DateTimePatternGenerator::getBestPattern(const UnicodeString& patternForm, UErro
 
 UnicodeString
 DateTimePatternGenerator::getBestPattern(const UnicodeString& patternForm, UDateTimePatternMatchOptions options, UErrorCode& status) {
-    const UnicodeString *bestPattern=NULL;
+    if (U_FAILURE(status)) {
+        return UnicodeString();
+    }
+    if (U_FAILURE(internalErrorCode)) {
+        status = internalErrorCode;
+        return UnicodeString();
+    }
+    const UnicodeString *bestPattern = nullptr;
     UnicodeString dtFormat;
     UnicodeString resultPattern;
     int32_t flags = kDTPGNoFlags;
@@ -1044,16 +1068,23 @@ DateTimePatternGenerator::getBestPattern(const UnicodeString& patternForm, UDate
 
     resultPattern.remove();
     dtMatcher->set(patternFormMapped, fp);
-    const PtnSkeleton* specifiedSkeleton=NULL;
-    bestPattern=getBestRaw(*dtMatcher, -1, distanceInfo, &specifiedSkeleton);
+    const PtnSkeleton* specifiedSkeleton = nullptr;
+    bestPattern=getBestRaw(*dtMatcher, -1, distanceInfo, status, &specifiedSkeleton);
+    if (U_FAILURE(status)) {
+        return UnicodeString();
+    }
+
     if ( distanceInfo->missingFieldMask==0 && distanceInfo->extraFieldMask==0 ) {
         resultPattern = adjustFieldTypes(*bestPattern, specifiedSkeleton, flags, options);
 
         return resultPattern;
     }
     int32_t neededFields = dtMatcher->getFieldMask();
-    UnicodeString datePattern=getBestAppending(neededFields & dateMask, flags, options);
-    UnicodeString timePattern=getBestAppending(neededFields & timeMask, flags, options);
+    UnicodeString datePattern=getBestAppending(neededFields & dateMask, flags, status, options);
+    UnicodeString timePattern=getBestAppending(neededFields & timeMask, flags, status, options);
+    if (U_FAILURE(status)) {
+        return UnicodeString();
+    }
     if (datePattern.length()==0) {
         if (timePattern.length()==0) {
             resultPattern.remove();
@@ -1074,7 +1105,7 @@ DateTimePatternGenerator::getBestPattern(const UnicodeString& patternForm, UDate
 
 /*
  * Map a skeleton that may have metacharacters jJC to one without, by replacing
- * the metacharacters with locale-appropriate fields of of h/H/k/K and of a/b/B
+ * the metacharacters with locale-appropriate fields of h/H/k/K and of a/b/B
  * (depends on fDefaultHourFormatChar and fAllowedHourFormats being set, which in
  * turn depends on initData having been run). This method also updates the flags
  * as necessary. Returns the updated skeleton.
@@ -1159,9 +1190,16 @@ UnicodeString
 DateTimePatternGenerator::replaceFieldTypes(const UnicodeString& pattern,
                                             const UnicodeString& skeleton,
                                             UDateTimePatternMatchOptions options,
-                                            UErrorCode& /*status*/) {
+                                            UErrorCode& status) {
+    if (U_FAILURE(status)) {
+        return UnicodeString();
+    }
+    if (U_FAILURE(internalErrorCode)) {
+        status = internalErrorCode;
+        return UnicodeString();
+    }
     dtMatcher->set(skeleton, fp);
-    UnicodeString result = adjustFieldTypes(pattern, NULL, kDTPGNoFlags, options);
+    UnicodeString result = adjustFieldTypes(pattern, nullptr, kDTPGNoFlags, options);
     return result;
 }
 
@@ -1204,20 +1242,24 @@ DateTimePatternGenerator::getDateTimeFormat() const {
 
 void
 DateTimePatternGenerator::setDateTimeFromCalendar(const Locale& locale, UErrorCode& status) {
+    if (U_FAILURE(status)) { return; }
+
     const UChar *resStr;
     int32_t resStrLen = 0;
 
-    Calendar* fCalendar = Calendar::createInstance(locale, status);
+    LocalPointer<Calendar> fCalendar(Calendar::createInstance(locale, status), status);
     if (U_FAILURE(status)) { return; }
 
-    LocalUResourceBundlePointer calData(ures_open(NULL, locale.getBaseName(), &status));
+    LocalUResourceBundlePointer calData(ures_open(nullptr, locale.getBaseName(), &status));
+    if (U_FAILURE(status)) { return; }
     ures_getByKey(calData.getAlias(), DT_DateTimeCalendarTag, calData.getAlias(), &status);
+    if (U_FAILURE(status)) { return; }
 
     LocalUResourceBundlePointer dateTimePatterns;
-    if (fCalendar != NULL && fCalendar->getType() != NULL && *fCalendar->getType() != '\0'
+    if (fCalendar->getType() != nullptr && *fCalendar->getType() != '\0'
             && uprv_strcmp(fCalendar->getType(), DT_DateTimeGregorianTag) != 0) {
         dateTimePatterns.adoptInstead(ures_getByKeyWithFallback(calData.getAlias(), fCalendar->getType(),
-                                                                NULL, &status));
+                                                                nullptr, &status));
         ures_getByKeyWithFallback(dateTimePatterns.getAlias(), DT_DateTimePatternsTag,
                                   dateTimePatterns.getAlias(), &status);
     }
@@ -1238,8 +1280,6 @@ DateTimePatternGenerator::setDateTimeFromCalendar(const Locale& locale, UErrorCo
     }
     resStr = ures_getStringByIndex(dateTimePatterns.getAlias(), (int32_t)DateFormat::kDateTime, &resStrLen, &status);
     setDateTimeFormat(UnicodeString(TRUE, resStr, resStrLen));
-
-    delete fCalendar;
 }
 
 void
@@ -1259,7 +1299,12 @@ DateTimePatternGenerator::addPattern(
     UnicodeString &conflictingPattern,
     UErrorCode& status)
 {
-    return addPatternWithSkeleton(pattern, NULL, override, conflictingPattern, status);
+    if (U_FAILURE(internalErrorCode)) {
+        status = internalErrorCode;
+        return UDATPG_NO_CONFLICT;
+    }
+
+    return addPatternWithSkeleton(pattern, nullptr, override, conflictingPattern, status);
 }
 
 // For DateTimePatternGenerator::addPatternWithSkeleton -
@@ -1280,13 +1325,17 @@ DateTimePatternGenerator::addPatternWithSkeleton(
     UnicodeString& conflictingPattern,
     UErrorCode& status)
 {
+    if (U_FAILURE(internalErrorCode)) {
+        status = internalErrorCode;
+        return UDATPG_NO_CONFLICT;
+    }
 
     UnicodeString basePattern;
     PtnSkeleton   skeleton;
     UDateTimePatternConflict conflictingStatus = UDATPG_NO_CONFLICT;
 
     DateTimeMatcher matcher;
-    if ( skeletonToUse == NULL ) {
+    if ( skeletonToUse == nullptr ) {
         matcher.set(pattern, fp, skeleton);
         matcher.getBasePattern(basePattern);
     } else {
@@ -1302,7 +1351,7 @@ DateTimePatternGenerator::addPatternWithSkeleton(
     // availableFormats items from root, which should not override any previous entry with the same base.
     UBool entryHadSpecifiedSkeleton;
     const UnicodeString *duplicatePattern = patternMap->getPatternFromBasePattern(basePattern, entryHadSpecifiedSkeleton);
-    if (duplicatePattern != NULL && (!entryHadSpecifiedSkeleton || (skeletonToUse != NULL && !override))) {
+    if (duplicatePattern != nullptr && (!entryHadSpecifiedSkeleton || (skeletonToUse != nullptr && !override))) {
         conflictingStatus = UDATPG_BASE_CONFLICT;
         conflictingPattern = *duplicatePattern;
         if (!override) {
@@ -1313,16 +1362,16 @@ DateTimePatternGenerator::addPatternWithSkeleton(
     // items from CLDR data. In that case, we don't want an item from a parent locale to replace an item with
     // same skeleton from the specified locale, so skip the current item if skeletonWasSpecified is true for
     // the previously-specified conflicting item.
-    const PtnSkeleton* entrySpecifiedSkeleton = NULL;
+    const PtnSkeleton* entrySpecifiedSkeleton = nullptr;
     duplicatePattern = patternMap->getPatternFromSkeleton(skeleton, &entrySpecifiedSkeleton);
-    if (duplicatePattern != NULL ) {
+    if (duplicatePattern != nullptr ) {
         conflictingStatus = UDATPG_CONFLICT;
         conflictingPattern = *duplicatePattern;
-        if (!override || (skeletonToUse != NULL && entrySpecifiedSkeleton != NULL)) {
+        if (!override || (skeletonToUse != nullptr && entrySpecifiedSkeleton != nullptr)) {
             return conflictingStatus;
         }
     }
-    patternMap->add(basePattern, skeleton, pattern, skeletonToUse != NULL, status);
+    patternMap->add(basePattern, skeleton, pattern, skeletonToUse != nullptr, status);
     if(U_FAILURE(status)) {
         return conflictingStatus;
     }
@@ -1369,13 +1418,16 @@ const UnicodeString*
 DateTimePatternGenerator::getBestRaw(DateTimeMatcher& source,
                                      int32_t includeMask,
                                      DistanceInfo* missingFields,
+                                     UErrorCode &status,
                                      const PtnSkeleton** specifiedSkeletonPtr) {
     int32_t bestDistance = 0x7fffffff;
     DistanceInfo tempInfo;
-    const UnicodeString *bestPattern=NULL;
-    const PtnSkeleton* specifiedSkeleton=NULL;
+    const UnicodeString *bestPattern=nullptr;
+    const PtnSkeleton* specifiedSkeleton=nullptr;
+
+    PatternMapIterator it(status);
+    if (U_FAILURE(status)) { return nullptr; }
 
-    PatternMapIterator it;
     for (it.set(*patternMap); it.hasNext(); ) {
         DateTimeMatcher trial = it.next();
         if (trial.equals(skipMatcher)) {
@@ -1485,8 +1537,8 @@ DateTimePatternGenerator::adjustFieldTypes(const UnicodeString& pattern,
                         c = fDefaultHourFormatChar;
                     }
                     field.remove();
-                    for (int32_t i=adjFieldLen; i>0; --i) {
-                        field+=c;
+                    for (int32_t j=adjFieldLen; j>0; --j) {
+                        field += c;
                     }
             }
             newPattern+=field;
@@ -1496,14 +1548,21 @@ DateTimePatternGenerator::adjustFieldTypes(const UnicodeString& pattern,
 }
 
 UnicodeString
-DateTimePatternGenerator::getBestAppending(int32_t missingFields, int32_t flags, UDateTimePatternMatchOptions options) {
+DateTimePatternGenerator::getBestAppending(int32_t missingFields, int32_t flags, UErrorCode &status, UDateTimePatternMatchOptions options) {
+    if (U_FAILURE(status)) {
+        return UnicodeString();
+    }
     UnicodeString  resultPattern, tempPattern;
-    UErrorCode err=U_ZERO_ERROR;
+    const UnicodeString* tempPatternPtr;
     int32_t lastMissingFieldMask=0;
     if (missingFields!=0) {
         resultPattern=UnicodeString();
-        const PtnSkeleton* specifiedSkeleton=NULL;
-        tempPattern = *getBestRaw(*dtMatcher, missingFields, distanceInfo, &specifiedSkeleton);
+        const PtnSkeleton* specifiedSkeleton=nullptr;
+        tempPatternPtr = getBestRaw(*dtMatcher, missingFields, distanceInfo, status, &specifiedSkeleton);
+        if (U_FAILURE(status)) {
+            return UnicodeString();
+        }
+        tempPattern = *tempPatternPtr;
         resultPattern = adjustFieldTypes(tempPattern, specifiedSkeleton, flags, options);
         if ( distanceInfo->missingFieldMask==0 ) {
             return resultPattern;
@@ -1519,19 +1578,26 @@ DateTimePatternGenerator::getBestAppending(int32_t missingFields, int32_t flags,
                 continue;
             }
             int32_t startingMask = distanceInfo->missingFieldMask;
-            tempPattern = *getBestRaw(*dtMatcher, distanceInfo->missingFieldMask, distanceInfo, &specifiedSkeleton);
+            tempPatternPtr = getBestRaw(*dtMatcher, distanceInfo->missingFieldMask, distanceInfo, status, &specifiedSkeleton);
+            if (U_FAILURE(status)) {
+                return UnicodeString();
+            }
+            tempPattern = *tempPatternPtr;
             tempPattern = adjustFieldTypes(tempPattern, specifiedSkeleton, flags, options);
             int32_t foundMask=startingMask& ~distanceInfo->missingFieldMask;
             int32_t topField=getTopBitNumber(foundMask);
-            UnicodeString appendName;
-            getAppendName((UDateTimePatternField)topField, appendName);
-            const UnicodeString *values[3] = {
-                &resultPattern,
-                &tempPattern,
-                &appendName
-            };
-            SimpleFormatter(appendItemFormats[topField], 2, 3, err).
-                    formatAndReplace(values, 3, resultPattern, NULL, 0, err);
+
+            if (appendItemFormats[topField].length() != 0) {
+                UnicodeString appendName;
+                getAppendName((UDateTimePatternField)topField, appendName);
+                const UnicodeString *values[3] = {
+                    &resultPattern,
+                    &tempPattern,
+                    &appendName
+                };
+                SimpleFormatter(appendItemFormats[topField], 2, 3, status).
+                    formatAndReplace(values, 3, resultPattern, nullptr, 0, status);
+            }
             lastMissingFieldMask = distanceInfo->missingFieldMask;
         }
     }
@@ -1539,7 +1605,7 @@ DateTimePatternGenerator::getBestAppending(int32_t missingFields, int32_t flags,
 }
 
 int32_t
-DateTimePatternGenerator::getTopBitNumber(int32_t foundMask) {
+DateTimePatternGenerator::getTopBitNumber(int32_t foundMask) const {
     if ( foundMask==0 ) {
         return 0;
     }
@@ -1568,22 +1634,21 @@ DateTimePatternGenerator::isAvailableFormatSet(const UnicodeString &key) const {
 
 void
 DateTimePatternGenerator::copyHashtable(Hashtable *other, UErrorCode &status) {
-
-    if (other == NULL) {
+    if (other == nullptr || U_FAILURE(status)) {
         return;
     }
-    if (fAvailableFormatKeyHash != NULL) {
+    if (fAvailableFormatKeyHash != nullptr) {
         delete fAvailableFormatKeyHash;
-        fAvailableFormatKeyHash = NULL;
+        fAvailableFormatKeyHash = nullptr;
     }
     initHashtable(status);
     if(U_FAILURE(status)){
         return;
     }
     int32_t pos = UHASH_FIRST;
-    const UHashElement* elem = NULL;
+    const UHashElement* elem = nullptr;
     // walk through the hash table and create a deep clone
-    while((elem = other->nextElement(pos))!= NULL){
+    while((elem = other->nextElement(pos))!= nullptr){
         const UHashTok otherKeyTok = elem->key;
         UnicodeString* otherKey = (UnicodeString*)otherKeyTok.pointer;
         fAvailableFormatKeyHash->puti(*otherKey, 1, status);
@@ -1595,8 +1660,17 @@ DateTimePatternGenerator::copyHashtable(Hashtable *other, UErrorCode &status) {
 
 StringEnumeration*
 DateTimePatternGenerator::getSkeletons(UErrorCode& status) const {
-    StringEnumeration* skeletonEnumerator = new DTSkeletonEnumeration(*patternMap, DT_SKELETON, status);
-    return skeletonEnumerator;
+    if (U_FAILURE(status)) {
+        return nullptr;
+    }
+    if (U_FAILURE(internalErrorCode)) {
+        status = internalErrorCode;
+        return nullptr;
+    }
+    LocalPointer<StringEnumeration> skeletonEnumerator(
+        new DTSkeletonEnumeration(*patternMap, DT_SKELETON, status), status);
+
+    return U_SUCCESS(status) ? skeletonEnumerator.orphan() : nullptr;
 }
 
 const UnicodeString&
@@ -1607,47 +1681,70 @@ DateTimePatternGenerator::getPatternForSkeleton(const UnicodeString& skeleton) c
         return emptyString;
     }
     curElem = patternMap->getHeader(skeleton.charAt(0));
-    while ( curElem != NULL ) {
+    while ( curElem != nullptr ) {
         if ( curElem->skeleton->getSkeleton()==skeleton ) {
             return curElem->pattern;
         }
-        curElem=curElem->next;
+        curElem = curElem->next.getAlias();
     }
     return emptyString;
 }
 
 StringEnumeration*
 DateTimePatternGenerator::getBaseSkeletons(UErrorCode& status) const {
-    StringEnumeration* baseSkeletonEnumerator = new DTSkeletonEnumeration(*patternMap, DT_BASESKELETON, status);
-    return baseSkeletonEnumerator;
+    if (U_FAILURE(status)) {
+        return nullptr;
+    }
+    if (U_FAILURE(internalErrorCode)) {
+        status = internalErrorCode;
+        return nullptr;
+    }
+    LocalPointer<StringEnumeration> baseSkeletonEnumerator(
+        new DTSkeletonEnumeration(*patternMap, DT_BASESKELETON, status), status);
+
+    return U_SUCCESS(status) ? baseSkeletonEnumerator.orphan() : nullptr;
 }
 
 StringEnumeration*
 DateTimePatternGenerator::getRedundants(UErrorCode& status) {
-    StringEnumeration* output = new DTRedundantEnumeration();
+    if (U_FAILURE(status)) { return nullptr; }
+    if (U_FAILURE(internalErrorCode)) {
+        status = internalErrorCode;
+        return nullptr;
+    }
+    LocalPointer<StringEnumeration> output(new DTRedundantEnumeration(), status);
+    if (U_FAILURE(status)) { return nullptr; }
     const UnicodeString *pattern;
-    PatternMapIterator it;
+    PatternMapIterator it(status);
+    if (U_FAILURE(status)) { return nullptr; }
+
     for (it.set(*patternMap); it.hasNext(); ) {
         DateTimeMatcher current = it.next();
         pattern = patternMap->getPatternFromSkeleton(*(it.getSkeleton()));
         if ( isCanonicalItem(*pattern) ) {
             continue;
         }
-        if ( skipMatcher == NULL ) {
+        if ( skipMatcher == nullptr ) {
             skipMatcher = new DateTimeMatcher(current);
+            if (skipMatcher == nullptr) {
+                status = U_MEMORY_ALLOCATION_ERROR;
+                return nullptr;
+            }
         }
         else {
             *skipMatcher = current;
         }
         UnicodeString trial = getBestPattern(current.getPattern(), status);
+        if (U_FAILURE(status)) { return nullptr; }
         if (trial == *pattern) {
-            ((DTRedundantEnumeration *)output)->add(*pattern, status);
+            ((DTRedundantEnumeration *)output.getAlias())->add(*pattern, status);
+            if (U_FAILURE(status)) { return nullptr; }
         }
         if (current.equals(skipMatcher)) {
             continue;
         }
     }
-    return output;
+    return output.orphan();
 }
 
 UBool
@@ -1671,45 +1768,54 @@ DateTimePatternGenerator::clone() const {
 
 PatternMap::PatternMap() {
    for (int32_t i=0; i < MAX_PATTERN_ENTRIES; ++i ) {
-      boot[i]=NULL;
+       boot[i] = nullptr;
    }
    isDupAllowed = TRUE;
 }
 
 void
 PatternMap::copyFrom(const PatternMap& other, UErrorCode& status) {
+    if (U_FAILURE(status)) {
+        return;
+    }
     this->isDupAllowed = other.isDupAllowed;
-    for (int32_t bootIndex=0; bootIndex<MAX_PATTERN_ENTRIES; ++bootIndex ) {
-        PtnElem *curElem, *otherElem, *prevElem=NULL;
+    for (int32_t bootIndex = 0; bootIndex < MAX_PATTERN_ENTRIES; ++bootIndex) {
+        PtnElem *curElem, *otherElem, *prevElem=nullptr;
         otherElem = other.boot[bootIndex];
-        while (otherElem!=NULL) {
-            if ((curElem = new PtnElem(otherElem->basePattern, otherElem->pattern))==NULL) {
-                // out of memory
-                status = U_MEMORY_ALLOCATION_ERROR;
-                return;
+        while (otherElem != nullptr) {
+            LocalPointer<PtnElem> newElem(new PtnElem(otherElem->basePattern, otherElem->pattern), status);
+            if (U_FAILURE(status)) {
+                return; // out of memory
             }
-            if ( this->boot[bootIndex]== NULL ) {
-                this->boot[bootIndex] = curElem;
+            newElem->skeleton.adoptInsteadAndCheckErrorCode(new PtnSkeleton(*(otherElem->skeleton)), status);
+            if (U_FAILURE(status)) {
+                return; // out of memory
             }
-            if ((curElem->skeleton=new PtnSkeleton(*(otherElem->skeleton))) == NULL ) {
-                // out of memory
-                status = U_MEMORY_ALLOCATION_ERROR;
-                return;
-            }
-            curElem->skeletonWasSpecified = otherElem->skeletonWasSpecified;
-            if (prevElem!=NULL) {
-                prevElem->next=curElem;
+            newElem->skeletonWasSpecified = otherElem->skeletonWasSpecified;
+
+            // Release ownership from the LocalPointer of the PtnElem object.
+            // The PtnElem will now be owned by either the boot (for the first entry in the linked-list)
+            // or owned by the previous PtnElem object in the linked-list.
+            curElem = newElem.orphan();
+
+            if (this->boot[bootIndex] == nullptr) {
+                this->boot[bootIndex] = curElem;
+            } else {
+                if (prevElem != nullptr) {
+                    prevElem->next.adoptInstead(curElem);
+                } else {
+                    U_ASSERT(false);
+                }
             }
-            curElem->next=NULL;
             prevElem = curElem;
-            otherElem = otherElem->next;
+            otherElem = otherElem->next.getAlias();
         }
 
     }
 }
 
 PtnElem*
-PatternMap::getHeader(UChar baseChar) {
+PatternMap::getHeader(UChar baseChar) const {
     PtnElem* curElem;
 
     if ( (baseChar >= CAP_A) && (baseChar <= CAP_Z) ) {
@@ -1720,7 +1826,7 @@ PatternMap::getHeader(UChar baseChar) {
             curElem = boot[26+baseChar-LOW_A];
         }
         else {
-            return NULL;
+            return nullptr;
         }
     }
     return curElem;
@@ -1728,9 +1834,9 @@ PatternMap::getHeader(UChar baseChar) {
 
 PatternMap::~PatternMap() {
    for (int32_t i=0; i < MAX_PATTERN_ENTRIES; ++i ) {
-       if (boot[i]!=NULL ) {
+       if (boot[i] != nullptr ) {
            delete boot[i];
-           boot[i]=NULL;
+           boot[i] = nullptr;
        }
    }
 }  // PatternMap destructor
@@ -1759,39 +1865,45 @@ PatternMap::add(const UnicodeString& basePattern,
          }
     }
 
-    if (baseElem == NULL) {
-        if ((curElem = new PtnElem(basePattern, value)) == NULL ) {
-            // out of memory
-            status = U_MEMORY_ALLOCATION_ERROR;
-            return;
+    if (baseElem == nullptr) {
+        LocalPointer<PtnElem> newElem(new PtnElem(basePattern, value), status);
+        if (U_FAILURE(status)) {
+            return; // out of memory
         }
+        newElem->skeleton.adoptInsteadAndCheckErrorCode(new PtnSkeleton(skeleton), status);
+        if (U_FAILURE(status)) {
+            return; // out of memory
+        }
+        newElem->skeletonWasSpecified = skeletonWasSpecified;
         if (baseChar >= LOW_A) {
-            boot[26 + (baseChar-LOW_A)] = curElem;
+            boot[26 + (baseChar - LOW_A)] = newElem.orphan(); // the boot array now owns the PtnElem.
         }
         else {
-            boot[baseChar-CAP_A] = curElem;
+            boot[baseChar - CAP_A] = newElem.orphan(); // the boot array now owns the PtnElem.
         }
-        curElem->skeleton = new PtnSkeleton(skeleton);
-        curElem->skeletonWasSpecified = skeletonWasSpecified;
     }
-    if ( baseElem != NULL ) {
+    if ( baseElem != nullptr ) {
         curElem = getDuplicateElem(basePattern, skeleton, baseElem);
 
-        if (curElem == NULL) {
+        if (curElem == nullptr) {
             // add new element to the list.
             curElem = baseElem;
-            while( curElem -> next != NULL )
+            while( curElem -> next != nullptr )
             {
-                curElem = curElem->next;
+                curElem = curElem->next.getAlias();
             }
-            if ((curElem->next = new PtnElem(basePattern, value)) == NULL ) {
-                // out of memory
-                status = U_MEMORY_ALLOCATION_ERROR;
-                return;
+
+            LocalPointer<PtnElem> newElem(new PtnElem(basePattern, value), status);
+            if (U_FAILURE(status)) {
+                return; // out of memory
             }
-            curElem=curElem->next;
-            curElem->skeleton = new PtnSkeleton(skeleton);
-            curElem->skeletonWasSpecified = skeletonWasSpecified;
+            newElem->skeleton.adoptInsteadAndCheckErrorCode(new PtnSkeleton(skeleton), status);
+            if (U_FAILURE(status)) {
+                return; // out of memory
+            }
+            newElem->skeletonWasSpecified = skeletonWasSpecified;
+            curElem->next.adoptInstead(newElem.orphan());
+            curElem = curElem->next.getAlias();
         }
         else {
             // Pattern exists in the list already.
@@ -1809,11 +1921,11 @@ PatternMap::add(const UnicodeString& basePattern,
 
 // Find the pattern from the given basePattern string.
 const UnicodeString *
-PatternMap::getPatternFromBasePattern(UnicodeString& basePattern, UBool& skeletonWasSpecified) { // key to search for
+PatternMap::getPatternFromBasePattern(const UnicodeString& basePattern, UBool& skeletonWasSpecified) const { // key to search for
    PtnElem *curElem;
 
-   if ((curElem=getHeader(basePattern.charAt(0)))==NULL) {
-       return NULL;  // no match
+   if ((curElem=getHeader(basePattern.charAt(0)))==nullptr) {
+       return nullptr;  // no match
    }
 
    do  {
@@ -1821,10 +1933,10 @@ PatternMap::getPatternFromBasePattern(UnicodeString& basePattern, UBool& skeleto
           skeletonWasSpecified = curElem->skeletonWasSpecified;
           return &(curElem->pattern);
        }
-       curElem=curElem->next;
-   }while (curElem != NULL);
+       curElem = curElem->next.getAlias();
+   } while (curElem != nullptr);
 
-   return NULL;
+   return nullptr;
 }  // PatternMap::getFromBasePattern
 
 
@@ -1835,69 +1947,69 @@ PatternMap::getPatternFromBasePattern(UnicodeString& basePattern, UBool& skeleto
 // optimum distance value in getBestRaw. When this is called from public getRedundants (specifiedSkeletonPtr is NULL),
 // for now it will continue to compare based on baseOriginal so as not to change the behavior unnecessarily.
 const UnicodeString *
-PatternMap::getPatternFromSkeleton(PtnSkeleton& skeleton, const PtnSkeleton** specifiedSkeletonPtr) { // key to search for
+PatternMap::getPatternFromSkeleton(const PtnSkeleton& skeleton, const PtnSkeleton** specifiedSkeletonPtr) const { // key to search for
    PtnElem *curElem;
 
    if (specifiedSkeletonPtr) {
-       *specifiedSkeletonPtr = NULL;
+       *specifiedSkeletonPtr = nullptr;
    }
 
    // find boot entry
    UChar baseChar = skeleton.getFirstChar();
-   if ((curElem=getHeader(baseChar))==NULL) {
-       return NULL;  // no match
+   if ((curElem=getHeader(baseChar))==nullptr) {
+       return nullptr;  // no match
    }
 
    do  {
        UBool equal;
-       if (specifiedSkeletonPtr != NULL) { // called from DateTimePatternGenerator::getBestRaw or addPattern, use original
+       if (specifiedSkeletonPtr != nullptr) { // called from DateTimePatternGenerator::getBestRaw or addPattern, use original
            equal = curElem->skeleton->original == skeleton.original;
        } else { // called from DateTimePatternGenerator::getRedundants, use baseOriginal
            equal = curElem->skeleton->baseOriginal == skeleton.baseOriginal;
        }
        if (equal) {
            if (specifiedSkeletonPtr && curElem->skeletonWasSpecified) {
-               *specifiedSkeletonPtr = curElem->skeleton;
+               *specifiedSkeletonPtr = curElem->skeleton.getAlias();
            }
            return &(curElem->pattern);
        }
-       curElem=curElem->next;
-   }while (curElem != NULL);
+       curElem = curElem->next.getAlias();
+   } while (curElem != nullptr);
 
-   return NULL;
+   return nullptr;
 }
 
 UBool
-PatternMap::equals(const PatternMap& other) {
+PatternMap::equals(const PatternMap& other) const {
     if ( this==&other ) {
         return TRUE;
     }
-    for (int32_t bootIndex=0; bootIndex<MAX_PATTERN_ENTRIES; ++bootIndex ) {
-        if ( boot[bootIndex]==other.boot[bootIndex] ) {
+    for (int32_t bootIndex = 0; bootIndex < MAX_PATTERN_ENTRIES; ++bootIndex) {
+        if (boot[bootIndex] == other.boot[bootIndex]) {
             continue;
         }
-        if ( (boot[bootIndex]==NULL)||(other.boot[bootIndex]==NULL) ) {
+        if ((boot[bootIndex] == nullptr) || (other.boot[bootIndex] == nullptr)) {
             return FALSE;
         }
         PtnElem *otherElem = other.boot[bootIndex];
         PtnElem *myElem = boot[bootIndex];
-        while ((otherElem!=NULL) || (myElem!=NULL)) {
+        while ((otherElem != nullptr) || (myElem != nullptr)) {
             if ( myElem == otherElem ) {
                 break;
             }
-            if ((otherElem==NULL) || (myElem==NULL)) {
+            if ((otherElem == nullptr) || (myElem == nullptr)) {
                 return FALSE;
             }
             if ( (myElem->basePattern != otherElem->basePattern) ||
                  (myElem->pattern != otherElem->pattern) ) {
                 return FALSE;
             }
-            if ((myElem->skeleton!=otherElem->skeleton)&&
+            if ((myElem->skeleton.getAlias() != otherElem->skeleton.getAlias()) &&
                 !myElem->skeleton->equals(*(otherElem->skeleton))) {
                 return FALSE;
             }
-            myElem = myElem->next;
-            otherElem=otherElem->next;
+            myElem = myElem->next.getAlias();
+            otherElem = otherElem->next.getAlias();
         }
     }
     return TRUE;
@@ -1909,21 +2021,21 @@ PtnElem*
 PatternMap::getDuplicateElem(
             const UnicodeString &basePattern,
             const PtnSkeleton &skeleton,
-            PtnElem *baseElem)  {
+            PtnElem *baseElem) {
    PtnElem *curElem;
 
-   if ( baseElem == (PtnElem *)NULL )  {
-         return (PtnElem*)NULL;
+   if ( baseElem == nullptr ) {
+         return nullptr;
    }
    else {
          curElem = baseElem;
    }
    do {
      if ( basePattern.compare(curElem->basePattern)==0 ) {
-        UBool isEqual=TRUE;
-        for (int32_t i=0; i<UDATPG_FIELD_COUNT; ++i) {
+         UBool isEqual = TRUE;
+         for (int32_t i = 0; i < UDATPG_FIELD_COUNT; ++i) {
             if (curElem->skeleton->type[i] != skeleton.type[i] ) {
-                isEqual=FALSE;
+                isEqual = FALSE;
                 break;
             }
         }
@@ -1931,11 +2043,11 @@ PatternMap::getDuplicateElem(
             return curElem;
         }
      }
-     curElem = curElem->next;
-   } while( curElem != (PtnElem *)NULL );
+     curElem = curElem->next.getAlias();
+   } while( curElem != nullptr );
 
    // end of the list
-   return (PtnElem*)NULL;
+   return nullptr;
 
 }  // PatternMap::getDuplicateElem
 
@@ -1976,7 +2088,7 @@ DateTimeMatcher::set(const UnicodeString& pattern, FormatParser* fp, PtnSkeleton
             continue;
         }
         int32_t canonicalIndex = fp->getCanonicalIndex(value);
-        if (canonicalIndex < 0 ) {
+        if (canonicalIndex < 0) {
             continue;
         }
         const dtTypeElem *row = &dtTypes[canonicalIndex];
@@ -1986,8 +2098,9 @@ DateTimeMatcher::set(const UnicodeString& pattern, FormatParser* fp, PtnSkeleton
         int32_t repeatCount = row->minLen;
         skeletonResult.baseOriginal.populate(field, repeatChar, repeatCount);
         int16_t subField = row->type;
-        if ( row->type > 0) {
-            subField += value.length();
+        if (row->type > 0) {
+            U_ASSERT(value.length() < INT16_MAX);
+            subField += static_cast<int16_t>(value.length());
         }
         skeletonResult.type[field] = subField;
     }
@@ -2031,8 +2144,8 @@ DateTimeMatcher::getPattern() {
 }
 
 int32_t
-DateTimeMatcher::getDistance(const DateTimeMatcher& other, int32_t includeMask, DistanceInfo& distanceInfo) {
-    int32_t result=0;
+DateTimeMatcher::getDistance(const DateTimeMatcher& other, int32_t includeMask, DistanceInfo& distanceInfo) const {
+    int32_t result = 0;
     distanceInfo.clear();
     for (int32_t i=0; i<UDATPG_FIELD_COUNT; ++i ) {
         int32_t myType = (includeMask&(1<<i))==0 ? 0 : skeleton.type[i];
@@ -2071,13 +2184,13 @@ DateTimeMatcher::copyFrom() {
 
 UBool
 DateTimeMatcher::equals(const DateTimeMatcher* other) const {
-    if (other==NULL) { return FALSE; }
+    if (other==nullptr) { return FALSE; }
     return skeleton.original == other->skeleton.original;
 }
 
 int32_t
-DateTimeMatcher::getFieldMask() {
-    int32_t result=0;
+DateTimeMatcher::getFieldMask() const {
+    int32_t result = 0;
 
     for (int32_t i=0; i<UDATPG_FIELD_COUNT; ++i) {
         if (skeleton.type[i]!=0) {
@@ -2094,7 +2207,7 @@ DateTimeMatcher::getSkeletonPtr() {
 
 FormatParser::FormatParser () {
     status = START;
-    itemNumber=0;
+    itemNumber = 0;
 }
 
 
@@ -2106,7 +2219,7 @@ FormatParser::~FormatParser () {
 // Note: the startPos may
 FormatParser::TokenStatus
 FormatParser::setTokens(const UnicodeString& pattern, int32_t startPos, int32_t *len) {
-    int32_t  curLoc = startPos;
+    int32_t curLoc = startPos;
     if ( curLoc >= pattern.length()) {
         return DONE;
     }
@@ -2132,10 +2245,10 @@ FormatParser::setTokens(const UnicodeString& pattern, int32_t startPos, int32_t
 
 void
 FormatParser::set(const UnicodeString& pattern) {
-    int32_t startPos=0;
-    TokenStatus result=START;
-    int32_t len=0;
-    itemNumber =0;
+    int32_t startPos = 0;
+    TokenStatus result = START;
+    int32_t len = 0;
+    itemNumber = 0;
 
     do {
         result = setTokens( pattern, startPos, &len );
@@ -2186,14 +2299,14 @@ FormatParser::getCanonicalIndex(const UnicodeString& s, UBool strict) {
 
 UBool
 FormatParser::isQuoteLiteral(const UnicodeString& s) {
-    return (UBool)(s.charAt(0)==SINGLE_QUOTE);
+    return (UBool)(s.charAt(0) == SINGLE_QUOTE);
 }
 
-// This function aussumes the current itemIndex points to the quote literal.
+// This function assumes the current itemIndex points to the quote literal.
 // Please call isQuoteLiteral prior to this function.
 void
 FormatParser::getQuoteLiteral(UnicodeString& quote, int32_t *itemIndex) {
-    int32_t i=*itemIndex;
+    int32_t i = *itemIndex;
 
     quote.remove();
     if (items[i].charAt(0)==SINGLE_QUOTE) {
@@ -2222,7 +2335,7 @@ FormatParser::getQuoteLiteral(UnicodeString& quote, int32_t *itemIndex) {
 }
 
 UBool
-FormatParser::isPatternSeparator(UnicodeString& field) {
+FormatParser::isPatternSeparator(const UnicodeString& field) const {
     for (int32_t i=0; i<field.length(); ++i ) {
         UChar c= field.charAt(i);
         if ( (c==SINGLE_QUOTE) || (c==BACKSLASH) || (c==SPACE) || (c==COLON) ||
@@ -2239,21 +2352,19 @@ FormatParser::isPatternSeparator(UnicodeString& field) {
 DistanceInfo::~DistanceInfo() {}
 
 void
-DistanceInfo::setTo(DistanceInfo &other) {
+DistanceInfo::setTo(const DistanceInfo& other) {
     missingFieldMask = other.missingFieldMask;
     extraFieldMask= other.extraFieldMask;
 }
 
-PatternMapIterator::PatternMapIterator() {
-    bootIndex = 0;
-    nodePtr = NULL;
-    patternMap=NULL;
-    matcher= new DateTimeMatcher();
+PatternMapIterator::PatternMapIterator(UErrorCode& status) :
+    bootIndex(0), nodePtr(nullptr), matcher(nullptr), patternMap(nullptr)
+{
+    if (U_FAILURE(status)) { return; }
+    matcher.adoptInsteadAndCheckErrorCode(new DateTimeMatcher(), status);
 }
 
-
 PatternMapIterator::~PatternMapIterator() {
-    delete matcher;
 }
 
 void
@@ -2262,36 +2373,36 @@ PatternMapIterator::set(PatternMap& newPatternMap) {
 }
 
 PtnSkeleton*
-PatternMapIterator::getSkeleton() {
-    if ( nodePtr == NULL ) {
-        return NULL;
+PatternMapIterator::getSkeleton() const {
+    if ( nodePtr == nullptr ) {
+        return nullptr;
     }
     else {
-        return nodePtr->skeleton;
+        return nodePtr->skeleton.getAlias();
     }
 }
 
 UBool
-PatternMapIterator::hasNext() {
-    int32_t headIndex=bootIndex;
-    PtnElem *curPtr=nodePtr;
+PatternMapIterator::hasNext() const {
+    int32_t headIndex = bootIndex;
+    PtnElem *curPtr = nodePtr;
 
-    if (patternMap==NULL) {
+    if (patternMap==nullptr) {
         return FALSE;
     }
     while ( headIndex < MAX_PATTERN_ENTRIES ) {
-        if ( curPtr != NULL ) {
-            if ( curPtr->next != NULL ) {
+        if ( curPtr != nullptr ) {
+            if ( curPtr->next != nullptr ) {
                 return TRUE;
             }
             else {
                 headIndex++;
-                curPtr=NULL;
+                curPtr=nullptr;
                 continue;
             }
         }
         else {
-            if ( patternMap->boot[headIndex] != NULL ) {
+            if ( patternMap->boot[headIndex] != nullptr ) {
                 return TRUE;
             }
             else {
@@ -2299,7 +2410,6 @@ PatternMapIterator::hasNext() {
                 continue;
             }
         }
-
     }
     return FALSE;
 }
@@ -2307,19 +2417,19 @@ PatternMapIterator::hasNext() {
 DateTimeMatcher&
 PatternMapIterator::next() {
     while ( bootIndex < MAX_PATTERN_ENTRIES ) {
-        if ( nodePtr != NULL ) {
-            if ( nodePtr->next != NULL ) {
-                nodePtr = nodePtr->next;
+        if ( nodePtr != nullptr ) {
+            if ( nodePtr->next != nullptr ) {
+                nodePtr = nodePtr->next.getAlias();
                 break;
             }
             else {
                 bootIndex++;
-                nodePtr=NULL;
+                nodePtr=nullptr;
                 continue;
             }
         }
         else {
-            if ( patternMap->boot[bootIndex] != NULL ) {
+            if ( patternMap->boot[bootIndex] != nullptr ) {
                 nodePtr = patternMap->boot[bootIndex];
                 break;
             }
@@ -2329,7 +2439,7 @@ PatternMapIterator::next() {
             }
         }
     }
-    if (nodePtr!=NULL) {
+    if (nodePtr!=nullptr) {
         matcher->copyFrom(*nodePtr->skeleton);
     }
     else {
@@ -2468,36 +2578,28 @@ PtnSkeleton::~PtnSkeleton() {
 }
 
 PtnElem::PtnElem(const UnicodeString &basePat, const UnicodeString &pat) :
-basePattern(basePat),
-skeleton(NULL),
-pattern(pat),
-next(NULL)
+    basePattern(basePat), skeleton(nullptr), pattern(pat), next(nullptr)
 {
 }
 
 PtnElem::~PtnElem() {
-
-    if (next!=NULL) {
-        delete next;
-    }
-    delete skeleton;
 }
 
-DTSkeletonEnumeration::DTSkeletonEnumeration(PatternMap &patternMap, dtStrEnum type, UErrorCode& status) {
+DTSkeletonEnumeration::DTSkeletonEnumeration(PatternMap& patternMap, dtStrEnum type, UErrorCode& status) : fSkeletons(nullptr) {
     PtnElem  *curElem;
     PtnSkeleton *curSkeleton;
     UnicodeString s;
     int32_t bootIndex;
 
     pos=0;
-    fSkeletons = new UVector(status);
+    fSkeletons.adoptInsteadAndCheckErrorCode(new UVector(status), status);
     if (U_FAILURE(status)) {
-        delete fSkeletons;
         return;
     }
+
     for (bootIndex=0; bootIndex<MAX_PATTERN_ENTRIES; ++bootIndex ) {
         curElem = patternMap.boot[bootIndex];
-        while (curElem!=NULL) {
+        while (curElem!=nullptr) {
             switch(type) {
                 case DT_BASESKELETON:
                     s=curElem->basePattern;
@@ -2506,32 +2608,36 @@ DTSkeletonEnumeration::DTSkeletonEnumeration(PatternMap &patternMap, dtStrEnum t
                     s=curElem->pattern;
                     break;
                 case DT_SKELETON:
-                    curSkeleton=curElem->skeleton;
+                    curSkeleton=curElem->skeleton.getAlias();
                     s=curSkeleton->getSkeleton();
                     break;
             }
             if ( !isCanonicalItem(s) ) {
-                fSkeletons->addElement(new UnicodeString(s), status);
+                LocalPointer<UnicodeString> newElem(new UnicodeString(s), status);
+                if (U_FAILURE(status)) { 
+                    return;
+                }
+                fSkeletons->addElement(newElem.getAlias(), status);
                 if (U_FAILURE(status)) {
-                    delete fSkeletons;
-                    fSkeletons = NULL;
+                    fSkeletons.adoptInstead(nullptr);
                     return;
                 }
+                newElem.orphan(); // fSkeletons vector now owns the UnicodeString.
             }
-            curElem = curElem->next;
+            curElem = curElem->next.getAlias();
         }
     }
-    if ((bootIndex==MAX_PATTERN_ENTRIES) && (curElem!=NULL) ) {
+    if ((bootIndex==MAX_PATTERN_ENTRIES) && (curElem!=nullptr) ) {
         status = U_BUFFER_OVERFLOW_ERROR;
     }
 }
 
 const UnicodeString*
 DTSkeletonEnumeration::snext(UErrorCode& status) {
-    if (U_SUCCESS(status) && pos < fSkeletons->size()) {
+    if (U_SUCCESS(status) && fSkeletons.isValid() && pos < fSkeletons->size()) {
         return (const UnicodeString*)fSkeletons->elementAt(pos++);
     }
-    return NULL;
+    return nullptr;
 }
 
 void
@@ -2541,7 +2647,7 @@ DTSkeletonEnumeration::reset(UErrorCode& /*status*/) {
 
 int32_t
 DTSkeletonEnumeration::count(UErrorCode& /*status*/) const {
-   return (fSkeletons==NULL) ? 0 : fSkeletons->size();
+   return (fSkeletons.isNull()) ? 0 : fSkeletons->size();
 }
 
 UBool
@@ -2559,44 +2665,45 @@ DTSkeletonEnumeration::isCanonicalItem(const UnicodeString& item) {
 
 DTSkeletonEnumeration::~DTSkeletonEnumeration() {
     UnicodeString *s;
-    for (int32_t i=0; i<fSkeletons->size(); ++i) {
-        if ((s=(UnicodeString *)fSkeletons->elementAt(i))!=NULL) {
-            delete s;
+    if (fSkeletons.isValid()) {
+        for (int32_t i = 0; i < fSkeletons->size(); ++i) {
+            if ((s = (UnicodeString *)fSkeletons->elementAt(i)) != nullptr) {
+                delete s;
+            }
         }
     }
-    delete fSkeletons;
 }
 
-DTRedundantEnumeration::DTRedundantEnumeration() {
-    pos=0;
-    fPatterns = NULL;
+DTRedundantEnumeration::DTRedundantEnumeration() : pos(0), fPatterns(nullptr) {
 }
 
 void
 DTRedundantEnumeration::add(const UnicodeString& pattern, UErrorCode& status) {
-    if (U_FAILURE(status)) return;
-    if (fPatterns == NULL)  {
-        fPatterns = new UVector(status);
+    if (U_FAILURE(status)) { return; }
+    if (fPatterns.isNull())  {
+        fPatterns.adoptInsteadAndCheckErrorCode(new UVector(status), status);
         if (U_FAILURE(status)) {
-            delete fPatterns;
-            fPatterns = NULL;
             return;
        }
     }
-    fPatterns->addElement(new UnicodeString(pattern), status);
+    LocalPointer<UnicodeString> newElem(new UnicodeString(pattern), status);
+    if (U_FAILURE(status)) {
+        return;
+    }
+    fPatterns->addElement(newElem.getAlias(), status);
     if (U_FAILURE(status)) {
-        delete fPatterns;
-        fPatterns = NULL;
+        fPatterns.adoptInstead(nullptr);
         return;
     }
+    newElem.orphan(); // fPatterns now owns the string.
 }
 
 const UnicodeString*
 DTRedundantEnumeration::snext(UErrorCode& status) {
-    if (U_SUCCESS(status) && pos < fPatterns->size()) {
+    if (U_SUCCESS(status) && fPatterns.isValid() && pos < fPatterns->size()) {
         return (const UnicodeString*)fPatterns->elementAt(pos++);
     }
-    return NULL;
+    return nullptr;
 }
 
 void
@@ -2606,11 +2713,11 @@ DTRedundantEnumeration::reset(UErrorCode& /*status*/) {
 
 int32_t
 DTRedundantEnumeration::count(UErrorCode& /*status*/) const {
-       return (fPatterns==NULL) ? 0 : fPatterns->size();
+    return (fPatterns.isNull()) ? 0 : fPatterns->size();
 }
 
 UBool
-DTRedundantEnumeration::isCanonicalItem(const UnicodeString& item) {
+DTRedundantEnumeration::isCanonicalItem(const UnicodeString& item) const {
     if ( item.length() != 1 ) {
         return FALSE;
     }
@@ -2624,12 +2731,13 @@ DTRedundantEnumeration::isCanonicalItem(const UnicodeString& item) {
 
 DTRedundantEnumeration::~DTRedundantEnumeration() {
     UnicodeString *s;
-    for (int32_t i=0; i<fPatterns->size(); ++i) {
-        if ((s=(UnicodeString *)fPatterns->elementAt(i))!=NULL) {
-            delete s;
+    if (fPatterns.isValid()) {
+        for (int32_t i = 0; i < fPatterns->size(); ++i) {
+            if ((s = (UnicodeString *)fPatterns->elementAt(i)) != nullptr) {
+                delete s;
+            }
         }
-    }
-    delete fPatterns;
+    }    
 }
 
 U_NAMESPACE_END
index 2ea31a75c488fa55f744d9794c5ee6c626791fc8..95219f0ba257f51484158e98f699572ea88de2cc 100644 (file)
@@ -116,7 +116,7 @@ typedef struct dtTypeElem {
     int16_t                type;
     int16_t                minLen;
     int16_t                weight;
-}dtTypeElem;
+} dtTypeElem;
 
 // A compact storage mechanism for skeleton field strings.  Several dozen of these will be created
 // for a typical DateTimePatternGenerator instance.
@@ -172,30 +172,28 @@ public:
     virtual ~PtnSkeleton();
 };
 
-
 class PtnElem : public UMemory {
 public:
     UnicodeString basePattern;
-    PtnSkeleton   *skeleton;
+    LocalPointer<PtnSkeleton> skeleton;
     UnicodeString pattern;
     UBool         skeletonWasSpecified; // if specified in availableFormats, not derived
-    PtnElem       *next;
+    LocalPointer<PtnElem> next;
 
     PtnElem(const UnicodeString &basePattern, const UnicodeString &pattern);
     virtual ~PtnElem();
-
 };
 
 class FormatParser : public UMemory {
 public:
     UnicodeString items[MAX_DT_TOKEN];
-    int32_t  itemNumber;
+    int32_t itemNumber;
 
     FormatParser();
     virtual ~FormatParser();
     void set(const UnicodeString& patternString);
     void getQuoteLiteral(UnicodeString& quote, int32_t *itemIndex);
-    UBool isPatternSeparator(UnicodeString& field);
+    UBool isPatternSeparator(const UnicodeString& field) const;
     static UBool isQuoteLiteral(const UnicodeString& s);
     static int32_t getCanonicalIndex(const UnicodeString& s) { return getCanonicalIndex(s, TRUE); }
     static int32_t getCanonicalIndex(const UnicodeString& s, UBool strict);
@@ -206,7 +204,7 @@ private:
        ADD_TOKEN,
        SYNTAX_ERROR,
        DONE
-   } ToeknStatus;
+   } TokenStatus;
 
    TokenStatus status;
    virtual TokenStatus setTokens(const UnicodeString& pattern, int32_t startPos, int32_t *len);
@@ -220,7 +218,7 @@ public:
     DistanceInfo() {}
     virtual ~DistanceInfo();
     void clear() { missingFieldMask = extraFieldMask = 0; }
-    void setTo(DistanceInfo& other);
+    void setTo(const DistanceInfo& other);
     void addMissing(int32_t field) { missingFieldMask |= (1<<field); }
     void addExtra(int32_t field) { extraFieldMask |= (1<<field); }
 };
@@ -237,11 +235,11 @@ public:
     void copyFrom();
     PtnSkeleton* getSkeletonPtr();
     UBool equals(const DateTimeMatcher* other) const;
-    int32_t getDistance(const DateTimeMatcher& other, int32_t includeMask, DistanceInfo& distanceInfo);
+    int32_t getDistance(const DateTimeMatcher& other, int32_t includeMask, DistanceInfo& distanceInfo) const;
     DateTimeMatcher();
     DateTimeMatcher(const DateTimeMatcher& other);
     virtual ~DateTimeMatcher();
-    int32_t getFieldMask();
+    int32_t getFieldMask() const;
 };
 
 class PatternMap : public UMemory {
@@ -250,34 +248,34 @@ public:
     PatternMap();
     virtual  ~PatternMap();
     void  add(const UnicodeString& basePattern, const PtnSkeleton& skeleton, const UnicodeString& value, UBool skeletonWasSpecified, UErrorCode& status);
-    const UnicodeString* getPatternFromBasePattern(UnicodeString& basePattern, UBool& skeletonWasSpecified);
-    const UnicodeString* getPatternFromSkeleton(PtnSkeleton& skeleton, const PtnSkeleton** specifiedSkeletonPtr = 0);
+    const UnicodeString* getPatternFromBasePattern(const UnicodeString& basePattern, UBool& skeletonWasSpecified) const;
+    const UnicodeString* getPatternFromSkeleton(const PtnSkeleton& skeleton, const PtnSkeleton** specifiedSkeletonPtr = 0) const;
     void copyFrom(const PatternMap& other, UErrorCode& status);
-    PtnElem* getHeader(UChar baseChar);
-    UBool equals(const PatternMap& other);
+    PtnElem* getHeader(UChar baseChar) const;
+    UBool equals(const PatternMap& other) const;
 private:
     UBool isDupAllowed;
-    PtnElem*  getDuplicateElem(const UnicodeString &basePattern, const PtnSkeleton& skeleton, PtnElem *baseElem);
+    PtnElem*  getDuplicateElem(const UnicodeStringbasePattern, const PtnSkeleton& skeleton, PtnElem *baseElem);
 }; // end  PatternMap
 
 class PatternMapIterator : public UMemory {
 public:
-    PatternMapIterator();
+    PatternMapIterator(UErrorCode &status);
     virtual ~PatternMapIterator();
     void set(PatternMap& patternMap);
-    PtnSkeleton* getSkeleton();
-    UBool hasNext();
+    PtnSkeleton* getSkeleton() const;
+    UBool hasNext() const;
     DateTimeMatcher& next();
 private:
     int32_t bootIndex;
     PtnElem *nodePtr;
-    DateTimeMatcher *matcher;
+    LocalPointer<DateTimeMatcher> matcher;
     PatternMap *patternMap;
 };
 
 class DTSkeletonEnumeration : public StringEnumeration {
 public:
-    DTSkeletonEnumeration(PatternMap &patternMap, dtStrEnum type, UErrorCode& status);
+    DTSkeletonEnumeration(PatternMappatternMap, dtStrEnum type, UErrorCode& status);
     virtual ~DTSkeletonEnumeration();
     static UClassID U_EXPORT2 getStaticClassID(void);
     virtual UClassID getDynamicClassID(void) const;
@@ -287,7 +285,7 @@ public:
 private:
     int32_t pos;
     UBool isCanonicalItem(const UnicodeString& item);
-    UVector *fSkeletons;
+    LocalPointer<UVector> fSkeletons;
 };
 
 class DTRedundantEnumeration : public StringEnumeration {
@@ -302,8 +300,8 @@ public:
     void add(const UnicodeString &pattern, UErrorCode& status);
 private:
     int32_t pos;
-    UBool isCanonicalItem(const UnicodeString& item);
-    UVector *fPatterns;
+    UBool isCanonicalItem(const UnicodeString& item) const;
+    LocalPointer<UVector> fPatterns;
 };
 
 U_NAMESPACE_END
diff --git a/source/i18n/erarules.cpp b/source/i18n/erarules.cpp
new file mode 100644 (file)
index 0000000..f6cbc25
--- /dev/null
@@ -0,0 +1,309 @@
+// © 2018 and later: Unicode, Inc. and others.
+// License & terms of use: http://www.unicode.org/copyright.html
+
+#include "unicode/utypes.h"
+
+#if !UCONFIG_NO_FORMATTING
+
+#include <stdlib.h>
+#include "unicode/ucal.h"
+#include "unicode/ures.h"
+#include "unicode/ustring.h"
+#include "cmemory.h"
+#include "cstring.h"
+#include "erarules.h"
+#include "gregoimp.h"
+#include "uassert.h"
+
+U_NAMESPACE_BEGIN
+
+static const int32_t MAX_ENCODED_START_YEAR = 32767;
+static const int32_t MIN_ENCODED_START_YEAR = -32768;
+static const int32_t MIN_ENCODED_START = -2147483391;   // encodeDate(MIN_ENCODED_START_YEAR, 1, 1, ...);
+
+static const int32_t YEAR_MASK = 0xFFFF0000;
+static const int32_t MONTH_MASK = 0x0000FF00;
+static const int32_t DAY_MASK = 0x000000FF;
+
+static const int32_t MAX_INT32 = 0x7FFFFFFF;
+static const int32_t MIN_INT32 = 0xFFFFFFFF;
+
+static const UChar VAL_FALSE[] = {0x66, 0x61, 0x6c, 0x73, 0x65};    // "false"
+static const UChar VAL_FALSE_LEN = 5;
+
+static UBool isSet(int startDate) {
+    return startDate != 0;
+}
+
+static UBool isValidRuleStartDate(int32_t year, int32_t month, int32_t day) {
+    return year >= MIN_ENCODED_START_YEAR && year <= MAX_ENCODED_START_YEAR
+            && month >= 1 && month <= 12 && day >=1 && day <= 31;
+}
+
+/**
+ * Encode year/month/date to a single integer.
+ * year is high 16 bits (-32768 to 32767), month is
+ * next 8 bits and day of month is last 8 bits.
+ *
+ * @param year  year
+ * @param month month (1-base)
+ * @param day   day of month
+ * @return  an encoded date.
+ */
+static int32_t encodeDate(int32_t year, int32_t month, int32_t day) {
+    return year << 16 | month << 8 | day;
+}
+
+static void decodeDate(int32_t encodedDate, int32_t (&fields)[3]) {
+    if (encodedDate == MIN_ENCODED_START) {
+        fields[0] = MIN_INT32;
+        fields[1] = 1;
+        fields[2] = 1;
+    } else {
+        fields[0] = (encodedDate & YEAR_MASK) >> 16;
+        fields[1] = (encodedDate & MONTH_MASK) >> 8;
+        fields[2] = encodedDate & DAY_MASK;
+    }
+}
+
+/**
+ * Compare an encoded date with another date specified by year/month/day.
+ * @param encoded   An encoded date
+ * @param year      Year of another date
+ * @param month     Month of another date
+ * @param day       Day of another date
+ * @return -1 when encoded date is earlier, 0 when two dates are same,
+ *          and 1 when encoded date is later.
+ */
+static int32_t compareEncodedDateWithYMD(int encoded, int year, int month, int day) {
+    if (year < MIN_ENCODED_START_YEAR) {
+        if (encoded == MIN_ENCODED_START) {
+            if (year > MIN_INT32 || month > 1 || day > 1) {
+                return -1;
+            }
+            return 0;
+        } else {
+            return 1;
+        }
+    } else if (year > MAX_ENCODED_START_YEAR) {
+        return -1;
+    } else {
+        int tmp = encodeDate(year, month, day);
+        if (encoded < tmp) {
+            return -1;
+        } else if (encoded == tmp) {
+            return 0;
+        } else {
+            return 1;
+        }
+    }
+}
+
+EraRules::EraRules(LocalMemory<int32_t>& eraStartDates, int32_t numEras)
+    : numEras(numEras) {
+    startDates.moveFrom(eraStartDates);
+    initCurrentEra();
+}
+
+EraRules::~EraRules() {
+}
+
+EraRules* EraRules::createInstance(const char *calType, UBool includeTentativeEra, UErrorCode& status) {
+    if(U_FAILURE(status)) {
+        return nullptr;
+    }
+    LocalUResourceBundlePointer rb(ures_openDirect(nullptr, "supplementalData", &status));
+    ures_getByKey(rb.getAlias(), "calendarData", rb.getAlias(), &status);
+    ures_getByKey(rb.getAlias(), calType, rb.getAlias(), &status);
+    ures_getByKey(rb.getAlias(), "eras", rb.getAlias(), &status);
+
+    if (U_FAILURE(status)) {
+        return nullptr;
+    }
+
+    int32_t numEras = ures_getSize(rb.getAlias());
+    int32_t firstTentativeIdx = MAX_INT32;
+
+    LocalMemory<int32_t> startDates(static_cast<int32_t *>(uprv_malloc(numEras * sizeof(int32_t))));
+    if (startDates.isNull()) {
+        status = U_MEMORY_ALLOCATION_ERROR;
+        return nullptr;
+    }
+    uprv_memset(startDates.getAlias(), 0 , numEras * sizeof(int32_t));
+
+    while (ures_hasNext(rb.getAlias())) {
+        LocalUResourceBundlePointer eraRuleRes(ures_getNextResource(rb.getAlias(), nullptr, &status));
+        if (U_FAILURE(status)) {
+            return nullptr;
+        }
+        const char *eraIdxStr = ures_getKey(eraRuleRes.getAlias());
+        char *endp;
+        int32_t eraIdx = (int32_t)strtol(eraIdxStr, &endp, 10);
+        if ((size_t)(endp - eraIdxStr) != uprv_strlen(eraIdxStr)) {
+            status = U_INVALID_FORMAT_ERROR;
+            return nullptr;
+        }
+        if (eraIdx < 0 || eraIdx >= numEras) {
+            status = U_INVALID_FORMAT_ERROR;
+            return nullptr;
+        }
+        if (isSet(startDates[eraIdx])) {
+            // start date of the index was already set
+            status = U_INVALID_FORMAT_ERROR;
+            return nullptr;
+        }
+
+        UBool hasName = TRUE;
+        UBool hasEnd = TRUE;
+        int32_t len;
+        while (ures_hasNext(eraRuleRes.getAlias())) {
+            LocalUResourceBundlePointer res(ures_getNextResource(eraRuleRes.getAlias(), nullptr, &status));
+            if (U_FAILURE(status)) {
+                return nullptr;
+            }
+            const char *key = ures_getKey(res.getAlias());
+            if (uprv_strcmp(key, "start") == 0) {
+                const int32_t *fields = ures_getIntVector(res.getAlias(), &len, &status);
+                if (U_FAILURE(status)) {
+                    return nullptr;
+                }
+                if (len != 3 || !isValidRuleStartDate(fields[0], fields[1], fields[2])) {
+                    status = U_INVALID_FORMAT_ERROR;
+                    return nullptr;
+                }
+                startDates[eraIdx] = encodeDate(fields[0], fields[1], fields[2]);
+            } else if (uprv_strcmp(key, "named") == 0) {
+                const UChar *val = ures_getString(res.getAlias(), &len, &status);
+                if (u_strncmp(val, VAL_FALSE, VAL_FALSE_LEN) == 0) {
+                    hasName = FALSE;
+                }
+            } else if (uprv_strcmp(key, "end") == 0) {
+                hasEnd = TRUE;
+            }
+        }
+
+        if (isSet(startDates[eraIdx])) {
+            if (hasEnd) {
+                // This implementation assumes either start or end is available, not both.
+                // For now, just ignore the end rule.
+            }
+        } else {
+            if (hasEnd) {
+                if (eraIdx != 0) {
+                    // This implementation does not support end only rule for eras other than
+                    // the first one.
+                    status = U_INVALID_FORMAT_ERROR;
+                    return nullptr;
+                }
+                U_ASSERT(eraIdx == 0);
+                startDates[eraIdx] = MIN_ENCODED_START;
+            } else {
+                status = U_INVALID_FORMAT_ERROR;
+                return nullptr;
+            }
+        }
+
+        if (hasName) {
+            if (eraIdx >= firstTentativeIdx) {
+                status = U_INVALID_FORMAT_ERROR;
+                return nullptr;
+            }
+        } else {
+            if (eraIdx < firstTentativeIdx) {
+                firstTentativeIdx = eraIdx;
+            }
+        }
+    }
+
+    EraRules *result;
+    if (firstTentativeIdx < MAX_INT32 && !includeTentativeEra) {
+        result = new EraRules(startDates, firstTentativeIdx);
+    } else {
+        result = new EraRules(startDates, numEras);
+    }
+
+    if (result == nullptr) {
+        status = U_MEMORY_ALLOCATION_ERROR;
+    }
+    return result;
+}
+
+void EraRules::getStartDate(int32_t eraIdx, int32_t (&fields)[3], UErrorCode& status) const {
+    if(U_FAILURE(status)) {
+        return;
+    }
+    if (eraIdx < 0 || eraIdx >= numEras) {
+        status = U_ILLEGAL_ARGUMENT_ERROR;
+        return;
+    }
+    decodeDate(startDates[eraIdx], fields);
+}
+
+int32_t EraRules::getStartYear(int32_t eraIdx, UErrorCode& status) const {
+    int year = MAX_INT32;   // bogus value
+    if(U_FAILURE(status)) {
+        return year;
+    }
+    if (eraIdx < 0 || eraIdx >= numEras) {
+        status = U_ILLEGAL_ARGUMENT_ERROR;
+        return year;
+    }
+    int fields[3];
+    decodeDate(startDates[eraIdx], fields);
+    year = fields[0];
+
+    return year;
+}
+
+int32_t EraRules::getEraIndex(int32_t year, int32_t month, int32_t day, UErrorCode& status) const {
+    if(U_FAILURE(status)) {
+        return -1;
+    }
+
+    if (month < 1 || month > 12 || day < 1 || day > 31) {
+        status = U_ILLEGAL_ARGUMENT_ERROR;
+        return -1;
+    }
+    int32_t high = numEras; // last index + 1
+    int32_t low;
+
+    // Short circuit for recent years.  Most modern computations will
+    // occur in the last few eras.
+    if (compareEncodedDateWithYMD(startDates[getCurrentEraIndex()], year, month, day) <= 0) {
+        low = getCurrentEraIndex();
+    } else {
+        low = 0;
+    }
+
+    // Do binary search
+    while (low < high - 1) {
+        int i = (low + high) / 2;
+        if (compareEncodedDateWithYMD(startDates[i], year, month, day) <= 0) {
+            low = i;
+        } else {
+            high = i;
+        }
+    }
+    return low;
+}
+
+void EraRules::initCurrentEra() {
+    UDate now = ucal_getNow();
+    int year, month0, dom, dow, doy, mid;
+    Grego::timeToFields(now, year, month0, dom, dow, doy, mid);
+    int currentEncodedDate = encodeDate(year, month0 + 1 /* changes to 1-base */, dom);
+    int eraIdx = numEras - 1;
+    while (eraIdx > 0) {
+        if (currentEncodedDate >= startDates[eraIdx]) {
+            break;
+        }
+        eraIdx--;
+    }
+    // Note: current era could be before the first era.
+    // In this case, this implementation returns the first era index (0).
+    currentEra = eraIdx;}
+
+U_NAMESPACE_END
+#endif /* #if !UCONFIG_NO_FORMATTING */
+
+
diff --git a/source/i18n/erarules.h b/source/i18n/erarules.h
new file mode 100644 (file)
index 0000000..4ed8640
--- /dev/null
@@ -0,0 +1,92 @@
+// © 2018 and later: Unicode, Inc. and others.
+// License & terms of use: http://www.unicode.org/copyright.html
+
+#ifndef ERARULES_H_
+#define ERARULES_H_
+
+#include "unicode/utypes.h"
+
+#if !UCONFIG_NO_FORMATTING
+
+#include "unicode/localpointer.h"
+#include "unicode/uobject.h"
+#include "cmemory.h"
+
+U_NAMESPACE_BEGIN
+
+// Export an explicit template instantiation of LocalMemory used as a data member of EraRules.
+// When building DLLs for Windows this is required even though no direct access leaks out of the i18n library.
+// See digitlst.h, pluralaffix.h, datefmt.h, and others for similar examples.
+#if U_PF_WINDOWS <= U_PLATFORM && U_PLATFORM <= U_PF_CYGWIN
+// Ignore warning 4661 as LocalPointerBase does not use operator== or operator!=
+#pragma warning(suppress: 4661)
+template class U_I18N_API LocalPointerBase<int32_t>;
+template class U_I18N_API LocalMemory<int32_t>;
+#endif
+
+class U_I18N_API EraRules : public UMemory {
+public:
+    ~EraRules();
+
+    static EraRules* createInstance(const char *calType, UBool includeTentativeEra, UErrorCode& status);
+
+    /**
+     * Gets number of effective eras
+     * @return  number of effective eras
+     */
+    inline int32_t getNumberOfEras() const {
+        return numEras;
+    }
+
+    /**
+     * Gets start date of an era
+     * @param eraIdx    Era index
+     * @param fields    Receives date fields. The result includes values of year, month,
+     *                  day of month in this order. When an era has no start date, the result
+     *                  will be January 1st in year whose value is minimum integer.
+     * @param status    Receives status.
+     */
+    void getStartDate(int32_t eraIdx, int32_t (&fields)[3], UErrorCode& status) const;
+
+    /**
+     * Gets start year of an era
+     * @param eraIdx    Era index
+     * @param status    Receives status.
+     * @return The first year of an era. When a era has no start date, minimum int32
+     *          value is returned.
+     */
+    int32_t getStartYear(int32_t eraIdx, UErrorCode& status) const;
+
+    /**
+     * Returns era index for the specified year/month/day.
+     * @param year  Year
+     * @param month Month (1-base)
+     * @param day   Day of month
+     * @param status    Receives status
+     * @return  era index (or 0, when the specified date is before the first era)
+     */
+    int32_t getEraIndex(int32_t year, int32_t month, int32_t day, UErrorCode& status) const;
+
+    /**
+     * Gets the current era index. This is calculated only once for an instance of
+     * EraRules.
+     *
+     * @return era index of current era (or 0, when current date is before the first era)
+     */
+    inline int32_t getCurrentEraIndex() const {
+        return currentEra;
+    }
+
+private:
+    EraRules(LocalMemory<int32_t>& eraStartDates, int32_t numEra);
+
+    void initCurrentEra();
+
+    LocalMemory<int32_t> startDates;
+    int32_t numEras;
+    int32_t currentEra;
+};
+
+U_NAMESPACE_END
+#endif /* #if !UCONFIG_NO_FORMATTING */
+#endif /* ERARULES_H_ */
index 2e9d5622b1b5b0841fb927ad88da03353839bff0..a6827e01e98b4b69c17b4b3e6fcfe15c4499be99 100644 (file)
 #ifndef FPHDLIMP_H
 #define FPHDLIMP_H
 
+#include "unicode/utypes.h"
+
 #if !UCONFIG_NO_FORMATTING
 
-#include "unicode/utypes.h"
 #include "unicode/fieldpos.h"
 #include "unicode/fpositer.h"
 
index 0485cca7cd935d0a02e2ea6bcca6cd52d6fdd956..71faeb095010b56f24640a4c2e2976fbf653f34c 100644 (file)
@@ -541,8 +541,8 @@ int32_t GregorianCalendar::handleComputeMonthStart(int32_t eyear, int32_t month,
     }
 
     UBool isLeap = eyear%4 == 0;
-    int32_t y = eyear-1;
-    int32_t julianDay = 365*y + ClockMath::floorDivide(y, 4) + (kJan1_1JulianDay - 3);
+    int64_t y = (int64_t)eyear-1;
+    int64_t julianDay = 365*y + ClockMath::floorDivide(y, (int64_t)4) + (kJan1_1JulianDay - 3);
 
     nonConstThis->fIsGregorian = (eyear >= fGregorianCutoverYear);
 #if defined (U_DEBUG_CAL)
@@ -572,7 +572,7 @@ int32_t GregorianCalendar::handleComputeMonthStart(int32_t eyear, int32_t month,
         julianDay += isLeap?kLeapNumDays[month]:kNumDays[month];
     }
 
-    return julianDay;
+    return static_cast<int32_t>(julianDay);
 }
 
 int32_t GregorianCalendar::handleGetMonthLength(int32_t extendedYear, int32_t month)  const
index afaacda0b41a74426ac0acb18ab8a018f54eea9d..06eb32384511e48924b0b41acd00aeacd1ef213b 100644 (file)
@@ -299,8 +299,8 @@ inline int32_t Grego::millisToJulianDay(double millis) {
 }
 
 inline int32_t Grego::gregorianShift(int32_t eyear) {
-  int32_t y = eyear-1;
-  int32_t gregShift = ClockMath::floorDivide(y, 400) - ClockMath::floorDivide(y, 100) + 2;
+  int64_t y = (int64_t)eyear-1;
+  int32_t gregShift = static_cast<int32_t>(ClockMath::floorDivide(y, (int64_t)400) - ClockMath::floorDivide(y, (int64_t)100) + 2);
   return gregShift;
 }
 
index 0af58a630416019af0534ea9b674e9ab60a67804..0e222a54d7c7067a26339d456d53d85960663791 100644 (file)
@@ -2,6 +2,8 @@
 <Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
   <!-- The following import will include the 'default' configuration options for VS projects. -->
   <Import Project="..\allinone\Build.Windows.ProjectConfiguration.props" />
+  <!-- The following import will include the library configuration options for VS projects. -->
+  <Import Project="..\allinone\Build.Windows.Library.ProjectConfiguration.props" />
   <PropertyGroup Label="Globals">
     <ProjectGuid>{0178B127-6269-407D-B112-93877BB62776}</ProjectGuid>
   </PropertyGroup>
@@ -93,7 +95,7 @@
       <ProgramDataBaseFileName>.\x86\Release/</ProgramDataBaseFileName>
     </ClCompile>
     <Link>
-      <OutputFile>..\..\bin\icuin62.dll</OutputFile>
+      <OutputFile>..\..\bin\icuin63.dll</OutputFile>
       <AdditionalLibraryDirectories>.\..\..\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
       <ProgramDatabaseFile>.\..\..\lib\icuin.pdb</ProgramDatabaseFile>
       <RandomizedBaseAddress>false</RandomizedBaseAddress>
       <DebugInformationFormat>EditAndContinue</DebugInformationFormat>
     </ClCompile>
     <Link>
-      <OutputFile>..\..\bin\icuin62d.dll</OutputFile>
+      <OutputFile>..\..\bin\icuin63d.dll</OutputFile>
       <AdditionalLibraryDirectories>.\..\..\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
       <ProgramDatabaseFile>.\..\..\lib\icuind.pdb</ProgramDatabaseFile>
       <RandomizedBaseAddress>false</RandomizedBaseAddress>
       <ProgramDataBaseFileName>.\x64\Release/</ProgramDataBaseFileName>
     </ClCompile>
     <Link>
-      <OutputFile>..\..\bin64\icuin62.dll</OutputFile>
+      <OutputFile>..\..\bin64\icuin63.dll</OutputFile>
       <AdditionalLibraryDirectories>.\..\..\lib64;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
       <ProgramDatabaseFile>.\..\..\lib64\icuin.pdb</ProgramDatabaseFile>
       <ImportLibrary>..\..\lib64\icuin.lib</ImportLibrary>
       <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
     </ClCompile>
     <Link>
-      <OutputFile>..\..\bin64\icuin62d.dll</OutputFile>
+      <OutputFile>..\..\bin64\icuin63d.dll</OutputFile>
       <AdditionalLibraryDirectories>.\..\..\lib64;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
       <ProgramDatabaseFile>.\..\..\lib64\icuind.pdb</ProgramDatabaseFile>
       <ImportLibrary>..\..\lib64\icuind.lib</ImportLibrary>
     </Link>
   </ItemDefinitionGroup>
   <ItemGroup>
+    <ClCompile Include="erarules.cpp" />
     <ClCompile Include="region.cpp" />
     <ClCompile Include="uregion.cpp" />
     <ClCompile Include="alphaindex.cpp" />
     <ClCompile Include="indiancal.cpp" />
     <ClCompile Include="islamcal.cpp" />
     <ClCompile Include="japancal.cpp" />
+    <ClCompile Include="listformatter.cpp" />
+    <ClCompile Include="ulistformatter.cpp" />
     <ClCompile Include="measfmt.cpp" />
     <ClCompile Include="measunit.cpp" />
     <ClCompile Include="measure.cpp" />
     <ClCompile Include="numparse_affixes.cpp" />
     <ClCompile Include="numparse_compositions.cpp" />
     <ClCompile Include="numparse_validators.cpp" />
+    <ClCompile Include="numrange_fluent.cpp" />
+    <ClCompile Include="numrange_impl.cpp" />
     <ClCompile Include="numfmt.cpp" />
     <ClCompile Include="numsys.cpp" />
     <ClCompile Include="olsontz.cpp" />
     <ClInclude Include="collationtailoring.h" />
     <ClInclude Include="collationweights.h" />
     <ClInclude Include="dayperiodrules.h" />
+    <ClInclude Include="erarules.h" />
     <ClInclude Include="numsys_impl.h" />
     <ClInclude Include="region_impl.h" />
     <ClInclude Include="selfmtimpl.h" />
     <ClInclude Include="numparse_validators.h" />
     <ClInclude Include="numparse_types.h" />
     <ClInclude Include="numparse_utils.h" />
+    <ClInclude Include="numrange_impl.h" />
   </ItemGroup>
   <ItemGroup>
     <ResourceCompile Include="i18n.rc" />
index 494c8e166388eef13f4345773a2f6b681952557e..c8f984514271a9127e4bea8af92304b38b095e28 100644 (file)
     <ClCompile Include="japancal.cpp">
       <Filter>formatting</Filter>
     </ClCompile>
+    <ClCompile Include="listformatter.cpp">
+      <Filter>formatting</Filter>
+    </ClCompile>
+    <ClCompile Include="ulistformatter.cpp">
+      <Filter>formatting</Filter>
+    </ClCompile>
     <ClCompile Include="measfmt.cpp">
       <Filter>formatting</Filter>
     </ClCompile>
     <ClCompile Include="numparse_validators.cpp">
       <Filter>formatting</Filter>
     </ClCompile>
+    <ClCompile Include="numrange_fluent.cpp">
+      <Filter>formatting</Filter>
+    </ClCompile>
+    <ClCompile Include="numrange_impl.cpp">
+      <Filter>formatting</Filter>
+    </ClCompile>
     <ClCompile Include="dayperiodrules.cpp">
       <Filter>formatting</Filter>
     </ClCompile>
+    <ClCompile Include="erarules.cpp">
+      <Filter>formatting</Filter>
+    </ClCompile>
   </ItemGroup>
   <ItemGroup>
     <ClCompile Include="bocsu.cpp">
     <ClInclude Include="numparse_utils.h">
       <Filter>formatting</Filter>
     </ClInclude>
+    <ClInclude Include="numrange_impl.h">
+      <Filter>formatting</Filter>
+    </ClInclude>
     <ClInclude Include="olsontz.h">
       <Filter>formatting</Filter>
     </ClInclude>
     <ClInclude Include="utf8collationiterator.h">
       <Filter>collation</Filter>
     </ClInclude>
+    <ClInclude Include="erarules.h">
+      <Filter>formatting</Filter>
+    </ClInclude>
   </ItemGroup>
   <ItemGroup>
     <ResourceCompile Include="i18n.rc">
index 6379486def1c91c5b3ae8ee7bf5174c08c109a3d..49604f787e3b99c716a1de5dd5c81eb740153d6e 100644 (file)
@@ -2,6 +2,8 @@
 <Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
   <!-- The following import will include the 'default' configuration options for VS UWP projects. -->
   <Import Project="..\allinone\Build.Windows.UWP.ProjectConfiguration.props" />
+  <!-- The following import will include the library configuration options for VS projects. -->
+  <Import Project="..\allinone\Build.Windows.Library.ProjectConfiguration.props" />
   <ItemGroup Label="ProjectConfigurations">
     <ProjectConfiguration Include="Debug|Win32">
       <Configuration>Debug</Configuration>
@@ -87,7 +89,7 @@
       <CompileAsWinRT>false</CompileAsWinRT>
       <AdditionalOptions>/utf-8 %(AdditionalOptions)</AdditionalOptions>
     </ClCompile>
-    <ResourceCompile>      
+    <ResourceCompile>
       <Culture>0x0409</Culture>
       <AdditionalIncludeDirectories>../common;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
     </ResourceCompile>
       <ProgramDataBaseFileName>.\x86\ReleaseUWP/</ProgramDataBaseFileName>
     </ClCompile>
     <Link>
-      <OutputFile>..\..\bin32uwp\icuin62.dll</OutputFile>
+      <OutputFile>..\..\bin32uwp\icuin63.dll</OutputFile>
       <ProgramDatabaseFile>.\..\..\lib32uwp\icuin.pdb</ProgramDatabaseFile>
       <ImportLibrary>..\..\lib32uwp\icuin.lib</ImportLibrary>
       <AdditionalDependencies>..\..\lib32uwp\icuuc.lib;%(AdditionalDependencies)</AdditionalDependencies>
       <ProgramDataBaseFileName>.\x86\DebugUWP/</ProgramDataBaseFileName>
     </ClCompile>
     <Link>
-      <OutputFile>..\..\bin32uwp\icuin62d.dll</OutputFile>
+      <OutputFile>..\..\bin32uwp\icuin63d.dll</OutputFile>
       <ProgramDatabaseFile>.\..\..\lib32uwp\icuind.pdb</ProgramDatabaseFile>
       <ImportLibrary>..\..\lib32uwp\icuind.lib</ImportLibrary>
       <AdditionalDependencies>..\..\lib32uwp\icuucd.lib;%(AdditionalDependencies)</AdditionalDependencies>
       <ProgramDataBaseFileName>.\x64\ReleaseUWP/</ProgramDataBaseFileName>
     </ClCompile>
     <Link>
-      <OutputFile>..\..\bin64uwp\icuin62.dll</OutputFile>
+      <OutputFile>..\..\bin64uwp\icuin63.dll</OutputFile>
       <ProgramDatabaseFile>.\..\..\lib64uwp\icuin.pdb</ProgramDatabaseFile>
       <ImportLibrary>..\..\lib64uwp\icuin.lib</ImportLibrary>
       <AdditionalDependencies>..\..\lib64uwp\icuuc.lib;%(AdditionalDependencies)</AdditionalDependencies>
       <ProgramDataBaseFileName>.\x64\DebugUWP/</ProgramDataBaseFileName>
     </ClCompile>
     <Link>
-      <OutputFile>..\..\bin64uwp\icuin62d.dll</OutputFile>
+      <OutputFile>..\..\bin64uwp\icuin63d.dll</OutputFile>
       <ProgramDatabaseFile>.\..\..\lib64uwp\icuind.pdb</ProgramDatabaseFile>
       <ImportLibrary>..\..\lib64uwp\icuind.lib</ImportLibrary>
       <AdditionalDependencies>..\..\lib64uwp\icuucd.lib;%(AdditionalDependencies)</AdditionalDependencies>
       <ProgramDataBaseFileName>.\ARM\ReleaseUWP/</ProgramDataBaseFileName>
     </ClCompile>
     <Link>
-      <OutputFile>..\..\binARMuwp\icuin62.dll</OutputFile>
+      <OutputFile>..\..\binARMuwp\icuin63.dll</OutputFile>
       <ProgramDatabaseFile>.\..\..\libARMuwp\icuin.pdb</ProgramDatabaseFile>
       <ImportLibrary>..\..\libARMuwp\icuin.lib</ImportLibrary>
       <AdditionalDependencies>..\..\libARMuwp\icuuc.lib;%(AdditionalDependencies)</AdditionalDependencies>
       <ProgramDataBaseFileName>.\ARM\DebugUWP/</ProgramDataBaseFileName>
     </ClCompile>
     <Link>
-      <OutputFile>..\..\binARMuwp\icuin62d.dll</OutputFile>
+      <OutputFile>..\..\binARMuwp\icuin63d.dll</OutputFile>
       <ProgramDatabaseFile>.\..\..\libARMuwp\icuind.pdb</ProgramDatabaseFile>
       <ImportLibrary>..\..\libARMuwp\icuind.lib</ImportLibrary>
       <AdditionalDependencies>..\..\libARMuwp\icuucd.lib;%(AdditionalDependencies)</AdditionalDependencies>
     </Link>
   </ItemDefinitionGroup>
   <ItemGroup>
+    <ClCompile Include="erarules.cpp" />
     <ClCompile Include="region.cpp" />
     <ClCompile Include="uregion.cpp" />
     <ClCompile Include="alphaindex.cpp" />
     <ClCompile Include="indiancal.cpp" />
     <ClCompile Include="islamcal.cpp" />
     <ClCompile Include="japancal.cpp" />
+    <ClCompile Include="listformatter.cpp" />
+    <ClCompile Include="ulistformatter.cpp" />
     <ClCompile Include="measfmt.cpp" />
     <ClCompile Include="measunit.cpp" />
     <ClCompile Include="measure.cpp" />
     <ClCompile Include="numparse_affixes.cpp" />
     <ClCompile Include="numparse_compositions.cpp" />
     <ClCompile Include="numparse_validators.cpp" />
+    <ClCompile Include="numrange_fluent.cpp" />
+    <ClCompile Include="numrange_impl.cpp" />
     <ClCompile Include="numfmt.cpp" />
     <ClCompile Include="numsys.cpp" />
     <ClCompile Include="olsontz.cpp" />
     <ClInclude Include="collationtailoring.h" />
     <ClInclude Include="collationweights.h" />
     <ClInclude Include="dayperiodrules.h" />
+    <ClInclude Include="erarules.h" />
     <ClInclude Include="numsys_impl.h" />
     <ClInclude Include="region_impl.h" />
     <ClInclude Include="selfmtimpl.h" />
     <ClInclude Include="numparse_validators.h" />
     <ClInclude Include="numparse_types.h" />
     <ClInclude Include="numparse_utils.h" />
+    <ClInclude Include="numrange_impl.h" />
   </ItemGroup>
   <ItemGroup>
     <ResourceCompile Include="i18n.rc" />
   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
   <ImportGroup Label="ExtensionTargets">
   </ImportGroup>
-</Project>
+</Project>
\ No newline at end of file
index 278f9efb2e03f86657dda280aee2232dba5cb877..ae1098f055814157452247f9ad44beceb264b4a9 100644 (file)
@@ -347,12 +347,15 @@ IndianCalendar::inDaylightTime(UErrorCode& status) const
     return (UBool)(U_SUCCESS(status) ? (internalGet(UCAL_DST_OFFSET) != 0) : FALSE);
 }
 
-// default century
-const UDate     IndianCalendar::fgSystemDefaultCentury          = DBL_MIN;
-const int32_t   IndianCalendar::fgSystemDefaultCenturyYear      = -1;
 
-UDate           IndianCalendar::fgSystemDefaultCenturyStart     = DBL_MIN;
-int32_t         IndianCalendar::fgSystemDefaultCenturyStartYear = -1;
+/**
+ * The system maintains a static default century start date and Year.  They are
+ * initialized the first time they are used.  Once the system default century date
+ * and year are set, they do not change.
+ */
+static UDate           gSystemDefaultCenturyStart       = DBL_MIN;
+static int32_t         gSystemDefaultCenturyStartYear   = -1;
+static icu::UInitOnce  gSystemDefaultCenturyInit        = U_INITONCE_INITIALIZER;
 
 
 UBool IndianCalendar::haveDefaultCentury() const
@@ -360,87 +363,45 @@ UBool IndianCalendar::haveDefaultCentury() const
     return TRUE;
 }
 
-UDate IndianCalendar::defaultCenturyStart() const
+static void U_CALLCONV
+initializeSystemDefaultCentury()
 {
-    return internalGetDefaultCenturyStart();
-}
+    // initialize systemDefaultCentury and systemDefaultCenturyYear based
+    // on the current time.  They'll be set to 80 years before
+    // the current time.
+    UErrorCode status = U_ZERO_ERROR;
 
-int32_t IndianCalendar::defaultCenturyStartYear() const
-{
-    return internalGetDefaultCenturyStartYear();
-}
+    IndianCalendar calendar ( Locale ( "@calendar=Indian" ), status);
+    if ( U_SUCCESS ( status ) ) {
+        calendar.setTime ( Calendar::getNow(), status );
+        calendar.add ( UCAL_YEAR, -80, status );
 
-UDate
-IndianCalendar::internalGetDefaultCenturyStart() const
-{
-    // lazy-evaluate systemDefaultCenturyStart
-    UBool needsUpdate;
-    { 
-        Mutex m;
-        needsUpdate = (fgSystemDefaultCenturyStart == fgSystemDefaultCentury);
-    }
+        UDate    newStart = calendar.getTime ( status );
+        int32_t  newYear  = calendar.get ( UCAL_YEAR, status );
 
-    if (needsUpdate) {
-        initializeSystemDefaultCentury();
+        gSystemDefaultCenturyStart = newStart;
+        gSystemDefaultCenturyStartYear = newYear;
     }
+    // We have no recourse upon failure.
+}
 
-    // use defaultCenturyStart unless it's the flag value;
-    // then use systemDefaultCenturyStart
 
-    return fgSystemDefaultCenturyStart;
+UDate
+IndianCalendar::defaultCenturyStart() const
+{
+    // lazy-evaluate systemDefaultCenturyStart
+    umtx_initOnce(gSystemDefaultCenturyInit, &initializeSystemDefaultCentury);
+    return gSystemDefaultCenturyStart;
 }
 
 int32_t
-IndianCalendar::internalGetDefaultCenturyStartYear() const
+IndianCalendar::defaultCenturyStartYear() const
 {
     // lazy-evaluate systemDefaultCenturyStartYear
-    UBool needsUpdate;
-    { 
-        Mutex m;
-
-        needsUpdate = (fgSystemDefaultCenturyStart == fgSystemDefaultCentury);
-    }
-
-    if (needsUpdate) {
-        initializeSystemDefaultCentury();
-    }
-
-    // use defaultCenturyStart unless it's the flag value;
-    // then use systemDefaultCenturyStartYear
-
-    return    fgSystemDefaultCenturyStartYear;
+    umtx_initOnce(gSystemDefaultCenturyInit, &initializeSystemDefaultCentury);
+    return    gSystemDefaultCenturyStartYear;
 }
 
-void
-IndianCalendar::initializeSystemDefaultCentury()
-{
-    // initialize systemDefaultCentury and systemDefaultCenturyYear based
-    // on the current time.  They'll be set to 80 years before
-    // the current time.
-    // No point in locking as it should be idempotent.
-    if (fgSystemDefaultCenturyStart == fgSystemDefaultCentury) {
-        UErrorCode status = U_ZERO_ERROR;
-
-        IndianCalendar calendar(Locale("@calendar=Indian"),status);
-        if (U_SUCCESS(status)) {
-            calendar.setTime(Calendar::getNow(), status);
-            calendar.add(UCAL_YEAR, -80, status);
-
-            UDate    newStart = calendar.getTime(status);
-            int32_t  newYear  = calendar.get(UCAL_YEAR, status);
-
-            {
-                Mutex m;
-
-                fgSystemDefaultCenturyStart = newStart;
-                fgSystemDefaultCenturyStartYear = newYear;
-            }
-        }
-
-        // We have no recourse upon failure unless we want to propagate the failure
-        // out.
-    }
-}
 
 UOBJECT_DEFINE_RTTI_IMPLEMENTATION(IndianCalendar)
 
index b5e0f963d95f8bff9a74e35e76e2a87eb934af6d..e36d4eb5c0ea7b7f2bb7bc61804f927fa34ec0ba 100644 (file)
@@ -68,7 +68,7 @@ U_NAMESPACE_BEGIN
  */
 
 
-class IndianCalendar : public Calendar {
+class U_I18N_API IndianCalendar : public Calendar {
 public:
   /**
    * Useful constants for IndianCalendar.
@@ -274,10 +274,10 @@ public:
    * @return   The class ID for all objects of this class.
    * @internal
    */
-  U_I18N_API static UClassID U_EXPORT2 getStaticClassID(void);
+  static UClassID U_EXPORT2 getStaticClassID(void);
 
   /**
-   * return the calendar type, "buddhist".
+   * return the calendar type, "indian".
    *
    * @return calendar type
    * @internal
@@ -320,49 +320,6 @@ protected:
    * @internal
    */
   virtual int32_t defaultCenturyStartYear() const;
-
- private: // default century stuff.
-  /**
-   * The system maintains a static default century start date.  This is initialized
-   * the first time it is used.  Before then, it is set to SYSTEM_DEFAULT_CENTURY to
-   * indicate an uninitialized state.  Once the system default century date and year
-   * are set, they do not change.
-   */
-  static UDate         fgSystemDefaultCenturyStart;
-
-  /**
-   * See documentation for systemDefaultCenturyStart.
-   */
-  static int32_t          fgSystemDefaultCenturyStartYear;
-
-  /**
-   * Default value that indicates the defaultCenturyStartYear is unitialized
-   */
-  static const int32_t    fgSystemDefaultCenturyYear;
-
-  /**
-   * start of default century, as a date
-   */
-  static const UDate        fgSystemDefaultCentury;
-
-  /**
-   * Returns the beginning date of the 100-year window that dates 
-   * with 2-digit years are considered to fall within.
-   */
-  UDate         internalGetDefaultCenturyStart(void) const;
-
-  /**
-   * Returns the first year of the 100-year window that dates with 
-   * 2-digit years are considered to fall within.
-   */
-  int32_t          internalGetDefaultCenturyStartYear(void) const;
-
-  /**
-   * Initializes the 100-year window that dates with 2-digit years
-   * are considered to fall within so that its start date is 80 years
-   * before the current time.
-   */
-  static void  initializeSystemDefaultCentury(void);
 };
 
 U_NAMESPACE_END
index 17b4e0764ddc8d1978550616f2118a00ecd37e73..5159be337c2276f84b08cd10dcc3607d0e22408a 100644 (file)
 #include "unicode/utypes.h"
 
 #if !UCONFIG_NO_FORMATTING
-
+#if U_PLATFORM_HAS_WINUWP_API == 0
+#include <stdlib.h> // getenv() is not available in UWP env
+#endif
 #include "cmemory.h"
+#include "erarules.h"
 #include "japancal.h"
 #include "unicode/gregocal.h"
 #include "umutex.h"
 #include "uassert.h"
-
-//#define U_DEBUG_JCAL
-
-#ifdef U_DEBUG_JCAL
-#include <stdio.h>
-#endif
+#include "ucln_in.h"
+#include "cstring.h"
+
+static icu::EraRules * gJapaneseEraRules = nullptr;
+static icu::UInitOnce gJapaneseEraRulesInitOnce = U_INITONCE_INITIALIZER;
+static int32_t gCurrentEra = 0;
+
+U_CDECL_BEGIN
+static UBool japanese_calendar_cleanup(void) {
+    if (gJapaneseEraRules) {
+        delete gJapaneseEraRules;
+        gJapaneseEraRules = nullptr;
+    }
+    gCurrentEra = 0;
+    gJapaneseEraRulesInitOnce.reset();
+    return TRUE;
+}
+U_CDECL_END
 
 U_NAMESPACE_BEGIN
 
 UOBJECT_DEFINE_RTTI_IMPLEMENTATION(JapaneseCalendar)
 
-//  Gregorian date of each emperor's ascension
-//  Years are AD, months are 1-based.
-static const struct { 
-    int16_t year;
-    int8_t  month;
-    int8_t  day;
-} kEraInfo[] =  {
-    //  Year  Month Day
-    {   645,    6, 19 },   // Taika   0
-    {   650,    2, 15 },   // Hakuchi 1
-    {   672,    1,  1 },   // Hakuho  2
-    {   686,    7, 20 },   // Shucho  3
-    {   701,    3, 21 },   // Taiho   4
-    {   704,    5, 10 },   // Keiun   5
-    {   708,    1, 11 },   // Wado    6
-    {   715,    9,  2 },   // Reiki   7
-    {   717,   11, 17 },   // Yoro    8
-    {   724,    2,  4 },   // Jinki   9
-    {   729,    8,  5 },   // Tempyo  10
-    {   749,    4, 14 },   // Tempyo-kampo 11
-    {   749,    7,  2 },   // Tempyo-shoho 12
-    {   757,    8, 18 },   // Tempyo-hoji  13
-    {   765,    1,  7 },   // Tempho-jingo 14
-    {   767,    8, 16 },   // Jingo-keiun  15
-    {   770,   10,  1 },   // Hoki         16
-    {   781,    1,  1 },   // Ten-o        17
-    {   782,    8, 19 },   // Enryaku      18
-    {   806,    5, 18 },   // Daido        19
-    {   810,    9, 19 },   // Konin        20
-    {   824,    1,  5 },   // Tencho
-    {   834,    1,  3 },   // Showa
-    {   848,    6, 13 },   // Kajo
-    {   851,    4, 28 },   // Ninju
-    {   854,   11, 30 },   // Saiko
-    {   857,    2, 21 },   // Tennan
-    {   859,    4, 15 },   // Jogan
-    {   877,    4, 16 },   // Genkei
-    {   885,    2, 21 },   // Ninna
-    {   889,    4, 27 },   // Kampyo       30
-    {   898,    4, 26 },   // Shotai
-    {   901,    7, 15 },   // Engi
-    {   923,    4, 11 },   // Encho
-    {   931,    4, 26 },   // Shohei
-    {   938,    5, 22 },   // Tengyo
-    {   947,    4, 22 },   // Tenryaku
-    {   957,   10, 27 },   // Tentoku
-    {   961,    2, 16 },   // Owa
-    {   964,    7, 10 },   // Koho
-    {   968,    8, 13 },   // Anna        40
-    {   970,    3, 25 },   // Tenroku
-    {   973,   12, 20 },   // Ten-en
-    {   976,    7, 13 },   // Jogen
-    {   978,   11, 29 },   // Tengen
-    {   983,    4, 15 },   // Eikan
-    {   985,    4, 27 },   // Kanna
-    {   987,    4,  5 },   // Ei-en
-    {   989,    8,  8 },   // Eiso
-    {   990,   11,  7 },   // Shoryaku
-    {   995,    2, 22 },   // Chotoku      50
-    {   999,    1, 13 },   // Choho
-    {  1004,    7, 20 },   // Kanko
-    {  1012,   12, 25 },   // Chowa
-    {  1017,    4, 23 },   // Kannin
-    {  1021,    2,  2 },   // Jian
-    {  1024,    7, 13 },   // Manju
-    {  1028,    7, 25 },   // Chogen
-    {  1037,    4, 21 },   // Choryaku
-    {  1040,   11, 10 },   // Chokyu
-    {  1044,   11, 24 },   // Kantoku      60
-    {  1046,    4, 14 },   // Eisho
-    {  1053,    1, 11 },   // Tengi
-    {  1058,    8, 29 },   // Kohei
-    {  1065,    8,  2 },   // Jiryaku
-    {  1069,    4, 13 },   // Enkyu
-    {  1074,    8, 23 },   // Shoho
-    {  1077,   11, 17 },   // Shoryaku
-    {  1081,    2, 10 },   // Eiho
-    {  1084,    2,  7 },   // Otoku
-    {  1087,    4,  7 },   // Kanji       70
-    {  1094,   12, 15 },   // Kaho
-    {  1096,   12, 17 },   // Eicho
-    {  1097,   11, 21 },   // Shotoku
-    {  1099,    8, 28 },   // Kowa
-    {  1104,    2, 10 },   // Choji
-    {  1106,    4,  9 },   // Kasho
-    {  1108,    8,  3 },   // Tennin
-    {  1110,    7, 13 },   // Ten-ei
-    {  1113,    7, 13 },   // Eikyu
-    {  1118,    4,  3 },   // Gen-ei      80
-    {  1120,    4, 10 },   // Hoan
-    {  1124,    4,  3 },   // Tenji
-    {  1126,    1, 22 },   // Daiji
-    {  1131,    1, 29 },   // Tensho
-    {  1132,    8, 11 },   // Chosho
-    {  1135,    4, 27 },   // Hoen
-    {  1141,    7, 10 },   // Eiji
-    {  1142,    4, 28 },   // Koji
-    {  1144,    2, 23 },   // Tenyo
-    {  1145,    7, 22 },   // Kyuan      90
-    {  1151,    1, 26 },   // Ninpei
-    {  1154,   10, 28 },   // Kyuju
-    {  1156,    4, 27 },   // Hogen
-    {  1159,    4, 20 },   // Heiji
-    {  1160,    1, 10 },   // Eiryaku
-    {  1161,    9,  4 },   // Oho
-    {  1163,    3, 29 },   // Chokan
-    {  1165,    6,  5 },   // Eiman
-    {  1166,    8, 27 },   // Nin-an
-    {  1169,    4,  8 },   // Kao       100
-    {  1171,    4, 21 },   // Shoan
-    {  1175,    7, 28 },   // Angen
-    {  1177,    8,  4 },   // Jisho
-    {  1181,    7, 14 },   // Yowa
-    {  1182,    5, 27 },   // Juei
-    {  1184,    4, 16 },   // Genryuku
-    {  1185,    8, 14 },   // Bunji
-    {  1190,    4, 11 },   // Kenkyu
-    {  1199,    4, 27 },   // Shoji
-    {  1201,    2, 13 },   // Kennin     110
-    {  1204,    2, 20 },   // Genkyu
-    {  1206,    4, 27 },   // Ken-ei
-    {  1207,   10, 25 },   // Shogen
-    {  1211,    3,  9 },   // Kenryaku
-    {  1213,   12,  6 },   // Kenpo
-    {  1219,    4, 12 },   // Shokyu
-    {  1222,    4, 13 },   // Joo
-    {  1224,   11, 20 },   // Gennin
-    {  1225,    4, 20 },   // Karoku
-    {  1227,   12, 10 },   // Antei      120
-    {  1229,    3,  5 },   // Kanki
-    {  1232,    4,  2 },   // Joei
-    {  1233,    4, 15 },   // Tempuku
-    {  1234,   11,  5 },   // Bunryaku
-    {  1235,    9, 19 },   // Katei
-    {  1238,   11, 23 },   // Ryakunin
-    {  1239,    2,  7 },   // En-o
-    {  1240,    7, 16 },   // Ninji
-    {  1243,    2, 26 },   // Kangen
-    {  1247,    2, 28 },   // Hoji      130
-    {  1249,    3, 18 },   // Kencho
-    {  1256,   10,  5 },   // Kogen
-    {  1257,    3, 14 },   // Shoka
-    {  1259,    3, 26 },   // Shogen
-    {  1260,    4, 13 },   // Bun-o
-    {  1261,    2, 20 },   // Kocho
-    {  1264,    2, 28 },   // Bun-ei
-    {  1275,    4, 25 },   // Kenji
-    {  1278,    2, 29 },   // Koan
-    {  1288,    4, 28 },   // Shoo      140
-    {  1293,    8, 55 },   // Einin
-    {  1299,    4, 25 },   // Shoan
-    {  1302,   11, 21 },   // Kengen
-    {  1303,    8,  5 },   // Kagen
-    {  1306,   12, 14 },   // Tokuji
-    {  1308,   10,  9 },   // Enkei
-    {  1311,    4, 28 },   // Ocho
-    {  1312,    3, 20 },   // Showa
-    {  1317,    2,  3 },   // Bunpo
-    {  1319,    4, 28 },   // Geno      150
-    {  1321,    2, 23 },   // Genkyo
-    {  1324,   12,  9 },   // Shochu
-    {  1326,    4, 26 },   // Kareki
-    {  1329,    8, 29 },   // Gentoku
-    {  1331,    8,  9 },   // Genko
-    {  1334,    1, 29 },   // Kemmu
-    {  1336,    2, 29 },   // Engen
-    {  1340,    4, 28 },   // Kokoku
-    {  1346,   12,  8 },   // Shohei
-    {  1370,    7, 24 },   // Kentoku       160
-    {  1372,    4,  1 },   // Bunch\u0169
-    {  1375,    5, 27 },   // Tenju
-    {  1379,    3, 22 },   // Koryaku
-    {  1381,    2, 10 },   // Kowa
-    {  1384,    4, 28 },   // Gench\u0169
-    {  1384,    2, 27 },   // Meitoku
-    {  1387,    8, 23 },   // Kakei
-    {  1389,    2,  9 },   // Koo
-    {  1390,    3, 26 },   // Meitoku
-    {  1394,    7,  5 },   // Oei           170
-    {  1428,    4, 27 },   // Shocho
-    {  1429,    9,  5 },   // Eikyo
-    {  1441,    2, 17 },   // Kakitsu
-    {  1444,    2,  5 },   // Bun-an
-    {  1449,    7, 28 },   // Hotoku
-    {  1452,    7, 25 },   // Kyotoku
-    {  1455,    7, 25 },   // Kosho
-    {  1457,    9, 28 },   // Choroku
-    {  1460,   12, 21 },   // Kansho
-    {  1466,    2, 28 },   // Bunsho        180
-    {  1467,    3,  3 },   // Onin
-    {  1469,    4, 28 },   // Bunmei
-    {  1487,    7, 29 },   // Chokyo
-    {  1489,    8, 21 },   // Entoku
-    {  1492,    7, 19 },   // Meio
-    {  1501,    2, 29 },   // Bunki
-    {  1504,    2, 30 },   // Eisho
-    {  1521,    8, 23 },   // Taiei
-    {  1528,    8, 20 },   // Kyoroku
-    {  1532,    7, 29 },   // Tenmon       190
-    {  1555,   10, 23 },   // Koji
-    {  1558,    2, 28 },   // Eiroku
-    {  1570,    4, 23 },   // Genki
-    {  1573,    7, 28 },   // Tensho
-    {  1592,   12,  8 },   // Bunroku
-    {  1596,   10, 27 },   // Keicho
-    {  1615,    7, 13 },   // Genwa
-    {  1624,    2, 30 },   // Kan-ei
-    {  1644,   12, 16 },   // Shoho
-    {  1648,    2, 15 },   // Keian       200
-    {  1652,    9, 18 },   // Shoo
-    {  1655,    4, 13 },   // Meiryaku
-    {  1658,    7, 23 },   // Manji
-    {  1661,    4, 25 },   // Kanbun
-    {  1673,    9, 21 },   // Enpo
-    {  1681,    9, 29 },   // Tenwa
-    {  1684,    2, 21 },   // Jokyo
-    {  1688,    9, 30 },   // Genroku
-    {  1704,    3, 13 },   // Hoei
-    {  1711,    4, 25 },   // Shotoku      210
-    {  1716,    6, 22 },   // Kyoho
-    {  1736,    4, 28 },   // Genbun
-    {  1741,    2, 27 },   // Kanpo
-    {  1744,    2, 21 },   // Enkyo
-    {  1748,    7, 12 },   // Kan-en
-    {  1751,   10, 27 },   // Horyaku
-    {  1764,    6,  2 },   // Meiwa
-    {  1772,   11, 16 },   // An-ei
-    {  1781,    4,  2 },   // Tenmei
-    {  1789,    1, 25 },   // Kansei      220
-    {  1801,    2,  5 },   // Kyowa
-    {  1804,    2, 11 },   // Bunka
-    {  1818,    4, 22 },   // Bunsei
-    {  1830,   12, 10 },   // Tenpo
-    {  1844,   12,  2 },   // Koka
-    {  1848,    2, 28 },   // Kaei
-    {  1854,   11, 27 },   // Ansei
-    {  1860,    3, 18 },   // Man-en
-    {  1861,    2, 19 },   // Bunkyu
-    {  1864,    2, 20 },   // Genji        230
-    {  1865,    4,  7 },   // Keio     231
-    {  1868,    9,  8 },   // Meiji    232
-    {  1912,    7, 30 },   // Taisho   233
-    {  1926,   12, 25 },   // Showa    234
-    {  1989,    1,  8 }   // Heisei    235
-};
-
-#define kEraCount UPRV_LENGTHOF(kEraInfo)
-
-/**
- * The current era, for reference. 
- */
-static const int32_t kCurrentEra = (kEraCount-1);  // int32_t to match the calendar field type
-
 static const int32_t kGregorianEpoch = 1970;    // used as the default value of EXTENDED_YEAR
+static const char* TENTATIVE_ERA_VAR_NAME = "ICU_ENABLE_TENTATIVE_ERA";
+
+// Initialize global Japanese era data
+static void U_CALLCONV initializeEras(UErrorCode &status) {
+    // Although start date of next Japanese era is planned ahead, a name of
+    // new era might not be available. This implementation allows tester to
+    // check a new era without era names by settings below (in priority order).
+    // By default, such tentative era is disabled.
+
+    // 1. Environment variable ICU_ENABLE_TENTATIVE_ERA=true or false
+
+    UBool includeTentativeEra = FALSE;
+
+#if U_PLATFORM_HAS_WINUWP_API == 1
+    // UWP doesn't allow access to getenv(), but we can call GetEnvironmentVariableW to do the same thing.
+    UChar varName[26] = {};
+    u_charsToUChars(TENTATIVE_ERA_VAR_NAME, varName, static_cast<int32_t>(uprv_strlen(TENTATIVE_ERA_VAR_NAME)));
+    WCHAR varValue[5] = {};
+    DWORD ret = GetEnvironmentVariableW(reinterpret_cast<WCHAR*>(varName), varValue, UPRV_LENGTHOF(varValue));
+    if ((ret == 4) && (_wcsicmp(varValue, L"true") == 0)) {
+        includeTentativeEra = TRUE;
+    }
+#else
+    char *envVarVal = getenv(TENTATIVE_ERA_VAR_NAME);
+    if (envVarVal != NULL && uprv_stricmp(envVarVal, "true") == 0) {
+        includeTentativeEra = TRUE;
+    }
+#endif
+    gJapaneseEraRules = EraRules::createInstance("japanese", includeTentativeEra, status);
+    if (U_FAILURE(status)) {
+        return;
+    }
+    gCurrentEra = gJapaneseEraRules->getCurrentEraIndex();
+}
+
+static void init(UErrorCode &status) {
+    umtx_initOnce(gJapaneseEraRulesInitOnce, &initializeEras, status);
+    ucln_i18n_registerCleanup(UCLN_I18N_JAPANESE_CALENDAR, japanese_calendar_cleanup);
+}
 
 /* Some platforms don't like to export constants, like old Palm OS and some z/OS configurations. */
 uint32_t JapaneseCalendar::getCurrentEra() {
-    return kCurrentEra;
+    return gCurrentEra;
 }
 
 JapaneseCalendar::JapaneseCalendar(const Locale& aLocale, UErrorCode& success)
 :   GregorianCalendar(aLocale, success)
 {
+    init(success);
     setTimeInMillis(getNow(), success); // Call this again now that the vtable is set up properly.
 }
 
@@ -306,6 +108,9 @@ JapaneseCalendar::~JapaneseCalendar()
 JapaneseCalendar::JapaneseCalendar(const JapaneseCalendar& source)
 : GregorianCalendar(source)
 {
+    UErrorCode status = U_ZERO_ERROR;
+    init(status);
+    U_ASSERT(U_SUCCESS(status));
 }
 
 JapaneseCalendar& JapaneseCalendar::operator= ( const JapaneseCalendar& right)
@@ -332,10 +137,14 @@ int32_t JapaneseCalendar::getDefaultMonthInYear(int32_t eyear)
     int32_t month = 0;
 
     // Find out if we are at the edge of an era
-
-    if(eyear == kEraInfo[era].year) {
+    int32_t eraStart[3] = { 0,0,0 };
+    UErrorCode status = U_ZERO_ERROR;
+    gJapaneseEraRules->getStartDate(era, eraStart, status);
+    U_ASSERT(U_SUCCESS(status));
+    if(eyear == eraStart[0]) {
         // Yes, we're in the first year of this era.
-        return kEraInfo[era].month-1;
+        return eraStart[1]  // month
+                -1;         // return 0-based month
     }
 
     return month;
@@ -346,9 +155,13 @@ int32_t JapaneseCalendar::getDefaultDayInMonth(int32_t eyear, int32_t month)
     int32_t era = internalGetEra();
     int32_t day = 1;
 
-    if(eyear == kEraInfo[era].year) {
-        if(month == (kEraInfo[era].month-1)) {
-            return kEraInfo[era].day;
+    int32_t eraStart[3] = { 0,0,0 };
+    UErrorCode status = U_ZERO_ERROR;
+    gJapaneseEraRules->getStartDate(era, eraStart, status);
+    U_ASSERT(U_SUCCESS(status));
+    if(eyear == eraStart[0]) {
+        if(month == eraStart[1] - 1) {
+            return eraStart[2];
         }
     }
 
@@ -358,7 +171,7 @@ int32_t JapaneseCalendar::getDefaultDayInMonth(int32_t eyear, int32_t month)
 
 int32_t JapaneseCalendar::internalGetEra() const
 {
-    return internalGet(UCAL_ERA, kCurrentEra);
+    return internalGet(UCAL_ERA, gCurrentEra);
 }
 
 int32_t JapaneseCalendar::handleGetExtendedYear()
@@ -369,12 +182,18 @@ int32_t JapaneseCalendar::handleGetExtendedYear()
 
     if (newerField(UCAL_EXTENDED_YEAR, UCAL_YEAR) == UCAL_EXTENDED_YEAR &&
         newerField(UCAL_EXTENDED_YEAR, UCAL_ERA) == UCAL_EXTENDED_YEAR) {
-            year = internalGet(UCAL_EXTENDED_YEAR, kGregorianEpoch);
-        } else {
-            // Subtract one because year starts at 1
-            year = internalGet(UCAL_YEAR) + kEraInfo[internalGetEra()].year - 1;
-        }
-        return year;
+        year = internalGet(UCAL_EXTENDED_YEAR, kGregorianEpoch);
+    } else {
+        UErrorCode status = U_ZERO_ERROR;
+        int32_t eraStartYear = gJapaneseEraRules->getStartYear(internalGet(UCAL_ERA, gCurrentEra), status);
+        U_ASSERT(U_SUCCESS(status));
+
+        // extended year is a gregorian year, where 1 = 1AD,  0 = 1BC, -1 = 2BC, etc
+        year = internalGet(UCAL_YEAR, 1)    // pin to minimum of year 1 (first year)
+            + eraStartYear                  // add gregorian starting year
+            - 1;                            // Subtract one because year starts at 1
+    }
+    return year;
 }
 
 
@@ -383,79 +202,10 @@ void JapaneseCalendar::handleComputeFields(int32_t julianDay, UErrorCode& status
     //Calendar::timeToFields(theTime, quick, status);
     GregorianCalendar::handleComputeFields(julianDay, status);
     int32_t year = internalGet(UCAL_EXTENDED_YEAR); // Gregorian year
+    int32_t eraIdx = gJapaneseEraRules->getEraIndex(year, internalGet(UCAL_MONTH) + 1, internalGet(UCAL_DAY_OF_MONTH), status);
 
-    int32_t low = 0;
-
-    // Short circuit for recent years.  Most modern computations will
-    // occur in the current era and won't require the binary search.
-    // Note that if the year is == the current era year, then we use
-    // the binary search to handle the month/dom comparison.
-#ifdef U_DEBUG_JCAL
-    fprintf(stderr, "==  %d \n", year);
-#endif
-
-    if (year > kEraInfo[kCurrentEra].year) {
-        low = kCurrentEra;
-#ifdef U_DEBUG_JCAL
-        fprintf(stderr, " low=%d (special)\n", low);
-#endif
-    } else {
-        // Binary search
-        int32_t high = kEraCount;
-
-#ifdef U_DEBUG_JCAL
-        fprintf(stderr, " high=%d\n", high);
-#endif
-        while (low < high - 1) {
-            int32_t i = (low + high) / 2;
-            int32_t diff = year - kEraInfo[i].year;
-
-#ifdef U_DEBUG_JCAL
-            fprintf(stderr, "  d=%d   low=%d, high=%d. Considering %d:M%d D%d Y%d. { we are ?:M%d D%d Y%d }\n",
-                diff,low, high, i, kEraInfo[i].month-1, kEraInfo[i].day,  kEraInfo[i].year, internalGet(UCAL_MONTH), internalGet(UCAL_DATE),year);
-#endif
-
-            // If years are the same, then compare the months, and if those
-            // are the same, compare days of month.  In the ERAS array
-            // months are 1-based for easier maintenance.
-            if (diff == 0) {
-                diff = internalGet(UCAL_MONTH) - (kEraInfo[i].month - 1);
-#ifdef U_DEBUG_JCAL
-                fprintf(stderr, "diff now %d (M)  = %d - %d - 1\n", diff, internalGet(UCAL_MONTH), kEraInfo[i].month);
-#endif
-                if (diff == 0) {
-                    diff = internalGet(UCAL_DATE) - kEraInfo[i].day;
-#ifdef U_DEBUG_JCAL
-                    fprintf(stderr, "diff now %d (D)\n", diff);
-#endif
-                }
-            }
-            if (diff >= 0) {
-                low = i;
-            } else {
-                high = i;
-            }
-#ifdef U_DEBUG_JCAL
-            fprintf(stderr, ". low=%d, high=%d, i=%d, diff=%d.. %d\n", low, high, i, diff, year);
-#endif
-
-        }
-    }
-
-#ifdef U_DEBUG_JCAL
-    fprintf(stderr, "  low[era]=%d,.. %d\n", low, year);
-#endif
-    // Now we've found the last era that starts before this date, so
-    // adjust the year to count from the start of that era.  Note that
-    // all dates before the first era will fall into the first era by
-    // the algorithm.
-
-    internalSet(UCAL_ERA, low);
-    internalSet(UCAL_YEAR, year - kEraInfo[low].year + 1);
-#ifdef U_DEBUG_JCAL
-    fprintf(stderr, "  Set ERA=%d, year=%d\n", low, year-kEraInfo[low].year+1);
-#endif
-
+    internalSet(UCAL_ERA, eraIdx);
+    internalSet(UCAL_YEAR, year - gJapaneseEraRules->getStartYear(eraIdx, status) + 1);
 }
 
 /*
@@ -483,7 +233,7 @@ int32_t JapaneseCalendar::handleGetLimit(UCalendarDateFields field, ELimitType l
         if (limitType == UCAL_LIMIT_MINIMUM || limitType == UCAL_LIMIT_GREATEST_MINIMUM) {
             return 0;
         }
-        return kCurrentEra;
+        return gCurrentEra;
     case UCAL_YEAR:
         {
             switch (limitType) {
@@ -494,7 +244,12 @@ int32_t JapaneseCalendar::handleGetLimit(UCalendarDateFields field, ELimitType l
                 return 1;
             case  UCAL_LIMIT_COUNT: //added to avoid warning
             case UCAL_LIMIT_MAXIMUM:
-                return GregorianCalendar::handleGetLimit(UCAL_YEAR, UCAL_LIMIT_MAXIMUM) - kEraInfo[kCurrentEra].year;
+            {
+                UErrorCode status = U_ZERO_ERROR;
+                int32_t eraStartYear = gJapaneseEraRules->getStartYear(gCurrentEra, status);
+                U_ASSERT(U_SUCCESS(status));
+                return GregorianCalendar::handleGetLimit(UCAL_YEAR, UCAL_LIMIT_MAXIMUM) - eraStartYear;
+            }
             default:
                 return 1;    // Error condition, invalid limitType
             }
@@ -510,15 +265,18 @@ int32_t JapaneseCalendar::getActualMaximum(UCalendarDateFields field, UErrorCode
         if (U_FAILURE(status)) {
             return 0; // error case... any value
         }
-        if (era == kCurrentEra) {
+        if (era == gCurrentEra) {
             // TODO: Investigate what value should be used here - revisit after 4.0.
             return handleGetLimit(UCAL_YEAR, UCAL_LIMIT_MAXIMUM);
         } else {
-            int32_t nextEraYear = kEraInfo[era + 1].year;
-            int32_t nextEraMonth = kEraInfo[era + 1].month;
-            int32_t nextEraDate = kEraInfo[era + 1].day;
-
-            int32_t maxYear = nextEraYear - kEraInfo[era].year + 1; // 1-base
+            int32_t nextEraStart[3] = { 0,0,0 };
+            gJapaneseEraRules->getStartDate(era + 1, nextEraStart, status);
+            int32_t nextEraYear = nextEraStart[0];
+            int32_t nextEraMonth = nextEraStart[1]; // 1-base
+            int32_t nextEraDate = nextEraStart[2];
+
+            int32_t eraStartYear = gJapaneseEraRules->getStartYear(era, status);
+            int32_t maxYear = nextEraYear - eraStartYear + 1;   // 1-base
             if (nextEraMonth == 1 && nextEraDate == 1) {
                 // Subtract 1, because the next era starts at Jan 1
                 maxYear--;
index f05b2ac9b779eb0caaef19bce84380ba9e54de74..7a6d13228b1e95849f0431dd742c9c57dfe7907f 100644 (file)
@@ -49,10 +49,18 @@ U_NAMESPACE_BEGIN
  * July 30, 1912 (Taisho), December 25, 1926 (Showa), and January 7, 1989 (Heisei).  Constants
  * for these eras, suitable for use in the <code>UCAL_ERA</code> field, are provided
  * in this class.  Note that the <em>number</em> used for each era is more or
- * less arbitrary.  Currently, the era starting in 1053 AD is era #0; however this
- * may change in the future as we add more historical data.  Use the predefined
- * constants rather than using actual, absolute numbers.
+ * less arbitrary.  Currently, the era starting in 645 AD is era #0; however this
+ * may change in the future.  Use the predefined constants rather than using actual,
+ * absolute numbers.
  * <p>
+ * Since ICU4C 63, start date of each era is imported from CLDR. CLDR era data
+ * may contain tentative era in near future with placeholder names. By default,
+ * such era data is not enabled. ICU4C users who want to test the behavior of
+ * the future era can enable this one of following settings (in the priority
+ * order):
+ * <ol>
+ * <li>Environment variable <code>ICU_ENABLE_TENTATIVE_ERA=true</code>.</li>
+ * </nl>
  * @internal
  */
 class JapaneseCalendar : public GregorianCalendar {
diff --git a/source/i18n/listformatter.cpp b/source/i18n/listformatter.cpp
new file mode 100644 (file)
index 0000000..3b49c05
--- /dev/null
@@ -0,0 +1,525 @@
+// © 2016 and later: Unicode, Inc. and others.
+// License & terms of use: http://www.unicode.org/copyright.html
+/*
+*******************************************************************************
+*
+*   Copyright (C) 2013-2016, International Business Machines
+*   Corporation and others.  All Rights Reserved.
+*
+*******************************************************************************
+*   file name:  listformatter.cpp
+*   encoding:   UTF-8
+*   tab size:   8 (not used)
+*   indentation:4
+*
+*   created on: 2012aug27
+*   created by: Umesh P. Nair
+*/
+
+#include "cmemory.h"
+#include "unicode/fpositer.h"  // FieldPositionIterator
+#include "unicode/listformatter.h"
+#include "unicode/simpleformatter.h"
+#include "unicode/ulistformatter.h"
+#include "fphdlimp.h"
+#include "mutex.h"
+#include "hash.h"
+#include "cstring.h"
+#include "uarrsort.h"
+#include "ulocimp.h"
+#include "charstr.h"
+#include "ucln_in.h"
+#include "uresimp.h"
+#include "resource.h"
+
+U_NAMESPACE_BEGIN
+
+struct ListFormatInternal : public UMemory {
+    SimpleFormatter twoPattern;
+    SimpleFormatter startPattern;
+    SimpleFormatter middlePattern;
+    SimpleFormatter endPattern;
+
+ListFormatInternal(
+        const UnicodeString& two,
+        const UnicodeString& start,
+        const UnicodeString& middle,
+        const UnicodeString& end,
+        UErrorCode &errorCode) :
+        twoPattern(two, 2, 2, errorCode),
+        startPattern(start, 2, 2, errorCode),
+        middlePattern(middle, 2, 2, errorCode),
+        endPattern(end, 2, 2, errorCode) {}
+
+ListFormatInternal(const ListFormatData &data, UErrorCode &errorCode) :
+        twoPattern(data.twoPattern, errorCode),
+        startPattern(data.startPattern, errorCode),
+        middlePattern(data.middlePattern, errorCode),
+        endPattern(data.endPattern, errorCode) { }
+
+ListFormatInternal(const ListFormatInternal &other) :
+    twoPattern(other.twoPattern),
+    startPattern(other.startPattern),
+    middlePattern(other.middlePattern),
+    endPattern(other.endPattern) { }
+};
+
+
+
+static Hashtable* listPatternHash = nullptr;
+static UMutex listFormatterMutex = U_MUTEX_INITIALIZER;
+static const char STANDARD_STYLE[] = "standard";
+
+U_CDECL_BEGIN
+static UBool U_CALLCONV uprv_listformatter_cleanup() {
+    delete listPatternHash;
+    listPatternHash = nullptr;
+    return TRUE;
+}
+
+static void U_CALLCONV
+uprv_deleteListFormatInternal(void *obj) {
+    delete static_cast<ListFormatInternal *>(obj);
+}
+
+U_CDECL_END
+
+ListFormatter::ListFormatter(const ListFormatter& other) :
+        owned(other.owned), data(other.data) {
+    if (other.owned != nullptr) {
+        owned = new ListFormatInternal(*other.owned);
+        data = owned;
+    }
+}
+
+ListFormatter& ListFormatter::operator=(const ListFormatter& other) {
+    if (this == &other) {
+        return *this;
+    }
+    delete owned;
+    if (other.owned) {
+        owned = new ListFormatInternal(*other.owned);
+        data = owned;
+    } else {
+        owned = nullptr;
+        data = other.data;
+    }
+    return *this;
+}
+
+void ListFormatter::initializeHash(UErrorCode& errorCode) {
+    if (U_FAILURE(errorCode)) {
+        return;
+    }
+
+    listPatternHash = new Hashtable();
+    if (listPatternHash == nullptr) {
+        errorCode = U_MEMORY_ALLOCATION_ERROR;
+        return;
+    }
+
+    listPatternHash->setValueDeleter(uprv_deleteListFormatInternal);
+    ucln_i18n_registerCleanup(UCLN_I18N_LIST_FORMATTER, uprv_listformatter_cleanup);
+
+}
+
+const ListFormatInternal* ListFormatter::getListFormatInternal(
+        const Locale& locale, const char *style, UErrorCode& errorCode) {
+    if (U_FAILURE(errorCode)) {
+        return nullptr;
+    }
+    CharString keyBuffer(locale.getName(), errorCode);
+    keyBuffer.append(':', errorCode).append(style, errorCode);
+    UnicodeString key(keyBuffer.data(), -1, US_INV);
+    ListFormatInternal* result = nullptr;
+    {
+        Mutex m(&listFormatterMutex);
+        if (listPatternHash == nullptr) {
+            initializeHash(errorCode);
+            if (U_FAILURE(errorCode)) {
+                return nullptr;
+            }
+        }
+        result = static_cast<ListFormatInternal*>(listPatternHash->get(key));
+    }
+    if (result != nullptr) {
+        return result;
+    }
+    result = loadListFormatInternal(locale, style, errorCode);
+    if (U_FAILURE(errorCode)) {
+        return nullptr;
+    }
+
+    {
+        Mutex m(&listFormatterMutex);
+        ListFormatInternal* temp = static_cast<ListFormatInternal*>(listPatternHash->get(key));
+        if (temp != nullptr) {
+            delete result;
+            result = temp;
+        } else {
+            listPatternHash->put(key, result, errorCode);
+            if (U_FAILURE(errorCode)) {
+                return nullptr;
+            }
+        }
+    }
+    return result;
+}
+
+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(nullptr, locale.getName(), &errorCode);
+    rb = ures_getByKeyWithFallback(rb, "listPattern", rb, &errorCode);
+    if (U_FAILURE(errorCode)) {
+        ures_close(rb);
+        return nullptr;
+    }
+    ListFormatter::ListPatternsSink sink;
+    char currentStyle[kStyleLenMax+1];
+    uprv_strncpy(currentStyle, style, kStyleLenMax);
+    currentStyle[kStyleLenMax] = 0;
+
+    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);
+    }
+    ures_close(rb);
+    if (U_FAILURE(errorCode)) {
+        return nullptr;
+    }
+    if (sink.two.isEmpty() || sink.start.isEmpty() || sink.middle.isEmpty() || sink.end.isEmpty()) {
+        errorCode = U_MISSING_RESOURCE_ERROR;
+        return nullptr;
+    }
+    ListFormatInternal* result = new ListFormatInternal(sink.two, sink.start, sink.middle, sink.end, errorCode);
+    if (result == nullptr) {
+        errorCode = U_MEMORY_ALLOCATION_ERROR;
+        return nullptr;
+    }
+    if (U_FAILURE(errorCode)) {
+        delete result;
+        return nullptr;
+    }
+    return result;
+}
+
+ListFormatter* ListFormatter::createInstance(UErrorCode& errorCode) {
+    Locale locale;  // The default locale.
+    return createInstance(locale, errorCode);
+}
+
+ListFormatter* ListFormatter::createInstance(const Locale& locale, UErrorCode& errorCode) {
+    return createInstance(locale, STANDARD_STYLE, errorCode);
+}
+
+ListFormatter* ListFormatter::createInstance(const Locale& locale, const char *style, UErrorCode& errorCode) {
+    const ListFormatInternal* listFormatInternal = getListFormatInternal(locale, style, errorCode);
+    if (U_FAILURE(errorCode)) {
+        return nullptr;
+    }
+    ListFormatter* p = new ListFormatter(listFormatInternal);
+    if (p == nullptr) {
+        errorCode = U_MEMORY_ALLOCATION_ERROR;
+        return nullptr;
+    }
+    return p;
+}
+
+ListFormatter::ListFormatter(const ListFormatData& listFormatData, UErrorCode &errorCode) {
+    owned = new ListFormatInternal(listFormatData, errorCode);
+    data = owned;
+}
+
+ListFormatter::ListFormatter(const ListFormatInternal* listFormatterInternal) : owned(nullptr), data(listFormatterInternal) {
+}
+
+ListFormatter::~ListFormatter() {
+    delete owned;
+}
+
+/**
+ * Joins first and second using the pattern pat.
+ * On entry offset is an offset into first or -1 if offset unspecified.
+ * On exit offset is offset of second in result if recordOffset was set
+ * Otherwise if it was >=0 it is set to point into result where it used
+ * to point into first. On exit, result is the join of first and second
+ * according to pat. Any previous value of result gets replaced.
+ */
+static void joinStringsAndReplace(
+        const SimpleFormatter& pat,
+        const UnicodeString& first,
+        const UnicodeString& second,
+        UnicodeString &result,
+        UBool recordOffset,
+        int32_t &offset,
+        int32_t *offsetFirst,
+        int32_t *offsetSecond,
+        UErrorCode& errorCode) {
+    if (U_FAILURE(errorCode)) {
+        return;
+    }
+    const UnicodeString *params[2] = {&first, &second};
+    int32_t offsets[2];
+    pat.formatAndReplace(
+            params,
+            UPRV_LENGTHOF(params),
+            result,
+            offsets,
+            UPRV_LENGTHOF(offsets),
+            errorCode);
+    if (U_FAILURE(errorCode)) {
+        return;
+    }
+    if (offsets[0] == -1 || offsets[1] == -1) {
+        errorCode = U_INVALID_FORMAT_ERROR;
+        return;
+    }
+    if (recordOffset) {
+        offset = offsets[1];
+    } else if (offset >= 0) {
+        offset += offsets[0];
+    }
+    if (offsetFirst != nullptr) *offsetFirst = offsets[0];
+    if (offsetSecond != nullptr) *offsetSecond = offsets[1];
+}
+
+UnicodeString& ListFormatter::format(
+        const UnicodeString items[],
+        int32_t nItems,
+        UnicodeString& appendTo,
+        UErrorCode& errorCode) const {
+    int32_t offset;
+    return format(items, nItems, appendTo, -1, offset, errorCode);
+}
+
+#if !UCONFIG_NO_FORMATTING
+UnicodeString& ListFormatter::format(
+        const UnicodeString items[],
+        int32_t nItems,
+        UnicodeString & appendTo,
+        FieldPositionIterator* posIter,
+        UErrorCode& errorCode) const {
+  int32_t offset;
+  FieldPositionIteratorHandler handler(posIter, errorCode);
+  return format_(items, nItems, appendTo, -1, offset, &handler, errorCode);
+};
+#endif
+
+UnicodeString& ListFormatter::format(
+        const UnicodeString items[],
+        int32_t nItems,
+        UnicodeString& appendTo,
+        int32_t index,
+        int32_t &offset,
+        UErrorCode& errorCode) const {
+  return format_(items, nItems, appendTo, index, offset, nullptr, errorCode);
+}
+
+UnicodeString& ListFormatter::format_(
+        const UnicodeString items[],
+        int32_t nItems,
+        UnicodeString& appendTo,
+        int32_t index,
+        int32_t &offset,
+        FieldPositionHandler* handler,
+        UErrorCode& errorCode) const {
+#if !UCONFIG_NO_FORMATTING
+    offset = -1;
+    if (U_FAILURE(errorCode)) {
+        return appendTo;
+    }
+    if (data == nullptr) {
+        errorCode = U_INVALID_STATE_ERROR;
+        return appendTo;
+    }
+
+    if (nItems <= 0) {
+        return appendTo;
+    }
+    if (nItems == 1) {
+        if (index == 0) {
+            offset = appendTo.length();
+        }
+        if (handler != nullptr) {
+            handler->addAttribute(ULISTFMT_ELEMENT_FIELD,
+                                  appendTo.length(),
+                                  appendTo.length() + items[0].length());
+        }
+        appendTo.append(items[0]);
+        return appendTo;
+    }
+    UnicodeString result(items[0]);
+    if (index == 0) {
+        offset = 0;
+    }
+    int32_t offsetFirst;
+    int32_t offsetSecond;
+    int32_t prefixLength = 0;
+    // for n items, there are 2 * (n + 1) boundary including 0 and the upper
+    // edge.
+    MaybeStackArray<int32_t, 10> offsets((handler != nullptr) ? 2 * (nItems + 1): 0);
+    joinStringsAndReplace(
+            nItems == 2 ? data->twoPattern : data->startPattern,
+            result,
+            items[1],
+            result,
+            index == 1,
+            offset,
+            &offsetFirst,
+            &offsetSecond,
+            errorCode);
+    if (handler != nullptr) {
+        offsets[0] = 0;
+        prefixLength += offsetFirst;
+        offsets[1] = offsetSecond - prefixLength;
+    }
+    if (nItems > 2) {
+        for (int32_t i = 2; i < nItems - 1; ++i) {
+             joinStringsAndReplace(
+                     data->middlePattern,
+                     result,
+                     items[i],
+                     result,
+                     index == i,
+                     offset,
+                     &offsetFirst,
+                     &offsetSecond,
+                     errorCode);
+            if (handler != nullptr) {
+                prefixLength += offsetFirst;
+                offsets[i] = offsetSecond - prefixLength;
+            }
+        }
+        joinStringsAndReplace(
+                data->endPattern,
+                result,
+                items[nItems - 1],
+                result,
+                index == nItems - 1,
+                offset,
+                &offsetFirst,
+                &offsetSecond,
+                errorCode);
+        if (handler != nullptr) {
+            prefixLength += offsetFirst;
+            offsets[nItems - 1] = offsetSecond - prefixLength;
+        }
+    }
+    if (handler != nullptr) {
+        // If there are already some data in appendTo, we need to adjust the index
+        // by shifting that lenght while insert into handler.
+        int32_t shift = appendTo.length() + prefixLength;
+        // Output the ULISTFMT_ELEMENT_FIELD in the order of the input elements
+        for (int32_t i = 0; i < nItems; ++i) {
+            offsets[i + nItems] = offsets[i] + items[i].length() + shift;
+            offsets[i] += shift;
+            handler->addAttribute(
+                ULISTFMT_ELEMENT_FIELD,  // id
+                offsets[i],  // index
+                offsets[i + nItems]);  // limit
+        }
+        // The locale pattern may reorder the items (such as in ur-IN locale),
+        // so we cannot assume the array is in accendning order.
+        // To handle the edging case, just insert the two ends into the array
+        // and sort. Then we output ULISTFMT_LITERAL_FIELD if the indecies
+        // between the even and odd position are not the same in the sorted array.
+        offsets[2 * nItems] = shift - prefixLength;
+        offsets[2 * nItems + 1] = result.length() + shift - prefixLength;
+        uprv_sortArray(offsets.getAlias(), 2 * (nItems + 1), sizeof(int32_t),
+               uprv_int32Comparator, nullptr,
+               false, &errorCode);
+        for (int32_t i = 0; i <= nItems; ++i) {
+          if (offsets[i * 2] != offsets[i * 2 + 1]) {
+            handler->addAttribute(
+                ULISTFMT_LITERAL_FIELD,  // id
+                offsets[i * 2],  // index
+                offsets[i * 2 + 1]);  // limit
+          }
+        }
+    }
+    if (U_SUCCESS(errorCode)) {
+        if (offset >= 0) {
+            offset += appendTo.length();
+        }
+        appendTo += result;
+    }
+#endif  
+    return appendTo;
+}
+
+U_NAMESPACE_END
index 5970262de1a51815a47b3bbea11d7ae28ef501fd..9830dc889e1472dea521cc9ad7725a3b7bd5f21d 100644 (file)
@@ -47,7 +47,7 @@ U_NAMESPACE_BEGIN
 
 static constexpr int32_t PER_UNIT_INDEX = StandardPlural::COUNT;
 static constexpr int32_t PATTERN_COUNT = PER_UNIT_INDEX + 1;
-static constexpr int32_t MEAS_UNIT_COUNT = 138;  // see assertion in MeasureFormatCacheData constructor
+static constexpr int32_t MEAS_UNIT_COUNT = 142;  // see assertion in MeasureFormatCacheData constructor
 static constexpr int32_t WIDTH_INDEX_COUNT = UMEASFMT_WIDTH_NARROW + 1;
 
 UOBJECT_DEFINE_RTTI_IMPLEMENTATION(MeasureFormat)
@@ -618,7 +618,7 @@ MeasureFormat::MeasureFormat(
         : cache(NULL),
           numberFormat(NULL),
           pluralRules(NULL),
-          width(w),
+          fWidth(w),
           listFormatter(NULL) {
     initMeasureFormat(locale, w, NULL, status);
 }
@@ -631,7 +631,7 @@ MeasureFormat::MeasureFormat(
         : cache(NULL),
           numberFormat(NULL),
           pluralRules(NULL),
-          width(w),
+          fWidth(w),
           listFormatter(NULL) {
     initMeasureFormat(locale, w, nfToAdopt, status);
 }
@@ -641,7 +641,7 @@ MeasureFormat::MeasureFormat(const MeasureFormat &other) :
         cache(other.cache),
         numberFormat(other.numberFormat),
         pluralRules(other.pluralRules),
-        width(other.width),
+        fWidth(other.fWidth),
         listFormatter(NULL) {
     cache->addRef();
     numberFormat->addRef();
@@ -659,7 +659,7 @@ MeasureFormat &MeasureFormat::operator=(const MeasureFormat &other) {
     SharedObject::copyPtr(other.cache, cache);
     SharedObject::copyPtr(other.numberFormat, numberFormat);
     SharedObject::copyPtr(other.pluralRules, pluralRules);
-    width = other.width;
+    fWidth = other.fWidth;
     delete listFormatter;
     if (other.listFormatter != NULL) {
         listFormatter = new ListFormatter(*other.listFormatter);
@@ -673,7 +673,7 @@ MeasureFormat::MeasureFormat() :
         cache(NULL),
         numberFormat(NULL),
         pluralRules(NULL),
-        width(UMEASFMT_WIDTH_SHORT),
+        fWidth(UMEASFMT_WIDTH_SHORT),
         listFormatter(NULL) {
 }
 
@@ -703,7 +703,7 @@ UBool MeasureFormat::operator==(const Format &other) const {
     // don't have to check it here.
 
     // differing widths aren't equivalent
-    if (width != rhs.width) {
+    if (fWidth != rhs.fWidth) {
         return FALSE;
     }
     // Width the same check locales.
@@ -805,7 +805,7 @@ UnicodeString &MeasureFormat::formatMeasures(
     if (measureCount == 1) {
         return formatMeasure(measures[0], **numberFormat, appendTo, pos, status);
     }
-    if (width == UMEASFMT_WIDTH_NUMERIC) {
+    if (fWidth == UMEASFMT_WIDTH_NUMERIC) {
         Formattable hms[3];
         int32_t bitMap = toHMS(measures, measureCount, hms, status);
         if (bitMap > 0) {
@@ -839,7 +839,7 @@ UnicodeString &MeasureFormat::formatMeasures(
 }
 
 UnicodeString MeasureFormat::getUnitDisplayName(const MeasureUnit& unit, UErrorCode& /*status*/) const {
-    UMeasureFormatWidth width = getRegularWidth(this->width);
+    UMeasureFormatWidth width = getRegularWidth(fWidth);
     const UChar* const* styleToDnam = cache->dnams[unit.getIndex()];
     const UChar* dnam = styleToDnam[width];
     if (dnam == NULL) {
@@ -895,11 +895,11 @@ void MeasureFormat::initMeasureFormat(
             return;
         }
     }
-    width = w;
+    fWidth = w;
     delete listFormatter;
     listFormatter = ListFormatter::createInstance(
             locale,
-            listStyles[getRegularWidth(width)],
+            listStyles[getRegularWidth(fWidth)],
             status);
 }
 
@@ -922,7 +922,7 @@ UBool MeasureFormat::setMeasureFormatLocale(const Locale &locale, UErrorCode &st
     if (U_FAILURE(status) || locale == getLocale(status)) {
         return FALSE;
     }
-    initMeasureFormat(locale, width, NULL, status);
+    initMeasureFormat(locale, fWidth, NULL, status);
     return U_SUCCESS(status);
 } 
 
@@ -956,7 +956,7 @@ UnicodeString &MeasureFormat::formatMeasure(
     if (isCurrency(amtUnit)) {
         UChar isoCode[4];
         u_charsToUChars(amtUnit.getSubtype(), isoCode, 4);
-        return cache->getCurrencyFormat(width)->format(
+        return cache->getCurrencyFormat(fWidth)->format(
                 new CurrencyAmount(amtNumber, isoCode, status),
                 appendTo,
                 pos,
@@ -965,7 +965,7 @@ UnicodeString &MeasureFormat::formatMeasure(
     UnicodeString formattedNumber;
     StandardPlural::Form pluralForm = QuantityFormatter::selectPlural(
             amtNumber, nf, **pluralRules, formattedNumber, pos, status);
-    const SimpleFormatter *formatter = getPluralFormatter(amtUnit, width, pluralForm, status);
+    const SimpleFormatter *formatter = getPluralFormatter(amtUnit, fWidth, pluralForm, status);
     return QuantityFormatter::format(*formatter, formattedNumber, appendTo, pos, status);
 }
 
@@ -1016,7 +1016,6 @@ UnicodeString &MeasureFormat::formatNumeric(
         return appendTo;
         break;
     }
-    return appendTo;
 }
 
 static void appendRange(
@@ -1173,7 +1172,7 @@ int32_t MeasureFormat::withPerUnitAndAppend(
     if (U_FAILURE(status)) {
         return offset;
     }
-    const SimpleFormatter *perUnitFormatter = getFormatterOrNull(perUnit, width, PER_UNIT_INDEX);
+    const SimpleFormatter *perUnitFormatter = getFormatterOrNull(perUnit, fWidth, PER_UNIT_INDEX);
     if (perUnitFormatter != NULL) {
         const UnicodeString *params[] = {&formatted};
         perUnitFormatter->formatAndAppend(
@@ -1185,9 +1184,9 @@ int32_t MeasureFormat::withPerUnitAndAppend(
                 status);
         return offset;
     }
-    const SimpleFormatter *perFormatter = getPerFormatter(width, status);
+    const SimpleFormatter *perFormatter = getPerFormatter(fWidth, status);
     const SimpleFormatter *pattern =
-            getPluralFormatter(perUnit, width, StandardPlural::ONE, status);
+            getPluralFormatter(perUnit, fWidth, StandardPlural::ONE, status);
     if (U_FAILURE(status)) {
         return offset;
     }
index 211d9591e03de2a83ef925d04f3a9c64c3fe5901..d68d504b8093cb3890ef6962750be024db542d22 100644 (file)
@@ -39,23 +39,23 @@ static const int32_t gOffsets[] = {
     2,
     7,
     16,
-    20,
-    24,
-    321,
-    331,
-    342,
-    346,
-    352,
-    356,
-    376,
-    377,
-    388,
-    391,
-    397,
+    22,
+    26,
+    325,
+    336,
+    347,
+    351,
+    357,
+    361,
+    381,
+    382,
+    393,
+    396,
     402,
-    406,
-    410,
-    435
+    408,
+    412,
+    416,
+    441
 };
 
 static const int32_t gIndexes[] = {
@@ -63,23 +63,23 @@ static const int32_t gIndexes[] = {
     2,
     7,
     16,
-    20,
-    24,
-    24,
-    34,
-    45,
-    49,
-    55,
-    59,
-    79,
-    80,
-    91,
+    22,
+    26,
+    26,
+    37,
+    48,
+    52,
+    58,
+    62,
+    82,
+    83,
     94,
-    100,
-    105,
+    97,
+    103,
     109,
     113,
-    138
+    117,
+    142
 };
 
 // Must be sorted alphabetically.
@@ -128,6 +128,8 @@ static const char * const gSubTypes[] = {
     "milligram-per-deciliter",
     "millimole-per-liter",
     "part-per-million",
+    "percent",
+    "permille",
     "liter-per-100kilometers",
     "liter-per-kilometer",
     "mile-per-gallon",
@@ -388,9 +390,11 @@ static const char * const gSubTypes[] = {
     "UYN",
     "UYP",
     "UYU",
+    "UYW",
     "UZS",
     "VEB",
     "VEF",
+    "VES",
     "VNC",
     "VND",
     "VUV",
@@ -437,6 +441,7 @@ static const char * const gSubTypes[] = {
     "kilobyte",
     "megabit",
     "megabyte",
+    "petabyte",
     "terabit",
     "terabyte",
     "century",
@@ -505,6 +510,7 @@ static const char * const gSubTypes[] = {
     "megawatt",
     "milliwatt",
     "watt",
+    "atmosphere",
     "hectopascal",
     "inch-hg",
     "millibar",
@@ -547,14 +553,14 @@ static const char * const gSubTypes[] = {
 
 // Must be sorted by first value and then second value.
 static int32_t unitPerUnitToSingleUnit[][4] = {
-        {363, 333, 17, 0},
-        {365, 339, 17, 2},
-        {367, 333, 17, 3},
-        {367, 424, 4, 2},
-        {367, 425, 4, 3},
-        {382, 422, 3, 1},
-        {385, 11, 16, 4},
-        {427, 363, 4, 1}
+        {368, 338, 17, 0},
+        {370, 344, 17, 2},
+        {372, 338, 17, 3},
+        {372, 430, 4, 2},
+        {372, 431, 4, 3},
+        {387, 428, 3, 1},
+        {390, 11, 16, 5},
+        {433, 368, 4, 1}
 };
 
 // Shortcuts to the base unit in order to make the default constructor fast
@@ -641,6 +647,14 @@ MeasureUnit *MeasureUnit::createPartPerMillion(UErrorCode &status) {
     return MeasureUnit::create(3, 3, status);
 }
 
+MeasureUnit *MeasureUnit::createPercent(UErrorCode &status) {
+    return MeasureUnit::create(3, 4, status);
+}
+
+MeasureUnit *MeasureUnit::createPermille(UErrorCode &status) {
+    return MeasureUnit::create(3, 5, status);
+}
+
 MeasureUnit *MeasureUnit::createLiterPer100Kilometers(UErrorCode &status) {
     return MeasureUnit::create(4, 0, status);
 }
@@ -689,14 +703,18 @@ MeasureUnit *MeasureUnit::createMegabyte(UErrorCode &status) {
     return MeasureUnit::create(6, 7, status);
 }
 
-MeasureUnit *MeasureUnit::createTerabit(UErrorCode &status) {
+MeasureUnit *MeasureUnit::createPetabyte(UErrorCode &status) {
     return MeasureUnit::create(6, 8, status);
 }
 
-MeasureUnit *MeasureUnit::createTerabyte(UErrorCode &status) {
+MeasureUnit *MeasureUnit::createTerabit(UErrorCode &status) {
     return MeasureUnit::create(6, 9, status);
 }
 
+MeasureUnit *MeasureUnit::createTerabyte(UErrorCode &status) {
+    return MeasureUnit::create(6, 10, status);
+}
+
 MeasureUnit *MeasureUnit::createCentury(UErrorCode &status) {
     return MeasureUnit::create(7, 0, status);
 }
@@ -949,26 +967,30 @@ MeasureUnit *MeasureUnit::createWatt(UErrorCode &status) {
     return MeasureUnit::create(15, 5, status);
 }
 
-MeasureUnit *MeasureUnit::createHectopascal(UErrorCode &status) {
+MeasureUnit *MeasureUnit::createAtmosphere(UErrorCode &status) {
     return MeasureUnit::create(16, 0, status);
 }
 
-MeasureUnit *MeasureUnit::createInchHg(UErrorCode &status) {
+MeasureUnit *MeasureUnit::createHectopascal(UErrorCode &status) {
     return MeasureUnit::create(16, 1, status);
 }
 
-MeasureUnit *MeasureUnit::createMillibar(UErrorCode &status) {
+MeasureUnit *MeasureUnit::createInchHg(UErrorCode &status) {
     return MeasureUnit::create(16, 2, status);
 }
 
-MeasureUnit *MeasureUnit::createMillimeterOfMercury(UErrorCode &status) {
+MeasureUnit *MeasureUnit::createMillibar(UErrorCode &status) {
     return MeasureUnit::create(16, 3, status);
 }
 
-MeasureUnit *MeasureUnit::createPoundPerSquareInch(UErrorCode &status) {
+MeasureUnit *MeasureUnit::createMillimeterOfMercury(UErrorCode &status) {
     return MeasureUnit::create(16, 4, status);
 }
 
+MeasureUnit *MeasureUnit::createPoundPerSquareInch(UErrorCode &status) {
+    return MeasureUnit::create(16, 5, status);
+}
+
 MeasureUnit *MeasureUnit::createKilometerPerHour(UErrorCode &status) {
     return MeasureUnit::create(17, 0, status);
 }
index 8b3807e67148a462f57dd70fa011e5e01c0649d4..8ff86a2cacf018116a8683ca264b4de9b2a76899 100644 (file)
@@ -1078,7 +1078,7 @@ void MessageFormat::format(int32_t msgStart, const void *plNumber,
                 // that formats the number without subtracting the offset.
                 appendTo.formatAndAppend(pluralNumber.formatter, *arg, success);
             }
-        } else if ((formatter = getCachedFormatter(i -2))) {
+        } else if ((formatter = getCachedFormatter(i -2)) != 0) {
             // Handles all ArgType.SIMPLE, and formatters from setFormat() and its siblings.
             if (dynamic_cast<const ChoiceFormat*>(formatter) ||
                 dynamic_cast<const PluralFormat*>(formatter) ||
index c75ecf067052ec79abcfbb1ef649e66f5753d8b3..3ad0291649e66c385b2594ed86dc00b97fd5431e 100644 (file)
@@ -39,14 +39,14 @@ NFRule::NFRule(const RuleBasedNumberFormat* _rbnf, const UnicodeString &_ruleTex
   , radix(10)
   , exponent(0)
   , decimalPoint(0)
-  , ruleText(_ruleText)
+  , fRuleText(_ruleText)
   , sub1(NULL)
   , sub2(NULL)
   , formatter(_rbnf)
   , rulePatternFormat(NULL)
 {
-    if (!ruleText.isEmpty()) {
-        parseRuleDescriptor(ruleText, status);
+    if (!fRuleText.isEmpty()) {
+        parseRuleDescriptor(fRuleText, status);
     }
 }
 
@@ -122,7 +122,7 @@ NFRule::makeRules(UnicodeString& description,
         status = U_MEMORY_ALLOCATION_ERROR;
         return;
     }
-    description = rule1->ruleText;
+    description = rule1->fRuleText;
 
     // check the description to see whether there's text enclosed
     // in brackets
@@ -314,7 +314,7 @@ NFRule::parseRuleDescriptor(UnicodeString& description, UErrorCode& status)
             if (c == gSlash) {
                 val = 0;
                 ++p;
-                int64_t ll_10 = 10;
+                ll_10 = 10;
                 while (p < descriptorLength) {
                     c = descriptor.charAt(p);
                     if (c >= gZero && c <= gNine) {
@@ -418,7 +418,7 @@ NFRule::extractSubstitutions(const NFRuleSet* ruleSet,
     if (U_FAILURE(status)) {
         return;
     }
-    this->ruleText = ruleText;
+    fRuleText = ruleText;
     sub1 = extractSubstitution(ruleSet, predecessor, status);
     if (sub1 == NULL) {
         // Small optimization. There is no need to create a redundant NullSubstitution.
@@ -427,15 +427,15 @@ NFRule::extractSubstitutions(const NFRuleSet* ruleSet,
     else {
         sub2 = extractSubstitution(ruleSet, predecessor, status);
     }
-    int32_t pluralRuleStart = this->ruleText.indexOf(gDollarOpenParenthesis, -1, 0);
-    int32_t pluralRuleEnd = (pluralRuleStart >= 0 ? this->ruleText.indexOf(gClosedParenthesisDollar, -1, pluralRuleStart) : -1);
+    int32_t pluralRuleStart = fRuleText.indexOf(gDollarOpenParenthesis, -1, 0);
+    int32_t pluralRuleEnd = (pluralRuleStart >= 0 ? fRuleText.indexOf(gClosedParenthesisDollar, -1, pluralRuleStart) : -1);
     if (pluralRuleEnd >= 0) {
-        int32_t endType = this->ruleText.indexOf(gComma, pluralRuleStart);
+        int32_t endType = fRuleText.indexOf(gComma, pluralRuleStart);
         if (endType < 0) {
             status = U_PARSE_ERROR;
             return;
         }
-        UnicodeString type(this->ruleText.tempSubString(pluralRuleStart + 2, endType - pluralRuleStart - 2));
+        UnicodeString type(fRuleText.tempSubString(pluralRuleStart + 2, endType - pluralRuleStart - 2));
         UPluralType pluralType;
         if (type.startsWith(UNICODE_STRING_SIMPLE("cardinal"))) {
             pluralType = UPLURAL_TYPE_CARDINAL;
@@ -448,7 +448,7 @@ NFRule::extractSubstitutions(const NFRuleSet* ruleSet,
             return;
         }
         rulePatternFormat = formatter->createPluralFormat(pluralType,
-                this->ruleText.tempSubString(endType + 1, pluralRuleEnd - endType - 1), status);
+                fRuleText.tempSubString(endType + 1, pluralRuleEnd - endType - 1), status);
     }
 }
 
@@ -484,16 +484,16 @@ NFRule::extractSubstitution(const NFRuleSet* ruleSet,
 
     // special-case the ">>>" token, since searching for the > at the
     // end will actually find the > in the middle
-    if (ruleText.indexOf(gGreaterGreaterGreater, 3, 0) == subStart) {
+    if (fRuleText.indexOf(gGreaterGreaterGreater, 3, 0) == subStart) {
         subEnd = subStart + 2;
 
         // otherwise the substitution token ends with the same character
         // it began with
     } else {
-        UChar c = ruleText.charAt(subStart);
-        subEnd = ruleText.indexOf(c, subStart + 1);
+        UChar c = fRuleText.charAt(subStart);
+        subEnd = fRuleText.indexOf(c, subStart + 1);
         // special case for '<%foo<<'
-        if (c == gLessThan && subEnd != -1 && subEnd < ruleText.length() - 1 && ruleText.charAt(subEnd+1) == c) {
+        if (c == gLessThan && subEnd != -1 && subEnd < fRuleText.length() - 1 && fRuleText.charAt(subEnd+1) == c) {
             // ordinals use "=#,##0==%abbrev=" as their rule.  Notice that the '==' in the middle
             // occurs because of the juxtaposition of two different rules.  The check for '<' is a hack
             // to get around this.  Having the duplicate at the front would cause problems with
@@ -513,12 +513,12 @@ NFRule::extractSubstitution(const NFRuleSet* ruleSet,
     // some text bounded by substitution token characters).  Use
     // makeSubstitution() to create the right kind of substitution
     UnicodeString subToken;
-    subToken.setTo(ruleText, subStart, subEnd + 1 - subStart);
+    subToken.setTo(fRuleText, subStart, subEnd + 1 - subStart);
     result = NFSubstitution::makeSubstitution(subStart, this, predecessor, ruleSet,
         this->formatter, subToken, status);
 
     // remove the substitution from the rule text
-    ruleText.removeBetween(subStart, subEnd+1);
+    fRuleText.removeBetween(subStart, subEnd+1);
 
     return result;
 }
@@ -601,7 +601,7 @@ NFRule::indexOfAnyRulePrefix() const
 {
     int result = -1;
     for (int i = 0; RULE_PREFIXES[i]; i++) {
-        int32_t pos = ruleText.indexOf(*RULE_PREFIXES[i]);
+        int32_t pos = fRuleText.indexOf(*RULE_PREFIXES[i]);
         if (pos != -1 && (result == -1 || pos < result)) {
             result = pos;
         }
@@ -637,7 +637,7 @@ NFRule::operator==(const NFRule& rhs) const
     return baseValue == rhs.baseValue
         && radix == rhs.radix
         && exponent == rhs.exponent
-        && ruleText == rhs.ruleText
+        && fRuleText == rhs.fRuleText
         && util_equalSubstitutions(sub1, rhs.sub1)
         && util_equalSubstitutions(sub2, rhs.sub2);
 }
@@ -690,14 +690,14 @@ NFRule::_appendRuleText(UnicodeString& result) const
     // if the rule text begins with a space, write an apostrophe
     // (whitespace after the rule descriptor is ignored; the
     // apostrophe is used to make the whitespace significant)
-    if (ruleText.charAt(0) == gSpace && (sub1 == NULL || sub1->getPos() != 0)) {
+    if (fRuleText.charAt(0) == gSpace && (sub1 == NULL || sub1->getPos() != 0)) {
         result.append(gTick);
     }
 
     // now, write the rule's rule text, inserting appropriate
     // substitution tokens in the appropriate places
     UnicodeString ruleTextCopy;
-    ruleTextCopy.setTo(ruleText);
+    ruleTextCopy.setTo(fRuleText);
 
     UnicodeString temp;
     if (sub2 != NULL) {
@@ -743,24 +743,24 @@ NFRule::doFormat(int64_t number, UnicodeString& toInsertInto, int32_t pos, int32
     // into the right places in toInsertInto (notice we do the
     // substitutions in reverse order so that the offsets don't get
     // messed up)
-    int32_t pluralRuleStart = ruleText.length();
+    int32_t pluralRuleStart = fRuleText.length();
     int32_t lengthOffset = 0;
     if (!rulePatternFormat) {
-        toInsertInto.insert(pos, ruleText);
+        toInsertInto.insert(pos, fRuleText);
     }
     else {
-        pluralRuleStart = ruleText.indexOf(gDollarOpenParenthesis, -1, 0);
-        int pluralRuleEnd = ruleText.indexOf(gClosedParenthesisDollar, -1, pluralRuleStart);
+        pluralRuleStart = fRuleText.indexOf(gDollarOpenParenthesis, -1, 0);
+        int pluralRuleEnd = fRuleText.indexOf(gClosedParenthesisDollar, -1, pluralRuleStart);
         int initialLength = toInsertInto.length();
-        if (pluralRuleEnd < ruleText.length() - 1) {
-            toInsertInto.insert(pos, ruleText.tempSubString(pluralRuleEnd + 2));
+        if (pluralRuleEnd < fRuleText.length() - 1) {
+            toInsertInto.insert(pos, fRuleText.tempSubString(pluralRuleEnd + 2));
         }
         toInsertInto.insert(pos,
             rulePatternFormat->format((int32_t)(number/util64_pow(radix, exponent)), status));
         if (pluralRuleStart > 0) {
-            toInsertInto.insert(pos, ruleText.tempSubString(0, pluralRuleStart));
+            toInsertInto.insert(pos, fRuleText.tempSubString(0, pluralRuleStart));
         }
-        lengthOffset = ruleText.length() - (toInsertInto.length() - initialLength);
+        lengthOffset = fRuleText.length() - (toInsertInto.length() - initialLength);
     }
 
     if (sub2 != NULL) {
@@ -789,17 +789,17 @@ NFRule::doFormat(double number, UnicodeString& toInsertInto, int32_t pos, int32_
     // [again, we have two copies of this routine that do the same thing
     // so that we don't sacrifice precision in a long by casting it
     // to a double]
-    int32_t pluralRuleStart = ruleText.length();
+    int32_t pluralRuleStart = fRuleText.length();
     int32_t lengthOffset = 0;
     if (!rulePatternFormat) {
-        toInsertInto.insert(pos, ruleText);
+        toInsertInto.insert(pos, fRuleText);
     }
     else {
-        pluralRuleStart = ruleText.indexOf(gDollarOpenParenthesis, -1, 0);
-        int pluralRuleEnd = ruleText.indexOf(gClosedParenthesisDollar, -1, pluralRuleStart);
+        pluralRuleStart = fRuleText.indexOf(gDollarOpenParenthesis, -1, 0);
+        int pluralRuleEnd = fRuleText.indexOf(gClosedParenthesisDollar, -1, pluralRuleStart);
         int initialLength = toInsertInto.length();
-        if (pluralRuleEnd < ruleText.length() - 1) {
-            toInsertInto.insert(pos, ruleText.tempSubString(pluralRuleEnd + 2));
+        if (pluralRuleEnd < fRuleText.length() - 1) {
+            toInsertInto.insert(pos, fRuleText.tempSubString(pluralRuleEnd + 2));
         }
         double pluralVal = number;
         if (0 <= pluralVal && pluralVal < 1) {
@@ -812,9 +812,9 @@ NFRule::doFormat(double number, UnicodeString& toInsertInto, int32_t pos, int32_
         }
         toInsertInto.insert(pos, rulePatternFormat->format((int32_t)(pluralVal), status));
         if (pluralRuleStart > 0) {
-            toInsertInto.insert(pos, ruleText.tempSubString(0, pluralRuleStart));
+            toInsertInto.insert(pos, fRuleText.tempSubString(0, pluralRuleStart));
         }
-        lengthOffset = ruleText.length() - (toInsertInto.length() - initialLength);
+        lengthOffset = fRuleText.length() - (toInsertInto.length() - initialLength);
     }
 
     if (sub2 != NULL) {
@@ -908,15 +908,15 @@ NFRule::doParse(const UnicodeString& text,
     ParsePosition pp;
     UnicodeString workText(text);
 
-    int32_t sub1Pos = sub1 != NULL ? sub1->getPos() : ruleText.length();
-    int32_t sub2Pos = sub2 != NULL ? sub2->getPos() : ruleText.length();
+    int32_t sub1Pos = sub1 != NULL ? sub1->getPos() : fRuleText.length();
+    int32_t sub2Pos = sub2 != NULL ? sub2->getPos() : fRuleText.length();
 
     // check to see whether the text before the first substitution
     // matches the text at the beginning of the string being
     // parsed.  If it does, strip that off the front of workText;
     // otherwise, dump out with a mismatch
     UnicodeString prefix;
-    prefix.setTo(ruleText, 0, sub1Pos);
+    prefix.setTo(fRuleText, 0, sub1Pos);
 
 #ifdef RBNF_DEBUG
     fprintf(stderr, "doParse %p ", this);
@@ -1000,7 +1000,7 @@ NFRule::doParse(const UnicodeString& text,
         // the substitution, giving us a new partial parse result
         pp.setIndex(0);
 
-        temp.setTo(ruleText, sub1Pos, sub2Pos - sub1Pos);
+        temp.setTo(fRuleText, sub1Pos, sub2Pos - sub1Pos);
         double partialResult = matchToDelimiter(workText, start, tempBaseValue,
             temp, pp, sub1,
             nonNumericalExecutedRuleMask,
@@ -1021,7 +1021,7 @@ NFRule::doParse(const UnicodeString& text,
             // partial result with whatever it gets back from its
             // substitution if there's a successful match, giving us
             // a real result
-            temp.setTo(ruleText, sub2Pos, ruleText.length() - sub2Pos);
+            temp.setTo(fRuleText, sub2Pos, fRuleText.length() - sub2Pos);
             partialResult = matchToDelimiter(workText2, 0, partialResult,
                 temp, pp2, sub2,
                 nonNumericalExecutedRuleMask,
@@ -1039,18 +1039,18 @@ NFRule::doParse(const UnicodeString& text,
             else {
                 // commented out because ParsePosition doesn't have error index in 1.1.x
                 // restored for ICU4C port
-                int32_t temp = pp2.getErrorIndex() + sub1Pos + pp.getIndex();
-                if (temp> parsePosition.getErrorIndex()) {
-                    parsePosition.setErrorIndex(temp);
+                int32_t i_temp = pp2.getErrorIndex() + sub1Pos + pp.getIndex();
+                if (i_temp> parsePosition.getErrorIndex()) {
+                    parsePosition.setErrorIndex(i_temp);
                 }
             }
         }
         else {
             // commented out because ParsePosition doesn't have error index in 1.1.x
             // restored for ICU4C port
-            int32_t temp = sub1Pos + pp.getErrorIndex();
-            if (temp > parsePosition.getErrorIndex()) {
-                parsePosition.setErrorIndex(temp);
+            int32_t i_temp = sub1Pos + pp.getErrorIndex();
+            if (i_temp > parsePosition.getErrorIndex()) {
+                parsePosition.setErrorIndex(i_temp);
             }
         }
         // keep trying to match things until the outer matchToDelimiter()
@@ -1483,11 +1483,11 @@ NFRule::findText(const UnicodeString& str,
         rulePatternFormat->parseType(str, this, result, position);
         int start = position.getBeginIndex();
         if (start >= 0) {
-            int32_t pluralRuleStart = ruleText.indexOf(gDollarOpenParenthesis, -1, 0);
-            int32_t pluralRuleSuffix = ruleText.indexOf(gClosedParenthesisDollar, -1, pluralRuleStart) + 2;
+            int32_t pluralRuleStart = fRuleText.indexOf(gDollarOpenParenthesis, -1, 0);
+            int32_t pluralRuleSuffix = fRuleText.indexOf(gClosedParenthesisDollar, -1, pluralRuleStart) + 2;
             int32_t matchLen = position.getEndIndex() - start;
-            UnicodeString prefix(ruleText.tempSubString(0, pluralRuleStart));
-            UnicodeString suffix(ruleText.tempSubString(pluralRuleSuffix));
+            UnicodeString prefix(fRuleText.tempSubString(0, pluralRuleStart));
+            UnicodeString suffix(fRuleText.tempSubString(pluralRuleSuffix));
             if (str.compare(start - prefix.length(), prefix.length(), prefix, 0, prefix.length()) == 0
                     && str.compare(start + matchLen, suffix.length(), suffix, 0, suffix.length()) == 0)
             {
index 698b75bb637531fa6d9559f6cd4dcd2c5a96e3f9..ed33eaa5af7605d8deb143393874e78cc461bcb0 100644 (file)
@@ -109,7 +109,7 @@ private:
     int32_t radix;
     int16_t exponent;
     UChar decimalPoint;
-    UnicodeString ruleText;
+    UnicodeString fRuleText;
     NFSubstitution* sub1;
     NFSubstitution* sub2;
     const RuleBasedNumberFormat* formatter;
index 40278e1a012e54be1514b7e966dc2e20a16019ad..10942c35f535df6bc8bd76b1e0212064fd43a869 100644 (file)
@@ -273,13 +273,13 @@ void CompactHandler::processQuantity(DecimalQuantity &quantity, MicroProps &micr
     if (U_FAILURE(status)) { return; }
 
     // Treat zero as if it had magnitude 0
-    int magnitude;
+    int32_t magnitude;
     if (quantity.isZero()) {
         magnitude = 0;
         micros.rounder.apply(quantity, status);
     } else {
         // TODO: Revisit chooseMultiplierAndApply
-        int multiplier = micros.rounder.chooseMultiplierAndApply(quantity, data, status);
+        int32_t multiplier = micros.rounder.chooseMultiplierAndApply(quantity, data, status);
         magnitude = quantity.isZero() ? 0 : quantity.getMagnitude();
         magnitude -= multiplier;
     }
index 9d80e3349cb8aa19e398f7ecb47e2a54152741c8..2c4182b1c6ecdac30056eafd8f5892235e31a2ad 100644 (file)
@@ -1154,8 +1154,31 @@ const char16_t* DecimalQuantity::checkHealth() const {
 }
 
 bool DecimalQuantity::operator==(const DecimalQuantity& other) const {
-    // FIXME: Make a faster implementation.
-    return toString() == other.toString();
+    bool basicEquals =
+            scale == other.scale
+            && precision == other.precision
+            && flags == other.flags
+            && lOptPos == other.lOptPos
+            && lReqPos == other.lReqPos
+            && rReqPos == other.rReqPos
+            && rOptPos == other.rOptPos
+            && isApproximate == other.isApproximate;
+    if (!basicEquals) {
+        return false;
+    }
+
+    if (precision == 0) {
+        return true;
+    } else if (isApproximate) {
+        return origDouble == other.origDouble && origDelta == other.origDelta;
+    } else {
+        for (int m = getUpperDisplayMagnitude(); m >= getLowerDisplayMagnitude(); m--) {
+            if (getDigit(m) != other.getDigit(m)) {
+                return false;
+            }
+        }
+        return true;
+    }
 }
 
 UnicodeString DecimalQuantity::toString() const {
index 6754fe19eca56cffbc6861ffd7d1fefed40eb4ab..12fe7060e2d051286e95555dd19266bf7538f8c3 100644 (file)
@@ -15,6 +15,7 @@ using namespace icu::number::impl;
 
 namespace {
 
+alignas(DecimalFormatProperties)
 char kRawDefaultProperties[sizeof(DecimalFormatProperties)];
 
 icu::UInitOnce gDefaultPropertiesInitOnce = U_INITONCE_INITIALIZER;
index 687adb6b5babd24e55c1446c79fdc0098453d6d3..a66e3bd0f23510f610a975dacc7f69f8ab59ac4b 100644 (file)
@@ -363,6 +363,7 @@ UnlocalizedNumberFormatter::UnlocalizedNumberFormatter(const NFS<UNF>& other)
     // No additional fields to assign
 }
 
+// Make default copy constructor call the NumberFormatterSettings copy constructor.
 UnlocalizedNumberFormatter::UnlocalizedNumberFormatter(UNF&& src) U_NOEXCEPT
         : UNF(static_cast<NFS<UNF>&&>(src)) {}
 
@@ -383,6 +384,7 @@ UnlocalizedNumberFormatter& UnlocalizedNumberFormatter::operator=(UNF&& src) U_N
     return *this;
 }
 
+// Make default copy constructor call the NumberFormatterSettings copy constructor.
 LocalizedNumberFormatter::LocalizedNumberFormatter(const LNF& other)
         : LNF(static_cast<const NFS<LNF>&>(other)) {}
 
@@ -405,7 +407,8 @@ LocalizedNumberFormatter::LocalizedNumberFormatter(NFS<LNF>&& src) U_NOEXCEPT
 
 LocalizedNumberFormatter& LocalizedNumberFormatter::operator=(const LNF& other) {
     NFS<LNF>::operator=(static_cast<const NFS<LNF>&>(other));
-    // No additional fields to assign (let call count and compiled formatter reset to defaults)
+    // Reset to default values.
+    clear();
     return *this;
 }
 
@@ -417,20 +420,26 @@ LocalizedNumberFormatter& LocalizedNumberFormatter::operator=(LNF&& src) U_NOEXC
         // Formatter is compiled
         lnfMoveHelper(static_cast<LNF&&>(src));
     } else {
-        // Reset to default values.
-        auto* callCount = reinterpret_cast<u_atomic_int32_t*>(fUnsafeCallCount);
-        umtx_storeRelease(*callCount, 0);
-        fCompiled = nullptr;
+        clear();
     }
     return *this;
 }
 
+void LocalizedNumberFormatter::clear() {
+    // Reset to default values.
+    auto* callCount = reinterpret_cast<u_atomic_int32_t*>(fUnsafeCallCount);
+    umtx_storeRelease(*callCount, 0);
+    delete fCompiled;
+    fCompiled = nullptr;
+}
+
 void LocalizedNumberFormatter::lnfMoveHelper(LNF&& src) {
     // Copy over the compiled formatter and set call count to INT32_MIN as in computeCompiled().
     // Don't copy the call count directly because doing so requires a loadAcquire/storeRelease.
     // The bits themselves appear to be platform-dependent, so copying them might not be safe.
     auto* callCount = reinterpret_cast<u_atomic_int32_t*>(fUnsafeCallCount);
     umtx_storeRelease(*callCount, INT32_MIN);
+    delete fCompiled;
     fCompiled = src.fCompiled;
     // Reset the source object to leave it in a safe state.
     auto* srcCallCount = reinterpret_cast<u_atomic_int32_t*>(src.fUnsafeCallCount);
@@ -657,9 +666,9 @@ LocalizedNumberFormatter::formatDecimalQuantity(const DecimalQuantity& dq, UErro
 
 void LocalizedNumberFormatter::formatImpl(impl::UFormattedNumberData* results, UErrorCode& status) const {
     if (computeCompiled(status)) {
-        fCompiled->apply(results->quantity, results->string, status);
+        fCompiled->format(results->quantity, results->string, status);
     } else {
-        NumberFormatterImpl::applyStatic(fMacros, results->quantity, results->string, status);
+        NumberFormatterImpl::formatStatic(fMacros, results->quantity, results->string, status);
     }
 }
 
@@ -706,7 +715,11 @@ bool LocalizedNumberFormatter::computeCompiled(UErrorCode& status) const {
 
     if (currentCount == fMacros.threshold && fMacros.threshold > 0) {
         // Build the data structure and then use it (slow to fast path).
-        const NumberFormatterImpl* compiled = NumberFormatterImpl::fromMacros(fMacros, status);
+        const NumberFormatterImpl* compiled = new NumberFormatterImpl(fMacros, status);
+        if (compiled == nullptr) {
+            status = U_MEMORY_ALLOCATION_ERROR;
+            return false;
+        }
         U_ASSERT(fCompiled == nullptr);
         const_cast<LocalizedNumberFormatter*>(this)->fCompiled = compiled;
         umtx_storeRelease(*callCount, INT32_MIN);
@@ -776,7 +789,7 @@ Appendable& FormattedNumber::appendTo(Appendable& appendable) {
     return appendTo(appendable, localStatus);
 }
 
-Appendable& FormattedNumber::appendTo(Appendable& appendable, UErrorCode& status) {
+Appendable& FormattedNumber::appendTo(Appendable& appendable, UErrorCode& status) const {
     if (U_FAILURE(status)) {
         return appendable;
     }
index 3f887128bcc668cec2a3f8a79a1cc067eea7631b..60c18ee284e238176593207bacd824b34fec392b 100644 (file)
@@ -67,14 +67,18 @@ getCurrencyFormatInfo(const Locale& locale, const char* isoCode, UErrorCode& sta
 MicroPropsGenerator::~MicroPropsGenerator() = default;
 
 
-NumberFormatterImpl* NumberFormatterImpl::fromMacros(const MacroProps& macros, UErrorCode& status) {
-    return new NumberFormatterImpl(macros, true, status);
+NumberFormatterImpl::NumberFormatterImpl(const MacroProps& macros, UErrorCode& status)
+    : NumberFormatterImpl(macros, true, status) {
 }
 
-void NumberFormatterImpl::applyStatic(const MacroProps& macros, DecimalQuantity& inValue,
-                                      NumberStringBuilder& outString, UErrorCode& status) {
+int32_t NumberFormatterImpl::formatStatic(const MacroProps& macros, DecimalQuantity& inValue,
+                                       NumberStringBuilder& outString, UErrorCode& status) {
     NumberFormatterImpl impl(macros, false, status);
-    impl.applyUnsafe(inValue, outString, status);
+    MicroProps& micros = impl.preProcessUnsafe(inValue, status);
+    if (U_FAILURE(status)) { return 0; }
+    int32_t length = writeNumber(micros, inValue, outString, 0, status);
+    length += writeAffixes(micros, outString, 0, length, status);
+    return length;
 }
 
 int32_t NumberFormatterImpl::getPrefixSuffixStatic(const MacroProps& macros, int8_t signum,
@@ -89,22 +93,40 @@ int32_t NumberFormatterImpl::getPrefixSuffixStatic(const MacroProps& macros, int
 // The "unsafe" method simply re-uses fMicros, eliminating the extra copy operation.
 // See MicroProps::processQuantity() for details.
 
-void NumberFormatterImpl::apply(DecimalQuantity& inValue, NumberStringBuilder& outString,
+int32_t NumberFormatterImpl::format(DecimalQuantity& inValue, NumberStringBuilder& outString,
                                 UErrorCode& status) const {
-    if (U_FAILURE(status)) { return; }
     MicroProps micros;
-    if (!fMicroPropsGenerator) { return; }
-    fMicroPropsGenerator->processQuantity(inValue, micros, status);
-    if (U_FAILURE(status)) { return; }
-    microsToString(micros, inValue, outString, status);
+    preProcess(inValue, micros, status);
+    if (U_FAILURE(status)) { return 0; }
+    int32_t length = writeNumber(micros, inValue, outString, 0, status);
+    length += writeAffixes(micros, outString, 0, length, status);
+    return length;
 }
 
-void NumberFormatterImpl::applyUnsafe(DecimalQuantity& inValue, NumberStringBuilder& outString,
-                                      UErrorCode& status) {
+void NumberFormatterImpl::preProcess(DecimalQuantity& inValue, MicroProps& microsOut,
+                                     UErrorCode& status) const {
     if (U_FAILURE(status)) { return; }
+    if (fMicroPropsGenerator == nullptr) {
+        status = U_INTERNAL_PROGRAM_ERROR;
+        return;
+    }
+    fMicroPropsGenerator->processQuantity(inValue, microsOut, status);
+    microsOut.rounder.apply(inValue, status);
+    microsOut.integerWidth.apply(inValue, status);
+}
+
+MicroProps& NumberFormatterImpl::preProcessUnsafe(DecimalQuantity& inValue, UErrorCode& status) {
+    if (U_FAILURE(status)) {
+        return fMicros; // must always return a value
+    }
+    if (fMicroPropsGenerator == nullptr) {
+        status = U_INTERNAL_PROGRAM_ERROR;
+        return fMicros; // must always return a value
+    }
     fMicroPropsGenerator->processQuantity(inValue, fMicros, status);
-    if (U_FAILURE(status)) { return; }
-    microsToString(fMicros, inValue, outString, status);
+    fMicros.rounder.apply(inValue, status);
+    fMicros.integerWidth.apply(inValue, status);
+    return fMicros;
 }
 
 int32_t NumberFormatterImpl::getPrefixSuffix(int8_t signum, StandardPlural::Form plural,
@@ -115,7 +137,7 @@ int32_t NumberFormatterImpl::getPrefixSuffix(int8_t signum, StandardPlural::Form
     const Modifier* modifier = fImmutablePatternModifier->getModifier(signum, plural);
     modifier->apply(outString, 0, 0, status);
     if (U_FAILURE(status)) { return 0; }
-    return modifier->getPrefixLength(status);
+    return modifier->getPrefixLength();
 }
 
 int32_t NumberFormatterImpl::getPrefixSuffixUnsafe(int8_t signum, StandardPlural::Form plural,
@@ -126,7 +148,7 @@ int32_t NumberFormatterImpl::getPrefixSuffixUnsafe(int8_t signum, StandardPlural
     fPatternModifier->setNumberProperties(signum, plural);
     fPatternModifier->apply(outString, 0, 0, status);
     if (U_FAILURE(status)) { return 0; }
-    return fPatternModifier->getPrefixLength(status);
+    return fPatternModifier->getPrefixLength();
 }
 
 NumberFormatterImpl::NumberFormatterImpl(const MacroProps& macros, bool safe, UErrorCode& status) {
@@ -344,25 +366,23 @@ NumberFormatterImpl::macrosToMicroGenerator(const MacroProps& macros, bool safe,
     // Outer modifier (CLDR units and currency long names)
     if (isCldrUnit) {
         fLongNameHandler.adoptInstead(
-                new LongNameHandler(
-                        LongNameHandler::forMeasureUnit(
-                                macros.locale,
-                                macros.unit,
-                                macros.perUnit,
-                                unitWidth,
-                                resolvePluralRules(macros.rules, macros.locale, status),
-                                chain,
-                                status)));
+                LongNameHandler::forMeasureUnit(
+                        macros.locale,
+                        macros.unit,
+                        macros.perUnit,
+                        unitWidth,
+                        resolvePluralRules(macros.rules, macros.locale, status),
+                        chain,
+                        status));
         chain = fLongNameHandler.getAlias();
     } else if (isCurrency && unitWidth == UNUM_UNIT_WIDTH_FULL_NAME) {
         fLongNameHandler.adoptInstead(
-                new LongNameHandler(
-                        LongNameHandler::forCurrencyLongNames(
-                                macros.locale,
-                                currency,
-                                resolvePluralRules(macros.rules, macros.locale, status),
-                                chain,
-                                status)));
+                LongNameHandler::forCurrencyLongNames(
+                        macros.locale,
+                        currency,
+                        resolvePluralRules(macros.rules, macros.locale, status),
+                        chain,
+                        status));
         chain = fLongNameHandler.getAlias();
     } else {
         // No outer modifier required
@@ -404,50 +424,46 @@ NumberFormatterImpl::resolvePluralRules(const PluralRules* rulesPtr, const Local
     return fRules.getAlias();
 }
 
-int32_t NumberFormatterImpl::microsToString(const MicroProps& micros, DecimalQuantity& quantity,
-                                            NumberStringBuilder& string, UErrorCode& status) {
-    micros.rounder.apply(quantity, status);
-    micros.integerWidth.apply(quantity, status);
-    int32_t length = writeNumber(micros, quantity, string, status);
-    // NOTE: When range formatting is added, these modifiers can bubble up.
-    // For now, apply them all here at once.
+int32_t NumberFormatterImpl::writeAffixes(const MicroProps& micros, NumberStringBuilder& string,
+                                          int32_t start, int32_t end, UErrorCode& status) {
     // Always apply the inner modifier (which is "strong").
-    length += micros.modInner->apply(string, 0, length, status);
+    int32_t length = micros.modInner->apply(string, start, end, status);
     if (micros.padding.isValid()) {
         length += micros.padding
-                .padAndApply(*micros.modMiddle, *micros.modOuter, string, 0, length, status);
+                .padAndApply(*micros.modMiddle, *micros.modOuter, string, start, length + end, status);
     } else {
-        length += micros.modMiddle->apply(string, 0, length, status);
-        length += micros.modOuter->apply(string, 0, length, status);
+        length += micros.modMiddle->apply(string, start, length + end, status);
+        length += micros.modOuter->apply(string, start, length + end, status);
     }
     return length;
 }
 
 int32_t NumberFormatterImpl::writeNumber(const MicroProps& micros, DecimalQuantity& quantity,
-                                         NumberStringBuilder& string, UErrorCode& status) {
+                                         NumberStringBuilder& string, int32_t index,
+                                         UErrorCode& status) {
     int32_t length = 0;
     if (quantity.isInfinite()) {
         length += string.insert(
-                length,
+                length + index,
                 micros.symbols->getSymbol(DecimalFormatSymbols::ENumberFormatSymbol::kInfinitySymbol),
                 UNUM_INTEGER_FIELD,
                 status);
 
     } else if (quantity.isNaN()) {
         length += string.insert(
-                length,
+                length + index,
                 micros.symbols->getSymbol(DecimalFormatSymbols::ENumberFormatSymbol::kNaNSymbol),
                 UNUM_INTEGER_FIELD,
                 status);
 
     } else {
         // Add the integer digits
-        length += writeIntegerDigits(micros, quantity, string, status);
+        length += writeIntegerDigits(micros, quantity, string, length + index, status);
 
         // Add the decimal point
         if (quantity.getLowerDisplayMagnitude() < 0 || micros.decimal == UNUM_DECIMAL_SEPARATOR_ALWAYS) {
             length += string.insert(
-                    length,
+                    length + index,
                     micros.useCurrency ? micros.symbols->getSymbol(
                             DecimalFormatSymbols::ENumberFormatSymbol::kMonetarySeparatorSymbol) : micros
                             .symbols
@@ -458,21 +474,22 @@ int32_t NumberFormatterImpl::writeNumber(const MicroProps& micros, DecimalQuanti
         }
 
         // Add the fraction digits
-        length += writeFractionDigits(micros, quantity, string, status);
+        length += writeFractionDigits(micros, quantity, string, length + index, status);
     }
 
     return length;
 }
 
 int32_t NumberFormatterImpl::writeIntegerDigits(const MicroProps& micros, DecimalQuantity& quantity,
-                                                NumberStringBuilder& string, UErrorCode& status) {
+                                                NumberStringBuilder& string, int32_t index,
+                                                UErrorCode& status) {
     int length = 0;
     int integerCount = quantity.getUpperDisplayMagnitude() + 1;
     for (int i = 0; i < integerCount; i++) {
         // Add grouping separator
         if (micros.grouping.groupAtPosition(i, quantity)) {
             length += string.insert(
-                    0,
+                    index,
                     micros.useCurrency ? micros.symbols->getSymbol(
                             DecimalFormatSymbols::ENumberFormatSymbol::kMonetaryGroupingSeparatorSymbol)
                                        : micros.symbols->getSymbol(
@@ -484,20 +501,21 @@ int32_t NumberFormatterImpl::writeIntegerDigits(const MicroProps& micros, Decima
         // Get and append the next digit value
         int8_t nextDigit = quantity.getDigit(i);
         length += utils::insertDigitFromSymbols(
-                string, 0, nextDigit, *micros.symbols, UNUM_INTEGER_FIELD, status);
+                string, index, nextDigit, *micros.symbols, UNUM_INTEGER_FIELD, status);
     }
     return length;
 }
 
 int32_t NumberFormatterImpl::writeFractionDigits(const MicroProps& micros, DecimalQuantity& quantity,
-                                                 NumberStringBuilder& string, UErrorCode& status) {
+                                                 NumberStringBuilder& string, int32_t index,
+                                                 UErrorCode& status) {
     int length = 0;
     int fractionCount = -quantity.getLowerDisplayMagnitude();
     for (int i = 0; i < fractionCount; i++) {
         // Get and append the next digit value
         int8_t nextDigit = quantity.getDigit(-i - 1);
         length += utils::insertDigitFromSymbols(
-                string, string.length(), nextDigit, *micros.symbols, UNUM_FRACTION_FIELD, status);
+                string, length + index, nextDigit, *micros.symbols, UNUM_FRACTION_FIELD, status);
     }
     return length;
 }
index 744fecec13f984ce1ab80ff71a8c016d32131197..fda38c92845f87cb3d6de62a7a1274fd9abb3c76 100644 (file)
@@ -29,14 +29,14 @@ class NumberFormatterImpl : public UMemory {
      * Builds a "safe" MicroPropsGenerator, which is thread-safe and can be used repeatedly.
      * The caller owns the returned NumberFormatterImpl.
      */
-    static NumberFormatterImpl *fromMacros(const MacroProps &macros, UErrorCode &status);
+    NumberFormatterImpl(const MacroProps &macros, UErrorCode &status);
 
     /**
      * Builds and evaluates an "unsafe" MicroPropsGenerator, which is cheaper but can be used only once.
      */
-    static void
-    applyStatic(const MacroProps &macros, DecimalQuantity &inValue, NumberStringBuilder &outString,
-                UErrorCode &status);
+    static int32_t
+    formatStatic(const MacroProps &macros, DecimalQuantity &inValue, NumberStringBuilder &outString,
+                 UErrorCode &status);
 
     /**
      * Prints only the prefix and suffix; used for DecimalFormat getters.
@@ -51,7 +51,12 @@ class NumberFormatterImpl : public UMemory {
     /**
      * Evaluates the "safe" MicroPropsGenerator created by "fromMacros".
      */
-    void apply(DecimalQuantity& inValue, NumberStringBuilder& outString, UErrorCode& status) const;
+    int32_t format(DecimalQuantity& inValue, NumberStringBuilder& outString, UErrorCode& status) const;
+
+    /**
+     * Like format(), but saves the result into an output MicroProps without additional processing.
+     */
+    void preProcess(DecimalQuantity& inValue, MicroProps& microsOut, UErrorCode& status) const;
 
     /**
      * Like getPrefixSuffixStatic() but uses the safe compiled object.
@@ -59,6 +64,19 @@ class NumberFormatterImpl : public UMemory {
     int32_t getPrefixSuffix(int8_t signum, StandardPlural::Form plural, NumberStringBuilder& outString,
                             UErrorCode& status) const;
 
+    /**
+     * Synthesizes the output string from a MicroProps and DecimalQuantity.
+     * This method formats only the main number, not affixes.
+     */
+    static int32_t writeNumber(const MicroProps& micros, DecimalQuantity& quantity,
+                               NumberStringBuilder& string, int32_t index, UErrorCode& status);
+
+    /**
+     * Adds the affixes.  Intended to be called immediately after formatNumber.
+     */
+    static int32_t writeAffixes(const MicroProps& micros, NumberStringBuilder& string, int32_t start,
+                                int32_t end, UErrorCode& status);
+
   private:
     // Head of the MicroPropsGenerator linked list:
     const MicroPropsGenerator *fMicroPropsGenerator = nullptr;
@@ -85,7 +103,7 @@ class NumberFormatterImpl : public UMemory {
 
     NumberFormatterImpl(const MacroProps &macros, bool safe, UErrorCode &status);
 
-    void applyUnsafe(DecimalQuantity &inValue, NumberStringBuilder &outString, UErrorCode &status);
+    MicroProps& preProcessUnsafe(DecimalQuantity &inValue, UErrorCode &status);
 
     int32_t getPrefixSuffixUnsafe(int8_t signum, StandardPlural::Form plural,
                                   NumberStringBuilder& outString, UErrorCode& status);
@@ -113,31 +131,13 @@ class NumberFormatterImpl : public UMemory {
     const MicroPropsGenerator *
     macrosToMicroGenerator(const MacroProps &macros, bool safe, UErrorCode &status);
 
-    /**
-     * Synthesizes the output string from a MicroProps and DecimalQuantity.
-     *
-     * @param micros
-     *            The MicroProps after the quantity has been consumed. Will not be mutated.
-     * @param quantity
-     *            The DecimalQuantity to be rendered. May be mutated.
-     * @param string
-     *            The output string. Will be mutated.
-     */
-    static int32_t
-    microsToString(const MicroProps &micros, DecimalQuantity &quantity, NumberStringBuilder &string,
-                   UErrorCode &status);
-
-    static int32_t
-    writeNumber(const MicroProps &micros, DecimalQuantity &quantity, NumberStringBuilder &string,
-                UErrorCode &status);
-
     static int32_t
     writeIntegerDigits(const MicroProps &micros, DecimalQuantity &quantity, NumberStringBuilder &string,
-                       UErrorCode &status);
+                       int32_t index, UErrorCode &status);
 
     static int32_t
     writeFractionDigits(const MicroProps &micros, DecimalQuantity &quantity, NumberStringBuilder &string,
-                        UErrorCode &status);
+                        int32_t index, UErrorCode &status);
 };
 
 }  // namespace impl
index 4a1cceb49948b914dd658d9ad763b1f88309a236..da32cca99a38df0e97236503ddaf051e8ad76acc 100644 (file)
@@ -80,7 +80,7 @@ void Grouper::setLocaleData(const impl::ParsedPatternInfo &patternInfo, const Lo
     if (fMinGrouping == -2) {
         fMinGrouping = getMinGroupingForLocale(locale);
     } else if (fMinGrouping == -3) {
-        fMinGrouping = uprv_max(2, getMinGroupingForLocale(locale));
+        fMinGrouping = static_cast<int16_t>(uprv_max(2, getMinGroupingForLocale(locale)));
     } else {
         // leave fMinGrouping alone
     }
index 26f9af4c9bdbfe378e2110a0b039821cb3539c81..fd8e8d381a1d76167504dc3d3254b6630e9d5621 100644 (file)
@@ -39,7 +39,7 @@ static int32_t getIndex(const char* pluralKeyword, UErrorCode& status) {
 
 static UnicodeString getWithPlural(
         const UnicodeString* strings,
-        int32_t plural,
+        StandardPlural::Form plural,
         UErrorCode& status) {
     UnicodeString result = strings[plural];
     if (result.isBogus()) {
@@ -156,7 +156,7 @@ UnicodeString getPerUnitFormat(const Locale& locale, const UNumberUnitWidth &wid
 
 } // namespace
 
-LongNameHandler
+LongNameHandler*
 LongNameHandler::forMeasureUnit(const Locale &loc, const MeasureUnit &unitRef, const MeasureUnit &perUnit,
                                 const UNumberUnitWidth &width, const PluralRules *rules,
                                 const MicroPropsGenerator *parent, UErrorCode &status) {
@@ -173,20 +173,28 @@ LongNameHandler::forMeasureUnit(const Locale &loc, const MeasureUnit &unitRef, c
         }
     }
 
-    LongNameHandler result(rules, parent);
+    auto* result = new LongNameHandler(rules, parent);
+    if (result == nullptr) {
+        status = U_MEMORY_ALLOCATION_ERROR;
+        return nullptr;
+    }
     UnicodeString simpleFormats[ARRAY_LENGTH];
     getMeasureData(loc, unit, width, simpleFormats, status);
     if (U_FAILURE(status)) { return result; }
     // TODO: What field to use for units?
-    simpleFormatsToModifiers(simpleFormats, UNUM_FIELD_COUNT, result.fModifiers, status);
+    result->simpleFormatsToModifiers(simpleFormats, UNUM_FIELD_COUNT, status);
     return result;
 }
 
-LongNameHandler
+LongNameHandler*
 LongNameHandler::forCompoundUnit(const Locale &loc, const MeasureUnit &unit, const MeasureUnit &perUnit,
                                  const UNumberUnitWidth &width, const PluralRules *rules,
                                  const MicroPropsGenerator *parent, UErrorCode &status) {
-    LongNameHandler result(rules, parent);
+    auto* result = new LongNameHandler(rules, parent);
+    if (result == nullptr) {
+        status = U_MEMORY_ALLOCATION_ERROR;
+        return nullptr;
+    }
     UnicodeString primaryData[ARRAY_LENGTH];
     getMeasureData(loc, unit, width, primaryData, status);
     if (U_FAILURE(status)) { return result; }
@@ -213,46 +221,52 @@ LongNameHandler::forCompoundUnit(const Locale &loc, const MeasureUnit &unit, con
         if (U_FAILURE(status)) { return result; }
     }
     // TODO: What field to use for units?
-    multiSimpleFormatsToModifiers(primaryData, perUnitFormat, UNUM_FIELD_COUNT, result.fModifiers, status);
+    result->multiSimpleFormatsToModifiers(primaryData, perUnitFormat, UNUM_FIELD_COUNT, status);
     return result;
 }
 
-LongNameHandler LongNameHandler::forCurrencyLongNames(const Locale &loc, const CurrencyUnit &currency,
+LongNameHandler* LongNameHandler::forCurrencyLongNames(const Locale &loc, const CurrencyUnit &currency,
                                                       const PluralRules *rules,
                                                       const MicroPropsGenerator *parent,
                                                       UErrorCode &status) {
-    LongNameHandler result(rules, parent);
+    auto* result = new LongNameHandler(rules, parent);
+    if (result == nullptr) {
+        status = U_MEMORY_ALLOCATION_ERROR;
+        return nullptr;
+    }
     UnicodeString simpleFormats[ARRAY_LENGTH];
     getCurrencyLongNameData(loc, currency, simpleFormats, status);
-    if (U_FAILURE(status)) { return result; }
-    simpleFormatsToModifiers(simpleFormats, UNUM_CURRENCY_FIELD, result.fModifiers, status);
+    if (U_FAILURE(status)) { return nullptr; }
+    result->simpleFormatsToModifiers(simpleFormats, UNUM_CURRENCY_FIELD, status);
     return result;
 }
 
 void LongNameHandler::simpleFormatsToModifiers(const UnicodeString *simpleFormats, Field field,
-                                               SimpleModifier *output, UErrorCode &status) {
+                                               UErrorCode &status) {
     for (int32_t i = 0; i < StandardPlural::Form::COUNT; i++) {
-        UnicodeString simpleFormat = getWithPlural(simpleFormats, i, status);
+        StandardPlural::Form plural = static_cast<StandardPlural::Form>(i);
+        UnicodeString simpleFormat = getWithPlural(simpleFormats, plural, status);
         if (U_FAILURE(status)) { return; }
         SimpleFormatter compiledFormatter(simpleFormat, 0, 1, status);
         if (U_FAILURE(status)) { return; }
-        output[i] = SimpleModifier(compiledFormatter, field, false);
+        fModifiers[i] = SimpleModifier(compiledFormatter, field, false, {this, 0, plural});
     }
 }
 
 void LongNameHandler::multiSimpleFormatsToModifiers(const UnicodeString *leadFormats, UnicodeString trailFormat,
-                                                    Field field, SimpleModifier *output, UErrorCode &status) {
+                                                    Field field, UErrorCode &status) {
     SimpleFormatter trailCompiled(trailFormat, 1, 1, status);
     if (U_FAILURE(status)) { return; }
     for (int32_t i = 0; i < StandardPlural::Form::COUNT; i++) {
-        UnicodeString leadFormat = getWithPlural(leadFormats, i, status);
+        StandardPlural::Form plural = static_cast<StandardPlural::Form>(i);
+        UnicodeString leadFormat = getWithPlural(leadFormats, plural, status);
         if (U_FAILURE(status)) { return; }
         UnicodeString compoundFormat;
         trailCompiled.format(leadFormat, compoundFormat, status);
         if (U_FAILURE(status)) { return; }
         SimpleFormatter compoundCompiled(compoundFormat, 0, 1, status);
         if (U_FAILURE(status)) { return; }
-        output[i] = SimpleModifier(compoundCompiled, field, false);
+        fModifiers[i] = SimpleModifier(compoundCompiled, field, false, {this, 0, plural});
     }
 }
 
@@ -265,4 +279,8 @@ void LongNameHandler::processQuantity(DecimalQuantity &quantity, MicroProps &mic
     micros.modOuter = &fModifiers[utils::getStandardPlural(rules, copy)];
 }
 
+const Modifier* LongNameHandler::getModifier(int8_t /*signum*/, StandardPlural::Form plural) const {
+    return &fModifiers[plural];
+}
+
 #endif /* #if !UCONFIG_NO_FORMATTING */
index 1d1e7dd3e864a655ecf390f52f32820a4851b54b..a71d0caadf125c8ce7db479cf52e995467a0ab6b 100644 (file)
 U_NAMESPACE_BEGIN namespace number {
 namespace impl {
 
-class LongNameHandler : public MicroPropsGenerator, public UMemory {
+class LongNameHandler : public MicroPropsGenerator, public ModifierStore, public UMemory {
   public:
-    static LongNameHandler
+    static LongNameHandler*
     forCurrencyLongNames(const Locale &loc, const CurrencyUnit &currency, const PluralRules *rules,
                          const MicroPropsGenerator *parent, UErrorCode &status);
 
-    static LongNameHandler
+    static LongNameHandler*
     forMeasureUnit(const Locale &loc, const MeasureUnit &unit, const MeasureUnit &perUnit,
                    const UNumberUnitWidth &width, const PluralRules *rules,
                    const MicroPropsGenerator *parent, UErrorCode &status);
@@ -28,6 +28,8 @@ class LongNameHandler : public MicroPropsGenerator, public UMemory {
     void
     processQuantity(DecimalQuantity &quantity, MicroProps &micros, UErrorCode &status) const U_OVERRIDE;
 
+    const Modifier* getModifier(int8_t signum, StandardPlural::Form plural) const U_OVERRIDE;
+
   private:
     SimpleModifier fModifiers[StandardPlural::Form::COUNT];
     const PluralRules *rules;
@@ -36,15 +38,14 @@ class LongNameHandler : public MicroPropsGenerator, public UMemory {
     LongNameHandler(const PluralRules *rules, const MicroPropsGenerator *parent)
             : rules(rules), parent(parent) {}
 
-    static LongNameHandler
+    static LongNameHandler*
     forCompoundUnit(const Locale &loc, const MeasureUnit &unit, const MeasureUnit &perUnit,
                     const UNumberUnitWidth &width, const PluralRules *rules,
                     const MicroPropsGenerator *parent, UErrorCode &status);
 
-    static void simpleFormatsToModifiers(const UnicodeString *simpleFormats, Field field,
-                                         SimpleModifier *output, UErrorCode &status);
-    static void multiSimpleFormatsToModifiers(const UnicodeString *leadFormats, UnicodeString trailFormat,
-                                         Field field, SimpleModifier *output, UErrorCode &status);
+    void simpleFormatsToModifiers(const UnicodeString *simpleFormats, Field field, UErrorCode &status);
+    void multiSimpleFormatsToModifiers(const UnicodeString *leadFormats, UnicodeString trailFormat,
+                                       Field field, UErrorCode &status);
 };
 
 }  // namespace impl
index d260632f93b0db819023b2ca8cea577c2adfcded..2c9a8e5178f35e477b4e1bb169ed2f8d7bae5c71 100644 (file)
@@ -225,8 +225,8 @@ MacroProps NumberPropertyMapper::oldToNew(const DecimalFormatProperties& propert
         // TODO: Overriding here is a bit of a hack. Should this logic go earlier?
         if (macros.precision.fType == Precision::PrecisionType::RND_FRACTION) {
             // For the purposes of rounding, get the original min/max int/frac, since the local
-            // variables
-            // have been manipulated for display purposes.
+            // variables have been manipulated for display purposes.
+            int maxInt_ = properties.maximumIntegerDigits;
             int minInt_ = properties.minimumIntegerDigits;
             int minFrac_ = properties.minimumFractionDigits;
             int maxFrac_ = properties.maximumFractionDigits;
@@ -237,9 +237,15 @@ MacroProps NumberPropertyMapper::oldToNew(const DecimalFormatProperties& propert
                 // Patterns like "#.##E0" (no zeros in the mantissa), which mean round to maxFrac+1
                 macros.precision = Precision::constructSignificant(1, maxFrac_ + 1).withMode(roundingMode);
             } else {
-                // All other scientific patterns, which mean round to minInt+maxFrac
-                macros.precision = Precision::constructSignificant(
-                        minInt_ + minFrac_, minInt_ + maxFrac_).withMode(roundingMode);
+                int maxSig_ = minInt_ + maxFrac_;
+                // Bug #20058: if maxInt_ > minInt_ > 1, then minInt_ should be 1.
+                if (maxInt_ > minInt_ && minInt_ > 1) {
+                    minInt_ = 1;
+                }
+                int minSig_ = minInt_ + minFrac_;
+                // To avoid regression, maxSig is not reset when minInt_ set to 1.
+                // TODO: Reset maxSig_ = 1 + minFrac_ to follow the spec.
+                macros.precision = Precision::constructSignificant(minSig_, maxSig_).withMode(roundingMode);
             }
         }
     }
index 4385499b54f603fdb6d686de6fff9fbbf0e93023..d92ec63b08da5881cf58ce90b99ac74633a752d4 100644 (file)
@@ -53,6 +53,21 @@ void U_CALLCONV initDefaultCurrencySpacing(UErrorCode &status) {
 
 Modifier::~Modifier() = default;
 
+Modifier::Parameters::Parameters()
+        : obj(nullptr) {}
+
+Modifier::Parameters::Parameters(
+    const ModifierStore* _obj, int8_t _signum, StandardPlural::Form _plural)
+        : obj(_obj), signum(_signum), plural(_plural) {}
+
+ModifierStore::~ModifierStore() = default;
+
+AdoptingModifierStore::~AdoptingModifierStore()  {
+    for (const Modifier *mod : mods) {
+        delete mod;
+    }
+}
+
 
 int32_t ConstantAffixModifier::apply(NumberStringBuilder &output, int leftIndex, int rightIndex,
                                      UErrorCode &status) const {
@@ -62,13 +77,11 @@ int32_t ConstantAffixModifier::apply(NumberStringBuilder &output, int leftIndex,
     return length;
 }
 
-int32_t ConstantAffixModifier::getPrefixLength(UErrorCode &status) const {
-    (void)status;
+int32_t ConstantAffixModifier::getPrefixLength() const {
     return fPrefix.length();
 }
 
-int32_t ConstantAffixModifier::getCodePointCount(UErrorCode &status) const {
-    (void)status;
+int32_t ConstantAffixModifier::getCodePointCount() const {
     return fPrefix.countChar32() + fSuffix.countChar32();
 }
 
@@ -76,8 +89,38 @@ bool ConstantAffixModifier::isStrong() const {
     return fStrong;
 }
 
+bool ConstantAffixModifier::containsField(UNumberFormatFields field) const {
+    (void)field;
+    // This method is not currently used.
+    U_ASSERT(false);
+    return false;
+}
+
+void ConstantAffixModifier::getParameters(Parameters& output) const {
+    (void)output;
+    // This method is not currently used.
+    U_ASSERT(false);
+}
+
+bool ConstantAffixModifier::semanticallyEquivalent(const Modifier& other) const {
+    auto* _other = dynamic_cast<const ConstantAffixModifier*>(&other);
+    if (_other == nullptr) {
+        return false;
+    }
+    return fPrefix == _other->fPrefix
+        && fSuffix == _other->fSuffix
+        && fField == _other->fField
+        && fStrong == _other->fStrong;
+}
+
+
 SimpleModifier::SimpleModifier(const SimpleFormatter &simpleFormatter, Field field, bool strong)
-        : fCompiledPattern(simpleFormatter.compiledPattern), fField(field), fStrong(strong) {
+        : SimpleModifier(simpleFormatter, field, strong, {}) {}
+
+SimpleModifier::SimpleModifier(const SimpleFormatter &simpleFormatter, Field field, bool strong,
+                               const Modifier::Parameters parameters)
+        : fCompiledPattern(simpleFormatter.compiledPattern), fField(field), fStrong(strong),
+          fParameters(parameters) {
     int32_t argLimit = SimpleFormatter::getArgumentLimit(
             fCompiledPattern.getBuffer(), fCompiledPattern.length());
     if (argLimit == 0) {
@@ -90,15 +133,19 @@ SimpleModifier::SimpleModifier(const SimpleFormatter &simpleFormatter, Field fie
     } else {
         U_ASSERT(argLimit == 1);
         if (fCompiledPattern.charAt(1) != 0) {
+            // Found prefix
             fPrefixLength = fCompiledPattern.charAt(1) - ARG_NUM_LIMIT;
             fSuffixOffset = 3 + fPrefixLength;
         } else {
+            // No prefix
             fPrefixLength = 0;
             fSuffixOffset = 2;
         }
         if (3 + fPrefixLength < fCompiledPattern.length()) {
+            // Found suffix
             fSuffixLength = fCompiledPattern.charAt(fSuffixOffset) - ARG_NUM_LIMIT;
         } else {
+            // No suffix
             fSuffixLength = 0;
         }
     }
@@ -113,13 +160,11 @@ int32_t SimpleModifier::apply(NumberStringBuilder &output, int leftIndex, int ri
     return formatAsPrefixSuffix(output, leftIndex, rightIndex, fField, status);
 }
 
-int32_t SimpleModifier::getPrefixLength(UErrorCode &status) const {
-    (void)status;
+int32_t SimpleModifier::getPrefixLength() const {
     return fPrefixLength;
 }
 
-int32_t SimpleModifier::getCodePointCount(UErrorCode &status) const {
-    (void)status;
+int32_t SimpleModifier::getCodePointCount() const {
     int32_t count = 0;
     if (fPrefixLength > 0) {
         count += fCompiledPattern.countChar32(2, fPrefixLength);
@@ -134,10 +179,35 @@ bool SimpleModifier::isStrong() const {
     return fStrong;
 }
 
+bool SimpleModifier::containsField(UNumberFormatFields field) const {
+    (void)field;
+    // This method is not currently used.
+    U_ASSERT(false);
+    return false;
+}
+
+void SimpleModifier::getParameters(Parameters& output) const {
+    output = fParameters;
+}
+
+bool SimpleModifier::semanticallyEquivalent(const Modifier& other) const {
+    auto* _other = dynamic_cast<const SimpleModifier*>(&other);
+    if (_other == nullptr) {
+        return false;
+    }
+    if (fParameters.obj != nullptr) {
+        return fParameters.obj == _other->fParameters.obj;
+    }
+    return fCompiledPattern == _other->fCompiledPattern
+        && fField == _other->fField
+        && fStrong == _other->fStrong;
+}
+
+
 int32_t
 SimpleModifier::formatAsPrefixSuffix(NumberStringBuilder &result, int32_t startIndex, int32_t endIndex,
                                      Field field, UErrorCode &status) const {
-    if (fSuffixOffset == -1) {
+    if (fSuffixOffset == -1 && fPrefixLength + fSuffixLength > 0) {
         // There is no argument for the inner number; overwrite the entire segment with our string.
         return result.splice(startIndex, endIndex, fCompiledPattern, 2, 2 + fPrefixLength, field, status);
     } else {
@@ -157,6 +227,65 @@ SimpleModifier::formatAsPrefixSuffix(NumberStringBuilder &result, int32_t startI
     }
 }
 
+
+int32_t
+SimpleModifier::formatTwoArgPattern(const SimpleFormatter& compiled, NumberStringBuilder& result,
+                                    int32_t index, int32_t* outPrefixLength, int32_t* outSuffixLength,
+                                    Field field, UErrorCode& status) {
+    const UnicodeString& compiledPattern = compiled.compiledPattern;
+    int32_t argLimit = SimpleFormatter::getArgumentLimit(
+            compiledPattern.getBuffer(), compiledPattern.length());
+    if (argLimit != 2) {
+        status = U_INTERNAL_PROGRAM_ERROR;
+        return 0;
+    }
+    int32_t offset = 1; // offset into compiledPattern
+    int32_t length = 0; // chars added to result
+
+    int32_t prefixLength = compiledPattern.charAt(offset);
+    offset++;
+    if (prefixLength < ARG_NUM_LIMIT) {
+        // No prefix
+        prefixLength = 0;
+    } else {
+        prefixLength -= ARG_NUM_LIMIT;
+        result.insert(index + length, compiledPattern, offset, offset + prefixLength, field, status);
+        offset += prefixLength;
+        length += prefixLength;
+        offset++;
+    }
+
+    int32_t infixLength = compiledPattern.charAt(offset);
+    offset++;
+    if (infixLength < ARG_NUM_LIMIT) {
+        // No infix
+        infixLength = 0;
+    } else {
+        infixLength -= ARG_NUM_LIMIT;
+        result.insert(index + length, compiledPattern, offset, offset + infixLength, field, status);
+        offset += infixLength;
+        length += infixLength;
+        offset++;
+    }
+
+    int32_t suffixLength;
+    if (offset == compiledPattern.length()) {
+        // No suffix
+        suffixLength = 0;
+    } else {
+        suffixLength = compiledPattern.charAt(offset) -  ARG_NUM_LIMIT;
+        offset++;
+        result.insert(index + length, compiledPattern, offset, offset + suffixLength, field, status);
+        length += suffixLength;
+    }
+
+    *outPrefixLength = prefixLength;
+    *outSuffixLength = suffixLength;
+
+    return length;
+}
+
+
 int32_t ConstantMultiFieldModifier::apply(NumberStringBuilder &output, int leftIndex, int rightIndex,
                                           UErrorCode &status) const {
     int32_t length = output.insert(leftIndex, fPrefix, status);
@@ -171,13 +300,11 @@ int32_t ConstantMultiFieldModifier::apply(NumberStringBuilder &output, int leftI
     return length;
 }
 
-int32_t ConstantMultiFieldModifier::getPrefixLength(UErrorCode &status) const {
-    (void)status;
+int32_t ConstantMultiFieldModifier::getPrefixLength() const {
     return fPrefix.length();
 }
 
-int32_t ConstantMultiFieldModifier::getCodePointCount(UErrorCode &status) const {
-    (void)status;
+int32_t ConstantMultiFieldModifier::getCodePointCount() const {
     return fPrefix.codePointCount() + fSuffix.codePointCount();
 }
 
@@ -185,6 +312,29 @@ bool ConstantMultiFieldModifier::isStrong() const {
     return fStrong;
 }
 
+bool ConstantMultiFieldModifier::containsField(UNumberFormatFields field) const {
+    return fPrefix.containsField(field) || fSuffix.containsField(field);
+}
+
+void ConstantMultiFieldModifier::getParameters(Parameters& output) const {
+    output = fParameters;
+}
+
+bool ConstantMultiFieldModifier::semanticallyEquivalent(const Modifier& other) const {
+    auto* _other = dynamic_cast<const ConstantMultiFieldModifier*>(&other);
+    if (_other == nullptr) {
+        return false;
+    }
+    if (fParameters.obj != nullptr) {
+        return fParameters.obj == _other->fParameters.obj;
+    }
+    return fPrefix.contentEquals(_other->fPrefix)
+        && fSuffix.contentEquals(_other->fSuffix)
+        && fOverwrite == _other->fOverwrite
+        && fStrong == _other->fStrong;
+}
+
+
 CurrencySpacingEnabledModifier::CurrencySpacingEnabledModifier(const NumberStringBuilder &prefix,
                                                                const NumberStringBuilder &suffix,
                                                                bool overwrite,
index a553100cd92a9b6fbaeca6dfd69d98d5550fa3b0..65ada937d033452ebe581795739770ac4d8eeb6b 100644 (file)
@@ -31,12 +31,18 @@ class U_I18N_API ConstantAffixModifier : public Modifier, public UObject {
     int32_t apply(NumberStringBuilder &output, int32_t leftIndex, int32_t rightIndex,
                   UErrorCode &status) const U_OVERRIDE;
 
-    int32_t getPrefixLength(UErrorCode &status) const U_OVERRIDE;
+    int32_t getPrefixLength() const U_OVERRIDE;
 
-    int32_t getCodePointCount(UErrorCode &status) const U_OVERRIDE;
+    int32_t getCodePointCount() const U_OVERRIDE;
 
     bool isStrong() const U_OVERRIDE;
 
+    bool containsField(UNumberFormatFields field) const U_OVERRIDE;
+
+    void getParameters(Parameters& output) const U_OVERRIDE;
+
+    bool semanticallyEquivalent(const Modifier& other) const U_OVERRIDE;
+
   private:
     UnicodeString fPrefix;
     UnicodeString fSuffix;
@@ -52,21 +58,30 @@ class U_I18N_API SimpleModifier : public Modifier, public UMemory {
   public:
     SimpleModifier(const SimpleFormatter &simpleFormatter, Field field, bool strong);
 
+    SimpleModifier(const SimpleFormatter &simpleFormatter, Field field, bool strong,
+                   const Modifier::Parameters parameters);
+
     // Default constructor for LongNameHandler.h
     SimpleModifier();
 
     int32_t apply(NumberStringBuilder &output, int32_t leftIndex, int32_t rightIndex,
                   UErrorCode &status) const U_OVERRIDE;
 
-    int32_t getPrefixLength(UErrorCode &status) const U_OVERRIDE;
+    int32_t getPrefixLength() const U_OVERRIDE;
 
-    int32_t getCodePointCount(UErrorCode &status) const U_OVERRIDE;
+    int32_t getCodePointCount() const U_OVERRIDE;
 
     bool isStrong() const U_OVERRIDE;
 
+    bool containsField(UNumberFormatFields field) const U_OVERRIDE;
+
+    void getParameters(Parameters& output) const U_OVERRIDE;
+
+    bool semanticallyEquivalent(const Modifier& other) const U_OVERRIDE;
+
     /**
      * TODO: This belongs in SimpleFormatterImpl. The only reason I haven't moved it there yet is because
-     * DoubleSidedStringBuilder is an internal class and SimpleFormatterImpl feels like it should not depend on it.
+     * NumberStringBuilder is an internal class and SimpleFormatterImpl feels like it should not depend on it.
      *
      * <p>
      * Formats a value that is already stored inside the StringBuilder <code>result</code> between the indices
@@ -85,16 +100,33 @@ class U_I18N_API SimpleModifier : public Modifier, public UMemory {
      * @return The number of characters (UTF-16 code points) that were added to the StringBuilder.
      */
     int32_t
-    formatAsPrefixSuffix(NumberStringBuilder &result, int32_t startIndex, int32_t endIndex, Field field,
-                         UErrorCode &status) const;
+    formatAsPrefixSuffix(NumberStringBuilder& result, int32_t startIndex, int32_t endIndex, Field field,
+                         UErrorCode& status) const;
+
+    /**
+     * TODO: Like above, this belongs with the rest of the SimpleFormatterImpl code.
+     * I put it here so that the SimpleFormatter uses in NumberStringBuilder are near each other.
+     *
+     * <p>
+     * Applies the compiled two-argument pattern to the NumberStringBuilder.
+     *
+     * <p>
+     * This method is optimized for the case where the prefix and suffix are often empty, such as
+     * in the range pattern like "{0}-{1}".
+     */
+    static int32_t
+    formatTwoArgPattern(const SimpleFormatter& compiled, NumberStringBuilder& result,
+                        int32_t index, int32_t* outPrefixLength, int32_t* outSuffixLength,
+                        Field field, UErrorCode& status);
 
   private:
     UnicodeString fCompiledPattern;
     Field fField;
-    bool fStrong;
-    int32_t fPrefixLength;
-    int32_t fSuffixOffset;
-    int32_t fSuffixLength;
+    bool fStrong = false;
+    int32_t fPrefixLength = 0;
+    int32_t fSuffixOffset = -1;
+    int32_t fSuffixLength = 0;
+    Modifier::Parameters fParameters;
 };
 
 /**
@@ -103,6 +135,18 @@ class U_I18N_API SimpleModifier : public Modifier, public UMemory {
  */
 class U_I18N_API ConstantMultiFieldModifier : public Modifier, public UMemory {
   public:
+    ConstantMultiFieldModifier(
+            const NumberStringBuilder &prefix,
+            const NumberStringBuilder &suffix,
+            bool overwrite,
+            bool strong,
+            const Modifier::Parameters parameters)
+      : fPrefix(prefix),
+        fSuffix(suffix),
+        fOverwrite(overwrite),
+        fStrong(strong),
+        fParameters(parameters) {}
+
     ConstantMultiFieldModifier(
             const NumberStringBuilder &prefix,
             const NumberStringBuilder &suffix,
@@ -116,12 +160,18 @@ class U_I18N_API ConstantMultiFieldModifier : public Modifier, public UMemory {
     int32_t apply(NumberStringBuilder &output, int32_t leftIndex, int32_t rightIndex,
                   UErrorCode &status) const U_OVERRIDE;
 
-    int32_t getPrefixLength(UErrorCode &status) const U_OVERRIDE;
+    int32_t getPrefixLength() const U_OVERRIDE;
 
-    int32_t getCodePointCount(UErrorCode &status) const U_OVERRIDE;
+    int32_t getCodePointCount() const U_OVERRIDE;
 
     bool isStrong() const U_OVERRIDE;
 
+    bool containsField(UNumberFormatFields field) const U_OVERRIDE;
+
+    void getParameters(Parameters& output) const U_OVERRIDE;
+
+    bool semanticallyEquivalent(const Modifier& other) const U_OVERRIDE;
+
   protected:
     // NOTE: In Java, these are stored as array pointers. In C++, the NumberStringBuilder is stored by
     // value and is treated internally as immutable.
@@ -129,6 +179,7 @@ class U_I18N_API ConstantMultiFieldModifier : public Modifier, public UMemory {
     NumberStringBuilder fSuffix;
     bool fOverwrite;
     bool fStrong;
+    Modifier::Parameters fParameters;
 };
 
 /** Identical to {@link ConstantMultiFieldModifier}, but supports currency spacing. */
@@ -192,13 +243,11 @@ class U_I18N_API EmptyModifier : public Modifier, public UMemory {
         return 0;
     }
 
-    int32_t getPrefixLength(UErrorCode &status) const U_OVERRIDE {
-        (void)status;
+    int32_t getPrefixLength() const U_OVERRIDE {
         return 0;
     }
 
-    int32_t getCodePointCount(UErrorCode &status) const U_OVERRIDE {
-        (void)status;
+    int32_t getCodePointCount() const U_OVERRIDE {
         return 0;
     }
 
@@ -206,55 +255,75 @@ class U_I18N_API EmptyModifier : public Modifier, public UMemory {
         return fStrong;
     }
 
+    bool containsField(UNumberFormatFields field) const U_OVERRIDE {
+        (void)field;
+        return false;
+    }
+
+    void getParameters(Parameters& output) const U_OVERRIDE {
+        output.obj = nullptr;
+    }
+
+    bool semanticallyEquivalent(const Modifier& other) const U_OVERRIDE {
+        return other.getCodePointCount() == 0;
+    }
+
   private:
     bool fStrong;
 };
 
 /**
- * A ParameterizedModifier by itself is NOT a Modifier. Rather, it wraps a data structure containing two or more
- * Modifiers and returns the modifier appropriate for the current situation.
+ * This implementation of ModifierStore adopts Modifer pointers.
  */
-class U_I18N_API ParameterizedModifier : public UMemory {
+class U_I18N_API AdoptingModifierStore : public ModifierStore, public UMemory {
   public:
-    // NOTE: mods is zero-initialized (to nullptr)
-    ParameterizedModifier() : mods() {
-    }
+    virtual ~AdoptingModifierStore();
 
-    // No copying!
-    ParameterizedModifier(const ParameterizedModifier &other) = delete;
+    static constexpr StandardPlural::Form DEFAULT_STANDARD_PLURAL = StandardPlural::OTHER;
 
-    ~ParameterizedModifier() {
-        for (const Modifier *mod : mods) {
-            delete mod;
-        }
-    }
+    AdoptingModifierStore() = default;
 
-    void adoptPositiveNegativeModifiers(
-            const Modifier *positive, const Modifier *zero, const Modifier *negative) {
-        mods[2] = positive;
-        mods[1] = zero;
-        mods[0] = negative;
-    }
+    // No copying!
+    AdoptingModifierStore(const AdoptingModifierStore &other) = delete;
 
-    /** The modifier is ADOPTED. */
-    void adoptSignPluralModifier(int8_t signum, StandardPlural::Form plural, const Modifier *mod) {
+    /**
+     * Sets the Modifier with the specified signum and plural form.
+     */
+    void adoptModifier(int8_t signum, StandardPlural::Form plural, const Modifier *mod) {
+        U_ASSERT(mods[getModIndex(signum, plural)] == nullptr);
         mods[getModIndex(signum, plural)] = mod;
     }
 
+    /**
+     * Sets the Modifier with the specified signum.
+     * The modifier will apply to all plural forms.
+     */
+    void adoptModifierWithoutPlural(int8_t signum, const Modifier *mod) {
+        U_ASSERT(mods[getModIndex(signum, DEFAULT_STANDARD_PLURAL)] == nullptr);
+        mods[getModIndex(signum, DEFAULT_STANDARD_PLURAL)] = mod;
+    }
+
     /** Returns a reference to the modifier; no ownership change. */
-    const Modifier *getModifier(int8_t signum) const {
-        return mods[signum + 1];
+    const Modifier *getModifier(int8_t signum, StandardPlural::Form plural) const U_OVERRIDE {
+        const Modifier* modifier = mods[getModIndex(signum, plural)];
+        if (modifier == nullptr && plural != DEFAULT_STANDARD_PLURAL) {
+            modifier = mods[getModIndex(signum, DEFAULT_STANDARD_PLURAL)];
+        }
+        return modifier;
     }
 
     /** Returns a reference to the modifier; no ownership change. */
-    const Modifier *getModifier(int8_t signum, StandardPlural::Form plural) const {
-        return mods[getModIndex(signum, plural)];
+    const Modifier *getModifierWithoutPlural(int8_t signum) const {
+        return mods[getModIndex(signum, DEFAULT_STANDARD_PLURAL)];
     }
 
   private:
-    const Modifier *mods[3 * StandardPlural::COUNT];
+    // NOTE: mods is zero-initialized (to nullptr)
+    const Modifier *mods[3 * StandardPlural::COUNT] = {};
 
     inline static int32_t getModIndex(int8_t signum, StandardPlural::Form plural) {
+        U_ASSERT(signum >= -1 && signum <= 1);
+        U_ASSERT(plural >= 0 && plural < StandardPlural::COUNT);
         return static_cast<int32_t>(plural) * 3 + (signum + 1);
     }
 };
index a27142c9bd689b69df3f1e252af0fe9e0c358568..ecb50dd9b820194d5854159b01ed71d77e4e50bb 100644 (file)
@@ -143,14 +143,14 @@ void Scale::applyReciprocalTo(impl::DecimalQuantity& quantity) const {
 
 void
 MultiplierFormatHandler::setAndChain(const Scale& multiplier, const MicroPropsGenerator* parent) {
-    this->multiplier = multiplier;
-    this->parent = parent;
+    fMultiplier = multiplier;
+    fParent = parent;
 }
 
 void MultiplierFormatHandler::processQuantity(DecimalQuantity& quantity, MicroProps& micros,
                                               UErrorCode& status) const {
-    parent->processQuantity(quantity, micros, status);
-    multiplier.applyTo(quantity);
+    fParent->processQuantity(quantity, micros, status);
+    fMultiplier.applyTo(quantity);
 }
 
 #endif /* #if !UCONFIG_NO_FORMATTING */
index 82c30c78426cdbf5ddb796ad857b7d102c2e4bcf..d8235dc601b559218ad2db70a5ae6fd0e18ca168 100644 (file)
@@ -28,8 +28,8 @@ class U_I18N_API MultiplierFormatHandler : public MicroPropsGenerator, public UM
                          UErrorCode& status) const U_OVERRIDE;
 
   private:
-    Scale multiplier;
-    const MicroPropsGenerator *parent;
+    Scale fMultiplier;
+    const MicroPropsGenerator *fParent;
 };
 
 
index 97e7b6014f9aac5978f58d7dc33ee8c52916f8af..31684d7208b6068583ae5747852af97762dc6c6d 100644 (file)
@@ -62,7 +62,7 @@ Padder Padder::forProperties(const DecimalFormatProperties& properties) {
 int32_t Padder::padAndApply(const Modifier &mod1, const Modifier &mod2,
                             NumberStringBuilder &string, int32_t leftIndex, int32_t rightIndex,
                             UErrorCode &status) const {
-    int32_t modLength = mod1.getCodePointCount(status) + mod2.getCodePointCount(status);
+    int32_t modLength = mod1.getCodePointCount() + mod2.getCodePointCount();
     int32_t requiredPadding = fWidth - modLength - string.codePointCount();
     U_ASSERT(leftIndex == 0 &&
              rightIndex == string.length()); // fix the previous line to remove this assertion
index 6417e14378bea66e80e7705b22bfde1417965dae..4c61a0d35bca828b3dcf9adc3e17970338b9f0f1 100644 (file)
@@ -24,11 +24,11 @@ MutablePatternModifier::MutablePatternModifier(bool isStrong)
         : fStrong(isStrong) {}
 
 void MutablePatternModifier::setPatternInfo(const AffixPatternProvider* patternInfo) {
-    this->patternInfo = patternInfo;
+    fPatternInfo = patternInfo;
 }
 
 void MutablePatternModifier::setPatternAttributes(UNumberSignDisplay signDisplay, bool perMille) {
-    this->signDisplay = signDisplay;
+    fSignDisplay = signDisplay;
     this->perMilleReplacesPercent = perMille;
 }
 
@@ -36,20 +36,20 @@ void MutablePatternModifier::setSymbols(const DecimalFormatSymbols* symbols,
                                         const CurrencySymbols* currencySymbols,
                                         const UNumberUnitWidth unitWidth, const PluralRules* rules) {
     U_ASSERT((rules != nullptr) == needsPlurals());
-    this->symbols = symbols;
-    this->currencySymbols = currencySymbols;
-    this->unitWidth = unitWidth;
-    this->rules = rules;
+    fSymbols = symbols;
+    fCurrencySymbols = currencySymbols;
+    fUnitWidth = unitWidth;
+    fRules = rules;
 }
 
 void MutablePatternModifier::setNumberProperties(int8_t signum, StandardPlural::Form plural) {
-    this->signum = signum;
-    this->plural = plural;
+    fSignum = signum;
+    fPlural = plural;
 }
 
 bool MutablePatternModifier::needsPlurals() const {
     UErrorCode statusLocal = U_ZERO_ERROR;
-    return patternInfo->containsSymbolType(AffixPatternType::TYPE_CURRENCY_TRIPLE, statusLocal);
+    return fPatternInfo->containsSymbolType(AffixPatternType::TYPE_CURRENCY_TRIPLE, statusLocal);
     // Silently ignore any error codes.
 }
 
@@ -69,7 +69,7 @@ MutablePatternModifier::createImmutableAndChain(const MicroPropsGenerator* paren
             StandardPlural::Form::MANY,
             StandardPlural::Form::OTHER};
 
-    auto pm = new ParameterizedModifier();
+    auto pm = new AdoptingModifierStore();
     if (pm == nullptr) {
         status = U_MEMORY_ALLOCATION_ERROR;
         return nullptr;
@@ -79,26 +79,25 @@ MutablePatternModifier::createImmutableAndChain(const MicroPropsGenerator* paren
         // Slower path when we require the plural keyword.
         for (StandardPlural::Form plural : STANDARD_PLURAL_VALUES) {
             setNumberProperties(1, plural);
-            pm->adoptSignPluralModifier(1, plural, createConstantModifier(status));
+            pm->adoptModifier(1, plural, createConstantModifier(status));
             setNumberProperties(0, plural);
-            pm->adoptSignPluralModifier(0, plural, createConstantModifier(status));
+            pm->adoptModifier(0, plural, createConstantModifier(status));
             setNumberProperties(-1, plural);
-            pm->adoptSignPluralModifier(-1, plural, createConstantModifier(status));
+            pm->adoptModifier(-1, plural, createConstantModifier(status));
         }
         if (U_FAILURE(status)) {
             delete pm;
             return nullptr;
         }
-        return new ImmutablePatternModifier(pm, rules, parent);  // adopts pm
+        return new ImmutablePatternModifier(pm, fRules, parent);  // adopts pm
     } else {
         // Faster path when plural keyword is not needed.
         setNumberProperties(1, StandardPlural::Form::COUNT);
-        Modifier* positive = createConstantModifier(status);
+        pm->adoptModifierWithoutPlural(1, createConstantModifier(status));
         setNumberProperties(0, StandardPlural::Form::COUNT);
-        Modifier* zero = createConstantModifier(status);
+        pm->adoptModifierWithoutPlural(0, createConstantModifier(status));
         setNumberProperties(-1, StandardPlural::Form::COUNT);
-        Modifier* negative = createConstantModifier(status);
-        pm->adoptPositiveNegativeModifiers(positive, zero, negative);
+        pm->adoptModifierWithoutPlural(-1, createConstantModifier(status));
         if (U_FAILURE(status)) {
             delete pm;
             return nullptr;
@@ -112,15 +111,15 @@ ConstantMultiFieldModifier* MutablePatternModifier::createConstantModifier(UErro
     NumberStringBuilder b;
     insertPrefix(a, 0, status);
     insertSuffix(b, 0, status);
-    if (patternInfo->hasCurrencySign()) {
+    if (fPatternInfo->hasCurrencySign()) {
         return new CurrencySpacingEnabledModifier(
-                a, b, !patternInfo->hasBody(), fStrong, *symbols, status);
+                a, b, !fPatternInfo->hasBody(), fStrong, *fSymbols, status);
     } else {
-        return new ConstantMultiFieldModifier(a, b, !patternInfo->hasBody(), fStrong);
+        return new ConstantMultiFieldModifier(a, b, !fPatternInfo->hasBody(), fStrong);
     }
 }
 
-ImmutablePatternModifier::ImmutablePatternModifier(ParameterizedModifier* pm, const PluralRules* rules,
+ImmutablePatternModifier::ImmutablePatternModifier(AdoptingModifierStore* pm, const PluralRules* rules,
                                                    const MicroPropsGenerator* parent)
         : pm(pm), rules(rules), parent(parent) {}
 
@@ -132,7 +131,7 @@ void ImmutablePatternModifier::processQuantity(DecimalQuantity& quantity, MicroP
 
 void ImmutablePatternModifier::applyToMicros(MicroProps& micros, DecimalQuantity& quantity) const {
     if (rules == nullptr) {
-        micros.modMiddle = pm->getModifier(quantity.signum());
+        micros.modMiddle = pm->getModifierWithoutPlural(quantity.signum());
     } else {
         // TODO: Fix this. Avoid the copy.
         DecimalQuantity copy(quantity);
@@ -144,7 +143,7 @@ void ImmutablePatternModifier::applyToMicros(MicroProps& micros, DecimalQuantity
 
 const Modifier* ImmutablePatternModifier::getModifier(int8_t signum, StandardPlural::Form plural) const {
     if (rules == nullptr) {
-        return pm->getModifier(signum);
+        return pm->getModifierWithoutPlural(signum);
     } else {
         return pm->getModifier(signum, plural);
     }
@@ -153,13 +152,13 @@ const Modifier* ImmutablePatternModifier::getModifier(int8_t signum, StandardPlu
 
 /** Used by the unsafe code path. */
 MicroPropsGenerator& MutablePatternModifier::addToChain(const MicroPropsGenerator* parent) {
-    this->parent = parent;
+    fParent = parent;
     return *this;
 }
 
 void MutablePatternModifier::processQuantity(DecimalQuantity& fq, MicroProps& micros,
                                              UErrorCode& status) const {
-    parent->processQuantity(fq, micros, status);
+    fParent->processQuantity(fq, micros, status);
     // The unsafe code path performs self-mutation, so we need a const_cast.
     // This method needs to be const because it overrides a const method in the parent class.
     auto nonConstThis = const_cast<MutablePatternModifier*>(this);
@@ -167,7 +166,7 @@ void MutablePatternModifier::processQuantity(DecimalQuantity& fq, MicroProps& mi
         // TODO: Fix this. Avoid the copy.
         DecimalQuantity copy(fq);
         micros.rounder.apply(copy, status);
-        nonConstThis->setNumberProperties(fq.signum(), utils::getStandardPlural(rules, copy));
+        nonConstThis->setNumberProperties(fq.signum(), utils::getStandardPlural(fRules, copy));
     } else {
         nonConstThis->setNumberProperties(fq.signum(), StandardPlural::Form::COUNT);
     }
@@ -183,7 +182,7 @@ int32_t MutablePatternModifier::apply(NumberStringBuilder& output, int32_t leftI
     int32_t suffixLen = nonConstThis->insertSuffix(output, rightIndex + prefixLen, status);
     // If the pattern had no decimal stem body (like #,##0.00), overwrite the value.
     int32_t overwriteLen = 0;
-    if (!patternInfo->hasBody()) {
+    if (!fPatternInfo->hasBody()) {
         overwriteLen = output.splice(
                 leftIndex + prefixLen,
                 rightIndex + prefixLen,
@@ -199,28 +198,30 @@ int32_t MutablePatternModifier::apply(NumberStringBuilder& output, int32_t leftI
             prefixLen,
             rightIndex + overwriteLen + prefixLen,
             suffixLen,
-            *symbols,
+            *fSymbols,
             status);
     return prefixLen + overwriteLen + suffixLen;
 }
 
-int32_t MutablePatternModifier::getPrefixLength(UErrorCode& status) const {
+int32_t MutablePatternModifier::getPrefixLength() const {
     // The unsafe code path performs self-mutation, so we need a const_cast.
     // This method needs to be const because it overrides a const method in the parent class.
     auto nonConstThis = const_cast<MutablePatternModifier*>(this);
 
     // Enter and exit CharSequence Mode to get the length.
+    UErrorCode status = U_ZERO_ERROR; // status fails only with an iilegal argument exception
     nonConstThis->prepareAffix(true);
     int result = AffixUtils::unescapedCodePointCount(currentAffix, *this, status);  // prefix length
     return result;
 }
 
-int32_t MutablePatternModifier::getCodePointCount(UErrorCode& status) const {
+int32_t MutablePatternModifier::getCodePointCount() const {
     // The unsafe code path performs self-mutation, so we need a const_cast.
     // This method needs to be const because it overrides a const method in the parent class.
     auto nonConstThis = const_cast<MutablePatternModifier*>(this);
 
     // Render the affixes to get the length
+    UErrorCode status = U_ZERO_ERROR; // status fails only with an iilegal argument exception
     nonConstThis->prepareAffix(true);
     int result = AffixUtils::unescapedCodePointCount(currentAffix, *this, status);  // prefix length
     nonConstThis->prepareAffix(false);
@@ -232,6 +233,26 @@ bool MutablePatternModifier::isStrong() const {
     return fStrong;
 }
 
+bool MutablePatternModifier::containsField(UNumberFormatFields field) const {
+    (void)field;
+    // This method is not currently used.
+    U_ASSERT(false);
+    return false;
+}
+
+void MutablePatternModifier::getParameters(Parameters& output) const {
+    (void)output;
+    // This method is not currently used.
+    U_ASSERT(false);
+}
+
+bool MutablePatternModifier::semanticallyEquivalent(const Modifier& other) const {
+    (void)other;
+    // This method is not currently used.
+    U_ASSERT(false);
+    return false;
+}
+
 int32_t MutablePatternModifier::insertPrefix(NumberStringBuilder& sb, int position, UErrorCode& status) {
     prepareAffix(true);
     int length = AffixUtils::unescape(currentAffix, sb, position, *this, status);
@@ -247,40 +268,40 @@ int32_t MutablePatternModifier::insertSuffix(NumberStringBuilder& sb, int positi
 /** This method contains the heart of the logic for rendering LDML affix strings. */
 void MutablePatternModifier::prepareAffix(bool isPrefix) {
     PatternStringUtils::patternInfoToStringBuilder(
-            *patternInfo, isPrefix, signum, signDisplay, plural, perMilleReplacesPercent, currentAffix);
+            *fPatternInfo, isPrefix, fSignum, fSignDisplay, fPlural, perMilleReplacesPercent, currentAffix);
 }
 
 UnicodeString MutablePatternModifier::getSymbol(AffixPatternType type) const {
     UErrorCode localStatus = U_ZERO_ERROR;
     switch (type) {
         case AffixPatternType::TYPE_MINUS_SIGN:
-            return symbols->getSymbol(DecimalFormatSymbols::ENumberFormatSymbol::kMinusSignSymbol);
+            return fSymbols->getSymbol(DecimalFormatSymbols::ENumberFormatSymbol::kMinusSignSymbol);
         case AffixPatternType::TYPE_PLUS_SIGN:
-            return symbols->getSymbol(DecimalFormatSymbols::ENumberFormatSymbol::kPlusSignSymbol);
+            return fSymbols->getSymbol(DecimalFormatSymbols::ENumberFormatSymbol::kPlusSignSymbol);
         case AffixPatternType::TYPE_PERCENT:
-            return symbols->getSymbol(DecimalFormatSymbols::ENumberFormatSymbol::kPercentSymbol);
+            return fSymbols->getSymbol(DecimalFormatSymbols::ENumberFormatSymbol::kPercentSymbol);
         case AffixPatternType::TYPE_PERMILLE:
-            return symbols->getSymbol(DecimalFormatSymbols::ENumberFormatSymbol::kPerMillSymbol);
+            return fSymbols->getSymbol(DecimalFormatSymbols::ENumberFormatSymbol::kPerMillSymbol);
         case AffixPatternType::TYPE_CURRENCY_SINGLE: {
             // UnitWidth ISO and HIDDEN overrides the singular currency symbol.
-            if (unitWidth == UNumberUnitWidth::UNUM_UNIT_WIDTH_ISO_CODE) {
-                return currencySymbols->getIntlCurrencySymbol(localStatus);
-            } else if (unitWidth == UNumberUnitWidth::UNUM_UNIT_WIDTH_HIDDEN) {
+            if (fUnitWidth == UNumberUnitWidth::UNUM_UNIT_WIDTH_ISO_CODE) {
+                return fCurrencySymbols->getIntlCurrencySymbol(localStatus);
+            } else if (fUnitWidth == UNumberUnitWidth::UNUM_UNIT_WIDTH_HIDDEN) {
                 return UnicodeString();
-            } else if (unitWidth == UNumberUnitWidth::UNUM_UNIT_WIDTH_NARROW) {
-                return currencySymbols->getNarrowCurrencySymbol(localStatus);
+            } else if (fUnitWidth == UNumberUnitWidth::UNUM_UNIT_WIDTH_NARROW) {
+                return fCurrencySymbols->getNarrowCurrencySymbol(localStatus);
             } else {
-                return currencySymbols->getCurrencySymbol(localStatus);
+                return fCurrencySymbols->getCurrencySymbol(localStatus);
             }
         }
         case AffixPatternType::TYPE_CURRENCY_DOUBLE:
-            return currencySymbols->getIntlCurrencySymbol(localStatus);
+            return fCurrencySymbols->getIntlCurrencySymbol(localStatus);
         case AffixPatternType::TYPE_CURRENCY_TRIPLE:
             // NOTE: This is the code path only for patterns containing "¤¤¤".
             // Plural currencies set via the API are formatted in LongNameHandler.
             // This code path is used by DecimalFormat via CurrencyPluralInfo.
-            U_ASSERT(plural != StandardPlural::Form::COUNT);
-            return currencySymbols->getPluralName(plural, localStatus);
+            U_ASSERT(fPlural != StandardPlural::Form::COUNT);
+            return fCurrencySymbols->getPluralName(fPlural, localStatus);
         case AffixPatternType::TYPE_CURRENCY_QUAD:
             return UnicodeString(u"\uFFFD");
         case AffixPatternType::TYPE_CURRENCY_QUINT:
index f1359bd5747d897e6887c1a0c3843f9cd59d4ce5..ea80d6305e75b4444934f13733f91c27e9a79c75 100644 (file)
 U_NAMESPACE_BEGIN
 
 // Export an explicit template instantiation of the LocalPointer that is used as a
-// data member of ParameterizedModifier.
+// data member of AdoptingModifierStore.
 // (When building DLLs for Windows this is required.)
 #if U_PF_WINDOWS <= U_PLATFORM && U_PLATFORM <= U_PF_CYGWIN
 // Ignore warning 4661 as LocalPointerBase does not use operator== or operator!=
 #pragma warning(suppress: 4661)
-template class U_I18N_API LocalPointerBase<number::impl::ParameterizedModifier>;
-template class U_I18N_API LocalPointer<number::impl::ParameterizedModifier>;
+template class U_I18N_API LocalPointerBase<number::impl::AdoptingModifierStore>;
+template class U_I18N_API LocalPointer<number::impl::AdoptingModifierStore>;
 #endif
 
 namespace number {
@@ -45,10 +45,10 @@ class U_I18N_API ImmutablePatternModifier : public MicroPropsGenerator, public U
     const Modifier* getModifier(int8_t signum, StandardPlural::Form plural) const;
 
   private:
-    ImmutablePatternModifier(ParameterizedModifier* pm, const PluralRules* rules,
+    ImmutablePatternModifier(AdoptingModifierStore* pm, const PluralRules* rules,
                              const MicroPropsGenerator* parent);
 
-    const LocalPointer<ParameterizedModifier> pm;
+    const LocalPointer<AdoptingModifierStore> pm;
     const PluralRules* rules;
     const MicroPropsGenerator* parent;
 
@@ -178,12 +178,18 @@ class U_I18N_API MutablePatternModifier
     int32_t apply(NumberStringBuilder &output, int32_t leftIndex, int32_t rightIndex,
                   UErrorCode &status) const U_OVERRIDE;
 
-    int32_t getPrefixLength(UErrorCode &status) const U_OVERRIDE;
+    int32_t getPrefixLength() const U_OVERRIDE;
 
-    int32_t getCodePointCount(UErrorCode &status) const U_OVERRIDE;
+    int32_t getCodePointCount() const U_OVERRIDE;
 
     bool isStrong() const U_OVERRIDE;
 
+    bool containsField(UNumberFormatFields field) const U_OVERRIDE;
+
+    void getParameters(Parameters& output) const U_OVERRIDE;
+
+    bool semanticallyEquivalent(const Modifier& other) const U_OVERRIDE;
+
     /**
      * Returns the string that substitutes a given symbol type in a pattern.
      */
@@ -196,22 +202,22 @@ class U_I18N_API MutablePatternModifier
     const bool fStrong;
 
     // Pattern details (initialized in setPatternInfo and setPatternAttributes)
-    const AffixPatternProvider *patternInfo;
-    UNumberSignDisplay signDisplay;
+    const AffixPatternProvider *fPatternInfo;
+    UNumberSignDisplay fSignDisplay;
     bool perMilleReplacesPercent;
 
     // Symbol details (initialized in setSymbols)
-    const DecimalFormatSymbols *symbols;
-    UNumberUnitWidth unitWidth;
-    const CurrencySymbols *currencySymbols;
-    const PluralRules *rules;
+    const DecimalFormatSymbols *fSymbols;
+    UNumberUnitWidth fUnitWidth;
+    const CurrencySymbols *fCurrencySymbols;
+    const PluralRules *fRules;
 
     // Number details (initialized in setNumberProperties)
-    int8_t signum;
-    StandardPlural::Form plural;
+    int8_t fSignum;
+    StandardPlural::Form fPlural;
 
     // QuantityChain details (initialized in addToChain)
-    const MicroPropsGenerator *parent;
+    const MicroPropsGenerator *fParent;
 
     // Transient fields for rendering
     UnicodeString currentAffix;
index e9adfb402bd5066b1f0eefbb7afd0851e74d17d3..009e4dfa5b5d4c0891db587d4e7a26891d8d4b4a 100644 (file)
@@ -76,17 +76,16 @@ int32_t ScientificModifier::apply(NumberStringBuilder &output, int32_t /*leftInd
     return i - rightIndex;
 }
 
-int32_t ScientificModifier::getPrefixLength(UErrorCode &status) const {
-    (void)status;
+int32_t ScientificModifier::getPrefixLength() const {
     // TODO: Localized exponent separator location.
     return 0;
 }
 
-int32_t ScientificModifier::getCodePointCount(UErrorCode &status) const {
-    (void)status;
-    // This method is not used for strong modifiers.
-    U_ASSERT(false);
-    return 0;
+int32_t ScientificModifier::getCodePointCount() const {
+    // NOTE: This method is only called one place, NumberRangeFormatterImpl.
+    // The call site only cares about != 0 and != 1.
+    // Return a very large value so that if this method is used elsewhere, we should notice.
+    return 999;
 }
 
 bool ScientificModifier::isStrong() const {
@@ -94,6 +93,27 @@ bool ScientificModifier::isStrong() const {
     return true;
 }
 
+bool ScientificModifier::containsField(UNumberFormatFields field) const {
+    (void)field;
+    // This method is not used for inner modifiers.
+    U_ASSERT(false);
+    return false;
+}
+
+void ScientificModifier::getParameters(Parameters& output) const {
+    // Not part of any plural sets
+    output.obj = nullptr;
+}
+
+bool ScientificModifier::semanticallyEquivalent(const Modifier& other) const {
+    auto* _other = dynamic_cast<const ScientificModifier*>(&other);
+    if (_other == nullptr) {
+        return false;
+    }
+    // TODO: Check for locale symbols and settings as well? Could be less efficient.
+    return fExponent == _other->fExponent;
+}
+
 // Note: Visual Studio does not compile this function without full name space. Why?
 icu::number::impl::ScientificHandler::ScientificHandler(const Notation *notation, const DecimalFormatSymbols *symbols,
        const MicroPropsGenerator *parent) : 
index 974ab3adb614ca34637981d03bfbb530f10c6f22..e377bd941efaeb07ac7d9cdc00cd519cb443d3e5 100644 (file)
@@ -24,12 +24,18 @@ class U_I18N_API ScientificModifier : public UMemory, public Modifier {
     int32_t apply(NumberStringBuilder &output, int32_t leftIndex, int32_t rightIndex,
                   UErrorCode &status) const U_OVERRIDE;
 
-    int32_t getPrefixLength(UErrorCode &status) const U_OVERRIDE;
+    int32_t getPrefixLength() const U_OVERRIDE;
 
-    int32_t getCodePointCount(UErrorCode &status) const U_OVERRIDE;
+    int32_t getCodePointCount() const U_OVERRIDE;
 
     bool isStrong() const U_OVERRIDE;
 
+    bool containsField(UNumberFormatFields field) const U_OVERRIDE;
+
+    void getParameters(Parameters& output) const U_OVERRIDE;
+
+    bool semanticallyEquivalent(const Modifier& other) const U_OVERRIDE;
+
   private:
     int32_t fExponent;
     const ScientificHandler *fHandler;
index 37770d11d51dfba56f5516cb89056a77956dc7a8..74ba33fbbc159fd1e44c6cb3af8d163190c00015 100644 (file)
@@ -241,6 +241,9 @@ NumberStringBuilder::insert(int32_t index, const NumberStringBuilder &other, UEr
 }
 
 int32_t NumberStringBuilder::prepareForInsert(int32_t index, int32_t count, UErrorCode &status) {
+    U_ASSERT(index >= 0);
+    U_ASSERT(index <= fLength);
+    U_ASSERT(count >= 0);
     if (index == 0 && fZero - count >= 0) {
         // Append to start
         fZero -= count;
@@ -485,4 +488,13 @@ void NumberStringBuilder::getAllFieldPositions(FieldPositionIteratorHandler& fpi
     }
 }
 
+bool NumberStringBuilder::containsField(Field field) const {
+    for (int32_t i = 0; i < fLength; i++) {
+        if (field == fieldAt(i)) {
+            return true;
+        }
+    }
+    return false;
+}
+
 #endif /* #if !UCONFIG_NO_FORMATTING */
index cd8ce2f805e994f8fb1e3af67cb54b0dec593a3f..b14ad9ede2f90f47194344dfacd07a07f7a29fad 100644 (file)
@@ -106,6 +106,8 @@ class U_I18N_API NumberStringBuilder : public UMemory {
 
     void getAllFieldPositions(FieldPositionIteratorHandler& fpih, UErrorCode& status) const;
 
+    bool containsField(Field field) const;
+
   private:
     bool fUsingHeap = false;
     ValueOrHeapArray<char16_t> fChars;
index 57da72f8aa0ac1ffe122d761009a898a368636ed..00a6818869fdc22d898912d9d928f396d1e7f9a4 100644 (file)
@@ -16,6 +16,7 @@
 #include "uassert.h"
 #include "unicode/platform.h"
 #include "unicode/uniset.h"
+#include "standardplural.h"
 
 U_NAMESPACE_BEGIN namespace number {
 namespace impl {
@@ -45,6 +46,7 @@ class Modifier;
 class MutablePatternModifier;
 class DecimalQuantity;
 class NumberStringBuilder;
+class ModifierStore;
 struct MicroProps;
 
 
@@ -127,12 +129,13 @@ class U_I18N_API AffixPatternProvider {
     virtual bool hasBody() const = 0;
 };
 
+
 /**
  * A Modifier is an object that can be passed through the formatting pipeline until it is finally applied to the string
  * builder. A Modifier usually contains a prefix and a suffix that are applied, but it could contain something else,
  * like a {@link com.ibm.icu.text.SimpleFormatter} pattern.
  *
- * A Modifier is usually immutable, except in cases such as {@link MurkyModifier}, which are mutable for performance
+ * A Modifier is usually immutable, except in cases such as {@link MutablePatternModifier}, which are mutable for performance
  * reasons.
  *
  * Exported as U_I18N_API because it is a base class for other exported types
@@ -162,12 +165,12 @@ class U_I18N_API Modifier {
      *
      * @return The number of characters (UTF-16 code units) in the prefix.
      */
-    virtual int32_t getPrefixLength(UErrorCode& status) const = 0;
+    virtual int32_t getPrefixLength() const = 0;
 
     /**
      * Returns the number of code points in the modifier, prefix plus suffix.
      */
-    virtual int32_t getCodePointCount(UErrorCode& status) const = 0;
+    virtual int32_t getCodePointCount() const = 0;
 
     /**
      * Whether this modifier is strong. If a modifier is strong, it should always be applied immediately and not allowed
@@ -177,8 +180,57 @@ class U_I18N_API Modifier {
      * @return Whether the modifier is strong.
      */
     virtual bool isStrong() const = 0;
+
+    /**
+     * Whether the modifier contains at least one occurrence of the given field.
+     */
+    virtual bool containsField(UNumberFormatFields field) const = 0;
+
+    /**
+     * A fill-in for getParameters(). obj will always be set; if non-null, the other
+     * two fields are also safe to read.
+     */
+    struct U_I18N_API Parameters {
+        const ModifierStore* obj = nullptr;
+        int8_t signum;
+        StandardPlural::Form plural;
+
+        Parameters();
+        Parameters(const ModifierStore* _obj, int8_t _signum, StandardPlural::Form _plural);
+    };
+
+    /**
+     * Gets a set of "parameters" for this Modifier.
+     *
+     * TODO: Make this return a `const Parameters*` more like Java?
+     */
+    virtual void getParameters(Parameters& output) const = 0;
+
+    /**
+     * Returns whether this Modifier is *semantically equivalent* to the other Modifier;
+     * in many cases, this is the same as equal, but parameters should be ignored.
+     */
+    virtual bool semanticallyEquivalent(const Modifier& other) const = 0;
 };
 
+
+/**
+ * This is *not* a modifier; rather, it is an object that can return modifiers
+ * based on given parameters.
+ *
+ * Exported as U_I18N_API because it is a base class for other exported types.
+ */
+class U_I18N_API ModifierStore {
+  public:
+    virtual ~ModifierStore();
+
+    /**
+     * Returns a Modifier with the given parameters (best-effort).
+     */
+    virtual const Modifier* getModifier(int8_t signum, StandardPlural::Form plural) const = 0;
+};
+
+
 /**
  * This interface is used when all number formatting settings, including the locale, are known, except for the quantity
  * itself. The {@link #processQuantity} method performs the final step in the number processing pipeline: it uses the
index cf0ce6f0ed5b4f9c87ab1a8e807380ed2f66adf6..626a5d16fb29f3f5e912a02b6cace2302f8213d4 100644 (file)
@@ -1326,13 +1326,13 @@ NumberFormat::makeInstance(const Locale& desiredLocale,
 
         // if the locale has "@compat=host", create a host-specific NumberFormat
         if (U_SUCCESS(status) && count > 0 && uprv_strcmp(buffer, "host") == 0) {
-            Win32NumberFormat *f = NULL;
             UBool curr = TRUE;
 
             switch (style) {
             case UNUM_DECIMAL:
                 curr = FALSE;
                 // fall-through
+                U_FALLTHROUGH;
 
             case UNUM_CURRENCY:
             case UNUM_CURRENCY_ISO: // do not support plural formatting here
@@ -1340,14 +1340,13 @@ NumberFormat::makeInstance(const Locale& desiredLocale,
             case UNUM_CURRENCY_ACCOUNTING:
             case UNUM_CASH_CURRENCY:
             case UNUM_CURRENCY_STANDARD:
-                f = new Win32NumberFormat(desiredLocale, curr, status);
-
+            {
+                LocalPointer<Win32NumberFormat> f(new Win32NumberFormat(desiredLocale, curr, status), status);
                 if (U_SUCCESS(status)) {
-                    return f;
+                    return f.orphan();
                 }
-
-                delete f;
-                break;
+            }
+            break;
             default:
                 break;
             }
@@ -1417,8 +1416,7 @@ NumberFormat::makeInstance(const Locale& desiredLocale,
         }
     }
 
-
-    NumberFormat *f;
+    LocalPointer<NumberFormat> f;
     if (ns->isAlgorithmic()) {
         UnicodeString nsDesc;
         UnicodeString nsRuleSetGroup;
@@ -1453,7 +1451,7 @@ NumberFormat::makeInstance(const Locale& desiredLocale,
             return NULL;
         }
         r->setDefaultRuleSet(nsRuleSetName,status);
-        f = r;
+        f.adoptInstead(r);
     } else {
         // replace single currency sign in the pattern with double currency sign
         // if the style is UNUM_CURRENCY_ISO
@@ -1462,9 +1460,22 @@ NumberFormat::makeInstance(const Locale& desiredLocale,
                                    UnicodeString(TRUE, gDoubleCurrencySign, 2));
         }
 
-        // "new DecimalFormat()" does not adopt the symbols if its memory allocation fails.
-        DecimalFormatSymbols *syms = symbolsToAdopt.orphan();
-        DecimalFormat* df = new DecimalFormat(pattern, syms, style, status);
+        // "new DecimalFormat()" does not adopt the symbols argument if its memory allocation fails.
+        // So we can't use adoptInsteadAndCheckErrorCode as we need to know if the 'new' failed.
+        DecimalFormatSymbols *syms = symbolsToAdopt.getAlias();
+        LocalPointer<DecimalFormat> df(new DecimalFormat(pattern, syms, style, status));
+
+        if (df.isValid()) {
+            // if the DecimalFormat object was successfully new'ed, then it will own symbolsToAdopt, even if the status is a failure.
+            symbolsToAdopt.orphan();
+        }
+        else {
+            status = U_MEMORY_ALLOCATION_ERROR;
+        }
+
+        if (U_FAILURE(status)) {
+            return nullptr;
+        }
 
         // if it is cash currency style, setCurrencyUsage with usage
         if (style == UNUM_CASH_CURRENCY){
@@ -1472,25 +1483,18 @@ NumberFormat::makeInstance(const Locale& desiredLocale,
         }
 
         if (U_FAILURE(status)) {
-            delete df;
-            return NULL;
+            return nullptr;
         }
 
-        f = df;
-        if (f == NULL) {
-            delete syms;
-            status = U_MEMORY_ALLOCATION_ERROR;
-            return NULL;
-        }
+        f.adoptInstead(df.orphan());
     }
 
     f->setLocaleIDs(ures_getLocaleByType(ownedResource.getAlias(), ULOC_VALID_LOCALE, &status),
                     ures_getLocaleByType(ownedResource.getAlias(), ULOC_ACTUAL_LOCALE, &status));
     if (U_FAILURE(status)) {
-        delete f;
         return NULL;
     }
-    return f;
+    return f.orphan();
 }
 
 /**
index ae8196ec483799f0ec1fd328bab1110e60d0d30d..598ace56533c36ab8ee64934bc470d98b4e3414d 100644 (file)
@@ -111,7 +111,9 @@ bool CombinedCurrencyMatcher::matchCurrency(StringSegment& segment, ParsedNumber
 
     int32_t overlap2;
     if (!fCurrency2.isEmpty()) {
-        overlap2 = segment.getCaseSensitivePrefixLength(fCurrency2);
+        // ISO codes should be accepted case-insensitive.
+        // https://unicode-org.atlassian.net/browse/ICU-13696
+        overlap2 = segment.getCommonPrefixLength(fCurrency2);
     } else {
         overlap2 = -1;
     }
index 5fa52f63351c313e27637994e51c69815bf2c37f..3192a3959389a790a6e0944542570724306b89a5 100644 (file)
@@ -159,10 +159,10 @@ NumberParserImpl::createParserFromProperties(const number::impl::DecimalFormatPr
 
     // ICU-TC meeting, April 11, 2018: accept percent/permille only if it is in the pattern,
     // and to maintain regressive behavior, divide by 100 even if no percent sign is present.
-    if (affixProvider->containsSymbolType(AffixPatternType::TYPE_PERCENT, status)) {
+    if (!isStrict && affixProvider->containsSymbolType(AffixPatternType::TYPE_PERCENT, status)) {
         parser->addMatcher(parser->fLocalMatchers.percent = {symbols});
     }
-    if (affixProvider->containsSymbolType(AffixPatternType::TYPE_PERMILLE, status)) {
+    if (!isStrict && affixProvider->containsSymbolType(AffixPatternType::TYPE_PERMILLE, status)) {
         parser->addMatcher(parser->fLocalMatchers.permille = {symbols});
     }
 
index 611695e57d4743ccd7e117eda1bcbd662a151977..de38957440817cdcffdd5a952b8a38b3f1b5089c 100644 (file)
@@ -56,6 +56,11 @@ bool ScientificMatcher::match(StringSegment& segment, ParsedNumber& result, UErr
         return false;
     }
 
+    // Only accept one exponent per string.
+    if (0 != (result.flags & FLAG_HAS_EXPONENT)) {
+        return false;
+    }
+
     // First match the scientific separator, and then match another number after it.
     // NOTE: This is guarded by the smoke test; no need to check fExponentSeparatorString length again.
     int overlap1 = segment.getCommonPrefixLength(fExponentSeparatorString);
diff --git a/source/i18n/numrange_fluent.cpp b/source/i18n/numrange_fluent.cpp
new file mode 100644 (file)
index 0000000..12b006c
--- /dev/null
@@ -0,0 +1,472 @@
+// © 2018 and later: Unicode, Inc. and others.
+// License & terms of use: http://www.unicode.org/copyright.html
+
+#include "unicode/utypes.h"
+
+#if !UCONFIG_NO_FORMATTING
+
+// Allow implicit conversion from char16_t* to UnicodeString for this file:
+// Helpful in toString methods and elsewhere.
+#define UNISTR_FROM_STRING_EXPLICIT
+
+#include "numrange_impl.h"
+#include "util.h"
+#include "number_utypes.h"
+
+using namespace icu;
+using namespace icu::number;
+using namespace icu::number::impl;
+
+
+// This function needs to be declared in this namespace so it can be friended.
+// NOTE: In Java, this logic is handled in the resolve() function.
+void icu::number::impl::touchRangeLocales(RangeMacroProps& macros) {
+    macros.formatter1.fMacros.locale = macros.locale;
+    macros.formatter2.fMacros.locale = macros.locale;
+}
+
+
+template<typename Derived>
+Derived NumberRangeFormatterSettings<Derived>::numberFormatterBoth(const UnlocalizedNumberFormatter& formatter) const& {
+    Derived copy(*this);
+    copy.fMacros.formatter1 = formatter;
+    copy.fMacros.singleFormatter = true;
+    touchRangeLocales(copy.fMacros);
+    return copy;
+}
+
+template<typename Derived>
+Derived NumberRangeFormatterSettings<Derived>::numberFormatterBoth(const UnlocalizedNumberFormatter& formatter) && {
+    Derived move(std::move(*this));
+    move.fMacros.formatter1 = formatter;
+    move.fMacros.singleFormatter = true;
+    touchRangeLocales(move.fMacros);
+    return move;
+}
+
+template<typename Derived>
+Derived NumberRangeFormatterSettings<Derived>::numberFormatterBoth(UnlocalizedNumberFormatter&& formatter) const& {
+    Derived copy(*this);
+    copy.fMacros.formatter1 = std::move(formatter);
+    copy.fMacros.singleFormatter = true;
+    touchRangeLocales(copy.fMacros);
+    return copy;
+}
+
+template<typename Derived>
+Derived NumberRangeFormatterSettings<Derived>::numberFormatterBoth(UnlocalizedNumberFormatter&& formatter) && {
+    Derived move(std::move(*this));
+    move.fMacros.formatter1 = std::move(formatter);
+    move.fMacros.singleFormatter = true;
+    touchRangeLocales(move.fMacros);
+    return move;
+}
+
+template<typename Derived>
+Derived NumberRangeFormatterSettings<Derived>::numberFormatterFirst(const UnlocalizedNumberFormatter& formatter) const& {
+    Derived copy(*this);
+    copy.fMacros.formatter1 = formatter;
+    copy.fMacros.singleFormatter = false;
+    touchRangeLocales(copy.fMacros);
+    return copy;
+}
+
+template<typename Derived>
+Derived NumberRangeFormatterSettings<Derived>::numberFormatterFirst(const UnlocalizedNumberFormatter& formatter) && {
+    Derived move(std::move(*this));
+    move.fMacros.formatter1 = formatter;
+    move.fMacros.singleFormatter = false;
+    touchRangeLocales(move.fMacros);
+    return move;
+}
+
+template<typename Derived>
+Derived NumberRangeFormatterSettings<Derived>::numberFormatterFirst(UnlocalizedNumberFormatter&& formatter) const& {
+    Derived copy(*this);
+    copy.fMacros.formatter1 = std::move(formatter);
+    copy.fMacros.singleFormatter = false;
+    touchRangeLocales(copy.fMacros);
+    return copy;
+}
+
+template<typename Derived>
+Derived NumberRangeFormatterSettings<Derived>::numberFormatterFirst(UnlocalizedNumberFormatter&& formatter) && {
+    Derived move(std::move(*this));
+    move.fMacros.formatter1 = std::move(formatter);
+    move.fMacros.singleFormatter = false;
+    touchRangeLocales(move.fMacros);
+    return move;
+}
+
+template<typename Derived>
+Derived NumberRangeFormatterSettings<Derived>::numberFormatterSecond(const UnlocalizedNumberFormatter& formatter) const& {
+    Derived copy(*this);
+    copy.fMacros.formatter2 = formatter;
+    copy.fMacros.singleFormatter = false;
+    touchRangeLocales(copy.fMacros);
+    return copy;
+}
+
+template<typename Derived>
+Derived NumberRangeFormatterSettings<Derived>::numberFormatterSecond(const UnlocalizedNumberFormatter& formatter) && {
+    Derived move(std::move(*this));
+    move.fMacros.formatter2 = formatter;
+    move.fMacros.singleFormatter = false;
+    touchRangeLocales(move.fMacros);
+    return move;
+}
+
+template<typename Derived>
+Derived NumberRangeFormatterSettings<Derived>::numberFormatterSecond(UnlocalizedNumberFormatter&& formatter) const& {
+    Derived copy(*this);
+    copy.fMacros.formatter2 = std::move(formatter);
+    copy.fMacros.singleFormatter = false;
+    touchRangeLocales(copy.fMacros);
+    return copy;
+}
+
+template<typename Derived>
+Derived NumberRangeFormatterSettings<Derived>::numberFormatterSecond(UnlocalizedNumberFormatter&& formatter) && {
+    Derived move(std::move(*this));
+    move.fMacros.formatter2 = std::move(formatter);
+    move.fMacros.singleFormatter = false;
+    touchRangeLocales(move.fMacros);
+    return move;
+}
+
+template<typename Derived>
+Derived NumberRangeFormatterSettings<Derived>::collapse(UNumberRangeCollapse collapse) const& {
+    Derived copy(*this);
+    copy.fMacros.collapse = collapse;
+    return copy;
+}
+
+template<typename Derived>
+Derived NumberRangeFormatterSettings<Derived>::collapse(UNumberRangeCollapse collapse) && {
+    Derived move(std::move(*this));
+    move.fMacros.collapse = collapse;
+    return move;
+}
+
+template<typename Derived>
+Derived NumberRangeFormatterSettings<Derived>::identityFallback(UNumberRangeIdentityFallback identityFallback) const& {
+    Derived copy(*this);
+    copy.fMacros.identityFallback = identityFallback;
+    return copy;
+}
+
+template<typename Derived>
+Derived NumberRangeFormatterSettings<Derived>::identityFallback(UNumberRangeIdentityFallback identityFallback) && {
+    Derived move(std::move(*this));
+    move.fMacros.identityFallback = identityFallback;
+    return move;
+}
+
+// Declare all classes that implement NumberRangeFormatterSettings
+// See https://stackoverflow.com/a/495056/1407170
+template
+class icu::number::NumberRangeFormatterSettings<icu::number::UnlocalizedNumberRangeFormatter>;
+template
+class icu::number::NumberRangeFormatterSettings<icu::number::LocalizedNumberRangeFormatter>;
+
+
+UnlocalizedNumberRangeFormatter NumberRangeFormatter::with() {
+    UnlocalizedNumberRangeFormatter result;
+    return result;
+}
+
+LocalizedNumberRangeFormatter NumberRangeFormatter::withLocale(const Locale& locale) {
+    return with().locale(locale);
+}
+
+
+template<typename T> using NFS = NumberRangeFormatterSettings<T>;
+using LNF = LocalizedNumberRangeFormatter;
+using UNF = UnlocalizedNumberRangeFormatter;
+
+UnlocalizedNumberRangeFormatter::UnlocalizedNumberRangeFormatter(const UNF& other)
+        : UNF(static_cast<const NFS<UNF>&>(other)) {}
+
+UnlocalizedNumberRangeFormatter::UnlocalizedNumberRangeFormatter(const NFS<UNF>& other)
+        : NFS<UNF>(other) {
+    // No additional fields to assign
+}
+
+// Make default copy constructor call the NumberRangeFormatterSettings copy constructor.
+UnlocalizedNumberRangeFormatter::UnlocalizedNumberRangeFormatter(UNF&& src) U_NOEXCEPT
+        : UNF(static_cast<NFS<UNF>&&>(src)) {}
+
+UnlocalizedNumberRangeFormatter::UnlocalizedNumberRangeFormatter(NFS<UNF>&& src) U_NOEXCEPT
+        : NFS<UNF>(std::move(src)) {
+    // No additional fields to assign
+}
+
+UnlocalizedNumberRangeFormatter& UnlocalizedNumberRangeFormatter::operator=(const UNF& other) {
+    NFS<UNF>::operator=(static_cast<const NFS<UNF>&>(other));
+    // No additional fields to assign
+    return *this;
+}
+
+UnlocalizedNumberRangeFormatter& UnlocalizedNumberRangeFormatter::operator=(UNF&& src) U_NOEXCEPT {
+    NFS<UNF>::operator=(static_cast<NFS<UNF>&&>(src));
+    // No additional fields to assign
+    return *this;
+}
+
+// Make default copy constructor call the NumberRangeFormatterSettings copy constructor.
+LocalizedNumberRangeFormatter::LocalizedNumberRangeFormatter(const LNF& other)
+        : LNF(static_cast<const NFS<LNF>&>(other)) {}
+
+LocalizedNumberRangeFormatter::LocalizedNumberRangeFormatter(const NFS<LNF>& other)
+        : NFS<LNF>(other) {
+    // No additional fields to assign
+}
+
+LocalizedNumberRangeFormatter::LocalizedNumberRangeFormatter(LocalizedNumberRangeFormatter&& src) U_NOEXCEPT
+        : LNF(static_cast<NFS<LNF>&&>(src)) {}
+
+LocalizedNumberRangeFormatter::LocalizedNumberRangeFormatter(NFS<LNF>&& src) U_NOEXCEPT
+        : NFS<LNF>(std::move(src)) {
+    // Steal the compiled formatter
+    LNF&& _src = static_cast<LNF&&>(src);
+    auto* stolen = _src.fAtomicFormatter.exchange(nullptr);
+    delete fAtomicFormatter.exchange(stolen);
+}
+
+LocalizedNumberRangeFormatter& LocalizedNumberRangeFormatter::operator=(const LNF& other) {
+    NFS<LNF>::operator=(static_cast<const NFS<LNF>&>(other));
+    // Do not steal; just clear
+    delete fAtomicFormatter.exchange(nullptr);
+    return *this;
+}
+
+LocalizedNumberRangeFormatter& LocalizedNumberRangeFormatter::operator=(LNF&& src) U_NOEXCEPT {
+    NFS<LNF>::operator=(static_cast<NFS<LNF>&&>(src));
+    // Steal the compiled formatter
+    auto* stolen = src.fAtomicFormatter.exchange(nullptr);
+    delete fAtomicFormatter.exchange(stolen);
+    return *this;
+}
+
+
+LocalizedNumberRangeFormatter::~LocalizedNumberRangeFormatter() {
+    delete fAtomicFormatter.exchange(nullptr);
+}
+
+LocalizedNumberRangeFormatter::LocalizedNumberRangeFormatter(const RangeMacroProps& macros, const Locale& locale) {
+    fMacros = macros;
+    fMacros.locale = locale;
+    touchRangeLocales(fMacros);
+}
+
+LocalizedNumberRangeFormatter::LocalizedNumberRangeFormatter(RangeMacroProps&& macros, const Locale& locale) {
+    fMacros = std::move(macros);
+    fMacros.locale = locale;
+    touchRangeLocales(fMacros);
+}
+
+LocalizedNumberRangeFormatter UnlocalizedNumberRangeFormatter::locale(const Locale& locale) const& {
+    return LocalizedNumberRangeFormatter(fMacros, locale);
+}
+
+LocalizedNumberRangeFormatter UnlocalizedNumberRangeFormatter::locale(const Locale& locale)&& {
+    return LocalizedNumberRangeFormatter(std::move(fMacros), locale);
+}
+
+
+FormattedNumberRange LocalizedNumberRangeFormatter::formatFormattableRange(
+        const Formattable& first, const Formattable& second, UErrorCode& status) const {
+    if (U_FAILURE(status)) {
+        return FormattedNumberRange(U_ILLEGAL_ARGUMENT_ERROR);
+    }
+
+    auto results = new UFormattedNumberRangeData();
+    if (results == nullptr) {
+        status = U_MEMORY_ALLOCATION_ERROR;
+        return FormattedNumberRange(status);
+    }
+
+    first.populateDecimalQuantity(results->quantity1, status);
+    if (U_FAILURE(status)) {
+        return FormattedNumberRange(status);
+    }
+
+    second.populateDecimalQuantity(results->quantity2, status);
+    if (U_FAILURE(status)) {
+        return FormattedNumberRange(status);
+    }
+
+    formatImpl(*results, first == second, status);
+
+    // Do not save the results object if we encountered a failure.
+    if (U_SUCCESS(status)) {
+        return FormattedNumberRange(results);
+    } else {
+        delete results;
+        return FormattedNumberRange(status);
+    }
+}
+
+void LocalizedNumberRangeFormatter::formatImpl(
+        UFormattedNumberRangeData& results, bool equalBeforeRounding, UErrorCode& status) const {
+    auto* impl = getFormatter(status);
+    if (U_FAILURE(status)) {
+        return;
+    }
+    if (impl == nullptr) {
+        status = U_INTERNAL_PROGRAM_ERROR;
+        return;
+    }
+    impl->format(results, equalBeforeRounding, status);
+}
+
+const impl::NumberRangeFormatterImpl*
+LocalizedNumberRangeFormatter::getFormatter(UErrorCode& status) const {
+    // TODO: Move this into umutex.h? (similar logic also in decimfmt.cpp)
+    // See ICU-20146
+
+    if (U_FAILURE(status)) {
+        return nullptr;
+    }
+
+    // First try to get the pre-computed formatter
+    auto* ptr = fAtomicFormatter.load();
+    if (ptr != nullptr) {
+        return ptr;
+    }
+
+    // Try computing the formatter on our own
+    auto* temp = new NumberRangeFormatterImpl(fMacros, status);
+    if (U_FAILURE(status)) {
+        return nullptr;
+    }
+    if (temp == nullptr) {
+        status = U_MEMORY_ALLOCATION_ERROR;
+        return nullptr;
+    }
+
+    // Note: ptr starts as nullptr; during compare_exchange,
+    // it is set to what is actually stored in the atomic
+    // if another thread beat us to computing the formatter object.
+    auto* nonConstThis = const_cast<LocalizedNumberRangeFormatter*>(this);
+    if (!nonConstThis->fAtomicFormatter.compare_exchange_strong(ptr, temp)) {
+        // Another thread beat us to computing the formatter
+        delete temp;
+        return ptr;
+    } else {
+        // Our copy of the formatter got stored in the atomic
+        return temp;
+    }
+
+}
+
+
+FormattedNumberRange::FormattedNumberRange(FormattedNumberRange&& src) U_NOEXCEPT
+        : fResults(src.fResults), fErrorCode(src.fErrorCode) {
+    // Disown src.fResults to prevent double-deletion
+    src.fResults = nullptr;
+    src.fErrorCode = U_INVALID_STATE_ERROR;
+}
+
+FormattedNumberRange& FormattedNumberRange::operator=(FormattedNumberRange&& src) U_NOEXCEPT {
+    delete fResults;
+    fResults = src.fResults;
+    fErrorCode = src.fErrorCode;
+    // Disown src.fResults to prevent double-deletion
+    src.fResults = nullptr;
+    src.fErrorCode = U_INVALID_STATE_ERROR;
+    return *this;
+}
+
+UnicodeString FormattedNumberRange::toString(UErrorCode& status) const {
+    if (U_FAILURE(status)) {
+        return ICU_Utility::makeBogusString();
+    }
+    if (fResults == nullptr) {
+        status = fErrorCode;
+        return ICU_Utility::makeBogusString();
+    }
+    return fResults->string.toUnicodeString();
+}
+
+Appendable& FormattedNumberRange::appendTo(Appendable& appendable, UErrorCode& status) const {
+    if (U_FAILURE(status)) {
+        return appendable;
+    }
+    if (fResults == nullptr) {
+        status = fErrorCode;
+        return appendable;
+    }
+    appendable.appendString(fResults->string.chars(), fResults->string.length());
+    return appendable;
+}
+
+UBool FormattedNumberRange::nextFieldPosition(FieldPosition& fieldPosition, UErrorCode& status) const {
+    if (U_FAILURE(status)) {
+        return FALSE;
+    }
+    if (fResults == nullptr) {
+        status = fErrorCode;
+        return FALSE;
+    }
+    // NOTE: MSVC sometimes complains when implicitly converting between bool and UBool
+    return fResults->string.nextFieldPosition(fieldPosition, status) ? TRUE : FALSE;
+}
+
+void FormattedNumberRange::getAllFieldPositions(FieldPositionIterator& iterator, UErrorCode& status) const {
+    FieldPositionIteratorHandler fpih(&iterator, status);
+    getAllFieldPositionsImpl(fpih, status);
+}
+
+void FormattedNumberRange::getAllFieldPositionsImpl(
+        FieldPositionIteratorHandler& fpih, UErrorCode& status) const {
+    if (U_FAILURE(status)) {
+        return;
+    }
+    if (fResults == nullptr) {
+        status = fErrorCode;
+        return;
+    }
+    fResults->string.getAllFieldPositions(fpih, status);
+}
+
+UnicodeString FormattedNumberRange::getFirstDecimal(UErrorCode& status) const {
+    if (U_FAILURE(status)) {
+        return ICU_Utility::makeBogusString();
+    }
+    if (fResults == nullptr) {
+        status = fErrorCode;
+        return ICU_Utility::makeBogusString();
+    }
+    return fResults->quantity1.toScientificString();
+}
+
+UnicodeString FormattedNumberRange::getSecondDecimal(UErrorCode& status) const {
+    if (U_FAILURE(status)) {
+        return ICU_Utility::makeBogusString();
+    }
+    if (fResults == nullptr) {
+        status = fErrorCode;
+        return ICU_Utility::makeBogusString();
+    }
+    return fResults->quantity2.toScientificString();
+}
+
+UNumberRangeIdentityResult FormattedNumberRange::getIdentityResult(UErrorCode& status) const {
+    if (U_FAILURE(status)) {
+        return UNUM_IDENTITY_RESULT_NOT_EQUAL;
+    }
+    if (fResults == nullptr) {
+        status = fErrorCode;
+        return UNUM_IDENTITY_RESULT_NOT_EQUAL;
+    }
+    return fResults->identityResult;
+}
+
+FormattedNumberRange::~FormattedNumberRange() {
+    delete fResults;
+}
+
+
+
+#endif /* #if !UCONFIG_NO_FORMATTING */
diff --git a/source/i18n/numrange_impl.cpp b/source/i18n/numrange_impl.cpp
new file mode 100644 (file)
index 0000000..21365bf
--- /dev/null
@@ -0,0 +1,486 @@
+// © 2018 and later: Unicode, Inc. and others.
+// License & terms of use: http://www.unicode.org/copyright.html
+
+#include "unicode/utypes.h"
+
+#if !UCONFIG_NO_FORMATTING
+
+// Allow implicit conversion from char16_t* to UnicodeString for this file:
+// Helpful in toString methods and elsewhere.
+#define UNISTR_FROM_STRING_EXPLICIT
+
+#include "unicode/numberrangeformatter.h"
+#include "numrange_impl.h"
+#include "patternprops.h"
+#include "uresimp.h"
+#include "util.h"
+
+using namespace icu;
+using namespace icu::number;
+using namespace icu::number::impl;
+
+namespace {
+
+// Helper function for 2-dimensional switch statement
+constexpr int8_t identity2d(UNumberRangeIdentityFallback a, UNumberRangeIdentityResult b) {
+    return static_cast<int8_t>(a) | (static_cast<int8_t>(b) << 4);
+}
+
+
+struct NumberRangeData {
+    SimpleFormatter rangePattern;
+    SimpleFormatter approximatelyPattern;
+};
+
+class NumberRangeDataSink : public ResourceSink {
+  public:
+    NumberRangeDataSink(NumberRangeData& data) : fData(data) {}
+
+    void put(const char* key, ResourceValue& value, UBool /*noFallback*/, UErrorCode& status) U_OVERRIDE {
+        ResourceTable miscTable = value.getTable(status);
+        if (U_FAILURE(status)) { return; }
+        for (int i = 0; miscTable.getKeyAndValue(i, key, value); i++) {
+            if (uprv_strcmp(key, "range") == 0) {
+                if (fData.rangePattern.getArgumentLimit() != 0) {
+                    continue; // have already seen this pattern
+                }
+                fData.rangePattern = {value.getUnicodeString(status), status};
+            } else if (uprv_strcmp(key, "approximately") == 0) {
+                if (fData.approximatelyPattern.getArgumentLimit() != 0) {
+                    continue; // have already seen this pattern
+                }
+                fData.approximatelyPattern = {value.getUnicodeString(status), status};
+            }
+        }
+    }
+
+  private:
+    NumberRangeData& fData;
+};
+
+void getNumberRangeData(const char* localeName, const char* nsName, NumberRangeData& data, UErrorCode& status) {
+    if (U_FAILURE(status)) { return; }
+    LocalUResourceBundlePointer rb(ures_open(NULL, localeName, &status));
+    if (U_FAILURE(status)) { return; }
+    NumberRangeDataSink sink(data);
+
+    CharString dataPath;
+    dataPath.append("NumberElements/", -1, status);
+    dataPath.append(nsName, -1, status);
+    dataPath.append("/miscPatterns", -1, status);
+    ures_getAllItemsWithFallback(rb.getAlias(), dataPath.data(), sink, status);
+    if (U_FAILURE(status)) { return; }
+
+    // TODO: Is it necessary to manually fall back to latn, or does the data sink take care of that?
+
+    if (data.rangePattern.getArgumentLimit() == 0) {
+        // No data!
+        data.rangePattern = {u"{0}–{1}", status};
+    }
+    if (data.approximatelyPattern.getArgumentLimit() == 0) {
+        // No data!
+        data.approximatelyPattern = {u"~{0}", status};
+    }
+}
+
+class PluralRangesDataSink : public ResourceSink {
+  public:
+    PluralRangesDataSink(StandardPluralRanges& output) : fOutput(output) {}
+
+    void put(const char* /*key*/, ResourceValue& value, UBool /*noFallback*/, UErrorCode& status) U_OVERRIDE {
+        ResourceArray entriesArray = value.getArray(status);
+        if (U_FAILURE(status)) { return; }
+        fOutput.setCapacity(entriesArray.getSize());
+        for (int i = 0; entriesArray.getValue(i, value); i++) {
+            ResourceArray pluralFormsArray = value.getArray(status);
+            if (U_FAILURE(status)) { return; }
+            pluralFormsArray.getValue(0, value);
+            StandardPlural::Form first = StandardPlural::fromString(value.getUnicodeString(status), status);
+            if (U_FAILURE(status)) { return; }
+            pluralFormsArray.getValue(1, value);
+            StandardPlural::Form second = StandardPlural::fromString(value.getUnicodeString(status), status);
+            if (U_FAILURE(status)) { return; }
+            pluralFormsArray.getValue(2, value);
+            StandardPlural::Form result = StandardPlural::fromString(value.getUnicodeString(status), status);
+            if (U_FAILURE(status)) { return; }
+            fOutput.addPluralRange(first, second, result);
+        }
+    }
+
+  private:
+    StandardPluralRanges& fOutput;
+};
+
+void getPluralRangesData(const Locale& locale, StandardPluralRanges& output, UErrorCode& status) {
+    if (U_FAILURE(status)) { return; }
+    LocalUResourceBundlePointer rb(ures_openDirect(nullptr, "pluralRanges", &status));
+    if (U_FAILURE(status)) { return; }
+
+    CharString dataPath;
+    dataPath.append("locales/", -1, status);
+    dataPath.append(locale.getLanguage(), -1, status);
+    if (U_FAILURE(status)) { return; }
+    int32_t setLen;
+    // Not all languages are covered: fail gracefully
+    UErrorCode internalStatus = U_ZERO_ERROR;
+    const UChar* set = ures_getStringByKeyWithFallback(rb.getAlias(), dataPath.data(), &setLen, &internalStatus);
+    if (U_FAILURE(internalStatus)) { return; }
+
+    dataPath.clear();
+    dataPath.append("rules/", -1, status);
+    dataPath.appendInvariantChars(set, setLen, status);
+    if (U_FAILURE(status)) { return; }
+    PluralRangesDataSink sink(output);
+    ures_getAllItemsWithFallback(rb.getAlias(), dataPath.data(), sink, status);
+    if (U_FAILURE(status)) { return; }
+}
+
+} // namespace
+
+
+void StandardPluralRanges::initialize(const Locale& locale, UErrorCode& status) {
+    getPluralRangesData(locale, *this, status);
+}
+
+void StandardPluralRanges::addPluralRange(
+        StandardPlural::Form first,
+        StandardPlural::Form second,
+        StandardPlural::Form result) {
+    U_ASSERT(fTriplesLen < fTriples.getCapacity());
+    fTriples[fTriplesLen] = {first, second, result};
+    fTriplesLen++;
+}
+
+void StandardPluralRanges::setCapacity(int32_t length) {
+    if (length > fTriples.getCapacity()) {
+        fTriples.resize(length, 0);
+    }
+}
+
+StandardPlural::Form
+StandardPluralRanges::resolve(StandardPlural::Form first, StandardPlural::Form second) const {
+    for (int32_t i=0; i<fTriplesLen; i++) {
+        const auto& triple = fTriples[i];
+        if (triple.first == first && triple.second == second) {
+            return triple.result;
+        }
+    }
+    // Default fallback
+    return StandardPlural::OTHER;
+}
+
+
+NumberRangeFormatterImpl::NumberRangeFormatterImpl(const RangeMacroProps& macros, UErrorCode& status)
+    : formatterImpl1(macros.formatter1.fMacros, status),
+      formatterImpl2(macros.formatter2.fMacros, status),
+      fSameFormatters(macros.singleFormatter),
+      fCollapse(macros.collapse),
+      fIdentityFallback(macros.identityFallback) {
+
+    // TODO: As of this writing (ICU 63), there is no locale that has different number miscPatterns
+    // based on numbering system.  Therefore, data is loaded only from latn.  If this changes,
+    // this part of the code should be updated to load from the local numbering system.
+    // The numbering system could come from the one specified in the NumberFormatter passed to
+    // numberFormatterBoth() or similar.
+    // See ICU-20144
+
+    NumberRangeData data;
+    getNumberRangeData(macros.locale.getName(), "latn", data, status);
+    if (U_FAILURE(status)) { return; }
+    fRangeFormatter = data.rangePattern;
+    fApproximatelyModifier = {data.approximatelyPattern, UNUM_FIELD_COUNT, false};
+
+    // TODO: Get locale from PluralRules instead?
+    fPluralRanges.initialize(macros.locale, status);
+    if (U_FAILURE(status)) { return; }
+}
+
+void NumberRangeFormatterImpl::format(UFormattedNumberRangeData& data, bool equalBeforeRounding, UErrorCode& status) const {
+    if (U_FAILURE(status)) {
+        return;
+    }
+
+    MicroProps micros1;
+    MicroProps micros2;
+    formatterImpl1.preProcess(data.quantity1, micros1, status);
+    if (fSameFormatters) {
+        formatterImpl1.preProcess(data.quantity2, micros2, status);
+    } else {
+        formatterImpl2.preProcess(data.quantity2, micros2, status);
+    }
+    if (U_FAILURE(status)) {
+        return;
+    }
+
+    // If any of the affixes are different, an identity is not possible
+    // and we must use formatRange().
+    // TODO: Write this as MicroProps operator==() ?
+    // TODO: Avoid the redundancy of these equality operations with the
+    // ones in formatRange?
+    if (!micros1.modInner->semanticallyEquivalent(*micros2.modInner)
+            || !micros1.modMiddle->semanticallyEquivalent(*micros2.modMiddle)
+            || !micros1.modOuter->semanticallyEquivalent(*micros2.modOuter)) {
+        formatRange(data, micros1, micros2, status);
+        data.identityResult = UNUM_IDENTITY_RESULT_NOT_EQUAL;
+        return;
+    }
+
+    // Check for identity
+    if (equalBeforeRounding) {
+        data.identityResult = UNUM_IDENTITY_RESULT_EQUAL_BEFORE_ROUNDING;
+    } else if (data.quantity1 == data.quantity2) {
+        data.identityResult = UNUM_IDENTITY_RESULT_EQUAL_AFTER_ROUNDING;
+    } else {
+        data.identityResult = UNUM_IDENTITY_RESULT_NOT_EQUAL;
+    }
+
+    switch (identity2d(fIdentityFallback, data.identityResult)) {
+        case identity2d(UNUM_IDENTITY_FALLBACK_RANGE,
+                        UNUM_IDENTITY_RESULT_NOT_EQUAL):
+        case identity2d(UNUM_IDENTITY_FALLBACK_RANGE,
+                        UNUM_IDENTITY_RESULT_EQUAL_AFTER_ROUNDING):
+        case identity2d(UNUM_IDENTITY_FALLBACK_RANGE,
+                        UNUM_IDENTITY_RESULT_EQUAL_BEFORE_ROUNDING):
+        case identity2d(UNUM_IDENTITY_FALLBACK_APPROXIMATELY,
+                        UNUM_IDENTITY_RESULT_NOT_EQUAL):
+        case identity2d(UNUM_IDENTITY_FALLBACK_APPROXIMATELY_OR_SINGLE_VALUE,
+                        UNUM_IDENTITY_RESULT_NOT_EQUAL):
+        case identity2d(UNUM_IDENTITY_FALLBACK_SINGLE_VALUE,
+                        UNUM_IDENTITY_RESULT_NOT_EQUAL):
+            formatRange(data, micros1, micros2, status);
+            break;
+
+        case identity2d(UNUM_IDENTITY_FALLBACK_APPROXIMATELY,
+                        UNUM_IDENTITY_RESULT_EQUAL_AFTER_ROUNDING):
+        case identity2d(UNUM_IDENTITY_FALLBACK_APPROXIMATELY,
+                        UNUM_IDENTITY_RESULT_EQUAL_BEFORE_ROUNDING):
+        case identity2d(UNUM_IDENTITY_FALLBACK_APPROXIMATELY_OR_SINGLE_VALUE,
+                        UNUM_IDENTITY_RESULT_EQUAL_AFTER_ROUNDING):
+            formatApproximately(data, micros1, micros2, status);
+            break;
+
+        case identity2d(UNUM_IDENTITY_FALLBACK_APPROXIMATELY_OR_SINGLE_VALUE,
+                        UNUM_IDENTITY_RESULT_EQUAL_BEFORE_ROUNDING):
+        case identity2d(UNUM_IDENTITY_FALLBACK_SINGLE_VALUE,
+                        UNUM_IDENTITY_RESULT_EQUAL_AFTER_ROUNDING):
+        case identity2d(UNUM_IDENTITY_FALLBACK_SINGLE_VALUE,
+                        UNUM_IDENTITY_RESULT_EQUAL_BEFORE_ROUNDING):
+            formatSingleValue(data, micros1, micros2, status);
+            break;
+
+        default:
+            U_ASSERT(false);
+            break;
+    }
+}
+
+
+void NumberRangeFormatterImpl::formatSingleValue(UFormattedNumberRangeData& data,
+                                                 MicroProps& micros1, MicroProps& micros2,
+                                                 UErrorCode& status) const {
+    if (U_FAILURE(status)) { return; }
+    if (fSameFormatters) {
+        int32_t length = NumberFormatterImpl::writeNumber(micros1, data.quantity1, data.string, 0, status);
+        NumberFormatterImpl::writeAffixes(micros1, data.string, 0, length, status);
+    } else {
+        formatRange(data, micros1, micros2, status);
+    }
+}
+
+
+void NumberRangeFormatterImpl::formatApproximately (UFormattedNumberRangeData& data,
+                                                    MicroProps& micros1, MicroProps& micros2,
+                                                    UErrorCode& status) const {
+    if (U_FAILURE(status)) { return; }
+    if (fSameFormatters) {
+        int32_t length = NumberFormatterImpl::writeNumber(micros1, data.quantity1, data.string, 0, status);
+        // HEURISTIC: Desired modifier order: inner, middle, approximately, outer.
+        length += micros1.modInner->apply(data.string, 0, length, status);
+        length += micros1.modMiddle->apply(data.string, 0, length, status);
+        length += fApproximatelyModifier.apply(data.string, 0, length, status);
+        micros1.modOuter->apply(data.string, 0, length, status);
+    } else {
+        formatRange(data, micros1, micros2, status);
+    }
+}
+
+
+void NumberRangeFormatterImpl::formatRange(UFormattedNumberRangeData& data,
+                                           MicroProps& micros1, MicroProps& micros2,
+                                           UErrorCode& status) const {
+    if (U_FAILURE(status)) { return; }
+
+    // modInner is always notation (scientific); collapsable in ALL.
+    // modOuter is always units; collapsable in ALL, AUTO, and UNIT.
+    // modMiddle could be either; collapsable in ALL and sometimes AUTO and UNIT.
+    // Never collapse an outer mod but not an inner mod.
+    bool collapseOuter, collapseMiddle, collapseInner;
+    switch (fCollapse) {
+        case UNUM_RANGE_COLLAPSE_ALL:
+        case UNUM_RANGE_COLLAPSE_AUTO:
+        case UNUM_RANGE_COLLAPSE_UNIT:
+        {
+            // OUTER MODIFIER
+            collapseOuter = micros1.modOuter->semanticallyEquivalent(*micros2.modOuter);
+
+            if (!collapseOuter) {
+                // Never collapse inner mods if outer mods are not collapsable
+                collapseMiddle = false;
+                collapseInner = false;
+                break;
+            }
+
+            // MIDDLE MODIFIER
+            collapseMiddle = micros1.modMiddle->semanticallyEquivalent(*micros2.modMiddle);
+
+            if (!collapseMiddle) {
+                // Never collapse inner mods if outer mods are not collapsable
+                collapseInner = false;
+                break;
+            }
+
+            // MIDDLE MODIFIER HEURISTICS
+            // (could disable collapsing of the middle modifier)
+            // The modifiers are equal by this point, so we can look at just one of them.
+            const Modifier* mm = micros1.modMiddle;
+            if (fCollapse == UNUM_RANGE_COLLAPSE_UNIT) {
+                // Only collapse if the modifier is a unit.
+                // TODO: Make a better way to check for a unit?
+                // TODO: Handle case where the modifier has both notation and unit (compact currency)?
+                if (!mm->containsField(UNUM_CURRENCY_FIELD) && !mm->containsField(UNUM_PERCENT_FIELD)) {
+                    collapseMiddle = false;
+                }
+            } else if (fCollapse == UNUM_RANGE_COLLAPSE_AUTO) {
+                // Heuristic as of ICU 63: collapse only if the modifier is more than one code point.
+                if (mm->getCodePointCount() <= 1) {
+                    collapseMiddle = false;
+                }
+            }
+
+            if (!collapseMiddle || fCollapse != UNUM_RANGE_COLLAPSE_ALL) {
+                collapseInner = false;
+                break;
+            }
+
+            // INNER MODIFIER
+            collapseInner = micros1.modInner->semanticallyEquivalent(*micros2.modInner);
+
+            // All done checking for collapsability.
+            break;
+        }
+
+        default:
+            collapseOuter = false;
+            collapseMiddle = false;
+            collapseInner = false;
+            break;
+    }
+
+    NumberStringBuilder& string = data.string;
+    int32_t lengthPrefix = 0;
+    int32_t length1 = 0;
+    int32_t lengthInfix = 0;
+    int32_t length2 = 0;
+    int32_t lengthSuffix = 0;
+
+    // Use #define so that these are evaluated at the call site.
+    #define UPRV_INDEX_0 (lengthPrefix)
+    #define UPRV_INDEX_1 (lengthPrefix + length1)
+    #define UPRV_INDEX_2 (lengthPrefix + length1 + lengthInfix)
+    #define UPRV_INDEX_3 (lengthPrefix + length1 + lengthInfix + length2)
+
+    int32_t lengthRange = SimpleModifier::formatTwoArgPattern(
+        fRangeFormatter,
+        string,
+        0,
+        &lengthPrefix,
+        &lengthSuffix,
+        UNUM_FIELD_COUNT,
+        status);
+    if (U_FAILURE(status)) { return; }
+    lengthInfix = lengthRange - lengthPrefix - lengthSuffix;
+    U_ASSERT(lengthInfix > 0);
+
+    // SPACING HEURISTIC
+    // Add spacing unless all modifiers are collapsed.
+    // TODO: add API to control this?
+    // TODO: Use a data-driven heuristic like currency spacing?
+    // TODO: Use Unicode [:whitespace:] instead of PatternProps whitespace? (consider speed implications)
+    {
+        bool repeatInner = !collapseInner && micros1.modInner->getCodePointCount() > 0;
+        bool repeatMiddle = !collapseMiddle && micros1.modMiddle->getCodePointCount() > 0;
+        bool repeatOuter = !collapseOuter && micros1.modOuter->getCodePointCount() > 0;
+        if (repeatInner || repeatMiddle || repeatOuter) {
+            // Add spacing if there is not already spacing
+            if (!PatternProps::isWhiteSpace(string.charAt(UPRV_INDEX_1))) {
+                lengthInfix += string.insertCodePoint(UPRV_INDEX_1, u'\u0020', UNUM_FIELD_COUNT, status);
+            }
+            if (!PatternProps::isWhiteSpace(string.charAt(UPRV_INDEX_2 - 1))) {
+                lengthInfix += string.insertCodePoint(UPRV_INDEX_2, u'\u0020', UNUM_FIELD_COUNT, status);
+            }
+        }
+    }
+
+    length1 += NumberFormatterImpl::writeNumber(micros1, data.quantity1, string, UPRV_INDEX_0, status);
+    length2 += NumberFormatterImpl::writeNumber(micros2, data.quantity2, string, UPRV_INDEX_2, status);
+
+    // TODO: Support padding?
+
+    if (collapseInner) {
+        // Note: this is actually a mix of prefix and suffix, but adding to infix length works
+        const Modifier& mod = resolveModifierPlurals(*micros1.modInner, *micros2.modInner);
+        lengthInfix += mod.apply(string, UPRV_INDEX_0, UPRV_INDEX_3, status);
+    } else {
+        length1 += micros1.modInner->apply(string, UPRV_INDEX_0, UPRV_INDEX_1, status);
+        length2 += micros2.modInner->apply(string, UPRV_INDEX_2, UPRV_INDEX_3, status);
+    }
+
+    if (collapseMiddle) {
+        // Note: this is actually a mix of prefix and suffix, but adding to infix length works
+        const Modifier& mod = resolveModifierPlurals(*micros1.modMiddle, *micros2.modMiddle);
+        lengthInfix += mod.apply(string, UPRV_INDEX_0, UPRV_INDEX_3, status);
+    } else {
+        length1 += micros1.modMiddle->apply(string, UPRV_INDEX_0, UPRV_INDEX_1, status);
+        length2 += micros2.modMiddle->apply(string, UPRV_INDEX_2, UPRV_INDEX_3, status);
+    }
+
+    if (collapseOuter) {
+        // Note: this is actually a mix of prefix and suffix, but adding to infix length works
+        const Modifier& mod = resolveModifierPlurals(*micros1.modOuter, *micros2.modOuter);
+        lengthInfix += mod.apply(string, UPRV_INDEX_0, UPRV_INDEX_3, status);
+    } else {
+        length1 += micros1.modOuter->apply(string, UPRV_INDEX_0, UPRV_INDEX_1, status);
+        length2 += micros2.modOuter->apply(string, UPRV_INDEX_2, UPRV_INDEX_3, status);
+    }
+}
+
+
+const Modifier&
+NumberRangeFormatterImpl::resolveModifierPlurals(const Modifier& first, const Modifier& second) const {
+    Modifier::Parameters parameters;
+    first.getParameters(parameters);
+    if (parameters.obj == nullptr) {
+        // No plural form; return a fallback (e.g., the first)
+        return first;
+    }
+    StandardPlural::Form firstPlural = parameters.plural;
+
+    second.getParameters(parameters);
+    if (parameters.obj == nullptr) {
+        // No plural form; return a fallback (e.g., the first)
+        return first;
+    }
+    StandardPlural::Form secondPlural = parameters.plural;
+
+    // Get the required plural form from data
+    StandardPlural::Form resultPlural = fPluralRanges.resolve(firstPlural, secondPlural);
+
+    // Get and return the new Modifier
+    const Modifier* mod = parameters.obj->getModifier(parameters.signum, resultPlural);
+    U_ASSERT(mod != nullptr);
+    return *mod;
+}
+
+
+
+#endif /* #if !UCONFIG_NO_FORMATTING */
diff --git a/source/i18n/numrange_impl.h b/source/i18n/numrange_impl.h
new file mode 100644 (file)
index 0000000..787fc65
--- /dev/null
@@ -0,0 +1,114 @@
+// © 2018 and later: Unicode, Inc. and others.
+// License & terms of use: http://www.unicode.org/copyright.html
+
+#include "unicode/utypes.h"
+
+#if !UCONFIG_NO_FORMATTING
+#ifndef __SOURCE_NUMRANGE_TYPES_H__
+#define __SOURCE_NUMRANGE_TYPES_H__
+
+#include "unicode/numberformatter.h"
+#include "unicode/numberrangeformatter.h"
+#include "unicode/simpleformatter.h"
+#include "number_types.h"
+#include "number_decimalquantity.h"
+#include "number_formatimpl.h"
+#include "number_stringbuilder.h"
+
+U_NAMESPACE_BEGIN namespace number {
+namespace impl {
+
+
+/**
+ * Class similar to UFormattedNumberData.
+ *
+ * Has incomplete magic number logic that will need to be finished
+ * if this is to be exposed as C API in the future.
+ */
+struct UFormattedNumberRangeData : public UMemory {
+    // The magic number to identify incoming objects.
+    // Reads in ASCII as "FDR" (FormatteDnumberRange with room at the end)
+    static constexpr int32_t kMagic = 0x46445200;
+
+    // Data members:
+    int32_t fMagic = kMagic;
+    DecimalQuantity quantity1;
+    DecimalQuantity quantity2;
+    NumberStringBuilder string;
+    UNumberRangeIdentityResult identityResult = UNUM_IDENTITY_RESULT_COUNT;
+
+    // No C conversion methods (no C API yet)
+};
+
+
+class StandardPluralRanges : public UMemory {
+  public:
+    void initialize(const Locale& locale, UErrorCode& status);
+    StandardPlural::Form resolve(StandardPlural::Form first, StandardPlural::Form second) const;
+
+    /** Used for data loading. */
+    void addPluralRange(
+        StandardPlural::Form first,
+        StandardPlural::Form second,
+        StandardPlural::Form result);
+
+    /** Used for data loading. */
+    void setCapacity(int32_t length);
+
+  private:
+    struct StandardPluralRangeTriple {
+        StandardPlural::Form first;
+        StandardPlural::Form second;
+        StandardPlural::Form result;
+    };
+
+    // TODO: An array is simple here, but it results in linear lookup time.
+    // Certain locales have 20-30 entries in this list.
+    // Consider changing to a smarter data structure.
+    typedef MaybeStackArray<StandardPluralRangeTriple, 3> PluralRangeTriples;
+    PluralRangeTriples fTriples;
+    int32_t fTriplesLen = 0;
+};
+
+
+class NumberRangeFormatterImpl : public UMemory {
+  public:
+    NumberRangeFormatterImpl(const RangeMacroProps& macros, UErrorCode& status);
+
+    void format(UFormattedNumberRangeData& data, bool equalBeforeRounding, UErrorCode& status) const;
+
+  private:
+    NumberFormatterImpl formatterImpl1;
+    NumberFormatterImpl formatterImpl2;
+    bool fSameFormatters;
+
+    UNumberRangeCollapse fCollapse;
+    UNumberRangeIdentityFallback fIdentityFallback;
+
+    SimpleFormatter fRangeFormatter;
+    SimpleModifier fApproximatelyModifier;
+
+    StandardPluralRanges fPluralRanges;
+
+    void formatSingleValue(UFormattedNumberRangeData& data,
+                           MicroProps& micros1, MicroProps& micros2,
+                           UErrorCode& status) const;
+
+    void formatApproximately(UFormattedNumberRangeData& data,
+                             MicroProps& micros1, MicroProps& micros2,
+                             UErrorCode& status) const;
+
+    void formatRange(UFormattedNumberRangeData& data,
+                     MicroProps& micros1, MicroProps& micros2,
+                     UErrorCode& status) const;
+
+    const Modifier& resolveModifierPlurals(const Modifier& first, const Modifier& second) const;
+};
+
+
+} // namespace impl
+} // namespace number
+U_NAMESPACE_END
+
+#endif //__SOURCE_NUMRANGE_TYPES_H__
+#endif /* #if !UCONFIG_NO_FORMATTING */
index 893ba53dcaae6813ea1eb065f914a3b4d41b94b8..162c50a5fe96b54c779daae3598679f7c646ead7 100644 (file)
@@ -79,43 +79,45 @@ NumberingSystem* U_EXPORT2
 NumberingSystem::createInstance(int32_t radix_in, UBool isAlgorithmic_in, const UnicodeString & desc_in, UErrorCode &status) {
 
     if (U_FAILURE(status)) {
-        return NULL;
+        return nullptr;
     }
 
     if ( radix_in < 2 ) {
         status = U_ILLEGAL_ARGUMENT_ERROR;
-        return NULL;
+        return nullptr;
     }
 
     if ( !isAlgorithmic_in ) {
        if ( desc_in.countChar32() != radix_in ) {
            status = U_ILLEGAL_ARGUMENT_ERROR;
-           return NULL;
+           return nullptr;
        }
     }
 
-    NumberingSystem *ns = new NumberingSystem();
+    LocalPointer<NumberingSystem> ns(new NumberingSystem(), status);
+    if (U_FAILURE(status)) {
+        return nullptr;
+    }
 
     ns->setRadix(radix_in);
     ns->setDesc(desc_in);
     ns->setAlgorithmic(isAlgorithmic_in);
-    ns->setName(NULL);
-    return ns;
-    
-}
+    ns->setName(nullptr);
 
+    return ns.orphan();
+}
 
 NumberingSystem* U_EXPORT2
 NumberingSystem::createInstance(const Locale & inLocale, UErrorCode& status) {
 
     if (U_FAILURE(status)) {
-        return NULL;
+        return nullptr;
     }
 
     UBool nsResolved = TRUE;
     UBool usingFallback = FALSE;
     char buffer[ULOC_KEYWORDS_CAPACITY];
-    int32_t count = inLocale.getKeywordValue("numbers",buffer, sizeof(buffer),status);
+    int32_t count = inLocale.getKeywordValue("numbers", buffer, sizeof(buffer), status);
     if (U_FAILURE(status) || status == U_STRING_NOT_TERMINATED_WARNING) {
         // the "numbers" keyword exceeds ULOC_KEYWORDS_CAPACITY; ignore and use default.
         count = 0;
@@ -129,20 +131,30 @@ NumberingSystem::createInstance(const Locale & inLocale, UErrorCode& status) {
             nsResolved = FALSE;
         }
     } else {
-        uprv_strcpy(buffer,gDefault);
+        uprv_strcpy(buffer, gDefault);
         nsResolved = FALSE;
     }
 
     if (!nsResolved) { // Resolve the numbering system ( default, native, traditional or finance ) into a "real" numbering system
         UErrorCode localStatus = U_ZERO_ERROR;
-        UResourceBundle *resource = ures_open(NULL, inLocale.getName(), &localStatus);
-        UResourceBundle *numberElementsRes = ures_getByKey(resource,gNumberElements,NULL,&localStatus);
+        LocalUResourceBundlePointer resource(ures_open(nullptr, inLocale.getName(), &localStatus));
+        LocalUResourceBundlePointer numberElementsRes(ures_getByKey(resource.getAlias(), gNumberElements, nullptr, &localStatus));
+        // Don't stomp on the catastrophic failure of OOM.
+        if (localStatus == U_MEMORY_ALLOCATION_ERROR) {
+            status = U_MEMORY_ALLOCATION_ERROR;
+            return nullptr;
+        }
         while (!nsResolved) {
             localStatus = U_ZERO_ERROR;
             count = 0;
-            const UChar *nsName = ures_getStringByKeyWithFallback(numberElementsRes, buffer, &count, &localStatus);
+            const UChar *nsName = ures_getStringByKeyWithFallback(numberElementsRes.getAlias(), buffer, &count, &localStatus);
+            // Don't stomp on the catastrophic failure of OOM.
+            if (localStatus == U_MEMORY_ALLOCATION_ERROR) {
+                status = U_MEMORY_ALLOCATION_ERROR;
+                return nullptr;
+            }
             if ( count > 0 && count < ULOC_KEYWORDS_CAPACITY ) { // numbering system found
-                u_UCharsToChars(nsName,buffer,count); 
+                u_UCharsToChars(nsName, buffer, count);
                 buffer[count] = '\0'; // Make sure it is null terminated.
                 nsResolved = TRUE;
             } 
@@ -158,16 +170,17 @@ NumberingSystem::createInstance(const Locale & inLocale, UErrorCode& status) {
                 }
             }
         }
-        ures_close(numberElementsRes);
-        ures_close(resource);
     }
 
     if (usingFallback) {
         status = U_USING_FALLBACK_WARNING;
         NumberingSystem *ns = new NumberingSystem();
+        if (ns == nullptr) {
+            status = U_MEMORY_ALLOCATION_ERROR;
+        }
         return ns;
     } else {
-        return NumberingSystem::createInstanceByName(buffer,status);
+        return NumberingSystem::createInstanceByName(buffer, status);
     }
  }
 
@@ -178,36 +191,37 @@ NumberingSystem::createInstance(UErrorCode& status) {
 
 NumberingSystem* U_EXPORT2
 NumberingSystem::createInstanceByName(const char *name, UErrorCode& status) {
-    UResourceBundle *numberingSystemsInfo = NULL;
-    UResourceBundle *nsTop, *nsCurrent;
     int32_t radix = 10;
     int32_t algorithmic = 0;
 
-    numberingSystemsInfo = ures_openDirect(NULL,gNumberingSystems, &status);
-    nsCurrent = ures_getByKey(numberingSystemsInfo,gNumberingSystems,NULL,&status);
-    nsTop = ures_getByKey(nsCurrent,name,NULL,&status);
-    UnicodeString nsd = ures_getUnicodeStringByKey(nsTop,gDesc,&status);
+    LocalUResourceBundlePointer numberingSystemsInfo(ures_openDirect(nullptr, gNumberingSystems, &status));
+    LocalUResourceBundlePointer nsCurrent(ures_getByKey(numberingSystemsInfo.getAlias(), gNumberingSystems, nullptr, &status));
+    LocalUResourceBundlePointer nsTop(ures_getByKey(nsCurrent.getAlias(), name, nullptr, &status));
 
-    ures_getByKey(nsTop,gRadix,nsCurrent,&status);
-    radix = ures_getInt(nsCurrent,&status);
+    UnicodeString nsd = ures_getUnicodeStringByKey(nsTop.getAlias(), gDesc, &status);
 
-    ures_getByKey(nsTop,gAlgorithmic,nsCurrent,&status);
-    algorithmic = ures_getInt(nsCurrent,&status);
+    ures_getByKey(nsTop.getAlias(), gRadix, nsCurrent.getAlias(), &status);
+    radix = ures_getInt(nsCurrent.getAlias(), &status);
 
-    UBool isAlgorithmic = ( algorithmic == 1 );
+    ures_getByKey(nsTop.getAlias(), gAlgorithmic, nsCurrent.getAlias(), &status);
+    algorithmic = ures_getInt(nsCurrent.getAlias(), &status);
 
-    ures_close(nsCurrent);
-    ures_close(nsTop);
-    ures_close(numberingSystemsInfo);
+    UBool isAlgorithmic = ( algorithmic == 1 );
 
     if (U_FAILURE(status)) {
-        status = U_UNSUPPORTED_ERROR;
-        return NULL;
+        // Don't stomp on the catastrophic failure of OOM.
+        if (status != U_MEMORY_ALLOCATION_ERROR) {
+            status = U_UNSUPPORTED_ERROR;
+        }
+        return nullptr;
     }
 
-    NumberingSystem* ns = NumberingSystem::createInstance(radix,isAlgorithmic,nsd,status);
+    LocalPointer<NumberingSystem> ns(NumberingSystem::createInstance(radix, isAlgorithmic, nsd, status), status);
+    if (U_FAILURE(status)) {
+        return nullptr;
+    }
     ns->setName(name);
-    return ns;
+    return ns.orphan();
 }
 
     /**
@@ -241,11 +255,11 @@ void NumberingSystem::setDesc(const UnicodeString &d) {
     desc.setTo(d);
 }
 void NumberingSystem::setName(const char *n) {
-    if ( n == NULL ) {
+    if ( n == nullptr ) {
         name[0] = (char) 0;
     } else {
         uprv_strncpy(name,n,NUMSYS_NAME_CAPACITY);
-        name[NUMSYS_NAME_CAPACITY] = (char)0; // Make sure it is null terminated.
+        name[NUMSYS_NAME_CAPACITY] = '\0'; // Make sure it is null terminated.
     }
 }
 UBool NumberingSystem::isAlgorithmic() const {
@@ -254,43 +268,57 @@ UBool NumberingSystem::isAlgorithmic() const {
 
 StringEnumeration* NumberingSystem::getAvailableNames(UErrorCode &status) {
     // TODO(ticket #11908): Init-once static cache, with u_cleanup() callback.
-    static StringEnumeration* availableNames = NULL;
+    static StringEnumeration* availableNames = nullptr;
 
     if (U_FAILURE(status)) {
-        return NULL;
+        return nullptr;
     }
 
-    if ( availableNames == NULL ) {
+    if ( availableNames == nullptr ) {
         // TODO: Simple array of UnicodeString objects, based on length of table resource?
-        LocalPointer<UVector> numsysNames(new UVector(uprv_deleteUObject, NULL, status), status);
+        LocalPointer<UVector> numsysNames(new UVector(uprv_deleteUObject, nullptr, status), status);
         if (U_FAILURE(status)) {
-            return NULL;
+            return nullptr;
         }
         
         UErrorCode rbstatus = U_ZERO_ERROR;
-        UResourceBundle *numberingSystemsInfo = ures_openDirect(NULL, "numberingSystems", &rbstatus);
-        numberingSystemsInfo = ures_getByKey(numberingSystemsInfo,"numberingSystems",numberingSystemsInfo,&rbstatus);
-        if(U_FAILURE(rbstatus)) {
-            status = U_MISSING_RESOURCE_ERROR;
+        UResourceBundle *numberingSystemsInfo = ures_openDirect(nullptr, "numberingSystems", &rbstatus);
+        numberingSystemsInfo = ures_getByKey(numberingSystemsInfo, "numberingSystems", numberingSystemsInfo, &rbstatus);
+        if (U_FAILURE(rbstatus)) {
+            // Don't stomp on the catastrophic failure of OOM.
+            if (rbstatus == U_MEMORY_ALLOCATION_ERROR) {
+                status = rbstatus;
+            } else {
+                status = U_MISSING_RESOURCE_ERROR;
+            }
             ures_close(numberingSystemsInfo);
-            return NULL;
+            return nullptr;
         }
 
-        while ( ures_hasNext(numberingSystemsInfo) ) {
-            UResourceBundle *nsCurrent = ures_getNextResource(numberingSystemsInfo,NULL,&rbstatus);
-            const char *nsName = ures_getKey(nsCurrent);
-            numsysNames->addElement(new UnicodeString(nsName, -1, US_INV),status);
-            ures_close(nsCurrent);
+        while ( ures_hasNext(numberingSystemsInfo) && U_SUCCESS(status) ) {
+            LocalUResourceBundlePointer nsCurrent(ures_getNextResource(numberingSystemsInfo, nullptr, &rbstatus));
+            if (rbstatus == U_MEMORY_ALLOCATION_ERROR) {
+                status = rbstatus; // we want to report OOM failure back to the caller.
+                break;
+            }
+            const char *nsName = ures_getKey(nsCurrent.getAlias());
+            LocalPointer<UnicodeString> newElem(new UnicodeString(nsName, -1, US_INV), status);
+            if (U_SUCCESS(status)) {
+                numsysNames->addElement(newElem.getAlias(), status);
+                if (U_SUCCESS(status)) {
+                    newElem.orphan(); // on success, the numsysNames vector owns newElem.
+                }
+            }
         }
 
         ures_close(numberingSystemsInfo);
         if (U_FAILURE(status)) {
-            return NULL;
+            return nullptr;
         }
         availableNames = new NumsysNameEnumeration(numsysNames.getAlias(), status);
-        if (availableNames == NULL) {
+        if (availableNames == nullptr) {
             status = U_MEMORY_ALLOCATION_ERROR;
-            return NULL;
+            return nullptr;
         }
         numsysNames.orphan();  // The names got adopted.
     }
@@ -305,10 +333,10 @@ NumsysNameEnumeration::NumsysNameEnumeration(UVector *numsysNames, UErrorCode& /
 
 const UnicodeString*
 NumsysNameEnumeration::snext(UErrorCode& status) {
-    if (U_SUCCESS(status) && pos < fNumsysNames->size()) {
+    if (U_SUCCESS(status) && (fNumsysNames != nullptr) && (pos < fNumsysNames->size())) {
         return (const UnicodeString*)fNumsysNames->elementAt(pos++);
     }
-    return NULL;
+    return nullptr;
 }
 
 void
@@ -318,7 +346,7 @@ NumsysNameEnumeration::reset(UErrorCode& /*status*/) {
 
 int32_t
 NumsysNameEnumeration::count(UErrorCode& /*status*/) const {
-    return (fNumsysNames==NULL) ? 0 : fNumsysNames->size();
+    return (fNumsysNames==nullptr) ? 0 : fNumsysNames->size();
 }
 
 NumsysNameEnumeration::~NumsysNameEnumeration() {
index 3e5cc33c050b7543d82df4453cf80f357bd37883..b798286bf1d417dbb68eb6abd0ffe96b2fa6ab55 100644 (file)
@@ -37,7 +37,7 @@ public:
     virtual int32_t count(UErrorCode& status) const;
 private:
     int32_t pos;
-    UVector *fNumsysNames;
+    UVector *fNumsysNames = nullptr;
 };
 
 U_NAMESPACE_END
index 00a59d16d73de902dbc74577366af011cc3cc4f8..8c68d8b52cfb7656d7be77185e87c50ea1218b7c 100644 (file)
@@ -140,7 +140,7 @@ OlsonTimeZone::OlsonTimeZone(const UResourceBundle* top,
         // Pre-32bit second transitions
         ures_getByKey(res, kTRANSPRE32, &r, &ec);
         transitionTimesPre32 = ures_getIntVector(&r, &len, &ec);
-        transitionCountPre32 = len >> 1;
+        transitionCountPre32 = static_cast<int16_t>(len >> 1);
         if (ec == U_MISSING_RESOURCE_ERROR) {
             // No pre-32bit transitions
             transitionTimesPre32 = NULL;
@@ -153,7 +153,7 @@ OlsonTimeZone::OlsonTimeZone(const UResourceBundle* top,
         // 32bit second transitions
         ures_getByKey(res, kTRANS, &r, &ec);
         transitionTimes32 = ures_getIntVector(&r, &len, &ec);
-        transitionCount32 = len;
+        transitionCount32 = static_cast<int16_t>(len);
         if (ec == U_MISSING_RESOURCE_ERROR) {
             // No 32bit transitions
             transitionTimes32 = NULL;
@@ -166,7 +166,7 @@ OlsonTimeZone::OlsonTimeZone(const UResourceBundle* top,
         // Post-32bit second transitions
         ures_getByKey(res, kTRANSPOST32, &r, &ec);
         transitionTimesPost32 = ures_getIntVector(&r, &len, &ec);
-        transitionCountPost32 = len >> 1;
+        transitionCountPost32 = static_cast<int16_t>(len >> 1);
         if (ec == U_MISSING_RESOURCE_ERROR) {
             // No pre-32bit transitions
             transitionTimesPost32 = NULL;
index aedb924c6183b9f50cf86d50ba7b8440583c3bb6..ba5450c637970fad95c3beb695d4fa095822c9ee 100644 (file)
@@ -65,13 +65,15 @@ UOBJECT_DEFINE_RTTI_IMPLEMENTATION(PluralKeywordEnumeration)
 
 PluralRules::PluralRules(UErrorCode& /*status*/)
 :   UObject(),
-    mRules(NULL)
+    mRules(nullptr),
+    mInternalStatus(U_ZERO_ERROR)
 {
 }
 
 PluralRules::PluralRules(const PluralRules& other)
 : UObject(other),
-    mRules(NULL)
+    mRules(nullptr),
+    mInternalStatus(U_ZERO_ERROR)
 {
     *this=other;
 }
@@ -86,54 +88,67 @@ SharedPluralRules::~SharedPluralRules() {
 
 PluralRules*
 PluralRules::clone() const {
-    return new PluralRules(*this);
+    PluralRules* newObj = new PluralRules(*this);
+    // Since clone doesn't have a 'status' parameter, the best we can do is return nullptr if
+    // the newly created object was not fully constructed properly (an error occurred).
+    if (newObj != nullptr && U_FAILURE(newObj->mInternalStatus)) {
+        delete newObj;
+        newObj = nullptr;
+    }
+    return newObj;
 }
 
 PluralRules&
 PluralRules::operator=(const PluralRules& other) {
     if (this != &other) {
         delete mRules;
-        if (other.mRules==NULL) {
-            mRules = NULL;
+        mRules = nullptr;
+        mInternalStatus = other.mInternalStatus;
+        if (U_FAILURE(mInternalStatus)) {
+            // bail out early if the object we were copying from was already 'invalid'.
+            return *this;
         }
-        else {
+        if (other.mRules != nullptr) {
             mRules = new RuleChain(*other.mRules);
+            if (mRules == nullptr) {
+                mInternalStatus = U_MEMORY_ALLOCATION_ERROR;
+            }
+            else if (U_FAILURE(mRules->fInternalStatus)) {
+                // If the RuleChain wasn't fully copied, then set our status to failure as well.
+                mInternalStatus = mRules->fInternalStatus;
+            }
         }
     }
-
     return *this;
 }
 
 StringEnumeration* PluralRules::getAvailableLocales(UErrorCode &status) {
-    StringEnumeration *result = new PluralAvailableLocalesEnumeration(status);
-    if (result == NULL && U_SUCCESS(status)) {
-        status = U_MEMORY_ALLOCATION_ERROR;
+    if (U_FAILURE(status)) {
+        return nullptr;
     }
+    LocalPointer<StringEnumeration> result(new PluralAvailableLocalesEnumeration(status), status);
     if (U_FAILURE(status)) {
-        delete result;
-        result = NULL;
+        return nullptr;
     }
-    return result;
+    return result.orphan();
 }
 
 
 PluralRules* U_EXPORT2
 PluralRules::createRules(const UnicodeString& description, UErrorCode& status) {
     if (U_FAILURE(status)) {
-        return NULL;
+        return nullptr;
     }
-
     PluralRuleParser parser;
-    PluralRules *newRules = new PluralRules(status);
-    if (U_SUCCESS(status) && newRules == NULL) {
-        status = U_MEMORY_ALLOCATION_ERROR;
+    LocalPointer<PluralRules> newRules(new PluralRules(status), status);
+    if (U_FAILURE(status)) {
+        return nullptr;
     }
-    parser.parse(description, newRules, status);
+    parser.parse(description, newRules.getAlias(), status);
     if (U_FAILURE(status)) {
-        delete newRules;
-        newRules = NULL;
+        newRules.adoptInstead(nullptr);
     }
-    return newRules;
+    return newRules.orphan();
 }
 
 
@@ -149,19 +164,17 @@ template<> U_I18N_API
 const SharedPluralRules *LocaleCacheKey<SharedPluralRules>::createObject(
         const void * /*unused*/, UErrorCode &status) const {
     const char *localeId = fLoc.getName();
-    PluralRules *pr = PluralRules::internalForLocale(
-            localeId, UPLURAL_TYPE_CARDINAL, status);
+    LocalPointer<PluralRules> pr(PluralRules::internalForLocale(localeId, UPLURAL_TYPE_CARDINAL, status), status);
     if (U_FAILURE(status)) {
-        return NULL;
+        return nullptr;
     }
-    SharedPluralRules *result = new SharedPluralRules(pr);
-    if (result == NULL) {
-        status = U_MEMORY_ALLOCATION_ERROR;
-        delete pr;
-        return NULL;
+    LocalPointer<SharedPluralRules> result(new SharedPluralRules(pr.getAlias()), status);
+    if (U_FAILURE(status)) {
+        return nullptr;
     }
+    pr.orphan(); // result was successfully created so it nows pr.
     result->addRef();
-    return result;
+    return result.orphan();
 }
 
 /* end plural rules cache */
@@ -171,13 +184,13 @@ const SharedPluralRules* U_EXPORT2
 PluralRules::createSharedInstance(
         const Locale& locale, UPluralType type, UErrorCode& status) {
     if (U_FAILURE(status)) {
-        return NULL;
+        return nullptr;
     }
     if (type != UPLURAL_TYPE_CARDINAL) {
         status = U_UNSUPPORTED_ERROR;
-        return NULL;
+        return nullptr;
     }
-    const SharedPluralRules *result = NULL;
+    const SharedPluralRules *result = nullptr;
     UnifiedCache::getByLocale(locale, result, status);
     return result;
 }
@@ -195,11 +208,11 @@ PluralRules::forLocale(const Locale& locale, UPluralType type, UErrorCode& statu
     const SharedPluralRules *shared = createSharedInstance(
             locale, type, status);
     if (U_FAILURE(status)) {
-        return NULL;
+        return nullptr;
     }
     PluralRules *result = (*shared)->clone();
     shared->removeRef();
-    if (result == NULL) {
+    if (result == nullptr) {
         status = U_MEMORY_ALLOCATION_ERROR;
     }
     return result;
@@ -208,20 +221,23 @@ PluralRules::forLocale(const Locale& locale, UPluralType type, UErrorCode& statu
 PluralRules* U_EXPORT2
 PluralRules::internalForLocale(const Locale& locale, UPluralType type, UErrorCode& status) {
     if (U_FAILURE(status)) {
-        return NULL;
+        return nullptr;
     }
     if (type >= UPLURAL_TYPE_COUNT) {
         status = U_ILLEGAL_ARGUMENT_ERROR;
-        return NULL;
+        return nullptr;
     }
-    PluralRules *newObj = new PluralRules(status);
-    if (newObj==NULL || U_FAILURE(status)) {
-        delete newObj;
-        return NULL;
+    LocalPointer<PluralRules> newObj(new PluralRules(status), status);
+    if (U_FAILURE(status)) {
+        return nullptr;
     }
     UnicodeString locRule = newObj->getRuleFromResource(locale, type, status);
-    // TODO: which errors, if any, should be returned?
+    // TODO: which other errors, if any, should be returned?
     if (locRule.length() == 0) {
+        // If an out-of-memory error occurred, then stop and report the failure.
+        if (status == U_MEMORY_ALLOCATION_ERROR) {
+            return nullptr;
+        }
         // Locales with no specific rules (all numbers have the "other" category
         //   will return a U_MISSING_RESOURCE_ERROR at this point. This is not
         //   an error.
@@ -229,13 +245,13 @@ PluralRules::internalForLocale(const Locale& locale, UPluralType type, UErrorCod
         status = U_ZERO_ERROR;
     }
     PluralRuleParser parser;
-    parser.parse(locRule, newObj, status);
+    parser.parse(locRule, newObj.getAlias(), status);
         //  TODO: should rule parse errors be returned, or
         //        should we silently use default rules?
         //        Original impl used default rules.
         //        Ask the question to ICU Core.
 
-    return newObj;
+    return newObj.orphan();
 }
 
 UnicodeString
@@ -250,7 +266,7 @@ PluralRules::select(double number) const {
 
 UnicodeString
 PluralRules::select(const IFixedDecimal &number) const {
-    if (mRules == NULL) {
+    if (mRules == nullptr) {
         return UnicodeString(TRUE, PLURAL_DEFAULT_RULE, -1);
     }
     else {
@@ -262,14 +278,18 @@ PluralRules::select(const IFixedDecimal &number) const {
 
 StringEnumeration*
 PluralRules::getKeywords(UErrorCode& status) const {
-    if (U_FAILURE(status))  return NULL;
-    StringEnumeration* nameEnumerator = new PluralKeywordEnumeration(mRules, status);
     if (U_FAILURE(status)) {
-      delete nameEnumerator;
-      return NULL;
+        return nullptr;
     }
-
-    return nameEnumerator;
+    if (U_FAILURE(mInternalStatus)) {
+        status = mInternalStatus;
+        return nullptr;
+    }
+    LocalPointer<StringEnumeration> nameEnumerator(new PluralKeywordEnumeration(mRules, status), status);
+    if (U_FAILURE(status)) {
+        return nullptr;
+    }
+    return nameEnumerator.orphan();
 }
 
 double
@@ -367,8 +387,15 @@ getSamplesFromString(const UnicodeString &samples, double *dest,
 int32_t
 PluralRules::getSamples(const UnicodeString &keyword, double *dest,
                         int32_t destCapacity, UErrorCode& status) {
+    if (destCapacity == 0 || U_FAILURE(status)) {
+        return 0;
+    }
+    if (U_FAILURE(mInternalStatus)) {
+        status = mInternalStatus;
+        return 0;
+    }
     RuleChain *rc = rulesForKeyword(keyword);
-    if (rc == NULL || destCapacity == 0 || U_FAILURE(status)) {
+    if (rc == nullptr) {
         return 0;
     }
     int32_t numSamples = getSamplesFromString(rc->fIntegerSamples, dest, destCapacity, status);
@@ -381,7 +408,7 @@ PluralRules::getSamples(const UnicodeString &keyword, double *dest,
 
 RuleChain *PluralRules::rulesForKeyword(const UnicodeString &keyword) const {
     RuleChain *rc;
-    for (rc = mRules; rc != NULL; rc = rc->fNext) {
+    for (rc = mRules; rc != nullptr; rc = rc->fNext) {
         if (rc->fKeyword == keyword) {
             break;
         }
@@ -395,7 +422,7 @@ PluralRules::isKeyword(const UnicodeString& keyword) const {
     if (0 == keyword.compare(PLURAL_KEYWORD_OTHER, 5)) {
         return true;
     }
-    return rulesForKeyword(keyword) != NULL;
+    return rulesForKeyword(keyword) != nullptr;
 }
 
 UnicodeString
@@ -421,13 +448,13 @@ PluralRules::operator==(const PluralRules& other) const  {
         return FALSE;
     }
     myKeywordList->reset(status);
-    while ((ptrKeyword=myKeywordList->snext(status))!=NULL) {
+    while ((ptrKeyword=myKeywordList->snext(status))!=nullptr) {
         if (!other.isKeyword(*ptrKeyword)) {
             return FALSE;
         }
     }
     otherKeywordList->reset(status);
-    while ((ptrKeyword=otherKeywordList->snext(status))!=NULL) {
+    while ((ptrKeyword=otherKeywordList->snext(status))!=nullptr) {
         if (!this->isKeyword(*ptrKeyword)) {
             return FALSE;
         }
@@ -460,29 +487,33 @@ PluralRuleParser::parse(const UnicodeString& ruleData, PluralRules *prules, UErr
         }
         switch (type) {
         case tAnd:
-            U_ASSERT(curAndConstraint != NULL);
-            curAndConstraint = curAndConstraint->add();
+            U_ASSERT(curAndConstraint != nullptr);
+            curAndConstraint = curAndConstraint->add(status);
             break;
         case tOr:
             {
-                U_ASSERT(currentChain != NULL);
+                U_ASSERT(currentChain != nullptr);
                 OrConstraint *orNode=currentChain->ruleHeader;
-                while (orNode->next != NULL) {
+                while (orNode->next != nullptr) {
                     orNode = orNode->next;
                 }
                 orNode->next= new OrConstraint();
+                if (orNode->next == nullptr) {
+                    status = U_MEMORY_ALLOCATION_ERROR;
+                    break;
+                }
                 orNode=orNode->next;
-                orNode->next=NULL;
-                curAndConstraint = orNode->add();
+                orNode->next=nullptr;
+                curAndConstraint = orNode->add(status);
             }
             break;
         case tIs:
-            U_ASSERT(curAndConstraint != NULL);
+            U_ASSERT(curAndConstraint != nullptr);
             U_ASSERT(curAndConstraint->value == -1);
-            U_ASSERT(curAndConstraint->rangeList == NULL);
+            U_ASSERT(curAndConstraint->rangeList == nullptr);
             break;
         case tNot:
-            U_ASSERT(curAndConstraint != NULL);
+            U_ASSERT(curAndConstraint != nullptr);
             curAndConstraint->negated=TRUE;
             break;
 
@@ -492,23 +523,29 @@ PluralRuleParser::parse(const UnicodeString& ruleData, PluralRules *prules, UErr
         case tIn:
         case tWithin:
         case tEqual:
-            U_ASSERT(curAndConstraint != NULL);
-            curAndConstraint->rangeList = new UVector32(status);
-            curAndConstraint->rangeList->addElement(-1, status);  // range Low
-            curAndConstraint->rangeList->addElement(-1, status);  // range Hi
-            rangeLowIdx = 0;
-            rangeHiIdx  = 1;
-            curAndConstraint->value=PLURAL_RANGE_HIGH;
-            curAndConstraint->integerOnly = (type != tWithin);
+            {
+                U_ASSERT(curAndConstraint != nullptr);
+                LocalPointer<UVector32> newRangeList(new UVector32(status), status);
+                if (U_FAILURE(status)) {
+                    break;
+                }
+                curAndConstraint->rangeList = newRangeList.orphan();
+                curAndConstraint->rangeList->addElement(-1, status);  // range Low
+                curAndConstraint->rangeList->addElement(-1, status);  // range Hi
+                rangeLowIdx = 0;
+                rangeHiIdx  = 1;
+                curAndConstraint->value=PLURAL_RANGE_HIGH;
+                curAndConstraint->integerOnly = (type != tWithin);
+            }
             break;
         case tNumber:
-            U_ASSERT(curAndConstraint != NULL);
+            U_ASSERT(curAndConstraint != nullptr);
             if ( (curAndConstraint->op==AndConstraint::MOD)&&
                  (curAndConstraint->opNum == -1 ) ) {
                 curAndConstraint->opNum=getNumberValue(token);
             }
             else {
-                if (curAndConstraint->rangeList == NULL) {
+                if (curAndConstraint->rangeList == nullptr) {
                     // this is for an 'is' rule
                     curAndConstraint->value = getNumberValue(token);
                 } else {
@@ -534,7 +571,7 @@ PluralRuleParser::parse(const UnicodeString& ruleData, PluralRules *prules, UErr
         case tComma:
             // TODO: rule syntax checking is inadequate, can happen with badly formed rules.
             //       Catch cases like "n mod 10, is 1" here instead.
-            if (curAndConstraint == NULL || curAndConstraint->rangeList == NULL) {
+            if (curAndConstraint == nullptr || curAndConstraint->rangeList == nullptr) {
                 status = U_UNEXPECTED_TOKEN;
                 break;
             }
@@ -545,7 +582,7 @@ PluralRuleParser::parse(const UnicodeString& ruleData, PluralRules *prules, UErr
             curAndConstraint->rangeList->addElement(-1, status);  // range Hi
             break;
         case tMod:
-            U_ASSERT(curAndConstraint != NULL);
+            U_ASSERT(curAndConstraint != nullptr);
             curAndConstraint->op=AndConstraint::MOD;
             break;
         case tVariableN:
@@ -553,24 +590,24 @@ PluralRuleParser::parse(const UnicodeString& ruleData, PluralRules *prules, UErr
         case tVariableF:
         case tVariableT:
         case tVariableV:
-            U_ASSERT(curAndConstraint != NULL);
+            U_ASSERT(curAndConstraint != nullptr);
             curAndConstraint->digitsType = type;
             break;
         case tKeyword:
             {
             RuleChain *newChain = new RuleChain;
-            if (newChain == NULL) {
+            if (newChain == nullptr) {
                 status = U_MEMORY_ALLOCATION_ERROR;
                 break;
             }
             newChain->fKeyword = token;
-            if (prules->mRules == NULL) {
+            if (prules->mRules == nullptr) {
                 prules->mRules = newChain;
             } else {
                 // The new rule chain goes at the end of the linked list of rule chains,
                 //   unless there is an "other" keyword & chain. "other" must remain last.
                 RuleChain *insertAfter = prules->mRules;
-                while (insertAfter->fNext!=NULL &&
+                while (insertAfter->fNext!=nullptr &&
                        insertAfter->fNext->fKeyword.compare(PLURAL_KEYWORD_OTHER, 5) != 0 ){
                     insertAfter=insertAfter->fNext;
                 }
@@ -578,8 +615,12 @@ PluralRuleParser::parse(const UnicodeString& ruleData, PluralRules *prules, UErr
                 insertAfter->fNext = newChain;
             }
             OrConstraint *orNode = new OrConstraint();
+            if (orNode == nullptr) {
+                status = U_MEMORY_ALLOCATION_ERROR;
+                break;
+            }
             newChain->ruleHeader = orNode;
-            curAndConstraint = orNode->add();
+            curAndConstraint = orNode->add(status);
             currentChain = newChain;
             }
             break;
@@ -629,7 +670,7 @@ PluralRules::getRuleFromResource(const Locale& locale, UPluralType type, UErrorC
     if (U_FAILURE(errCode)) {
         return emptyStr;
     }
-    LocalUResourceBundlePointer rb(ures_openDirect(NULL, "plurals", &errCode));
+    LocalUResourceBundlePointer rb(ures_openDirect(nullptr, "plurals", &errCode));
     if(U_FAILURE(errCode)) {
         return emptyStr;
     }
@@ -646,7 +687,7 @@ PluralRules::getRuleFromResource(const Locale& locale, UPluralType type, UErrorC
         errCode = U_ILLEGAL_ARGUMENT_ERROR;
         return emptyStr;
     }
-    LocalUResourceBundlePointer locRes(ures_getByKey(rb.getAlias(), typeKey, NULL, &errCode));
+    LocalUResourceBundlePointer locRes(ures_getByKey(rb.getAlias(), typeKey, nullptr, &errCode));
     if(U_FAILURE(errCode)) {
         return emptyStr;
     }
@@ -654,25 +695,25 @@ PluralRules::getRuleFromResource(const Locale& locale, UPluralType type, UErrorC
     const char *curLocaleName=locale.getName();
     const UChar* s = ures_getStringByKey(locRes.getAlias(), curLocaleName, &resLen, &errCode);
 
-    if (s == NULL) {
+    if (s == nullptr) {
         // Check parent locales.
         UErrorCode status = U_ZERO_ERROR;
         char parentLocaleName[ULOC_FULLNAME_CAPACITY];
-        const char *curLocaleName=locale.getName();
-        uprv_strcpy(parentLocaleName, curLocaleName);
+        const char *curLocaleName2=locale.getName();
+        uprv_strcpy(parentLocaleName, curLocaleName2);
 
         while (uloc_getParent(parentLocaleName, parentLocaleName,
                                        ULOC_FULLNAME_CAPACITY, &status) > 0) {
             resLen=0;
             s = ures_getStringByKey(locRes.getAlias(), parentLocaleName, &resLen, &status);
-            if (s != NULL) {
+            if (s != nullptr) {
                 errCode = U_ZERO_ERROR;
                 break;
             }
             status = U_ZERO_ERROR;
         }
     }
-    if (s==NULL) {
+    if (s==nullptr) {
         return emptyStr;
     }
 
@@ -680,18 +721,18 @@ PluralRules::getRuleFromResource(const Locale& locale, UPluralType type, UErrorC
     u_UCharsToChars(s, setKey, resLen + 1);
     // printf("\n PluralRule: %s\n", setKey);
 
-    LocalUResourceBundlePointer ruleRes(ures_getByKey(rb.getAlias(), "rules", NULL, &errCode));
+    LocalUResourceBundlePointer ruleRes(ures_getByKey(rb.getAlias(), "rules", nullptr, &errCode));
     if(U_FAILURE(errCode)) {
         return emptyStr;
     }
-    LocalUResourceBundlePointer setRes(ures_getByKey(ruleRes.getAlias(), setKey, NULL, &errCode));
+    LocalUResourceBundlePointer setRes(ures_getByKey(ruleRes.getAlias(), setKey, nullptr, &errCode));
     if (U_FAILURE(errCode)) {
         return emptyStr;
     }
 
     int32_t numberKeys = ures_getSize(setRes.getAlias());
     UnicodeString result;
-    const char *key=NULL;
+    const char *key=nullptr;
     for(int32_t i=0; i<numberKeys; ++i) {   // Keys are zero, one, few, ...
         UnicodeString rules = ures_getNextUnicodeString(setRes.getAlias(), &key, &errCode);
         UnicodeString uKey(key, -1, US_INV);
@@ -707,54 +748,46 @@ PluralRules::getRuleFromResource(const Locale& locale, UPluralType type, UErrorC
 UnicodeString
 PluralRules::getRules() const {
     UnicodeString rules;
-    if (mRules != NULL) {
+    if (mRules != nullptr) {
         mRules->dumpRules(rules);
     }
     return rules;
 }
 
-
-AndConstraint::AndConstraint() {
-    op = AndConstraint::NONE;
-    opNum=-1;
-    value = -1;
-    rangeList = NULL;
-    negated = FALSE;
-    integerOnly = FALSE;
-    digitsType = none;
-    next=NULL;
-}
-
-
 AndConstraint::AndConstraint(const AndConstraint& other) {
+    this->fInternalStatus = other.fInternalStatus;
+    if (U_FAILURE(fInternalStatus)) {
+        return; // stop early if the object we are copying from is invalid.
+    }
     this->op = other.op;
     this->opNum=other.opNum;
     this->value=other.value;
-    this->rangeList=NULL;
-    if (other.rangeList != NULL) {
-        UErrorCode status = U_ZERO_ERROR;
-        this->rangeList = new UVector32(status);
-        this->rangeList->assign(*other.rangeList, status);
+    if (other.rangeList != nullptr) {
+        LocalPointer<UVector32> newRangeList(new UVector32(fInternalStatus), fInternalStatus);
+        if (U_FAILURE(fInternalStatus)) {
+            return;
+        }
+        this->rangeList = newRangeList.orphan();
+        this->rangeList->assign(*other.rangeList, fInternalStatus);
     }
     this->integerOnly=other.integerOnly;
     this->negated=other.negated;
     this->digitsType = other.digitsType;
-    if (other.next==NULL) {
-        this->next=NULL;
-    }
-    else {
+    if (other.next != nullptr) {
         this->next = new AndConstraint(*other.next);
+        if (this->next == nullptr) {
+            fInternalStatus = U_MEMORY_ALLOCATION_ERROR;
+        }
     }
 }
 
 AndConstraint::~AndConstraint() {
     delete rangeList;
-    if (next!=NULL) {
-        delete next;
-    }
+    rangeList = nullptr;
+    delete next;
+    next = nullptr;
 }
 
-
 UBool
 AndConstraint::isFulfilled(const IFixedDecimal &number) {
     UBool result = TRUE;
@@ -776,7 +809,7 @@ AndConstraint::isFulfilled(const IFixedDecimal &number) {
         if (op == MOD) {
             n = fmod(n, opNum);
         }
-        if (rangeList == NULL) {
+        if (rangeList == nullptr) {
             result = value == -1 ||    // empty rule
                      n == value;       //  'is' rule
             break;
@@ -796,53 +829,67 @@ AndConstraint::isFulfilled(const IFixedDecimal &number) {
     return result;
 }
 
-
 AndConstraint*
-AndConstraint::add()
-{
+AndConstraint::add(UErrorCode& status) {
+    if (U_FAILURE(fInternalStatus)) {
+        status = fInternalStatus;
+        return nullptr;
+    }
     this->next = new AndConstraint();
+    if (this->next == nullptr) {
+        status = U_MEMORY_ALLOCATION_ERROR;
+    }
     return this->next;
 }
 
-OrConstraint::OrConstraint() {
-    childNode=NULL;
-    next=NULL;
-}
 
 OrConstraint::OrConstraint(const OrConstraint& other) {
-    if ( other.childNode == NULL ) {
-        this->childNode = NULL;
+    this->fInternalStatus = other.fInternalStatus;
+    if (U_FAILURE(fInternalStatus)) {
+        return; // stop early if the object we are copying from is invalid.
     }
-    else {
+    if ( other.childNode != nullptr ) {
         this->childNode = new AndConstraint(*(other.childNode));
+        if (this->childNode == nullptr) {
+            fInternalStatus = U_MEMORY_ALLOCATION_ERROR;
+            return;
+        }
     }
-    if (other.next == NULL ) {
-        this->next = NULL;
-    }
-    else {
+    if (other.next != nullptr ) {
         this->next = new OrConstraint(*(other.next));
+        if (this->next == nullptr) {
+            fInternalStatus = U_MEMORY_ALLOCATION_ERROR;
+            return;
+        }
+        if (U_FAILURE(this->next->fInternalStatus)) {
+            this->fInternalStatus = this->next->fInternalStatus;
+        }
     }
 }
 
 OrConstraint::~OrConstraint() {
-    if (childNode!=NULL) {
-        delete childNode;
-    }
-    if (next!=NULL) {
-        delete next;
-    }
+    delete childNode;
+    childNode = nullptr;
+    delete next;
+    next = nullptr;
 }
 
 AndConstraint*
-OrConstraint::add()
-{
+OrConstraint::add(UErrorCode& status) {
+    if (U_FAILURE(fInternalStatus)) {
+        status = fInternalStatus;
+        return nullptr;
+    }
     OrConstraint *curOrConstraint=this;
     {
-        while (curOrConstraint->next!=NULL) {
+        while (curOrConstraint->next!=nullptr) {
             curOrConstraint = curOrConstraint->next;
         }
-        U_ASSERT(curOrConstraint->childNode == NULL);
+        U_ASSERT(curOrConstraint->childNode == nullptr);
         curOrConstraint->childNode = new AndConstraint();
+        if (curOrConstraint->childNode == nullptr) {
+            status = U_MEMORY_ALLOCATION_ERROR;
+        }
     }
     return curOrConstraint->childNode;
 }
@@ -852,10 +899,10 @@ OrConstraint::isFulfilled(const IFixedDecimal &number) {
     OrConstraint* orRule=this;
     UBool result=FALSE;
 
-    while (orRule!=NULL && !result) {
+    while (orRule!=nullptr && !result) {
         result=TRUE;
         AndConstraint* andRule = orRule->childNode;
-        while (andRule!=NULL && result) {
+        while (andRule!=nullptr && result) {
             result = andRule->isFulfilled(number);
             andRule=andRule->next;
         }
@@ -866,19 +913,33 @@ OrConstraint::isFulfilled(const IFixedDecimal &number) {
 }
 
 
-RuleChain::RuleChain(): fKeyword(), fNext(NULL), ruleHeader(NULL), fDecimalSamples(), fIntegerSamples(),
-                        fDecimalSamplesUnbounded(FALSE), fIntegerSamplesUnbounded(FALSE) {
-}
-
 RuleChain::RuleChain(const RuleChain& other) :
-        fKeyword(other.fKeyword), fNext(NULL), ruleHeader(NULL), fDecimalSamples(other.fDecimalSamples),
+        fKeyword(other.fKeyword), fDecimalSamples(other.fDecimalSamples),
         fIntegerSamples(other.fIntegerSamples), fDecimalSamplesUnbounded(other.fDecimalSamplesUnbounded),
-        fIntegerSamplesUnbounded(other.fIntegerSamplesUnbounded) {
-    if (other.ruleHeader != NULL) {
+        fIntegerSamplesUnbounded(other.fIntegerSamplesUnbounded), fInternalStatus(other.fInternalStatus) {
+    if (U_FAILURE(this->fInternalStatus)) {
+        return; // stop early if the object we are copying from is invalid. 
+    }
+    if (other.ruleHeader != nullptr) {
         this->ruleHeader = new OrConstraint(*(other.ruleHeader));
+        if (this->ruleHeader == nullptr) {
+            this->fInternalStatus = U_MEMORY_ALLOCATION_ERROR;
+        }
+        else if (U_FAILURE(this->ruleHeader->fInternalStatus)) {
+            // If the OrConstraint wasn't fully copied, then set our status to failure as well.
+            this->fInternalStatus = this->ruleHeader->fInternalStatus;
+            return; // exit early.
+        }
     }
-    if (other.fNext != NULL ) {
+    if (other.fNext != nullptr ) {
         this->fNext = new RuleChain(*other.fNext);
+        if (this->fNext == nullptr) {
+            this->fInternalStatus = U_MEMORY_ALLOCATION_ERROR;
+        }
+        else if (U_FAILURE(this->fNext->fInternalStatus)) {
+            // If the RuleChain wasn't fully copied, then set our status to failure as well.
+            this->fInternalStatus = this->fNext->fInternalStatus;
+        }
     }
 }
 
@@ -887,11 +948,10 @@ RuleChain::~RuleChain() {
     delete ruleHeader;
 }
 
-
 UnicodeString
 RuleChain::select(const IFixedDecimal &number) const {
     if (!number.isNaN() && !number.isInfinite()) {
-        for (const RuleChain *rules = this; rules != NULL; rules = rules->fNext) {
+        for (const RuleChain *rules = this; rules != nullptr; rules = rules->fNext) {
              if (rules->ruleHeader->isFulfilled(number)) {
                  return rules->fKeyword;
              }
@@ -923,17 +983,17 @@ void
 RuleChain::dumpRules(UnicodeString& result) {
     UChar digitString[16];
 
-    if ( ruleHeader != NULL ) {
+    if ( ruleHeader != nullptr ) {
         result +=  fKeyword;
         result += COLON;
         result += SPACE;
         OrConstraint* orRule=ruleHeader;
-        while ( orRule != NULL ) {
+        while ( orRule != nullptr ) {
             AndConstraint* andRule=orRule->childNode;
-            while ( andRule != NULL ) {
-                if ((andRule->op==AndConstraint::NONE) &&  (andRule->rangeList==NULL) && (andRule->value == -1)) {
+            while ( andRule != nullptr ) {
+                if ((andRule->op==AndConstraint::NONE) &&  (andRule->rangeList==nullptr) && (andRule->value == -1)) {
                     // Empty Rules.
-                } else if ( (andRule->op==AndConstraint::NONE) && (andRule->rangeList==NULL) ) {
+                } else if ( (andRule->op==AndConstraint::NONE) && (andRule->rangeList==nullptr) ) {
                     result += tokenString(andRule->digitsType);
                     result += UNICODE_STRING_SIMPLE(" is ");
                     if (andRule->negated) {
@@ -950,7 +1010,7 @@ RuleChain::dumpRules(UnicodeString& result) {
                         uprv_itou(digitString,16, andRule->opNum,10,0);
                         result += UnicodeString(digitString);
                     }
-                    if (andRule->rangeList==NULL) {
+                    if (andRule->rangeList==nullptr) {
                         if (andRule->negated) {
                             result += UNICODE_STRING_SIMPLE(" is not ");
                             uprv_itou(digitString,16, andRule->value,10,0);
@@ -993,16 +1053,16 @@ RuleChain::dumpRules(UnicodeString& result) {
                         }
                     }
                 }
-                if ( (andRule=andRule->next) != NULL) {
+                if ( (andRule=andRule->next) != nullptr) {
                     result += UNICODE_STRING_SIMPLE(" and ");
                 }
             }
-            if ( (orRule = orRule->next) != NULL ) {
+            if ( (orRule = orRule->next) != nullptr ) {
                 result += UNICODE_STRING_SIMPLE(" or ");
             }
         }
     }
-    if ( fNext != NULL ) {
+    if ( fNext != nullptr ) {
         result += UNICODE_STRING_SIMPLE("; ");
         fNext->dumpRules(result);
     }
@@ -1011,6 +1071,9 @@ RuleChain::dumpRules(UnicodeString& result) {
 
 UErrorCode
 RuleChain::getKeywords(int32_t capacityOfKeywords, UnicodeString* keywords, int32_t& arraySize) const {
+    if (U_FAILURE(fInternalStatus)) {
+        return fInternalStatus;
+    }
     if ( arraySize < capacityOfKeywords-1 ) {
         keywords[arraySize++]=fKeyword;
     }
@@ -1018,7 +1081,7 @@ RuleChain::getKeywords(int32_t capacityOfKeywords, UnicodeString* keywords, int3
         return U_BUFFER_OVERFLOW_ERROR;
     }
 
-    if ( fNext != NULL ) {
+    if ( fNext != nullptr ) {
         return fNext->getKeywords(capacityOfKeywords, keywords, arraySize);
     }
     else {
@@ -1032,7 +1095,7 @@ RuleChain::isKeyword(const UnicodeString& keywordParam) const {
         return TRUE;
     }
 
-    if ( fNext != NULL ) {
+    if ( fNext != nullptr ) {
         return fNext->isKeyword(keywordParam);
     }
     else {
@@ -1043,7 +1106,7 @@ RuleChain::isKeyword(const UnicodeString& keywordParam) const {
 
 PluralRuleParser::PluralRuleParser() :
         ruleIndex(0), token(), type(none), prevType(none),
-        curAndConstraint(NULL), currentChain(NULL), rangeLowIdx(-1), rangeHiIdx(-1)
+        curAndConstraint(nullptr), currentChain(nullptr), rangeLowIdx(-1), rangeHiIdx(-1)
 {
 }
 
@@ -1341,21 +1404,36 @@ PluralKeywordEnumeration::PluralKeywordEnumeration(RuleChain *header, UErrorCode
         return;
     }
     fKeywordNames.setDeleter(uprv_deleteUObject);
-    UBool  addKeywordOther=TRUE;
-    RuleChain *node=header;
-    while(node!=NULL) {
-        fKeywordNames.addElement(new UnicodeString(node->fKeyword), status);
+    UBool  addKeywordOther = TRUE;
+    RuleChain *node = header;
+    while (node != nullptr) {
+        auto newElem = new UnicodeString(node->fKeyword);
+        if (newElem == nullptr) {
+            status = U_MEMORY_ALLOCATION_ERROR;
+            return;
+        }
+        fKeywordNames.addElement(newElem, status);
         if (U_FAILURE(status)) {
+            delete newElem;
             return;
         }
         if (0 == node->fKeyword.compare(PLURAL_KEYWORD_OTHER, 5)) {
-            addKeywordOther= FALSE;
+            addKeywordOther = FALSE;
         }
-        node=node->fNext;
+        node = node->fNext;
     }
 
     if (addKeywordOther) {
-        fKeywordNames.addElement(new UnicodeString(PLURAL_KEYWORD_OTHER), status);
+        auto newElem = new UnicodeString(PLURAL_KEYWORD_OTHER);
+        if (newElem == nullptr) {
+            status = U_MEMORY_ALLOCATION_ERROR;
+            return;
+        }
+        fKeywordNames.addElement(newElem, status);
+        if (U_FAILURE(status)) {
+            delete newElem;
+            return;
+        }
     }
 }
 
@@ -1364,7 +1442,7 @@ PluralKeywordEnumeration::snext(UErrorCode& status) {
     if (U_SUCCESS(status) && pos < fKeywordNames.size()) {
         return (const UnicodeString*)fKeywordNames.elementAt(pos++);
     }
-    return NULL;
+    return nullptr;
 }
 
 void
@@ -1374,7 +1452,7 @@ PluralKeywordEnumeration::reset(UErrorCode& /*status*/) {
 
 int32_t
 PluralKeywordEnumeration::count(UErrorCode& /*status*/) const {
-       return fKeywordNames.size();
+    return fKeywordNames.size();
 }
 
 PluralKeywordEnumeration::~PluralKeywordEnumeration() {
@@ -1634,41 +1712,39 @@ int32_t FixedDecimal::getVisibleFractionDigitCount() const {
 
 
 PluralAvailableLocalesEnumeration::PluralAvailableLocalesEnumeration(UErrorCode &status) {
-    fLocales = NULL;
-    fRes = NULL;
     fOpenStatus = status;
     if (U_FAILURE(status)) {
         return;
     }
-    fOpenStatus = U_ZERO_ERROR;
-    LocalUResourceBundlePointer rb(ures_openDirect(NULL, "plurals", &fOpenStatus));
-    fLocales = ures_getByKey(rb.getAlias(), "locales", NULL, &fOpenStatus);
+    fOpenStatus = U_ZERO_ERROR; // clear any warnings.
+    LocalUResourceBundlePointer rb(ures_openDirect(nullptr, "plurals", &fOpenStatus));
+    fLocales = ures_getByKey(rb.getAlias(), "locales", nullptr, &fOpenStatus);
 }
 
 PluralAvailableLocalesEnumeration::~PluralAvailableLocalesEnumeration() {
     ures_close(fLocales);
     ures_close(fRes);
-    fLocales = NULL;
-    fRes = NULL;
+    fLocales = nullptr;
+    fRes = nullptr;
 }
 
 const char *PluralAvailableLocalesEnumeration::next(int32_t *resultLength, UErrorCode &status) {
     if (U_FAILURE(status)) {
-        return NULL;
+        return nullptr;
     }
     if (U_FAILURE(fOpenStatus)) {
         status = fOpenStatus;
-        return NULL;
+        return nullptr;
     }
     fRes = ures_getNextResource(fLocales, fRes, &status);
-    if (fRes == NULL || U_FAILURE(status)) {
+    if (fRes == nullptr || U_FAILURE(status)) {
         if (status == U_INDEX_OUTOFBOUNDS_ERROR) {
             status = U_ZERO_ERROR;
         }
-        return NULL;
+        return nullptr;
     }
     const char *result = ures_getKey(fRes);
-    if (resultLength != NULL) {
+    if (resultLength != nullptr) {
         *resultLength = static_cast<int32_t>(uprv_strlen(result));
     }
     return result;
index 3ab445d5843c8b4336467cf65492fd0323e39234..3a919ea9f5d9bd77d7b91d9dc6becb8e988a63b6 100644 (file)
@@ -181,7 +181,6 @@ private:
        kRangeList,
        kSamples
     };
-
 };
 
 enum PluralOperand {
@@ -311,32 +310,36 @@ public:
         NONE,
         MOD
     } RuleOp;
-    RuleOp  op;
-    int32_t opNum;           // for mod expressions, the right operand of the mod.
-    int32_t     value;       // valid for 'is' rules only.
-    UVector32   *rangeList;  // for 'in', 'within' rules. Null otherwise.
-    UBool   negated;           // TRUE for negated rules.
-    UBool   integerOnly;     // TRUE for 'within' rules.
-    tokenType digitsType;    // n | i | v | f constraint.
-    AndConstraint *next;
-
-    AndConstraint();
+    RuleOp op = AndConstraint::NONE;
+    int32_t opNum = -1;             // for mod expressions, the right operand of the mod.
+    int32_t value = -1;             // valid for 'is' rules only.
+    UVector32 *rangeList = nullptr; // for 'in', 'within' rules. Null otherwise.
+    UBool negated = FALSE;          // TRUE for negated rules.
+    UBool integerOnly = FALSE;      // TRUE for 'within' rules.
+    tokenType digitsType = none;    // n | i | v | f constraint.
+    AndConstraint *next = nullptr;
+    // Internal error status, used for errors that occur during the copy constructor.
+    UErrorCode fInternalStatus = U_ZERO_ERROR;    
+
+    AndConstraint() = default;
     AndConstraint(const AndConstraint& other);
     virtual ~AndConstraint();
-    AndConstraint* add();
+    AndConstraint* add(UErrorCode& status);
     // UBool isFulfilled(double number);
     UBool isFulfilled(const IFixedDecimal &number);
 };
 
 class OrConstraint : public UMemory  {
 public:
-    AndConstraint *childNode;
-    OrConstraint *next;
-    OrConstraint();
+    AndConstraint *childNode = nullptr;
+    OrConstraint *next = nullptr;
+    // Internal error status, used for errors that occur during the copy constructor.
+    UErrorCode fInternalStatus = U_ZERO_ERROR;
 
+    OrConstraint() = default;
     OrConstraint(const OrConstraint& other);
     virtual ~OrConstraint();
-    AndConstraint* add();
+    AndConstraint* add(UErrorCode& status);
     // UBool isFulfilled(double number);
     UBool isFulfilled(const IFixedDecimal &number);
 };
@@ -344,15 +347,16 @@ public:
 class RuleChain : public UMemory  {
 public:
     UnicodeString   fKeyword;
-    RuleChain      *fNext;
-    OrConstraint   *ruleHeader;
+    RuleChain      *fNext = nullptr;
+    OrConstraint   *ruleHeader = nullptr;
     UnicodeString   fDecimalSamples;  // Samples strings from rule source
     UnicodeString   fIntegerSamples;  //   without @decimal or @integer, otherwise unprocessed.
-    UBool           fDecimalSamplesUnbounded;
-    UBool           fIntegerSamplesUnbounded;
-
+    UBool           fDecimalSamplesUnbounded = FALSE;
+    UBool           fIntegerSamplesUnbounded = FALSE;
+    // Internal error status, used for errors that occur during the copy constructor.
+    UErrorCode      fInternalStatus = U_ZERO_ERROR;
 
-    RuleChain();
+    RuleChain() = default;
     RuleChain(const RuleChain& other);
     virtual ~RuleChain();
 
@@ -386,8 +390,8 @@ class U_I18N_API PluralAvailableLocalesEnumeration: public StringEnumeration {
     virtual int32_t count(UErrorCode& status) const;
   private:
     UErrorCode      fOpenStatus;
-    UResourceBundle *fLocales;
-    UResourceBundle *fRes;
+    UResourceBundle *fLocales = nullptr;
+    UResourceBundle *fRes = nullptr;
 };
 
 U_NAMESPACE_END
index 68bbf1ab17e00a7a6b2f873b85f81ae57ba66819..27afc1faaa19d2b81e834350f8ec9a1b36acbb68 100644 (file)
@@ -680,7 +680,7 @@ StringLocalizationInfo::getDisplayName(int32_t localeIndex, int32_t ruleIndex) c
 RuleBasedNumberFormat::RuleBasedNumberFormat(const UnicodeString& description, 
                                              const UnicodeString& locs,
                                              const Locale& alocale, UParseError& perror, UErrorCode& status)
-  : ruleSets(NULL)
+  : fRuleSets(NULL)
   , ruleSetDescriptions(NULL)
   , numRuleSets(0)
   , defaultRuleSet(NULL)
@@ -689,7 +689,7 @@ RuleBasedNumberFormat::RuleBasedNumberFormat(const UnicodeString& description,
   , decimalFormatSymbols(NULL)
   , defaultInfinityRule(NULL)
   , defaultNaNRule(NULL)
-  , roundingMode(DecimalFormat::ERoundingMode::kRoundUnnecessary)
+  , fRoundingMode(DecimalFormat::ERoundingMode::kRoundUnnecessary)
   , lenient(FALSE)
   , lenientParseRules(NULL)
   , localizations(NULL)
@@ -705,7 +705,7 @@ RuleBasedNumberFormat::RuleBasedNumberFormat(const UnicodeString& description,
 RuleBasedNumberFormat::RuleBasedNumberFormat(const UnicodeString& description, 
                                              const UnicodeString& locs,
                                              UParseError& perror, UErrorCode& status)
-  : ruleSets(NULL)
+  : fRuleSets(NULL)
   , ruleSetDescriptions(NULL)
   , numRuleSets(0)
   , defaultRuleSet(NULL)
@@ -714,7 +714,7 @@ RuleBasedNumberFormat::RuleBasedNumberFormat(const UnicodeString& description,
   , decimalFormatSymbols(NULL)
   , defaultInfinityRule(NULL)
   , defaultNaNRule(NULL)
-  , roundingMode(DecimalFormat::ERoundingMode::kRoundUnnecessary)
+  , fRoundingMode(DecimalFormat::ERoundingMode::kRoundUnnecessary)
   , lenient(FALSE)
   , lenientParseRules(NULL)
   , localizations(NULL)
@@ -730,7 +730,7 @@ RuleBasedNumberFormat::RuleBasedNumberFormat(const UnicodeString& description,
 RuleBasedNumberFormat::RuleBasedNumberFormat(const UnicodeString& description, 
                                              LocalizationInfo* info,
                                              const Locale& alocale, UParseError& perror, UErrorCode& status)
-  : ruleSets(NULL)
+  : fRuleSets(NULL)
   , ruleSetDescriptions(NULL)
   , numRuleSets(0)
   , defaultRuleSet(NULL)
@@ -739,7 +739,7 @@ RuleBasedNumberFormat::RuleBasedNumberFormat(const UnicodeString& description,
   , decimalFormatSymbols(NULL)
   , defaultInfinityRule(NULL)
   , defaultNaNRule(NULL)
-  , roundingMode(DecimalFormat::ERoundingMode::kRoundUnnecessary)
+  , fRoundingMode(DecimalFormat::ERoundingMode::kRoundUnnecessary)
   , lenient(FALSE)
   , lenientParseRules(NULL)
   , localizations(NULL)
@@ -754,7 +754,7 @@ RuleBasedNumberFormat::RuleBasedNumberFormat(const UnicodeString& description,
 RuleBasedNumberFormat::RuleBasedNumberFormat(const UnicodeString& description, 
                          UParseError& perror, 
                          UErrorCode& status) 
-  : ruleSets(NULL)
+  : fRuleSets(NULL)
   , ruleSetDescriptions(NULL)
   , numRuleSets(0)
   , defaultRuleSet(NULL)
@@ -763,7 +763,7 @@ RuleBasedNumberFormat::RuleBasedNumberFormat(const UnicodeString& description,
   , decimalFormatSymbols(NULL)
   , defaultInfinityRule(NULL)
   , defaultNaNRule(NULL)
-  , roundingMode(DecimalFormat::ERoundingMode::kRoundUnnecessary)
+  , fRoundingMode(DecimalFormat::ERoundingMode::kRoundUnnecessary)
   , lenient(FALSE)
   , lenientParseRules(NULL)
   , localizations(NULL)
@@ -779,7 +779,7 @@ RuleBasedNumberFormat::RuleBasedNumberFormat(const UnicodeString& description,
                          const Locale& aLocale,
                          UParseError& perror, 
                          UErrorCode& status) 
-  : ruleSets(NULL)
+  : fRuleSets(NULL)
   , ruleSetDescriptions(NULL)
   , numRuleSets(0)
   , defaultRuleSet(NULL)
@@ -788,7 +788,7 @@ RuleBasedNumberFormat::RuleBasedNumberFormat(const UnicodeString& description,
   , decimalFormatSymbols(NULL)
   , defaultInfinityRule(NULL)
   , defaultNaNRule(NULL)
-  , roundingMode(DecimalFormat::ERoundingMode::kRoundUnnecessary)
+  , fRoundingMode(DecimalFormat::ERoundingMode::kRoundUnnecessary)
   , lenient(FALSE)
   , lenientParseRules(NULL)
   , localizations(NULL)
@@ -801,7 +801,7 @@ RuleBasedNumberFormat::RuleBasedNumberFormat(const UnicodeString& description,
 }
 
 RuleBasedNumberFormat::RuleBasedNumberFormat(URBNFRuleSetTag tag, const Locale& alocale, UErrorCode& status)
-  : ruleSets(NULL)
+  : fRuleSets(NULL)
   , ruleSetDescriptions(NULL)
   , numRuleSets(0)
   , defaultRuleSet(NULL)
@@ -810,7 +810,7 @@ RuleBasedNumberFormat::RuleBasedNumberFormat(URBNFRuleSetTag tag, const Locale&
   , decimalFormatSymbols(NULL)
   , defaultInfinityRule(NULL)
   , defaultNaNRule(NULL)
-  , roundingMode(DecimalFormat::ERoundingMode::kRoundUnnecessary)
+  , fRoundingMode(DecimalFormat::ERoundingMode::kRoundUnnecessary)
   , lenient(FALSE)
   , lenientParseRules(NULL)
   , localizations(NULL)
@@ -868,7 +868,7 @@ RuleBasedNumberFormat::RuleBasedNumberFormat(URBNFRuleSetTag tag, const Locale&
 
 RuleBasedNumberFormat::RuleBasedNumberFormat(const RuleBasedNumberFormat& rhs)
   : NumberFormat(rhs)
-  , ruleSets(NULL)
+  , fRuleSets(NULL)
   , ruleSetDescriptions(NULL)
   , numRuleSets(0)
   , defaultRuleSet(NULL)
@@ -877,7 +877,7 @@ RuleBasedNumberFormat::RuleBasedNumberFormat(const RuleBasedNumberFormat& rhs)
   , decimalFormatSymbols(NULL)
   , defaultInfinityRule(NULL)
   , defaultNaNRule(NULL)
-  , roundingMode(DecimalFormat::ERoundingMode::kRoundUnnecessary)
+  , fRoundingMode(DecimalFormat::ERoundingMode::kRoundUnnecessary)
   , lenient(FALSE)
   , lenientParseRules(NULL)
   , localizations(NULL)
@@ -950,8 +950,8 @@ RuleBasedNumberFormat::operator==(const Format& other) const
                     ? FALSE
                     : *localizations == rhs.localizations))) {
 
-            NFRuleSet** p = ruleSets;
-            NFRuleSet** q = rhs.ruleSets;
+            NFRuleSet** p = fRuleSets;
+            NFRuleSet** q = rhs.fRuleSets;
             if (p == NULL) {
                 return q == NULL;
             } else if (q == NULL) {
@@ -972,8 +972,8 @@ UnicodeString
 RuleBasedNumberFormat::getRules() const
 {
     UnicodeString result;
-    if (ruleSets != NULL) {
-        for (NFRuleSet** p = ruleSets; *p; ++p) {
+    if (fRuleSets != NULL) {
+        for (NFRuleSet** p = fRuleSets; *p; ++p) {
             (*p)->appendRules(result);
         }
     }
@@ -987,9 +987,9 @@ RuleBasedNumberFormat::getRuleSetName(int32_t index) const
         UnicodeString string(TRUE, localizations->getRuleSetName(index), (int32_t)-1);
         return string;
     }
-    else if (ruleSets) {
+    else if (fRuleSets) {
         UnicodeString result;
-        for (NFRuleSet** p = ruleSets; *p; ++p) {
+        for (NFRuleSet** p = fRuleSets; *p; ++p) {
             NFRuleSet* rs = *p;
             if (rs->isPublic()) {
                 if (--index == -1) {
@@ -1010,8 +1010,8 @@ RuleBasedNumberFormat::getNumberOfRuleSetNames() const
     if (localizations) {
         result = localizations->getNumberOfRuleSets();
     }
-    else if (ruleSets) {
-        for (NFRuleSet** p = ruleSets; *p; ++p) {
+    else if (fRuleSets) {
+        for (NFRuleSet** p = fRuleSets; *p; ++p) {
             if ((**p).isPublic()) {
                 ++result;
             }
@@ -1098,8 +1098,8 @@ RuleBasedNumberFormat::getRuleSetDisplayName(const UnicodeString& ruleSetName, c
 NFRuleSet*
 RuleBasedNumberFormat::findRuleSet(const UnicodeString& name, UErrorCode& status) const
 {
-    if (U_SUCCESS(status) && ruleSets) {
-        for (NFRuleSet** p = ruleSets; *p; ++p) {
+    if (U_SUCCESS(status) && fRuleSets) {
+        for (NFRuleSet** p = fRuleSets; *p; ++p) {
             NFRuleSet* rs = *p;
             if (rs->isNamed(name)) {
                 return rs;
@@ -1132,11 +1132,17 @@ RuleBasedNumberFormat::format(const DecimalQuantity &number,
             // The DecimalFormat will provide more accurate results.
 
             // TODO this section should probably be optimized. The DecimalFormat is shared in ICU4J.
-            NumberFormat *decimalFormat = NumberFormat::createInstance(locale, UNUM_DECIMAL, status);
+            LocalPointer<NumberFormat> decimalFormat(NumberFormat::createInstance(locale, UNUM_DECIMAL, status), status);
+            if (decimalFormat.isNull()) {
+                return appendTo;
+            }
             Formattable f;
-            f.adoptDecimalQuantity(new DecimalQuantity(number));
+            LocalPointer<DecimalQuantity> decimalQuantity(new DecimalQuantity(number), status);
+            if (decimalQuantity.isNull()) {
+                return appendTo;
+            }
+            f.adoptDecimalQuantity(decimalQuantity.orphan()); // f now owns decimalQuantity.
             decimalFormat->format(f, appendTo, posIter, status);
-            delete decimalFormat;
         }
     }
     return appendTo;
@@ -1165,11 +1171,17 @@ RuleBasedNumberFormat::format(const DecimalQuantity &number,
             // The DecimalFormat will provide more accurate results.
 
             // TODO this section should probably be optimized. The DecimalFormat is shared in ICU4J.
-            NumberFormat *decimalFormat = NumberFormat::createInstance(locale, UNUM_DECIMAL, status);
+            LocalPointer<NumberFormat> decimalFormat(NumberFormat::createInstance(locale, UNUM_DECIMAL, status), status);
+            if (decimalFormat.isNull()) {
+                return appendTo;
+            }
             Formattable f;
-            f.adoptDecimalQuantity(new DecimalQuantity(number));
+            LocalPointer<DecimalQuantity> decimalQuantity(new DecimalQuantity(number), status);
+            if (decimalQuantity.isNull()) {
+                return appendTo;
+            }
+            f.adoptDecimalQuantity(decimalQuantity.orphan()); // f now owns decimalQuantity.
             decimalFormat->format(f, appendTo, pos, status);
-            delete decimalFormat;
         }
     }
     return appendTo;
@@ -1312,11 +1324,19 @@ RuleBasedNumberFormat::format(int64_t number, NFRuleSet *ruleSet, UnicodeString&
 
             // TODO this section should probably be optimized. The DecimalFormat is shared in ICU4J.
             NumberFormat *decimalFormat = NumberFormat::createInstance(locale, UNUM_DECIMAL, status);
+            if (decimalFormat == nullptr) {
+                return toAppendTo;
+            }
             Formattable f;
             FieldPosition pos(FieldPosition::DONT_CARE);
-            DecimalQuantity *digitList = new DecimalQuantity();
-            digitList->setToLong(number);
-            f.adoptDecimalQuantity(digitList);
+            DecimalQuantity *decimalQuantity = new DecimalQuantity();
+            if (decimalQuantity == nullptr) {
+                status = U_MEMORY_ALLOCATION_ERROR;
+                delete decimalFormat;
+                return toAppendTo;
+            }
+            decimalQuantity->setToLong(number);
+            f.adoptDecimalQuantity(decimalQuantity); // f now owns decimalQuantity.
             decimalFormat->format(f, toAppendTo, pos, status);
             delete decimalFormat;
         }
@@ -1358,7 +1378,7 @@ RuleBasedNumberFormat::parse(const UnicodeString& text,
                              Formattable& result,
                              ParsePosition& parsePosition) const
 {
-    if (!ruleSets) {
+    if (!fRuleSets) {
         parsePosition.setErrorIndex(0);
         return;
     }
@@ -1369,7 +1389,7 @@ RuleBasedNumberFormat::parse(const UnicodeString& text,
     ParsePosition high_pp(0);
     Formattable high_result;
 
-    for (NFRuleSet** p = ruleSets; *p; ++p) {
+    for (NFRuleSet** p = fRuleSets; *p; ++p) {
         NFRuleSet *rp = *p;
         if (rp->isPublic() && rp->isParseable()) {
             ParsePosition working_pp(0);
@@ -1457,7 +1477,7 @@ void
 RuleBasedNumberFormat::initDefaultRuleSet()
 {
     defaultRuleSet = NULL;
-    if (!ruleSets) {
+    if (!fRuleSets) {
         return;
     }
 
@@ -1465,7 +1485,7 @@ RuleBasedNumberFormat::initDefaultRuleSet()
     const UnicodeString ordinal(UNICODE_STRING_SIMPLE("%digits-ordinal"));
     const UnicodeString duration(UNICODE_STRING_SIMPLE("%duration"));
 
-    NFRuleSet**p = &ruleSets[0];
+    NFRuleSet**p = &fRuleSets[0];
     while (*p) {
         if ((*p)->isNamed(spellout) || (*p)->isNamed(ordinal) || (*p)->isNamed(duration)) {
             defaultRuleSet = *p;
@@ -1477,7 +1497,7 @@ RuleBasedNumberFormat::initDefaultRuleSet()
 
     defaultRuleSet = *--p;
     if (!defaultRuleSet->isPublic()) {
-        while (p != ruleSets) {
+        while (p != fRuleSets) {
             if ((*--p)->isPublic()) {
                 defaultRuleSet = *p;
                 break;
@@ -1547,7 +1567,7 @@ RuleBasedNumberFormat::init(const UnicodeString& rules, LocalizationInfo* locali
             // from the description
             lenientParseRules = new UnicodeString();
             /* test for NULL */
-            if (lenientParseRules == 0) {
+            if (lenientParseRules == nullptr) {
                 status = U_MEMORY_ALLOCATION_ERROR;
                 return;
             }
@@ -1568,15 +1588,15 @@ RuleBasedNumberFormat::init(const UnicodeString& rules, LocalizationInfo* locali
     ++numRuleSets;
 
     // our rule list is an array of the appropriate size
-    ruleSets = (NFRuleSet **)uprv_malloc((numRuleSets + 1) * sizeof(NFRuleSet *));
+    fRuleSets = (NFRuleSet **)uprv_malloc((numRuleSets + 1) * sizeof(NFRuleSet *));
     /* test for NULL */
-    if (ruleSets == 0) {
+    if (fRuleSets == 0) {
         status = U_MEMORY_ALLOCATION_ERROR;
         return;
     }
 
     for (int i = 0; i <= numRuleSets; ++i) {
-        ruleSets[i] = NULL;
+        fRuleSets[i] = NULL;
     }
 
     // divide up the descriptions into individual rule-set descriptions
@@ -1592,7 +1612,7 @@ RuleBasedNumberFormat::init(const UnicodeString& rules, LocalizationInfo* locali
     }
 
     ruleSetDescriptions = new UnicodeString[numRuleSets];
-    if (ruleSetDescriptions == 0) {
+    if (ruleSetDescriptions == nullptr) {
         status = U_MEMORY_ALLOCATION_ERROR;
         return;
     }
@@ -1602,8 +1622,8 @@ RuleBasedNumberFormat::init(const UnicodeString& rules, LocalizationInfo* locali
         int32_t start = 0;
         for (int32_t p = description.indexOf(gSemiPercent, 2, 0); p != -1; p = description.indexOf(gSemiPercent, 2, start)) {
             ruleSetDescriptions[curRuleSet].setTo(description, start, p + 1 - start);
-            ruleSets[curRuleSet] = new NFRuleSet(this, ruleSetDescriptions, curRuleSet, status);
-            if (ruleSets[curRuleSet] == 0) {
+            fRuleSets[curRuleSet] = new NFRuleSet(this, ruleSetDescriptions, curRuleSet, status);
+            if (fRuleSets[curRuleSet] == nullptr) {
                 status = U_MEMORY_ALLOCATION_ERROR;
                 return;
             }
@@ -1611,8 +1631,8 @@ RuleBasedNumberFormat::init(const UnicodeString& rules, LocalizationInfo* locali
             start = p + 1;
         }
         ruleSetDescriptions[curRuleSet].setTo(description, start, description.length() - start);
-        ruleSets[curRuleSet] = new NFRuleSet(this, ruleSetDescriptions, curRuleSet, status);
-        if (ruleSets[curRuleSet] == 0) {
+        fRuleSets[curRuleSet] = new NFRuleSet(this, ruleSetDescriptions, curRuleSet, status);
+        if (fRuleSets[curRuleSet] == nullptr) {
             status = U_MEMORY_ALLOCATION_ERROR;
             return;
         }
@@ -1630,11 +1650,11 @@ RuleBasedNumberFormat::init(const UnicodeString& rules, LocalizationInfo* locali
     initDefaultRuleSet();
 
     // finally, we can go back through the temporary descriptions
-    // list and finish seting up the substructure (and we throw
+    // list and finish setting up the substructure (and we throw
     // away the temporary descriptions as we go)
     {
         for (int i = 0; i < numRuleSets; i++) {
-            ruleSets[i]->parseRules(ruleSetDescriptions[i], status);
+            fRuleSets[i]->parseRules(ruleSetDescriptions[i], status);
         }
     }
 
@@ -1680,7 +1700,7 @@ RuleBasedNumberFormat::setContext(UDisplayContext value, UErrorCode& status)
         if ( capitalizationBrkIter == NULL && (value==UDISPCTX_CAPITALIZATION_FOR_BEGINNING_OF_SENTENCE ||
                 (value==UDISPCTX_CAPITALIZATION_FOR_UI_LIST_OR_MENU && capitalizationForUIListMenu) ||
                 (value==UDISPCTX_CAPITALIZATION_FOR_STANDALONE && capitalizationForStandAlone)) ) {
-            UErrorCode status = U_ZERO_ERROR;
+            status = U_ZERO_ERROR;
             capitalizationBrkIter = BreakIterator::createSentenceInstance(locale, status);
             if (U_FAILURE(status)) {
                 delete capitalizationBrkIter;
@@ -1704,8 +1724,8 @@ RuleBasedNumberFormat::initCapitalizationContextInfo(const Locale& thelocale)
         int32_t len = 0;
         const int32_t * intVector = ures_getIntVector(rb, &len, &status);
         if (U_SUCCESS(status) && intVector != NULL && len >= 2) {
-            capitalizationForUIListMenu = intVector[0];
-            capitalizationForStandAlone = intVector[1];
+            capitalizationForUIListMenu = static_cast<UBool>(intVector[0]);
+            capitalizationForStandAlone = static_cast<UBool>(intVector[1]);
         }
     }
     ures_close(rb);
@@ -1740,7 +1760,7 @@ RuleBasedNumberFormat::stripWhitespace(UnicodeString& description)
             start = p + 1;
         }
 
-        // when we get here, we've seeked off the end of the sring, and
+        // when we get here, we've seeked off the end of the string, and
         // we terminate the loop (we continue until *start* is -1 rather
         // than until *p* is -1, because otherwise we'd miss the last
         // rule in the description)
@@ -1756,12 +1776,12 @@ RuleBasedNumberFormat::stripWhitespace(UnicodeString& description)
 void
 RuleBasedNumberFormat::dispose()
 {
-    if (ruleSets) {
-        for (NFRuleSet** p = ruleSets; *p; ++p) {
+    if (fRuleSets) {
+        for (NFRuleSet** p = fRuleSets; *p; ++p) {
             delete *p;
         }
-        uprv_free(ruleSets);
-        ruleSets = NULL;
+        uprv_free(fRuleSets);
+        fRuleSets = NULL;
     }
 
     if (ruleSetDescriptions) {
@@ -1811,7 +1831,7 @@ const RuleBasedCollator*
 RuleBasedNumberFormat::getCollator() const
 {
 #if !UCONFIG_NO_COLLATION
-    if (!ruleSets) {
+    if (!fRuleSets) {
         return NULL;
     }
 
@@ -1820,7 +1840,7 @@ RuleBasedNumberFormat::getCollator() const
         // create a default collator based on the formatter's locale,
         // then pull out that collator's rules, append any additional
         // rules specified in the description, and create a _new_
-        // collator based on the combinaiton of those rules
+        // collator based on the combination of those rules
 
         UErrorCode status = U_ZERO_ERROR;
 
@@ -1863,13 +1883,10 @@ RuleBasedNumberFormat::initializeDecimalFormatSymbols(UErrorCode &status)
     // lazy-evaluate the DecimalFormatSymbols object.  This object
     // is shared by all DecimalFormat instances belonging to this
     // formatter
-    if (decimalFormatSymbols == NULL) {
-        DecimalFormatSymbols* temp = new DecimalFormatSymbols(locale, status);
+    if (decimalFormatSymbols == nullptr) {
+        LocalPointer<DecimalFormatSymbols> temp(new DecimalFormatSymbols(locale, status), status);
         if (U_SUCCESS(status)) {
-            decimalFormatSymbols = temp;
-        }
-        else {
-            delete temp;
+            decimalFormatSymbols = temp.orphan();
         }
     }
     return decimalFormatSymbols;
@@ -1889,17 +1906,14 @@ NFRule*
 RuleBasedNumberFormat::initializeDefaultInfinityRule(UErrorCode &status)
 {
     if (U_FAILURE(status)) {
-        return NULL;
+        return nullptr;
     }
     if (defaultInfinityRule == NULL) {
         UnicodeString rule(UNICODE_STRING_SIMPLE("Inf: "));
         rule.append(getDecimalFormatSymbols()->getSymbol(DecimalFormatSymbols::kInfinitySymbol));
-        NFRule* temp = new NFRule(this, rule, status);
+        LocalPointer<NFRule> temp(new NFRule(this, rule, status), status);
         if (U_SUCCESS(status)) {
-            defaultInfinityRule = temp;
-        }
-        else {
-            delete temp;
+            defaultInfinityRule = temp.orphan();
         }
     }
     return defaultInfinityRule;
@@ -1915,17 +1929,14 @@ NFRule*
 RuleBasedNumberFormat::initializeDefaultNaNRule(UErrorCode &status)
 {
     if (U_FAILURE(status)) {
-        return NULL;
+        return nullptr;
     }
-    if (defaultNaNRule == NULL) {
+    if (defaultNaNRule == nullptr) {
         UnicodeString rule(UNICODE_STRING_SIMPLE("NaN: "));
         rule.append(getDecimalFormatSymbols()->getSymbol(DecimalFormatSymbols::kNaNSymbol));
-        NFRule* temp = new NFRule(this, rule, status);
+        LocalPointer<NFRule> temp(new NFRule(this, rule, status), status);
         if (U_SUCCESS(status)) {
-            defaultNaNRule = temp;
-        }
-        else {
-            delete temp;
+            defaultNaNRule = temp.orphan();
         }
     }
     return defaultNaNRule;
@@ -1963,15 +1974,15 @@ RuleBasedNumberFormat::adoptDecimalFormatSymbols(DecimalFormatSymbols* symbolsTo
         defaultNaNRule = NULL;
         initializeDefaultNaNRule(status); // Reset with the new DecimalFormatSymbols
 
-        if (ruleSets) {
+        if (fRuleSets) {
             for (int32_t i = 0; i < numRuleSets; i++) {
-                ruleSets[i]->setDecimalFormatSymbols(*symbolsToAdopt, status);
+                fRuleSets[i]->setDecimalFormatSymbols(*symbolsToAdopt, status);
             }
         }
     }
 }
 
-// Setting the symbols is equlivalent to adopting a newly created localized symbols.
+// Setting the symbols is equivalent to adopting a newly created localized symbols.
 void
 RuleBasedNumberFormat::setDecimalFormatSymbols(const DecimalFormatSymbols& symbols)
 {
@@ -1983,7 +1994,11 @@ RuleBasedNumberFormat::createPluralFormat(UPluralType pluralType,
                                           const UnicodeString &pattern,
                                           UErrorCode& status) const
 {
-    return new PluralFormat(locale, pluralType, pattern, status);
+    auto *pf = new PluralFormat(locale, pluralType, pattern, status);
+    if (pf == nullptr) {
+        status = U_MEMORY_ALLOCATION_ERROR;
+    }
+    return pf;
 }
 
 /**
@@ -1991,7 +2006,7 @@ RuleBasedNumberFormat::createPluralFormat(UPluralType pluralType,
  * @return A rounding mode
  */
 DecimalFormat::ERoundingMode RuleBasedNumberFormat::getRoundingMode() const {
-    return roundingMode;
+    return fRoundingMode;
 }
 
 /**
@@ -2000,7 +2015,7 @@ DecimalFormat::ERoundingMode RuleBasedNumberFormat::getRoundingMode() const {
  * @param roundingMode A rounding mode
  */
 void RuleBasedNumberFormat::setRoundingMode(DecimalFormat::ERoundingMode roundingMode) {
-    this->roundingMode = roundingMode;
+    fRoundingMode = roundingMode;
 }
 
 U_NAMESPACE_END
index b998c694c2303307d58d919b41abb9c3a3cbbd4b..671149f66ef7c16bad8992cf596243098ed321b4 100644 (file)
@@ -29,262 +29,10 @@ class TransliterationRuleData;
 
 /**
  * <code>RuleBasedTransliterator</code> is a transliterator
- * that reads a set of rules in order to determine how to perform
- * translations. Rule sets are stored in resource bundles indexed by
- * name. Rules within a rule set are separated by semicolons (';').
- * To include a literal semicolon, prefix it with a backslash ('\').
- * Whitespace, as defined by <code>Character.isWhitespace()</code>,
- * is ignored. If the first non-blank character on a line is '#',
- * the entire line is ignored as a comment. </p>
- * 
- * <p>Each set of rules consists of two groups, one forward, and one
- * reverse. This is a convention that is not enforced; rules for one
- * direction may be omitted, with the result that translations in
- * that direction will not modify the source text. In addition,
- * bidirectional forward-reverse rules may be specified for
- * symmetrical transformations.</p>
- * 
- * <p><b>Rule syntax</b> </p>
- * 
- * <p>Rule statements take one of the following forms: </p>
- * 
- * <dl>
- *     <dt><code>$alefmadda=\u0622;</code></dt>
- *     <dd><strong>Variable definition.</strong> The name on the
- *         left is assigned the text on the right. In this example,
- *         after this statement, instances of the left hand name,
- *         &quot;<code>$alefmadda</code>&quot;, will be replaced by
- *         the Unicode character U+0622. Variable names must begin
- *         with a letter and consist only of letters, digits, and
- *         underscores. Case is significant. Duplicate names cause
- *         an exception to be thrown, that is, variables cannot be
- *         redefined. The right hand side may contain well-formed
- *         text of any length, including no text at all (&quot;<code>$empty=;</code>&quot;).
- *         The right hand side may contain embedded <code>UnicodeSet</code>
- *         patterns, for example, &quot;<code>$softvowel=[eiyEIY]</code>&quot;.</dd>
- *     <dd>&nbsp;</dd>
- *     <dt><code>ai&gt;$alefmadda;</code></dt>
- *     <dd><strong>Forward translation rule.</strong> This rule
- *         states that the string on the left will be changed to the
- *         string on the right when performing forward
- *         transliteration.</dd>
- *     <dt>&nbsp;</dt>
- *     <dt><code>ai<$alefmadda;</code></dt>
- *     <dd><strong>Reverse translation rule.</strong> This rule
- *         states that the string on the right will be changed to
- *         the string on the left when performing reverse
- *         transliteration.</dd>
- * </dl>
- * 
- * <dl>
- *     <dt><code>ai<>$alefmadda;</code></dt>
- *     <dd><strong>Bidirectional translation rule.</strong> This
- *         rule states that the string on the right will be changed
- *         to the string on the left when performing forward
- *         transliteration, and vice versa when performing reverse
- *         transliteration.</dd>
- * </dl>
- * 
- * <p>Translation rules consist of a <em>match pattern</em> and an <em>output
- * string</em>. The match pattern consists of literal characters,
- * optionally preceded by context, and optionally followed by
- * context. Context characters, like literal pattern characters,
- * must be matched in the text being transliterated. However, unlike
- * literal pattern characters, they are not replaced by the output
- * text. For example, the pattern &quot;<code>abc{def}</code>&quot;
- * indicates the characters &quot;<code>def</code>&quot; must be
- * preceded by &quot;<code>abc</code>&quot; for a successful match.
- * If there is a successful match, &quot;<code>def</code>&quot; will
- * be replaced, but not &quot;<code>abc</code>&quot;. The final '<code>}</code>'
- * is optional, so &quot;<code>abc{def</code>&quot; is equivalent to
- * &quot;<code>abc{def}</code>&quot;. Another example is &quot;<code>{123}456</code>&quot;
- * (or &quot;<code>123}456</code>&quot;) in which the literal
- * pattern &quot;<code>123</code>&quot; must be followed by &quot;<code>456</code>&quot;.
- * </p>
- * 
- * <p>The output string of a forward or reverse rule consists of
- * characters to replace the literal pattern characters. If the
- * output string contains the character '<code>|</code>', this is
- * taken to indicate the location of the <em>cursor</em> after
- * replacement. The cursor is the point in the text at which the
- * next replacement, if any, will be applied. The cursor is usually
- * placed within the replacement text; however, it can actually be
- * placed into the precending or following context by using the
- * special character '<code>@</code>'. Examples:</p>
- * 
- * <blockquote>
- *     <p><code>a {foo} z &gt; | @ bar; # foo -&gt; bar, move cursor
- *     before a<br>
- *     {foo} xyz &gt; bar @@|; #&nbsp;foo -&gt; bar, cursor between
- *     y and z</code></p>
- * </blockquote>
- * 
- * <p><b>UnicodeSet</b></p>
- * 
- * <p><code>UnicodeSet</code> patterns may appear anywhere that
- * makes sense. They may appear in variable definitions.
- * Contrariwise, <code>UnicodeSet</code> patterns may themselves
- * contain variable references, such as &quot;<code>$a=[a-z];$not_a=[^$a]</code>&quot;,
- * or &quot;<code>$range=a-z;$ll=[$range]</code>&quot;.</p>
- * 
- * <p><code>UnicodeSet</code> patterns may also be embedded directly
- * into rule strings. Thus, the following two rules are equivalent:</p>
- * 
- * <blockquote>
- *     <p><code>$vowel=[aeiou]; $vowel&gt;'*'; # One way to do this<br>
- *     [aeiou]&gt;'*';
- *     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#
- *     Another way</code></p>
- * </blockquote>
- * 
- * <p>See {@link UnicodeSet} for more documentation and examples.</p>
- * 
- * <p><b>Segments</b></p>
- * 
- * <p>Segments of the input string can be matched and copied to the
- * output string. This makes certain sets of rules simpler and more
- * general, and makes reordering possible. For example:</p>
- * 
- * <blockquote>
- *     <p><code>([a-z]) &gt; $1 $1;
- *     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#
- *     double lowercase letters<br>
- *     ([:Lu:]) ([:Ll:]) &gt; $2 $1; # reverse order of Lu-Ll pairs</code></p>
- * </blockquote>
- * 
- * <p>The segment of the input string to be copied is delimited by
- * &quot;<code>(</code>&quot; and &quot;<code>)</code>&quot;. Up to
- * nine segments may be defined. Segments may not overlap. In the
- * output string, &quot;<code>$1</code>&quot; through &quot;<code>$9</code>&quot;
- * represent the input string segments, in left-to-right order of
- * definition.</p>
- * 
- * <p><b>Anchors</b></p>
- * 
- * <p>Patterns can be anchored to the beginning or the end of the text. This is done with the
- * special characters '<code>^</code>' and '<code>$</code>'. For example:</p>
- * 
- * <blockquote>
- *   <p><code>^ a&nbsp;&nbsp; &gt; 'BEG_A'; &nbsp;&nbsp;# match 'a' at start of text<br>
- *   &nbsp; a&nbsp;&nbsp; &gt; 'A';&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # match other instances
- *   of 'a'<br>
- *   &nbsp; z $ &gt; 'END_Z'; &nbsp;&nbsp;# match 'z' at end of text<br>
- *   &nbsp; z&nbsp;&nbsp; &gt; 'Z';&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # match other instances
- *   of 'z'</code></p>
- * </blockquote>
- * 
- * <p>It is also possible to match the beginning or the end of the text using a <code>UnicodeSet</code>.
- * This is done by including a virtual anchor character '<code>$</code>' at the end of the
- * set pattern. Although this is usually the match chafacter for the end anchor, the set will
- * match either the beginning or the end of the text, depending on its placement. For
- * example:</p>
- * 
- * <blockquote>
- *   <p><code>$x = [a-z$]; &nbsp;&nbsp;# match 'a' through 'z' OR anchor<br>
- *   $x 1&nbsp;&nbsp;&nbsp; &gt; 2;&nbsp;&nbsp; # match '1' after a-z or at the start<br>
- *   &nbsp;&nbsp; 3 $x &gt; 4; &nbsp;&nbsp;# match '3' before a-z or at the end</code></p>
- * </blockquote>
- * 
- * <p><b>Example</b> </p>
- * 
- * <p>The following example rules illustrate many of the features of
- * the rule language. </p>
- * 
- * <table border="0" cellpadding="4">
- *     <tr>
- *         <td valign="top">Rule 1.</td>
- *         <td valign="top" nowrap><code>abc{def}&gt;x|y</code></td>
- *     </tr>
- *     <tr>
- *         <td valign="top">Rule 2.</td>
- *         <td valign="top" nowrap><code>xyz&gt;r</code></td>
- *     </tr>
- *     <tr>
- *         <td valign="top">Rule 3.</td>
- *         <td valign="top" nowrap><code>yz&gt;q</code></td>
- *     </tr>
- * </table>
- * 
- * <p>Applying these rules to the string &quot;<code>adefabcdefz</code>&quot;
- * yields the following results: </p>
- * 
- * <table border="0" cellpadding="4">
- *     <tr>
- *         <td valign="top" nowrap><code>|adefabcdefz</code></td>
- *         <td valign="top">Initial state, no rules match. Advance
- *         cursor.</td>
- *     </tr>
- *     <tr>
- *         <td valign="top" nowrap><code>a|defabcdefz</code></td>
- *         <td valign="top">Still no match. Rule 1 does not match
- *         because the preceding context is not present.</td>
- *     </tr>
- *     <tr>
- *         <td valign="top" nowrap><code>ad|efabcdefz</code></td>
- *         <td valign="top">Still no match. Keep advancing until
- *         there is a match...</td>
- *     </tr>
- *     <tr>
- *         <td valign="top" nowrap><code>ade|fabcdefz</code></td>
- *         <td valign="top">...</td>
- *     </tr>
- *     <tr>
- *         <td valign="top" nowrap><code>adef|abcdefz</code></td>
- *         <td valign="top">...</td>
- *     </tr>
- *     <tr>
- *         <td valign="top" nowrap><code>adefa|bcdefz</code></td>
- *         <td valign="top">...</td>
- *     </tr>
- *     <tr>
- *         <td valign="top" nowrap><code>adefab|cdefz</code></td>
- *         <td valign="top">...</td>
- *     </tr>
- *     <tr>
- *         <td valign="top" nowrap><code>adefabc|defz</code></td>
- *         <td valign="top">Rule 1 matches; replace &quot;<code>def</code>&quot;
- *         with &quot;<code>xy</code>&quot; and back up the cursor
- *         to before the '<code>y</code>'.</td>
- *     </tr>
- *     <tr>
- *         <td valign="top" nowrap><code>adefabcx|yz</code></td>
- *         <td valign="top">Although &quot;<code>xyz</code>&quot; is
- *         present, rule 2 does not match because the cursor is
- *         before the '<code>y</code>', not before the '<code>x</code>'.
- *         Rule 3 does match. Replace &quot;<code>yz</code>&quot;
- *         with &quot;<code>q</code>&quot;.</td>
- *     </tr>
- *     <tr>
- *         <td valign="top" nowrap><code>adefabcxq|</code></td>
- *         <td valign="top">The cursor is at the end;
- *         transliteration is complete.</td>
- *     </tr>
- * </table>
- * 
- * <p>The order of rules is significant. If multiple rules may match
- * at some point, the first matching rule is applied. </p>
- * 
- * <p>Forward and reverse rules may have an empty output string.
- * Otherwise, an empty left or right hand side of any statement is a
- * syntax error. </p>
- * 
- * <p>Single quotes are used to quote any character other than a
- * digit or letter. To specify a single quote itself, inside or
- * outside of quotes, use two single quotes in a row. For example,
- * the rule &quot;<code>'&gt;'&gt;o''clock</code>&quot; changes the
- * string &quot;<code>&gt;</code>&quot; to the string &quot;<code>o'clock</code>&quot;.
- * </p>
- * 
- * <p><b>Notes</b> </p>
- * 
- * <p>While a RuleBasedTransliterator is being built, it checks that
- * the rules are added in proper order. For example, if the rule
- * &quot;a&gt;x&quot; is followed by the rule &quot;ab&gt;y&quot;,
- * then the second rule will throw an exception. The reason is that
- * the second rule can never be triggered, since the first rule
- * always matches anything it matches. In other words, the first
- * rule <em>masks</em> the second rule. </p>
- * 
+ * built from a set of rules as defined for
+ * Transliterator::createFromRules().
+ * See the C++ class Transliterator documentation for the rule syntax.
+ *
  * @author Alan Liu
  * @internal Use transliterator factory methods instead since this class will be removed in that release.
  */
index 6ed89b1fc584c9584630c4ec7f1573e744ccda7b..9932dbdc95e3cc06bf35d035797ddc5e6060634a 100644 (file)
@@ -194,9 +194,9 @@ const UnicodeFunctor* ParseData::lookupMatcher(UChar32 ch) const {
     const UnicodeFunctor* set = NULL;
     int32_t i = ch - data->variablesBase;
     if (i >= 0 && i < variablesVector->size()) {
-        int32_t i = ch - data->variablesBase;
-        set = (i < variablesVector->size()) ?
-            (UnicodeFunctor*) variablesVector->elementAt(i) : 0;
+        int32_t j = ch - data->variablesBase;
+        set = (j < variablesVector->size()) ?
+            (UnicodeFunctor*) variablesVector->elementAt(j) : 0;
     }
     return set;
 }
@@ -1108,8 +1108,8 @@ void TransliteratorParser::parseRules(const UnicodeString& rule,
             }
             
             data->variableNames.removeAll();
-            int32_t pos = UHASH_FIRST;
-            const UHashElement* he = variableNames.nextElement(pos);
+            int32_t p = UHASH_FIRST;
+            const UHashElement* he = variableNames.nextElement(p);
             while (he != NULL) {
                 UnicodeString* tempus = (UnicodeString*)(((UnicodeString*)(he->value.pointer))->clone());
                 if (tempus == NULL) {
@@ -1118,7 +1118,7 @@ void TransliteratorParser::parseRules(const UnicodeString& rule,
                 }
                 data->variableNames.put(*((UnicodeString*)(he->key.pointer)),
                     tempus, status);
-                he = variableNames.nextElement(pos);
+                he = variableNames.nextElement(p);
             }
         }
         variablesVector.removeAllElements();   // keeps them from getting deleted when we succeed
index ca1008c0d06ebac1df638560bf543fd4a158ca3b..a674d22c929382aff4bed86998c5cf348755f874 100644 (file)
@@ -28,6 +28,7 @@
 #include "patternprops.h"
 #include "putilimp.h"
 #include "cmemory.h"
+#include "cstr.h"
 #include "cstring.h"
 #include "uvectr32.h"
 #include "uvectr64.h"
@@ -3892,7 +3893,7 @@ void RegexCompile::stripNOPs() {
 //
 //------------------------------------------------------------------------------
 void RegexCompile::error(UErrorCode e) {
-    if (U_SUCCESS(*fStatus)) {
+    if (U_SUCCESS(*fStatus) || e == U_MEMORY_ALLOCATION_ERROR) {
         *fStatus = e;
         // Hmm. fParseErr (UParseError) line & offset fields are int32_t in public
         // API (see common/unicode/parseerr.h), while fLineNum and fCharNum are
@@ -4370,209 +4371,209 @@ static inline void addIdentifierIgnorable(UnicodeSet *set, UErrorCode& ec) {
 //     Includes trying the Java "properties" that aren't supported as
 //     normal ICU UnicodeSet properties
 //
-static const UChar posSetPrefix[] = {0x5b, 0x5c, 0x70, 0x7b, 0}; // "[\p{"
-static const UChar negSetPrefix[] = {0x5b, 0x5c, 0x50, 0x7b, 0}; // "[\P{"
 UnicodeSet *RegexCompile::createSetForProperty(const UnicodeString &propName, UBool negated) {
-    UnicodeString   setExpr;
-    UnicodeSet      *set;
-    uint32_t        usetFlags = 0;
 
     if (U_FAILURE(*fStatus)) {
-        return NULL;
+        return nullptr;
     }
+    LocalPointer<UnicodeSet> set;
+    UErrorCode status = U_ZERO_ERROR;
 
-    //
-    //  First try the property as we received it
-    //
-    if (negated) {
-        setExpr.append(negSetPrefix, -1);
-    } else {
-        setExpr.append(posSetPrefix, -1);
-    }
-    setExpr.append(propName);
-    setExpr.append(chRBrace);
-    setExpr.append(chRBracket);
-    if (fModeFlags & UREGEX_CASE_INSENSITIVE) {
-        usetFlags |= USET_CASE_INSENSITIVE;
-    }
-    set = new UnicodeSet(setExpr, usetFlags, NULL, *fStatus);
-    if (U_SUCCESS(*fStatus)) {
-       return set;
-    }
-    delete set;
-    set = NULL;
-
-    //
-    //  The property as it was didn't work.
-
-    //  Do [:word:]. It is not recognized as a property by UnicodeSet.  "word" not standard POSIX
-    //     or standard Java, but many other regular expression packages do recognize it.
-
-    if (propName.caseCompare(UNICODE_STRING_SIMPLE("word"), 0) == 0) {
-        *fStatus = U_ZERO_ERROR;
-        set = new UnicodeSet(*(fRXPat->fStaticSets[URX_ISWORD_SET]));
-        if (set == NULL) {
-            *fStatus = U_MEMORY_ALLOCATION_ERROR;
-            return set;
+    do {      // non-loop, exists to allow breaks from the block.
+        //
+        //  First try the property as we received it
+        //
+        UnicodeString   setExpr;
+        uint32_t        usetFlags = 0;
+        setExpr.append(u"[\\p{", -1);
+        setExpr.append(propName);
+        setExpr.append(u"}]", -1);
+        if (fModeFlags & UREGEX_CASE_INSENSITIVE) {
+            usetFlags |= USET_CASE_INSENSITIVE;
         }
-        if (negated) {
-            set->complement();
+        set.adoptInsteadAndCheckErrorCode(new UnicodeSet(setExpr, usetFlags, NULL, status), status);
+        if (U_SUCCESS(status) || status == U_MEMORY_ALLOCATION_ERROR) {
+            break;
         }
-        return set;
-    }
 
+        //
+        //  The incoming property wasn't directly recognized by ICU.
 
-    //    Do Java fixes -
-    //       InGreek -> InGreek or Coptic, that being the official Unicode name for that block.
-    //       InCombiningMarksforSymbols -> InCombiningDiacriticalMarksforSymbols.
-    //
-    //       Note on Spaces:  either "InCombiningMarksForSymbols" or "InCombining Marks for Symbols"
-    //                        is accepted by Java.  The property part of the name is compared
-    //                        case-insenstively.  The spaces must be exactly as shown, either
-    //                        all there, or all omitted, with exactly one at each position
-    //                        if they are present.  From checking against JDK 1.6
-    //
-    //       This code should be removed when ICU properties support the Java  compatibility names
-    //          (ICU 4.0?)
-    //
-    UnicodeString mPropName = propName;
-    if (mPropName.caseCompare(UNICODE_STRING_SIMPLE("InGreek"), 0) == 0) {
-        mPropName = UNICODE_STRING_SIMPLE("InGreek and Coptic");
-    }
-    if (mPropName.caseCompare(UNICODE_STRING_SIMPLE("InCombining Marks for Symbols"), 0) == 0 ||
-        mPropName.caseCompare(UNICODE_STRING_SIMPLE("InCombiningMarksforSymbols"), 0) == 0) {
-        mPropName = UNICODE_STRING_SIMPLE("InCombining Diacritical Marks for Symbols");
-    }
-    else if (mPropName.compare(UNICODE_STRING_SIMPLE("all")) == 0) {
-        mPropName = UNICODE_STRING_SIMPLE("javaValidCodePoint");
-    }
+        //  Check [:word:] and [:all:]. These are not recognized as a properties by ICU UnicodeSet.
+        //     Java accepts 'word' with mixed case.
+        //     Java accepts 'all' only in all lower case.
 
-    //    See if the property looks like a Java "InBlockName", which
-    //    we will recast as "Block=BlockName"
-    //
-    if (mPropName.startsWith(u"In", 2) && propName.length()>=3) {
-        setExpr.truncate(4);   // Leaves "[\p{", or "[\P{"
-        setExpr.append(u"Block=", -1);
-        setExpr.append(UnicodeString(mPropName, 2));  // Property with the leading "In" removed.
-        setExpr.append(chRBrace);
-        setExpr.append(chRBracket);
-        *fStatus = U_ZERO_ERROR;
-        set = new UnicodeSet(setExpr, usetFlags, NULL, *fStatus);
-        if (U_SUCCESS(*fStatus)) {
-            return set;
+        status = U_ZERO_ERROR;
+        if (propName.caseCompare(u"word", -1, 0) == 0) {
+            set.adoptInsteadAndCheckErrorCode(new UnicodeSet(*(fRXPat->fStaticSets[URX_ISWORD_SET])), status);
+            break;
+        }
+        if (propName.compare(u"all", -1) == 0) {
+            set.adoptInsteadAndCheckErrorCode(new UnicodeSet(0, 0x10ffff), status);
+            break;
         }
-        delete set;
-        set = NULL;
-    }
 
-    if (propName.startsWith(UNICODE_STRING_SIMPLE("java")) ||
-        propName.compare(UNICODE_STRING_SIMPLE("all")) == 0)
-    {
-        UErrorCode localStatus = U_ZERO_ERROR;
-        //setExpr.remove();
-        set = new UnicodeSet();
-        //
-        //  Try the various Java specific properties.
-        //   These all begin with "java"
+
+        //    Do Java InBlock expressions
         //
-        if (mPropName.compare(UNICODE_STRING_SIMPLE("javaDefined")) == 0) {
-            addCategory(set, U_GC_CN_MASK, localStatus);
-            set->complement();
-        }
-        else if (mPropName.compare(UNICODE_STRING_SIMPLE("javaDigit")) == 0) {
-            addCategory(set, U_GC_ND_MASK, localStatus);
-        }
-        else if (mPropName.compare(UNICODE_STRING_SIMPLE("javaIdentifierIgnorable")) == 0) {
-            addIdentifierIgnorable(set, localStatus);
-        }
-        else if (mPropName.compare(UNICODE_STRING_SIMPLE("javaISOControl")) == 0) {
-            set->add(0, 0x1F).add(0x7F, 0x9F);
-        }
-        else if (mPropName.compare(UNICODE_STRING_SIMPLE("javaJavaIdentifierPart")) == 0) {
-            addCategory(set, U_GC_L_MASK, localStatus);
-            addCategory(set, U_GC_SC_MASK, localStatus);
-            addCategory(set, U_GC_PC_MASK, localStatus);
-            addCategory(set, U_GC_ND_MASK, localStatus);
-            addCategory(set, U_GC_NL_MASK, localStatus);
-            addCategory(set, U_GC_MC_MASK, localStatus);
-            addCategory(set, U_GC_MN_MASK, localStatus);
-            addIdentifierIgnorable(set, localStatus);
-        }
-        else if (mPropName.compare(UNICODE_STRING_SIMPLE("javaJavaIdentifierStart")) == 0) {
-            addCategory(set, U_GC_L_MASK, localStatus);
-            addCategory(set, U_GC_NL_MASK, localStatus);
-            addCategory(set, U_GC_SC_MASK, localStatus);
-            addCategory(set, U_GC_PC_MASK, localStatus);
-        }
-        else if (mPropName.compare(UNICODE_STRING_SIMPLE("javaLetter")) == 0) {
-            addCategory(set, U_GC_L_MASK, localStatus);
-        }
-        else if (mPropName.compare(UNICODE_STRING_SIMPLE("javaLetterOrDigit")) == 0) {
-            addCategory(set, U_GC_L_MASK, localStatus);
-            addCategory(set, U_GC_ND_MASK, localStatus);
-        }
-        else if (mPropName.compare(UNICODE_STRING_SIMPLE("javaLowerCase")) == 0) {
-            addCategory(set, U_GC_LL_MASK, localStatus);
-        }
-        else if (mPropName.compare(UNICODE_STRING_SIMPLE("javaMirrored")) == 0) {
-            set->applyIntPropertyValue(UCHAR_BIDI_MIRRORED, 1, localStatus);
-        }
-        else if (mPropName.compare(UNICODE_STRING_SIMPLE("javaSpaceChar")) == 0) {
-            addCategory(set, U_GC_Z_MASK, localStatus);
-        }
-        else if (mPropName.compare(UNICODE_STRING_SIMPLE("javaSupplementaryCodePoint")) == 0) {
-            set->add(0x10000, UnicodeSet::MAX_VALUE);
-        }
-        else if (mPropName.compare(UNICODE_STRING_SIMPLE("javaTitleCase")) == 0) {
-            addCategory(set, U_GC_LT_MASK, localStatus);
-        }
-        else if (mPropName.compare(UNICODE_STRING_SIMPLE("javaUnicodeIdentifierStart")) == 0) {
-            addCategory(set, U_GC_L_MASK, localStatus);
-            addCategory(set, U_GC_NL_MASK, localStatus);
-        }
-        else if (mPropName.compare(UNICODE_STRING_SIMPLE("javaUnicodeIdentifierPart")) == 0) {
-            addCategory(set, U_GC_L_MASK, localStatus);
-            addCategory(set, U_GC_PC_MASK, localStatus);
-            addCategory(set, U_GC_ND_MASK, localStatus);
-            addCategory(set, U_GC_NL_MASK, localStatus);
-            addCategory(set, U_GC_MC_MASK, localStatus);
-            addCategory(set, U_GC_MN_MASK, localStatus);
-            addIdentifierIgnorable(set, localStatus);
-        }
-        else if (mPropName.compare(UNICODE_STRING_SIMPLE("javaUpperCase")) == 0) {
-            addCategory(set, U_GC_LU_MASK, localStatus);
-        }
-        else if (mPropName.compare(UNICODE_STRING_SIMPLE("javaValidCodePoint")) == 0) {
-            set->add(0, UnicodeSet::MAX_VALUE);
-        }
-        else if (mPropName.compare(UNICODE_STRING_SIMPLE("javaWhitespace")) == 0) {
-            addCategory(set, U_GC_Z_MASK, localStatus);
-            set->removeAll(UnicodeSet().add(0xa0).add(0x2007).add(0x202f));
-            set->add(9, 0x0d).add(0x1c, 0x1f);
-        }
-        else if (mPropName.compare(UNICODE_STRING_SIMPLE("all")) == 0) {
-            set->add(0, UnicodeSet::MAX_VALUE);
+        UnicodeString mPropName = propName;
+        if (mPropName.startsWith(u"In", 2) && mPropName.length() >= 3) {
+            status = U_ZERO_ERROR;
+            set.adoptInsteadAndCheckErrorCode(new UnicodeSet(), status);
+            if (U_FAILURE(status)) {
+                break;
+            }
+            UnicodeString blockName(mPropName, 2);  // Property with the leading "In" removed.
+            set->applyPropertyAlias(UnicodeString(u"Block"), blockName, status);
+            break;
         }
 
-        if (U_SUCCESS(localStatus) && !set->isEmpty()) {
-            *fStatus = U_ZERO_ERROR;
-            if (usetFlags & USET_CASE_INSENSITIVE) {
+        //  Check for the Java form "IsBooleanPropertyValue", which we will recast
+        //  as "BooleanPropertyValue". The property value can be either a
+        //  a General Category or a Script Name.
+
+        if (propName.startsWith(u"Is", 2) && propName.length()>=3) {
+            mPropName.remove(0, 2);      // Strip the "Is"
+            if (mPropName.indexOf(u'=') >= 0) {
+                // Reject any "Is..." property expression containing an '=', that is,
+                // any non-binary property expression.
+                status = U_REGEX_PROPERTY_SYNTAX;
+                break;
+            }
+
+            if (mPropName.caseCompare(u"assigned", -1, 0) == 0) {
+                mPropName.setTo(u"unassigned", -1);
+                negated = !negated;
+            } else if (mPropName.caseCompare(u"TitleCase", -1, 0) == 0) {
+                mPropName.setTo(u"Titlecase_Letter", -1);
+            }
+
+            mPropName.insert(0, u"[\\p{", -1);
+            mPropName.append(u"}]", -1);
+            set.adoptInsteadAndCheckErrorCode(new UnicodeSet(mPropName, *fStatus), status);
+
+            if (U_SUCCESS(status) && !set->isEmpty() && (usetFlags & USET_CASE_INSENSITIVE)) {
                 set->closeOver(USET_CASE_INSENSITIVE);
             }
-            if (negated) {
+            break;
+
+        }
+
+        if (propName.startsWith(u"java", -1)) {
+            status = U_ZERO_ERROR;
+            set.adoptInsteadAndCheckErrorCode(new UnicodeSet(), status);
+            if (U_FAILURE(status)) {
+                break;
+            }
+            //
+            //  Try the various Java specific properties.
+            //   These all begin with "java"
+            //
+            if (propName.compare(u"javaDefined", -1) == 0) {
+                addCategory(set.getAlias(), U_GC_CN_MASK, status);
                 set->complement();
             }
-            return set;
+            else if (propName.compare(u"javaDigit", -1) == 0) {
+                addCategory(set.getAlias(), U_GC_ND_MASK, status);
+            }
+            else if (propName.compare(u"javaIdentifierIgnorable", -1) == 0) {
+                addIdentifierIgnorable(set.getAlias(), status);
+            }
+            else if (propName.compare(u"javaISOControl", -1) == 0) {
+                set->add(0, 0x1F).add(0x7F, 0x9F);
+            }
+            else if (propName.compare(u"javaJavaIdentifierPart", -1) == 0) {
+                addCategory(set.getAlias(), U_GC_L_MASK, status);
+                addCategory(set.getAlias(), U_GC_SC_MASK, status);
+                addCategory(set.getAlias(), U_GC_PC_MASK, status);
+                addCategory(set.getAlias(), U_GC_ND_MASK, status);
+                addCategory(set.getAlias(), U_GC_NL_MASK, status);
+                addCategory(set.getAlias(), U_GC_MC_MASK, status);
+                addCategory(set.getAlias(), U_GC_MN_MASK, status);
+                addIdentifierIgnorable(set.getAlias(), status);
+            }
+            else if (propName.compare(u"javaJavaIdentifierStart", -1) == 0) {
+                addCategory(set.getAlias(), U_GC_L_MASK, status);
+                addCategory(set.getAlias(), U_GC_NL_MASK, status);
+                addCategory(set.getAlias(), U_GC_SC_MASK, status);
+                addCategory(set.getAlias(), U_GC_PC_MASK, status);
+            }
+            else if (propName.compare(u"javaLetter", -1) == 0) {
+                addCategory(set.getAlias(), U_GC_L_MASK, status);
+            }
+            else if (propName.compare(u"javaLetterOrDigit", -1) == 0) {
+                addCategory(set.getAlias(), U_GC_L_MASK, status);
+                addCategory(set.getAlias(), U_GC_ND_MASK, status);
+            }
+            else if (propName.compare(u"javaLowerCase", -1) == 0) {
+                addCategory(set.getAlias(), U_GC_LL_MASK, status);
+            }
+            else if (propName.compare(u"javaMirrored", -1) == 0) {
+                set->applyIntPropertyValue(UCHAR_BIDI_MIRRORED, 1, status);
+            }
+            else if (propName.compare(u"javaSpaceChar", -1) == 0) {
+                addCategory(set.getAlias(), U_GC_Z_MASK, status);
+            }
+            else if (propName.compare(u"javaSupplementaryCodePoint", -1) == 0) {
+                set->add(0x10000, UnicodeSet::MAX_VALUE);
+            }
+            else if (propName.compare(u"javaTitleCase", -1) == 0) {
+                addCategory(set.getAlias(), U_GC_LT_MASK, status);
+            }
+            else if (propName.compare(u"javaUnicodeIdentifierStart", -1) == 0) {
+                addCategory(set.getAlias(), U_GC_L_MASK, status);
+                addCategory(set.getAlias(), U_GC_NL_MASK, status);
+            }
+            else if (propName.compare(u"javaUnicodeIdentifierPart", -1) == 0) {
+                addCategory(set.getAlias(), U_GC_L_MASK, status);
+                addCategory(set.getAlias(), U_GC_PC_MASK, status);
+                addCategory(set.getAlias(), U_GC_ND_MASK, status);
+                addCategory(set.getAlias(), U_GC_NL_MASK, status);
+                addCategory(set.getAlias(), U_GC_MC_MASK, status);
+                addCategory(set.getAlias(), U_GC_MN_MASK, status);
+                addIdentifierIgnorable(set.getAlias(), status);
+            }
+            else if (propName.compare(u"javaUpperCase", -1) == 0) {
+                addCategory(set.getAlias(), U_GC_LU_MASK, status);
+            }
+            else if (propName.compare(u"javaValidCodePoint", -1) == 0) {
+                set->add(0, UnicodeSet::MAX_VALUE);
+            }
+            else if (propName.compare(u"javaWhitespace", -1) == 0) {
+                addCategory(set.getAlias(), U_GC_Z_MASK, status);
+                set->removeAll(UnicodeSet().add(0xa0).add(0x2007).add(0x202f));
+                set->add(9, 0x0d).add(0x1c, 0x1f);
+            } else {
+                status = U_REGEX_PROPERTY_SYNTAX;
+            }
+
+            if (U_SUCCESS(status) && !set->isEmpty() && (usetFlags & USET_CASE_INSENSITIVE)) {
+                set->closeOver(USET_CASE_INSENSITIVE);
+            }
+            break;
+        }
+
+        // Unrecognized property. ICU didn't like it as it was, and none of the Java compatibility
+        // extensions matched it.
+        status = U_REGEX_PROPERTY_SYNTAX;
+    } while (false);   // End of do loop block. Code above breaks out of the block on success or hard failure.
+
+    if (U_SUCCESS(status)) {
+        U_ASSERT(set.isValid());
+        if (negated) {
+            set->complement();
         }
-        delete set;
-        set = NULL;
+        return set.orphan();
+    } else {
+        if (status == U_ILLEGAL_ARGUMENT_ERROR) {
+            status = U_REGEX_PROPERTY_SYNTAX;
+        }
+        error(status);
+        return nullptr;
     }
-    error(*fStatus);
-    return NULL;
 }
 
 
-
 //
 //  SetEval   Part of the evaluation of [set expressions].
 //            Perform any pending (stacked) operations with precedence
index 66de31de8b326198f88b99e87658a865bb28abde..343ef78832a27de3024ee98d0e69cd191459fa4b 100644 (file)
@@ -168,10 +168,18 @@ void U_CALLCONV Region::loadRegionData(UErrorCode &status) {
         continents->addElement(continentName,status);
     }
 
+    UResourceBundle *groupingBundle = nullptr;
     while ( ures_hasNext(groupingContainment.getAlias()) ) {
-        UnicodeString *groupingName = new UnicodeString(ures_getNextUnicodeString(groupingContainment.getAlias(),NULL,&status));
-        groupings->addElement(groupingName,status);
+        groupingBundle = ures_getNextResource(groupingContainment.getAlias(), groupingBundle, &status);
+        if (U_FAILURE(status)) {
+            break;
+        }
+        UnicodeString *groupingName = new UnicodeString(ures_getKey(groupingBundle), -1, US_INV);
+        if (groupingName) {
+            groupings->addElement(groupingName,status);
+        }
     }
+    ures_close(groupingBundle);
 
     for ( int32_t i = 0 ; i < allRegions->size() ; i++ ) {
         LocalPointer<Region> r(new Region(), status);
@@ -182,7 +190,7 @@ void U_CALLCONV Region::loadRegionData(UErrorCode &status) {
         r->idStr = *regionName;
 
         r->idStr.extract(0,r->idStr.length(),r->id,sizeof(r->id),US_INV);
-        r->type = URGN_TERRITORY; // Only temporary - figure out the real type later once the aliases are known.
+        r->fType = URGN_TERRITORY; // Only temporary - figure out the real type later once the aliases are known.
 
         Formattable result;
         UErrorCode ps = U_ZERO_ERROR;
@@ -190,7 +198,7 @@ void U_CALLCONV Region::loadRegionData(UErrorCode &status) {
         if ( U_SUCCESS(ps) ) {
             r->code = result.getLong(); // Convert string to number
             uhash_iput(newNumericCodeMap.getAlias(),r->code,(void *)(r.getAlias()),&status);
-            r->type = URGN_SUBCONTINENT;
+            r->fType = URGN_SUBCONTINENT;
         } else {
             r->code = -1;
         }
@@ -231,9 +239,9 @@ void U_CALLCONV Region::loadRegionData(UErrorCode &status) {
                 } else {
                     aliasFromRegion->code = -1;
                 }
-                aliasFromRegion->type = URGN_DEPRECATED;
+                aliasFromRegion->fType = URGN_DEPRECATED;
             } else {
-                aliasFromRegion->type = URGN_DEPRECATED;
+                aliasFromRegion->fType = URGN_DEPRECATED;
             }
 
             {
@@ -290,26 +298,26 @@ void U_CALLCONV Region::loadRegionData(UErrorCode &status) {
     UnicodeString WORLD_ID_STRING(WORLD_ID);
     r = (Region *) uhash_get(newRegionIDMap.getAlias(),(void *)&WORLD_ID_STRING);
     if ( r ) {
-        r->type = URGN_WORLD;
+        r->fType = URGN_WORLD;
     }
 
     UnicodeString UNKNOWN_REGION_ID_STRING(UNKNOWN_REGION_ID);
     r = (Region *) uhash_get(newRegionIDMap.getAlias(),(void *)&UNKNOWN_REGION_ID_STRING);
     if ( r ) {
-        r->type = URGN_UNKNOWN;
+        r->fType = URGN_UNKNOWN;
     }
 
     for ( int32_t i = 0 ; i < continents->size() ; i++ ) {
         r = (Region *) uhash_get(newRegionIDMap.getAlias(),(void *)continents->elementAt(i));
         if ( r ) {
-            r->type = URGN_CONTINENT;
+            r->fType = URGN_CONTINENT;
         }
     }
 
     for ( int32_t i = 0 ; i < groupings->size() ; i++ ) {
         r = (Region *) uhash_get(newRegionIDMap.getAlias(),(void *)groupings->elementAt(i));
         if ( r ) {
-            r->type = URGN_GROUPING;
+            r->fType = URGN_GROUPING;
         }
     }
 
@@ -319,7 +327,7 @@ void U_CALLCONV Region::loadRegionData(UErrorCode &status) {
     UnicodeString OUTLYING_OCEANIA_REGION_ID_STRING(OUTLYING_OCEANIA_REGION_ID);
     r = (Region *) uhash_get(newRegionIDMap.getAlias(),(void *)&OUTLYING_OCEANIA_REGION_ID_STRING);
     if ( r ) {
-        r->type = URGN_SUBCONTINENT;
+        r->fType = URGN_SUBCONTINENT;
     }
 
     // Load territory containment info from the supplemental data.
@@ -356,7 +364,7 @@ void U_CALLCONV Region::loadRegionData(UErrorCode &status) {
                 // Set the parent region to be the containing region of the child.
                 // Regions of type GROUPING can't be set as the parent, since another region
                 // such as a SUBCONTINENT, CONTINENT, or WORLD must always be the parent.
-                if ( parentRegion->type != URGN_GROUPING) {
+                if ( parentRegion->fType != URGN_GROUPING) {
                     childRegion->containingRegion = parentRegion;
                 }
             }
@@ -367,15 +375,15 @@ void U_CALLCONV Region::loadRegionData(UErrorCode &status) {
     int32_t pos = UHASH_FIRST;
     while ( const UHashElement* element = uhash_nextElement(newRegionIDMap.getAlias(),&pos)) {
         Region *ar = (Region *)element->value.pointer;
-        if ( availableRegions[ar->type] == NULL ) {
+        if ( availableRegions[ar->fType] == NULL ) {
             LocalPointer<UVector> newAr(new UVector(uprv_deleteUObject, uhash_compareUnicodeString, status), status);
-            availableRegions[ar->type] = newAr.orphan();
+            availableRegions[ar->fType] = newAr.orphan();
         }
         LocalPointer<UnicodeString> arString(new UnicodeString(ar->idStr), status);
         if( U_FAILURE(status) ) {
             return;  // error out
         }
-        availableRegions[ar->type]->addElement((void *)arString.orphan(),status);
+        availableRegions[ar->fType]->addElement((void *)arString.orphan(),status);
     }
     
     ucln_i18n_registerCleanup(UCLN_I18N_REGION, region_cleanup);
@@ -416,7 +424,7 @@ void Region::cleanupRegionData() {
 
 Region::Region ()
         : code(-1),
-          type(URGN_UNKNOWN),
+          fType(URGN_UNKNOWN),
           containingRegion(NULL),
           containedRegions(NULL),
           preferredValues(NULL) {
@@ -481,7 +489,7 @@ Region::getInstance(const char *region_code, UErrorCode &status) {
         return NULL;
     }
 
-    if ( r->type == URGN_DEPRECATED && r->preferredValues->size() == 1) {
+    if ( r->fType == URGN_DEPRECATED && r->preferredValues->size() == 1) {
         StringEnumeration *pv = r->getPreferredValues(status);
         pv->reset(status);
         const UnicodeString *ustr = pv->snext(status);
@@ -529,7 +537,7 @@ Region::getInstance (int32_t code, UErrorCode &status) {
         return NULL;
     }
 
-    if ( r->type == URGN_DEPRECATED && r->preferredValues->size() == 1) {
+    if ( r->fType == URGN_DEPRECATED && r->preferredValues->size() == 1) {
         StringEnumeration *pv = r->getPreferredValues(status);
         pv->reset(status);
         const UnicodeString *ustr = pv->snext(status);
@@ -580,7 +588,7 @@ Region::getContainingRegion(URegionType type) const {
         return NULL;
     }
 
-    return ( containingRegion->type == type )? containingRegion: containingRegion->getContainingRegion(type);
+    return ( containingRegion->fType == type)? containingRegion: containingRegion->getContainingRegion(type);
 }
 
 /**
@@ -618,9 +626,9 @@ Region::getContainedRegions( URegionType type, UErrorCode &status ) const {
     StringEnumeration *cr = getContainedRegions(status);
 
     for ( int32_t i = 0 ; i < cr->count(status) ; i++ ) {
-        const char *id = cr->next(NULL,status);
-        const Region *r = Region::getInstance(id,status);
-        if ( r->getType() == type ) {
+        const char *regionId = cr->next(NULL,status);
+        const Region *r = Region::getInstance(regionId,status);
+        if ( r->getType() == type) {
             result->addElement((void *)&r->idStr,status);
         } else {
             StringEnumeration *children = r->getContainedRegions(type, status);
@@ -672,7 +680,7 @@ Region::contains(const Region &other) const {
 StringEnumeration*
 Region::getPreferredValues(UErrorCode &status) const {
     umtx_initOnce(gRegionDataInitOnce, &loadRegionData, status); // returns immediately if U_FAILURE(status)
-    if (U_FAILURE(status) ||  type != URGN_DEPRECATED) {
+    if (U_FAILURE(status) || fType != URGN_DEPRECATED) {
         return NULL;
     }
     return new RegionNameEnumeration(preferredValues,status);
@@ -697,7 +705,7 @@ Region::getNumericCode() const {
  */
 URegionType
 Region::getType() const {
-    return type;
+    return fType;
 }
 
 RegionNameEnumeration::RegionNameEnumeration(UVector *fNameList, UErrorCode& status) {
index aad026cb62d12897c307d57a07430908a950952e..1a4da0f0b95c88d2ed0b1427fda1c5a9a8df1263 100644 (file)
@@ -51,13 +51,13 @@ U_NAMESPACE_BEGIN
 // RelativeDateTimeFormatter specific data for a single locale
 class RelativeDateTimeCacheData: public SharedObject {
 public:
-    RelativeDateTimeCacheData() : combinedDateAndTime(NULL) {
+    RelativeDateTimeCacheData() : combinedDateAndTime(nullptr) {
         // Initialize the cache arrays
         for (int32_t style = 0; style < UDAT_STYLE_COUNT; ++style) {
-            for (int32_t relUnit = 0; relUnit < UDAT_RELATIVE_UNIT_COUNT; ++relUnit) {
+            for (int32_t relUnit = 0; relUnit < UDAT_REL_UNIT_COUNT; ++relUnit) {
                 for (int32_t pl = 0; pl < StandardPlural::COUNT; ++pl) {
-                    relativeUnitsFormatters[style][relUnit][0][pl] = NULL;
-                    relativeUnitsFormatters[style][relUnit][1][pl] = NULL;
+                    relativeUnitsFormatters[style][relUnit][0][pl] = nullptr;
+                    relativeUnitsFormatters[style][relUnit][1][pl] = nullptr;
                 }
             }
         }
@@ -74,7 +74,7 @@ public:
     // e.g., Next Tuesday; Yesterday; etc. For third index, 0
     // means past, e.g., 5 days ago; 1 means future, e.g., in 5 days.
     SimpleFormatter *relativeUnitsFormatters[UDAT_STYLE_COUNT]
-        [UDAT_RELATIVE_UNIT_COUNT][2][StandardPlural::COUNT];
+        [UDAT_REL_UNIT_COUNT][2][StandardPlural::COUNT];
 
     const UnicodeString& getAbsoluteUnitString(int32_t fStyle,
                                                UDateAbsoluteUnit unit,
@@ -83,6 +83,10 @@ public:
                                                     UDateRelativeUnit unit,
                                                     int32_t pastFutureIndex,
                                                     int32_t pluralUnit) const;
+    const SimpleFormatter* getRelativeDateTimeUnitFormatter(int32_t fStyle,
+                                                    URelativeDateTimeUnit unit,
+                                                    int32_t pastFutureIndex,
+                                                    int32_t pluralUnit) const;
 
     const UnicodeString emptyString;
 
@@ -107,7 +111,7 @@ private:
 RelativeDateTimeCacheData::~RelativeDateTimeCacheData() {
     // clear out the cache arrays
     for (int32_t style = 0; style < UDAT_STYLE_COUNT; ++style) {
-        for (int32_t relUnit = 0; relUnit < UDAT_RELATIVE_UNIT_COUNT; ++relUnit) {
+        for (int32_t relUnit = 0; relUnit < UDAT_REL_UNIT_COUNT; ++relUnit) {
             for (int32_t pl = 0; pl < StandardPlural::COUNT; ++pl) {
                 delete relativeUnitsFormatters[style][relUnit][0][pl];
                 delete relativeUnitsFormatters[style][relUnit][1][pl];
@@ -131,20 +135,41 @@ const UnicodeString& RelativeDateTimeCacheData::getAbsoluteUnitString(
     return emptyString;
 }
 
- // Use fallback cache for SimpleFormatter relativeUnits.
  const SimpleFormatter* RelativeDateTimeCacheData::getRelativeUnitFormatter(
         int32_t fStyle,
         UDateRelativeUnit unit,
         int32_t pastFutureIndex,
         int32_t pluralUnit) const {
+   URelativeDateTimeUnit rdtunit = UDAT_REL_UNIT_COUNT;
+   switch (unit) {
+       case UDAT_RELATIVE_YEARS:   rdtunit = UDAT_REL_UNIT_YEAR; break;
+       case UDAT_RELATIVE_MONTHS:  rdtunit = UDAT_REL_UNIT_MONTH; break;
+       case UDAT_RELATIVE_WEEKS:   rdtunit = UDAT_REL_UNIT_WEEK; break;
+       case UDAT_RELATIVE_DAYS:    rdtunit = UDAT_REL_UNIT_DAY; break;
+       case UDAT_RELATIVE_HOURS:   rdtunit = UDAT_REL_UNIT_HOUR; break;
+       case UDAT_RELATIVE_MINUTES: rdtunit = UDAT_REL_UNIT_MINUTE; break;
+       case UDAT_RELATIVE_SECONDS: rdtunit = UDAT_REL_UNIT_SECOND; break;
+       default: // a unit that the above method does not handle
+            return nullptr;
+   }
+
+   return getRelativeDateTimeUnitFormatter(fStyle, rdtunit, pastFutureIndex, pluralUnit);
+ }
+
+ // Use fallback cache for SimpleFormatter relativeUnits.
+ const SimpleFormatter* RelativeDateTimeCacheData::getRelativeDateTimeUnitFormatter(
+        int32_t fStyle,
+        URelativeDateTimeUnit unit,
+        int32_t pastFutureIndex,
+        int32_t pluralUnit) const {
     int32_t style = fStyle;
     do {
-        if (relativeUnitsFormatters[style][unit][pastFutureIndex][pluralUnit] != NULL) {
+        if (relativeUnitsFormatters[style][unit][pastFutureIndex][pluralUnit] != nullptr) {
             return relativeUnitsFormatters[style][unit][pastFutureIndex][pluralUnit];
         }
         style = fallBackCache[style];
     } while (style != -1);
-    return NULL;  // No formatter found.
+    return nullptr;  // No formatter found.
  }
 
 static UBool getStringWithFallback(
@@ -217,23 +242,35 @@ struct RelDateTimeFmtDataSink : public ResourceSink {
         // Converts the generic units to UDAT_RELATIVE version.
         switch (genUnit) {
             case SECOND:
-                return UDAT_RELATIVE_SECONDS;
+                return UDAT_REL_UNIT_SECOND;
             case MINUTE:
-                return UDAT_RELATIVE_MINUTES;
+                return UDAT_REL_UNIT_MINUTE;
             case HOUR:
-                return UDAT_RELATIVE_HOURS;
+                return UDAT_REL_UNIT_HOUR;
             case DAY:
-                return UDAT_RELATIVE_DAYS;
+                return UDAT_REL_UNIT_DAY;
             case WEEK:
-                return UDAT_RELATIVE_WEEKS;
+                return UDAT_REL_UNIT_WEEK;
             case MONTH:
-                return UDAT_RELATIVE_MONTHS;
-            /*
-             * case QUARTER:
-             * return UDATE_RELATIVE_QUARTERS;
-             */
+                return UDAT_REL_UNIT_MONTH;
+            case QUARTER:
+                return UDAT_REL_UNIT_QUARTER;
             case YEAR:
-                return UDAT_RELATIVE_YEARS;
+                return UDAT_REL_UNIT_YEAR;
+            case SUNDAY:
+                return UDAT_REL_UNIT_SUNDAY;
+            case MONDAY:
+                return UDAT_REL_UNIT_MONDAY;
+            case TUESDAY:
+                return UDAT_REL_UNIT_TUESDAY;
+            case WEDNESDAY:
+                return UDAT_REL_UNIT_WEDNESDAY;
+            case THURSDAY:
+                return UDAT_REL_UNIT_THURSDAY;
+            case FRIDAY:
+                return UDAT_REL_UNIT_FRIDAY;
+            case SATURDAY:
+                return UDAT_REL_UNIT_SATURDAY;
             default:
                 return -1;
         }
@@ -248,10 +285,8 @@ struct RelDateTimeFmtDataSink : public ResourceSink {
                 return UDAT_ABSOLUTE_WEEK;
             case MONTH:
                 return UDAT_ABSOLUTE_MONTH;
-            /* TODO: Add in QUARTER
-             *  case QUARTER:
-             * return UDAT_ABSOLUTE_QUARTER;
-             */
+            case QUARTER:
+                return UDAT_ABSOLUTE_QUARTER;
             case YEAR:
                 return UDAT_ABSOLUTE_YEAR;
             case SUNDAY:
@@ -312,7 +347,7 @@ struct RelDateTimeFmtDataSink : public ResourceSink {
 
     // Utility functions
     static UDateRelativeDateTimeFormatterStyle styleFromString(const char *s) {
-        int32_t len = uprv_strlen(s);
+        int32_t len = static_cast<int32_t>(uprv_strlen(s));
         if (len >= 7 && uprv_strcmp(s + len - 7, "-narrow") == 0) {
             return UDAT_STYLE_NARROW;
         }
@@ -430,7 +465,7 @@ struct RelDateTimeFmtDataSink : public ResourceSink {
                 }
 
                 int32_t relUnitIndex = relUnitFromGeneric(genericUnit);
-                if (relUnitIndex == UDAT_RELATIVE_SECONDS && uprv_strcmp(key, "0") == 0 &&
+                if (relUnitIndex == UDAT_REL_UNIT_SECOND && uprv_strcmp(key, "0") == 0 &&
                     outputData.absoluteUnits[style][UDAT_ABSOLUTE_NOW][UDAT_DIRECTION_PLAIN].isEmpty()) {
                     // Handle "NOW"
                     outputData.absoluteUnits[style][UDAT_ABSOLUTE_NOW]
@@ -463,10 +498,10 @@ struct RelDateTimeFmtDataSink : public ResourceSink {
                         outputData.relativeUnitsFormatters[style][relUnitIndex]
                         [pastFutureIndex];
                     // Only set if not already established.
-                    if (patterns[pluralIndex] == NULL) {
+                    if (patterns[pluralIndex] == nullptr) {
                         patterns[pluralIndex] = new SimpleFormatter(
                             value.getUnicodeString(errorCode), 0, 1, errorCode);
-                        if (patterns[pluralIndex] == NULL) {
+                        if (patterns[pluralIndex] == nullptr) {
                             errorCode = U_MEMORY_ALLOCATION_ERROR;
                         }
                     }
@@ -546,7 +581,7 @@ struct RelDateTimeFmtDataSink : public ResourceSink {
                 consumeAlias(key, value, errorCode);
             } else {
                 style = styleFromString(key);
-                int32_t unitSize = uprv_strlen(key) - styleSuffixLength(style);
+                int32_t unitSize = static_cast<int32_t>(uprv_strlen(key)) - styleSuffixLength(style);
                 genericUnit = unitOrNegativeFromString(key, unitSize);
                 if (style >= 0 && genericUnit != INVALID_UNIT) {
                     consumeTimeUnit(key, value, errorCode);
@@ -570,8 +605,14 @@ static void loadWeekdayNames(UnicodeString absoluteUnits[UDAT_STYLE_COUNT]
                                  [UDAT_ABSOLUTE_UNIT_COUNT][UDAT_DIRECTION_COUNT],
                              const char* localeId,
                              UErrorCode& status) {
+    if (U_FAILURE(status)) {
+        return;
+    }
     Locale locale(localeId);
     DateFormatSymbols dfSym(locale, status);
+    if (U_FAILURE(status)) {
+        return;
+    }
     for (int32_t style = 0; style < UDAT_STYLE_COUNT; ++style) {
         DateFormatSymbols::DtWidthType dtfmtWidth = styleToDateFormatSymbolWidth[style];
         int32_t count;
@@ -595,6 +636,9 @@ static UBool loadUnitData(
     RelDateTimeFmtDataSink sink(cacheData);
 
     ures_getAllItemsWithFallback(resource, "fields", sink, status);
+    if (U_FAILURE(status)) {
+        return false;
+    }
 
     // Get the weekday names from DateFormatSymbols.
     loadWeekdayNames(cacheData.absoluteUnits, localeId, status);
@@ -619,7 +663,7 @@ static UBool getDateTimePattern(
             .append("/DateTimePatterns", status);
     LocalUResourceBundlePointer topLevel(
             ures_getByKeyWithFallback(
-                    resource, pathBuffer.data(), NULL, &status));
+                    resource, pathBuffer.data(), nullptr, &status));
     if (U_FAILURE(status)) {
         return FALSE;
     }
@@ -636,68 +680,68 @@ static UBool getDateTimePattern(
 template<> U_I18N_API
 const RelativeDateTimeCacheData *LocaleCacheKey<RelativeDateTimeCacheData>::createObject(const void * /*unused*/, UErrorCode &status) const {
     const char *localeId = fLoc.getName();
-    LocalUResourceBundlePointer topLevel(ures_open(NULL, localeId, &status));
+    LocalUResourceBundlePointer topLevel(ures_open(nullptr, localeId, &status));
     if (U_FAILURE(status)) {
-        return NULL;
+        return nullptr;
     }
     LocalPointer<RelativeDateTimeCacheData> result(
             new RelativeDateTimeCacheData());
     if (result.isNull()) {
         status = U_MEMORY_ALLOCATION_ERROR;
-        return NULL;
+        return nullptr;
     }
     if (!loadUnitData(
             topLevel.getAlias(),
             *result,
             localeId,
             status)) {
-        return NULL;
+        return nullptr;
     }
     UnicodeString dateTimePattern;
     if (!getDateTimePattern(topLevel.getAlias(), dateTimePattern, status)) {
-        return NULL;
+        return nullptr;
     }
     result->adoptCombinedDateAndTime(
             new SimpleFormatter(dateTimePattern, 2, 2, status));
     if (U_FAILURE(status)) {
-        return NULL;
+        return nullptr;
     }
     result->addRef();
     return result.orphan();
 }
 
 RelativeDateTimeFormatter::RelativeDateTimeFormatter(UErrorCode& status) :
-        fCache(NULL),
-        fNumberFormat(NULL),
-        fPluralRules(NULL),
+        fCache(nullptr),
+        fNumberFormat(nullptr),
+        fPluralRules(nullptr),
         fStyle(UDAT_STYLE_LONG),
         fContext(UDISPCTX_CAPITALIZATION_NONE),
-        fOptBreakIterator(NULL) {
-    init(NULL, NULL, status);
+        fOptBreakIterator(nullptr) {
+    init(nullptr, nullptr, status);
 }
 
 RelativeDateTimeFormatter::RelativeDateTimeFormatter(
         const Locale& locale, UErrorCode& status) :
-        fCache(NULL),
-        fNumberFormat(NULL),
-        fPluralRules(NULL),
+        fCache(nullptr),
+        fNumberFormat(nullptr),
+        fPluralRules(nullptr),
         fStyle(UDAT_STYLE_LONG),
         fContext(UDISPCTX_CAPITALIZATION_NONE),
-        fOptBreakIterator(NULL),
+        fOptBreakIterator(nullptr),
         fLocale(locale) {
-    init(NULL, NULL, status);
+    init(nullptr, nullptr, status);
 }
 
 RelativeDateTimeFormatter::RelativeDateTimeFormatter(
         const Locale& locale, NumberFormat *nfToAdopt, UErrorCode& status) :
-        fCache(NULL),
-        fNumberFormat(NULL),
-        fPluralRules(NULL),
+        fCache(nullptr),
+        fNumberFormat(nullptr),
+        fPluralRules(nullptr),
         fStyle(UDAT_STYLE_LONG),
         fContext(UDISPCTX_CAPITALIZATION_NONE),
-        fOptBreakIterator(NULL),
+        fOptBreakIterator(nullptr),
         fLocale(locale) {
-    init(nfToAdopt, NULL, status);
+    init(nfToAdopt, nullptr, status);
 }
 
 RelativeDateTimeFormatter::RelativeDateTimeFormatter(
@@ -706,12 +750,12 @@ RelativeDateTimeFormatter::RelativeDateTimeFormatter(
         UDateRelativeDateTimeFormatterStyle styl,
         UDisplayContext capitalizationContext,
         UErrorCode& status) :
-        fCache(NULL),
-        fNumberFormat(NULL),
-        fPluralRules(NULL),
+        fCache(nullptr),
+        fNumberFormat(nullptr),
+        fPluralRules(nullptr),
         fStyle(styl),
         fContext(capitalizationContext),
-        fOptBreakIterator(NULL),
+        fOptBreakIterator(nullptr),
         fLocale(locale) {
     if (U_FAILURE(status)) {
         return;
@@ -727,7 +771,7 @@ RelativeDateTimeFormatter::RelativeDateTimeFormatter(
         }
         init(nfToAdopt, bi, status);
     } else {
-        init(nfToAdopt, NULL, status);
+        init(nfToAdopt, nullptr, status);
     }
 }
 
@@ -744,7 +788,7 @@ RelativeDateTimeFormatter::RelativeDateTimeFormatter(
     fCache->addRef();
     fNumberFormat->addRef();
     fPluralRules->addRef();
-    if (fOptBreakIterator != NULL) {
+    if (fOptBreakIterator != nullptr) {
       fOptBreakIterator->addRef();
     }
 }
@@ -764,16 +808,16 @@ RelativeDateTimeFormatter& RelativeDateTimeFormatter::operator=(
 }
 
 RelativeDateTimeFormatter::~RelativeDateTimeFormatter() {
-    if (fCache != NULL) {
+    if (fCache != nullptr) {
         fCache->removeRef();
     }
-    if (fNumberFormat != NULL) {
+    if (fNumberFormat != nullptr) {
         fNumberFormat->removeRef();
     }
-    if (fPluralRules != NULL) {
+    if (fPluralRules != nullptr) {
         fPluralRules->removeRef();
     }
-    if (fOptBreakIterator != NULL) {
+    if (fOptBreakIterator != nullptr) {
         fOptBreakIterator->removeRef();
     }
 }
@@ -812,7 +856,7 @@ UnicodeString& RelativeDateTimeFormatter::format(
 
     const SimpleFormatter* formatter =
         fCache->getRelativeUnitFormatter(fStyle, unit, bFuture, pluralIndex);
-    if (formatter == NULL) {
+    if (formatter == nullptr) {
         // TODO: WARN - look at quantity formatter's action with an error.
         status = U_INVALID_FORMAT_ERROR;
         return appendTo;
@@ -828,33 +872,35 @@ UnicodeString& RelativeDateTimeFormatter::formatNumeric(
     if (U_FAILURE(status)) {
         return appendTo;
     }
-    // TODO:
-    // The full implementation of this depends on CLDR data that is not yet available,
-    // see: http://unicode.org/cldr/trac/ticket/9165 Add more relative field data.
-    // In the meantime do a quick bring-up by calling the old format method; this
-    // leaves some holes (even for data that is currently available, such as quarter).
-    // When the new CLDR data is available, update the data storage accordingly,
-    // rewrite this to use it directly, and rewrite the old format method to call this
-    // new one; that is covered by http://bugs.icu-project.org/trac/ticket/12171.
-    UDateRelativeUnit relunit = UDAT_RELATIVE_UNIT_COUNT;
-    switch (unit) {
-        case UDAT_REL_UNIT_YEAR:    relunit = UDAT_RELATIVE_YEARS; break;
-        case UDAT_REL_UNIT_MONTH:   relunit = UDAT_RELATIVE_MONTHS; break;
-        case UDAT_REL_UNIT_WEEK:    relunit = UDAT_RELATIVE_WEEKS; break;
-        case UDAT_REL_UNIT_DAY:     relunit = UDAT_RELATIVE_DAYS; break;
-        case UDAT_REL_UNIT_HOUR:    relunit = UDAT_RELATIVE_HOURS; break;
-        case UDAT_REL_UNIT_MINUTE:  relunit = UDAT_RELATIVE_MINUTES; break;
-        case UDAT_REL_UNIT_SECOND:  relunit = UDAT_RELATIVE_SECONDS; break;
-        default: // a unit that the above method does not handle
-            status = U_UNSUPPORTED_ERROR;
-            return appendTo;
-    }
     UDateDirection direction = UDAT_DIRECTION_NEXT;
     if (std::signbit(offset)) { // needed to handle -0.0
         direction = UDAT_DIRECTION_LAST;
         offset = -offset;
     }
-    return format(offset, direction, relunit, appendTo, status);
+    if (direction != UDAT_DIRECTION_LAST && direction != UDAT_DIRECTION_NEXT) {
+        status = U_ILLEGAL_ARGUMENT_ERROR;
+        return appendTo;
+    }
+    int32_t bFuture = direction == UDAT_DIRECTION_NEXT ? 1 : 0;
+    FieldPosition pos(FieldPosition::DONT_CARE);
+
+    UnicodeString result;
+    UnicodeString formattedNumber;
+
+    StandardPlural::Form pluralIndex = QuantityFormatter::selectPlural(
+        offset, **fNumberFormat, **fPluralRules, formattedNumber, pos,
+        status);
+
+    const SimpleFormatter* formatter =
+        fCache->getRelativeDateTimeUnitFormatter(fStyle, unit, bFuture, pluralIndex);
+    if (formatter == nullptr) {
+        // TODO: WARN - look at quantity formatter's action with an error.
+        status = U_INVALID_FORMAT_ERROR;
+        return appendTo;
+    }
+    formatter->format(formattedNumber, result, status);
+    adjustForContext(result);
+    return appendTo.append(result);
 }
 
 UnicodeString& RelativeDateTimeFormatter::format(
@@ -871,7 +917,7 @@ UnicodeString& RelativeDateTimeFormatter::format(
     // Get string using fallback.
     UnicodeString result;
     result.fastCopyFrom(fCache->getAbsoluteUnitString(fStyle, unit, direction));
-    if (fOptBreakIterator != NULL) {
+    if (fOptBreakIterator != nullptr) {
         adjustForContext(result);
     }
     return appendTo.append(result);
@@ -908,6 +954,7 @@ UnicodeString& RelativeDateTimeFormatter::format(
     UDateAbsoluteUnit absunit = UDAT_ABSOLUTE_UNIT_COUNT;
     switch (unit) {
         case UDAT_REL_UNIT_YEAR:    absunit = UDAT_ABSOLUTE_YEAR; break;
+        case UDAT_REL_UNIT_QUARTER: absunit = UDAT_ABSOLUTE_QUARTER; break;
         case UDAT_REL_UNIT_MONTH:   absunit = UDAT_ABSOLUTE_MONTH; break;
         case UDAT_REL_UNIT_WEEK:    absunit = UDAT_ABSOLUTE_WEEK; break;
         case UDAT_REL_UNIT_DAY:     absunit = UDAT_ABSOLUTE_DAY; break;
@@ -930,7 +977,7 @@ UnicodeString& RelativeDateTimeFormatter::format(
         const UnicodeString &unitFormatString =
             fCache->getAbsoluteUnitString(fStyle, absunit, direction);
         if (!unitFormatString.isEmpty()) {
-            if (fOptBreakIterator != NULL) {
+            if (fOptBreakIterator != nullptr) {
                 UnicodeString result(unitFormatString);
                 adjustForContext(result);
                 return appendTo.append(result);
@@ -951,7 +998,7 @@ UnicodeString& RelativeDateTimeFormatter::combineDateAndTime(
 }
 
 void RelativeDateTimeFormatter::adjustForContext(UnicodeString &str) const {
-    if (fOptBreakIterator == NULL
+    if (fOptBreakIterator == nullptr
         || str.length() == 0 || !u_islower(str.char32At(0))) {
         return;
     }
@@ -992,7 +1039,7 @@ void RelativeDateTimeFormatter::init(
         shared->removeRef();
     } else {
         SharedNumberFormat *shared = new SharedNumberFormat(nf.getAlias());
-        if (shared == NULL) {
+        if (shared == nullptr) {
             status = U_MEMORY_ALLOCATION_ERROR;
             return;
         }
@@ -1003,7 +1050,7 @@ void RelativeDateTimeFormatter::init(
         SharedObject::clearPtr(fOptBreakIterator);
     } else {
         SharedBreakIterator *shared = new SharedBreakIterator(bi.getAlias());
-        if (shared == NULL) {
+        if (shared == nullptr) {
             status = U_MEMORY_ALLOCATION_ERROR;
             return;
         }
@@ -1026,13 +1073,13 @@ ureldatefmt_open( const char*          locale,
                   UErrorCode*          status )
 {
     if (U_FAILURE(*status)) {
-        return NULL;
+        return nullptr;
     }
     LocalPointer<RelativeDateTimeFormatter> formatter(new RelativeDateTimeFormatter(Locale(locale),
                                                               (NumberFormat*)nfToAdopt, width,
                                                               capitalizationContext, *status), *status);
     if (U_FAILURE(*status)) {
-        return NULL;
+        return nullptr;
     }
     return (URelativeDateTimeFormatter*)formatter.orphan();
 }
@@ -1054,13 +1101,13 @@ ureldatefmt_formatNumeric( const URelativeDateTimeFormatter* reldatefmt,
     if (U_FAILURE(*status)) {
         return 0;
     }
-    if (result == NULL ? resultCapacity != 0 : resultCapacity < 0) {
+    if (result == nullptr ? resultCapacity != 0 : resultCapacity < 0) {
         *status = U_ILLEGAL_ARGUMENT_ERROR;
         return 0;
     }
     UnicodeString res;
-    if (result != NULL) {
-        // NULL destination for pure preflighting: empty dummy string
+    if (result != nullptr) {
+        // nullptr destination for pure preflighting: empty dummy string
         // otherwise, alias the destination buffer (copied from udat_format)
         res.setTo(result, 0, resultCapacity);
     }
@@ -1082,13 +1129,13 @@ ureldatefmt_format( const URelativeDateTimeFormatter* reldatefmt,
     if (U_FAILURE(*status)) {
         return 0;
     }
-    if (result == NULL ? resultCapacity != 0 : resultCapacity < 0) {
+    if (result == nullptr ? resultCapacity != 0 : resultCapacity < 0) {
         *status = U_ILLEGAL_ARGUMENT_ERROR;
         return 0;
     }
     UnicodeString res;
-    if (result != NULL) {
-        // NULL destination for pure preflighting: empty dummy string
+    if (result != nullptr) {
+        // nullptr destination for pure preflighting: empty dummy string
         // otherwise, alias the destination buffer (copied from udat_format)
         res.setTo(result, 0, resultCapacity);
     }
@@ -1112,9 +1159,9 @@ ureldatefmt_combineDateAndTime( const URelativeDateTimeFormatter* reldatefmt,
     if (U_FAILURE(*status)) {
         return 0;
     }
-    if (result == NULL ? resultCapacity != 0 : resultCapacity < 0 ||
-            (relativeDateString == NULL ? relativeDateStringLen != 0 : relativeDateStringLen < -1) ||
-            (timeString == NULL ? timeStringLen != 0 : timeStringLen < -1)) {
+    if (result == nullptr ? resultCapacity != 0 : resultCapacity < 0 ||
+            (relativeDateString == nullptr ? relativeDateStringLen != 0 : relativeDateStringLen < -1) ||
+            (timeString == nullptr ? timeStringLen != 0 : timeStringLen < -1)) {
         *status = U_ILLEGAL_ARGUMENT_ERROR;
         return 0;
     }
index 839198b3859c125d9764a6bde9137686e3549a56..5e7ddddf74a5b202d1ac419521b757aa4d99caf2 100644 (file)
@@ -430,7 +430,7 @@ RelativeDateFormat::setContext(UDisplayContext value, UErrorCode& status)
         if ( fCapitalizationBrkIter == NULL && (value==UDISPCTX_CAPITALIZATION_FOR_BEGINNING_OF_SENTENCE ||
                 (value==UDISPCTX_CAPITALIZATION_FOR_UI_LIST_OR_MENU && fCapitalizationOfRelativeUnitsForUIListMenu) ||
                 (value==UDISPCTX_CAPITALIZATION_FOR_STANDALONE && fCapitalizationOfRelativeUnitsForStandAlone)) ) {
-            UErrorCode status = U_ZERO_ERROR;
+            status = U_ZERO_ERROR;
             fCapitalizationBrkIter = BreakIterator::createSentenceInstance(fLocale, status);
             if (U_FAILURE(status)) {
                 delete fCapitalizationBrkIter;
@@ -456,8 +456,8 @@ RelativeDateFormat::initCapitalizationContextInfo(const Locale& thelocale)
         const int32_t * intVector = ures_getIntVector(rb.getAlias(),
                                                       &len, &status);
         if (U_SUCCESS(status) && intVector != NULL && len >= 2) {
-            fCapitalizationOfRelativeUnitsForUIListMenu = intVector[0];
-            fCapitalizationOfRelativeUnitsForStandAlone = intVector[1];
+            fCapitalizationOfRelativeUnitsForUIListMenu = static_cast<UBool>(intVector[0]);
+            fCapitalizationOfRelativeUnitsForStandAlone = static_cast<UBool>(intVector[1]);
         }
     }
 #endif
index c3b3044e442d3b285b50c763df6da3934f1c05f9..aa5f92346d0262d200edc4f8937658c5ba7189c2 100644 (file)
@@ -235,7 +235,6 @@ public:
      */
     virtual const DateFormatSymbols* getDateFormatSymbols(void) const;
 
-    /* Cannot use #ifndef U_HIDE_DRAFT_API for the following draft method since it is virtual */
     /**
      * Set a particular UDisplayContext value in the formatter, such as
      * UDISPCTX_CAPITALIZATION_FOR_STANDALONE. Note: For getContext, see
index efa3909e5e9df5fa135d5fb3aa15990a977f1d58..cfdc1fe4d99b3c9d32ceaad57dcb9f1e9d3765e7 100644 (file)
@@ -801,7 +801,7 @@ UBool RegexMatcher::find(UErrorCode &status) {
 
     case START_LINE:
         {
-            UChar32  c;
+            UChar32 ch;
             if (startPos == fAnchorStart) {
                 MatchAt(startPos, FALSE, status);
                 if (U_FAILURE(status)) {
@@ -811,17 +811,17 @@ UBool RegexMatcher::find(UErrorCode &status) {
                     return TRUE;
                 }
                 UTEXT_SETNATIVEINDEX(fInputText, startPos);
-                c = UTEXT_NEXT32(fInputText);
+                ch = UTEXT_NEXT32(fInputText);
                 startPos = UTEXT_GETNATIVEINDEX(fInputText);
             } else {
                 UTEXT_SETNATIVEINDEX(fInputText, startPos);
-                c = UTEXT_PREVIOUS32(fInputText);
+                ch = UTEXT_PREVIOUS32(fInputText);
                 UTEXT_SETNATIVEINDEX(fInputText, startPos);
             }
 
             if (fPattern->fFlags & UREGEX_UNIX_LINES) {
                 for (;;) {
-                    if (c == 0x0a) {
+                    if (ch == 0x0a) {
                             MatchAt(startPos, FALSE, status);
                             if (U_FAILURE(status)) {
                                 return FALSE;
@@ -836,7 +836,7 @@ UBool RegexMatcher::find(UErrorCode &status) {
                         fHitEnd = TRUE;
                         return FALSE;
                     }
-                    c = UTEXT_NEXT32(fInputText);
+                    ch = UTEXT_NEXT32(fInputText);
                     startPos = UTEXT_GETNATIVEINDEX(fInputText);
                     // Note that it's perfectly OK for a pattern to have a zero-length
                     //   match at the end of a string, so we must make sure that the loop
@@ -846,8 +846,8 @@ UBool RegexMatcher::find(UErrorCode &status) {
                 }
             } else {
                 for (;;) {
-                    if (isLineTerminator(c)) {
-                        if (c == 0x0d && startPos < fActiveLimit && UTEXT_CURRENT32(fInputText) == 0x0a) {
+                    if (isLineTerminator(ch)) {
+                        if (ch == 0x0d && startPos < fActiveLimit && UTEXT_CURRENT32(fInputText) == 0x0a) {
                             (void)UTEXT_NEXT32(fInputText);
                             startPos = UTEXT_GETNATIVEINDEX(fInputText);
                         }
@@ -865,7 +865,7 @@ UBool RegexMatcher::find(UErrorCode &status) {
                         fHitEnd = TRUE;
                         return FALSE;
                     }
-                    c = UTEXT_NEXT32(fInputText);
+                    ch = UTEXT_NEXT32(fInputText);
                     startPos = UTEXT_GETNATIVEINDEX(fInputText);
                     // Note that it's perfectly OK for a pattern to have a zero-length
                     //   match at the end of a string, so we must make sure that the loop
@@ -1034,7 +1034,7 @@ UBool RegexMatcher::findUsingChunk(UErrorCode &status) {
                 return FALSE;
         }
     }
-        U_ASSERT(FALSE);
+    U_ASSERT(FALSE);
 
     case START_STRING:
     case START_CHAR:
@@ -1067,7 +1067,7 @@ UBool RegexMatcher::findUsingChunk(UErrorCode &status) {
 
     case START_LINE:
     {
-        UChar32  c;
+        UChar32 ch;
         if (startPos == fAnchorStart) {
             MatchChunkAt(startPos, FALSE, status);
             if (U_FAILURE(status)) {
@@ -1081,8 +1081,8 @@ UBool RegexMatcher::findUsingChunk(UErrorCode &status) {
 
         if (fPattern->fFlags & UREGEX_UNIX_LINES) {
             for (;;) {
-                c = inputBuf[startPos-1];
-                if (c == 0x0a) {
+                ch = inputBuf[startPos-1];
+                if (ch == 0x0a) {
                     MatchChunkAt(startPos, FALSE, status);
                     if (U_FAILURE(status)) {
                         return FALSE;
@@ -1105,9 +1105,9 @@ UBool RegexMatcher::findUsingChunk(UErrorCode &status) {
             }
         } else {
             for (;;) {
-                c = inputBuf[startPos-1];
-                if (isLineTerminator(c)) {
-                    if (c == 0x0d && startPos < fActiveLimit && inputBuf[startPos] == 0x0a) {
+                ch = inputBuf[startPos-1];
+                if (isLineTerminator(ch)) {
+                    if (ch == 0x0d && startPos < fActiveLimit && inputBuf[startPos] == 0x0a) {
                         startPos++;
                     }
                     MatchChunkAt(startPos, FALSE, status);
@@ -2774,7 +2774,7 @@ void RegexMatcher::MatchAt(int64_t startIdx, UBool toEnd, UErrorCode &status) {
     int64_t             *pat           = fPattern->fCompiledPat->getBuffer();
 
     const UChar         *litText       = fPattern->fLiteralText.getBuffer();
-    UVector             *sets          = fPattern->fSets;
+    UVector             *fSets         = fPattern->fSets;
 
     fFrameSize = fPattern->fFrameSize;
     REStackFrame        *fp            = resetStack();
@@ -3376,7 +3376,7 @@ GC_Done:
 
                 // There is input left.  Pick up one char and test it for set membership.
                 UChar32 c = UTEXT_NEXT32(fInputText);
-                U_ASSERT(opValue > 0 && opValue < sets->size());
+                U_ASSERT(opValue > 0 && opValue < fSets->size());
                 if (c<256) {
                     Regex8BitSet *s8 = &fPattern->fSets8[opValue];
                     if (s8->contains(c)) {
@@ -3384,7 +3384,7 @@ GC_Done:
                         break;
                     }
                 } else {
-                    UnicodeSet *s = (UnicodeSet *)sets->elementAt(opValue);
+                    UnicodeSet *s = (UnicodeSet *)fSets->elementAt(opValue);
                     if (s->contains(c)) {
                         // The character is in the set.  A Match.
                         fp->fInputIdx = UTEXT_GETNATIVEINDEX(fInputText);
@@ -3671,9 +3671,9 @@ GC_Done:
                 if (newFP == (int64_t *)fp) {
                     break;
                 }
-                int32_t i;
-                for (i=0; i<fFrameSize; i++) {
-                    newFP[i] = ((int64_t *)fp)[i];
+                int32_t j;
+                for (j=0; j<fFrameSize; j++) {
+                    newFP[j] = ((int64_t *)fp)[j];
                 }
                 fp = (REStackFrame *)newFP;
                 fStack->setSize(newStackSize);
@@ -3830,9 +3830,9 @@ GC_Done:
                     //   This makes the capture groups from within the look-ahead
                     //   expression available.
                     int64_t *newFP = fStack->getBuffer() + newStackSize - fFrameSize;
-                    int32_t i;
-                    for (i=0; i<fFrameSize; i++) {
-                        newFP[i] = ((int64_t *)fp)[i];
+                    int32_t j;
+                    for (j=0; j<fFrameSize; j++) {
+                        newFP[j] = ((int64_t *)fp)[j];
                     }
                     fp = (REStackFrame *)newFP;
                     fStack->setSize(newStackSize);
@@ -4123,9 +4123,9 @@ GC_Done:
             //   This op scans through all matching input.
             //   The following LOOP_C op emulates stack unwinding if the following pattern fails.
             {
-                U_ASSERT(opValue > 0 && opValue < sets->size());
+                U_ASSERT(opValue > 0 && opValue < fSets->size());
                 Regex8BitSet *s8 = &fPattern->fSets8[opValue];
-                UnicodeSet   *s  = (UnicodeSet *)sets->elementAt(opValue);
+                UnicodeSet   *s  = (UnicodeSet *)fSets->elementAt(opValue);
 
                 // Loop through input, until either the input is exhausted or
                 //   we reach a character that is not a member of the set.
@@ -4350,7 +4350,7 @@ void RegexMatcher::MatchChunkAt(int32_t startIdx, UBool toEnd, UErrorCode &statu
     int64_t             *pat           = fPattern->fCompiledPat->getBuffer();
 
     const UChar         *litText       = fPattern->fLiteralText.getBuffer();
-    UVector             *sets          = fPattern->fSets;
+    UVector             *fSets         = fPattern->fSets;
 
     const UChar         *inputBuf      = fInputText->chunkContents;
 
@@ -4928,7 +4928,7 @@ GC_Done:
                     break;
                 }
 
-                U_ASSERT(opValue > 0 && opValue < sets->size());
+                U_ASSERT(opValue > 0 && opValue < fSets->size());
 
                 // There is input left.  Pick up one char and test it for set membership.
                 UChar32  c;
@@ -4940,7 +4940,7 @@ GC_Done:
                         break;
                     }
                 } else {
-                    UnicodeSet *s = (UnicodeSet *)sets->elementAt(opValue);
+                    UnicodeSet *s = (UnicodeSet *)fSets->elementAt(opValue);
                     if (s->contains(c)) {
                         // The character is in the set.  A Match.
                         break;
@@ -5214,9 +5214,9 @@ GC_Done:
                 if (newFP == (int64_t *)fp) {
                     break;
                 }
-                int32_t i;
-                for (i=0; i<fFrameSize; i++) {
-                    newFP[i] = ((int64_t *)fp)[i];
+                int32_t j;
+                for (j=0; j<fFrameSize; j++) {
+                    newFP[j] = ((int64_t *)fp)[j];
                 }
                 fp = (REStackFrame *)newFP;
                 fStack->setSize(newStackSize);
@@ -5361,9 +5361,9 @@ GC_Done:
                     //   This makes the capture groups from within the look-ahead
                     //   expression available.
                     int64_t *newFP = fStack->getBuffer() + newStackSize - fFrameSize;
-                    int32_t i;
-                    for (i=0; i<fFrameSize; i++) {
-                        newFP[i] = ((int64_t *)fp)[i];
+                    int32_t j;
+                    for (j=0; j<fFrameSize; j++) {
+                        newFP[j] = ((int64_t *)fp)[j];
                     }
                     fp = (REStackFrame *)newFP;
                     fStack->setSize(newStackSize);
@@ -5623,9 +5623,9 @@ GC_Done:
             //   This op scans through all matching input.
             //   The following LOOP_C op emulates stack unwinding if the following pattern fails.
             {
-                U_ASSERT(opValue > 0 && opValue < sets->size());
+                U_ASSERT(opValue > 0 && opValue < fSets->size());
                 Regex8BitSet *s8 = &fPattern->fSets8[opValue];
-                UnicodeSet   *s  = (UnicodeSet *)sets->elementAt(opValue);
+                UnicodeSet   *s  = (UnicodeSet *)fSets->elementAt(opValue);
 
                 // Loop through input, until either the input is exhausted or
                 //   we reach a character that is not a member of the set.
index ab65f10a3bdfa8ccdc33954596abfd8eb2db34e9..b057b6bbd5a12f7e5dac84e28703d192e54da779 100644 (file)
@@ -764,9 +764,9 @@ RuleBasedCollator::internalCompareUTF8(const char *left, int32_t leftLength,
     // Make sure both or neither strings have a known length.
     // We do not optimize for mixed length/termination.
     if(leftLength >= 0) {
-        if(rightLength < 0) { rightLength = uprv_strlen(right); }
+        if(rightLength < 0) { rightLength = static_cast<int32_t>(uprv_strlen(right)); }
     } else {
-        if(rightLength >= 0) { leftLength = uprv_strlen(left); }
+        if(rightLength >= 0) { leftLength = static_cast<int32_t>(uprv_strlen(left)); }
     }
     return doCompare(reinterpret_cast<const uint8_t *>(left), leftLength,
                      reinterpret_cast<const uint8_t *>(right), rightLength, errorCode);
@@ -862,9 +862,9 @@ public:
         } else {
             str.setTo(text, (int32_t)(spanLimit - text));
             {
-                ReorderingBuffer buffer(nfcImpl, str);
-                if(buffer.init(str.length(), errorCode)) {
-                    nfcImpl.makeFCD(spanLimit, textLimit, &buffer, errorCode);
+                ReorderingBuffer r_buffer(nfcImpl, str);
+                if(r_buffer.init(str.length(), errorCode)) {
+                    nfcImpl.makeFCD(spanLimit, textLimit, &r_buffer, errorCode);
                 }
             }
             if(U_SUCCESS(errorCode)) {
index 073e839f890003ed89f39abaf7ead5c52e7d394b..54ead803c2a3d3f65e8ef3697f4c7ec5ac6e993a 100644 (file)
@@ -298,7 +298,7 @@ uhash_compareScriptSet(UElement key0, UElement key1) {
     icu::ScriptSet *s0 = static_cast<icu::ScriptSet *>(key0.pointer);
     icu::ScriptSet *s1 = static_cast<icu::ScriptSet *>(key1.pointer);
     int32_t diff = s0->countMembers() - s1->countMembers();
-    if (diff != 0) return diff;
+    if (diff != 0) return static_cast<UBool>(diff);
     int32_t i0 = s0->nextSetBit(0);
     int32_t i1 = s1->nextSetBit(0);
     while ((diff = i0-i1) == 0 && i0 > 0) {
index ca9a2108190c4d4af471383fb7277a255ea91379..66a06ecae5476abd287892cf3310e1cf68f0f192 100644 (file)
@@ -12,6 +12,9 @@
 #define __SHARED_DATEFORMATSYMBOLS_H__
 
 #include "unicode/utypes.h"
+
+#if !UCONFIG_NO_FORMATTING
+
 #include "sharedobject.h"
 #include "unicode/dtfmtsym.h"
 
@@ -33,4 +36,6 @@ private:
 
 U_NAMESPACE_END
 
+#endif /* !UCONFIG_NO_FORMATTING */
+
 #endif
index b1b90882fceeadd7d82542b9e2013212df51e116..2bc8e49625fe293e743fffd6e8a75fae8ea9b5ba 100644 (file)
@@ -244,9 +244,9 @@ SimpleDateFormat::NSOverride::~NSOverride() {
 void SimpleDateFormat::NSOverride::free() {
     NSOverride *cur = this;
     while (cur) {
-        NSOverride *next = cur->next;
+        NSOverride *next_temp = cur->next;
         delete cur;
-        cur = next;
+        cur = next_temp;
     }
 }
 
@@ -1304,15 +1304,15 @@ SimpleDateFormat::processOverrideString(const Locale &locale, const UnicodeStrin
 
         int32_t nsNameHash = nsName.hashCode();
         // See if the numbering system is in the override list, if not, then add it.
-        NSOverride *cur = overrideList;
+        NSOverride *curr = overrideList;
         const SharedNumberFormat *snf = NULL;
         UBool found = FALSE;
-        while ( cur && !found ) {
-            if ( cur->hash == nsNameHash ) {
-                snf = cur->snf;
+        while ( curr && !found ) {
+            if ( curr->hash == nsNameHash ) {
+                snf = curr->snf;
                 found = TRUE;
             }
-            cur = cur->next;
+            curr = curr->next;
         }
 
         if (!found) {
@@ -1824,14 +1824,14 @@ SimpleDateFormat::subFormat(UnicodeString &appendTo,
             // Stealing am/pm value to use as our array index.
             // It works out: am/midnight are both 0, pm/noon are both 1,
             // 12 am is 12 midnight, and 12 pm is 12 noon.
-            int32_t value = cal.get(UCAL_AM_PM, status);
+            int32_t val = cal.get(UCAL_AM_PM, status);
 
             if (count <= 3) {
-                toAppend = &fSymbols->fAbbreviatedDayPeriods[value];
+                toAppend = &fSymbols->fAbbreviatedDayPeriods[val];
             } else if (count == 4 || count > 5) {
-                toAppend = &fSymbols->fWideDayPeriods[value];
+                toAppend = &fSymbols->fWideDayPeriods[val];
             } else { // count == 5
-                toAppend = &fSymbols->fNarrowDayPeriods[value];
+                toAppend = &fSymbols->fNarrowDayPeriods[val];
             }
         }
 
@@ -2281,10 +2281,10 @@ SimpleDateFormat::parse(const UnicodeString& text, Calendar& cal, ParsePosition&
 
                     if (i+1 < fPattern.length()) {
                         // move to next pattern character
-                        UChar ch = fPattern.charAt(i+1);
+                        UChar c = fPattern.charAt(i+1);
 
                         // check for whitespace
-                        if (PatternProps::isWhiteSpace(ch)) {
+                        if (PatternProps::isWhiteSpace(c)) {
                             i++;
                             // Advance over run in pattern
                             while ((i+1)<fPattern.length() &&
@@ -3162,8 +3162,8 @@ int32_t SimpleDateFormat::subParse(const UnicodeString& text, int32_t& start, UC
             if (!strcmp(cal.getType(),"hebrew")) {
                 HebrewCalendar *hc = (HebrewCalendar*)&cal;
                 if (cal.isSet(UCAL_YEAR)) {
-                   UErrorCode status = U_ZERO_ERROR;
-                   if (!hc->isLeapYear(hc->get(UCAL_YEAR,status)) && value >= 6) {
+                   UErrorCode monthStatus = U_ZERO_ERROR;
+                   if (!hc->isLeapYear(hc->get(UCAL_YEAR, monthStatus)) && value >= 6) {
                        cal.set(UCAL_MONTH, value);
                    } else {
                        cal.set(UCAL_MONTH, value - 1);
@@ -3571,21 +3571,21 @@ int32_t SimpleDateFormat::subParse(const UnicodeString& text, int32_t& start, UC
             static const UChar alt_sep = DateFormatSymbols::ALTERNATE_TIME_SEPARATOR;
 
             // Try matching a time separator.
-            int32_t count = 1;
+            int32_t count_sep = 1;
             UnicodeString data[3];
             fSymbols->getTimeSeparatorString(data[0]);
 
             // Add the default, if different from the locale.
             if (data[0].compare(&def_sep, 1) != 0) {
-                data[count++].setTo(def_sep);
+                data[count_sep++].setTo(def_sep);
             }
 
             // If lenient, add also the alternate, if different from the locale.
             if (isLenient() && data[0].compare(&alt_sep, 1) != 0) {
-                data[count++].setTo(alt_sep);
+                data[count_sep++].setTo(alt_sep);
             }
 
-            return matchString(text, start, UCAL_FIELD_COUNT /* => nothing to set */, data, count, NULL, cal);
+            return matchString(text, start, UCAL_FIELD_COUNT /* => nothing to set */, data, count_sep, NULL, cal);
         }
 
     case UDAT_AM_PM_MIDNIGHT_NOON_FIELD:
@@ -3674,7 +3674,7 @@ int32_t SimpleDateFormat::subParse(const UnicodeString& text, int32_t& start, UC
     }
     parseInt(*src, number, pos, allowNegative,currentNumberFormat);
     if (pos.getIndex() != parseStart) {
-        int32_t value = number.getLong();
+        int32_t val = number.getLong();
 
         // Don't need suffix processing here (as in number processing at the beginning of the function);
         // the new fields being handled as numeric values (month, weekdays, quarters) should not have suffixes.
@@ -3682,7 +3682,7 @@ int32_t SimpleDateFormat::subParse(const UnicodeString& text, int32_t& start, UC
         if (!getBooleanAttribute(UDAT_PARSE_ALLOW_NUMERIC, status)) {
             // Check the range of the value
             int32_t bias = gFieldRangeBias[patternCharIndex];
-            if (bias >= 0 && (value > cal.getMaximum(field) + bias || value < cal.getMinimum(field) + bias)) {
+            if (bias >= 0 && (val > cal.getMaximum(field) + bias || val < cal.getMinimum(field) + bias)) {
                 return -start;
             }
         }
@@ -3696,35 +3696,35 @@ int32_t SimpleDateFormat::subParse(const UnicodeString& text, int32_t& start, UC
             if (!strcmp(cal.getType(),"hebrew")) {
                 HebrewCalendar *hc = (HebrewCalendar*)&cal;
                 if (cal.isSet(UCAL_YEAR)) {
-                   UErrorCode status = U_ZERO_ERROR;
-                   if (!hc->isLeapYear(hc->get(UCAL_YEAR,status)) && value >= 6) {
-                       cal.set(UCAL_MONTH, value);
+                   UErrorCode monthStatus = U_ZERO_ERROR;
+                   if (!hc->isLeapYear(hc->get(UCAL_YEAR, monthStatus)) && val >= 6) {
+                       cal.set(UCAL_MONTH, val);
                    } else {
-                       cal.set(UCAL_MONTH, value - 1);
+                       cal.set(UCAL_MONTH, val - 1);
                    }
                 } else {
-                    saveHebrewMonth = value;
+                    saveHebrewMonth = val;
                 }
             } else {
-                cal.set(UCAL_MONTH, value - 1);
+                cal.set(UCAL_MONTH, val - 1);
             }
             break;
         case UDAT_STANDALONE_MONTH_FIELD:
-            cal.set(UCAL_MONTH, value - 1);
+            cal.set(UCAL_MONTH, val - 1);
             break;
         case UDAT_DOW_LOCAL_FIELD:
         case UDAT_STANDALONE_DAY_FIELD:
-            cal.set(UCAL_DOW_LOCAL, value);
+            cal.set(UCAL_DOW_LOCAL, val);
             break;
         case UDAT_QUARTER_FIELD:
         case UDAT_STANDALONE_QUARTER_FIELD:
-             cal.set(UCAL_MONTH, (value - 1) * 3);
+             cal.set(UCAL_MONTH, (val - 1) * 3);
              break;
         case UDAT_RELATED_YEAR_FIELD:
-            cal.setRelatedYear(value);
+            cal.setRelatedYear(val);
             break;
         default:
-            cal.set(field, value);
+            cal.set(field, val);
             break;
         }
         return pos.getIndex();
@@ -3971,7 +3971,7 @@ SimpleDateFormat::setContext(UDisplayContext value, UErrorCode& status)
     if (U_SUCCESS(status)) {
         if ( fCapitalizationBrkIter == NULL && (value==UDISPCTX_CAPITALIZATION_FOR_BEGINNING_OF_SENTENCE ||
                 value==UDISPCTX_CAPITALIZATION_FOR_UI_LIST_OR_MENU || value==UDISPCTX_CAPITALIZATION_FOR_STANDALONE) ) {
-            UErrorCode status = U_ZERO_ERROR;
+            status = U_ZERO_ERROR;
             fCapitalizationBrkIter = BreakIterator::createSentenceInstance(fLocale, status);
             if (U_FAILURE(status)) {
                 delete fCapitalizationBrkIter;
index 12c3039d7cb627affdd7a92db25e7354bd3d8d15..234f52cc3dd70764d4d3301148466f5236b38134 100644 (file)
@@ -1031,8 +1031,8 @@ TimeZone::getEquivalentID(const UnicodeString& id, int32_t index) {
         UResourceBundle *ares = ures_getByKey(top, kNAMES, NULL, &ec); // dereference Zones section
         if (U_SUCCESS(ec)) {
             int32_t idLen = 0;
-            const UChar* id = ures_getStringByIndex(ares, zone, &idLen, &ec);
-            result.fastCopyFrom(UnicodeString(TRUE, id, idLen));
+            const UChar* id2 = ures_getStringByIndex(ares, zone, &idLen, &ec);
+            result.fastCopyFrom(UnicodeString(TRUE, id2, idLen));
             U_DEBUG_TZ_MSG(("gei(%d) -> %d, len%d, %s\n", index, zone, result.length(), u_errorName(ec)));
         }
         ures_close(ares);
@@ -1199,7 +1199,7 @@ TimeZone::getDisplayName(UBool daylight, EDisplayType style, const Locale& local
 {
     UErrorCode status = U_ZERO_ERROR;
     UDate date = Calendar::getNow();
-    UTimeZoneFormatTimeType timeType;
+    UTimeZoneFormatTimeType timeType = UTZFMT_TIME_TYPE_UNKNOWN;
     int32_t offset;
 
     if (style == GENERIC_LOCATION || style == LONG_GENERIC || style == SHORT_GENERIC) {
@@ -1612,7 +1612,7 @@ TimeZone::getWindowsID(const UnicodeString& id, UnicodeString& winid, UErrorCode
                     end = tzids + len;
                     hasNext = FALSE;
                 }
-                if (canonicalID.compare(start, end - start) == 0) {
+                if (canonicalID.compare(start, static_cast<int32_t>(end - start)) == 0) {
                     winid = UnicodeString(ures_getKey(winzone), -1 , US_INV);
                     found = TRUE;
                     break;
@@ -1673,7 +1673,7 @@ TimeZone::getIDForWindowsID(const UnicodeString& winid, const char* region, Unic
             if (end == NULL) {
                 id.setTo(tzids, -1);
             } else {
-                id.setTo(tzids, end - tzids);
+                id.setTo(tzids, static_cast<int32_t>(end - tzids));
             }
             gotID = TRUE;
         }
index 36dcebe987d372cb70777e4b71c3a45e3001aef7..1a96ad367f20d0a4d78da5e99f2a3119c35a5aeb 100644 (file)
@@ -1330,12 +1330,12 @@ Transliterator* TransliteratorRegistry::instantiateEntry(const UnicodeString& ID
             int32_t passNumber = 1;
             for (int32_t i = 0; U_SUCCESS(status) && i < entry->u.dataVector->size(); i++) {
                 // TODO: Should passNumber be turned into a decimal-string representation (1 -> "1")?
-                Transliterator* t = new RuleBasedTransliterator(UnicodeString(CompoundTransliterator::PASS_STRING) + UnicodeString(passNumber++),
+                Transliterator* tl = new RuleBasedTransliterator(UnicodeString(CompoundTransliterator::PASS_STRING) + UnicodeString(passNumber++),
                     (TransliterationRuleData*)(entry->u.dataVector->elementAt(i)), FALSE);
-                if (t == 0)
+                if (tl == 0)
                     status = U_MEMORY_ALLOCATION_ERROR;
                 else
-                    rbts->addElement(t, status);
+                    rbts->addElement(tl, status);
             }
             if (U_FAILURE(status)) {
                 delete rbts;
index 3de84f42940368e5e431a653b13e5079defee87f..769977a3e31b9cccfc02c57448678fd6435446ee 100644 (file)
@@ -2648,12 +2648,12 @@ TimeZoneFormat::checkAbuttingHoursAndMinutes() {
         UVector *items = fGMTOffsetPatternItems[type];
         for (int32_t i = 0; i < items->size(); i++) {
             const GMTOffsetField* item = (GMTOffsetField*)items->elementAt(i);
-            GMTOffsetField::FieldType type = item->getType();
-            if (type != GMTOffsetField::TEXT) {
+            GMTOffsetField::FieldType fieldType = item->getType();
+            if (fieldType != GMTOffsetField::TEXT) {
                 if (afterH) {
                     fAbuttingOffsetHoursAndMinutes = TRUE;
                     break;
-                } else if (type == GMTOffsetField::HOUR) {
+                } else if (fieldType == GMTOffsetField::HOUR) {
                     afterH = TRUE;
                 }
             } else if (afterH) {
index c2e685272e9b36713dcee19462d3f31220371faf..5f5b7db30227cccdc928122302359d1f763fb2d1 100644 (file)
@@ -407,7 +407,7 @@ TZGNCore::initialize(const Locale& locale, UErrorCode& status) {
 
     // target region
     const char* region = fLocale.getCountry();
-    int32_t regionLen = uprv_strlen(region);
+    int32_t regionLen = static_cast<int32_t>(uprv_strlen(region));
     if (regionLen == 0) {
         char loc[ULOC_FULLNAME_CAPACITY];
         uloc_addLikelySubtags(fLocale.getName(), loc, sizeof(loc), &status);
index 689fdeb0915300146cd8f1aeeb4ee86be58687ab..5a79c22aacf8f970e421aac80c01edeee2e2b320 100644 (file)
@@ -87,7 +87,7 @@ static void sweepCache() {
     const UHashElement* elem;
     double now = (double)uprv_getUTCtime();
 
-    while ((elem = uhash_nextElement(gTimeZoneNamesCache, &pos))) {
+    while ((elem = uhash_nextElement(gTimeZoneNamesCache, &pos)) != 0) {
         TimeZoneNamesCacheEntry *entry = (TimeZoneNamesCacheEntry *)elem->value.pointer;
         if (entry->refCount <= 0 && (now - entry->lastAccess) > CACHE_EXPIRATION) {
             // delete this entry
index 7045f099516e512f4e35587a978fd75e28824f93..7bfbc04e180051243471bcde5fee1536442a0fde 100644 (file)
@@ -1285,7 +1285,7 @@ static void mergeTimeZoneKey(const UnicodeString& mzID, char* result) {
 
     char mzIdChar[ZID_KEY_MAX + 1];
     int32_t keyLen;
-    int32_t prefixLen = uprv_strlen(gMZPrefix);
+    int32_t prefixLen = static_cast<int32_t>(uprv_strlen(gMZPrefix));
     keyLen = mzID.extract(0, mzID.length(), mzIdChar, ZID_KEY_MAX + 1, US_INV);
     uprv_memcpy((void *)result, (void *)gMZPrefix, prefixLen);
     uprv_memcpy((void *)(result + prefixLen), (void *)mzIdChar, keyLen);
@@ -1453,7 +1453,7 @@ struct TimeZoneNamesImpl::ZoneStringsLoader : public ResourceSink {
     virtual ~ZoneStringsLoader();
 
     void* createKey(const char* key, UErrorCode& status) {
-        int32_t len = sizeof(char) * (uprv_strlen(key) + 1);
+        int32_t len = sizeof(char) * (static_cast<int32_t>(uprv_strlen(key)) + 1);
         char* newKey = (char*) uprv_malloc(len);
         if (newKey == NULL) {
             status = U_MEMORY_ALLOCATION_ERROR;
@@ -1469,7 +1469,7 @@ struct TimeZoneNamesImpl::ZoneStringsLoader : public ResourceSink {
     }
 
     UnicodeString mzIDFromKey(const char* key) {
-        return UnicodeString(key + MZ_PREFIX_LEN, uprv_strlen(key) - MZ_PREFIX_LEN, US_INV);
+        return UnicodeString(key + MZ_PREFIX_LEN, static_cast<int32_t>(uprv_strlen(key)) - MZ_PREFIX_LEN, US_INV);
     }
 
     UnicodeString tzIDFromKey(const char* key) {
@@ -1944,8 +1944,8 @@ TZDBNameSearchHandler::handleMatch(int32_t matchLength, const CharacterNode *nod
                     // metazone mapping for "CST" is America_Central,
                     // but if region is one of CN/MO/TW, "CST" is parsed
                     // as metazone China (China Standard Time).
-                    for (int32_t i = 0; i < ninfo->nRegions; i++) {
-                        const char *region = ninfo->parseRegions[i];
+                    for (int32_t j = 0; j < ninfo->nRegions; j++) {
+                        const char *region = ninfo->parseRegions[j];
                         if (uprv_strcmp(fRegion, region) == 0) {
                             match = ninfo;
                             matchRegion = TRUE;
@@ -2059,7 +2059,7 @@ static void U_CALLCONV prepareFind(UErrorCode &status) {
     const UnicodeString *mzID;
     StringEnumeration *mzIDs = TimeZoneNamesImpl::_getAvailableMetaZoneIDs(status);
     if (U_SUCCESS(status)) {
-        while ((mzID = mzIDs->snext(status)) && U_SUCCESS(status)) {
+        while ((mzID = mzIDs->snext(status)) != 0 && U_SUCCESS(status)) {
             const TZDBNames *names = TZDBTimeZoneNames::getMetaZoneNames(*mzID, status);
             if (U_FAILURE(status)) {
                 break;
@@ -2128,7 +2128,7 @@ TZDBTimeZoneNames::TZDBTimeZoneNames(const Locale& locale)
 : fLocale(locale) {
     UBool useWorld = TRUE;
     const char* region = fLocale.getCountry();
-    int32_t regionLen = uprv_strlen(region);
+    int32_t regionLen = static_cast<int32_t>(uprv_strlen(region));
     if (regionLen == 0) {
         UErrorCode status = U_ZERO_ERROR;
         char loc[ULOC_FULLNAME_CAPACITY];
index 318eafc143c9686a1c06c3bbcb6cdc9b4a1edb45..4c13b9ffcb539a32829572b22babf030409e5557 100644 (file)
@@ -32,6 +32,7 @@ typedef enum ECleanupI18NType {
     UCLN_I18N_SPOOFDATA,
     UCLN_I18N_TRANSLITERATOR,
     UCLN_I18N_REGEX,
+    UCLN_I18N_JAPANESE_CALENDAR,
     UCLN_I18N_ISLAMIC_CALENDAR,
     UCLN_I18N_CHINESE_CALENDAR,
     UCLN_I18N_HEBREW_CALENDAR,
@@ -58,6 +59,7 @@ typedef enum ECleanupI18NType {
     UCLN_I18N_GENDERINFO,
     UCLN_I18N_CDFINFO,
     UCLN_I18N_REGION,
+    UCLN_I18N_LIST_FORMATTER,
     UCLN_I18N_COUNT /* This must be last */
 } ECleanupI18NType;
 
index 76975ecc01de638af22f6028c699ccbb3897f9e4..56ed5b3c19cacadb265808050c6f73c7ec255a74 100644 (file)
@@ -400,11 +400,11 @@ CollationLoader::loadFromData(UErrorCode &errorCode) {
     // Try to fetch the optional rules string.
     {
         UErrorCode internalErrorCode = U_ZERO_ERROR;
-        int32_t length;
-        const UChar *s = ures_getStringByKey(data, "Sequence", &length,
+        int32_t len;
+        const UChar *s = ures_getStringByKey(data, "Sequence", &len,
                                              &internalErrorCode);
         if(U_SUCCESS(internalErrorCode)) {
-            t->rules.setTo(TRUE, s, length);
+            t->rules.setTo(TRUE, s, len);
         }
     }
 
@@ -426,10 +426,10 @@ CollationLoader::loadFromData(UErrorCode &errorCode) {
         LocalUResourceBundlePointer def(
                 ures_getByKeyWithFallback(actualBundle.getAlias(), "collations/default", NULL,
                                           &internalErrorCode));
-        int32_t length;
-        const UChar *s = ures_getString(def.getAlias(), &length, &internalErrorCode);
-        if(U_SUCCESS(internalErrorCode) && length < UPRV_LENGTHOF(defaultType)) {
-            u_UCharsToChars(s, defaultType, length + 1);
+        int32_t len;
+        const UChar *s = ures_getString(def.getAlias(), &len, &internalErrorCode);
+        if(U_SUCCESS(internalErrorCode) && len < UPRV_LENGTHOF(defaultType)) {
+            u_UCharsToChars(s, defaultType, len + 1);
         } else {
             uprv_strcpy(defaultType, "standard");
         }
index 5e06dd6d069556fc888e4b0b3cc3c65a349f33fd..b47e3219885a8cb8ff5607ed34c93964f84805a8 100644 (file)
@@ -603,7 +603,7 @@ udat_getSymbols(const   UDateFormat     *fmt,
     } else {
         return -1;
     }
-    int32_t count;
+    int32_t count = 0;
     const UnicodeString *res = NULL;
 
     switch(type) {
diff --git a/source/i18n/ulistformatter.cpp b/source/i18n/ulistformatter.cpp
new file mode 100644 (file)
index 0000000..c140c78
--- /dev/null
@@ -0,0 +1,91 @@
+// © 2016 and later: Unicode, Inc. and others.
+// License & terms of use: http://www.unicode.org/copyright.html
+/*
+*****************************************************************************************
+* Copyright (C) 2015, International Business Machines
+* Corporation and others. All Rights Reserved.
+*****************************************************************************************
+*/
+
+#include "unicode/utypes.h"
+
+#if !UCONFIG_NO_FORMATTING
+
+#include "unicode/ulistformatter.h"
+#include "unicode/listformatter.h"
+#include "unicode/localpointer.h"
+#include "cmemory.h"
+
+U_NAMESPACE_USE
+
+U_CAPI UListFormatter* U_EXPORT2
+ulistfmt_open(const char*  locale,
+              UErrorCode*  status)
+{
+    if (U_FAILURE(*status)) {
+        return NULL;
+    }
+    LocalPointer<ListFormatter> listfmt(ListFormatter::createInstance(Locale(locale), *status));
+    if (U_FAILURE(*status)) {
+        return NULL;
+    }
+    return (UListFormatter*)listfmt.orphan();
+}
+
+
+U_CAPI void U_EXPORT2
+ulistfmt_close(UListFormatter *listfmt)
+{
+    delete (ListFormatter*)listfmt;
+}
+
+
+U_CAPI int32_t U_EXPORT2
+ulistfmt_format(const UListFormatter* listfmt,
+                const UChar* const strings[],
+                const int32_t *    stringLengths,
+                int32_t            stringCount,
+                UChar*             result,
+                int32_t            resultCapacity,
+                UErrorCode*        status)
+{
+    if (U_FAILURE(*status)) {
+        return -1;
+    }
+    if (stringCount < 0 || (strings == NULL && stringCount > 0) || ((result == NULL)? resultCapacity != 0 : resultCapacity < 0)) {
+        *status = U_ILLEGAL_ARGUMENT_ERROR;
+        return -1;
+    }
+    UnicodeString ustringsStackBuf[4];
+    UnicodeString* ustrings = ustringsStackBuf;
+    if (stringCount > UPRV_LENGTHOF(ustringsStackBuf)) {
+        ustrings = new UnicodeString[stringCount];
+        if (ustrings == NULL) {
+            *status = U_MEMORY_ALLOCATION_ERROR;
+            return -1;
+        }
+    }
+    if (stringLengths == NULL) {
+        for (int32_t stringIndex = 0; stringIndex < stringCount; stringIndex++) {
+            ustrings[stringIndex].setTo(TRUE, strings[stringIndex], -1);
+        }
+    } else {
+        for (int32_t stringIndex = 0; stringIndex < stringCount; stringIndex++) {
+            ustrings[stringIndex].setTo(stringLengths[stringIndex] < 0, strings[stringIndex], stringLengths[stringIndex]);
+        }
+    }
+    UnicodeString res;
+    if (result != NULL) {
+        // NULL destination for pure preflighting: empty dummy string
+        // otherwise, alias the destination buffer (copied from udat_format)
+        res.setTo(result, 0, resultCapacity);
+    }
+    ((const ListFormatter*)listfmt)->format( ustrings, stringCount, res, *status );
+    if (ustrings != ustringsStackBuf) {
+        delete[] ustrings;
+    }
+    return res.extract(result, resultCapacity, *status);
+}
+
+
+#endif /* #if !UCONFIG_NO_FORMATTING */
index d406b8e8c3782e905d3a5f08c02ff4ebd7d65f7a..7f4e7b9b116e0920ac21245c041520376e0d4f47 100644 (file)
@@ -372,7 +372,7 @@ ulocdata_getLocaleSeparator(ULocaleData *uld,
     p1=u_strstr(separator, sub1);
     if (p0!=NULL && p1!=NULL && p0<=p1) {
         separator = (const UChar *)p0 + subLen;
-        len = p1 - separator;
+        len = static_cast<int32_t>(p1 - separator);
         /* Desired separator is no longer zero-terminated; handle that if necessary */
         if (len < resultCapacity) {
             u_strncpy(result, separator, len);
index 1442f754e46d759f1f10856f3b9e95d3d9d1cabf..1c50ba217fc3109e4521b54c2879af72e5ad1318 100644 (file)
@@ -266,6 +266,8 @@ public:
          * Use getBucket() to get the bucket's properties.
          *
          * @param name the string to be sorted into an index bucket
+         * @param errorCode Error code, will be set with the reason if the
+         *                  operation fails.
          * @return the bucket number for the name
          * @stable ICU 51
          */
@@ -377,9 +379,10 @@ public:
 
 
    /**
-     * Get the default label used for abbreviated buckets <i>between</i> other index characters.
-     * For example, consider the labels when Latin and Greek are used:
-     *     X Y Z ... &#x0391; &#x0392; &#x0393;.
+     * Get the default label used for abbreviated buckets *between* other index characters.
+     * For example, consider the labels when Latin (X Y Z) and Greek (Α Β Γ) are used:
+     *
+     *     X Y Z ... Α Β Γ.
      *
      * @return inflow label
      * @stable ICU 4.8
@@ -700,6 +703,7 @@ public:
     /**
      * A (name, data) pair, to be sorted by name into one of the index buckets.
      * The user data is not used by the index implementation.
+     * \cond
      * @internal
      */
     struct Record: public UMemory {
@@ -708,6 +712,7 @@ public:
         Record(const UnicodeString &name, const void *data);
         ~Record();
     };
+    /** \endcond */
 #endif  /* U_HIDE_INTERNAL_API */
 
 private:
index 48021534b422f685fd0c22d00226103a6dd316e3..023cf053f254fb2e5b62e40b40a32387b270ca9f 100644 (file)
@@ -52,83 +52,64 @@ typedef int32_t UFieldResolutionTable[12][8];
 
 class BasicTimeZone;
 /**
- * <code>Calendar</code> is an abstract base class for converting between
- * a <code>UDate</code> object and a set of integer fields such as
- * <code>YEAR</code>, <code>MONTH</code>, <code>DAY</code>, <code>HOUR</code>,
- * and so on. (A <code>UDate</code> object represents a specific instant in
+ * `Calendar` is an abstract base class for converting between
+ * a `UDate` object and a set of integer fields such as
+ * `YEAR`, `MONTH`, `DAY`, `HOUR`, and so on.
+ * (A `UDate` object represents a specific instant in
  * time with millisecond precision. See UDate
- * for information about the <code>UDate</code> class.)
+ * for information about the `UDate` class.)
  *
- * <p>
- * Subclasses of <code>Calendar</code> interpret a <code>UDate</code>
+ * Subclasses of `Calendar` interpret a `UDate`
  * according to the rules of a specific calendar system.
- * The most commonly used subclass of <code>Calendar</code> is
- * <code>GregorianCalendar</code>. Other subclasses could represent
+ * The most commonly used subclass of `Calendar` is
+ * `GregorianCalendar`. Other subclasses could represent
  * the various types of lunar calendars in use in many parts of the world.
  *
- * <p>
- * <b>NOTE</b>: (ICU 2.6) The subclass interface should be considered unstable
- * - it WILL change.
+ * **NOTE**: (ICU 2.6) The subclass interface should be considered unstable -
+ * it WILL change.
  *
- * <p>
- * Like other locale-sensitive classes, <code>Calendar</code> provides a
- * static method, <code>createInstance</code>, for getting a generally useful
- * object of this type. <code>Calendar</code>'s <code>createInstance</code> method
- * returns the appropriate <code>Calendar</code> subclass whose
+ * Like other locale-sensitive classes, `Calendar` provides a
+ * static method, `createInstance`, for getting a generally useful
+ * object of this type. `Calendar`'s `createInstance` method
+ * returns the appropriate `Calendar` subclass whose
  * time fields have been initialized with the current date and time:
- * \htmlonly<blockquote>\endhtmlonly
- * <pre>
- * Calendar *rightNow = Calendar::createInstance(errCode);
- * </pre>
- * \htmlonly</blockquote>\endhtmlonly
  *
- * <p>
- * A <code>Calendar</code> object can produce all the time field values
+ *     Calendar *rightNow = Calendar::createInstance(errCode);
+ *
+ * A `Calendar` object can produce all the time field values
  * needed to implement the date-time formatting for a particular language
  * and calendar style (for example, Japanese-Gregorian, Japanese-Traditional).
  *
- * <p>
- * When computing a <code>UDate</code> from time fields, some special circumstances
+ * When computing a `UDate` from time fields, some special circumstances
  * may arise: there may be insufficient information to compute the
- * <code>UDate</code> (such as only year and month but no day in the month),
+ * `UDate` (such as only year and month but no day in the month),
  * there may be inconsistent information (such as "Tuesday, July 15, 1996"
  * -- July 15, 1996 is actually a Monday), or the input time might be ambiguous
  * because of time zone transition.
  *
- * <p>
- * <strong>Insufficient information.</strong> The calendar will use default
+ * **Insufficient information.** The calendar will use default
  * information to specify the missing fields. This may vary by calendar; for
  * the Gregorian calendar, the default for a field is the same as that of the
  * start of the epoch: i.e., YEAR = 1970, MONTH = JANUARY, DATE = 1, etc.
  *
- * <p>
- * <strong>Inconsistent information.</strong> If fields conflict, the calendar
+ * **Inconsistent information.** If fields conflict, the calendar
  * will give preference to fields set more recently. For example, when
  * determining the day, the calendar will look for one of the following
  * combinations of fields.  The most recent combination, as determined by the
  * most recently set single field, will be used.
  *
- * \htmlonly<blockquote>\endhtmlonly
- * <pre>
- * MONTH + DAY_OF_MONTH
- * MONTH + WEEK_OF_MONTH + DAY_OF_WEEK
- * MONTH + DAY_OF_WEEK_IN_MONTH + DAY_OF_WEEK
- * DAY_OF_YEAR
- * DAY_OF_WEEK + WEEK_OF_YEAR
- * </pre>
- * \htmlonly</blockquote>\endhtmlonly
+ *     MONTH + DAY_OF_MONTH
+ *     MONTH + WEEK_OF_MONTH + DAY_OF_WEEK
+ *     MONTH + DAY_OF_WEEK_IN_MONTH + DAY_OF_WEEK
+ *     DAY_OF_YEAR
+ *     DAY_OF_WEEK + WEEK_OF_YEAR
  *
  * For the time of day:
  *
- * \htmlonly<blockquote>\endhtmlonly
- * <pre>
- * HOUR_OF_DAY
- * AM_PM + HOUR
- * </pre>
- * \htmlonly</blockquote>\endhtmlonly
+ *     HOUR_OF_DAY
+ *     AM_PM + HOUR
  *
- * <p>
- * <strong>Ambiguous Wall Clock Time.</strong> When time offset from UTC has
+ * **Ambiguous Wall Clock Time.** When time offset from UTC has
  * changed, it produces an ambiguous time slot around the transition. For example,
  * many US locations observe daylight saving time. On the date switching to daylight
  * saving time in US, wall clock time jumps from 12:59 AM (standard) to 2:00 AM
@@ -138,64 +119,66 @@ class BasicTimeZone;
  * In this example, 1:30 AM is interpreted as 1:30 AM standard time (non-exist),
  * so the final result will be 2:30 AM daylight time.
  *
- * <p>On the date switching back to standard time, wall clock time is moved back one
+ * On the date switching back to standard time, wall clock time is moved back one
  * hour at 2:00 AM. So wall clock time from 1:00 AM to 1:59 AM occur twice. In this
  * case, the ICU Calendar resolves the time using the UTC offset after the transition
  * by default. For example, 1:30 AM on the date is resolved as 1:30 AM standard time.
  *
- * <p>Ambiguous wall clock time resolution behaviors can be customized by Calendar APIs
+ * Ambiguous wall clock time resolution behaviors can be customized by Calendar APIs
  * {@link #setRepeatedWallTimeOption} and {@link #setSkippedWallTimeOption}.
  * These methods are available in ICU 49 or later versions.
  *
- * <p>
- * <strong>Note:</strong> for some non-Gregorian calendars, different
+ * **Note:** for some non-Gregorian calendars, different
  * fields may be necessary for complete disambiguation. For example, a full
- * specification of the historial Arabic astronomical calendar requires year,
- * month, day-of-month <em>and</em> day-of-week in some cases.
+ * specification of the historical Arabic astronomical calendar requires year,
+ * month, day-of-month *and* day-of-week in some cases.
  *
- * <p>
- * <strong>Note:</strong> There are certain possible ambiguities in
+ * **Note:** There are certain possible ambiguities in
  * interpretation of certain singular times, which are resolved in the
  * following ways:
- * <ol>
- *     <li> 24:00:00 "belongs" to the following day. That is,
- *          23:59 on Dec 31, 1969 &lt; 24:00 on Jan 1, 1970 &lt; 24:01:00 on Jan 1, 1970
  *
- *     <li> Although historically not precise, midnight also belongs to "am",
- *          and noon belongs to "pm", so on the same day,
- *          12:00 am (midnight) &lt; 12:01 am, and 12:00 pm (noon) &lt; 12:01 pm
- * </ol>
+ *   1. 24:00:00 "belongs" to the following day. That is,
+ *      23:59 on Dec 31, 1969 < 24:00 on Jan 1, 1970 < 24:01:00 on Jan 1, 1970
+ *   2. Although historically not precise, midnight also belongs to "am",
+ *      and noon belongs to "pm", so on the same day,
+ *      12:00 am (midnight) < 12:01 am, and 12:00 pm (noon) < 12:01 pm
  *
- * <p>
  * The date or time format strings are not part of the definition of a
  * calendar, as those must be modifiable or overridable by the user at
- * runtime. Use {@link DateFormat}
- * to format dates.
+ * runtime. Use `DateFormat` to format dates.
  *
- * <p>
- * <code>Calendar</code> provides an API for field "rolling", where fields
+ * `Calendar` provides an API for field "rolling", where fields
  * can be incremented or decremented, but wrap around. For example, rolling the
- * month up in the date <code>December 12, <b>1996</b></code> results in
- * <code>January 12, <b>1996</b></code>.
+ * month up in the date December 12, **1996** results in
+ * January 12, **1996**.
  *
- * <p>
- * <code>Calendar</code> also provides a date arithmetic function for
+ * `Calendar` also provides a date arithmetic function for
  * adding the specified (signed) amount of time to a particular time field.
- * For example, subtracting 5 days from the date <code>September 12, 1996</code>
- * results in <code>September 7, 1996</code>.
+ * For example, subtracting 5 days from the date `September 12, 1996`
+ * results in `September 7, 1996`.
  *
- * <p><big><b>Supported range</b></big>
+ * ***Supported range***
  *
- * <p>The allowable range of <code>Calendar</code> has been
- * narrowed. <code>GregorianCalendar</code> used to attempt to support
- * the range of dates with millisecond values from
- * <code>Long.MIN_VALUE</code> to <code>Long.MAX_VALUE</code>.
- * The new <code>Calendar</code> protocol specifies the
+ * The allowable range of `Calendar` has been narrowed. `GregorianCalendar` used
+ * to attempt to support the range of dates with millisecond values from
+ * `Long.MIN_VALUE` to `Long.MAX_VALUE`. The new `Calendar` protocol specifies the
  * maximum range of supportable dates as those having Julian day numbers
- * of <code>-0x7F000000</code> to <code>+0x7F000000</code>. This
- * corresponds to years from ~5,800,000 BCE to ~5,800,000 CE. Programmers
- * should use the protected constants in <code>Calendar</code> to
- * specify an extremely early or extremely late date.</p>
+ * of `-0x7F000000` to `+0x7F000000`. This corresponds to years from ~5,800,000 BCE
+ * to ~5,800,000 CE. Programmers should use the protected constants in `Calendar` to
+ * specify an extremely early or extremely late date.
+ *
+ * <p>
+ * The Japanese calendar uses a combination of era name and year number.
+ * When an emperor of Japan abdicates and a new emperor ascends the throne,
+ * a new era is declared and year number is reset to 1. Even if the date of
+ * abdication is scheduled ahead of time, the new era name might not be
+ * announced until just before the date. In such case, ICU4C may include
+ * a start date of future era without actual era name, but not enabled
+ * by default. ICU4C users who want to test the behavior of the future era
+ * can enable the tentative era by:
+ * <ul>
+ * <li>Environment variable <code>ICU_ENABLE_TENTATIVE_ERA=true</code>.</li>
+ * </ul>
  *
  * @stable ICU 2.0
  */
@@ -903,7 +886,7 @@ public:
     /**
      * Sets the behavior for handling wall time repeating multiple times
      * at negative time zone offset transitions. For example, 1:30 AM on
-     * November 6, 2011 in US Eastern time (Ameirca/New_York) occurs twice;
+     * November 6, 2011 in US Eastern time (America/New_York) occurs twice;
      * 1:30 AM EDT, then 1:30 AM EST one hour later. When <code>UCAL_WALLTIME_FIRST</code>
      * is used, the wall time 1:30AM in this example will be interpreted as 1:30 AM EDT
      * (first occurrence). When <code>UCAL_WALLTIME_LAST</code> is used, it will be
@@ -1718,9 +1701,7 @@ protected:
     /**
      * Validate a single field of this calendar.  Subclasses should
      * override this method to validate any calendar-specific fields.
-     * Generic fields can be handled by
-     * <code>Calendar::validateField()</code>.
-     * @see #validateField(int, int, int, int&)
+     * Generic fields can be handled by `Calendar::validateField()`.
      * @internal
      */
     virtual void validateField(UCalendarDateFields field, UErrorCode &status);
@@ -2171,7 +2152,7 @@ private:
     TimeZone*   fZone;
 
     /**
-     * Option for rpeated wall time
+     * Option for repeated wall time
      * @see #setRepeatedWallTimeOption
      */
     UCalendarWallTimeOption fRepeatedWallTime;
@@ -2456,7 +2437,7 @@ private:
     BasicTimeZone* getBasicTimeZone() const;
 
     /**
-     * Find the previous zone transtion near the given time.
+     * Find the previous zone transition near the given time.
      * @param base The base time, inclusive
      * @param transitionTime Receives the result time
      * @param status The error status
index d03570509ecebbdfbeb1ca215bd33703785e7f8e..653434f54ca664ed5c9ac5f9f8a0f0f6aca7a926 100644 (file)
@@ -235,16 +235,16 @@ public:
      * Returns TRUE if "other" is the same as "this".
      *
      * The base class implementation returns TRUE if "other" has the same type/class as "this":
-     * <code>typeid(*this) == typeid(other)</code>.
+     * `typeid(*this) == typeid(other)`.
      *
      * Subclass implementations should do something like the following:
-     * <pre>
-     *   if (this == &other) { return TRUE; }
-     *   if (!Collator::operator==(other)) { return FALSE; }  // not the same class
      *
-     *   const MyCollator &o = (const MyCollator&)other;
-     *   (compare this vs. o's subclass fields)
-     * </pre>
+     *     if (this == &other) { return TRUE; }
+     *     if (!Collator::operator==(other)) { return FALSE; }  // not the same class
+     *
+     *     const MyCollator &o = (const MyCollator&)other;
+     *     (compare this vs. o's subclass fields)
+     *
      * @param other Collator object to be compared
      * @return TRUE if other is the same as this.
      * @stable ICU 2.0
index 7dc92f610062f4e6e3004999ad075de941e73278..9c1e9183f4657be2fd065db19b1045dd43e3220b 100644 (file)
@@ -30,30 +30,31 @@ U_NAMESPACE_BEGIN
 class PluralRules;
 
 /**
- * <p><strong>IMPORTANT:</strong> New users are strongly encouraged to see if
+ * **IMPORTANT:** New users are strongly encouraged to see if
  * numberformatter.h fits their use case.  Although not deprecated, this header
  * is provided for backwards compatibility only.
- * <hr/>
+ *
+ * -----------------------------------------------------------------------------
  *
  * The CompactDecimalFormat produces abbreviated numbers, suitable for display in
  * environments will limited real estate. For example, 'Hits: 1.2B' instead of
  * 'Hits: 1,200,000,000'. The format will be appropriate for the given language,
  * such as "1,2 Mrd." for German.
- * <p>
+ *
  * For numbers under 1000 trillion (under 10^15, such as 123,456,789,012,345),
  * the result will be short for supported languages. However, the result may
  * sometimes exceed 7 characters, such as when there are combining marks or thin
  * characters. In such cases, the visual width in fonts should still be short.
- * <p>
+ *
  * By default, there are 3 significant digits. After creation, if more than
  * three significant digits are set (with setMaximumSignificantDigits), or if a
  * fixed number of digits are set (with setMaximumIntegerDigits or
  * setMaximumFractionDigits), then result may be wider.
- * <p>
+ *
  * At this time, parsing is not supported, and will produce a U_UNSUPPORTED_ERROR.
  * Resetting the pattern prefixes or suffixes is not supported; the method calls
  * are ignored.
- * <p>
+ *
  * @stable ICU 51
  */
 class U_I18N_API CompactDecimalFormat : public DecimalFormat {
@@ -61,9 +62,9 @@ public:
 
      /**
       * Returns a compact decimal instance for specified locale.
-     * <p>
-     * <strong>NOTE:</strong> New users are strongly encouraged to use
-     * {@link NumberFormatter} instead of NumberFormat.
+      *
+      * **NOTE:** New users are strongly encouraged to use
+      * `number::NumberFormatter` instead of NumberFormat.
       * @param inLocale the given locale.
       * @param style whether to use short or long style.
       * @param status error code returned  here.
index 33c18b08f24c6639c237ed6c073029e8e42722f3..7741c608b0777e531b5e89dec87c3fe3a00b22ea 100644 (file)
@@ -2,7 +2,7 @@
 // License & terms of use: http://www.unicode.org/copyright.html
 /*
  *******************************************************************************
- * Copyright (C) 2009-2015, International Business Machines Corporation and         *
+ * Copyright (C) 2009-2015, International Business Machines Corporation and    *
  * others. All Rights Reserved.                                                *
  *******************************************************************************
  */
@@ -240,18 +240,27 @@ private:
     /*
      * The plural rule is used to format currency plural name,
      * for example: "3.00 US Dollars".
-     * If there are 3 currency signs in the currency patttern,
+     * If there are 3 currency signs in the currency pattern,
      * the 3 currency signs will be replaced by currency plural name.
      */
     PluralRules* fPluralRules;
 
     // locale
     Locale* fLocale;
+
+private:
+    /**
+    * An internal status variable used to indicate that the object is in an 'invalid' state.
+    * Used by copy constructor, the assignment operator and the clone method.
+    */
+    UErrorCode fInternalStatus;
 };
 
 
 inline UBool
-CurrencyPluralInfo::operator!=(const CurrencyPluralInfo& info) const {              return !operator==(info);                                                   }  
+CurrencyPluralInfo::operator!=(const CurrencyPluralInfo& info) const {
+    return !operator==(info);
+}  
 
 U_NAMESPACE_END
 
index ca90acb79183325f1e0eb8964b8dc63b1d66a988..ac3bfedd7b3e9cb4ab337e6fa6dbf172085d1fc8 100644 (file)
@@ -38,7 +38,7 @@ class U_I18N_API CurrencyUnit: public MeasureUnit {
  public:
     /**
      * Default constructor.  Initializes currency code to "XXX" (no currency).
-     * @draft ICU 60
+     * @stable ICU 60
      */
     CurrencyUnit();
 
@@ -59,17 +59,15 @@ class U_I18N_API CurrencyUnit: public MeasureUnit {
      */
     CurrencyUnit(const CurrencyUnit& other);
 
-#ifndef U_HIDE_DRAFT_API
     /**
      * Copy constructor from MeasureUnit. This constructor allows you to
      * restore a CurrencyUnit that was sliced to MeasureUnit.
      *
      * @param measureUnit The MeasureUnit to copy from.
      * @param ec Set to a failing value if the MeasureUnit is not a currency.
-     * @draft ICU 60
+     * @stable ICU 60
      */
     CurrencyUnit(const MeasureUnit& measureUnit, UErrorCode &ec);
-#endif  /* U_HIDE_DRAFT_API */
 
     /**
      * Assignment operator
index f8bcf54bfb351f864555d513a12833c9dcb9d2a4..81eb8f9b5255857f1f5d38f6de18baebec95a8e4 100644 (file)
@@ -43,13 +43,17 @@ U_NAMESPACE_BEGIN
 class TimeZone;
 class DateTimePatternGenerator;
 
-// explicit template instantiation. see digitlst.h
-// (When building DLLs for Windows this is required.)
-#if U_PF_WINDOWS <= U_PLATFORM && U_PLATFORM <= U_PF_CYGWIN
+/**
+ * \cond
+ * Export an explicit template instantiation. (See digitlst.h, datefmt.h, and others.)
+ * (When building DLLs for Windows this is required.)
+ */
+#if U_PF_WINDOWS <= U_PLATFORM && U_PLATFORM <= U_PF_CYGWIN && !defined(U_IN_DOXYGEN)
 template class U_I18N_API EnumSet<UDateFormatBooleanAttribute,
             0, 
             UDAT_BOOLEAN_ATTRIBUTE_COUNT>;
 #endif
+/** \endcond */
 
 /**
  * DateFormat is an abstract class for a family of classes that convert dates and
index 2f824cec3087f599c0528d118b3e83a7c0d63773..55e3d8a6b3b5ec8436d5f4f3488b493dfe481af5 100644 (file)
@@ -181,7 +181,6 @@ public:
      */
     DecimalFormatSymbols(const Locale& locale, UErrorCode& status);
 
-#ifndef U_HIDE_DRAFT_API
     /**
      * Creates a DecimalFormatSymbols instance for the given locale with digits and symbols
      * corresponding to the given NumberingSystem.
@@ -196,10 +195,9 @@ public:
      * @param ns        The numbering system.
      * @param status    Input/output parameter, set to success or
      *                  failure code upon return.
-     * @draft ICU 60
+     * @stable ICU 60
      */
     DecimalFormatSymbols(const Locale& locale, const NumberingSystem& ns, UErrorCode& status);
-#endif  /* U_HIDE_DRAFT_API */
 
     /**
      * Create a DecimalFormatSymbols object for the default locale.
@@ -406,7 +404,7 @@ public:
      * returning a const reference to one of the symbol strings.
      * The returned reference becomes invalid when the symbol is changed
      * or when the DecimalFormatSymbols are destroyed.
-     * Note: moved #ifndef U_HIDE_INTERNAL_API after this, since this is needed for inline in DecimalFormat
+     * Note: moved \#ifndef U_HIDE_INTERNAL_API after this, since this is needed for inline in DecimalFormat
      *
      * This is not currently stable API, but if you think it should be stable,
      * post a comment on the following ticket and the ICU team will take a look:
@@ -531,7 +529,7 @@ inline const UnicodeString& DecimalFormatSymbols::getConstDigitSymbol(int32_t di
     ENumberFormatSymbol key = static_cast<ENumberFormatSymbol>(kOneDigitSymbol + digit - 1);
     return fSymbols[key];
 }
-#endif
+#endif /* U_HIDE_INTERNAL_API */
 
 // -------------------------------------
 
index 3747f510f79c794f9a43b447702d0403892bce70..b3a5cc0495f144742e612a905dc9eac8ae9f67a7 100644 (file)
@@ -63,19 +63,22 @@ class NumberParserImpl;
 }
 }
 
-// explicit template instantiation. see digitlst.h
-// (When building DLLs for Windows this is required.)
-#if U_PF_WINDOWS <= U_PLATFORM && U_PLATFORM <= U_PF_CYGWIN
+/**
+ * \cond
+ * explicit template instantiation. see digitlst.h
+ * (When building DLLs for Windows this is required.)
+ */
+#if U_PF_WINDOWS <= U_PLATFORM && U_PLATFORM <= U_PF_CYGWIN && !defined(U_IN_DOXYGEN)
 template class U_I18N_API    EnumSet<UNumberFormatAttribute,
             UNUM_MAX_NONBOOLEAN_ATTRIBUTE+1,
             UNUM_LIMIT_BOOLEAN_ATTRIBUTE>;
 #endif
+/** \endcond */
 
 /**
- * <p><strong>IMPORTANT:</strong> New users are strongly encouraged to see if
+ * **IMPORTANT:** New users are strongly encouraged to see if
  * numberformatter.h fits their use case.  Although not deprecated, this header
  * is provided for backwards compatibility only.
- * <hr/>
  *
  * DecimalFormat is a concrete subclass of NumberFormat that formats decimal
  * numbers. It has a variety of features designed to make it possible to parse
@@ -85,13 +88,13 @@ template class U_I18N_API    EnumSet<UNumberFormatAttribute,
  * ("1.23E4"), percentages ("12%"), and currency amounts ("$123", "USD123",
  * "123 US dollars").  All of these flavors can be easily localized.
  *
- * <p>To obtain a NumberFormat for a specific locale (including the default
+ * To obtain a NumberFormat for a specific locale (including the default
  * locale) call one of NumberFormat's factory methods such as
  * createInstance(). Do not call the DecimalFormat constructors directly, unless
  * you know what you are doing, since the NumberFormat factory methods may
  * return subclasses other than DecimalFormat.
  *
- * <p><strong>Example Usage</strong>
+ * **Example Usage**
  *
  * \code
  *     // Normally we would have a GUI with a menu for this
@@ -135,11 +138,11 @@ template class U_I18N_API    EnumSet<UNumberFormatAttribute,
  *         }
  *     }
  * \endcode
- * <P>
- * Another example use createInstance(style)
- * <P>
- * <pre>
- * <strong>// Print out a number using the localized number, currency,
+ *
+ * **Another example use createInstance(style)**
+ *
+ * \code
+ * // Print out a number using the localized number, currency,
  * // percent, scientific, integer, iso currency, and plural currency
  * // format for each locale</strong>
  * Locale* locale = new Locale("en", "US");
@@ -150,11 +153,13 @@ template class U_I18N_API    EnumSet<UNumberFormatAttribute,
  * for (int j=NumberFormat::kNumberStyle;
  *      j<=NumberFormat::kPluralCurrencyStyle;
  *      ++j) {
- *     NumberFormat* format = NumberFormat::createInstance(locale, j, success);
+ *     NumberFormat* form = NumberFormat::createInstance(locale, j, success);
  *     str.remove();
  *     cout << "format result " << form->format(myNumber, str) << endl;
  *     format->parse(form->format(myNumber, str), fmtable, success);
- * }</pre>
+ *     delete form;
+ * }
+ * \endcode
  *
  *
  * <p><strong>Patterns</strong>
@@ -690,7 +695,7 @@ class U_I18N_API DecimalFormat : public NumberFormat {
      * locale.
      * <p>
      * <strong>NOTE:</strong> New users are strongly encouraged to use
-     * {@link NumberFormatter} instead of DecimalFormat.
+     * #icu::number::NumberFormatter instead of DecimalFormat.
      * @param status    Output param set to success/failure code. If the
      *                  pattern is invalid this will be set to a failure code.
      * @stable ICU 2.0
@@ -708,7 +713,7 @@ class U_I18N_API DecimalFormat : public NumberFormat {
      * locale.
      * <p>
      * <strong>NOTE:</strong> New users are strongly encouraged to use
-     * {@link NumberFormatter} instead of DecimalFormat.
+     * #icu::number::NumberFormatter instead of DecimalFormat.
      * @param pattern   A non-localized pattern string.
      * @param status    Output param set to success/failure code. If the
      *                  pattern is invalid this will be set to a failure code.
@@ -728,7 +733,7 @@ class U_I18N_API DecimalFormat : public NumberFormat {
      * a NumberFormat factory method.
      * <p>
      * <strong>NOTE:</strong> New users are strongly encouraged to use
-     * {@link NumberFormatter} instead of DecimalFormat.
+     * #icu::number::NumberFormatter instead of DecimalFormat.
      *
      * @param pattern           a non-localized pattern string
      * @param symbolsToAdopt    the set of symbols to be used.  The caller should not
@@ -782,7 +787,7 @@ class U_I18N_API DecimalFormat : public NumberFormat {
      * May return U_UNSUPPORTED_ERROR if this instance does not support
      * the specified attribute.
      * @param attr the attribute to set
-     * @param newvalue new value
+     * @param newValue new value
      * @param status the error type
      * @return *this - for chaining (example: format.setAttribute(...).setAttribute(...) )
      * @stable ICU 51
@@ -839,7 +844,7 @@ class U_I18N_API DecimalFormat : public NumberFormat {
      * a NumberFormat factory method.
      * <p>
      * <strong>NOTE:</strong> New users are strongly encouraged to use
-     * {@link NumberFormatter} instead of DecimalFormat.
+     * #icu::number::NumberFormatter instead of DecimalFormat.
      *
      * @param pattern           a non-localized pattern string
      * @param symbolsToAdopt    the set of symbols to be used.  The caller should not
@@ -864,7 +869,7 @@ class U_I18N_API DecimalFormat : public NumberFormat {
      * a NumberFormat factory method.
      * <p>
      * <strong>NOTE:</strong> New users are strongly encouraged to use
-     * {@link NumberFormatter} instead of DecimalFormat.
+     * #icu::number::NumberFormatter instead of DecimalFormat.
      *
      * @param pattern           a non-localized pattern string
      * @param symbols   the set of symbols to be used
@@ -986,6 +991,7 @@ class U_I18N_API DecimalFormat : public NumberFormat {
      *                  Result is appended to existing contents.
      * @param pos       On input: an alignment field, if desired.
      *                  On output: the offsets of the alignment field.
+     * @param status    Output param filled with success/failure status.
      * @return          Reference to 'appendTo' parameter.
      * @internal
      */
@@ -1031,6 +1037,7 @@ class U_I18N_API DecimalFormat : public NumberFormat {
      *                  Result is appended to existing contents.
      * @param pos       On input: an alignment field, if desired.
      *                  On output: the offsets of the alignment field.
+     * @param status    Output param filled with success/failure status.
      * @return          Reference to 'appendTo' parameter.
      * @internal
      */
@@ -1726,7 +1733,7 @@ class U_I18N_API DecimalFormat : public NumberFormat {
     virtual void setDecimalPatternMatchRequired(UBool newValue);
 
     /**
-     * {@icu} Returns whether to ignore exponents when parsing.
+     * Returns whether to ignore exponents when parsing.
      *
      * @see #setParseNoExponent
      * @internal This API is a technical preview. It may change in an upcoming release.
@@ -1734,7 +1741,7 @@ class U_I18N_API DecimalFormat : public NumberFormat {
     virtual UBool isParseNoExponent() const;
 
     /**
-     * {@icu} Specifies whether to stop parsing when an exponent separator is encountered. For
+     * Specifies whether to stop parsing when an exponent separator is encountered. For
      * example, parses "123E4" to 123 (with parse position 3) instead of 1230000 (with parse position
      * 5).
      *
@@ -1744,7 +1751,7 @@ class U_I18N_API DecimalFormat : public NumberFormat {
     virtual void setParseNoExponent(UBool value);
 
     /**
-     * {@icu} Returns whether parsing is sensitive to case (lowercase/uppercase).
+     * Returns whether parsing is sensitive to case (lowercase/uppercase).
      *
      * @see #setParseCaseSensitive
      * @internal This API is a technical preview. It may change in an upcoming release.
@@ -1752,7 +1759,7 @@ class U_I18N_API DecimalFormat : public NumberFormat {
     virtual UBool isParseCaseSensitive() const;
 
     /**
-     * {@icu} Whether to pay attention to case when parsing; default is to ignore case (perform
+     * Whether to pay attention to case when parsing; default is to ignore case (perform
      * case-folding). For example, "A" == "a" in case-insensitive but not case-sensitive mode.
      *
      * Currency symbols are never case-folded. For example, "us$1.00" will not parse in case-insensitive
@@ -1763,7 +1770,7 @@ class U_I18N_API DecimalFormat : public NumberFormat {
     virtual void setParseCaseSensitive(UBool value);
 
     /**
-     * {@icu} Returns whether truncation of high-order integer digits should result in an error.
+     * Returns whether truncation of high-order integer digits should result in an error.
      * By default, setMaximumIntegerDigits truncates high-order digits silently.
      *
      * @see setFormatFailIfMoreThanMaxDigits
@@ -1772,7 +1779,7 @@ class U_I18N_API DecimalFormat : public NumberFormat {
     virtual UBool isFormatFailIfMoreThanMaxDigits() const;
 
     /**
-     * {@icu} Sets whether truncation of high-order integer digits should result in an error.
+     * Sets whether truncation of high-order integer digits should result in an error.
      * By default, setMaximumIntegerDigits truncates high-order digits silently.
      *
      * @internal This API is a technical preview. It may change in an upcoming release.
@@ -2017,16 +2024,17 @@ class U_I18N_API DecimalFormat : public NumberFormat {
     virtual void setCurrency(const char16_t* theCurrency);
 
     /**
-     * Sets the <tt>Currency Context</tt> object used to display currency.
+     * Sets the `Currency Usage` object used to display currency.
      * This takes effect immediately, if this format is a
      * currency format.
-     * @param currencyContext new currency context object to use.
+     * @param newUsage new currency usage object to use.
+     * @param ec input-output error code
      * @stable ICU 54
      */
     void setCurrencyUsage(UCurrencyUsage newUsage, UErrorCode* ec);
 
     /**
-     * Returns the <tt>Currency Context</tt> object used to display currency
+     * Returns the `Currency Usage` object used to display currency
      * @stable ICU 54
      */
     UCurrencyUsage getCurrencyUsage() const;
@@ -2050,7 +2058,7 @@ class U_I18N_API DecimalFormat : public NumberFormat {
     void formatToDecimalQuantity(const Formattable& number, number::impl::DecimalQuantity& output,
                                  UErrorCode& status) const;
 
-#endif
+#endif  /* U_HIDE_INTERNAL_API */
 
 #ifndef U_HIDE_DRAFT_API
     /**
@@ -2072,7 +2080,6 @@ class U_I18N_API DecimalFormat : public NumberFormat {
      * FormattedNumber result = df->toNumberFormatter().formatDouble(123, status);
      * </pre>
      *
-     * @param output The variable into which to store the LocalizedNumberFormatter.
      * @return The output variable, for chaining.
      * @draft ICU 62
      */
index feb465e799740136a528b7f16ce159791d3f6017..26ccc64060f15afd215f039b3e22fc62c62adb81 100644 (file)
@@ -498,27 +498,23 @@ public:
 private:
     /**
      * Constructor.
-     * @stable ICU 3.8
      */
     DateTimePatternGenerator(UErrorCode & status);
 
     /**
      * Constructor.
-     * @stable ICU 3.8
      */
     DateTimePatternGenerator(const Locale& locale, UErrorCode & status);
 
     /**
      * Copy constructor.
      * @param other DateTimePatternGenerator to copy
-     * @stable ICU 3.8
      */
     DateTimePatternGenerator(const DateTimePatternGenerator& other);
 
     /**
      * Default assignment operator.
      * @param other DateTimePatternGenerator to copy
-     * @stable ICU 3.8
      */
     DateTimePatternGenerator& operator=(const DateTimePatternGenerator& other);
 
@@ -542,6 +538,11 @@ private:
 
     int32_t fAllowedHourFormats[7];  // Actually an array of AllowedHourFormat enum type, ending with UNKNOWN.
 
+    // Internal error code used for recording/reporting errors that occur during methods that do not
+    // have a UErrorCode parameter. For example: the Copy Constructor, or the ::clone() method.
+    // When this is set to an error the object is in an invalid state.
+    UErrorCode internalErrorCode;
+
     /* internal flags masks for adjustFieldTypes etc. */
     enum {
         kDTPGNoFlags = 0,
@@ -569,11 +570,10 @@ private:
 #endif  // U_HIDE_DRAFT_API
     void getAppendName(UDateTimePatternField field, UnicodeString& value);
     UnicodeString mapSkeletonMetacharacters(const UnicodeString& patternForm, int32_t* flags, UErrorCode& status);
-    int32_t getCanonicalIndex(const UnicodeString& field);
-    const UnicodeString* getBestRaw(DateTimeMatcher& source, int32_t includeMask, DistanceInfo* missingFields, const PtnSkeleton** specifiedSkeletonPtr = 0);
+    const UnicodeString* getBestRaw(DateTimeMatcher& source, int32_t includeMask, DistanceInfo* missingFields, UErrorCode& status, const PtnSkeleton** specifiedSkeletonPtr = 0);
     UnicodeString adjustFieldTypes(const UnicodeString& pattern, const PtnSkeleton* specifiedSkeleton, int32_t flags, UDateTimePatternMatchOptions options = UDATPG_MATCH_NO_OPTIONS);
-    UnicodeString getBestAppending(int32_t missingFields, int32_t flags, UDateTimePatternMatchOptions options = UDATPG_MATCH_NO_OPTIONS);
-    int32_t getTopBitNumber(int32_t foundMask);
+    UnicodeString getBestAppending(int32_t missingFields, int32_t flags, UErrorCode& status, UDateTimePatternMatchOptions options = UDATPG_MATCH_NO_OPTIONS);
+    int32_t getTopBitNumber(int32_t foundMask) const;
     void setAvailableFormat(const UnicodeString &key, UErrorCode& status);
     UBool isAvailableFormatSet(const UnicodeString &key) const;
     void copyHashtable(Hashtable *other, UErrorCode &status);
index 2359b61d46186ee5f42836e7f30cdee7dca93951..a06c23dc3bd53258a09d98cc23807e3d65b71aec 100644 (file)
@@ -658,7 +658,7 @@ public:
     /**
      *  Adopt, and set value from, a DecimalQuantity
      *     Internal Function, do not use.
-     *  @param dl the DecimalQuantity to be adopted
+     *  @param dq the DecimalQuantity to be adopted
      *  @internal
      */
     void adoptDecimalQuantity(number::impl::DecimalQuantity *dq);
index e3c27d024e09431321e426ee257afa81883ea2e8..d2773ebd051c490c0ebb53b3c413f2a4f49f79b4 100644 (file)
 #ifndef _GENDER
 #define _GENDER
 
+/**
+ * \file
+ * \brief C++ API: GenderInfo computes the gender of a list.
+ */
+
 #include "unicode/utypes.h"
 
 #if !UCONFIG_NO_FORMATTING
@@ -30,7 +35,7 @@ class GenderInfoTest;
 
 U_NAMESPACE_BEGIN
 
-// Forward Declaration
+/** \internal Forward Declaration  */
 void U_CALLCONV GenderInfo_initCache(UErrorCode &status);
 
 /**
diff --git a/source/i18n/unicode/listformatter.h b/source/i18n/unicode/listformatter.h
new file mode 100644 (file)
index 0000000..5e36cf7
--- /dev/null
@@ -0,0 +1,203 @@
+// © 2016 and later: Unicode, Inc. and others.
+// License & terms of use: http://www.unicode.org/copyright.html
+/*
+*******************************************************************************
+*
+*   Copyright (C) 2012-2016, International Business Machines
+*   Corporation and others.  All Rights Reserved.
+*
+*******************************************************************************
+*   file name:  listformatter.h
+*   encoding:   UTF-8
+*   tab size:   8 (not used)
+*   indentation:4
+*
+*   created on: 20120426
+*   created by: Umesh P. Nair
+*/
+
+#ifndef __LISTFORMATTER_H__
+#define __LISTFORMATTER_H__
+
+#include "unicode/utypes.h"
+
+#include "unicode/unistr.h"
+#include "unicode/locid.h"
+
+U_NAMESPACE_BEGIN
+
+class FieldPositionIterator;
+class FieldPositionHandler;
+
+/** @internal */
+class Hashtable;
+
+/** @internal */
+struct ListFormatInternal;
+
+/* The following can't be #ifndef U_HIDE_INTERNAL_API, needed for other .h file declarations */
+/**
+ * @internal
+ * \cond
+ */
+struct ListFormatData : public UMemory {
+    UnicodeString twoPattern;
+    UnicodeString startPattern;
+    UnicodeString middlePattern;
+    UnicodeString endPattern;
+
+  ListFormatData(const UnicodeString& two, const UnicodeString& start, const UnicodeString& middle, const UnicodeString& end) :
+      twoPattern(two), startPattern(start), middlePattern(middle), endPattern(end) {}
+};
+/** \endcond */
+
+
+/**
+ * \file
+ * \brief C++ API: API for formatting a list.
+ */
+
+
+/**
+ * An immutable class for formatting a list, using data from CLDR (or supplied
+ * separately).
+ *
+ * Example: Input data ["Alice", "Bob", "Charlie", "Delta"] will be formatted
+ * as "Alice, Bob, Charlie and Delta" in English.
+ *
+ * The ListFormatter class is not intended for public subclassing.
+ * @stable ICU 50
+ */
+class U_I18N_API ListFormatter : public UObject{
+
+  public:
+
+    /**
+     * Copy constructor.
+     * @stable ICU 52
+     */
+    ListFormatter(const ListFormatter&);
+
+    /**
+     * Assignment operator.
+     * @stable ICU 52
+     */
+    ListFormatter& operator=(const ListFormatter& other);
+
+    /**
+     * Creates a ListFormatter appropriate for the default locale.
+     *
+     * @param errorCode ICU error code, set if no data available for default locale.
+     * @return Pointer to a ListFormatter object for the default locale,
+     *     created from internal data derived from CLDR data.
+     * @stable ICU 50
+     */
+    static ListFormatter* createInstance(UErrorCode& errorCode);
+
+    /**
+     * Creates a ListFormatter appropriate for a locale.
+     *
+     * @param locale The locale.
+     * @param errorCode ICU error code, set if no data available for the given locale.
+     * @return A ListFormatter object created from internal data derived from
+     *     CLDR data.
+     * @stable ICU 50
+     */
+    static ListFormatter* createInstance(const Locale& locale, UErrorCode& errorCode);
+
+#ifndef U_HIDE_INTERNAL_API
+    /**
+     * Creates a ListFormatter appropriate for a locale and style.
+     *
+     * @param locale The locale.
+     * @param style the style, either "standard", "duration", or "duration-short"
+     * @param errorCode ICU error code, set if no data available for the given locale.
+     * @return A ListFormatter object created from internal data derived from
+     *     CLDR data.
+     * @internal
+     */
+    static ListFormatter* createInstance(const Locale& locale, const char* style, UErrorCode& errorCode);
+#endif  /* U_HIDE_INTERNAL_API */
+
+    /**
+     * Destructor.
+     *
+     * @stable ICU 50
+     */
+    virtual ~ListFormatter();
+
+
+    /**
+     * Formats a list of strings.
+     *
+     * @param items An array of strings to be combined and formatted.
+     * @param n_items Length of the array items.
+     * @param appendTo The string to which the result should be appended to.
+     * @param errorCode ICU error code, set if there is an error.
+     * @return Formatted string combining the elements of items, appended to appendTo.
+     * @stable ICU 50
+     */
+    UnicodeString& format(const UnicodeString items[], int32_t n_items,
+        UnicodeString& appendTo, UErrorCode& errorCode) const;
+
+#ifndef U_HIDE_DRAFT_API
+    /**
+     * Format a list of strings.
+     *
+     * @param items     An array of strings to be combined and formatted.
+     * @param n_items   Length of the array items.
+     * @param appendTo  The string to which the formatted result will be
+     *                  appended.
+     * @param posIter   On return, can be used to iterate over positions of
+     *                  fields generated by this format call. Field values are
+     *                  defined in UListFormatterField. Can be NULL.
+     * @param errorCode ICU error code returned here.
+     * @return          Formatted string combining the elements of items,
+     *                  appended to appendTo.
+     * @draft ICU 63
+     */
+    UnicodeString& format(const UnicodeString items[], int32_t n_items,
+        UnicodeString & appendTo, FieldPositionIterator* posIter,
+        UErrorCode& errorCode) const;
+#endif  /* U_HIDE_DRAFT_API */
+
+#ifndef U_HIDE_INTERNAL_API
+    /**
+      @internal for MeasureFormat
+    */
+    UnicodeString& format(
+            const UnicodeString items[],
+            int32_t n_items,
+            UnicodeString& appendTo,
+            int32_t index,
+            int32_t &offset,
+            UErrorCode& errorCode) const;
+    /**
+     * @internal constructor made public for testing.
+     */
+    ListFormatter(const ListFormatData &data, UErrorCode &errorCode);
+    /**
+     * @internal constructor made public for testing.
+     */
+    ListFormatter(const ListFormatInternal* listFormatterInternal);
+#endif  /* U_HIDE_INTERNAL_API */
+
+  private:
+    static void initializeHash(UErrorCode& errorCode);
+    static const ListFormatInternal* getListFormatInternal(const Locale& locale, const char *style, UErrorCode& errorCode);
+    struct ListPatternsSink;
+    static ListFormatInternal* loadListFormatInternal(const Locale& locale, const char* style, UErrorCode& errorCode);
+
+    UnicodeString& format_(
+        const UnicodeString items[], int32_t n_items, UnicodeString& appendTo,
+        int32_t index, int32_t &offset, FieldPositionHandler* handler, UErrorCode& errorCode) const;
+
+    ListFormatter();
+
+    ListFormatInternal* owned;
+    const ListFormatInternal* data;
+};
+
+U_NAMESPACE_END
+
+#endif
index 00f2d47a004a3c6416c60a38d6fb94557ea13ce1..3167a76c33a66862991c8bfeea91defeff63a98a 100644 (file)
@@ -104,7 +104,7 @@ class U_I18N_API MeasureFormat : public Format {
      * Constructor.
      * <p>
      * <strong>NOTE:</strong> New users are strongly encouraged to use
-     * {@link NumberFormatter} instead of NumberFormat.
+     * {@link icu::number::NumberFormatter} instead of NumberFormat.
      * @stable ICU 53
      */
     MeasureFormat(
@@ -114,7 +114,7 @@ class U_I18N_API MeasureFormat : public Format {
      * Constructor.
      * <p>
      * <strong>NOTE:</strong> New users are strongly encouraged to use
-     * {@link NumberFormatter} instead of NumberFormat.
+     * {@link icu::number::NumberFormatter} instead of NumberFormat.
      * @stable ICU 53
      */
     MeasureFormat(
@@ -202,7 +202,7 @@ class U_I18N_API MeasureFormat : public Format {
      * formatted string is 3.5 meters per second.
      * @param measure The measure object. In above example, 3.5 meters.
      * @param perUnit The per unit. In above example, it is
-     *        *MeasureUnit::createSecond(status).
+     *        `*%MeasureUnit::createSecond(status)`.
      * @param appendTo formatted string appended here.
      * @param pos the field position.
      * @param status the error.
@@ -223,7 +223,7 @@ class U_I18N_API MeasureFormat : public Format {
      * @param unit  The unit for which to get a display name.
      * @param status the error.
      * @return  The display name in the locale and width specified in
-     *          {@link MeasureFormat#getInstance}, or null if there is no display name available
+     *          the MeasureFormat constructor, or null if there is no display name available
      *          for the specified unit.
      *
      * @stable ICU 58
@@ -236,7 +236,7 @@ class U_I18N_API MeasureFormat : public Format {
      * locale.
      * <p>
      * <strong>NOTE:</strong> New users are strongly encouraged to use
-     * {@link NumberFormatter} instead of NumberFormat.
+     * {@link icu::number::NumberFormatter} instead of NumberFormat.
      * @param locale desired locale
      * @param ec input-output error code
      * @return a formatter object, or NULL upon error
@@ -250,7 +250,7 @@ class U_I18N_API MeasureFormat : public Format {
      * locale.
      * <p>
      * <strong>NOTE:</strong> New users are strongly encouraged to use
-     * {@link NumberFormatter} instead of NumberFormat.
+     * {@link icu::number::NumberFormatter} instead of NumberFormat.
      * @param ec input-output error code
      * @return a formatter object, or NULL upon error
      * @stable ICU 3.0
@@ -348,7 +348,7 @@ class U_I18N_API MeasureFormat : public Format {
     const MeasureFormatCacheData *cache;
     const SharedNumberFormat *numberFormat;
     const SharedPluralRules *pluralRules;
-    UMeasureFormatWidth width;    
+    UMeasureFormatWidth fWidth;    
 
     // Declared outside of MeasureFormatSharedData because ListFormatter
     // objects are relatively cheap to copy; therefore, they don't need to be
index a92d24b1e2a09abe7f5e0db3f91c141fb0c97e68..fac18f7b8e53e51e7357bc797829b8e34849bf6b 100644 (file)
@@ -368,6 +368,26 @@ class U_I18N_API MeasureUnit: public UObject {
      */
     static MeasureUnit *createPartPerMillion(UErrorCode &status);
 
+#ifndef U_HIDE_DRAFT_API
+    /**
+     * Returns unit of concentr: percent.
+     * Caller owns returned value and must free it.
+     * @param status ICU error code.
+     * @draft ICU 63
+     */
+    static MeasureUnit *createPercent(UErrorCode &status);
+#endif /* U_HIDE_DRAFT_API */
+
+#ifndef U_HIDE_DRAFT_API
+    /**
+     * Returns unit of concentr: permille.
+     * Caller owns returned value and must free it.
+     * @param status ICU error code.
+     * @draft ICU 63
+     */
+    static MeasureUnit *createPermille(UErrorCode &status);
+#endif /* U_HIDE_DRAFT_API */
+
     /**
      * Returns unit of consumption: liter-per-100kilometers.
      * Caller owns returned value and must free it.
@@ -464,6 +484,16 @@ class U_I18N_API MeasureUnit: public UObject {
      */
     static MeasureUnit *createMegabyte(UErrorCode &status);
 
+#ifndef U_HIDE_DRAFT_API
+    /**
+     * Returns unit of digital: petabyte.
+     * Caller owns returned value and must free it.
+     * @param status ICU error code.
+     * @draft ICU 63
+     */
+    static MeasureUnit *createPetabyte(UErrorCode &status);
+#endif /* U_HIDE_DRAFT_API */
+
     /**
      * Returns unit of digital: terabit.
      * Caller owns returned value and must free it.
@@ -984,6 +1014,16 @@ class U_I18N_API MeasureUnit: public UObject {
      */
     static MeasureUnit *createWatt(UErrorCode &status);
 
+#ifndef U_HIDE_DRAFT_API
+    /**
+     * Returns unit of pressure: atmosphere.
+     * Caller owns returned value and must free it.
+     * @param status ICU error code.
+     * @draft ICU 63
+     */
+    static MeasureUnit *createAtmosphere(UErrorCode &status);
+#endif /* U_HIDE_DRAFT_API */
+
     /**
      * Returns unit of pressure: hectopascal.
      * Caller owns returned value and must free it.
index fef80107747bf8473f3dbccac331b21cff298ddc..074d93354000ef28d1e69ba5cb928cf770b9618d 100644 (file)
@@ -124,7 +124,7 @@ class NumberFormat;
  * argNumber = '0' | ('1'..'9' ('0'..'9')*)
  *
  * argType = "number" | "date" | "time" | "spellout" | "ordinal" | "duration"
- * argStyle = "short" | "medium" | "long" | "full" | "integer" | "currency" | "percent" | argStyleText
+ * argStyle = "short" | "medium" | "long" | "full" | "integer" | "currency" | "percent" | argStyleText | "::" argSkeletonText
  * </pre>
  *
  * <ul>
@@ -166,7 +166,7 @@ class NumberFormat;
  *       <td colspan=2><i>(none)</i>
  *       <td><code>null</code>
  *    <tr>
- *       <td rowspan=5><code>number</code>
+ *       <td rowspan=6><code>number</code>
  *       <td><i>(none)</i>
  *       <td><code>NumberFormat.createInstance(getLocale(), status)</code>
  *    <tr>
@@ -182,6 +182,9 @@ class NumberFormat;
  *       <td><i>argStyleText</i>
  *       <td><code>new DecimalFormat(argStyleText, new DecimalFormatSymbols(getLocale(), status), status)</code>
  *    <tr>
+ *       <td><i>argSkeletonText</i>
+ *       <td><code>NumberFormatter::forSkeleton(argSkeletonText, status).locale(getLocale()).toFormat(status)</code>
+ *    <tr>
  *       <td rowspan=6><code>date</code>
  *       <td><i>(none)</i>
  *       <td><code>DateFormat.createDateInstance(kDefault, getLocale(), status)</code>
@@ -199,7 +202,7 @@ class NumberFormat;
  *       <td><code>DateFormat.createDateInstance(kFull, getLocale(), status)</code>
  *    <tr>
  *       <td><i>argStyleText</i>
- *       <td><code>new SimpleDateFormat(argStyleText, getLocale(), status)
+ *       <td><code>new SimpleDateFormat(argStyleText, getLocale(), status)</code>
  *    <tr>
  *       <td rowspan=6><code>time</code>
  *       <td><i>(none)</i>
@@ -218,7 +221,7 @@ class NumberFormat;
  *       <td><code>DateFormat.createTimeInstance(kFull, getLocale(), status)</code>
  *    <tr>
  *       <td><i>argStyleText</i>
- *       <td><code>new SimpleDateFormat(argStyleText, getLocale(), status)
+ *       <td><code>new SimpleDateFormat(argStyleText, getLocale(), status)</code>
  *    <tr>
  *       <td><code>spellout</code>
  *       <td><i>argStyleText (optional)</i>
index 3ab08319f73bc7ce93cfa0f58a06b9e2ed31f162..469949a2878eb4ee567871ff08a3960b6673f899 100644 (file)
@@ -144,11 +144,31 @@ class MultiplierFormatHandler;
 class CurrencySymbols;
 class GeneratorHelpers;
 class DecNum;
+class NumberRangeFormatterImpl;
+struct RangeMacroProps;
+
+/**
+ * Used for NumberRangeFormatter and implemented in numrange_fluent.cpp.
+ * Declared here so it can be friended.
+ *
+ * @internal
+ */
+void touchRangeLocales(impl::RangeMacroProps& macros);
 
 } // namespace impl
 
-// Reserve extra names in case they are added as classes in the future:
+/**
+ * Extra name reserved in case it is needed in the future.
+ *
+ * @draft ICU 63
+ */
 typedef Notation CompactNotation;
+
+/**
+ * Extra name reserved in case it is needed in the future.
+ *
+ * @draft ICU 63
+ */
 typedef Notation SimpleNotation;
 
 /**
@@ -308,10 +328,15 @@ class U_I18N_API Notation : public UMemory {
 
     union NotationUnion {
         // For NTN_SCIENTIFIC
+        /** @internal */
         struct ScientificSettings {
+            /** @internal */
             int8_t fEngineeringInterval;
+            /** @internal */
             bool fRequireMinInt;
+            /** @internal */
             impl::digits_t fMinExponentDigits;
+            /** @internal */
             UNumberSignDisplay fExponentSignDisplay;
         } scientific;
 
@@ -407,15 +432,39 @@ class U_I18N_API ScientificNotation : public Notation {
     friend class impl::NumberPropertyMapper;
 };
 
-// Reserve extra names in case they are added as classes in the future:
+/**
+ * Extra name reserved in case it is needed in the future.
+ *
+ * @draft ICU 63
+ */
 typedef Precision SignificantDigitsPrecision;
 
 // Typedefs for ICU 60/61 compatibility.
 // These will be removed in ICU 64.
 // See http://bugs.icu-project.org/trac/ticket/13746
+
+/**
+ * This will be removed in ICU 64.  See ICU-13746.
+ * @deprecated ICU 63
+ */
 typedef Precision Rounder;
+
+/**
+ * This will be removed in ICU 64.  See ICU-13746.
+ * @deprecated ICU 63
+ */
 typedef FractionPrecision FractionRounder;
+
+/**
+ * This will be removed in ICU 64.  See ICU-13746.
+ * @deprecated ICU 63
+ */
 typedef IncrementPrecision IncrementRounder;
+
+/**
+ * This will be removed in ICU 64.  See ICU-13746.
+ * @deprecated ICU 63
+ */
 typedef CurrencyPrecision CurrencyRounder;
 
 /**
@@ -672,16 +721,25 @@ class U_I18N_API Precision : public UMemory {
     } fType;
 
     union PrecisionUnion {
+        /** @internal */
         struct FractionSignificantSettings {
             // For RND_FRACTION, RND_SIGNIFICANT, and RND_FRACTION_SIGNIFICANT
+            /** @internal */
             impl::digits_t fMinFrac;
+            /** @internal */
             impl::digits_t fMaxFrac;
+            /** @internal */
             impl::digits_t fMinSig;
+            /** @internal */
             impl::digits_t fMaxSig;
         } fracSig;
+        /** @internal */
         struct IncrementSettings {
+            /** @internal */
             double fIncrement;
+            /** @internal */
             impl::digits_t fMinFrac;
+            /** @internal */
             impl::digits_t fMaxFrac;
         } increment; // For RND_INCREMENT
         UCurrencyUsage currencyUsage; // For RND_CURRENCY
@@ -1205,7 +1263,7 @@ class U_I18N_API Grouper : public UMemory {
   public:
 #ifndef U_HIDE_INTERNAL_API
     /** @internal */
-    static Grouper forStrategy(UGroupingStrategy grouping);
+    static Grouper forStrategy(UNumberGroupingStrategy grouping);
 
     /**
      * Resolve the values in Properties to a Grouper object.
@@ -1216,7 +1274,7 @@ class U_I18N_API Grouper : public UMemory {
     // Future: static Grouper forProperties(DecimalFormatProperties& properties);
 
     /** @internal */
-    Grouper(int16_t grouping1, int16_t grouping2, int16_t minGrouping, UGroupingStrategy strategy)
+    Grouper(int16_t grouping1, int16_t grouping2, int16_t minGrouping, UNumberGroupingStrategy strategy)
             : fGrouping1(grouping1),
               fGrouping2(grouping2),
               fMinGrouping(minGrouping),
@@ -1251,10 +1309,10 @@ class U_I18N_API Grouper : public UMemory {
     int16_t fMinGrouping;
 
     /**
-     * The UGroupingStrategy that was used to create this Grouper, or UNUM_GROUPING_COUNT if this
-     * was not created from a UGroupingStrategy.
+     * The UNumberGroupingStrategy that was used to create this Grouper, or UNUM_GROUPING_COUNT if this
+     * was not created from a UNumberGroupingStrategy.
      */
-    UGroupingStrategy fStrategy;
+    UNumberGroupingStrategy fStrategy;
 
     Grouper() : fGrouping1(-3) {};
 
@@ -1423,7 +1481,8 @@ struct U_I18N_API MacroProps : public UMemory {
 
 /**
  * An abstract base class for specifying settings related to number formatting. This class is implemented by
- * {@link UnlocalizedNumberFormatter} and {@link LocalizedNumberFormatter}.
+ * {@link UnlocalizedNumberFormatter} and {@link LocalizedNumberFormatter}. This class is not intended for
+ * public subclassing.
  */
 template<typename Derived>
 class U_I18N_API NumberFormatterSettings {
@@ -1710,7 +1769,7 @@ class U_I18N_API NumberFormatterSettings {
      * The exact grouping widths will be chosen based on the locale.
      *
      * <p>
-     * Pass this method an element from the {@link UGroupingStrategy} enum. For example:
+     * Pass this method an element from the {@link UNumberGroupingStrategy} enum. For example:
      *
      * <pre>
      * NumberFormatter::with().grouping(UNUM_GROUPING_MIN2)
@@ -1724,7 +1783,7 @@ class U_I18N_API NumberFormatterSettings {
      * @return The fluent chain.
      * @draft ICU 61
      */
-    Derived grouping(UGroupingStrategy strategy) const &;
+    Derived grouping(UNumberGroupingStrategy strategy) const &;
 
     /**
      * Overload of grouping() for use on an rvalue reference.
@@ -1733,10 +1792,9 @@ class U_I18N_API NumberFormatterSettings {
      *            The grouping strategy to use.
      * @return The fluent chain.
      * @see #grouping
-     * @provisional This API might change or be removed in a future release.
      * @draft ICU 62
      */
-    Derived grouping(UGroupingStrategy strategy) &&;
+    Derived grouping(UNumberGroupingStrategy strategy) &&;
 
     /**
      * Specifies the minimum and maximum number of digits to render before the decimal mark.
@@ -1748,7 +1806,7 @@ class U_I18N_API NumberFormatterSettings {
      * </ul>
      *
      * <p>
-     * Pass this method the return value of {@link IntegerWidth#zeroFillTo(int)}. For example:
+     * Pass this method the return value of {@link IntegerWidth#zeroFillTo}. For example:
      *
      * <pre>
      * NumberFormatter::with().integerWidth(IntegerWidth::zeroFillTo(2))
@@ -2099,15 +2157,18 @@ class U_I18N_API NumberFormatterSettings {
 
     // NOTE: Uses default copy and move constructors.
 
-  protected:
+  private:
     impl::MacroProps fMacros;
 
-  private:
     // Don't construct me directly!  Use (Un)LocalizedNumberFormatter.
     NumberFormatterSettings() = default;
 
     friend class LocalizedNumberFormatter;
     friend class UnlocalizedNumberFormatter;
+
+    // Give NumberRangeFormatter access to the MacroProps
+    friend void impl::touchRangeLocales(impl::RangeMacroProps& macros);
+    friend class impl::NumberRangeFormatterImpl;
 };
 
 /**
@@ -2124,13 +2185,6 @@ class U_I18N_API UnlocalizedNumberFormatter
      * Associate the given locale with the number formatter. The locale is used for picking the appropriate symbols,
      * formats, and other data for number display.
      *
-     * <p>
-     * To use the Java default locale, call Locale::getDefault():
-     *
-     * <pre>
-     * NumberFormatter::with(). ... .locale(Locale::getDefault())
-     * </pre>
-     *
      * @param locale
      *            The locale to use when loading data for number formatting.
      * @return The fluent chain.
@@ -2156,7 +2210,6 @@ class U_I18N_API UnlocalizedNumberFormatter
      */
     UnlocalizedNumberFormatter() = default;
 
-    // Make default copy constructor call the NumberFormatterSettings copy constructor.
     /**
      * Returns a copy of this UnlocalizedNumberFormatter.
      * @draft ICU 60
@@ -2271,7 +2324,7 @@ class U_I18N_API LocalizedNumberFormatter
      */
     int32_t getCallCount() const;
 
-#endif
+#endif  /* U_HIDE_INTERNAL_API */
 
     /**
      * Creates a representation of this LocalizedNumberFormat as an icu::Format, enabling the use
@@ -2295,7 +2348,6 @@ class U_I18N_API LocalizedNumberFormatter
      */
     LocalizedNumberFormatter() = default;
 
-    // Make default copy constructor call the NumberFormatterSettings copy constructor.
     /**
      * Returns a copy of this LocalizedNumberFormatter.
      * @draft ICU 60
@@ -2333,11 +2385,12 @@ class U_I18N_API LocalizedNumberFormatter
      *
      * @param results
      *            The results object. This method will mutate it to save the results.
+     * @param status
      * @internal
      */
     void formatImpl(impl::UFormattedNumberData *results, UErrorCode &status) const;
 
-#endif
+#endif  /* U_HIDE_INTERNAL_API */
 
     /**
      * Destruct this LocalizedNumberFormatter, cleaning up any memory it might own.
@@ -2359,6 +2412,8 @@ class U_I18N_API LocalizedNumberFormatter
 
     LocalizedNumberFormatter(impl::MacroProps &&macros, const Locale &locale);
 
+    void clear();
+
     void lnfMoveHelper(LocalizedNumberFormatter&& src);
 
     /**
@@ -2430,7 +2485,7 @@ class U_I18N_API FormattedNumber : public UMemory {
      * @draft ICU 62
      * @see Appendable
      */
-    Appendable &appendTo(Appendable &appendable, UErrorCode& status);
+    Appendable &appendTo(Appendable &appendable, UErrorCode& status) const;
 
 #ifndef U_HIDE_DEPRECATED_API
     /**
@@ -2457,9 +2512,9 @@ class U_I18N_API FormattedNumber : public UMemory {
 #endif  /* U_HIDE_DEPRECATED_API */
 
     /**
-     * Determines the start and end indices of the next occurrence of the given <em>field</em> in the
-     * output string. This allows you to determine the locations of, for example, the integer part,
-     * fraction part, or symbols.
+     * Determines the start (inclusive) and end (exclusive) indices of the next occurrence of the given
+     * <em>field</em> in the output string. This allows you to determine the locations of, for example,
+     * the integer part, fraction part, or symbols.
      *
      * If a field occurs just once, calling this method will find that occurrence and return it. If a
      * field occurs multiple times, this method may be called repeatedly with the following pattern:
@@ -2478,7 +2533,7 @@ class U_I18N_API FormattedNumber : public UMemory {
      *            Input+output variable. On input, the "field" property determines which field to look
      *            up, and the "beginIndex" and "endIndex" properties determine where to begin the search.
      *            On output, the "beginIndex" is set to the beginning of the first occurrence of the
-     *            field with either begin or end indices after the input indices, "endIndex" is set to
+     *            field with either begin or end indices after the input indices; "endIndex" is set to
      *            the end of that occurrence of the field (exclusive index). If a field position is not
      *            found, the method returns FALSE and the FieldPosition may or may not be changed.
      * @param status
@@ -2537,7 +2592,7 @@ class U_I18N_API FormattedNumber : public UMemory {
      */
     void getAllFieldPositionsImpl(FieldPositionIteratorHandler& fpih, UErrorCode& status) const;
 
-#endif
+#endif  /* U_HIDE_INTERNAL_API */
 
     /**
      * Copying not supported; use move constructor instead.
diff --git a/source/i18n/unicode/numberrangeformatter.h b/source/i18n/unicode/numberrangeformatter.h
new file mode 100644 (file)
index 0000000..5054683
--- /dev/null
@@ -0,0 +1,866 @@
+// © 2018 and later: Unicode, Inc. and others.
+// License & terms of use: http://www.unicode.org/copyright.html
+
+#if !UCONFIG_NO_FORMATTING
+#ifndef __NUMBERRANGEFORMATTER_H__
+#define __NUMBERRANGEFORMATTER_H__
+
+#include <atomic>
+#include "unicode/appendable.h"
+#include "unicode/fieldpos.h"
+#include "unicode/fpositer.h"
+#include "unicode/numberformatter.h"
+
+#ifndef U_HIDE_DRAFT_API
+
+/**
+ * \file
+ * \brief C++ API: Library for localized formatting of number, currency, and unit ranges.
+ *
+ * The main entrypoint to the formatting of ranges of numbers, including currencies and other units of measurement.
+ * <p>
+ * Usage example:
+ * <p>
+ * <pre>
+ * NumberRangeFormatter::with()
+ *     .identityFallback(UNUM_IDENTITY_FALLBACK_APPROXIMATELY_OR_SINGLE_VALUE)
+ *     .numberFormatterFirst(NumberFormatter::with().adoptUnit(MeasureUnit::createMeter()))
+ *     .numberFormatterSecond(NumberFormatter::with().adoptUnit(MeasureUnit::createKilometer()))
+ *     .locale("en-GB")
+ *     .formatRange(750, 1.2, status)
+ *     .toString(status);
+ * // => "750 m - 1.2 km"
+ * </pre>
+ * <p>
+ * Like NumberFormatter, NumberRangeFormatter instances are immutable and thread-safe. This API is based on the
+ * <em>fluent</em> design pattern popularized by libraries such as Google's Guava.
+ *
+ * @author Shane Carr
+ */
+
+
+/**
+ * Defines how to merge fields that are identical across the range sign.
+ *
+ * @draft ICU 63
+ */
+typedef enum UNumberRangeCollapse {
+    /**
+     * Use locale data and heuristics to determine how much of the string to collapse. Could end up collapsing none,
+     * some, or all repeated pieces in a locale-sensitive way.
+     *
+     * The heuristics used for this option are subject to change over time.
+     *
+     * @draft ICU 63
+     */
+    UNUM_RANGE_COLLAPSE_AUTO,
+
+    /**
+     * Do not collapse any part of the number. Example: "3.2 thousand kilograms – 5.3 thousand kilograms"
+     *
+     * @draft ICU 63
+     */
+    UNUM_RANGE_COLLAPSE_NONE,
+
+    /**
+     * Collapse the unit part of the number, but not the notation, if present. Example: "3.2 thousand – 5.3 thousand
+     * kilograms"
+     *
+     * @draft ICU 63
+     */
+    UNUM_RANGE_COLLAPSE_UNIT,
+
+    /**
+     * Collapse any field that is equal across the range sign. May introduce ambiguity on the magnitude of the
+     * number. Example: "3.2 – 5.3 thousand kilograms"
+     *
+     * @draft ICU 63
+     */
+    UNUM_RANGE_COLLAPSE_ALL
+} UNumberRangeCollapse;
+
+/**
+ * Defines the behavior when the two numbers in the range are identical after rounding. To programmatically detect
+ * when the identity fallback is used, compare the lower and upper BigDecimals via FormattedNumber.
+ *
+ * @draft ICU 63
+ * @see NumberRangeFormatter
+ */
+typedef enum UNumberRangeIdentityFallback {
+    /**
+     * Show the number as a single value rather than a range. Example: "$5"
+     *
+     * @draft ICU 63
+     */
+    UNUM_IDENTITY_FALLBACK_SINGLE_VALUE,
+
+    /**
+     * Show the number using a locale-sensitive approximation pattern. If the numbers were the same before rounding,
+     * show the single value. Example: "~$5" or "$5"
+     *
+     * @draft ICU 63
+     */
+    UNUM_IDENTITY_FALLBACK_APPROXIMATELY_OR_SINGLE_VALUE,
+
+    /**
+     * Show the number using a locale-sensitive approximation pattern. Use the range pattern always, even if the
+     * inputs are the same. Example: "~$5"
+     *
+     * @draft ICU 63
+     */
+    UNUM_IDENTITY_FALLBACK_APPROXIMATELY,
+
+    /**
+     * Show the number as the range of two equal values. Use the range pattern always, even if the inputs are the
+     * same. Example (with RangeCollapse.NONE): "$5 – $5"
+     *
+     * @draft ICU 63
+     */
+    UNUM_IDENTITY_FALLBACK_RANGE
+} UNumberRangeIdentityFallback;
+
+/**
+ * Used in the result class FormattedNumberRange to indicate to the user whether the numbers formatted in the range
+ * were equal or not, and whether or not the identity fallback was applied.
+ *
+ * @draft ICU 63
+ * @see NumberRangeFormatter
+ */
+typedef enum UNumberRangeIdentityResult {
+    /**
+     * Used to indicate that the two numbers in the range were equal, even before any rounding rules were applied.
+     *
+     * @draft ICU 63
+     * @see NumberRangeFormatter
+     */
+    UNUM_IDENTITY_RESULT_EQUAL_BEFORE_ROUNDING,
+
+    /**
+     * Used to indicate that the two numbers in the range were equal, but only after rounding rules were applied.
+     *
+     * @draft ICU 63
+     * @see NumberRangeFormatter
+     */
+    UNUM_IDENTITY_RESULT_EQUAL_AFTER_ROUNDING,
+
+    /**
+     * Used to indicate that the two numbers in the range were not equal, even after rounding rules were applied.
+     *
+     * @draft ICU 63
+     * @see NumberRangeFormatter
+     */
+    UNUM_IDENTITY_RESULT_NOT_EQUAL,
+
+#ifndef U_HIDE_INTERNAL_API
+    /**
+     * The number of entries in this enum.
+     * @internal
+     */
+    UNUM_IDENTITY_RESULT_COUNT
+#endif
+
+} UNumberRangeIdentityResult;
+
+U_NAMESPACE_BEGIN
+
+namespace number {  // icu::number
+
+// Forward declarations:
+class UnlocalizedNumberRangeFormatter;
+class LocalizedNumberRangeFormatter;
+class FormattedNumberRange;
+
+namespace impl {
+
+// Forward declarations:
+struct RangeMacroProps;
+class DecimalQuantity;
+struct UFormattedNumberRangeData;
+class NumberRangeFormatterImpl;
+
+} // namespace impl
+
+/**
+ * \cond
+ * Export an explicit template instantiation. See datefmt.h
+ * (When building DLLs for Windows this is required.)
+ */
+#if U_PF_WINDOWS <= U_PLATFORM && U_PLATFORM <= U_PF_CYGWIN && !defined(U_IN_DOXYGEN)
+template struct U_I18N_API std::atomic<impl::NumberRangeFormatterImpl*>;
+#endif
+/** \endcond */
+
+// Other helper classes would go here, but there are none.
+
+namespace impl {  // icu::number::impl
+
+// Do not enclose entire MacroProps with #ifndef U_HIDE_INTERNAL_API, needed for a protected field
+/** @internal */
+struct U_I18N_API RangeMacroProps : public UMemory {
+    /** @internal */
+    UnlocalizedNumberFormatter formatter1; // = NumberFormatter::with();
+
+    /** @internal */
+    UnlocalizedNumberFormatter formatter2; // = NumberFormatter::with();
+
+    /** @internal */
+    bool singleFormatter = true;
+
+    /** @internal */
+    UNumberRangeCollapse collapse = UNUM_RANGE_COLLAPSE_AUTO;
+
+    /** @internal */
+    UNumberRangeIdentityFallback identityFallback = UNUM_IDENTITY_FALLBACK_APPROXIMATELY;
+
+    /** @internal */
+    Locale locale;
+
+    // NOTE: Uses default copy and move constructors.
+
+    /**
+     * Check all members for errors.
+     * @internal
+     */
+    bool copyErrorTo(UErrorCode &status) const {
+        return formatter1.copyErrorTo(status) || formatter2.copyErrorTo(status);
+    }
+};
+
+} // namespace impl
+
+/**
+ * An abstract base class for specifying settings related to number formatting. This class is implemented by
+ * {@link UnlocalizedNumberRangeFormatter} and {@link LocalizedNumberRangeFormatter}. This class is not intended for
+ * public subclassing.
+ */
+template<typename Derived>
+class U_I18N_API NumberRangeFormatterSettings {
+  public:
+    /**
+     * Sets the NumberFormatter instance to use for the numbers in the range. The same formatter is applied to both
+     * sides of the range.
+     * <p>
+     * The NumberFormatter instances must not have a locale applied yet; the locale specified on the
+     * NumberRangeFormatter will be used.
+     *
+     * @param formatter
+     *            The formatter to use for both numbers in the range.
+     * @return The fluent chain.
+     * @draft ICU 63
+     */
+    Derived numberFormatterBoth(const UnlocalizedNumberFormatter &formatter) const &;
+
+    /**
+     * Overload of numberFormatterBoth() for use on an rvalue reference.
+     *
+     * @param formatter
+     *            The formatter to use for both numbers in the range.
+     * @return The fluent chain.
+     * @see #numberFormatterBoth
+     * @draft ICU 63
+     */
+    Derived numberFormatterBoth(const UnlocalizedNumberFormatter &formatter) &&;
+
+    /**
+     * Overload of numberFormatterBoth() for use on an rvalue reference.
+     *
+     * @param formatter
+     *            The formatter to use for both numbers in the range.
+     * @return The fluent chain.
+     * @see #numberFormatterBoth
+     * @draft ICU 63
+     */
+    Derived numberFormatterBoth(UnlocalizedNumberFormatter &&formatter) const &;
+
+    /**
+     * Overload of numberFormatterBoth() for use on an rvalue reference.
+     *
+     * @param formatter
+     *            The formatter to use for both numbers in the range.
+     * @return The fluent chain.
+     * @see #numberFormatterBoth
+     * @draft ICU 63
+     */
+    Derived numberFormatterBoth(UnlocalizedNumberFormatter &&formatter) &&;
+
+    /**
+     * Sets the NumberFormatter instance to use for the first number in the range.
+     * <p>
+     * The NumberFormatter instances must not have a locale applied yet; the locale specified on the
+     * NumberRangeFormatter will be used.
+     *
+     * @param formatterFirst
+     *            The formatter to use for the first number in the range.
+     * @return The fluent chain.
+     * @draft ICU 63
+     */
+    Derived numberFormatterFirst(const UnlocalizedNumberFormatter &formatterFirst) const &;
+
+    /**
+     * Overload of numberFormatterFirst() for use on an rvalue reference.
+     *
+     * @param formatterFirst
+     *            The formatter to use for the first number in the range.
+     * @return The fluent chain.
+     * @see #numberFormatterFirst
+     * @draft ICU 63
+     */
+    Derived numberFormatterFirst(const UnlocalizedNumberFormatter &formatterFirst) &&;
+
+    /**
+     * Overload of numberFormatterFirst() for use on an rvalue reference.
+     *
+     * @param formatterFirst
+     *            The formatter to use for the first number in the range.
+     * @return The fluent chain.
+     * @see #numberFormatterFirst
+     * @draft ICU 63
+     */
+    Derived numberFormatterFirst(UnlocalizedNumberFormatter &&formatterFirst) const &;
+
+    /**
+     * Overload of numberFormatterFirst() for use on an rvalue reference.
+     *
+     * @param formatterFirst
+     *            The formatter to use for the first number in the range.
+     * @return The fluent chain.
+     * @see #numberFormatterFirst
+     * @draft ICU 63
+     */
+    Derived numberFormatterFirst(UnlocalizedNumberFormatter &&formatterFirst) &&;
+
+    /**
+     * Sets the NumberFormatter instance to use for the second number in the range.
+     * <p>
+     * The NumberFormatter instances must not have a locale applied yet; the locale specified on the
+     * NumberRangeFormatter will be used.
+     *
+     * @param formatterSecond
+     *            The formatter to use for the second number in the range.
+     * @return The fluent chain.
+     * @draft ICU 63
+     */
+    Derived numberFormatterSecond(const UnlocalizedNumberFormatter &formatterSecond) const &;
+
+    /**
+     * Overload of numberFormatterSecond() for use on an rvalue reference.
+     *
+     * @param formatterSecond
+     *            The formatter to use for the second number in the range.
+     * @return The fluent chain.
+     * @see #numberFormatterSecond
+     * @draft ICU 63
+     */
+    Derived numberFormatterSecond(const UnlocalizedNumberFormatter &formatterSecond) &&;
+
+    /**
+     * Overload of numberFormatterSecond() for use on an rvalue reference.
+     *
+     * @param formatterSecond
+     *            The formatter to use for the second number in the range.
+     * @return The fluent chain.
+     * @see #numberFormatterSecond
+     * @draft ICU 63
+     */
+    Derived numberFormatterSecond(UnlocalizedNumberFormatter &&formatterSecond) const &;
+
+    /**
+     * Overload of numberFormatterSecond() for use on an rvalue reference.
+     *
+     * @param formatterSecond
+     *            The formatter to use for the second number in the range.
+     * @return The fluent chain.
+     * @see #numberFormatterSecond
+     * @draft ICU 63
+     */
+    Derived numberFormatterSecond(UnlocalizedNumberFormatter &&formatterSecond) &&;
+
+    /**
+     * Sets the aggressiveness of "collapsing" fields across the range separator. Possible values:
+     * <p>
+     * <ul>
+     * <li>ALL: "3-5K miles"</li>
+     * <li>UNIT: "3K - 5K miles"</li>
+     * <li>NONE: "3K miles - 5K miles"</li>
+     * <li>AUTO: usually UNIT or NONE, depending on the locale and formatter settings</li>
+     * </ul>
+     * <p>
+     * The default value is AUTO.
+     *
+     * @param collapse
+     *            The collapsing strategy to use for this range.
+     * @return The fluent chain.
+     * @draft ICU 63
+     */
+    Derived collapse(UNumberRangeCollapse collapse) const &;
+
+    /**
+     * Overload of collapse() for use on an rvalue reference.
+     *
+     * @param collapse
+     *            The collapsing strategy to use for this range.
+     * @return The fluent chain.
+     * @see #collapse
+     * @draft ICU 63
+     */
+    Derived collapse(UNumberRangeCollapse collapse) &&;
+
+    /**
+     * Sets the behavior when the two sides of the range are the same. This could happen if the same two numbers are
+     * passed to the formatRange function, or if different numbers are passed to the function but they become the same
+     * after rounding rules are applied. Possible values:
+     * <p>
+     * <ul>
+     * <li>SINGLE_VALUE: "5 miles"</li>
+     * <li>APPROXIMATELY_OR_SINGLE_VALUE: "~5 miles" or "5 miles", depending on whether the number was the same before
+     * rounding was applied</li>
+     * <li>APPROXIMATELY: "~5 miles"</li>
+     * <li>RANGE: "5-5 miles" (with collapse=UNIT)</li>
+     * </ul>
+     * <p>
+     * The default value is APPROXIMATELY.
+     *
+     * @param identityFallback
+     *            The strategy to use when formatting two numbers that end up being the same.
+     * @return The fluent chain.
+     * @draft ICU 63
+     */
+    Derived identityFallback(UNumberRangeIdentityFallback identityFallback) const &;
+
+    /**
+     * Overload of identityFallback() for use on an rvalue reference.
+     *
+     * @param identityFallback
+     *            The strategy to use when formatting two numbers that end up being the same.
+     * @return The fluent chain.
+     * @see #identityFallback
+     * @draft ICU 63
+     */
+    Derived identityFallback(UNumberRangeIdentityFallback identityFallback) &&;
+
+    /**
+     * Sets the UErrorCode if an error occurred in the fluent chain.
+     * Preserves older error codes in the outErrorCode.
+     * @return TRUE if U_FAILURE(outErrorCode)
+     * @draft ICU 63
+     */
+    UBool copyErrorTo(UErrorCode &outErrorCode) const {
+        if (U_FAILURE(outErrorCode)) {
+            // Do not overwrite the older error code
+            return TRUE;
+        }
+        fMacros.copyErrorTo(outErrorCode);
+        return U_FAILURE(outErrorCode);
+    };
+
+    // NOTE: Uses default copy and move constructors.
+
+  private:
+    impl::RangeMacroProps fMacros;
+
+    // Don't construct me directly!  Use (Un)LocalizedNumberFormatter.
+    NumberRangeFormatterSettings() = default;
+
+    friend class LocalizedNumberRangeFormatter;
+    friend class UnlocalizedNumberRangeFormatter;
+};
+
+/**
+ * A NumberRangeFormatter that does not yet have a locale. In order to format, a locale must be specified.
+ *
+ * @see NumberRangeFormatter
+ * @draft ICU 63
+ */
+class U_I18N_API UnlocalizedNumberRangeFormatter
+        : public NumberRangeFormatterSettings<UnlocalizedNumberRangeFormatter>, public UMemory {
+
+  public:
+    /**
+     * Associate the given locale with the number range formatter. The locale is used for picking the
+     * appropriate symbols, formats, and other data for number display.
+     *
+     * @param locale
+     *            The locale to use when loading data for number formatting.
+     * @return The fluent chain.
+     * @draft ICU 63
+     */
+    LocalizedNumberRangeFormatter locale(const icu::Locale &locale) const &;
+
+    /**
+     * Overload of locale() for use on an rvalue reference.
+     *
+     * @param locale
+     *            The locale to use when loading data for number formatting.
+     * @return The fluent chain.
+     * @see #locale
+     * @draft ICU 63
+     */
+    LocalizedNumberRangeFormatter locale(const icu::Locale &locale) &&;
+
+    /**
+     * Default constructor: puts the formatter into a valid but undefined state.
+     *
+     * @draft ICU 63
+     */
+    UnlocalizedNumberRangeFormatter() = default;
+
+    /**
+     * Returns a copy of this UnlocalizedNumberRangeFormatter.
+     * @draft ICU 63
+     */
+    UnlocalizedNumberRangeFormatter(const UnlocalizedNumberRangeFormatter &other);
+
+    /**
+     * Move constructor:
+     * The source UnlocalizedNumberRangeFormatter will be left in a valid but undefined state.
+     * @draft ICU 63
+     */
+    UnlocalizedNumberRangeFormatter(UnlocalizedNumberRangeFormatter&& src) U_NOEXCEPT;
+
+    /**
+     * Copy assignment operator.
+     * @draft ICU 63
+     */
+    UnlocalizedNumberRangeFormatter& operator=(const UnlocalizedNumberRangeFormatter& other);
+
+    /**
+     * Move assignment operator:
+     * The source UnlocalizedNumberRangeFormatter will be left in a valid but undefined state.
+     * @draft ICU 63
+     */
+    UnlocalizedNumberRangeFormatter& operator=(UnlocalizedNumberRangeFormatter&& src) U_NOEXCEPT;
+
+  private:
+    explicit UnlocalizedNumberRangeFormatter(
+            const NumberRangeFormatterSettings<UnlocalizedNumberRangeFormatter>& other);
+
+    explicit UnlocalizedNumberRangeFormatter(
+            NumberRangeFormatterSettings<UnlocalizedNumberRangeFormatter>&& src) U_NOEXCEPT;
+
+    // To give the fluent setters access to this class's constructor:
+    friend class NumberRangeFormatterSettings<UnlocalizedNumberRangeFormatter>;
+
+    // To give NumberRangeFormatter::with() access to this class's constructor:
+    friend class NumberRangeFormatter;
+};
+
+/**
+ * A NumberRangeFormatter that has a locale associated with it; this means .formatRange() methods are available.
+ *
+ * @see NumberFormatter
+ * @draft ICU 63
+ */
+class U_I18N_API LocalizedNumberRangeFormatter
+        : public NumberRangeFormatterSettings<LocalizedNumberRangeFormatter>, public UMemory {
+  public:
+    /**
+     * Format the given Formattables to a string using the settings specified in the NumberRangeFormatter fluent setting
+     * chain.
+     *
+     * @param first
+     *            The first number in the range, usually to the left in LTR locales.
+     * @param second
+     *            The second number in the range, usually to the right in LTR locales.
+     * @param status
+     *            Set if an error occurs while formatting.
+     * @return A FormattedNumberRange object; call .toString() to get the string.
+     * @draft ICU 63
+     */
+    FormattedNumberRange formatFormattableRange(
+        const Formattable& first, const Formattable& second, UErrorCode& status) const;
+
+    /**
+     * Default constructor: puts the formatter into a valid but undefined state.
+     *
+     * @draft ICU 63
+     */
+    LocalizedNumberRangeFormatter() = default;
+
+    /**
+     * Returns a copy of this LocalizedNumberRangeFormatter.
+     * @draft ICU 63
+     */
+    LocalizedNumberRangeFormatter(const LocalizedNumberRangeFormatter &other);
+
+    /**
+     * Move constructor:
+     * The source LocalizedNumberRangeFormatter will be left in a valid but undefined state.
+     * @draft ICU 63
+     */
+    LocalizedNumberRangeFormatter(LocalizedNumberRangeFormatter&& src) U_NOEXCEPT;
+
+    /**
+     * Copy assignment operator.
+     * @draft ICU 63
+     */
+    LocalizedNumberRangeFormatter& operator=(const LocalizedNumberRangeFormatter& other);
+
+    /**
+     * Move assignment operator:
+     * The source LocalizedNumberRangeFormatter will be left in a valid but undefined state.
+     * @draft ICU 63
+     */
+    LocalizedNumberRangeFormatter& operator=(LocalizedNumberRangeFormatter&& src) U_NOEXCEPT;
+
+#ifndef U_HIDE_INTERNAL_API
+
+    /**
+     * @param results
+     *            The results object. This method will mutate it to save the results.
+     * @param equalBeforeRounding
+     *            Whether the number was equal before copying it into a DecimalQuantity.
+     *            Used for determining the identity fallback behavior.
+     * @param status
+     *            Set if an error occurs while formatting.
+     * @internal
+     */
+    void formatImpl(impl::UFormattedNumberRangeData& results, bool equalBeforeRounding,
+                    UErrorCode& status) const;
+
+#endif
+
+    /**
+     * Destruct this LocalizedNumberRangeFormatter, cleaning up any memory it might own.
+     * @draft ICU 63
+     */
+    ~LocalizedNumberRangeFormatter();
+
+  private:
+    std::atomic<impl::NumberRangeFormatterImpl*> fAtomicFormatter = {};
+
+    const impl::NumberRangeFormatterImpl* getFormatter(UErrorCode& stauts) const;
+
+    explicit LocalizedNumberRangeFormatter(
+        const NumberRangeFormatterSettings<LocalizedNumberRangeFormatter>& other);
+
+    explicit LocalizedNumberRangeFormatter(
+        NumberRangeFormatterSettings<LocalizedNumberRangeFormatter>&& src) U_NOEXCEPT;
+
+    LocalizedNumberRangeFormatter(const impl::RangeMacroProps &macros, const Locale &locale);
+
+    LocalizedNumberRangeFormatter(impl::RangeMacroProps &&macros, const Locale &locale);
+
+    void clear();
+
+    // To give the fluent setters access to this class's constructor:
+    friend class NumberRangeFormatterSettings<UnlocalizedNumberRangeFormatter>;
+    friend class NumberRangeFormatterSettings<LocalizedNumberRangeFormatter>;
+
+    // To give UnlocalizedNumberRangeFormatter::locale() access to this class's constructor:
+    friend class UnlocalizedNumberRangeFormatter;
+};
+
+/**
+ * The result of a number range formatting operation. This class allows the result to be exported in several data types,
+ * including a UnicodeString and a FieldPositionIterator.
+ *
+ * @draft ICU 63
+ */
+class U_I18N_API FormattedNumberRange : public UMemory {
+  public:
+    /**
+     * Returns a UnicodeString representation of the formatted number range.
+     *
+     * @param status
+     *            Set if an error occurs while formatting the number to the UnicodeString.
+     * @return a UnicodeString containing the localized number range.
+     * @draft ICU 63
+     */
+    UnicodeString toString(UErrorCode& status) const;
+
+    /**
+     * Appends the formatted number range to an Appendable.
+     *
+     * @param appendable
+     *            The Appendable to which to append the formatted number range string.
+     * @param status
+     *            Set if an error occurs while formatting the number range to the Appendable.
+     * @return The same Appendable, for chaining.
+     * @draft ICU 63
+     * @see Appendable
+     */
+    Appendable &appendTo(Appendable &appendable, UErrorCode& status) const;
+
+    /**
+     * Determines the start (inclusive) and end (exclusive) indices of the next occurrence of the given
+     * <em>field</em> in the output string. This allows you to determine the locations of, for example,
+     * the integer part, fraction part, or symbols.
+     *
+     * If both sides of the range have the same field, the field will occur twice, once before the
+     * range separator and once after the range separator, if applicable.
+     *
+     * If a field occurs just once, calling this method will find that occurrence and return it. If a
+     * field occurs multiple times, this method may be called repeatedly with the following pattern:
+     *
+     * <pre>
+     * FieldPosition fpos(UNUM_INTEGER_FIELD);
+     * while (formattedNumberRange.nextFieldPosition(fpos, status)) {
+     *   // do something with fpos.
+     * }
+     * </pre>
+     *
+     * This method is useful if you know which field to query. If you want all available field position
+     * information, use #getAllFieldPositions().
+     *
+     * @param fieldPosition
+     *            Input+output variable. See {@link FormattedNumber#nextFieldPosition}.
+     * @param status
+     *            Set if an error occurs while populating the FieldPosition.
+     * @return TRUE if a new occurrence of the field was found; FALSE otherwise.
+     * @draft ICU 63
+     * @see UNumberFormatFields
+     */
+    UBool nextFieldPosition(FieldPosition& fieldPosition, UErrorCode& status) const;
+
+    /**
+     * Export the formatted number range to a FieldPositionIterator. This allows you to determine which characters in
+     * the output string correspond to which <em>fields</em>, such as the integer part, fraction part, and sign.
+     *
+     * If information on only one field is needed, use #nextFieldPosition() instead.
+     *
+     * @param iterator
+     *            The FieldPositionIterator to populate with all of the fields present in the formatted number.
+     * @param status
+     *            Set if an error occurs while populating the FieldPositionIterator.
+     * @draft ICU 63
+     * @see UNumberFormatFields
+     */
+    void getAllFieldPositions(FieldPositionIterator &iterator, UErrorCode &status) const;
+
+    /**
+     * Export the first formatted number as a decimal number. This endpoint
+     * is useful for obtaining the exact number being printed after scaling
+     * and rounding have been applied by the number range formatting pipeline.
+     * 
+     * The syntax of the unformatted number is a "numeric string"
+     * as defined in the Decimal Arithmetic Specification, available at
+     * http://speleotrove.com/decimal
+     *
+     * @return A decimal representation of the first formatted number.
+     * @draft ICU 63
+     * @see NumberRangeFormatter
+     * @see #getSecondDecimal
+     */
+    UnicodeString getFirstDecimal(UErrorCode& status) const;
+
+    /**
+     * Export the second formatted number as a decimal number. This endpoint
+     * is useful for obtaining the exact number being printed after scaling
+     * and rounding have been applied by the number range formatting pipeline.
+     * 
+     * The syntax of the unformatted number is a "numeric string"
+     * as defined in the Decimal Arithmetic Specification, available at
+     * http://speleotrove.com/decimal
+     *
+     * @return A decimal representation of the second formatted number.
+     * @draft ICU 63
+     * @see NumberRangeFormatter
+     * @see #getFirstDecimal
+     */
+    UnicodeString getSecondDecimal(UErrorCode& status) const;
+
+    /**
+     * Returns whether the pair of numbers was successfully formatted as a range or whether an identity fallback was
+     * used. For example, if the first and second number were the same either before or after rounding occurred, an
+     * identity fallback was used.
+     *
+     * @return An indication the resulting identity situation in the formatted number range.
+     * @draft ICU 63
+     * @see UNumberRangeIdentityFallback
+     */
+    UNumberRangeIdentityResult getIdentityResult(UErrorCode& status) const;
+
+    /**
+     * Copying not supported; use move constructor instead.
+     */
+    FormattedNumberRange(const FormattedNumberRange&) = delete;
+
+    /**
+     * Copying not supported; use move assignment instead.
+     */
+    FormattedNumberRange& operator=(const FormattedNumberRange&) = delete;
+
+    /**
+     * Move constructor:
+     * Leaves the source FormattedNumberRange in an undefined state.
+     * @draft ICU 63
+     */
+    FormattedNumberRange(FormattedNumberRange&& src) U_NOEXCEPT;
+
+    /**
+     * Move assignment:
+     * Leaves the source FormattedNumberRange in an undefined state.
+     * @draft ICU 63
+     */
+    FormattedNumberRange& operator=(FormattedNumberRange&& src) U_NOEXCEPT;
+
+    /**
+     * Destruct an instance of FormattedNumberRange, cleaning up any memory it might own.
+     * @draft ICU 63
+     */
+    ~FormattedNumberRange();
+
+  private:
+    // Can't use LocalPointer because UFormattedNumberRangeData is forward-declared
+    const impl::UFormattedNumberRangeData *fResults;
+
+    // Error code for the terminal methods
+    UErrorCode fErrorCode;
+
+    /**
+     * Internal constructor from data type. Adopts the data pointer.
+     * @internal
+     */
+    explicit FormattedNumberRange(impl::UFormattedNumberRangeData *results)
+        : fResults(results), fErrorCode(U_ZERO_ERROR) {};
+
+    explicit FormattedNumberRange(UErrorCode errorCode)
+        : fResults(nullptr), fErrorCode(errorCode) {};
+
+    void getAllFieldPositionsImpl(FieldPositionIteratorHandler& fpih, UErrorCode& status) const;
+
+    // To give LocalizedNumberRangeFormatter format methods access to this class's constructor:
+    friend class LocalizedNumberRangeFormatter;
+};
+
+/**
+ * See the main description in numberrangeformatter.h for documentation and examples.
+ *
+ * @draft ICU 63
+ */
+class U_I18N_API NumberRangeFormatter final {
+  public:
+    /**
+     * Call this method at the beginning of a NumberRangeFormatter fluent chain in which the locale is not currently
+     * known at the call site.
+     *
+     * @return An {@link UnlocalizedNumberRangeFormatter}, to be used for chaining.
+     * @draft ICU 63
+     */
+    static UnlocalizedNumberRangeFormatter with();
+
+    /**
+     * Call this method at the beginning of a NumberRangeFormatter fluent chain in which the locale is known at the call
+     * site.
+     *
+     * @param locale
+     *            The locale from which to load formats and symbols for number range formatting.
+     * @return A {@link LocalizedNumberRangeFormatter}, to be used for chaining.
+     * @draft ICU 63
+     */
+    static LocalizedNumberRangeFormatter withLocale(const Locale &locale);
+
+    /**
+     * Use factory methods instead of the constructor to create a NumberFormatter.
+     */
+    NumberRangeFormatter() = delete;
+};
+
+}  // namespace number
+U_NAMESPACE_END
+
+#endif  // U_HIDE_DRAFT_API
+
+#endif // __NUMBERRANGEFORMATTER_H__
+
+#endif /* #if !UCONFIG_NO_FORMATTING */
index 80ce0c00b591b5b64a8f7059a8651a62a6a00858..1e554918ec30c6e6a2cf645f23ee0211f27e1036 100644 (file)
@@ -56,7 +56,6 @@ class StringEnumeration;
  * <p><strong>IMPORTANT:</strong> New users are strongly encouraged to see if
  * numberformatter.h fits their use case.  Although not deprecated, this header
  * is provided for backwards compatibility only.
- * <hr/>
  *
  * Abstract base class for all number formats.  Provides interface for
  * formatting and parsing a number.  Also provides methods for
@@ -710,7 +709,7 @@ public:
      * The default formatting style is locale dependent.
      * <p>
      * <strong>NOTE:</strong> New users are strongly encouraged to use
-     * {@link NumberFormatter} instead of NumberFormat.
+     * {@link icu::number::NumberFormatter} instead of NumberFormat.
      * @stable ICU 2.0
      */
     static NumberFormat* U_EXPORT2 createInstance(UErrorCode&);
@@ -721,7 +720,7 @@ public:
      * @param inLocale    the given locale.
      * <p>
      * <strong>NOTE:</strong> New users are strongly encouraged to use
-     * {@link NumberFormatter} instead of NumberFormat.
+     * {@link icu::number::NumberFormatter} instead of NumberFormat.
      * @stable ICU 2.0
      */
     static NumberFormat* U_EXPORT2 createInstance(const Locale& inLocale,
@@ -731,7 +730,7 @@ public:
      * Create a specific style NumberFormat for the specified locale.
      * <p>
      * <strong>NOTE:</strong> New users are strongly encouraged to use
-     * {@link NumberFormatter} instead of NumberFormat.
+     * {@link icu::number::NumberFormatter} instead of NumberFormat.
      * @param desiredLocale    the given locale.
      * @param style            the given style.
      * @param errorCode        Output param filled with success/failure status.
@@ -770,7 +769,7 @@ public:
      * Returns a currency format for the current default locale.
      * <p>
      * <strong>NOTE:</strong> New users are strongly encouraged to use
-     * {@link NumberFormatter} instead of NumberFormat.
+     * {@link icu::number::NumberFormatter} instead of NumberFormat.
      * @stable ICU 2.0
      */
     static NumberFormat* U_EXPORT2 createCurrencyInstance(UErrorCode&);
@@ -779,7 +778,7 @@ public:
      * Returns a currency format for the specified locale.
      * <p>
      * <strong>NOTE:</strong> New users are strongly encouraged to use
-     * {@link NumberFormatter} instead of NumberFormat.
+     * {@link icu::number::NumberFormatter} instead of NumberFormat.
      * @param inLocale    the given locale.
      * @stable ICU 2.0
      */
@@ -790,7 +789,7 @@ public:
      * Returns a percentage format for the current default locale.
      * <p>
      * <strong>NOTE:</strong> New users are strongly encouraged to use
-     * {@link NumberFormatter} instead of NumberFormat.
+     * {@link icu::number::NumberFormatter} instead of NumberFormat.
      * @stable ICU 2.0
      */
     static NumberFormat* U_EXPORT2 createPercentInstance(UErrorCode&);
@@ -799,7 +798,7 @@ public:
      * Returns a percentage format for the specified locale.
      * <p>
      * <strong>NOTE:</strong> New users are strongly encouraged to use
-     * {@link NumberFormatter} instead of NumberFormat.
+     * {@link icu::number::NumberFormatter} instead of NumberFormat.
      * @param inLocale    the given locale.
      * @stable ICU 2.0
      */
@@ -810,7 +809,7 @@ public:
      * Returns a scientific format for the current default locale.
      * <p>
      * <strong>NOTE:</strong> New users are strongly encouraged to use
-     * {@link NumberFormatter} instead of NumberFormat.
+     * {@link icu::number::NumberFormatter} instead of NumberFormat.
      * @stable ICU 2.0
      */
     static NumberFormat* U_EXPORT2 createScientificInstance(UErrorCode&);
@@ -819,7 +818,7 @@ public:
      * Returns a scientific format for the specified locale.
      * <p>
      * <strong>NOTE:</strong> New users are strongly encouraged to use
-     * {@link NumberFormatter} instead of NumberFormat.
+     * {@link icu::number::NumberFormatter} instead of NumberFormat.
      * @param inLocale    the given locale.
      * @stable ICU 2.0
      */
@@ -1028,14 +1027,14 @@ public:
      * Get the rounding mode. This will always return NumberFormat::ERoundingMode::kRoundUnnecessary
      * if the subclass does not support rounding. 
      * @return A rounding mode
-     * @draft ICU 60
+     * @stable ICU 60
      */
     virtual ERoundingMode getRoundingMode(void) const;
 
     /**
      * Set the rounding mode. If a subclass does not support rounding, this will do nothing.
      * @param roundingMode A rounding mode
-     * @draft ICU 60
+     * @stable ICU 60
      */
     virtual void setRoundingMode(ERoundingMode roundingMode);
 
index fd537c24c21b5da5c1aca1263101f3291d832b01..cb901b0c7b5becc41fdf3a9b5de52adfdc7741c1 100644 (file)
@@ -520,15 +520,7 @@ public:
      */
      virtual UClassID getDynamicClassID() const;
 
-#if (defined(__xlC__) && (__xlC__ < 0x0C00)) || (U_PLATFORM == U_PF_OS390) || (U_PLATFORM ==U_PF_OS400)
-// Work around a compiler bug on xlC 11.1 on AIX 7.1 that would
-// prevent PluralSelectorAdapter from implementing private PluralSelector.
-// xlC error message:
-// 1540-0300 (S) The "private" member "class icu_49::PluralFormat::PluralSelector" cannot be accessed.
-public:
-#else
 private:
-#endif
      /**
       * @internal
       */
@@ -564,10 +556,6 @@ private:
         PluralRules* pluralRules;
     };
 
-#if defined(__xlC__)
-// End of xlC bug workaround, keep remaining definitions private.
-private:
-#endif
     Locale  locale;
     MessagePattern msgPattern;
     NumberFormat*  numberFormat;
index 03dea3f1b929880d75cf4a204356e8acc9fca15e..daeed52bee632e3118cad04315b5f6d543df6850 100644 (file)
@@ -118,7 +118,6 @@ class SharedPluralRules;
  * Examples are in the following table:
  * </p>
  * <table border='1' style="border-collapse:collapse">
- * <tbody>
  * <tr>
  * <th>n</th>
  * <th>i</th>
@@ -155,7 +154,6 @@ class SharedPluralRules;
  * <td align="right">23</td>
  * <td>2</td>
  * </tr>
- * </tbody>
  * </table>
  * <p>
  * The difference between 'in' and 'within' is that 'in' only includes integers in the specified range, while 'within'
@@ -499,6 +497,12 @@ private:
     UnicodeString   getRuleFromResource(const Locale& locale, UPluralType type, UErrorCode& status);
     RuleChain      *rulesForKeyword(const UnicodeString &keyword) const;
 
+    /**
+    * An internal status variable used to indicate that the object is in an 'invalid' state.
+    * Used by copy constructor, the assignment operator and the clone method.
+    */
+    UErrorCode mInternalStatus;
+
     friend class PluralRuleParser;
 };
 
index ab5a019de30d233b99489ea46303cfd28edc63d8..d6ba523b7805f91b5814f1388285ad35818e7f50 100644 (file)
@@ -313,7 +313,6 @@ enum URBNFRuleSetTag {
  *     <td>The rule for an IEEE 754 NaN (not a number).</td>
  *   </tr>
  *   <tr>
- *   <tr>
  *     <td><em>nothing</em></td>
  *     <td>If the rule's rule descriptor is left out, the base value is one plus the
  *     preceding rule's base value (or zero if this is the first rule in the list) in a normal
@@ -1013,14 +1012,14 @@ public:
     /**
      * Get the rounding mode.
      * @return A rounding mode
-     * @draft ICU 60
+     * @stable ICU 60
      */
     virtual ERoundingMode getRoundingMode(void) const;
 
     /**
      * Set the rounding mode.
      * @param roundingMode A rounding mode
-     * @draft ICU 60
+     * @stable ICU 60
      */
     virtual void setRoundingMode(ERoundingMode roundingMode);
 
@@ -1095,7 +1094,7 @@ private:
     void format(double number, NFRuleSet& rs, UnicodeString& toAppendTo, UErrorCode& status) const;
 
 private:
-    NFRuleSet **ruleSets;
+    NFRuleSet **fRuleSets;
     UnicodeString* ruleSetDescriptions;
     int32_t numRuleSets;
     NFRuleSet *defaultRuleSet;
@@ -1104,7 +1103,7 @@ private:
     DecimalFormatSymbols* decimalFormatSymbols;
     NFRule *defaultInfinityRule;
     NFRule *defaultNaNRule;
-    ERoundingMode roundingMode;
+    ERoundingMode fRoundingMode;
     UBool lenient;
     UnicodeString* lenientParseRules;
     LocalizationInfo* localizations;
index 80b2929e9f00c3c63b1de632358a1e104d41904d..4014025f6f237155f031d3d7bb2e4830989a5625 100644 (file)
@@ -192,7 +192,7 @@ private:
     char id[4];
     UnicodeString idStr;
     int32_t code;
-    URegionType type;
+    URegionType fType;
     Region *containingRegion;
     UVector *containedRegions;
     UVector *preferredValues;
index 09d9620be5b0631df87b0e44ca3d1d3337d1203d..be06b1013d56f9fc41fb3b7c9e992ad72ce2d46b 100644 (file)
@@ -165,12 +165,20 @@ typedef enum UDateAbsoluteUnit {
      */
     UDAT_ABSOLUTE_NOW,
 
+#ifndef U_HIDE_DRAFT_API
+    /**
+     * Quarter
+     * @draft ICU 63
+     */
+    UDAT_ABSOLUTE_QUARTER,
+#endif // U_HIDE_DRAFT_API
+
 #ifndef U_HIDE_DEPRECATED_API
     /**
      * One more than the highest normal UDateAbsoluteUnit value.
      * @deprecated ICU 58 The numeric value may change over time, see ICU ticket #12420.
      */
-    UDAT_ABSOLUTE_UNIT_COUNT
+    UDAT_ABSOLUTE_UNIT_COUNT = UDAT_ABSOLUTE_NOW + 2
 #endif  // U_HIDE_DEPRECATED_API
 } UDateAbsoluteUnit;
 
@@ -328,7 +336,7 @@ public:
      * @param nfToAdopt Constructed object takes ownership of this pointer.
      *   It is an error for caller to delete this pointer or change its
      *   contents after calling this constructor.
-     * @status Any error is returned here.
+     * @param status Any error is returned here.
      * @stable ICU 53
      */
     RelativeDateTimeFormatter(
@@ -346,7 +354,7 @@ public:
      * @param style the format style. The UDAT_RELATIVE bit field has no effect.
      * @param capitalizationContext A value from UDisplayContext that pertains to
      * capitalization.
-     * @status Any error is returned here. 
+     * @param status Any error is returned here.
      * @stable ICU 54
      */
     RelativeDateTimeFormatter(
index 305412b8d1535f7bb600e51d0b9defcee557c43a..929c1b4675b407ccf923d5e5723b5f3e942c1872 100644 (file)
@@ -1147,7 +1147,7 @@ public:
      * Overrides base class method and
      * This method clears per field NumberFormat instances
      * previously set by {@see adoptNumberFormat(const UnicodeString&, NumberFormat*, UErrorCode)}
-     * @param adoptNF the NumbeferFormat used
+     * @param formatToAdopt the NumbeferFormat used
      * @stable ICU 54
      */
     void adoptNumberFormat(NumberFormat *formatToAdopt);
@@ -1162,7 +1162,7 @@ public:
      * Per field NumberFormat can also be cleared in {@see DateFormat::setNumberFormat(const NumberFormat& newNumberFormat)}
      *
      * @param fields  the fields to override(like y)
-     * @param adoptNF the NumbeferFormat used
+     * @param formatToAdopt the NumbeferFormat used
      * @param status  Receives a status code, which will be U_ZERO_ERROR
      *                if the operation succeeds.
      * @stable ICU 54
index bccba5480242467e63a82dc704d1bc9247f07566..6b4888145f1be51364b0500af25c080bad9f9c22 100644 (file)
 #include "unicode/utypes.h"
 
 /**
- * \file 
+ * \file
  * \brief C++ API: Tranforms text from one format to another.
  */
+
 #if !UCONFIG_NO_TRANSLITERATION
 
 #include "unicode/uobject.h"
@@ -31,7 +31,6 @@ U_NAMESPACE_BEGIN
 
 class UnicodeFilter;
 class UnicodeSet;
-class CompoundTransliterator;
 class TransliteratorParser;
 class NormalizationTransliterator;
 class TransliteratorIDParser;
@@ -77,8 +76,7 @@ class TransliteratorIDParser;
  * transliteration.  For example, given a string <code>input</code>
  * and a transliterator <code>t</code>, the call
  *
- * \htmlonly<blockquote>\endhtmlonly<code>String result = t.transliterate(input);
- * </code>\htmlonly</blockquote>\endhtmlonly
+ *     String result = t.transliterate(input);
  *
  * will transliterate it and return the result.  Other methods allow
  * the client to specify a substring to be transliterated and to use
@@ -98,22 +96,20 @@ class TransliteratorIDParser;
  * contents of the buffer may show text being modified as each new
  * character arrives.
  *
- * <p>Consider the simple <code>RuleBasedTransliterator</code>:
- *
- * \htmlonly<blockquote>\endhtmlonly<code>
- * th&gt;{theta}<br>
- * t&gt;{tau}
- * </code>\htmlonly</blockquote>\endhtmlonly
+ * <p>Consider the simple rule-based Transliterator:
+ * <pre>
+ *     th>{theta}
+ *     t>{tau}
+ * </pre>
  *
  * When the user types 't', nothing will happen, since the
  * transliterator is waiting to see if the next character is 'h'.  To
  * remedy this, we introduce the notion of a cursor, marked by a '|'
  * in the output string:
- *
- * \htmlonly<blockquote>\endhtmlonly<code>
- * t&gt;|{tau}<br>
- * {tau}h&gt;{theta}
- * </code>\htmlonly</blockquote>\endhtmlonly
+ * <pre>
+ *     t>|{tau}
+ *     {tau}h>{theta}
+ * </pre>
  *
  * Now when the user types 't', tau appears, and if the next character
  * is 'h', the tau changes to a theta.  This is accomplished by
@@ -135,7 +131,7 @@ class TransliteratorIDParser;
  * which the transliterator last stopped, either because it reached
  * the end, or because it required more characters to disambiguate
  * between possible inputs.  The <code>CURSOR</code> can also be
- * explicitly set by rules in a <code>RuleBasedTransliterator</code>.
+ * explicitly set by rules in a rule-based Transliterator.
  * Any characters before the <code>CURSOR</code> index are frozen;
  * future keyboard transliteration calls within this input sequence
  * will not change them.  New text is inserted at the
@@ -237,6 +233,255 @@ class TransliteratorIDParser;
  * if the performance of these methods can be improved over the
  * performance obtained by the default implementations in this class.
  *
+ * <p><b>Rule syntax</b>
+ *
+ * <p>A set of rules determines how to perform translations.
+ * Rules within a rule set are separated by semicolons (';').
+ * To include a literal semicolon, prefix it with a backslash ('\').
+ * Unicode Pattern_White_Space is ignored.
+ * If the first non-blank character on a line is '#',
+ * the entire line is ignored as a comment.
+ *
+ * <p>Each set of rules consists of two groups, one forward, and one
+ * reverse. This is a convention that is not enforced; rules for one
+ * direction may be omitted, with the result that translations in
+ * that direction will not modify the source text. In addition,
+ * bidirectional forward-reverse rules may be specified for
+ * symmetrical transformations.
+ *
+ * <p>Note: Another description of the Transliterator rule syntax is available in
+ * <a href="https://www.unicode.org/reports/tr35/tr35-general.html#Transform_Rules_Syntax">section
+ * Transform Rules Syntax of UTS #35: Unicode LDML</a>.
+ * The rules are shown there using arrow symbols ← and → and ↔.
+ * ICU supports both those and the equivalent ASCII symbols &lt; and &gt; and &lt;&gt;.
+ *
+ * <p>Rule statements take one of the following forms:
+ *
+ * <dl>
+ *     <dt><code>$alefmadda=\\u0622;</code></dt>
+ *     <dd><strong>Variable definition.</strong> The name on the
+ *         left is assigned the text on the right. In this example,
+ *         after this statement, instances of the left hand name,
+ *         &quot;<code>$alefmadda</code>&quot;, will be replaced by
+ *         the Unicode character U+0622. Variable names must begin
+ *         with a letter and consist only of letters, digits, and
+ *         underscores. Case is significant. Duplicate names cause
+ *         an exception to be thrown, that is, variables cannot be
+ *         redefined. The right hand side may contain well-formed
+ *         text of any length, including no text at all (&quot;<code>$empty=;</code>&quot;).
+ *         The right hand side may contain embedded <code>UnicodeSet</code>
+ *         patterns, for example, &quot;<code>$softvowel=[eiyEIY]</code>&quot;.</dd>
+ *     <dt><code>ai&gt;$alefmadda;</code></dt>
+ *     <dd><strong>Forward translation rule.</strong> This rule
+ *         states that the string on the left will be changed to the
+ *         string on the right when performing forward
+ *         transliteration.</dd>
+ *     <dt><code>ai&lt;$alefmadda;</code></dt>
+ *     <dd><strong>Reverse translation rule.</strong> This rule
+ *         states that the string on the right will be changed to
+ *         the string on the left when performing reverse
+ *         transliteration.</dd>
+ * </dl>
+ *
+ * <dl>
+ *     <dt><code>ai&lt;&gt;$alefmadda;</code></dt>
+ *     <dd><strong>Bidirectional translation rule.</strong> This
+ *         rule states that the string on the right will be changed
+ *         to the string on the left when performing forward
+ *         transliteration, and vice versa when performing reverse
+ *         transliteration.</dd>
+ * </dl>
+ *
+ * <p>Translation rules consist of a <em>match pattern</em> and an <em>output
+ * string</em>. The match pattern consists of literal characters,
+ * optionally preceded by context, and optionally followed by
+ * context. Context characters, like literal pattern characters,
+ * must be matched in the text being transliterated. However, unlike
+ * literal pattern characters, they are not replaced by the output
+ * text. For example, the pattern &quot;<code>abc{def}</code>&quot;
+ * indicates the characters &quot;<code>def</code>&quot; must be
+ * preceded by &quot;<code>abc</code>&quot; for a successful match.
+ * If there is a successful match, &quot;<code>def</code>&quot; will
+ * be replaced, but not &quot;<code>abc</code>&quot;. The final '<code>}</code>'
+ * is optional, so &quot;<code>abc{def</code>&quot; is equivalent to
+ * &quot;<code>abc{def}</code>&quot;. Another example is &quot;<code>{123}456</code>&quot;
+ * (or &quot;<code>123}456</code>&quot;) in which the literal
+ * pattern &quot;<code>123</code>&quot; must be followed by &quot;<code>456</code>&quot;.
+ *
+ * <p>The output string of a forward or reverse rule consists of
+ * characters to replace the literal pattern characters. If the
+ * output string contains the character '<code>|</code>', this is
+ * taken to indicate the location of the <em>cursor</em> after
+ * replacement. The cursor is the point in the text at which the
+ * next replacement, if any, will be applied. The cursor is usually
+ * placed within the replacement text; however, it can actually be
+ * placed into the precending or following context by using the
+ * special character '@'. Examples:
+ *
+ * <pre>
+ *     a {foo} z &gt; | @ bar; # foo -&gt; bar, move cursor before a
+ *     {foo} xyz &gt; bar @@|; #&nbsp;foo -&gt; bar, cursor between y and z
+ * </pre>
+ *
+ * <p><b>UnicodeSet</b>
+ *
+ * <p><code>UnicodeSet</code> patterns may appear anywhere that
+ * makes sense. They may appear in variable definitions.
+ * Contrariwise, <code>UnicodeSet</code> patterns may themselves
+ * contain variable references, such as &quot;<code>$a=[a-z];$not_a=[^$a]</code>&quot;,
+ * or &quot;<code>$range=a-z;$ll=[$range]</code>&quot;.
+ *
+ * <p><code>UnicodeSet</code> patterns may also be embedded directly
+ * into rule strings. Thus, the following two rules are equivalent:
+ *
+ * <pre>
+ *     $vowel=[aeiou]; $vowel&gt;'*'; # One way to do this
+ *     [aeiou]&gt;'*'; # Another way
+ * </pre>
+ *
+ * <p>See {@link UnicodeSet} for more documentation and examples.
+ *
+ * <p><b>Segments</b>
+ *
+ * <p>Segments of the input string can be matched and copied to the
+ * output string. This makes certain sets of rules simpler and more
+ * general, and makes reordering possible. For example:
+ *
+ * <pre>
+ *     ([a-z]) &gt; $1 $1; # double lowercase letters
+ *     ([:Lu:]) ([:Ll:]) &gt; $2 $1; # reverse order of Lu-Ll pairs
+ * </pre>
+ *
+ * <p>The segment of the input string to be copied is delimited by
+ * &quot;<code>(</code>&quot; and &quot;<code>)</code>&quot;. Up to
+ * nine segments may be defined. Segments may not overlap. In the
+ * output string, &quot;<code>$1</code>&quot; through &quot;<code>$9</code>&quot;
+ * represent the input string segments, in left-to-right order of
+ * definition.
+ *
+ * <p><b>Anchors</b>
+ *
+ * <p>Patterns can be anchored to the beginning or the end of the text. This is done with the
+ * special characters '<code>^</code>' and '<code>$</code>'. For example:
+ *
+ * <pre>
+ *   ^ a&nbsp;&nbsp; &gt; 'BEG_A'; &nbsp;&nbsp;# match 'a' at start of text
+ *   &nbsp; a&nbsp;&nbsp; &gt; 'A'; # match other instances of 'a'
+ *   &nbsp; z $ &gt; 'END_Z'; &nbsp;&nbsp;# match 'z' at end of text
+ *   &nbsp; z&nbsp;&nbsp; &gt; 'Z';&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # match other instances of 'z'
+ * </pre>
+ *
+ * <p>It is also possible to match the beginning or the end of the text using a <code>UnicodeSet</code>.
+ * This is done by including a virtual anchor character '<code>$</code>' at the end of the
+ * set pattern. Although this is usually the match chafacter for the end anchor, the set will
+ * match either the beginning or the end of the text, depending on its placement. For
+ * example:
+ *
+ * <pre>
+ *   $x = [a-z$]; &nbsp;&nbsp;# match 'a' through 'z' OR anchor
+ *   $x 1&nbsp;&nbsp;&nbsp; &gt; 2;&nbsp;&nbsp; # match '1' after a-z or at the start
+ *   &nbsp;&nbsp; 3 $x &gt; 4; &nbsp;&nbsp;# match '3' before a-z or at the end
+ * </pre>
+ *
+ * <p><b>Example</b>
+ *
+ * <p>The following example rules illustrate many of the features of
+ * the rule language.
+ *
+ * <table border="0" cellpadding="4">
+ *     <tr>
+ *         <td style="vertical-align: top;">Rule 1.</td>
+ *         <td style="vertical-align: top; write-space: nowrap;"><code>abc{def}&gt;x|y</code></td>
+ *     </tr>
+ *     <tr>
+ *         <td style="vertical-align: top;">Rule 2.</td>
+ *         <td style="vertical-align: top; write-space: nowrap;"><code>xyz&gt;r</code></td>
+ *     </tr>
+ *     <tr>
+ *         <td style="vertical-align: top;">Rule 3.</td>
+ *         <td style="vertical-align: top; write-space: nowrap;"><code>yz&gt;q</code></td>
+ *     </tr>
+ * </table>
+ *
+ * <p>Applying these rules to the string &quot;<code>adefabcdefz</code>&quot;
+ * yields the following results:
+ *
+ * <table border="0" cellpadding="4">
+ *     <tr>
+ *         <td style="vertical-align: top; write-space: nowrap;"><code>|adefabcdefz</code></td>
+ *         <td style="vertical-align: top;">Initial state, no rules match. Advance
+ *         cursor.</td>
+ *     </tr>
+ *     <tr>
+ *         <td style="vertical-align: top; write-space: nowrap;"><code>a|defabcdefz</code></td>
+ *         <td style="vertical-align: top;">Still no match. Rule 1 does not match
+ *         because the preceding context is not present.</td>
+ *     </tr>
+ *     <tr>
+ *         <td style="vertical-align: top; write-space: nowrap;"><code>ad|efabcdefz</code></td>
+ *         <td style="vertical-align: top;">Still no match. Keep advancing until
+ *         there is a match...</td>
+ *     </tr>
+ *     <tr>
+ *         <td style="vertical-align: top; write-space: nowrap;"><code>ade|fabcdefz</code></td>
+ *         <td style="vertical-align: top;">...</td>
+ *     </tr>
+ *     <tr>
+ *         <td style="vertical-align: top; write-space: nowrap;"><code>adef|abcdefz</code></td>
+ *         <td style="vertical-align: top;">...</td>
+ *     </tr>
+ *     <tr>
+ *         <td style="vertical-align: top; write-space: nowrap;"><code>adefa|bcdefz</code></td>
+ *         <td style="vertical-align: top;">...</td>
+ *     </tr>
+ *     <tr>
+ *         <td style="vertical-align: top; write-space: nowrap;"><code>adefab|cdefz</code></td>
+ *         <td style="vertical-align: top;">...</td>
+ *     </tr>
+ *     <tr>
+ *         <td style="vertical-align: top; write-space: nowrap;"><code>adefabc|defz</code></td>
+ *         <td style="vertical-align: top;">Rule 1 matches; replace &quot;<code>def</code>&quot;
+ *         with &quot;<code>xy</code>&quot; and back up the cursor
+ *         to before the '<code>y</code>'.</td>
+ *     </tr>
+ *     <tr>
+ *         <td style="vertical-align: top; write-space: nowrap;"><code>adefabcx|yz</code></td>
+ *         <td style="vertical-align: top;">Although &quot;<code>xyz</code>&quot; is
+ *         present, rule 2 does not match because the cursor is
+ *         before the '<code>y</code>', not before the '<code>x</code>'.
+ *         Rule 3 does match. Replace &quot;<code>yz</code>&quot;
+ *         with &quot;<code>q</code>&quot;.</td>
+ *     </tr>
+ *     <tr>
+ *         <td style="vertical-align: top; write-space: nowrap;"><code>adefabcxq|</code></td>
+ *         <td style="vertical-align: top;">The cursor is at the end;
+ *         transliteration is complete.</td>
+ *     </tr>
+ * </table>
+ *
+ * <p>The order of rules is significant. If multiple rules may match
+ * at some point, the first matching rule is applied.
+ *
+ * <p>Forward and reverse rules may have an empty output string.
+ * Otherwise, an empty left or right hand side of any statement is a
+ * syntax error.
+ *
+ * <p>Single quotes are used to quote any character other than a
+ * digit or letter. To specify a single quote itself, inside or
+ * outside of quotes, use two single quotes in a row. For example,
+ * the rule &quot;<code>'&gt;'&gt;o''clock</code>&quot; changes the
+ * string &quot;<code>&gt;</code>&quot; to the string &quot;<code>o'clock</code>&quot;.
+ *
+ * <p><b>Notes</b>
+ *
+ * <p>While a Transliterator is being built from rules, it checks that
+ * the rules are added in proper order. For example, if the rule
+ * &quot;a&gt;x&quot; is followed by the rule &quot;ab&gt;y&quot;,
+ * then the second rule will throw an exception. The reason is that
+ * the second rule can never be triggered, since the first rule
+ * always matches anything it matches. In other words, the first
+ * rule <em>masks</em> the second rule.
+ *
  * @author Alan Liu
  * @stable ICU 2.0
  */
@@ -499,9 +744,9 @@ public:
      * for details.
      * @param text the buffer holding transliterated and
      * untransliterated text
-     * @param index an array of three integers.  See {@link #transliterate(Replaceable&, UTransPosition&, const UnicodeString*, UErrorCode&) const }.
+     * @param index an array of three integers.
      * @param status    Output param to filled in with a success or an error.
-     * @see #transliterate(Replaceable, int[], String)
+     * @see #transliterate(Replaceable&, UTransPosition&, const UnicodeString&, UErrorCode &) const
      * @stable ICU 2.0
      */
     virtual void transliterate(Replaceable& text, UTransPosition& index,
@@ -632,7 +877,7 @@ public:
     /**
      * Transliterate a substring of text, as specified by index, taking filters
      * into account.  This method is for subclasses that need to delegate to
-     * another transliterator, such as CompoundTransliterator.
+     * another transliterator.
      * @param text the text to be transliterated
      * @param index the position indices
      * @param incremental if TRUE, then assume more characters may be inserted
@@ -846,17 +1091,19 @@ public:
 
     /**
      * Returns a <code>Transliterator</code> object constructed from
-     * the given rule string.  This will be a RuleBasedTransliterator,
+     * the given rule string.  This will be a rule-based Transliterator,
      * if the rule string contains only rules, or a
-     * CompoundTransliterator, if it contains ID blocks, or a
-     * NullTransliterator, if it contains ID blocks which parse as
+     * compound Transliterator, if it contains ID blocks, or a
+     * null Transliterator, if it contains ID blocks which parse as
      * empty for the given direction.
+     *
      * @param ID            the id for the transliterator.
      * @param rules         rules, separated by ';'
      * @param dir           either FORWARD or REVERSE.
-     * @param parseError    Struct to recieve information on position
+     * @param parseError    Struct to receive information on position
      *                      of error if an error is encountered
      * @param status        Output param set to success/failure code.
+     * @return a newly created Transliterator
      * @stable ICU 2.0
      */
     static Transliterator* U_EXPORT2 createFromRules(const UnicodeString& ID,
index 724ff4d85bb265796611eeda4d2ca68558f2d698..d2aa768b8c8b34df47633a9d30d516c3b576cfdc 100644 (file)
@@ -237,10 +237,10 @@ typedef enum UTimeZoneFormatParseOption {
      */
     UTZFMT_PARSE_OPTION_ALL_STYLES  = 0x01,
      /**
-      * When parsing a time zone display name in UTZFMT_STYLE_SPECIFIC_SHORT,
+      * When parsing a time zone display name in \link UTZFMT_STYLE_SPECIFIC_SHORT \endlink,
       * look for the IANA tz database compatible zone abbreviations in addition
-      * to the localized names coming from the {@link TimeZoneNames} currently
-      * used by the {@link TimeZoneFormat}. 
+      * to the localized names coming from the icu::TimeZoneNames currently
+      * used by the icu::TimeZoneFormat.
       * @stable ICU 54
       */
     UTZFMT_PARSE_OPTION_TZ_DATABASE_ABBREVIATIONS = 0x02
index c765e7859f59f489b7f6d4f1ba9d263d342ecbe7..fb7c387c2d7a540efce3a01b4f00e2ee1a6e2344 100644 (file)
  * For example, subtracting 5 days from the date <code>September 12, 1996</code>
  * results in <code>September 7, 1996</code>.
  *
+ * <p>
+ * The Japanese calendar uses a combination of era name and year number.
+ * When an emperor of Japan abdicates and a new emperor ascends the throne,
+ * a new era is declared and year number is reset to 1. Even if the date of
+ * abdication is scheduled ahead of time, the new era name might not be
+ * announced until just before the date. In such case, ICU4C may include
+ * a start date of future era without actual era name, but not enabled
+ * by default. ICU4C users who want to test the behavior of the future era
+ * can enable the tentative era by:
+ * <ul>
+ * <li>Environment variable <code>ICU_ENABLE_TENTATIVE_ERA=true</code>.</li>
+ * </ul>
+ *
  * @stable ICU 2.0
  */
 
index ecabd9e09b9d7a9cdd365f694555214767366aef..dbac48e3e498b47b2ccb14850005c8e3869664ca 100644 (file)
@@ -1149,7 +1149,7 @@ ucol_getUCAVersion(const UCollator* coll, UVersionInfo info);
  * The recommended way to achieve "merged" sorting is by
  * concatenating strings with U+FFFE between them.
  * The concatenation has the same sort order as the merged sort keys,
- * but merge(getSortKey(str1), getSortKey(str2)) may differ from getSortKey(str1 + '\uFFFE' + str2).
+ * but merge(getSortKey(str1), getSortKey(str2)) may differ from getSortKey(str1 + '\\uFFFE' + str2).
  * Using strings with U+FFFE may yield shorter sort keys.
  *
  * For details about Sort Key Features see
@@ -1294,6 +1294,7 @@ U_STABLE uint32_t U_EXPORT2 ucol_getVariableTop(const UCollator *coll, UErrorCod
  * the top of one of the supported reordering groups,
  * and it must not be beyond the last of those groups.
  * See ucol_setMaxVariable().
+ * @param coll collator to be set
  * @param varTop primary weight, as returned by ucol_setVariableTop or ucol_getVariableTop
  * @param status error code
  * @see ucol_getVariableTop
index d015a2300cf6d6af1295e93b8720cf862089879b..903f3dd5deebbe6d51339155108c349bbd10d5a1 100644 (file)
@@ -49,11 +49,11 @@ enum UGender {
  */
 typedef enum UGender UGender;
 
+struct UGenderInfo;
 /**
  * Opaque UGenderInfo object for use in C programs.
  * @stable ICU 50
  */
-struct UGenderInfo;
 typedef struct UGenderInfo UGenderInfo;
 
 /**
@@ -77,7 +77,7 @@ ugender_getInstance(const char *locale, UErrorCode *status);
  * @stable ICU 50
  */
 U_STABLE UGender U_EXPORT2
-ugender_getListGender(const UGenderInfo* genderinfo, const UGender *genders, int32_t size, UErrorCode *status);
+ugender_getListGender(const UGenderInfo* genderInfo, const UGender *genders, int32_t size, UErrorCode *status);
 
 #endif /* #if !UCONFIG_NO_FORMATTING */
 
diff --git a/source/i18n/unicode/ulistformatter.h b/source/i18n/unicode/ulistformatter.h
new file mode 100644 (file)
index 0000000..d794a89
--- /dev/null
@@ -0,0 +1,150 @@
+// © 2016 and later: Unicode, Inc. and others.
+// License & terms of use: http://www.unicode.org/copyright.html
+/*
+*****************************************************************************************
+* Copyright (C) 2015-2016, International Business Machines
+* Corporation and others. All Rights Reserved.
+*****************************************************************************************
+*/
+
+#ifndef ULISTFORMATTER_H
+#define ULISTFORMATTER_H
+
+#include "unicode/utypes.h"
+
+#if !UCONFIG_NO_FORMATTING
+
+#include "unicode/localpointer.h"
+
+/**
+ * \file
+ * \brief C API: Format a list in a locale-appropriate way.
+ *
+ * A UListFormatter is used to format a list of items in a locale-appropriate way, 
+ * using data from CLDR.
+ * Example: Input data ["Alice", "Bob", "Charlie", "Delta"] will be formatted
+ * as "Alice, Bob, Charlie, and Delta" in English.
+ */
+
+/**
+ * Opaque UListFormatter object for use in C
+ * @stable ICU 55
+ */
+struct UListFormatter;
+typedef struct UListFormatter UListFormatter;  /**< C typedef for struct UListFormatter. @stable ICU 55 */
+
+#ifndef U_HIDE_DRAFT_API
+/**
+ * FieldPosition and UFieldPosition selectors for format fields
+ * defined by ListFormatter.
+ * @draft ICU 63
+ */
+typedef enum UListFormatterField {
+    /**
+     * The literal text in the result which came from the resources.
+     * @draft ICU 63
+     */
+    ULISTFMT_LITERAL_FIELD,
+    /**
+     * The element text in the result which came from the input strings.
+     * @draft ICU 63
+     */
+    ULISTFMT_ELEMENT_FIELD
+} UListFormatterField;
+#endif // U_HIDE_DRAFT_API
+
+/**
+ * Open a new UListFormatter object using the rules for a given locale.
+ * @param locale
+ *            The locale whose rules should be used; may be NULL for
+ *            default locale.
+ * @param status
+ *            A pointer to a standard ICU UErrorCode (input/output parameter).
+ *            Its input value must pass the U_SUCCESS() test, or else the
+ *            function returns immediately. The caller should check its output
+ *            value with U_FAILURE(), or use with function chaining (see User
+ *            Guide for details).
+ * @return
+ *            A pointer to a UListFormatter object for the specified locale,
+ *            or NULL if an error occurred.
+ * @stable ICU 55
+ */
+U_CAPI UListFormatter* U_EXPORT2
+ulistfmt_open(const char*  locale,
+              UErrorCode*  status);
+
+/**
+ * Close a UListFormatter object. Once closed it may no longer be used.
+ * @param listfmt
+ *            The UListFormatter object to close.
+ * @stable ICU 55
+ */
+U_CAPI void U_EXPORT2
+ulistfmt_close(UListFormatter *listfmt);
+
+
+#if U_SHOW_CPLUSPLUS_API
+
+U_NAMESPACE_BEGIN
+
+/**
+ * \class LocalUListFormatterPointer
+ * "Smart pointer" class, closes a UListFormatter via ulistfmt_close().
+ * For most methods see the LocalPointerBase base class.
+ *
+ * @see LocalPointerBase
+ * @see LocalPointer
+ * @stable ICU 55
+ */
+U_DEFINE_LOCAL_OPEN_POINTER(LocalUListFormatterPointer, UListFormatter, ulistfmt_close);
+
+U_NAMESPACE_END
+
+#endif
+
+/**
+ * Formats a list of strings using the conventions established for the
+ * UListFormatter object.
+ * @param listfmt
+ *            The UListFormatter object specifying the list conventions.
+ * @param strings
+ *            An array of pointers to UChar strings; the array length is
+ *            specified by stringCount. Must be non-NULL if stringCount > 0.
+ * @param stringLengths
+ *            An array of string lengths corresponding to the strings[]
+ *            parameter; any individual length value may be negative to indicate
+ *            that the corresponding strings[] entry is 0-terminated, or
+ *            stringLengths itself may be NULL if all of the strings are
+ *            0-terminated. If non-NULL, the stringLengths array must have
+ *            stringCount entries.
+ * @param stringCount
+ *            the number of entries in strings[], and the number of entries
+ *            in the stringLengths array if it is not NULL. Must be >= 0.
+ * @param result
+ *            A pointer to a buffer to receive the formatted list.
+ * @param resultCapacity
+ *            The maximum size of result.
+ * @param status
+ *            A pointer to a standard ICU UErrorCode (input/output parameter).
+ *            Its input value must pass the U_SUCCESS() test, or else the
+ *            function returns immediately. The caller should check its output
+ *            value with U_FAILURE(), or use with function chaining (see User
+ *            Guide for details).
+ * @return
+ *            The total buffer size needed; if greater than resultLength, the
+ *            output was truncated. May be <=0 if unable to determine the
+ *            total buffer size needed (e.g. for illegal arguments).
+ * @stable ICU 55
+ */
+U_CAPI int32_t U_EXPORT2
+ulistfmt_format(const UListFormatter* listfmt,
+                const UChar* const strings[],
+                const int32_t *    stringLengths,
+                int32_t            stringCount,
+                UChar*             result,
+                int32_t            resultCapacity,
+                UErrorCode*        status);
+
+#endif /* #if !UCONFIG_NO_FORMATTING */
+
+#endif
index 718132676029d6e7a23e8313d30ceecef080982f..5926e0e3a9b89f37bf6345e04b1ecf5764c20f60 100644 (file)
@@ -91,7 +91,7 @@
  * </ul>
  *
  * <p>
- * This enum is similar to {@link com.ibm.icu.text.MeasureFormat.FormatWidth}.
+ * This enum is similar to {@link UMeasureFormatWidth}.
  *
  * @draft ICU 60
  */
@@ -190,10 +190,9 @@ typedef enum UNumberUnitWidth {
  * Note: This enum specifies the strategy for grouping sizes. To set which character to use as the
  * grouping separator, use the "symbols" setter.
  *
- * @draft ICU 61 -- TODO: This should be renamed to UNumberGroupingStrategy before promoting to stable,
- * for consistency with the other enums.
+ * @draft ICU 63
  */
-typedef enum UGroupingStrategy {
+typedef enum UNumberGroupingStrategy {
     /**
      * Do not display grouping separators in any locale.
      *
@@ -254,16 +253,28 @@ typedef enum UGroupingStrategy {
      *
      * @draft ICU 61
      */
-            UNUM_GROUPING_THOUSANDS,
+            UNUM_GROUPING_THOUSANDS
 
+#ifndef U_HIDE_INTERNAL_API
+    ,
     /**
-     * One more than the highest UGroupingStrategy value.
+     * One more than the highest UNumberGroupingStrategy value.
      *
      * @internal ICU 62: The numeric value may change over time; see ICU ticket #12420.
      */
             UNUM_GROUPING_COUNT
+#endif  /* U_HIDE_INTERNAL_API */
+
+} UNumberGroupingStrategy;
+
+#ifndef U_HIDE_DEPRECATED_API
+/**
+ * Old name for compatibility: will be removed in ICU 64.
+ * @deprecated ICU 63
+ */
+typedef UNumberGroupingStrategy UGroupingStrategy;
+#endif  /* U_HIDE_DEPRECATED_API */
 
-} UGroupingStrategy;
 #endif  /* U_HIDE_DRAFT_API */
 
 #ifndef U_HIDE_DRAFT_API
@@ -398,6 +409,8 @@ typedef enum UNumberDecimalSeparatorDisplay {
 #endif  /* U_HIDE_DRAFT_API */
 
 #ifndef U_HIDE_DRAFT_API
+
+struct UNumberFormatter;
 /**
  * C-compatible version of icu::number::LocalizedNumberFormatter.
  *
@@ -405,10 +418,9 @@ typedef enum UNumberDecimalSeparatorDisplay {
  *
  * @draft ICU 62
  */
-struct UNumberFormatter;
 typedef struct UNumberFormatter UNumberFormatter;
 
-
+struct UFormattedNumber;
 /**
  * C-compatible version of icu::number::FormattedNumber.
  *
@@ -416,7 +428,6 @@ typedef struct UNumberFormatter UNumberFormatter;
  *
  * @draft ICU 62
  */
-struct UFormattedNumber;
 typedef struct UFormattedNumber UFormattedNumber;
 
 
@@ -559,7 +570,8 @@ unumf_resultToString(const UFormattedNumber* uresult, UChar* buffer, int32_t buf
  *
  * NOTE: All fields of the UFieldPosition must be initialized before calling this method.
  *
- * @param fieldPosition
+ * @param uresult The object containing the formatted number.
+ * @param ufpos
  *            Input+output variable. On input, the "field" property determines which field to look up,
  *            and the "endIndex" property determines where to begin the search. On output, the
  *            "beginIndex" field is set to the beginning of the first occurrence of the field after the
@@ -580,7 +592,7 @@ unumf_resultNextFieldPosition(const UFormattedNumber* uresult, UFieldPosition* u
  * If you need information on only one field, use unumf_resultNextFieldPosition().
  *
  * @param uresult The object containing the formatted number.
- * @param fpositer
+ * @param ufpositer
  *         A pointer to a UFieldPositionIterator created by {@link #ufieldpositer_open}. Iteration
  *         information already present in the UFieldPositionIterator is deleted, and the iterator is reset
  *         to apply to the fields in the formatted string created by this function call. The field values
index ebfcdf7ec6a494e342c2b351ead27ca721b5a029..3a7c311ce953a8464ffbf4eb0113ed5df45185a0 100644 (file)
@@ -257,10 +257,9 @@ typedef enum {
      * match an e with the same diacritic or a plain e in the searched text.
      *
      * This option is similar to "asymmetric search" as described in
-     * <a href="http://www.unicode.org/reports/tr10/#Asymmetric_Search">
-     * UTS #10 Unicode Collation Algorithm</a, but also allows unmarked
-     * characters in the searched text to match marked or unmarked versions of
-     * that character in the pattern.
+     * [UTS #10 Unicode Collation Algorithm](http://www.unicode.org/reports/tr10/#Asymmetric_Search),
+     * but also allows unmarked characters in the searched text to match
+     * marked or unmarked versions of that character in the pattern.
      *
      * @stable ICU 4.4
      */
index 781a88247fe4c5be0b263fb8ac9ef8738b4d7831..d15ba4b24235dcb0b727b28bc299aedc6034ded4 100644 (file)
@@ -94,7 +94,6 @@
  * // ...
  * \endcode
  *
- * <p>
  * UTS 39 defines two strings to be <em>confusable</em> if they map to the same <em>skeleton string</em>. A skeleton can
  * be thought of as a "hash code". {@link uspoof_getSkeleton} computes the skeleton for a particular string, so
  * the following snippet is equivalent to the example above:
  * free(skel2);
  * \endcode
  *
- * <p>
  * If you need to check if a string is confusable with any string in a dictionary of many strings, rather than calling
  * {@link uspoof_areConfusable} many times in a loop, {@link uspoof_getSkeleton} can be used instead, as shown below:
  *
  * uspoof_close(sc);
  * \endcode
  *
- * <p>
  * <b>Note:</b> Since the Unicode confusables mapping table is frequently updated, confusable skeletons are <em>not</em>
  * guaranteed to be the same between ICU releases. We therefore recommend that you always compute confusable skeletons
  * at runtime and do not rely on creating a permanent, or difficult to update, database of skeletons.
  *
  * <h2>Spoof Detection</h2>
  *
- * <p>
  * The following snippet shows a minimal example of using <code>USpoofChecker</code> to perform spoof detection on a
  * string:
  *
  * uset_close(allowed);
  * \endcode
  *
- * <p>
  * As in the case for confusability checking, it is good practice to create one <code>USpoofChecker</code> instance at
  * startup, and call the cheaper {@link uspoof_check} online. We specify the set of
  * allowed characters to be those with type RECOMMENDED or INCLUSION, according to the recommendation in UTS 39.
  *
- * <p>
  * In addition to {@link uspoof_check}, the function {@link uspoof_checkUTF8} is exposed for UTF8-encoded char* strings,
  * and {@link uspoof_checkUnicodeString} is exposed for C++ programmers.
  *
- * <p>
  * If the {@link USPOOF_AUX_INFO} check is enabled, a limited amount of information on why a string failed the checks
  * is available in the returned bitmask.  For complete information, use the {@link uspoof_check2} class of functions
  * with a {@link USpoofCheckResult} parameter:
  * // Explicit cleanup not necessary.
  * \endcode
  *
- * <p>
  * The return value is a bitmask of the checks that failed. In this case, there was one check that failed:
  * {@link USPOOF_RESTRICTION_LEVEL}, corresponding to the fifth bit (16). The possible checks are:
  *
  * uspoof_close(sc);
  * \endcode
  *
- * <p>
  * Here is an example in C++ showing how to compute the restriction level of a string:
  *
  * \code{.cpp}
  * printf("Restriction level: %#010x (status: %s)\n", restrictionLevel, u_errorName(status));
  * \endcode
  *
- * <p>
  * The code '0x50000000' corresponds to the restriction level USPOOF_MINIMALLY_RESTRICTIVE.  Since
  * USPOOF_MINIMALLY_RESTRICTIVE is weaker than USPOOF_MODERATELY_RESTRICTIVE, the string fails the check.
  *
- * <p>
  * <b>Note:</b> The Restriction Level is the most powerful of the checks. The full logic is documented in
  * <a href="http://unicode.org/reports/tr39/#Restriction_Level_Detection">UTS 39</a>, but the basic idea is that strings
  * are restricted to contain characters from only a single script, <em>except</em> that most scripts are allowed to have
  *
  * <h2>Additional Information</h2>
  *
- * <p>
  * A <code>USpoofChecker</code> instance may be used repeatedly to perform checks on any number of identifiers.
  *
- * <p>
  * <b>Thread Safety:</b> The test functions for checking a single identifier, or for testing whether
  * two identifiers are possible confusable, are thread safe. They may called concurrently, from multiple threads,
  * using the same USpoofChecker instance.
  *
- * <p>
  * More generally, the standard ICU thread safety rules apply: functions that take a const USpoofChecker parameter are
  * thread safe. Those that take a non-const USpoofChecker are not thread safe..
  *
@@ -1219,14 +1205,21 @@ U_NAMESPACE_BEGIN
 
 /**
  * \class LocalUSpoofCheckResultPointer
- * "Smart pointer" class, closes a USpoofCheckResult via {@link uspoof_closeCheckResult}.
+ * "Smart pointer" class, closes a USpoofCheckResult via `uspoof_closeCheckResult()`.
  * For most methods see the LocalPointerBase base class.
  *
  * @see LocalPointerBase
  * @see LocalPointer
  * @stable ICU 58
  */
+
+/**
+ * \cond
+ * Note: Doxygen is giving a bogus warning on this U_DEFINE_LOCAL_OPEN_POINTER.
+ *       For now, suppress with a Doxygen cond
+ */
 U_DEFINE_LOCAL_OPEN_POINTER(LocalUSpoofCheckResultPointer, USpoofCheckResult, uspoof_closeCheckResult);
+/** \endcond */
 
 U_NAMESPACE_END
 
index 12f36894d71c4e45ee0de38c0ed1ffba210a2ca4..9a189a328713a9457a5fe097ab19154ec5d464a7 100644 (file)
@@ -1654,8 +1654,8 @@ int32_t RegexCImpl::appendTail(RegularExpression    *regexp,
         } else if (UTEXT_USES_U16(m->fInputText)) {
             srcIdx = (int32_t)nativeIdx;
         } else {
-            UErrorCode status = U_ZERO_ERROR;
-            srcIdx = utext_extract(m->fInputText, 0, nativeIdx, NULL, 0, &status);
+            UErrorCode newStatus = U_ZERO_ERROR;
+            srcIdx = utext_extract(m->fInputText, 0, nativeIdx, NULL, 0, &newStatus);
         }
 
         for (;;) {
index 645db01ecb1e6edb110dc88001d5333fd8b1123e..4f758bac5156977149e950bd6a0dd73858f6913f 100644 (file)
@@ -498,7 +498,7 @@ inline void setShiftTable(int16_t   shift[], int16_t backshift[],
     for (count = 0; count < cesize; count ++) {
         // number of ces from right of array to the count
         int temp = defaultforward - count - 1;
-        shift[hashFromCE32(cetable[count])] = temp > 1 ? temp : 1;
+        shift[hashFromCE32(cetable[count])] = temp > 1 ? static_cast<int16_t>(temp) : 1;
     }
     shift[hashFromCE32(cetable[cesize])] = 1;
     // for ignorables we just shift by one. see test examples.
index 2985c7317f4253cd6b406c6cb3d410e9f443d46b..0eee0e58a8a36ac35b88611500f21ec8eed16060 100644 (file)
@@ -20,7 +20,7 @@
 #include "unicode/uspoof.h"
 #include "unicode/uscript.h"
 #include "unicode/udata.h"
-
+#include "udataswp.h"
 #include "utrie2.h"
 
 #if !UCONFIG_NO_NORMALIZATION
index 6ddcf4117d1d7af2763ffad358aa139c4435eea7..cb84c6260f630ca5e7cad41fc068e1b5ef376e0e 100644 (file)
@@ -135,7 +135,7 @@ static UnicodeString& appendAsciiDigits(int32_t number, uint8_t length, UnicodeS
             digits[i++] = number % 10;
             number /= 10;
         } while (number != 0);
-        length = i;
+        length = static_cast<uint8_t>(i);
     } else {
         // fixed digits
         for (i = 0; i < length; i++) {
index 02562048a525da623890fb8eb0459a273c57605e..b7139a807b3fb751be65d4431e7d626b17d03c2f 100644 (file)
@@ -319,10 +319,10 @@ ZoneMeta::getCanonicalCLDRID(const UnicodeString &tzid, UErrorCode& status) {
                 id[len] = (char) 0; // Make sure it is null terminated.
 
                 // replace '/' with ':'
-                char *p = id;
-                while (*p++) {
-                    if (*p == '/') {
-                        *p = ':';
+                char *q = id;
+                while (*q++) {
+                    if (*q == '/') {
+                        *q = ':';
                     }
                 }
 
@@ -850,13 +850,13 @@ ZoneMeta::createCustomTimeZone(int32_t offset) {
         negative = TRUE;
         tmp = -offset;
     }
-    int32_t hour, min, sec;
+    uint8_t hour, min, sec;
 
     tmp /= 1000;
-    sec = tmp % 60;
+    sec = static_cast<uint8_t>(tmp % 60);
     tmp /= 60;
-    min = tmp % 60;
-    hour = tmp / 60;
+    min = static_cast<uint8_t>(tmp % 60);
+    hour = static_cast<uint8_t>(tmp / 60);
 
     UnicodeString zid;
     formatCustomID(hour, min, sec, negative, zid);
index 2144dbe710836969189d4055f9be0946550d2413..7e7b5cd9b8afa958f9a7d860e0ef04041c190a24 100644 (file)
@@ -2,7 +2,8 @@
 <Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
   <!-- The following import will include the 'default' configuration options for VS projects. -->
   <Import Project="..\allinone\Build.Windows.ProjectConfiguration.props" />
-
+  <!-- The following import will include the library configuration options for VS projects. -->
+  <Import Project="..\allinone\Build.Windows.Library.ProjectConfiguration.props" />
   <PropertyGroup Label="Globals">
     <ProjectGuid>{C2B04507-2521-4801-BF0D-5FD79D6D518C}</ProjectGuid>
   </PropertyGroup>
@@ -76,7 +77,7 @@
       <CompileAs>Default</CompileAs>
     </ClCompile>
     <Link>
-      <OutputFile>..\..\bin\icuio62.dll</OutputFile>
+      <OutputFile>..\..\bin\icuio63.dll</OutputFile>
       <AdditionalDependencies>icuuc.lib;icuin.lib;%(AdditionalDependencies)</AdditionalDependencies>
       <AdditionalLibraryDirectories>..\..\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
       <ProgramDatabaseFile>.\..\..\lib\icuio.pdb</ProgramDatabaseFile>
       <CompileAs>Default</CompileAs>
     </ClCompile>
     <Link>
-      <OutputFile>..\..\bin\icuio62d.dll</OutputFile>
+      <OutputFile>..\..\bin\icuio63d.dll</OutputFile>
       <AdditionalDependencies>icuucd.lib;icuind.lib;%(AdditionalDependencies)</AdditionalDependencies>
       <AdditionalLibraryDirectories>..\..\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
       <GenerateDebugInformation>true</GenerateDebugInformation>
       <CompileAs>Default</CompileAs>
     </ClCompile>
     <Link>
-      <OutputFile>..\..\bin64\icuio62.dll</OutputFile>
+      <OutputFile>..\..\bin64\icuio63.dll</OutputFile>
       <AdditionalDependencies>icuuc.lib;icuin.lib;%(AdditionalDependencies)</AdditionalDependencies>
       <AdditionalLibraryDirectories>..\..\lib64;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
       <ProgramDatabaseFile>.\..\..\lib64\icuio.pdb</ProgramDatabaseFile>
       <CompileAs>Default</CompileAs>
     </ClCompile>
     <Link>
-      <OutputFile>..\..\bin64\icuio62d.dll</OutputFile>
+      <OutputFile>..\..\bin64\icuio63d.dll</OutputFile>
       <AdditionalDependencies>icuucd.lib;icuind.lib;%(AdditionalDependencies)</AdditionalDependencies>
       <AdditionalLibraryDirectories>..\..\lib64;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
       <GenerateDebugInformation>true</GenerateDebugInformation>
index 2b1a76fc8a2984426f0443bd4c341ea288d29361..0b6c18ff966178cba8d958eaadf09aeef325c9ff 100644 (file)
@@ -140,7 +140,7 @@ ufmt_uto64(const UChar     *buffer,
 {
     const UChar     *limit;
     int32_t         count;
-    int64_t        result;
+    uint64_t        result;
     
     
     /* intialize parameters */
@@ -160,7 +160,7 @@ ufmt_uto64(const UChar     *buffer,
     }
     
     *len = count;
-    return result;
+    return static_cast<int64_t>(result);
 }
 
 #define NIBBLE_PER_BYTE 2
@@ -235,7 +235,7 @@ ufmt_defaultCPToUnicode(const char *s, int32_t sSize,
         return 0;
 
     if(sSize <= 0) {
-        sSize = uprv_strlen(s) + 1;
+        sSize = static_cast<int32_t>(uprv_strlen(s)) + 1;
     }
     
     /* perform the conversion in one swoop */
index d433707ded9e58c4a4b808fe28ab23c6330bd325..3c9effaadaffc0584fdb307695c33c8e74700b75 100644 (file)
@@ -183,7 +183,7 @@ u_vfprintf(    UFILE        *f,
     else {
         pattern = buffer;
     }
-    u_charsToUChars(patternSpecification, pattern, size);
+    u_charsToUChars(patternSpecification, pattern, static_cast<int32_t>(size));
 
     /* do the work */
     count = u_vfprintf_u(f, pattern, ap);
index 948521a7fef3782951952464af71dcb253bf6d0c..51676ea0f545e910241c06c1fa3f0a60a5839f29 100644 (file)
@@ -123,7 +123,7 @@ operator>>(STD_ISTREAM& stream, UnicodeString& str)
             /* Was the character consumed? */
             if (us != uBuffer) {
                 /* Reminder: ibm-1390 & JISX0213 can output 2 Unicode code points */
-                int32_t uBuffSize = us-uBuffer;
+                int32_t uBuffSize = static_cast<int32_t>(us-uBuffer);
                 int32_t uBuffIdx = 0;
                 while (uBuffIdx < uBuffSize) {
                     U16_NEXT(uBuffer, uBuffIdx, uBuffSize, ch32);
index 0d9f08f7343f0fcbfd66e3d81a3c070692419302..60972dc93865f996000c0d577e9da5e046272e6e 100644 (file)
@@ -42,13 +42,11 @@ U_NAMESPACE_BEGIN
  *
  * Clients can use this to break a paragraph into lines, and to display the glyphs in each line.
  *
- * Note that {@link icu::LayoutEngine} is deprecated, but this class is not.
+ * Note that the ICU layout engine has been deprecated and removed.
  * You may use this class with the HarfBuzz icu-le-hb wrapper,
  *  see http://www.freedesktop.org/wiki/Software/HarfBuzz/
  *
  *  See http://userguide.icu-project.org/layoutengine for special build instructions.
- *
- * @see icu::LayoutEngine
  */
 class U_LAYOUTEX_API ParagraphLayout : public UObject
 {
index bfe8eb05f2457271add90cb7ba58d30a5c75797d..2bc31e5e2724f016e23c791a1b25223e73a72a2b 100644 (file)
@@ -74,7 +74,7 @@
       <CompileAs>Default</CompileAs>
     </ClCompile>
     <Link>
-      <OutputFile>..\..\bin\iculx62.dll</OutputFile>
+      <OutputFile>..\..\bin\iculx63.dll</OutputFile>
       <AdditionalDependencies>icuuc.lib;%(AdditionalDependencies)</AdditionalDependencies>
       <AdditionalLibraryDirectories>.\..\..\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
       <ProgramDatabaseFile>.\..\..\lib\iculx.pdb</ProgramDatabaseFile>
       <CompileAs>Default</CompileAs>
     </ClCompile>
     <Link>
-      <OutputFile>..\..\bin\iculx62d.dll</OutputFile>
+      <OutputFile>..\..\bin\iculx63d.dll</OutputFile>
       <AdditionalDependencies>icuucd.lib;%(AdditionalDependencies)</AdditionalDependencies>
       <AdditionalLibraryDirectories>.\..\..\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
       <GenerateDebugInformation>true</GenerateDebugInformation>
       <CompileAs>Default</CompileAs>
     </ClCompile>
     <Link>
-      <OutputFile>..\..\bin64\iculx62.dll</OutputFile>
+      <OutputFile>..\..\bin64\iculx63.dll</OutputFile>
       <AdditionalDependencies>icuuc.lib;%(AdditionalDependencies)</AdditionalDependencies>
       <AdditionalLibraryDirectories>.\..\..\lib64;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
       <ProgramDatabaseFile>.\..\..\lib64\iculx.pdb</ProgramDatabaseFile>
       <CompileAs>Default</CompileAs>
     </ClCompile>
     <Link>
-      <OutputFile>..\..\bin64\iculx62d.dll</OutputFile>
+      <OutputFile>..\..\bin64\iculx63d.dll</OutputFile>
       <AdditionalDependencies>icuucd.lib;%(AdditionalDependencies)</AdditionalDependencies>
       <AdditionalLibraryDirectories>.\..\..\lib64;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
       <GenerateDebugInformation>true</GenerateDebugInformation>
index abe8832b662c3e4b6eef6b55384a47a65aacd6e4..77df3a068628f4153570e08b336cd0059fd9afa7 100755 (executable)
@@ -265,8 +265,8 @@ case $platform in
         CXX=cl; export CXX
         RELEASE_CFLAGS='-Gy -MD'
         RELEASE_CXXFLAGS='-Gy -MD'
-        DEBUG_CFLAGS='-Zi -MDd'
-        DEBUG_CXXFLAGS='-Zi -MDd'
+        DEBUG_CFLAGS='-FS -Zi -MDd'
+        DEBUG_CXXFLAGS='-FS -Zi -MDd'
         DEBUG_LDFLAGS='-DEBUG'
         ;;
     Cygwin/MSVC2005)
@@ -324,8 +324,8 @@ case $platform in
         CXX=cl; export CXX
         RELEASE_CFLAGS='-Gy -MD'
         RELEASE_CXXFLAGS='-Gy -MD'
-        DEBUG_CFLAGS='-Zi -MDd'
-        DEBUG_CXXFLAGS='-Zi -MDd'
+        DEBUG_CFLAGS='-FS -Zi -MDd'
+        DEBUG_CXXFLAGS='-FS -Zi -MDd'
         DEBUG_LDFLAGS='-DEBUG'
         ;;
     *BSD)
index 0a80c674a06e2388a8b2ae5acdb2a83385f8d918..c85a6c655dd157ab26934682e24066b1607de70d 100644 (file)
-@echo off\r
-REM Copyright (C) 2016 and later: Unicode, Inc. and others.\r
-REM License & terms of use: http://www.unicode.org/copyright.html\r
-REM  ********************************************************************\r
-\r
-REM Don't add additional global environment variables, keep the variables local to this script.\r
-rem setlocal\r
-\r
-set ICU_ARCH=%1\r
-set ICU_DBRL=%2\r
-\r
-if "%1" == "" (\r
- echo Usage: %0 "x86 or x64"  "Debug or Release"\r
- exit /b 1\r
-)\r
-\r
-if "%2" == "" (\r
- echo Usage: %0 %1 "Debug or Release"\r
- exit /b 1\r
-)\r
-\r
-set ICU_ICUDIR="%~dp0"\..\..\..\r
-set ICU_SAMPLESDIR=%ICU_ICUDIR%\source\samples\r
-\r
-if "%ICU_ARCH%" == "x64" (\r
- set ICU_BINDIR=%~dp0..\..\..\bin64\r
-) else (\r
- set ICU_BINDIR=%~dp0..\..\..\bin\r
-)\r
-\r
-if not exist "%ICU_BINDIR%" (\r
- echo Error '%ICU_BINDIR%' does not exist!\r
- echo Have you built all of ICU yet ?\r
- goto :eof\r
-)\r
-\r
-echo Testing ICU samples in %ICU_ICUDIR%  arch=%ICU_ARCH% type=%ICU_DBRL%\r
-set PATH=%ICU_BINDIR%;%PATH%\r
-pushd %ICU_BINDIR%\r
-\r
-set SAMPLE_BREAK=%ICU_SAMPLESDIR%\break\%ICU_ARCH%\%ICU_DBRL%\break.exe\r
-set SAMPLE_CAL=%ICU_SAMPLESDIR%\cal\%ICU_ARCH%\%ICU_DBRL%\cal.exe\r
-set SAMPLE_CASE=%ICU_SAMPLESDIR%\case\%ICU_ARCH%\%ICU_DBRL%\case.exe\r
-set SAMPLE_CITER=%ICU_SAMPLESDIR%\citer\%ICU_ARCH%\%ICU_DBRL%\citer.exe\r
-set SAMPLE_COLL=%ICU_SAMPLESDIR%\coll\%ICU_ARCH%\%ICU_DBRL%\coll.exe\r
-set SAMPLE_CSDET=%ICU_SAMPLESDIR%\csdet\%ICU_ARCH%\%ICU_DBRL%\csdet.exe\r
-set SAMPLE_DATE=%ICU_SAMPLESDIR%\date\%ICU_ARCH%\%ICU_DBRL%\date.exe\r
-set SAMPLE_DATEFMT=%ICU_SAMPLESDIR%\datefmt\%ICU_ARCH%\%ICU_DBRL%\datefmt.exe\r
-set SAMPLE_DTITVFMT=%ICU_SAMPLESDIR%\dtitvfmtsample\%ICU_ARCH%\%ICU_DBRL%\dtitvfmtsample.exe\r
-set SAMPLE_DTPTNG=%ICU_SAMPLESDIR%\dtptngsample\%ICU_ARCH%\%ICU_DBRL%\dtptngsample.exe\r
-set SAMPLE_MSGFMT=%ICU_SAMPLESDIR%\msgfmt\%ICU_ARCH%\%ICU_DBRL%\msgfmt.exe\r
-set SAMPLE_NUMFMT=%ICU_SAMPLESDIR%\numfmt\%ICU_ARCH%\%ICU_DBRL%\numfmt.exe\r
-set SAMPLE_PLURFMTSAMPLE=%ICU_SAMPLESDIR%\plurfmtsample\%ICU_ARCH%\%ICU_DBRL%\plurfmtsample.exe\r
-set SAMPLE_PROPS=%ICU_SAMPLESDIR%\props\%ICU_ARCH%\%ICU_DBRL%\props.exe\r
-set SAMPLE_STRSRCH=%ICU_SAMPLESDIR%\strsrch\%ICU_ARCH%\%ICU_DBRL%\strsrch.exe\r
-set SAMPLE_TRANSLIT=%ICU_SAMPLESDIR%\translit\%ICU_ARCH%\%ICU_DBRL%\translit.exe\r
-set SAMPLE_UCITER8=%ICU_SAMPLESDIR%\uciter8\%ICU_ARCH%\%ICU_DBRL%\uciter8.exe\r
-set SAMPLE_UCNV=%ICU_SAMPLESDIR%\ucnv\%ICU_ARCH%\%ICU_DBRL%\ucnv.exe\r
-REM udata needs changes to the vcxproj to change the output locations for writer/reader.\r
-rem set SAMPLE_UDATA_WRITER=%ICU_SAMPLESDIR%\udata\%ICU_ARCH%\%ICU_DBRL%\writer.exe\r
-rem set SAMPLE_UDATA_READER=%ICU_SAMPLESDIR%\udata\%ICU_ARCH%\%ICU_DBRL%\reader.exe\r
-set SAMPLE_UFORTUNE=%ICU_SAMPLESDIR%\ufortune\%ICU_ARCH%\%ICU_DBRL%\ufortune.exe\r
-set SAMPLE_UGREP=%ICU_SAMPLESDIR%\ugrep\%ICU_ARCH%\%ICU_DBRL%\ugrep.exe\r
-REM There is also the 'resources' project in VS.\r
-set SAMPLE_URESB=%ICU_SAMPLESDIR%\uresb\%ICU_ARCH%\%ICU_DBRL%\uresb.exe\r
-set SAMPLE_USTRING=%ICU_SAMPLESDIR%\ustring\%ICU_ARCH%\%ICU_DBRL%\ustring.exe\r
-\r
-\r
-@set THT=break\r
-@echo.\r
-@echo ==== %THT% =========================================================================\r
-%SAMPLE_BREAK%\r
-if ERRORLEVEL 1 goto :SampleError\r
-\r
-@set THT=cal\r
-@echo.\r
-@echo ==== %THT% =========================================================================\r
-%SAMPLE_CAL%\r
-if ERRORLEVEL 1 goto :SampleError\r
-\r
-@set THT=case\r
-@echo.\r
-@echo ==== %THT% =========================================================================\r
-%SAMPLE_CASE%\r
-if ERRORLEVEL 1 goto :SampleError\r
-\r
-@set THT=citer\r
-@echo.\r
-@echo ==== %THT% =========================================================================\r
-%SAMPLE_CITER%\r
-if ERRORLEVEL 1 goto :SampleError\r
-\r
-@set THT=coll\r
-@echo.\r
-@echo ==== %THT% =========================================================================\r
-%SAMPLE_COLL%\r
-if ERRORLEVEL 1 goto :SampleError\r
-\r
-@set THT=csdet\r
-@echo.\r
-@echo ==== %THT% =========================================================================\r
-%SAMPLE_CSDET% %ICU_SAMPLESDIR%\csdet\readme.txt\r
-if ERRORLEVEL 1 goto :SampleError\r
-\r
-@set THT=date\r
-@echo.\r
-@echo ==== %THT% =========================================================================\r
-%SAMPLE_DATE%\r
-if ERRORLEVEL 1 goto :SampleError\r
-\r
-@set THT=datefmt\r
-@echo.\r
-@echo ==== %THT% =========================================================================\r
-%SAMPLE_DATEFMT%\r
-if ERRORLEVEL 1 goto :SampleError\r
-\r
-@set THT=dtitvfmtsample\r
-@echo.\r
-@echo ==== %THT% =========================================================================\r
-%SAMPLE_DTITVFMT%\r
-if ERRORLEVEL 1 goto :SampleError\r
-\r
-@set THT=dtptngsample\r
-@echo.\r
-@echo ==== %THT% =========================================================================\r
-pushd %ICU_SAMPLESDIR%\dtptngsample\%ICU_ARCH%\%ICU_DBRL%\r
-%SAMPLE_DTPTNG%\r
-popd\r
-if ERRORLEVEL 1 goto :SampleError\r
-\r
-@set THT=msgfmt\r
-@echo.\r
-@echo ==== %THT% =========================================================================\r
-%SAMPLE_MSGFMT% arg1 arg2\r
-if ERRORLEVEL 1 goto :SampleError\r
-\r
-@set THT=numfmt\r
-@echo.\r
-@echo ==== %THT% =========================================================================\r
-%SAMPLE_NUMFMT%\r
-if ERRORLEVEL 1 goto :SampleError\r
-\r
-@set THT=plurfmtsample\r
-@echo.\r
-@echo ==== %THT% =========================================================================\r
-%SAMPLE_PLURFMTSAMPLE%\r
-if ERRORLEVEL 1 goto :SampleError\r
-\r
-@set THT=props\r
-@echo.\r
-@echo ==== %THT% =========================================================================\r
-%SAMPLE_PROPS%\r
-if ERRORLEVEL 1 goto :SampleError\r
-\r
-@set THT=strsrch\r
-@echo.\r
-@echo ==== %THT% =========================================================================\r
-%SAMPLE_STRSRCH%\r
-if ERRORLEVEL 1 goto :SampleError\r
-\r
-@set THT=translit\r
-@echo.\r
-@echo ==== %THT% =========================================================================\r
-%SAMPLE_TRANSLIT%\r
-if ERRORLEVEL 1 goto :SampleError\r
-\r
-@set THT=citer8\r
-@echo.\r
-@echo ==== %THT% =========================================================================\r
-%SAMPLE_UCITER8%\r
-if ERRORLEVEL 1 goto :SampleError\r
-\r
-@set THT=ucnv\r
-@echo.\r
-@echo ==== %THT% =========================================================================\r
-pushd %ICU_SAMPLESDIR%\ucnv\r
-%SAMPLE_UCNV%\r
-popd\r
-if ERRORLEVEL 1 goto :SampleError\r
-\r
-REM TODO: udata needs changes to the vcxproj file to fix the output locations for writer/reader.\r
-@set THT=udata\r
-@echo.\r
-@echo ==== %THT% =========================================================================\r
-pushd %ICU_SAMPLESDIR%\udata\%ICU_ARCH%\%ICU_DBRL%\r
-@echo TODO: udata needs changes to the vcxproj file to fix the output locations for writer/reader.\r
-@echo Skipping %THT%\r
-rem %SAMPLE_UDATA_WRITER%\r
-rem %SAMPLE_UDATA_READER%\r
-popd\r
-if ERRORLEVEL 1 goto :SampleError\r
-\r
-@set THT=ufortune\r
-@echo.\r
-@echo ==== %THT% =========================================================================\r
-if "%ICU_ARCH%" == "x64" (\r
-    @echo The ufortune sample currently only runs on x86.\r
-    @echo Skipping %THT%.\r
-) else (\r
-    %SAMPLE_UFORTUNE%\r
-    if ERRORLEVEL 1 goto :SampleError\r
-)\r
-\r
-@set THT=ugrep\r
-@echo.\r
-@echo ==== %THT% =========================================================================\r
-echo Looking for "ICU" in '%ICU_SAMPLESDIR%\ugrep\readme.txt' with ugrep.exe \r
-%SAMPLE_UGREP% ICU %ICU_SAMPLESDIR%\ugrep\readme.txt\r
-if ERRORLEVEL 1 goto :SampleError\r
-\r
-@set THT=uresb\r
-@echo.\r
-@echo ==== %THT% =========================================================================\r
-pushd %ICU_SAMPLESDIR%\uresb\r
-%SAMPLE_URESB% en\r
-%SAMPLE_URESB% root\r
-%SAMPLE_URESB% sr\r
-popd\r
-if ERRORLEVEL 1 goto :SampleError\r
-\r
-@set THT=ustring\r
-@echo.\r
-@echo ==== %THT% =========================================================================\r
-%SAMPLE_USTRING%\r
-if ERRORLEVEL 1 goto :SampleError\r
-\r
-\r
-\r
-rem All done\r
-goto :QuitWithNoError\r
-\r
-:SampleError\r
- echo.\r
- echo ERROR: Sample program %THT% did not exit cleanly. Stopping execution.\r
- echo.\r
- goto :QuitWithError\r
-\r
-:QuitWithNoError\r
- echo.\r
- popd\r
- exit /b 0\r
-\r
-:QuitWithError\r
- echo.\r
- popd\r
- rem Exit with non-zero error code.\r
- exit /b 1\r
+@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 Don't add additional global environment variables, keep the variables local to this script.
+rem setlocal
+
+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_ICUDIR="%~dp0"\..\..\..
+set ICU_SAMPLESDIR=%ICU_ICUDIR%\source\samples
+
+if "%ICU_ARCH%" == "x64" (
+ set ICU_BINDIR=%~dp0..\..\..\bin64
+) else (
+ set ICU_BINDIR=%~dp0..\..\..\bin
+)
+
+if not exist "%ICU_BINDIR%" (
+ echo Error '%ICU_BINDIR%' does not exist!
+ echo Have you built all of ICU yet ?
+ goto :eof
+)
+
+echo Testing ICU samples in %ICU_ICUDIR%  arch=%ICU_ARCH% type=%ICU_DBRL%
+set PATH=%ICU_BINDIR%;%PATH%
+pushd %ICU_BINDIR%
+
+set SAMPLE_BREAK=%ICU_SAMPLESDIR%\break\%ICU_ARCH%\%ICU_DBRL%\break.exe
+set SAMPLE_CAL=%ICU_SAMPLESDIR%\cal\%ICU_ARCH%\%ICU_DBRL%\cal.exe
+set SAMPLE_CASE=%ICU_SAMPLESDIR%\case\%ICU_ARCH%\%ICU_DBRL%\case.exe
+set SAMPLE_CITER=%ICU_SAMPLESDIR%\citer\%ICU_ARCH%\%ICU_DBRL%\citer.exe
+set SAMPLE_COLL=%ICU_SAMPLESDIR%\coll\%ICU_ARCH%\%ICU_DBRL%\coll.exe
+set SAMPLE_CSDET=%ICU_SAMPLESDIR%\csdet\%ICU_ARCH%\%ICU_DBRL%\csdet.exe
+set SAMPLE_DATE=%ICU_SAMPLESDIR%\date\%ICU_ARCH%\%ICU_DBRL%\date.exe
+set SAMPLE_DATEFMT=%ICU_SAMPLESDIR%\datefmt\%ICU_ARCH%\%ICU_DBRL%\datefmt.exe
+set SAMPLE_DTITVFMT=%ICU_SAMPLESDIR%\dtitvfmtsample\%ICU_ARCH%\%ICU_DBRL%\dtitvfmtsample.exe
+set SAMPLE_DTPTNG=%ICU_SAMPLESDIR%\dtptngsample\%ICU_ARCH%\%ICU_DBRL%\dtptngsample.exe
+set SAMPLE_MSGFMT=%ICU_SAMPLESDIR%\msgfmt\%ICU_ARCH%\%ICU_DBRL%\msgfmt.exe
+set SAMPLE_NUMFMT=%ICU_SAMPLESDIR%\numfmt\%ICU_ARCH%\%ICU_DBRL%\numfmt.exe
+set SAMPLE_PLURFMTSAMPLE=%ICU_SAMPLESDIR%\plurfmtsample\%ICU_ARCH%\%ICU_DBRL%\plurfmtsample.exe
+set SAMPLE_PROPS=%ICU_SAMPLESDIR%\props\%ICU_ARCH%\%ICU_DBRL%\props.exe
+set SAMPLE_STRSRCH=%ICU_SAMPLESDIR%\strsrch\%ICU_ARCH%\%ICU_DBRL%\strsrch.exe
+set SAMPLE_TRANSLIT=%ICU_SAMPLESDIR%\translit\%ICU_ARCH%\%ICU_DBRL%\translit.exe
+set SAMPLE_UCITER8=%ICU_SAMPLESDIR%\uciter8\%ICU_ARCH%\%ICU_DBRL%\uciter8.exe
+set SAMPLE_UCNV=%ICU_SAMPLESDIR%\ucnv\%ICU_ARCH%\%ICU_DBRL%\ucnv.exe
+REM udata needs changes to the vcxproj to change the output locations for writer/reader.
+rem set SAMPLE_UDATA_WRITER=%ICU_SAMPLESDIR%\udata\%ICU_ARCH%\%ICU_DBRL%\writer.exe
+rem set SAMPLE_UDATA_READER=%ICU_SAMPLESDIR%\udata\%ICU_ARCH%\%ICU_DBRL%\reader.exe
+set SAMPLE_UFORTUNE=%ICU_SAMPLESDIR%\ufortune\%ICU_ARCH%\%ICU_DBRL%\ufortune.exe
+set SAMPLE_UGREP=%ICU_SAMPLESDIR%\ugrep\%ICU_ARCH%\%ICU_DBRL%\ugrep.exe
+REM There is also the 'resources' project in VS.
+set SAMPLE_URESB=%ICU_SAMPLESDIR%\uresb\%ICU_ARCH%\%ICU_DBRL%\uresb.exe
+set SAMPLE_USTRING=%ICU_SAMPLESDIR%\ustring\%ICU_ARCH%\%ICU_DBRL%\ustring.exe
+
+
+@set THT=break
+@echo.
+@echo ==== %THT% =========================================================================
+%SAMPLE_BREAK%
+if ERRORLEVEL 1 goto :SampleError
+
+@set THT=cal
+@echo.
+@echo ==== %THT% =========================================================================
+%SAMPLE_CAL%
+if ERRORLEVEL 1 goto :SampleError
+
+@set THT=case
+@echo.
+@echo ==== %THT% =========================================================================
+%SAMPLE_CASE%
+if ERRORLEVEL 1 goto :SampleError
+
+@set THT=citer
+@echo.
+@echo ==== %THT% =========================================================================
+%SAMPLE_CITER%
+if ERRORLEVEL 1 goto :SampleError
+
+@set THT=coll
+@echo.
+@echo ==== %THT% =========================================================================
+%SAMPLE_COLL%
+if ERRORLEVEL 1 goto :SampleError
+
+@set THT=csdet
+@echo.
+@echo ==== %THT% =========================================================================
+%SAMPLE_CSDET% %ICU_SAMPLESDIR%\csdet\readme.txt
+if ERRORLEVEL 1 goto :SampleError
+
+@set THT=date
+@echo.
+@echo ==== %THT% =========================================================================
+%SAMPLE_DATE%
+if ERRORLEVEL 1 goto :SampleError
+
+@set THT=datefmt
+@echo.
+@echo ==== %THT% =========================================================================
+%SAMPLE_DATEFMT%
+if ERRORLEVEL 1 goto :SampleError
+
+@set THT=dtitvfmtsample
+@echo.
+@echo ==== %THT% =========================================================================
+%SAMPLE_DTITVFMT%
+if ERRORLEVEL 1 goto :SampleError
+
+@set THT=dtptngsample
+@echo.
+@echo ==== %THT% =========================================================================
+pushd %ICU_SAMPLESDIR%\dtptngsample\%ICU_ARCH%\%ICU_DBRL%
+%SAMPLE_DTPTNG%
+popd
+if ERRORLEVEL 1 goto :SampleError
+
+@set THT=msgfmt
+@echo.
+@echo ==== %THT% =========================================================================
+%SAMPLE_MSGFMT% arg1 arg2
+if ERRORLEVEL 1 goto :SampleError
+
+@set THT=numfmt
+@echo.
+@echo ==== %THT% =========================================================================
+%SAMPLE_NUMFMT%
+if ERRORLEVEL 1 goto :SampleError
+
+@set THT=plurfmtsample
+@echo.
+@echo ==== %THT% =========================================================================
+%SAMPLE_PLURFMTSAMPLE%
+if ERRORLEVEL 1 goto :SampleError
+
+@set THT=props
+@echo.
+@echo ==== %THT% =========================================================================
+%SAMPLE_PROPS%
+if ERRORLEVEL 1 goto :SampleError
+
+@set THT=strsrch
+@echo.
+@echo ==== %THT% =========================================================================
+%SAMPLE_STRSRCH%
+if ERRORLEVEL 1 goto :SampleError
+
+@set THT=translit
+@echo.
+@echo ==== %THT% =========================================================================
+%SAMPLE_TRANSLIT%
+if ERRORLEVEL 1 goto :SampleError
+
+@set THT=citer8
+@echo.
+@echo ==== %THT% =========================================================================
+%SAMPLE_UCITER8%
+if ERRORLEVEL 1 goto :SampleError
+
+@set THT=ucnv
+@echo.
+@echo ==== %THT% =========================================================================
+pushd %ICU_SAMPLESDIR%\ucnv
+%SAMPLE_UCNV%
+popd
+if ERRORLEVEL 1 goto :SampleError
+
+REM TODO: udata needs changes to the vcxproj file to fix the output locations for writer/reader.
+@set THT=udata
+@echo.
+@echo ==== %THT% =========================================================================
+pushd %ICU_SAMPLESDIR%\udata\%ICU_ARCH%\%ICU_DBRL%
+@echo TODO: udata needs changes to the vcxproj file to fix the output locations for writer/reader.
+@echo Skipping %THT%
+rem %SAMPLE_UDATA_WRITER%
+rem %SAMPLE_UDATA_READER%
+popd
+if ERRORLEVEL 1 goto :SampleError
+
+@set THT=ufortune
+@echo.
+@echo ==== %THT% =========================================================================
+if "%ICU_ARCH%" == "x64" (
+    @echo The ufortune sample currently only runs on x86.
+    @echo Skipping %THT%.
+) else (
+    %SAMPLE_UFORTUNE%
+    if ERRORLEVEL 1 goto :SampleError
+)
+
+@set THT=ugrep
+@echo.
+@echo ==== %THT% =========================================================================
+echo Looking for "ICU" in '%ICU_SAMPLESDIR%\ugrep\readme.txt' with ugrep.exe 
+%SAMPLE_UGREP% ICU %ICU_SAMPLESDIR%\ugrep\readme.txt
+if ERRORLEVEL 1 goto :SampleError
+
+@set THT=uresb
+@echo.
+@echo ==== %THT% =========================================================================
+pushd %ICU_SAMPLESDIR%\uresb
+%SAMPLE_URESB% en
+%SAMPLE_URESB% root
+%SAMPLE_URESB% sr
+popd
+if ERRORLEVEL 1 goto :SampleError
+
+@set THT=ustring
+@echo.
+@echo ==== %THT% =========================================================================
+%SAMPLE_USTRING%
+if ERRORLEVEL 1 goto :SampleError
+
+
+
+rem All done
+goto :QuitWithNoError
+
+:SampleError
+ echo.
+ echo ERROR: Sample program %THT% did not exit cleanly. Stopping execution.
+ echo.
+ goto :QuitWithError
+
+:QuitWithNoError
+ echo.
+ popd
+ exit /b 0
+
+:QuitWithError
+ echo.
+ popd
+ rem Exit with non-zero error code.
+ exit /b 1
index 156a34178bdbd9009888b920ba43462f3273a3d3..400fe2c90555005a0137107dd8b0085a407f4b31 100644 (file)
@@ -48,8 +48,8 @@ int main(int argc, char **argv)
 /* Protos */
 static void usage(void);
 static void version(void);
-static void date(UDate when, const UChar *tz, UDateFormatStyle style, const char *format, UErrorCode *status);
-static UDate getWhen(const char *millis, const char *seconds, const char *format, UDateFormatStyle style, const char *parse, const UChar *tz, UErrorCode *status);
+static void date(UDate when, const UChar *tz, UDateFormatStyle style, const char *format, const char *locale, UErrorCode *status);
+static UDate getWhen(const char *millis, const char *seconds, const char *format, const char *locale, UDateFormatStyle style, const char *parse, const UChar *tz, UErrorCode *status);
 
 UConverter *cnv = NULL;
 
@@ -74,6 +74,7 @@ main(int argc,
   UDateFormatStyle style = UDAT_DEFAULT;
   UErrorCode status = U_ZERO_ERROR;
   const char *format = NULL;
+  const char *locale = NULL;
   char *parse = NULL;
   char *seconds = NULL;
   char *millis = NULL;
@@ -132,6 +133,12 @@ main(int argc,
          parse = argv[optInd];
       }
     }
+    else if (strcmp(arg, "-L") == 0) {
+      if (optInd + 1 < argc) {
+         optInd++;
+         locale = argv[optInd];
+      }
+    }
     /* POSIX.1 says all arguments after -- are not options */
     else if(strcmp(arg, "--") == 0) {
       /* skip the -- */
@@ -162,13 +169,13 @@ main(int argc,
   }
 
   /* get the 'when' (or now) */
-  when = getWhen(millis, seconds, format, style, parse, tz, &status);
+  when = getWhen(millis, seconds, format, locale, style, parse, tz, &status);
   if(parse != NULL) {
     format = FORMAT_MILLIS; /* output in millis */
   }
 
   /* print the date */
-  date(when, tz, style, format, &status);
+  date(when, tz, style, format, locale, &status);
 
   ucnv_close(cnv);
 
@@ -194,6 +201,7 @@ usage()
   puts("  -r <seconds>      Use <seconds> as the time (Epoch 1970) rather than now.");
   puts("  -R <millis>       Use <millis> as the time (Epoch 1970) rather than now.");
   puts("  -P <string>       Parse <string> as the time, output in millis format.");
+  puts("  -L <string>       Use the locale <string> instead of the default ICU locale.");
 }
 
 /* Version information */
@@ -245,6 +253,7 @@ date(UDate when,
      const UChar *tz,
      UDateFormatStyle style,
      const char *format,
+     const char *locale,
      UErrorCode *status )
 {
   UChar *s = 0;
@@ -264,7 +273,7 @@ date(UDate when,
     }
   }
 
-  fmt = udat_open(style, style, 0, tz, -1,NULL,0, status);
+  fmt = udat_open(style, style, locale, tz, -1,NULL,0, status);
   if ( format != NULL ) {
     charsToUCharsDefault(uFormat,sizeof(uFormat)/sizeof(uFormat[0]),format,-1,status);
     udat_applyPattern(fmt,FALSE,uFormat,-1);
@@ -292,7 +301,7 @@ date(UDate when,
   free(s);
 }
 
-static UDate getWhen(const char *millis, const char *seconds, const char *format, 
+static UDate getWhen(const char *millis, const char *seconds, const char *format, const char *locale,
                      UDateFormatStyle style, const char *parse, const UChar *tz, UErrorCode *status) {
   UDateFormat *fmt = NULL; 
   UChar uFormat[100];
@@ -319,7 +328,7 @@ static UDate getWhen(const char *millis, const char *seconds, const char *format
       }
     }
 
-    fmt = udat_open(style, style, 0, tz, -1,NULL,0, status);
+    fmt = udat_open(style, style, locale, tz, -1,NULL,0, status);
     if ( format != NULL ) {
       charsToUCharsDefault(uFormat,sizeof(uFormat)/sizeof(uFormat[0]), format,-1,status);
       udat_applyPattern(fmt,FALSE,uFormat,-1);
index aff344d9a0b774bda026bd4db61faea65d2c1f93..9af0c4c81827f5157e7976492e3a5697ec486082 100644 (file)
@@ -2,7 +2,8 @@
 <Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
   <!-- The following import will include the 'default' configuration options for VS projects. -->
   <Import Project="..\allinone\Build.Windows.ProjectConfiguration.props" />
-
+  <!-- The following import will include the library configuration options for VS projects. -->
+  <Import Project="..\allinone\Build.Windows.Library.ProjectConfiguration.props" />
   <PropertyGroup Label="Globals">
     <ProjectGuid>{203EC78A-0531-43F0-A636-285439BDE025}</ProjectGuid>
   </PropertyGroup>
@@ -97,7 +98,7 @@
       <ProgramDataBaseFileName>.\x86\Release/</ProgramDataBaseFileName>
     </ClCompile>
     <Link>
-      <OutputFile>..\..\bin\icudt62.dll</OutputFile>
+      <OutputFile>..\..\bin\icudt63.dll</OutputFile>
       <IgnoreAllDefaultLibraries>true</IgnoreAllDefaultLibraries>
       <ProgramDatabaseFile>.\x86\Release\icudt.pdb</ProgramDatabaseFile>
       <DataExecutionPrevention>
       <ProgramDataBaseFileName>.\x86\Debug/</ProgramDataBaseFileName>
     </ClCompile>
     <Link>
-      <OutputFile>..\..\bin\icudt62.dll</OutputFile>
+      <OutputFile>..\..\bin\icudt63.dll</OutputFile>
       <ProgramDatabaseFile>.\x86\Debug/icudt.pdb</ProgramDatabaseFile>
       <DataExecutionPrevention>
       </DataExecutionPrevention>
       <ProgramDataBaseFileName>.\x64\Release/</ProgramDataBaseFileName>
     </ClCompile>
     <Link>
-      <OutputFile>..\..\bin64\icudt62.dll</OutputFile>
+      <OutputFile>..\..\bin64\icudt63.dll</OutputFile>
       <IgnoreAllDefaultLibraries>true</IgnoreAllDefaultLibraries>
       <ProgramDatabaseFile>.\x64\Release\icudt.pdb</ProgramDatabaseFile>
       <ImportLibrary>..\..\lib64\icudt.lib</ImportLibrary>
       <ProgramDataBaseFileName>.\x64\Debug/</ProgramDataBaseFileName>
     </ClCompile>
     <Link>
-      <OutputFile>..\..\bin64\icudt62.dll</OutputFile>
+      <OutputFile>..\..\bin64\icudt63.dll</OutputFile>
       <ProgramDatabaseFile>.\x64\Debug/icudt.pdb</ProgramDatabaseFile>
       <ImportLibrary>..\..\lib64\icudt.lib</ImportLibrary>
     </Link>
index 7ce92770394b622835a61957afb109e663c9ea23..7bb5b222829e9c29485e5232ca7034ec76a004c3 100644 (file)
@@ -88,7 +88,7 @@ xcheck-recursive check-recursive check-exhaustive-recursive:
        @$(MKINSTALLDIRS) $(STATUS_TMP)
        @mystatus=$(STATUS_FULL)/status.$$$$.deleteme ; \
        $(RMV) "$$mystatus".* ; \
-       @goods=; \
+       goods=; \
        bads=; \
        target=`echo $@ | sed s/-recursive//`; \
        list='$(SUBDIRS)'; for subdir in $$list; do \
@@ -137,8 +137,8 @@ $(STATUS_FULL)/status.$(STATUS_NUM).deleteme.%: pcheck_setup
 
 # print out status
 pcheck: $(STATUS_FILES)
-       @goods= ; \
-       bads= ; \
+       @goods=; \
+       bads=; \
        echo "----------------------------------------"; \
        for subdir in $(SUBDIRS); do \
          if [ -s "$(MYSTATUS_R).$$subdir" ]; then \
index e7bf69e18d3eb72427e57de713bd1561bc85dc85..208fb78732169b967cea527c9fc313564aa84527 100644 (file)
@@ -48,7 +48,7 @@ cnmdptst.o cnormtst.o cnumtst.o crelativedateformattest.o crestst.o creststn.o c
 cucdapi.o cucdtst.o custrtst.o cstrcase.o cutiltst.o nucnvtst.o nccbtst.o bocu1tst.o \
 cbiditst.o cbididat.o eurocreg.o udatatst.o utf16tst.o utransts.o \
 ncnvfbts.o ncnvtst.o putiltst.o cstrtest.o udatpg_test.o utf8tst.o \
-stdnmtst.o usrchtst.o custrtrn.o sorttest.o trietest.o trie2test.o usettest.o \
+stdnmtst.o usrchtst.o custrtrn.o sorttest.o trietest.o trie2test.o ucptrietest.o usettest.o \
 uenumtst.o utmstest.o currtest.o \
 idnatest.o nfsprep.o spreptst.o sprpdata.o \
 hpmufn.o tracetst.o reapits.o uregiontest.o ulistfmttest.o\
index 191f0650e9a7ae14ed00cc4d2b3dd21f0ad96721..1c307d3e85510087bd5f2b341690984287577a94 100644 (file)
@@ -93,6 +93,8 @@ static void TestFCDCrash(void);
 
 static void TestJ5298(void);
 
+static void TestBadKey(void);
+
 const UCollationResult results[] = {
     UCOL_LESS,
     UCOL_LESS, /*UCOL_GREATER,*/
@@ -210,6 +212,7 @@ void addAllCollTest(TestNode** root)
     addTest(root, &TestJitterbug1098, "tscoll/callcoll/TestJitterbug1098");
     addTest(root, &TestFCDCrash, "tscoll/callcoll/TestFCDCrash");
     addTest(root, &TestJ5298, "tscoll/callcoll/TestJ5298");
+    addTest(root, &TestBadKey, "tscoll/callcoll/TestBadKey");
 }
 
 UBool hasCollationElements(const char *locName) {
@@ -413,7 +416,7 @@ static void doTestVariant(UCollator* myCollation, const UChar source[], const UC
     ucol_getSortKey(myCollation, target, -1,   sortKey2a, sortklen2+1);
 
     /* Check that sort key generated with null terminated string is identical  */
-    /*  to that generted with a length specified.                              */
+    /*  to that generated with a length specified.                              */
     if (uprv_strcmp((const char *)sortKey1, (const char *)sortKey1a) != 0 ||
         uprv_strcmp((const char *)sortKey2, (const char *)sortKey2a) != 0 ) {
         log_err("Sort Keys from null terminated and explicit length strings differ.\n");
@@ -421,8 +424,8 @@ static void doTestVariant(UCollator* myCollation, const UChar source[], const UC
 
     /*memcmp(sortKey1, sortKey2,sortklenmax);*/
     temp= uprv_strcmp((const char *)sortKey1, (const char *)sortKey2);
-    gSortklen1 = uprv_strlen((const char *)sortKey1)+1;
-    gSortklen2 = uprv_strlen((const char *)sortKey2)+1;
+    gSortklen1 = (int)uprv_strlen((const char *)sortKey1)+1;
+    gSortklen2 = (int)uprv_strlen((const char *)sortKey2)+1;
     if(sortklen1 != gSortklen1){
         log_err("SortKey length does not match Expected: %i Got: %i\n",sortklen1, gSortklen1);
         log_verbose("Generated sortkey: %s\n", sortKeyToString(myCollation, sortKey1, buffer, &len));
@@ -742,7 +745,7 @@ static void TestTertiary()
     UErrorCode status=U_ZERO_ERROR;
     static const char str[]="& C < ch, cH, Ch, CH & Five, 5 & Four, 4 & one, 1 & Ampersand; '&' & Two, 2 ";
     UChar rules[sizeof(str)];
-    len = strlen(str);
+    len = (int32_t)strlen(str);
     u_uastrcpy(rules, str);
 
     myCollation=ucol_openRules(rules, len, UCOL_OFF, UCOL_DEFAULT_STRENGTH, NULL, &status);
@@ -767,7 +770,7 @@ static void TestPrimary( )
     UErrorCode status=U_ZERO_ERROR;
     static const char str[]="& C < ch, cH, Ch, CH & Five, 5 & Four, 4 & one, 1 & Ampersand; '&' & Two, 2 ";   
     UChar rules[sizeof(str)];
-    len = strlen(str);
+    len = (int32_t)strlen(str);
     u_uastrcpy(rules, str);
 
     myCollation=ucol_openRules(rules, len, UCOL_OFF, UCOL_DEFAULT_STRENGTH,NULL, &status);
@@ -794,7 +797,7 @@ static void TestSecondary()
     UErrorCode status=U_ZERO_ERROR;
     static const char str[]="& C < ch, cH, Ch, CH & Five, 5 & Four, 4 & one, 1 & Ampersand; '&' & Two, 2 ";
     UChar rules[sizeof(str)];
-    len = strlen(str);
+    len = (int32_t)strlen(str);
     u_uastrcpy(rules, str);
 
     myCollation=ucol_openRules(rules, len, UCOL_OFF, UCOL_DEFAULT_STRENGTH,NULL, &status);
@@ -819,7 +822,7 @@ static void TestIdentical()
     UErrorCode status=U_ZERO_ERROR;
     static const char str[]="& C < ch, cH, Ch, CH & Five, 5 & Four, 4 & one, 1 & Ampersand; '&' & Two, 2 ";
     UChar rules[sizeof(str)];
-    len = strlen(str);
+    len = (int32_t)strlen(str);
     u_uastrcpy(rules, str);
 
     myCollation=ucol_openRules(rules, len, UCOL_OFF, UCOL_IDENTICAL, NULL,&status);
@@ -843,7 +846,7 @@ static void TestExtra()
     UErrorCode status = U_ZERO_ERROR;
     static const char str[]="& C < ch, cH, Ch, CH & Five, 5 & Four, 4 & one, 1 & Ampersand; '&' & Two, 2 ";
     UChar rules[sizeof(str)];
-    len = strlen(str);
+    len = (int32_t)strlen(str);
     u_uastrcpy(rules, str);
 
     myCollation=ucol_openRules(rules, len, UCOL_OFF, UCOL_DEFAULT_STRENGTH,NULL, &status);
@@ -1099,7 +1102,7 @@ static void TestSurrogates(void)
 {
     static const char       str[]          = 
                               "&z<'\\uD800\\uDC00'<'\\uD800\\uDC0A\\u0308'<A";
-          int         len          = strlen(str);
+          int         len          = (int)strlen(str);
           int         rlen         = 0;
           UChar      rules[sizeof(str)];
           UCollator  *myCollation;
@@ -1343,4 +1346,36 @@ static void TestJ5298(void)
     uenum_close(values);
     log_verbose("\n");
 }
+
+static const char* badKeyLocales[] = {
+       "@calendar=japanese;collation=search", // ucol_open OK
+       "@calendar=japanese", // ucol_open OK
+       "en@calendar=x", // ucol_open OK
+       "ja@calendar=x", // ucol_open OK
+       "en@collation=x", // ucol_open OK
+       "ja@collation=x", // ucol_open OK
+       "ja@collation=private-kana", // ucol_open fails, verify it does not crash
+       "en@collation=\x80", // (x80 undef in ASCII,EBCDIC) ucol_open fails, verify it does not crash
+       NULL
+};
+
+// Mainly this is to check that we don't have a crash, but we check
+// for correct NULL return and FAILURE/SUCCESS status as a bonus.
+static void TestBadKey(void)
+{
+    const char* badLoc;
+    const char** badLocsPtr = badKeyLocales;
+    while ((badLoc = *badLocsPtr++) != NULL) {
+        UErrorCode status = U_ZERO_ERROR;
+        UCollator* uc = ucol_open(badLoc, &status);
+        if ( U_SUCCESS(status) ) {
+            if (uc == NULL) {
+                log_err("ucol_open sets SUCCESS but returns NULL, locale: %s\n", badLoc);
+            }
+            ucol_close(uc);
+        } else if (uc != NULL) {
+            log_err("ucol_open sets FAILURE but returns non-NULL, locale: %s\n", badLoc);
+        }
+    }
+}
 #endif /* #if !UCONFIG_NO_COLLATION */
index fa78413be498f7967acfc4d0efc8de5248670668..92e6c1af4fdf7ba2ad29121125fa0e1dc6b4d4fd 100644 (file)
@@ -784,15 +784,18 @@ static const int32_t heTestOffs_heFwd[] = {  1,  5,  7,  9, 12, 14,     19,
 /*static const int32_t heTestOffs_enRev[] = { 22, 19, 17, 14, 12,  9,  7,  5,  1,  0 };*/
 static const int32_t heTestOffs_heRev[] = {     19,     14, 12,  9,  7,  5,  1,  0 };
 
-/* Finnish line break tailoring, for cldrbug 3029 */
+/* Finnish line break tailoring, for cldrbug 3029.
+ * As of ICU 63, Finnish tailoring moved to root, Finnish and English should be the same. */
 static const UChar fiTest[] = { /* 00 */ 0x0020, 0x002D, 0x0031, 0x0032, 0x0020,
                                 /* 05 */ 0x0061, 0x002D, 0x006B, 0x0020,
                                 /* 09 */ 0x0061, 0x0300, 0x2010, 0x006B, 0x0020,
                                 /* 14 */ 0x0061, 0x0020, 0x002D, 0x006B, 0x0020,
                                 /* 19 */ 0x0061, 0x0300, 0x0020, 0x2010, 0x006B, 0x0020, 0 };
-static const int32_t fiTestOffs_enFwd[] =  {  1,  5,  7,  9, 12, 14, 16, 17, 19, 22, 23, 25 };
+//static const int32_t fiTestOffs_enFwd[] =  {  1,  5,  7,  9, 12, 14, 16, 17, 19, 22, 23, 25 };
+static const int32_t fiTestOffs_enFwd[] =  {  1,  5,  7,  9, 12, 14, 16,     19, 22,     25 };
 static const int32_t fiTestOffs_fiFwd[] =  {  1,  5,  7,  9, 12, 14, 16,     19, 22,     25 };
-static const int32_t fiTestOffs_enRev[] =  { 23, 22, 19, 17, 16, 14, 12,  9,  7,  5,  1,  0 };
+//static const int32_t fiTestOffs_enRev[] =  { 23, 22, 19, 17, 16, 14, 12,  9,  7,  5,  1,  0 };
+static const int32_t fiTestOffs_enRev[] =  {     22, 19,     16, 14, 12,  9,  7,  5,  1,  0 };
 static const int32_t fiTestOffs_fiRev[] =  {     22, 19,     16, 14, 12,  9,  7,  5,  1,  0 };
 
 /* Khmer dictionary-based work break, for ICU ticket #8329 */
index 143e9176a1a28fb8a1ce38917f695d152ec5d7d5..6388eb847858524388f702c365c55c587f42da90 100644 (file)
     <ClCompile Include="sorttest.c" />
     <ClCompile Include="trie2test.c" />
     <ClCompile Include="trietest.c" />
+    <ClCompile Include="ucptrietest.c" />
     <ClCompile Include="uenumtst.c" />
     <ClCompile Include="bocu1tst.c" />
     <ClCompile Include="ccapitst.c" />
   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
   <ImportGroup Label="ExtensionTargets">
   </ImportGroup>
-</Project>
\ No newline at end of file
+</Project>
index be69d72a8a77971042f0f45853799c294ed5e084..ff185c66e6abad42af00b9232cc4830fc6fff935 100644 (file)
     <ClCompile Include="trietest.c">
       <Filter>collections</Filter>
     </ClCompile>
+    <ClCompile Include="ucptrietest.c">
+      <Filter>collections</Filter>
+    </ClCompile>
     <ClCompile Include="uenumtst.c">
       <Filter>collections</Filter>
     </ClCompile>
       <Filter>sprep &amp; idna</Filter>
     </ClInclude>
   </ItemGroup>
-</Project>
\ No newline at end of file
+</Project>
index 68f339c80e38e21ed34f80fd74b118caaf9332b5..a544de969584037c8e00055153b8cd711b759a49 100644 (file)
@@ -484,7 +484,7 @@ testLCID(UResourceBundle *currentBundle,
             log_verbose("WARNING: %-5s resolves to %s (0x%.4x)\n",
                 localeName, lcidStringC, expectedLCID);
         }
-        else {
+        else if (!(strcmp(localeName, "ku") == 0 && log_knownIssue("20181", "ICU-20181 Fix LCID mapping for ckb vs ku"))) {
             log_err("ERROR:   %-5s has 0x%.4x and the number resolves wrongfully to %s\n",
                 localeName, expectedLCID, lcidStringC);
         }
index 0c9ce42f5d0d549b739c16717da0cab1fd48865a..63e7269aa488408bd1969d0b1da38ca7182835a5 100644 (file)
@@ -226,6 +226,7 @@ void addLocaleTest(TestNode** root)
     TESTCASE(TestKeywordVariants);
     TESTCASE(TestKeywordVariantParsing);
     TESTCASE(TestCanonicalization);
+    TESTCASE(TestCanonicalizationBuffer);
     TESTCASE(TestKeywordSet);
     TESTCASE(TestKeywordSetError);
     TESTCASE(TestDisplayKeywords);
@@ -251,6 +252,8 @@ void addLocaleTest(TestNode** root)
     TESTCASE(TestLikelySubtags);
     TESTCASE(TestToLanguageTag);
     TESTCASE(TestForLanguageTag);
+    TESTCASE(TestInvalidLanguageTag);
+    TESTCASE(TestLangAndRegionCanonicalize);
     TESTCASE(TestTrailingNull);
     TESTCASE(TestUnicodeDefines);
     TESTCASE(TestEnglishExemplarCharacters);
@@ -2250,6 +2253,42 @@ static void TestCanonicalization(void)
     }
 }
 
+static void TestCanonicalizationBuffer(void)
+{
+    UErrorCode status = U_ZERO_ERROR;
+    char buffer[256];
+
+    // ULOC_FULLNAME_CAPACITY == 157 (uloc.h)
+    static const char name[] =
+        "zh@x"
+        "=foo-bar-baz-foo-bar-baz-foo-bar-baz-foo-bar-baz"
+        "-foo-bar-baz-foo-bar-baz-foo-bar-baz-foo-bar-baz"
+        "-foo-bar-baz-foo-bar-baz-foo-bar-baz-foo-bar-baz"
+        "-foo-barz"
+    ;
+    static const size_t len = sizeof name - 1;  // Without NUL terminator.
+
+    int32_t reslen = uloc_canonicalize(name, buffer, len, &status);
+
+    if (U_FAILURE(status)) {
+        log_err("FAIL: uloc_canonicalize(%s) => %s, expected !U_FAILURE()\n",
+                name, u_errorName(status));
+        return;
+    }
+
+    if (reslen != len) {
+        log_err("FAIL: uloc_canonicalize(%s) => \"%i\", expected \"%u\"\n",
+                name, reslen, len);
+        return;
+    }
+
+    if (uprv_strncmp(name, buffer, len) != 0) {
+        log_err("FAIL: uloc_canonicalize(%s) => \"%.*s\", expected \"%s\"\n",
+                name, reslen, buffer, name);
+        return;
+    }
+}
+
 static void TestDisplayKeywords(void)
 {
     int32_t i;
@@ -5998,6 +6037,7 @@ static const struct {
     {"art-lojban",          "jbo",                  FULL_LENGTH},
     {"zh-hakka",            "hak",                  FULL_LENGTH},
     {"zh-cmn-CH",           "cmn_CH",               FULL_LENGTH},
+    {"zh-cmn-CH-u-co-pinyin", "cmn_CH@collation=pinyin", FULL_LENGTH},
     {"xxx-yy",              "xxx_YY",               FULL_LENGTH},
     {"fr-234",              "fr_234",               FULL_LENGTH},
     {"i-default",           "en@x=i-default",       FULL_LENGTH},
@@ -6030,6 +6070,9 @@ static const struct {
     {"ja-u-ijkl-efgh-abcd-ca-japanese-xx-yyy-zzz-kn",   "ja@attribute=abcd-efgh-ijkl;calendar=japanese;colnumeric=yes;xx=yyy-zzz",  FULL_LENGTH},
     {"de-u-xc-xphonebk-co-phonebk-ca-buddhist-mo-very-lo-extensi-xd-that-de-should-vc-probably-xz-killthebuffer",
      "de@calendar=buddhist;collation=phonebook;de=should;lo=extensi;mo=very;vc=probably;xc=xphonebk;xd=that;xz=yes", 91},
+    {"de-1901-1901", "de__1901", 7},
+    {"de-DE-1901-1901", "de_DE_1901", 10},
+    {"en-a-bbb-a-ccc", "en@a=bbb", 8},
     /* #12761 */
     {"en-a-bar-u-baz",      "en@a=bar;attribute=baz",   FULL_LENGTH},
     {"en-a-bar-u-baz-x-u-foo",  "en@a=bar;attribute=baz;x=u-foo",   FULL_LENGTH},
@@ -6042,7 +6085,25 @@ static const struct {
     {"und-Latn-DE-u-em-emoji", "_Latn_DE@em=emoji", FULL_LENGTH},
     {"und-Zzzz-DE-u-em-emoji", "_Zzzz_DE@em=emoji", FULL_LENGTH},
     {"und-DE-u-em-emoji", "_DE@em=emoji", FULL_LENGTH},
-    {NULL,          NULL,           0}
+    // #20098
+    {"hant-cmn-cn", "hant", 4},
+    {"zh-cmn-TW", "cmn_TW", FULL_LENGTH},
+    {"zh-x_t-ab", "zh", 2},
+    {"zh-hans-cn-u-ca-x_t-u", "zh_Hans_CN@calendar=yes",  15},
+    /* #20140 dupe keys in U-extension */
+    {"zh-u-ca-chinese-ca-gregory", "zh@calendar=chinese", FULL_LENGTH},
+    {"zh-u-ca-gregory-co-pinyin-ca-chinese", "zh@calendar=gregorian;collation=pinyin", FULL_LENGTH},
+    {"de-latn-DE-1901-u-co-phonebk-co-pinyin-ca-gregory", "de_Latn_DE_1901@calendar=gregorian;collation=phonebook", FULL_LENGTH},
+    {"th-u-kf-nu-thai-kf-false", "th@colcasefirst=yes;numbers=thai", FULL_LENGTH},
+    /* #9562 IANA language tag data update */
+    {"en-gb-oed", "en_GB_OXENDICT", FULL_LENGTH},
+    {"i-navajo", "nv", FULL_LENGTH},
+    {"i-navajo-a-foo", "", 0},
+    {"i-navajo-latn-us", "", 0},
+    {"sgn-br", "bzs", FULL_LENGTH},
+    {"sgn-br-u-co-phonebk", "bzs@collation=phonebook", FULL_LENGTH},
+    {"ja-latn-hepburn-heploc", "ja_Latn__ALALC97", FULL_LENGTH},
+    {"ja-latn-hepburn-heploc-u-ca-japanese", "ja_Latn__ALALC97@calendar=japanese", FULL_LENGTH},
 };
 
 static void TestForLanguageTag(void) {
@@ -6052,7 +6113,7 @@ static void TestForLanguageTag(void) {
     int32_t parsedLen;
     int32_t expParsedLen;
 
-    for (i = 0; langtag_to_locale[i].bcpID != NULL; i++) {
+    for (i = 0; i < UPRV_LENGTHOF(langtag_to_locale); i++) {
         status = U_ZERO_ERROR;
         locale[0] = 0;
         expParsedLen = langtag_to_locale[i].len;
@@ -6076,6 +6137,72 @@ static void TestForLanguageTag(void) {
     }
 }
 
+/* See https://unicode-org.atlassian.net/browse/ICU-20149 .
+ * Depending on the resolution of that bug, this test may have
+ * to be revised.
+ */
+static void TestInvalidLanguageTag(void) {
+    static const char* invalid_lang_tags[] = {
+        "zh-u-foo-foo-co-pinyin", /* duplicate attribute in U extension */
+        "zh-cmn-hans-u-foo-foo-co-pinyin", /* duplicate attribute in U extension */
+#if 0
+        /*
+         * These do not lead to an error. Instead, parsing stops at the 1st
+         * invalid subtag.
+         */
+        "de-DE-1901-1901", /* duplicate variant */
+        "en-a-bbb-a-ccc", /* duplicate extension */
+#endif
+        NULL
+    };
+    char locale[256];
+    for (const char** tag = invalid_lang_tags; *tag != NULL; tag++) {
+        UErrorCode status = U_ZERO_ERROR;
+        uloc_forLanguageTag(*tag, locale, sizeof(locale), NULL, &status);
+        if (status != U_ILLEGAL_ARGUMENT_ERROR) {
+            log_err("Error returned by uloc_forLanguageTag for input language tag [%s] : %s - expected error:  %s\n",
+                    *tag, u_errorName(status), u_errorName(U_ILLEGAL_ARGUMENT_ERROR));
+        }
+    }
+}
+
+static const struct {
+    const char  *input;
+    const char  *canonical;
+} langtag_to_canonical[] = {
+    {"de-DD", "de-DE"},
+    {"de-DD-u-co-phonebk", "de-DE-u-co-phonebk"},
+    {"jw-id", "jv-ID"},
+    {"jw-id-u-ca-islamic-civil", "jv-ID-u-ca-islamic-civil"},
+    {"mo-md", "ro-MD"},
+    {"my-bu-u-nu-mymr", "my-MM-u-nu-mymr"},
+    {"yuu-ru", "yug-RU"},
+};
+
+
+static void TestLangAndRegionCanonicalize(void) {
+    char locale[256];
+    char canonical[256];
+    int32_t i;
+    UErrorCode status;
+    for (i = 0; i < UPRV_LENGTHOF(langtag_to_canonical); i++) {
+        status = U_ZERO_ERROR;
+        const char* input = langtag_to_canonical[i].input;
+        uloc_forLanguageTag(input, locale, sizeof(locale), NULL, &status);
+        uloc_toLanguageTag(locale, canonical, sizeof(canonical), TRUE, &status);
+        if (U_FAILURE(status)) {
+            log_err_status(status, "Error returned by uloc_forLanguageTag or uloc_toLanguageTag "
+                           "for language tag [%s] - error: %s\n", input, u_errorName(status));
+        } else {
+            const char* expected_canonical = langtag_to_canonical[i].canonical;
+            if (uprv_strcmp(expected_canonical, canonical) != 0) {
+                log_data_err("input language tag [%s] is canonicalized to [%s] - expected: [%s]\n",
+                    input, canonical, expected_canonical);
+            }
+        }
+    }
+}
+
 static void TestToUnicodeLocaleKey(void)
 {
     /* $IN specifies the result should be the input pointer itself */
index b757328f5c03c1b3b6817db9349bfec34813f5e9..411ff5c9fe58a6446f29765ae56d781a4f340fb6 100644 (file)
@@ -84,6 +84,7 @@ static  void TestDisplayNames(void);
  static void doTestDisplayNames(const char* inLocale, int32_t compareIndex);
 
  static void TestCanonicalization(void);
+ static void TestCanonicalizationBuffer(void);
 
  static void TestDisplayKeywords(void);
 
@@ -123,7 +124,9 @@ static void TestLikelySubtags(void);
  * lanuage tag
  */
 static void TestForLanguageTag(void);
+static void TestInvalidLanguageTag(void);
 static void TestToLanguageTag(void);
+static void TestLangAndRegionCanonicalize(void);
 
 static void TestToUnicodeLocaleKey(void);
 static void TestToLegacyKey(void);
index 55e701ca1f80cd819af211a173db73958f88a8f1..85ffd6302ca06935895578c0d60e9b098d397f22 100644 (file)
@@ -475,7 +475,7 @@ static void TestCurrencyPreEuro(void)
     const char* result[]={
         "\\u20A7\\u00A02", "2\\u00A0F",            "IEP\\u00A01.50",                      "1,50\\u00A0mk",   "2\\u00A0F",         "ITL\\u00A02",
         "1$50\\u00A0\\u200B", "\\u00F6S\\u00A01,50",  "1,50\\u00A0\\u0394\\u03C1\\u03C7", "2\\u00A0\\u20A7", "1,50\\u00A0FB",     "IEP\\u00A01.50",
-        "1,50\\u00A0BEF",   "1,50\\u00A0DM",        "1,50\\u00A0BEF",                    "\\u20A7\\u00A02", "1,50\\u00A0F",      "2\\u00A0\\u20A7",
+        "BEF\\u00A01,50",   "1,50\\u00A0DM",        "1,50\\u00A0BEF",                    "\\u20A7\\u00A02", "1,50\\u00A0F",      "2\\u00A0\\u20A7",
         "NLG\\u00A01,50"
     };
 
@@ -546,8 +546,8 @@ static void TestCurrencyObject(void)
     };
 
     const char* result[]={
-        "1\\u00A0234,56\\u00A0\\u20AC",
-        "1\\u00A0235\\u00A0JPY",
+        "1\\u202F234,56\\u00A0\\u20AC",
+        "1\\u202F235\\u00A0JPY",
     };
 
     log_verbose("\nTesting the number format with different currency codes\n");
index 4e18cfa002577ac408c8e50e3c6d2a84907f59c1..059bd72adad6b65d8efa0a887d106c8901fe4777 100644 (file)
@@ -61,6 +61,8 @@ static void TestPropertyNames(void);
 static void TestPropertyValues(void);
 static void TestConsistency(void);
 static void TestCaseFolding(void);
+static void TestBinaryCharacterPropertiesAPI(void);
+static void TestIntCharacterPropertiesAPI(void);
 
 /* internal methods used */
 static int32_t MakeProp(char* str);
@@ -196,6 +198,10 @@ void addUnicodeTest(TestNode** root)
     addTest(root, &TestPropertyValues, "tsutil/cucdtst/TestPropertyValues");
     addTest(root, &TestConsistency, "tsutil/cucdtst/TestConsistency");
     addTest(root, &TestCaseFolding, "tsutil/cucdtst/TestCaseFolding");
+    addTest(root, &TestBinaryCharacterPropertiesAPI,
+            "tsutil/cucdtst/TestBinaryCharacterPropertiesAPI");
+    addTest(root, &TestIntCharacterPropertiesAPI,
+            "tsutil/cucdtst/TestIntCharacterPropertiesAPI");
 }
 
 /*==================================================== */
@@ -3522,3 +3528,41 @@ TestCaseFolding() {
 
     uset_close(data.notSeen);
 }
+
+static void TestBinaryCharacterPropertiesAPI() {
+    // API test only. See intltest/ucdtest.cpp for functional test.
+    UErrorCode errorCode = U_ZERO_ERROR;
+    const USet *set = u_getBinaryPropertySet(-1, &errorCode);
+    if (U_SUCCESS(errorCode)) {
+        log_err("u_getBinaryPropertySet(-1) did not fail\n");
+    }
+    errorCode = U_ZERO_ERROR;
+    set = u_getBinaryPropertySet(UCHAR_BINARY_LIMIT, &errorCode);
+    if (U_SUCCESS(errorCode)) {
+        log_err("u_getBinaryPropertySet(UCHAR_BINARY_LIMIT) did not fail\n");
+    }
+    errorCode = U_ZERO_ERROR;
+    set = u_getBinaryPropertySet(UCHAR_WHITE_SPACE, &errorCode);
+    if (!uset_contains(set, 0x20) || uset_contains(set, 0x61)) {
+        log_err("u_getBinaryPropertySet(UCHAR_WHITE_SPACE) wrong contents\n");
+    }
+}
+
+static void TestIntCharacterPropertiesAPI() {
+    // API test only. See intltest/ucdtest.cpp for functional test.
+    UErrorCode errorCode = U_ZERO_ERROR;
+    const UCPMap *map = u_getIntPropertyMap(UCHAR_INT_START - 1, &errorCode);
+    if (U_SUCCESS(errorCode)) {
+        log_err("u_getIntPropertyMap(UCHAR_INT_START - 1) did not fail\n");
+    }
+    errorCode = U_ZERO_ERROR;
+    map = u_getIntPropertyMap(UCHAR_INT_LIMIT, &errorCode);
+    if (U_SUCCESS(errorCode)) {
+        log_err("u_getIntPropertyMap(UCHAR_INT_LIMIT) did not fail\n");
+    }
+    errorCode = U_ZERO_ERROR;
+    map = u_getIntPropertyMap(UCHAR_GENERAL_CATEGORY, &errorCode);
+    if (ucpmap_get(map, 0x20) != U_SPACE_SEPARATOR || ucpmap_get(map, 0x23456) != U_OTHER_LETTER) {
+        log_err("u_getIntPropertyMap(UCHAR_GENERAL_CATEGORY) wrong contents\n");
+    }
+}
index aa52970604df9ec1a0745da998967841b24ce47c..5f43c48ad2803dd98592beefefa55a280ebeb693 100644 (file)
@@ -27,6 +27,7 @@ void addHashtableTest(TestNode** root);
 void addCStringTest(TestNode** root);
 void addTrieTest(TestNode** root);
 void addTrie2Test(TestNode** root);
+void addUCPTrieTest(TestNode** root);
 void addEnumerationTest(TestNode** root);
 void addPosixTest(TestNode** root);
 void addSortTest(TestNode** root);
@@ -38,6 +39,7 @@ void addUtility(TestNode** root)
     addCStringTest(root);
     addTrieTest(root);
     addTrie2Test(root);
+    addUCPTrieTest(root);
     addLocaleTest(root);
     addCLDRTest(root);
     addUnicodeTest(root);
index 9444159bedab7d35c180af79cbb809f319efe13e..aa7e7c64671b5ea5154327231a58f7365311369f 100644 (file)
@@ -421,7 +421,7 @@ testTrieUTF8(const char *testName,
         prevCP=c;
         --c;                                    /* end of the range */
         U8_APPEND_UNSAFE(s, length, c);
-        if(U_IS_SURROGATE(prevCP)) {
+        if(U_IS_SURROGATE(c)) {
             // A surrogate byte sequence counts as 3 single-byte errors.
             values[countValues++]=errorValue;
             values[countValues++]=errorValue;
@@ -1287,31 +1287,6 @@ GrowDataArrayTest(void) {
 
 /* versions 1 and 2 --------------------------------------------------------- */
 
-static void
-GetVersionTest(void) {
-    uint32_t data[4];
-    if( /* version 1 */
-        (data[0]=0x54726965, 1!=utrie2_getVersion(data, sizeof(data), FALSE)) ||
-        (data[0]=0x54726965, 1!=utrie2_getVersion(data, sizeof(data), TRUE)) ||
-        (data[0]=0x65697254, 0!=utrie2_getVersion(data, sizeof(data), FALSE)) ||
-        (data[0]=0x65697254, 1!=utrie2_getVersion(data, sizeof(data), TRUE)) ||
-        /* version 2 */
-        (data[0]=0x54726932, 2!=utrie2_getVersion(data, sizeof(data), FALSE)) ||
-        (data[0]=0x54726932, 2!=utrie2_getVersion(data, sizeof(data), TRUE)) ||
-        (data[0]=0x32697254, 0!=utrie2_getVersion(data, sizeof(data), FALSE)) ||
-        (data[0]=0x32697254, 2!=utrie2_getVersion(data, sizeof(data), TRUE)) ||
-        /* illegal arguments */
-        (data[0]=0x54726932, 0!=utrie2_getVersion(NULL, sizeof(data), FALSE)) ||
-        (data[0]=0x54726932, 0!=utrie2_getVersion(data, 3, FALSE)) ||
-        (data[0]=0x54726932, 0!=utrie2_getVersion((char *)data+1, sizeof(data), FALSE)) ||
-        /* unknown signature values */
-        (data[0]=0x11223344, 0!=utrie2_getVersion(data, sizeof(data), FALSE)) ||
-        (data[0]=0x54726933, 0!=utrie2_getVersion(data, sizeof(data), FALSE))
-    ) {
-        log_err("error: utrie2_getVersion() is not working as expected\n");
-    }
-}
-
 static UNewTrie *
 makeNewTrie1WithRanges(const char *testName,
                        const SetRange setRanges[], int32_t countSetRanges,
@@ -1455,6 +1430,5 @@ addTrie2Test(TestNode** root) {
     addTest(root, &DummyTrieTest, "tsutil/trie2test/DummyTrieTest");
     addTest(root, &FreeBlocksTest, "tsutil/trie2test/FreeBlocksTest");
     addTest(root, &GrowDataArrayTest, "tsutil/trie2test/GrowDataArrayTest");
-    addTest(root, &GetVersionTest, "tsutil/trie2test/GetVersionTest");
     addTest(root, &Trie12ConversionTest, "tsutil/trie2test/Trie12ConversionTest");
 }
diff --git a/source/test/cintltst/ucptrietest.c b/source/test/cintltst/ucptrietest.c
new file mode 100644 (file)
index 0000000..299ef90
--- /dev/null
@@ -0,0 +1,1577 @@
+// © 2017 and later: Unicode, Inc. and others.
+// License & terms of use: http://www.unicode.org/copyright.html
+
+// ucptrietest.c (modified from trie2test.c)
+// created: 2017dec29 Markus W. Scherer
+
+#include <stdio.h>
+#include "unicode/utypes.h"
+#include "unicode/ucptrie.h"
+#include "unicode/umutablecptrie.h"
+#include "unicode/utf.h"
+#include "unicode/utf16.h"
+#include "unicode/utf8.h"
+#include "uassert.h"
+#include "ucptrie_impl.h"
+#include "utrie.h"
+#include "cstring.h"
+#include "cmemory.h"
+#include "udataswp.h"
+#include "cintltst.h"
+
+void addUCPTrieTest(TestNode** root);
+
+/* Values for setting possibly overlapping, out-of-order ranges of values */
+typedef struct SetRange {
+    UChar32 start, limit;
+    uint32_t value;
+} SetRange;
+
+/*
+ * Values for testing:
+ * value is set from the previous boundary's limit to before
+ * this boundary's limit
+ *
+ * There must be an entry with limit 0 and the intialValue.
+ * It may be preceded by an entry with negative limit and the errorValue.
+ */
+typedef struct CheckRange {
+    UChar32 limit;
+    uint32_t value;
+} CheckRange;
+
+static int32_t
+skipSpecialValues(const CheckRange checkRanges[], int32_t countCheckRanges) {
+    int32_t i;
+    for(i=0; i<countCheckRanges && checkRanges[i].limit<=0; ++i) {}
+    return i;
+}
+
+static int32_t
+getSpecialValues(const CheckRange checkRanges[], int32_t countCheckRanges,
+                 uint32_t *pInitialValue, uint32_t *pErrorValue) {
+    int32_t i=0;
+    if(i<countCheckRanges && checkRanges[i].limit<0) {
+        *pErrorValue=checkRanges[i++].value;
+    } else {
+        *pErrorValue=0xad;
+    }
+    if(i<countCheckRanges && checkRanges[i].limit==0) {
+        *pInitialValue=checkRanges[i++].value;
+    } else {
+        *pInitialValue=0;
+    }
+    return i;
+}
+
+/* ucptrie_enum() callback, modifies a value */
+static uint32_t U_CALLCONV
+testFilter(const void *context, uint32_t value) {
+    return value ^ 0x5555;
+}
+
+static UBool
+doCheckRange(const char *name, const char *variant,
+             UChar32 start, UChar32 end, uint32_t value,
+             UChar32 expEnd, uint32_t expValue) {
+    if (end < 0) {
+        if (expEnd >= 0) {
+            log_err("error: %s getRanges (%s) fails to deliver range [U+%04lx..U+%04lx].0x%lx\n",
+                    name, variant, (long)start, (long)expEnd, (long)expValue);
+        }
+        return FALSE;
+    }
+    if (expEnd < 0) {
+        log_err("error: %s getRanges (%s) delivers unexpected range [U+%04lx..U+%04lx].0x%lx\n",
+                name, variant, (long)start, (long)end, (long)value);
+        return FALSE;
+    }
+    if (end != expEnd || value != expValue) {
+        log_err("error: %s getRanges (%s) delivers wrong range [U+%04lx..U+%04lx].0x%lx "
+                "instead of [U+%04lx..U+%04lx].0x%lx\n",
+                name, variant, (long)start, (long)end, (long)value,
+                (long)start, (long)expEnd, (long)expValue);
+        return FALSE;
+    }
+    return TRUE;
+}
+
+// Test iteration starting from various UTF-8/16 and trie structure boundaries.
+// Also test starting partway through lead & trail surrogates for fixed-surrogate-value options,
+// and partway through supplementary code points.
+static UChar32 iterStarts[] = {
+    0, 0x7f, 0x80, 0x7ff, 0x800, 0xfff, 0x1000,
+    0xd7ff, 0xd800, 0xd888, 0xdddd, 0xdfff, 0xe000,
+    0xffff, 0x10000, 0x12345, 0x10ffff, 0x110000
+};
+
+static void
+testTrieGetRanges(const char *testName, const UCPTrie *trie, const UMutableCPTrie *mutableTrie,
+                  UCPMapRangeOption option, uint32_t surrValue,
+                  const CheckRange checkRanges[], int32_t countCheckRanges) {
+    const char *const typeName = trie == NULL ? "mutableTrie" : "trie";
+    const char *const optionName = option == UCPMAP_RANGE_NORMAL ? "normal" :
+        option == UCPMAP_RANGE_FIXED_LEAD_SURROGATES ? "fixedLeadSurr" : "fixedAllSurr";
+    char name[80];
+    int32_t s;
+    for (s = 0; s < UPRV_LENGTHOF(iterStarts); ++s) {
+        UChar32 start = iterStarts[s];
+        int32_t i, i0;
+        UChar32 end, expEnd;
+        uint32_t value, expValue;
+        // No need to go from each iteration start to the very end.
+        int32_t innerLoopCount;
+
+        sprintf(name, "%s/%s(%s) min=U+%04lx", typeName, optionName, testName, (long)start);
+
+        // Skip over special values and low ranges.
+        for (i = 0; i < countCheckRanges && checkRanges[i].limit <= start; ++i) {}
+        i0 = i;
+        // without value handler
+        for (innerLoopCount = 0;; ++i, start = end + 1) {
+            if (i < countCheckRanges) {
+                expEnd = checkRanges[i].limit - 1;
+                expValue = checkRanges[i].value;
+            } else {
+                expEnd = -1;
+                expValue = value = 0x5005;
+            }
+            end = trie != NULL ?
+                ucptrie_getRange(trie, start, option, surrValue, NULL, NULL, &value) :
+                umutablecptrie_getRange(mutableTrie, start, option, surrValue, NULL, NULL, &value);
+            if (!doCheckRange(name, "without value handler", start, end, value, expEnd, expValue)) {
+                break;
+            }
+            if (s != 0 && ++innerLoopCount == 5) { break; }
+        }
+        // with value handler
+        for (i = i0, start = iterStarts[s], innerLoopCount = 0;; ++i, start = end + 1) {
+            if (i < countCheckRanges) {
+                expEnd = checkRanges[i].limit - 1;
+                expValue = checkRanges[i].value ^ 0x5555;
+            } else {
+                expEnd = -1;
+                expValue = value = 0x5005;
+            }
+            end = trie != NULL ?
+                ucptrie_getRange(trie, start, option, surrValue ^ 0x5555, testFilter, NULL, &value) :
+                umutablecptrie_getRange(mutableTrie, start, option, surrValue ^ 0x5555,
+                                        testFilter, NULL, &value);
+            if (!doCheckRange(name, "with value handler", start, end, value, expEnd, expValue)) {
+                break;
+            }
+            if (s != 0 && ++innerLoopCount == 5) { break; }
+        }
+        // without value
+        for (i = i0, start = iterStarts[s], innerLoopCount = 0;; ++i, start = end + 1) {
+            if (i < countCheckRanges) {
+                expEnd = checkRanges[i].limit - 1;
+            } else {
+                expEnd = -1;
+            }
+            end = trie != NULL ?
+                ucptrie_getRange(trie, start, option, surrValue, NULL, NULL, NULL) :
+                umutablecptrie_getRange(mutableTrie, start, option, surrValue, NULL, NULL, NULL);
+            if (!doCheckRange(name, "without value", start, end, 0, expEnd, 0)) {
+                break;
+            }
+            if (s != 0 && ++innerLoopCount == 5) { break; }
+        }
+    }
+}
+
+static void
+testTrieGetters(const char *testName, const UCPTrie *trie,
+                UCPTrieType type, UCPTrieValueWidth valueWidth,
+                const CheckRange checkRanges[], int32_t countCheckRanges) {
+    uint32_t initialValue, errorValue;
+    uint32_t value, value2;
+    UChar32 start, limit;
+    int32_t i, countSpecials;
+    int32_t countErrors=0;
+
+    const char *const typeName = "trie";
+
+    countSpecials=getSpecialValues(checkRanges, countCheckRanges, &initialValue, &errorValue);
+
+    start=0;
+    for(i=countSpecials; i<countCheckRanges; ++i) {
+        limit=checkRanges[i].limit;
+        value=checkRanges[i].value;
+
+        while(start<limit) {
+            if (start <= 0x7f) {
+                if (valueWidth == UCPTRIE_VALUE_BITS_16) {
+                    value2 = UCPTRIE_ASCII_GET(trie, UCPTRIE_16, start);
+                } else if (valueWidth == UCPTRIE_VALUE_BITS_32) {
+                    value2 = UCPTRIE_ASCII_GET(trie, UCPTRIE_32, start);
+                } else {
+                    value2 = UCPTRIE_ASCII_GET(trie, UCPTRIE_8, start);
+                }
+                if (value != value2) {
+                    log_err("error: %s(%s).fromASCII(U+%04lx)==0x%lx instead of 0x%lx\n",
+                            typeName, testName, (long)start, (long)value2, (long)value);
+                    ++countErrors;
+                }
+            }
+            if (type == UCPTRIE_TYPE_FAST) {
+                if(start<=0xffff) {
+                    if(valueWidth==UCPTRIE_VALUE_BITS_16) {
+                        value2=UCPTRIE_FAST_BMP_GET(trie, UCPTRIE_16, start);
+                    } else if(valueWidth==UCPTRIE_VALUE_BITS_32) {
+                        value2=UCPTRIE_FAST_BMP_GET(trie, UCPTRIE_32, start);
+                    } else {
+                        value2=UCPTRIE_FAST_BMP_GET(trie, UCPTRIE_8, start);
+                    }
+                    if(value!=value2) {
+                        log_err("error: %s(%s).fromBMP(U+%04lx)==0x%lx instead of 0x%lx\n",
+                                typeName, testName, (long)start, (long)value2, (long)value);
+                        ++countErrors;
+                    }
+                } else {
+                    if(valueWidth==UCPTRIE_VALUE_BITS_16) {
+                        value2 = UCPTRIE_FAST_SUPP_GET(trie, UCPTRIE_16, start);
+                    } else if(valueWidth==UCPTRIE_VALUE_BITS_32) {
+                        value2 = UCPTRIE_FAST_SUPP_GET(trie, UCPTRIE_32, start);
+                    } else {
+                        value2 = UCPTRIE_FAST_SUPP_GET(trie, UCPTRIE_8, start);
+                    }
+                    if(value!=value2) {
+                        log_err("error: %s(%s).fromSupp(U+%04lx)==0x%lx instead of 0x%lx\n",
+                                typeName, testName, (long)start, (long)value2, (long)value);
+                        ++countErrors;
+                    }
+                }
+                if(valueWidth==UCPTRIE_VALUE_BITS_16) {
+                    value2 = UCPTRIE_FAST_GET(trie, UCPTRIE_16, start);
+                } else if(valueWidth==UCPTRIE_VALUE_BITS_32) {
+                    value2 = UCPTRIE_FAST_GET(trie, UCPTRIE_32, start);
+                } else {
+                    value2 = UCPTRIE_FAST_GET(trie, UCPTRIE_8, start);
+                }
+            } else {
+                if(valueWidth==UCPTRIE_VALUE_BITS_16) {
+                    value2 = UCPTRIE_SMALL_GET(trie, UCPTRIE_16, start);
+                } else if(valueWidth==UCPTRIE_VALUE_BITS_32) {
+                    value2 = UCPTRIE_SMALL_GET(trie, UCPTRIE_32, start);
+                } else {
+                    value2 = UCPTRIE_SMALL_GET(trie, UCPTRIE_8, start);
+                }
+            }
+            if(value!=value2) {
+                log_err("error: %s(%s).get(U+%04lx)==0x%lx instead of 0x%lx\n",
+                        typeName, testName, (long)start, (long)value2, (long)value);
+                ++countErrors;
+            }
+            value2=ucptrie_get(trie, start);
+            if(value!=value2) {
+                log_err("error: %s(%s).get(U+%04lx)==0x%lx instead of 0x%lx\n",
+                        typeName, testName, (long)start, (long)value2, (long)value);
+                ++countErrors;
+            }
+            ++start;
+            if(countErrors>10) {
+                return;
+            }
+        }
+    }
+
+    /* test linear ASCII range from the data array pointer (access to "internal" field) */
+    start=0;
+    for(i=countSpecials; i<countCheckRanges && start<=0x7f; ++i) {
+        limit=checkRanges[i].limit;
+        value=checkRanges[i].value;
+
+        while(start<limit && start<=0x7f) {
+            if(valueWidth==UCPTRIE_VALUE_BITS_16) {
+                value2=trie->data.ptr16[start];
+            } else if(valueWidth==UCPTRIE_VALUE_BITS_32) {
+                value2=trie->data.ptr32[start];
+            } else {
+                value2=trie->data.ptr8[start];
+            }
+            if(value!=value2) {
+                log_err("error: %s(%s).asciiData[U+%04lx]==0x%lx instead of 0x%lx\n",
+                        typeName, testName, (long)start, (long)value2, (long)value);
+                ++countErrors;
+            }
+            ++start;
+            if(countErrors>10) {
+                return;
+            }
+        }
+    }
+
+    /* test errorValue */
+    if (type == UCPTRIE_TYPE_FAST) {
+        if(valueWidth==UCPTRIE_VALUE_BITS_16) {
+            value = UCPTRIE_FAST_GET(trie, UCPTRIE_16, -1);
+            value2 = UCPTRIE_FAST_GET(trie, UCPTRIE_16, 0x110000);
+        } else if(valueWidth==UCPTRIE_VALUE_BITS_32) {
+            value = UCPTRIE_FAST_GET(trie, UCPTRIE_32, -1);
+            value2 = UCPTRIE_FAST_GET(trie, UCPTRIE_32, 0x110000);
+        } else {
+            value = UCPTRIE_FAST_GET(trie, UCPTRIE_8, -1);
+            value2 = UCPTRIE_FAST_GET(trie, UCPTRIE_8, 0x110000);
+        }
+    } else {
+        if(valueWidth==UCPTRIE_VALUE_BITS_16) {
+            value = UCPTRIE_SMALL_GET(trie, UCPTRIE_16, -1);
+            value2 = UCPTRIE_SMALL_GET(trie, UCPTRIE_16, 0x110000);
+        } else if(valueWidth==UCPTRIE_VALUE_BITS_32) {
+            value = UCPTRIE_SMALL_GET(trie, UCPTRIE_32, -1);
+            value2 = UCPTRIE_SMALL_GET(trie, UCPTRIE_32, 0x110000);
+        } else {
+            value = UCPTRIE_SMALL_GET(trie, UCPTRIE_8, -1);
+            value2 = UCPTRIE_SMALL_GET(trie, UCPTRIE_8, 0x110000);
+        }
+    }
+    if(value!=errorValue || value2!=errorValue) {
+        log_err("error: %s(%s).get(out of range) != errorValue\n",
+                typeName, testName);
+    }
+    value=ucptrie_get(trie, -1);
+    value2=ucptrie_get(trie, 0x110000);
+    if(value!=errorValue || value2!=errorValue) {
+        log_err("error: %s(%s).get(out of range) != errorValue\n",
+                typeName, testName);
+    }
+}
+
+static void
+testBuilderGetters(const char *testName, const UMutableCPTrie *mutableTrie,
+                   const CheckRange checkRanges[], int32_t countCheckRanges) {
+    uint32_t initialValue, errorValue;
+    uint32_t value, value2;
+    UChar32 start, limit;
+    int32_t i, countSpecials;
+    int32_t countErrors=0;
+
+    const char *const typeName = "mutableTrie";
+
+    countSpecials=getSpecialValues(checkRanges, countCheckRanges, &initialValue, &errorValue);
+
+    start=0;
+    for(i=countSpecials; i<countCheckRanges; ++i) {
+        limit=checkRanges[i].limit;
+        value=checkRanges[i].value;
+
+        while(start<limit) {
+            value2=umutablecptrie_get(mutableTrie, start);
+            if(value!=value2) {
+                log_err("error: %s(%s).get(U+%04lx)==0x%lx instead of 0x%lx\n",
+                        typeName, testName, (long)start, (long)value2, (long)value);
+                ++countErrors;
+            }
+            ++start;
+            if(countErrors>10) {
+                return;
+            }
+        }
+    }
+
+    /* test errorValue */
+    value=umutablecptrie_get(mutableTrie, -1);
+    value2=umutablecptrie_get(mutableTrie, 0x110000);
+    if(value!=errorValue || value2!=errorValue) {
+        log_err("error: %s(%s).get(out of range) != errorValue\n",
+                typeName, testName);
+    }
+}
+
+#define ACCIDENTAL_SURROGATE_PAIR(s, length, cp) (length > 0 && U16_IS_LEAD(s[length-1]) && U_IS_TRAIL(cp))
+
+static void
+testTrieUTF16(const char *testName,
+              const UCPTrie *trie, UCPTrieValueWidth valueWidth,
+              const CheckRange checkRanges[], int32_t countCheckRanges) {
+    UChar s[30000];
+    uint32_t values[16000];
+
+    const UChar *p, *limit;
+
+    uint32_t errorValue = ucptrie_get(trie, -1);
+    uint32_t value, expected;
+    UChar32 prevCP, c, c2;
+    int32_t i, length, sIndex, countValues;
+
+    /* write a string */
+    prevCP=0;
+    length=countValues=0;
+    for(i=skipSpecialValues(checkRanges, countCheckRanges); i<countCheckRanges; ++i) {
+        value=checkRanges[i].value;
+        /* write three code points */
+        if(!ACCIDENTAL_SURROGATE_PAIR(s, length, prevCP)) {
+            U16_APPEND_UNSAFE(s, length, prevCP);   /* start of the range */
+            values[countValues++]=value;
+        }
+        U_ASSERT(length < UPRV_LENGTHOF(s) && countValues < UPRV_LENGTHOF(values));
+        c=checkRanges[i].limit;
+        prevCP=(prevCP+c)/2;                    /* middle of the range */
+        if(!ACCIDENTAL_SURROGATE_PAIR(s, length, prevCP)) {
+            U16_APPEND_UNSAFE(s, length, prevCP);
+            values[countValues++]=value;
+        }
+        prevCP=c;
+        --c;                                    /* end of the range */
+        if(!ACCIDENTAL_SURROGATE_PAIR(s, length, c)) {
+            U16_APPEND_UNSAFE(s, length, c);
+            values[countValues++]=value;
+        }
+    }
+    limit=s+length;
+    if(length>UPRV_LENGTHOF(s)) {
+        log_err("UTF-16 test string length %d > capacity %d\n", (int)length, (int)UPRV_LENGTHOF(s));
+        return;
+    }
+    if(countValues>UPRV_LENGTHOF(values)) {
+        log_err("UTF-16 test values length %d > capacity %d\n", (int)countValues, (int)UPRV_LENGTHOF(values));
+        return;
+    }
+
+    /* try forward */
+    p=s;
+    i=0;
+    while(p<limit) {
+        sIndex=(int32_t)(p-s);
+        U16_NEXT(s, sIndex, length, c2);
+        c=0x33;
+        if(valueWidth==UCPTRIE_VALUE_BITS_16) {
+            UCPTRIE_FAST_U16_NEXT(trie, UCPTRIE_16, p, limit, c, value);
+        } else if(valueWidth==UCPTRIE_VALUE_BITS_32) {
+            UCPTRIE_FAST_U16_NEXT(trie, UCPTRIE_32, p, limit, c, value);
+        } else {
+            UCPTRIE_FAST_U16_NEXT(trie, UCPTRIE_8, p, limit, c, value);
+        }
+        expected = U_IS_SURROGATE(c) ? errorValue : values[i];
+        if(value!=expected) {
+            log_err("error: wrong value from UCPTRIE_NEXT(%s)(U+%04lx): 0x%lx instead of 0x%lx\n",
+                    testName, (long)c, (long)value, (long)expected);
+        }
+        if(c!=c2) {
+            log_err("error: wrong code point from UCPTRIE_NEXT(%s): U+%04lx != U+%04lx\n",
+                    testName, (long)c, (long)c2);
+            continue;
+        }
+        ++i;
+    }
+
+    /* try backward */
+    p=limit;
+    i=countValues;
+    while(s<p) {
+        --i;
+        sIndex=(int32_t)(p-s);
+        U16_PREV(s, 0, sIndex, c2);
+        c=0x33;
+        if(valueWidth==UCPTRIE_VALUE_BITS_16) {
+            UCPTRIE_FAST_U16_PREV(trie, UCPTRIE_16, s, p, c, value);
+        } else if(valueWidth==UCPTRIE_VALUE_BITS_32) {
+            UCPTRIE_FAST_U16_PREV(trie, UCPTRIE_32, s, p, c, value);
+        } else {
+            UCPTRIE_FAST_U16_PREV(trie, UCPTRIE_8, s, p, c, value);
+        }
+        expected = U_IS_SURROGATE(c) ? errorValue : values[i];
+        if(value!=expected) {
+            log_err("error: wrong value from UCPTRIE_PREV(%s)(U+%04lx): 0x%lx instead of 0x%lx\n",
+                    testName, (long)c, (long)value, (long)expected);
+        }
+        if(c!=c2) {
+            log_err("error: wrong code point from UCPTRIE_PREV(%s): U+%04lx != U+%04lx\n",
+                    testName, c, c2);
+        }
+    }
+}
+
+static void
+testTrieUTF8(const char *testName,
+             const UCPTrie *trie, UCPTrieValueWidth valueWidth,
+             const CheckRange checkRanges[], int32_t countCheckRanges) {
+    // Note: The byte sequence comments refer to the original UTF-8 definition.
+    // Starting with ICU 60, any sequence that is not a prefix of a valid one
+    // is treated as multiple single-byte errors.
+    // For testing, we only rely on U8_... and UCPTrie UTF-8 macros
+    // iterating consistently.
+    static const uint8_t illegal[]={
+        0xc0, 0x80,                         /* non-shortest U+0000 */
+        0xc1, 0xbf,                         /* non-shortest U+007f */
+        0xc2,                               /* truncated */
+        0xe0, 0x90, 0x80,                   /* non-shortest U+0400 */
+        0xe0, 0xa0,                         /* truncated */
+        0xed, 0xa0, 0x80,                   /* lead surrogate U+d800 */
+        0xed, 0xbf, 0xbf,                   /* trail surrogate U+dfff */
+        0xf0, 0x8f, 0xbf, 0xbf,             /* non-shortest U+ffff */
+        0xf0, 0x90, 0x80,                   /* truncated */
+        0xf4, 0x90, 0x80, 0x80,             /* beyond-Unicode U+110000 */
+        0xf8, 0x80, 0x80, 0x80,             /* truncated */
+        0xf8, 0x80, 0x80, 0x80, 0x80,       /* 5-byte UTF-8 */
+        0xfd, 0xbf, 0xbf, 0xbf, 0xbf,       /* truncated */
+        0xfd, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, /* 6-byte UTF-8 */
+        0xfe,
+        0xff
+    };
+    uint8_t s[60000];
+    uint32_t values[16000];
+
+    const uint8_t *p, *limit;
+
+    uint32_t initialValue, errorValue;
+    uint32_t value, expectedBytes, actualBytes;
+    UChar32 prevCP, c;
+    int32_t i, countSpecials, length, countValues;
+    int32_t prev8, i8;
+
+    countSpecials=getSpecialValues(checkRanges, countCheckRanges, &initialValue, &errorValue);
+
+    /* write a string */
+    prevCP=0;
+    length=countValues=0;
+    /* first a couple of trail bytes in lead position */
+    s[length++]=0x80;
+    values[countValues++]=errorValue;
+    s[length++]=0xbf;
+    values[countValues++]=errorValue;
+    prev8=i8=0;
+    for(i=countSpecials; i<countCheckRanges; ++i) {
+        value=checkRanges[i].value;
+        /* write three legal (or surrogate) code points */
+        U8_APPEND_UNSAFE(s, length, prevCP);    /* start of the range */
+        if(U_IS_SURROGATE(prevCP)) {
+            // A surrogate byte sequence counts as 3 single-byte errors.
+            values[countValues++]=errorValue;
+            values[countValues++]=errorValue;
+            values[countValues++]=errorValue;
+        } else {
+            values[countValues++]=value;
+        }
+        U_ASSERT(length < UPRV_LENGTHOF(s) && countValues < UPRV_LENGTHOF(values));
+        c=checkRanges[i].limit;
+        prevCP=(prevCP+c)/2;                    /* middle of the range */
+        U8_APPEND_UNSAFE(s, length, prevCP);
+        if(U_IS_SURROGATE(prevCP)) {
+            // A surrogate byte sequence counts as 3 single-byte errors.
+            values[countValues++]=errorValue;
+            values[countValues++]=errorValue;
+            values[countValues++]=errorValue;
+        } else {
+            values[countValues++]=value;
+        }
+        prevCP=c;
+        --c;                                    /* end of the range */
+        U8_APPEND_UNSAFE(s, length, c);
+        if(U_IS_SURROGATE(c)) {
+            // A surrogate byte sequence counts as 3 single-byte errors.
+            values[countValues++]=errorValue;
+            values[countValues++]=errorValue;
+            values[countValues++]=errorValue;
+        } else {
+            values[countValues++]=value;
+        }
+        /* write an illegal byte sequence */
+        if(i8<sizeof(illegal)) {
+            U8_FWD_1(illegal, i8, sizeof(illegal));
+            while(prev8<i8) {
+                s[length++]=illegal[prev8++];
+            }
+            values[countValues++]=errorValue;
+        }
+    }
+    /* write the remaining illegal byte sequences */
+    while(i8<sizeof(illegal)) {
+        U8_FWD_1(illegal, i8, sizeof(illegal));
+        while(prev8<i8) {
+            s[length++]=illegal[prev8++];
+        }
+        values[countValues++]=errorValue;
+    }
+    limit=s+length;
+    if(length>UPRV_LENGTHOF(s)) {
+        log_err("UTF-8 test string length %d > capacity %d\n", (int)length, (int)UPRV_LENGTHOF(s));
+        return;
+    }
+    if(countValues>UPRV_LENGTHOF(values)) {
+        log_err("UTF-8 test values length %d > capacity %d\n", (int)countValues, (int)UPRV_LENGTHOF(values));
+        return;
+    }
+
+    /* try forward */
+    p=s;
+    i=0;
+    while(p<limit) {
+        prev8=i8=(int32_t)(p-s);
+        U8_NEXT(s, i8, length, c);
+        if(valueWidth==UCPTRIE_VALUE_BITS_16) {
+            UCPTRIE_FAST_U8_NEXT(trie, UCPTRIE_16, p, limit, value);
+        } else if(valueWidth==UCPTRIE_VALUE_BITS_32) {
+            UCPTRIE_FAST_U8_NEXT(trie, UCPTRIE_32, p, limit, value);
+        } else {
+            UCPTRIE_FAST_U8_NEXT(trie, UCPTRIE_8, p, limit, value);
+        }
+        expectedBytes=0;
+        if(value!=values[i] || i8!=(p-s)) {
+            int32_t k=prev8;
+            while(k<i8) {
+                expectedBytes=(expectedBytes<<8)|s[k++];
+            }
+        }
+        if(i8==(p-s)) {
+            actualBytes=expectedBytes;
+        } else {
+            actualBytes=0;
+            int32_t k=prev8;
+            while(k<(p-s)) {
+                actualBytes=(actualBytes<<8)|s[k++];
+            }
+        }
+        if(value!=values[i]) {
+            log_err("error: wrong value from UCPTRIE_FAST_U8_NEXT(%s)(from %d %lx->U+%04lx) (read %d bytes): "
+                    "0x%lx instead of 0x%lx (from bytes %lx)\n",
+                    testName, (int)prev8, (unsigned long)actualBytes, (long)c, (int)((p-s)-prev8),
+                    (long)value, (long)values[i], (unsigned long)expectedBytes);
+        }
+        if(i8!=(p-s)) {
+            log_err("error: wrong end index from UCPTRIE_FAST_U8_NEXT(%s)(from %d %lx->U+%04lx): "
+                    "%ld != %ld (bytes %lx)\n",
+                    testName, (int)prev8, (unsigned long)actualBytes, (long)c,
+                    (long)(p-s), (long)i8, (unsigned long)expectedBytes);
+            break;
+        }
+        ++i;
+    }
+
+    /* try backward */
+    p=limit;
+    i=countValues;
+    while(s<p) {
+        --i;
+        prev8=i8=(int32_t)(p-s);
+        U8_PREV(s, 0, i8, c);
+        if(valueWidth==UCPTRIE_VALUE_BITS_16) {
+            UCPTRIE_FAST_U8_PREV(trie, UCPTRIE_16, s, p, value);
+        } else if(valueWidth==UCPTRIE_VALUE_BITS_32) {
+            UCPTRIE_FAST_U8_PREV(trie, UCPTRIE_32, s, p, value);
+        } else {
+            UCPTRIE_FAST_U8_PREV(trie, UCPTRIE_8, s, p, value);
+        }
+        expectedBytes=0;
+        if(value!=values[i] || i8!=(p-s)) {
+            int32_t k=i8;
+            while(k<prev8) {
+                expectedBytes=(expectedBytes<<8)|s[k++];
+            }
+        }
+        if(i8==(p-s)) {
+            actualBytes=expectedBytes;
+        } else {
+            actualBytes=0;
+            int32_t k=(int32_t)(p-s);
+            while(k<prev8) {
+                actualBytes=(actualBytes<<8)|s[k++];
+            }
+        }
+        if(value!=values[i]) {
+            log_err("error: wrong value from UCPTRIE_FAST_U8_PREV(%s)(from %d %lx->U+%04lx) (read %d bytes): "
+                    "0x%lx instead of 0x%lx (from bytes %lx)\n",
+                    testName, (int)prev8, (unsigned long)actualBytes, (long)c, (int)(prev8-(p-s)),
+                    (long)value, (long)values[i], (unsigned long)expectedBytes);
+        }
+        if(i8!=(p-s)) {
+            log_err("error: wrong end index from UCPTRIE_FAST_U8_PREV(%s)(from %d %lx->U+%04lx): "
+                    "%ld != %ld (bytes %lx)\n",
+                    testName, (int)prev8, (unsigned long)actualBytes, (long)c,
+                    (long)(p-s), (long)i8, (unsigned long)expectedBytes);
+            break;
+        }
+    }
+}
+
+static void
+testTrie(const char *testName, const UCPTrie *trie,
+         UCPTrieType type, UCPTrieValueWidth valueWidth,
+         const CheckRange checkRanges[], int32_t countCheckRanges) {
+    testTrieGetters(testName, trie, type, valueWidth, checkRanges, countCheckRanges);
+    testTrieGetRanges(testName, trie, NULL, UCPMAP_RANGE_NORMAL, 0, checkRanges, countCheckRanges);
+    if (type == UCPTRIE_TYPE_FAST) {
+        testTrieUTF16(testName, trie, valueWidth, checkRanges, countCheckRanges);
+        testTrieUTF8(testName, trie, valueWidth, checkRanges, countCheckRanges);
+    }
+}
+
+static void
+testBuilder(const char *testName, const UMutableCPTrie *mutableTrie,
+            const CheckRange checkRanges[], int32_t countCheckRanges) {
+    testBuilderGetters(testName, mutableTrie, checkRanges, countCheckRanges);
+    testTrieGetRanges(testName, NULL, mutableTrie, UCPMAP_RANGE_NORMAL, 0, checkRanges, countCheckRanges);
+}
+
+static uint32_t storage[120000];
+static uint32_t swapped[120000];
+
+static void
+testTrieSerialize(const char *testName, UMutableCPTrie *mutableTrie,
+                  UCPTrieType type, UCPTrieValueWidth valueWidth, UBool withSwap,
+                  const CheckRange checkRanges[], int32_t countCheckRanges) {
+    UCPTrie *trie;
+    int32_t length1, length2, length3;
+    UErrorCode errorCode;
+
+    /* clone the trie so that the caller can reuse the original */
+    errorCode=U_ZERO_ERROR;
+    mutableTrie = umutablecptrie_clone(mutableTrie, &errorCode);
+    if(U_FAILURE(errorCode)) {
+        log_err("error: umutablecptrie_clone(%s) failed - %s\n",
+                testName, u_errorName(errorCode));
+        return;
+    }
+
+    /*
+     * This is not a loop, but simply a block that we can exit with "break"
+     * when something goes wrong.
+     */
+    do {
+        errorCode=U_ZERO_ERROR;
+        trie = umutablecptrie_buildImmutable(mutableTrie, type, valueWidth, &errorCode);
+        if (U_FAILURE(errorCode)) {
+            log_err("error: umutablecptrie_buildImmutable(%s) failed: %s\n",
+                    testName, u_errorName(errorCode));
+            break;
+        }
+        errorCode=U_ZERO_ERROR;
+        length1=ucptrie_toBinary(trie, NULL, 0, &errorCode);
+        if(errorCode!=U_BUFFER_OVERFLOW_ERROR) {
+            log_err("error: ucptrie_toBinary(%s) preflighting set %s != U_BUFFER_OVERFLOW_ERROR\n",
+                    testName, u_errorName(errorCode));
+            break;
+        }
+        errorCode=U_ZERO_ERROR;
+        length2=ucptrie_toBinary(trie, storage, sizeof(storage), &errorCode);
+        if(errorCode==U_BUFFER_OVERFLOW_ERROR) {
+            log_err("error: ucptrie_toBinary(%s) needs more memory\n", testName);
+            break;
+        }
+        if(U_FAILURE(errorCode)) {
+            log_err("error: ucptrie_toBinary(%s) failed: %s\n", testName, u_errorName(errorCode));
+            break;
+        }
+        if(length1!=length2) {
+            log_err("error: trie serialization (%s) lengths different: "
+                    "preflight vs. serialize\n", testName);
+            break;
+        }
+
+        testTrie(testName, trie, type, valueWidth, checkRanges, countCheckRanges);
+        ucptrie_close(trie);
+        trie=NULL;
+
+        if(withSwap) {
+            int32_t swappedLength;
+
+            UDataSwapper *ds;
+
+            /* swap to opposite-endian */
+            uprv_memset(swapped, 0x55, length2);
+            ds=udata_openSwapper(U_IS_BIG_ENDIAN, U_CHARSET_FAMILY,
+                                 !U_IS_BIG_ENDIAN, U_CHARSET_FAMILY, &errorCode);
+            swappedLength=ucptrie_swap(ds, storage, -1, NULL, &errorCode);
+            if(U_FAILURE(errorCode) || swappedLength!=length2) {
+                log_err("error: ucptrie_swap(%s to OE preflighting) failed (%s) "
+                        "or before/after lengths different\n",
+                        testName, u_errorName(errorCode));
+                udata_closeSwapper(ds);
+                break;
+            }
+            swappedLength=ucptrie_swap(ds, storage, length2, swapped, &errorCode);
+            udata_closeSwapper(ds);
+            if(U_FAILURE(errorCode) || swappedLength!=length2) {
+                log_err("error: ucptrie_swap(%s to OE) failed (%s) or before/after lengths different\n",
+                        testName, u_errorName(errorCode));
+                break;
+            }
+
+            /* swap back to platform-endian */
+            uprv_memset(storage, 0xaa, length2);
+            ds=udata_openSwapper(!U_IS_BIG_ENDIAN, U_CHARSET_FAMILY,
+                                 U_IS_BIG_ENDIAN, U_CHARSET_FAMILY, &errorCode);
+            swappedLength=ucptrie_swap(ds, swapped, -1, NULL, &errorCode);
+            if(U_FAILURE(errorCode) || swappedLength!=length2) {
+                log_err("error: ucptrie_swap(%s to PE preflighting) failed (%s) "
+                        "or before/after lengths different\n",
+                        testName, u_errorName(errorCode));
+                udata_closeSwapper(ds);
+                break;
+            }
+            swappedLength=ucptrie_swap(ds, swapped, length2, storage, &errorCode);
+            udata_closeSwapper(ds);
+            if(U_FAILURE(errorCode) || swappedLength!=length2) {
+                log_err("error: ucptrie_swap(%s to PE) failed (%s) or before/after lengths different\n",
+                        testName, u_errorName(errorCode));
+                break;
+            }
+        }
+
+        trie = ucptrie_openFromBinary(type, valueWidth, storage, length2, &length3, &errorCode);
+        if(U_FAILURE(errorCode)) {
+            log_err("error: ucptrie_openFromBinary(%s) failed, %s\n", testName, u_errorName(errorCode));
+            break;
+        }
+        if(type != ucptrie_getType(trie)) {
+            log_err("error: trie serialization (%s) did not preserve trie type\n", testName);
+            break;
+        }
+        if(valueWidth != ucptrie_getValueWidth(trie)) {
+            log_err("error: trie serialization (%s) did not preserve data value width\n", testName);
+            break;
+        }
+        if(length2!=length3) {
+            log_err("error: trie serialization (%s) lengths different: "
+                    "serialize vs. unserialize\n", testName);
+            break;
+        }
+        /* overwrite the storage that is not supposed to be needed */
+        uprv_memset((char *)storage+length3, 0xfa, (int32_t)(sizeof(storage)-length3));
+
+        {
+            errorCode=U_ZERO_ERROR;
+            UCPTrie *any = ucptrie_openFromBinary(UCPTRIE_TYPE_ANY, UCPTRIE_VALUE_BITS_ANY,
+                                                  storage, length3, NULL, &errorCode);
+            if (U_SUCCESS(errorCode)) {
+                if (type != ucptrie_getType(any)) {
+                    log_err("error: ucptrie_openFromBinary("
+                            "UCPTRIE_TYPE_ANY, UCPTRIE_VALUE_BITS_ANY).getType() wrong\n");
+                }
+                if (valueWidth != ucptrie_getValueWidth(any)) {
+                    log_err("error: ucptrie_openFromBinary("
+                            "UCPTRIE_TYPE_ANY, UCPTRIE_VALUE_BITS_ANY).getValueWidth() wrong\n");
+                }
+                ucptrie_close(any);
+            } else {
+                log_err("error: ucptrie_openFromBinary("
+                        "UCPTRIE_TYPE_ANY, UCPTRIE_VALUE_BITS_ANY) failed - %s\n",
+                        u_errorName(errorCode));
+            }
+        }
+
+        errorCode=U_ZERO_ERROR;
+        testTrie(testName, trie, type, valueWidth, checkRanges, countCheckRanges);
+        {
+            /* make a mutable trie from an immutable one */
+            uint32_t value, value2;
+            UMutableCPTrie *mutable2 = umutablecptrie_fromUCPTrie(trie, &errorCode);
+            if(U_FAILURE(errorCode)) {
+                log_err("error: umutablecptrie_fromUCPTrie(unserialized %s) failed - %s\n",
+                        testName, u_errorName(errorCode));
+                break;
+            }
+
+            value=umutablecptrie_get(mutable2, 0xa1);
+            umutablecptrie_set(mutable2, 0xa1, 789, &errorCode);
+            value2=umutablecptrie_get(mutable2, 0xa1);
+            umutablecptrie_set(mutable2, 0xa1, value, &errorCode);
+            if(U_FAILURE(errorCode) || value2!=789) {
+                log_err("error: modifying a mutableTrie-from-UCPTrie (%s) failed - %s\n",
+                        testName, u_errorName(errorCode));
+            }
+            testBuilder(testName, mutable2, checkRanges, countCheckRanges);
+            umutablecptrie_close(mutable2);
+        }
+    } while(0);
+
+    umutablecptrie_close(mutableTrie);
+    ucptrie_close(trie);
+}
+
+static UMutableCPTrie *
+testTrieSerializeAllValueWidth(const char *testName,
+                               UMutableCPTrie *mutableTrie, UBool withClone,
+                               const CheckRange checkRanges[], int32_t countCheckRanges) {
+    char name[40];
+    uint32_t oredValues = 0;
+    int32_t i;
+    for (i = 0; i < countCheckRanges; ++i) {
+        oredValues |= checkRanges[i].value;
+    }
+
+    testBuilder(testName, mutableTrie, checkRanges, countCheckRanges);
+
+    if (oredValues <= 0xffff) {
+        uprv_strcpy(name, testName);
+        uprv_strcat(name, ".16");
+        testTrieSerialize(name, mutableTrie,
+                          UCPTRIE_TYPE_FAST, UCPTRIE_VALUE_BITS_16, withClone,
+                          checkRanges, countCheckRanges);
+    }
+
+    uprv_strcpy(name, testName);
+    uprv_strcat(name, ".32");
+    testTrieSerialize(name, mutableTrie,
+                      UCPTRIE_TYPE_FAST, UCPTRIE_VALUE_BITS_32, withClone,
+                      checkRanges, countCheckRanges);
+
+    if (oredValues <= 0xff) {
+        uprv_strcpy(name, testName);
+        uprv_strcat(name, ".8");
+        testTrieSerialize(name, mutableTrie,
+                          UCPTRIE_TYPE_FAST, UCPTRIE_VALUE_BITS_8, withClone,
+                          checkRanges, countCheckRanges);
+    }
+
+    if (oredValues <= 0xffff) {
+        uprv_strcpy(name, testName);
+        uprv_strcat(name, ".small16");
+        testTrieSerialize(name, mutableTrie,
+                          UCPTRIE_TYPE_SMALL, UCPTRIE_VALUE_BITS_16, withClone,
+                          checkRanges, countCheckRanges);
+    }
+
+    return mutableTrie;
+}
+
+static UMutableCPTrie *
+makeTrieWithRanges(const char *testName, UBool withClone,
+                   const SetRange setRanges[], int32_t countSetRanges,
+                   const CheckRange checkRanges[], int32_t countCheckRanges) {
+    UMutableCPTrie *mutableTrie;
+    uint32_t initialValue, errorValue;
+    uint32_t value;
+    UChar32 start, limit;
+    int32_t i;
+    UErrorCode errorCode;
+
+    log_verbose("\ntesting Trie '%s'\n", testName);
+    errorCode=U_ZERO_ERROR;
+    getSpecialValues(checkRanges, countCheckRanges, &initialValue, &errorValue);
+    mutableTrie = umutablecptrie_open(initialValue, errorValue, &errorCode);
+    if(U_FAILURE(errorCode)) {
+        log_err("error: umutablecptrie_open(%s) failed: %s\n", testName, u_errorName(errorCode));
+        return NULL;
+    }
+
+    /* set values from setRanges[] */
+    for(i=0; i<countSetRanges; ++i) {
+        if(withClone && i==countSetRanges/2) {
+            /* switch to a clone in the middle of setting values */
+            UMutableCPTrie *clone = umutablecptrie_clone(mutableTrie, &errorCode);
+            if(U_FAILURE(errorCode)) {
+                log_err("error: umutablecptrie_clone(%s) failed - %s\n",
+                        testName, u_errorName(errorCode));
+                errorCode=U_ZERO_ERROR;  /* continue with the original */
+            } else {
+                umutablecptrie_close(mutableTrie);
+                mutableTrie = clone;
+            }
+        }
+        start=setRanges[i].start;
+        limit=setRanges[i].limit;
+        value=setRanges[i].value;
+        if ((limit - start) == 1) {
+            umutablecptrie_set(mutableTrie, start, value, &errorCode);
+        } else {
+            umutablecptrie_setRange(mutableTrie, start, limit-1, value, &errorCode);
+        }
+    }
+
+    if(U_SUCCESS(errorCode)) {
+        return mutableTrie;
+    } else {
+        log_err("error: setting values into a mutable trie (%s) failed - %s\n",
+                testName, u_errorName(errorCode));
+        umutablecptrie_close(mutableTrie);
+        return NULL;
+    }
+}
+
+static void
+testTrieRanges(const char *testName, UBool withClone,
+               const SetRange setRanges[], int32_t countSetRanges,
+               const CheckRange checkRanges[], int32_t countCheckRanges) {
+    UMutableCPTrie *mutableTrie = makeTrieWithRanges(
+        testName, withClone, setRanges, countSetRanges, checkRanges, countCheckRanges);
+    if (mutableTrie != NULL) {
+        mutableTrie = testTrieSerializeAllValueWidth(testName, mutableTrie, withClone,
+                                                     checkRanges, countCheckRanges);
+        umutablecptrie_close(mutableTrie);
+    }
+}
+
+/* test data ----------------------------------------------------------------*/
+
+/* set consecutive ranges, even with value 0 */
+static const SetRange
+setRanges1[]={
+    { 0,        0x40,     0    },
+    { 0x40,     0xe7,     0x34 },
+    { 0xe7,     0x3400,   0    },
+    { 0x3400,   0x9fa6,   0x61 },
+    { 0x9fa6,   0xda9e,   0x31 },
+    { 0xdada,   0xeeee,   0xff },
+    { 0xeeee,   0x11111,  1    },
+    { 0x11111,  0x44444,  0x61 },
+    { 0x44444,  0x60003,  0    },
+    { 0xf0003,  0xf0004,  0xf  },
+    { 0xf0004,  0xf0006,  0x10 },
+    { 0xf0006,  0xf0007,  0x11 },
+    { 0xf0007,  0xf0040,  0x12 },
+    { 0xf0040,  0x110000, 0    }
+};
+
+static const CheckRange
+checkRanges1[]={
+    { 0,        0 },
+    { 0x40,     0 },
+    { 0xe7,     0x34 },
+    { 0x3400,   0 },
+    { 0x9fa6,   0x61 },
+    { 0xda9e,   0x31 },
+    { 0xdada,   0 },
+    { 0xeeee,   0xff },
+    { 0x11111,  1 },
+    { 0x44444,  0x61 },
+    { 0xf0003,  0 },
+    { 0xf0004,  0xf },
+    { 0xf0006,  0x10 },
+    { 0xf0007,  0x11 },
+    { 0xf0040,  0x12 },
+    { 0x110000, 0 }
+};
+
+/* set some interesting overlapping ranges */
+static const SetRange
+setRanges2[]={
+    { 0x21,     0x7f,     0x5555 },
+    { 0x2f800,  0x2fedc,  0x7a   },
+    { 0x72,     0xdd,     3      },
+    { 0xdd,     0xde,     4      },
+    { 0x201,    0x240,    6      },  /* 3 consecutive blocks with the same pattern but */
+    { 0x241,    0x280,    6      },  /* discontiguous value ranges, testing iteration */
+    { 0x281,    0x2c0,    6      },
+    { 0x2f987,  0x2fa98,  5      },
+    { 0x2f777,  0x2f883,  0      },
+    { 0x2fedc,  0x2ffaa,  1      },
+    { 0x2ffaa,  0x2ffab,  2      },
+    { 0x2ffbb,  0x2ffc0,  7      }
+};
+
+static const CheckRange
+checkRanges2[]={
+    { 0,        0 },
+    { 0x21,     0 },
+    { 0x72,     0x5555 },
+    { 0xdd,     3 },
+    { 0xde,     4 },
+    { 0x201,    0 },
+    { 0x240,    6 },
+    { 0x241,    0 },
+    { 0x280,    6 },
+    { 0x281,    0 },
+    { 0x2c0,    6 },
+    { 0x2f883,  0 },
+    { 0x2f987,  0x7a },
+    { 0x2fa98,  5 },
+    { 0x2fedc,  0x7a },
+    { 0x2ffaa,  1 },
+    { 0x2ffab,  2 },
+    { 0x2ffbb,  0 },
+    { 0x2ffc0,  7 },
+    { 0x110000, 0 }
+};
+
+/* use a non-zero initial value */
+static const SetRange
+setRanges3[]={
+    { 0x31,     0xa4,     1 },
+    { 0x3400,   0x6789,   2 },
+    { 0x8000,   0x89ab,   9 },
+    { 0x9000,   0xa000,   4 },
+    { 0xabcd,   0xbcde,   3 },
+    { 0x55555,  0x110000, 6 },  /* highStart<U+ffff with non-initialValue */
+    { 0xcccc,   0x55555,  6 }
+};
+
+static const CheckRange
+checkRanges3[]={
+    { 0,        9 },  /* non-zero initialValue */
+    { 0x31,     9 },
+    { 0xa4,     1 },
+    { 0x3400,   9 },
+    { 0x6789,   2 },
+    { 0x9000,   9 },
+    { 0xa000,   4 },
+    { 0xabcd,   9 },
+    { 0xbcde,   3 },
+    { 0xcccc,   9 },
+    { 0x110000, 6 }
+};
+
+/* empty or single-value tries, testing highStart==0 */
+static const SetRange
+setRangesEmpty[]={
+    { 0,        0,        0 },  /* need some values for it to compile */
+};
+
+static const CheckRange
+checkRangesEmpty[]={
+    { 0,        3 },
+    { 0x110000, 3 }
+};
+
+static const SetRange
+setRangesSingleValue[]={
+    { 0,        0x110000, 5 },
+};
+
+static const CheckRange
+checkRangesSingleValue[]={
+    { 0,        3 },
+    { 0x110000, 5 }
+};
+
+static void
+TrieTestSet1(void) {
+    testTrieRanges("set1", FALSE,
+        setRanges1, UPRV_LENGTHOF(setRanges1),
+        checkRanges1, UPRV_LENGTHOF(checkRanges1));
+}
+
+static void
+TrieTestSet2Overlap(void) {
+    testTrieRanges("set2-overlap", FALSE,
+        setRanges2, UPRV_LENGTHOF(setRanges2),
+        checkRanges2, UPRV_LENGTHOF(checkRanges2));
+}
+
+static void
+TrieTestSet3Initial9(void) {
+    testTrieRanges("set3-initial-9", FALSE,
+        setRanges3, UPRV_LENGTHOF(setRanges3),
+        checkRanges3, UPRV_LENGTHOF(checkRanges3));
+}
+
+static void
+TrieTestSetEmpty(void) {
+    testTrieRanges("set-empty", FALSE,
+        setRangesEmpty, 0,
+        checkRangesEmpty, UPRV_LENGTHOF(checkRangesEmpty));
+}
+
+static void
+TrieTestSetSingleValue(void) {
+    testTrieRanges("set-single-value", FALSE,
+        setRangesSingleValue, UPRV_LENGTHOF(setRangesSingleValue),
+        checkRangesSingleValue, UPRV_LENGTHOF(checkRangesSingleValue));
+}
+
+static void
+TrieTestSet2OverlapWithClone(void) {
+    testTrieRanges("set2-overlap.withClone", TRUE,
+        setRanges2, UPRV_LENGTHOF(setRanges2),
+        checkRanges2, UPRV_LENGTHOF(checkRanges2));
+}
+
+/* test mutable-trie memory management -------------------------------------- */
+
+static void
+FreeBlocksTest(void) {
+    static const CheckRange
+    checkRanges[]={
+        { 0,        1 },
+        { 0x740,    1 },
+        { 0x780,    2 },
+        { 0x880,    3 },
+        { 0x110000, 1 }
+    };
+    static const char *const testName="free-blocks";
+
+    UMutableCPTrie *mutableTrie;
+    int32_t i;
+    UErrorCode errorCode;
+
+    errorCode=U_ZERO_ERROR;
+    mutableTrie=umutablecptrie_open(1, 0xad, &errorCode);
+    if(U_FAILURE(errorCode)) {
+        log_err("error: umutablecptrie_open(%s) failed: %s\n", testName, u_errorName(errorCode));
+        return;
+    }
+
+    /*
+     * Repeatedly set overlapping same-value ranges to stress the free-data-block management.
+     * If it fails, it will overflow the data array.
+     */
+    for(i=0; i<(0x120000>>4)/2; ++i) {  // 4=UCPTRIE_SHIFT_3
+        umutablecptrie_setRange(mutableTrie, 0x740, 0x840-1, 1, &errorCode);
+        umutablecptrie_setRange(mutableTrie, 0x780, 0x880-1, 1, &errorCode);
+        umutablecptrie_setRange(mutableTrie, 0x740, 0x840-1, 2, &errorCode);
+        umutablecptrie_setRange(mutableTrie, 0x780, 0x880-1, 3, &errorCode);
+    }
+    /* make blocks that will be free during compaction */
+    umutablecptrie_setRange(mutableTrie, 0x1000, 0x3000-1, 2, &errorCode);
+    umutablecptrie_setRange(mutableTrie, 0x2000, 0x4000-1, 3, &errorCode);
+    umutablecptrie_setRange(mutableTrie, 0x1000, 0x4000-1, 1, &errorCode);
+    if(U_FAILURE(errorCode)) {
+        log_err("error: setting lots of ranges into a mutable trie (%s) failed - %s\n",
+                testName, u_errorName(errorCode));
+        umutablecptrie_close(mutableTrie);
+        return;
+    }
+
+    mutableTrie = testTrieSerializeAllValueWidth(testName, mutableTrie, FALSE,
+                                                 checkRanges, UPRV_LENGTHOF(checkRanges));
+    umutablecptrie_close(mutableTrie);
+}
+
+static void
+GrowDataArrayTest(void) {
+    static const CheckRange
+    checkRanges[]={
+        { 0,        1 },
+        { 0x720,    2 },
+        { 0x7a0,    3 },
+        { 0x8a0,    4 },
+        { 0x110000, 5 }
+    };
+    static const char *const testName="grow-data";
+
+    UMutableCPTrie *mutableTrie;
+    int32_t i;
+    UErrorCode errorCode;
+
+    errorCode=U_ZERO_ERROR;
+    mutableTrie=umutablecptrie_open(1, 0xad, &errorCode);
+    if(U_FAILURE(errorCode)) {
+        log_err("error: umutablecptrie_open(%s) failed: %s\n", testName, u_errorName(errorCode));
+        return;
+    }
+
+    /*
+     * Use umutablecptrie_set() not umutablecptrie_setRange() to write non-initialValue-data.
+     * Should grow/reallocate the data array to a sufficient length.
+     */
+    for(i=0; i<0x1000; ++i) {
+        umutablecptrie_set(mutableTrie, i, 2, &errorCode);
+    }
+    for(i=0x720; i<0x1100; ++i) { /* some overlap */
+        umutablecptrie_set(mutableTrie, i, 3, &errorCode);
+    }
+    for(i=0x7a0; i<0x900; ++i) {
+        umutablecptrie_set(mutableTrie, i, 4, &errorCode);
+    }
+    for(i=0x8a0; i<0x110000; ++i) {
+        umutablecptrie_set(mutableTrie, i, 5, &errorCode);
+    }
+    if(U_FAILURE(errorCode)) {
+        log_err("error: setting lots of values into a mutable trie (%s) failed - %s\n",
+                testName, u_errorName(errorCode));
+        umutablecptrie_close(mutableTrie);
+        return;
+    }
+
+    mutableTrie = testTrieSerializeAllValueWidth(testName, mutableTrie, FALSE,
+                                                 checkRanges, UPRV_LENGTHOF(checkRanges));
+    umutablecptrie_close(mutableTrie);
+}
+
+static void
+ManyAllSameBlocksTest(void) {
+    static const char *const testName="many-all-same";
+
+    UMutableCPTrie *mutableTrie;
+    int32_t i;
+    UErrorCode errorCode;
+    CheckRange checkRanges[(0x110000 >> 12) + 1];
+
+    errorCode = U_ZERO_ERROR;
+    mutableTrie = umutablecptrie_open(0xff33, 0xad, &errorCode);
+    if (U_FAILURE(errorCode)) {
+        log_err("error: umutablecptrie_open(%s) failed: %s\n", testName, u_errorName(errorCode));
+        return;
+    }
+    checkRanges[0].limit = 0;
+    checkRanges[0].value = 0xff33;  // initialValue
+
+    // Many all-same-value blocks.
+    for (i = 0; i < 0x110000; i += 0x1000) {
+        uint32_t value = i >> 12;
+        umutablecptrie_setRange(mutableTrie, i, i + 0xfff, value, &errorCode);
+        checkRanges[value + 1].limit = i + 0x1000;
+        checkRanges[value + 1].value = value;
+    }
+    for (i = 0; i < 0x110000; i += 0x1000) {
+        uint32_t expected = i >> 12;
+        uint32_t v0 = umutablecptrie_get(mutableTrie, i);
+        uint32_t vfff = umutablecptrie_get(mutableTrie, i + 0xfff);
+        if (v0 != expected || vfff != expected) {
+            log_err("error: UMutableCPTrie U+%04lx unexpected value\n", (long)i);
+        }
+    }
+
+    mutableTrie = testTrieSerializeAllValueWidth(testName, mutableTrie, FALSE,
+                                                 checkRanges, UPRV_LENGTHOF(checkRanges));
+    umutablecptrie_close(mutableTrie);
+}
+
+static void
+MuchDataTest(void) {
+    static const char *const testName="much-data";
+
+    UMutableCPTrie *mutableTrie;
+    int32_t r, c;
+    UErrorCode errorCode = U_ZERO_ERROR;
+    CheckRange checkRanges[(0x10000 >> 6) + (0x10240 >> 4) + 10];
+
+    mutableTrie = umutablecptrie_open(0xff33, 0xad, &errorCode);
+    if (U_FAILURE(errorCode)) {
+        log_err("error: umutablecptrie_open(%s) failed: %s\n", testName, u_errorName(errorCode));
+        return;
+    }
+    checkRanges[0].limit = 0;
+    checkRanges[0].value = 0xff33;  // initialValue
+    r = 1;
+
+    // Add much data that does not compact well,
+    // to get more than 128k data values after compaction.
+    for (c = 0; c < 0x10000; c += 0x40) {
+        uint32_t value = c >> 4;
+        umutablecptrie_setRange(mutableTrie, c, c + 0x3f, value, &errorCode);
+        checkRanges[r].limit = c + 0x40;
+        checkRanges[r++].value = value;
+    }
+    checkRanges[r].limit = 0x20000;
+    checkRanges[r++].value = 0xff33;
+    for (c = 0x20000; c < 0x30230; c += 0x10) {
+        uint32_t value = c >> 4;
+        umutablecptrie_setRange(mutableTrie, c, c + 0xf, value, &errorCode);
+        checkRanges[r].limit = c + 0x10;
+        checkRanges[r++].value = value;
+    }
+    umutablecptrie_setRange(mutableTrie, 0x30230, 0x30233, 0x3023, &errorCode);
+    checkRanges[r].limit = 0x30234;
+    checkRanges[r++].value = 0x3023;
+    umutablecptrie_setRange(mutableTrie, 0x30234, 0xdffff, 0x5005, &errorCode);
+    checkRanges[r].limit = 0xe0000;
+    checkRanges[r++].value = 0x5005;
+    umutablecptrie_setRange(mutableTrie, 0xe0000, 0x10ffff, 0x9009, &errorCode);
+    checkRanges[r].limit = 0x110000;
+    checkRanges[r++].value = 0x9009;
+    if (U_FAILURE(errorCode)) {
+        log_err("error: setting lots of values into a mutable trie (%s) failed - %s\n",
+                testName, u_errorName(errorCode));
+        umutablecptrie_close(mutableTrie);
+        return;
+    }
+    U_ASSERT(r <= UPRV_LENGTHOF(checkRanges));
+
+    testBuilder(testName, mutableTrie, checkRanges, r);
+    testTrieSerialize("much-data.16", mutableTrie,
+                      UCPTRIE_TYPE_FAST, UCPTRIE_VALUE_BITS_16, FALSE, checkRanges, r);
+    umutablecptrie_close(mutableTrie);
+}
+
+static void testGetRangesFixedSurr(const char *testName, const UMutableCPTrie *mutableTrie,
+                                   UCPMapRangeOption option,
+                                   const CheckRange checkRanges[], int32_t countCheckRanges) {
+    testTrieGetRanges(testName, NULL, mutableTrie, option, 5, checkRanges, countCheckRanges);
+    UErrorCode errorCode = U_ZERO_ERROR;
+    UMutableCPTrie *clone = umutablecptrie_clone(mutableTrie, &errorCode);
+    UCPTrie *trie;
+    if (U_FAILURE(errorCode)) {
+        log_err("error: umutablecptrie_clone(%s) failed: %s\n", testName, u_errorName(errorCode));
+        return;
+    }
+    trie = umutablecptrie_buildImmutable(clone, UCPTRIE_TYPE_FAST, UCPTRIE_VALUE_BITS_16, &errorCode);
+    umutablecptrie_close(clone);
+    if (U_FAILURE(errorCode)) {
+        log_err("error: umutablecptrie_buildImmutable(%s) failed: %s\n", testName, u_errorName(errorCode));
+        return;
+    }
+    testTrieGetRanges(testName, trie, NULL, option, 5, checkRanges, countCheckRanges);
+    ucptrie_close(trie);
+}
+
+static void
+TrieTestGetRangesFixedSurr(void) {
+    static const SetRange
+    setRangesFixedSurr[]={
+        { 0xd000, 0xd7ff, 5 },
+        { 0xd7ff, 0xe001, 3 },
+        { 0xe001, 0xf900, 5 },
+    };
+
+    static const CheckRange
+    checkRangesFixedLeadSurr1[]={
+        { 0,      0 },
+        { 0xd000, 0 },
+        { 0xd7ff, 5 },
+        { 0xd800, 3 },
+        { 0xdc00, 5 },
+        { 0xe001, 3 },
+        { 0xf900, 5 },
+        { 0x110000, 0 }
+    };
+
+    static const CheckRange
+    checkRangesFixedAllSurr1[]={
+        { 0,      0 },
+        { 0xd000, 0 },
+        { 0xd7ff, 5 },
+        { 0xd800, 3 },
+        { 0xe000, 5 },
+        { 0xe001, 3 },
+        { 0xf900, 5 },
+        { 0x110000, 0 }
+    };
+
+    static const CheckRange
+    checkRangesFixedLeadSurr3[]={
+        { 0,      0 },
+        { 0xd000, 0 },
+        { 0xdc00, 5 },
+        { 0xe001, 3 },
+        { 0xf900, 5 },
+        { 0x110000, 0 }
+    };
+
+    static const CheckRange
+    checkRangesFixedAllSurr3[]={
+        { 0,      0 },
+        { 0xd000, 0 },
+        { 0xe000, 5 },
+        { 0xe001, 3 },
+        { 0xf900, 5 },
+        { 0x110000, 0 }
+    };
+
+    static const CheckRange
+    checkRangesFixedSurr4[]={
+        { 0,      0 },
+        { 0xd000, 0 },
+        { 0xf900, 5 },
+        { 0x110000, 0 }
+    };
+
+    UMutableCPTrie *mutableTrie = makeTrieWithRanges(
+        "fixedSurr", FALSE, setRangesFixedSurr, UPRV_LENGTHOF(setRangesFixedSurr),
+        checkRangesFixedLeadSurr1, UPRV_LENGTHOF(checkRangesFixedLeadSurr1));
+    UErrorCode errorCode = U_ZERO_ERROR;
+    if (mutableTrie == NULL) {
+        return;
+    }
+    testGetRangesFixedSurr("fixedLeadSurr1", mutableTrie, UCPMAP_RANGE_FIXED_LEAD_SURROGATES,
+                           checkRangesFixedLeadSurr1, UPRV_LENGTHOF(checkRangesFixedLeadSurr1));
+    testGetRangesFixedSurr("fixedAllSurr1", mutableTrie, UCPMAP_RANGE_FIXED_ALL_SURROGATES,
+                           checkRangesFixedAllSurr1, UPRV_LENGTHOF(checkRangesFixedAllSurr1));
+    // Setting a range in the middle of lead surrogates makes no difference.
+    umutablecptrie_setRange(mutableTrie, 0xd844, 0xd899, 5, &errorCode);
+    if (U_FAILURE(errorCode)) {
+        log_err("error: umutablecptrie_setRange(fixedSurr2) failed: %s\n", u_errorName(errorCode));
+        umutablecptrie_close(mutableTrie);
+        return;
+    }
+    testGetRangesFixedSurr("fixedLeadSurr2", mutableTrie, UCPMAP_RANGE_FIXED_LEAD_SURROGATES,
+                           checkRangesFixedLeadSurr1, UPRV_LENGTHOF(checkRangesFixedLeadSurr1));
+    // Bridge the gap before the lead surrogates.
+    umutablecptrie_set(mutableTrie, 0xd7ff, 5, &errorCode);
+    if (U_FAILURE(errorCode)) {
+        log_err("error: umutablecptrie_set(fixedSurr3) failed: %s\n", u_errorName(errorCode));
+        umutablecptrie_close(mutableTrie);
+        return;
+    }
+    testGetRangesFixedSurr("fixedLeadSurr3", mutableTrie, UCPMAP_RANGE_FIXED_LEAD_SURROGATES,
+                           checkRangesFixedLeadSurr3, UPRV_LENGTHOF(checkRangesFixedLeadSurr3));
+    testGetRangesFixedSurr("fixedAllSurr3", mutableTrie, UCPMAP_RANGE_FIXED_ALL_SURROGATES,
+                           checkRangesFixedAllSurr3, UPRV_LENGTHOF(checkRangesFixedAllSurr3));
+    // Bridge the gap after the trail surrogates.
+    umutablecptrie_set(mutableTrie, 0xe000, 5, &errorCode);
+    if (U_FAILURE(errorCode)) {
+        log_err("error: umutablecptrie_set(fixedSurr4) failed: %s\n", u_errorName(errorCode));
+        umutablecptrie_close(mutableTrie);
+        return;
+    }
+    testGetRangesFixedSurr("fixedSurr4", mutableTrie, UCPMAP_RANGE_FIXED_ALL_SURROGATES,
+                           checkRangesFixedSurr4, UPRV_LENGTHOF(checkRangesFixedSurr4));
+    umutablecptrie_close(mutableTrie);
+}
+
+static void TestSmallNullBlockMatchesFast(void) {
+    // The initial builder+getRange code had a bug:
+    // When there is no null data block in the fast-index range,
+    // but a fast-range data block starts with enough values to match a small data block,
+    // then getRange() got confused.
+    // The builder must prevent this.
+    static const SetRange setRanges[] = {
+        { 0, 0x880, 1 },
+        // U+0880..U+088F map to initial value 0, potential match for small null data block.
+        { 0x890, 0x1040, 2 },
+        // U+1040..U+1050 map to 0.
+        // First small null data block in a small-type trie.
+        // In a fast-type trie, it is ok to match a small null data block at U+1041
+        // but not at U+1040.
+        { 0x1051, 0x10000, 3 },
+        // No fast data block (block length 64) filled with 0 regardless of trie type.
+        // Need more blocks filled with 0 than the largest range above,
+        // and need a highStart above that so that it actually counts.
+        { 0x20000, 0x110000, 9 }
+    };
+
+    static const CheckRange checkRanges[] = {
+        { 0x0880, 1 },
+        { 0x0890, 0 },
+        { 0x1040, 2 },
+        { 0x1051, 0 },
+        { 0x10000, 3 },
+        { 0x20000, 0 },
+        { 0x110000, 9 }
+    };
+
+    testTrieRanges("small0-in-fast", FALSE,
+        setRanges, UPRV_LENGTHOF(setRanges),
+        checkRanges, UPRV_LENGTHOF(checkRanges));
+}
+
+static void ShortAllSameBlocksTest(void) {
+    static const char *const testName = "short-all-same";
+    // Many all-same-value blocks but only of the small block length used in the mutable trie.
+    // The builder code needs to turn a group of short ALL_SAME blocks below fastLimit
+    // into a MIXED block, and reserve data array capacity for that.
+    UErrorCode errorCode = U_ZERO_ERROR;
+    UMutableCPTrie *mutableTrie = umutablecptrie_open(0, 0xad, &errorCode);
+    CheckRange checkRanges[0x101];
+    int32_t i;
+    if (U_FAILURE(errorCode)) {
+        log_err("error: umutablecptrie_open(%s) failed: %s\n", testName, u_errorName(errorCode));
+        return;
+    }
+    for (i = 0; i < 0x1000; i += 0x10) {
+        uint32_t value = i >> 4;
+        umutablecptrie_setRange(mutableTrie, i, i + 0xf, value, &errorCode);
+        checkRanges[value].limit = i + 0x10;
+        checkRanges[value].value = value;
+    }
+    checkRanges[0x100].limit = 0x110000;
+    checkRanges[0x100].value = 0;
+    if (U_FAILURE(errorCode)) {
+        log_err("error: setting values into a mutable trie (%s) failed - %s\n",
+                testName, u_errorName(errorCode));
+        umutablecptrie_close(mutableTrie);
+        return;
+    }
+
+    mutableTrie = testTrieSerializeAllValueWidth(testName, mutableTrie, FALSE,
+                                                 checkRanges, UPRV_LENGTHOF(checkRanges));
+    umutablecptrie_close(mutableTrie);
+}
+
+void
+addUCPTrieTest(TestNode** root) {
+    addTest(root, &TrieTestSet1, "tsutil/ucptrietest/TrieTestSet1");
+    addTest(root, &TrieTestSet2Overlap, "tsutil/ucptrietest/TrieTestSet2Overlap");
+    addTest(root, &TrieTestSet3Initial9, "tsutil/ucptrietest/TrieTestSet3Initial9");
+    addTest(root, &TrieTestSetEmpty, "tsutil/ucptrietest/TrieTestSetEmpty");
+    addTest(root, &TrieTestSetSingleValue, "tsutil/ucptrietest/TrieTestSetSingleValue");
+    addTest(root, &TrieTestSet2OverlapWithClone, "tsutil/ucptrietest/TrieTestSet2OverlapWithClone");
+    addTest(root, &FreeBlocksTest, "tsutil/ucptrietest/FreeBlocksTest");
+    addTest(root, &GrowDataArrayTest, "tsutil/ucptrietest/GrowDataArrayTest");
+    addTest(root, &ManyAllSameBlocksTest, "tsutil/ucptrietest/ManyAllSameBlocksTest");
+    addTest(root, &MuchDataTest, "tsutil/ucptrietest/MuchDataTest");
+    addTest(root, &TrieTestGetRangesFixedSurr, "tsutil/ucptrietest/TrieTestGetRangesFixedSurr");
+    addTest(root, &TestSmallNullBlockMatchesFast, "tsutil/ucptrietest/TestSmallNullBlockMatchesFast");
+    addTest(root, &ShortAllSameBlocksTest, "tsutil/ucptrietest/ShortAllSameBlocksTest");
+}
index fb8690db91adfc816b9c59b1adb17ac966dd699a..93e2f19b6e753e0c21defc83d45588dc03935216 100644 (file)
@@ -316,7 +316,7 @@ static KnownRegion knownRegions[] = {
     { "TA" ,  -1, "QO",  URGN_TERRITORY, "009" },
     { "TC" , 796, "029", URGN_TERRITORY, "019" },
     { "TD" , 148, "017", URGN_TERRITORY, "002" },
-    { "TF" , 260, "145", URGN_TERRITORY, "142" },
+    { "TF" , 260, "014", URGN_TERRITORY, "002" },
     { "TG" , 768, "011", URGN_TERRITORY, "002" },
     { "TH" , 764, "035", URGN_TERRITORY, "142" },
     { "TJ" , 762, "143", URGN_TERRITORY, "142" },
index 87bbc8cdfb496c9c99020fcf9db9d73e83c24f95..f4e7a7d47517cd599ef66b15175be3d2bd0b8c38 100755 (executable)
@@ -1,4 +1,4 @@
-#! /usr/bin/python
+#! /usr/bin/python -B
 # -*- coding: utf-8 -*-
 #
 # Copyright (C) 2016 and later: Unicode, Inc. and others.
index 55783ee04edfde6b865acdfa55d7ee30679aa658..1d05d39843750a97bc2a54d4d7dc7b26bdd4a5fe 100644 (file)
@@ -160,11 +160,9 @@ library: common
     static_unicode_sets
     uiter edits
     ucasemap ucasemap_titlecase_brkiter script_runs
-    uprops ubidi_props ucase uscript uscript_props
+    uprops ubidi_props ucase uscript uscript_props characterproperties
     ubidi ushape ubiditransform
-    listformatter
     resourcebundle service_registration resbund_cnv ures_cnv icudataver ucat
-    loclikely
     currency
     locale_display_names2
     conversion converter_selector ucnv_set ucnvdisp
@@ -175,7 +173,7 @@ library: common
     ucharstriebuilder ucharstrieiterator
     bytestriebuilder bytestrieiterator
     hashtable uhash uvector uvector32 uvector64 ulist
-    propsvec utrie2 utrie2_builder
+    propsvec utrie2 utrie2_builder ucptrie umutablecptrie utrie_swap
     sort
     uinit utypes errorcode
     icuplug
@@ -207,7 +205,7 @@ group: breakiterator
   deps
     resourcebundle service_registration
     schriter utext uniset_core uniset_props
-    uhash ustack utrie
+    uhash ustack utrie2_builder
     ucharstrie bytestrie
     ucharstriebuilder  # for filteredbrk.o
     normlzr  # for dictbe.o, should switch to Normalizer2
@@ -257,7 +255,7 @@ group: stringprep
   deps
     unorm  # could change to use filterednormalizer2 directly for Unicode 3.2 normalization
     normalizer2
-    ubidi_props
+    ubidi_props utrie
 
 group: canonical_iterator
     caniter.o
@@ -275,7 +273,8 @@ group: normalizer2
   deps
     uniset_core
     bytestream bytesinkutil  # for UTF-8 output
-    utrie2_builder  # for building CanonIterData & FCD
+    umutablecptrie  # for building CanonIterData & FCD
+    utrie_swap  # TODO(ICU-20170): move unorm2_swap() to a separate file
     uvector  # for building CanonIterData
     uhash  # for the instance cache
     udata
@@ -308,7 +307,7 @@ group: uniset_closure
 group: uniset_props
     uniset_props.o ruleiter.o
   deps
-    uniset_core uprops unistr_case
+    uniset_core uprops unistr_case characterproperties
     parsepos
     resourcebundle
     propname unames
@@ -383,7 +382,7 @@ group: cstr
 group: uscript
     uscript.o  # uscript_getCode() accepts a locale ID and loads its script code data
   deps
-    propname loclikely
+    propname resourcebundle
 
 group: uscript_props  # script metadata properties
     uscript_props.o
@@ -399,6 +398,12 @@ group: uprops
     unistr_case ustring_case  # only for case folding
     ucase
 
+group: characterproperties
+    characterproperties.o
+  deps
+    uprops
+    uniset_core
+
 group: propname
     propname.o
   deps
@@ -525,7 +530,7 @@ group: uinit
 group: converter_selector
     ucnvsel.o
   deps
-    conversion propsvec utrie2_builder uset ucnv_set
+    conversion propsvec utrie2_builder utrie_swap uset ucnv_set
 
 group: ucnvdisp  # ucnv_getDisplayName()
     ucnvdisp.o
@@ -560,11 +565,6 @@ group: service_registration
     locale_display_names resourcebundle
     hashtable uvector
 
-group: listformatter
-    listformatter.o ulistformatter.o
-  deps
-    resourcebundle simpleformatter
-
 group: ucat  # message-catalog-like API
     ucat.o
   deps
@@ -583,7 +583,7 @@ group: locale_display_names2
 group: currency
     ucurr.o
   deps
-    loclikely resourcebundle ulist ustring_case_locale
+    resourcebundle ulist ustring_case_locale
     stdlib_qsort  # for ucurr.o (which does not use ICU's uarrsort.o)
     static_unicode_sets usetiter
 
@@ -592,11 +592,6 @@ group: icudataver  # u_getDataVersion()
   deps
     resourcebundle
 
-group: loclikely
-    loclikely.o
-  deps
-    resourcebundle uscript_props propname
-
 group: locresdata
     # This was intended to collect locale functions that load resource bundle data.
     # See the resourcebundle group about what else loads data.
@@ -631,9 +626,12 @@ group: resourcebundle
     locid.o locmap.o wintz.o
     # Do we need class LocaleBased? http://bugs.icu-project.org/trac/ticket/8608
     locbased.o
+    loclikely.o
   deps
     udata ucol_swp
     sort stringenumeration uhash uvector
+    uscript_props propname
+    bytesinkutil
 
 group: udata
     udata.o ucmndata.o udatamem.o
@@ -688,20 +686,34 @@ group: propsvec
   deps
     sort utrie2_builder
 
+group: utrie_swap
+    utrie_swap.o
+  deps
+    udata
+
+group: umutablecptrie
+    umutablecptrie.o
+  deps
+    ucptrie
+
+group: ucptrie
+    ucptrie.o
+  deps
+    platform
+
 group: utrie2_builder
     utrie2_builder.o
   deps
     platform
     utrie2
     utrie  # for utrie2_fromUTrie()
-    ucol_swp  # for utrie_swap()
 
-group: utrie2
+group: utrie2  # Try to switch users to ucptrie.
     utrie2.o
   deps
     platform
 
-group: utrie  # Callers should use utrie2 instead.
+group: utrie  # Callers should use ucptrie instead.
     utrie.o
   deps
     platform
@@ -770,7 +782,7 @@ group: icuplug
 group: ucol_swp
     ucol_swp.o
   deps
-    utrie2  # Format version 4 uses UTrie2.
+    utrie_swap
 
 group: errorcode  # ErrorCode base class
     errorcode.o
@@ -815,6 +827,7 @@ library: i18n
     region localedata genderinfo charset_detector spoof_detection
     alphabetic_index collation collation_builder string_search
     dayperiodrules
+    listformatter
     formatting formattable_cnv regex regex_cnv translit
     double_conversion number_representation numberformatter numberparser
     universal_time_scale
@@ -832,7 +845,6 @@ group: localedata
   deps
     uniset_props resourcebundle
     uset_props  # TODO: change to using C++ UnicodeSet, remove this dependency
-    loclikely
 
 group: genderinfo
     gender.o
@@ -871,7 +883,7 @@ group: collation
     ucol_res.o ucol_sit.o ucoleitr.o
   deps
     bytestream normalizer2 resourcebundle service_registration unifiedcache
-    ucharstrieiterator uiter ulist uset usetiter uvector32 uvector64
+    ucharstrieiterator uiter ulist uset usetiter uvector32 uvector64 utrie2
     uclean_i18n propname
 
 group: collation_builder
@@ -890,6 +902,11 @@ group: dayperiodrules
   deps
     resourcebundle uclean_i18n
 
+group: listformatter
+    listformatter.o ulistformatter.o
+  deps
+    resourcebundle simpleformatter format uclean_i18n
+
 group: double_conversion
     double-conversion.o double-conversion-bignum.o double-conversion-bignum-dtoa.o
     double-conversion-cached-powers.o double-conversion-diy-fp.o
@@ -918,6 +935,7 @@ group: numberformatter
     number_patternmodifier.o number_patternstring.o number_rounding.o
     number_scientific.o number_skeletons.o
     currpinf.o dcfmtsym.o numsys.o
+    numrange_fluent.o numrange_impl.o
     # pluralrules
     standardplural.o plurrule.o
   deps
@@ -953,6 +971,7 @@ group: formatting
     # dateformat
     astro.o buddhcal.o calendar.o cecal.o chnsecal.o coptccal.o dangical.o ethpccal.o
     gregocal.o gregoimp.o hebrwcal.o indiancal.o islamcal.o japancal.o persncal.o taiwncal.o
+    erarules.o  # mostly for Japanese eras
     ucal.o
     basictz.o olsontz.o rbtz.o simpletz.o timezone.o tzrule.o tztrans.o
     vtzone.o vzone.o wintzimpl.o zonemeta.o zrule.o ztrans.o
@@ -965,6 +984,7 @@ group: formatting
     choicfmt.o msgfmt.o plurfmt.o selfmt.o umsg.o
   deps
     decnumber formattable format units numberformatter numberparser
+    listformatter
     dayperiodrules
     collation collation_builder  # for rbnf
     common
index 2a542e787074897837d65bb1a25cc797d506aa33..231c6819c6e1c0d2c6844d4fcfddf02197b467fb 100755 (executable)
@@ -1,4 +1,4 @@
-#! /usr/bin/python
+#! /usr/bin/python -B
 # -*- coding: utf-8 -*-
 #
 # Copyright (C) 2016 and later: Unicode, Inc. and others.
index afe1ff1796f4d86f3e272397acfb0deb75f9b9b9..2084d615737fbc22f42dd30daa64772b1deed15e 100644 (file)
@@ -68,6 +68,7 @@ normalizer2.h
 normlzr.h
 nounit.h
 numberformatter.h
+numberrangeformatter.h
 numfmt.h
 numsys.h
 parsepos.h
index c2b38c688f76378bb60baa4f2332d6fa689cd9de..ad47ad0a14b219b7b7b9dee077f747715ed64ba1 100644 (file)
@@ -66,7 +66,7 @@ numbertest_affixutils.o numbertest_api.o numbertest_decimalquantity.o \
 numbertest_modifiers.o numbertest_patternmodifier.o numbertest_patternstring.o \
 numbertest_stringbuilder.o numbertest_stringsegment.o \
 numbertest_parse.o numbertest_doubleconversion.o numbertest_skeletons.o \
-static_unisets_test.o numfmtdatadriventest.o
+static_unisets_test.o numfmtdatadriventest.o numbertest_range.o erarulestest.o
 
 DEPS = $(OBJECTS:.o=.d)
 
index da522637c6f9e83c30dc8ca20a4d44d4f774b48f..fc64851e2494f3bcfcb48270e7bfdfd2fe53a3ec 100644 (file)
@@ -1411,6 +1411,11 @@ void CalendarRegressionTest::test4118384()
 
     delete cal;
     cal = Calendar::createInstance(Locale("th_TH@calendar=buddhist"),status);
+    if(U_FAILURE(status)) {
+      dataerrln("Error creating calendar %s", u_errorName(status));
+      delete cal;
+      return;
+    }    
     // test deprecated functions
     if (cal->getLeastMaximum(Calendar::HOUR) != 11 ||
         cal->getMaximum(Calendar::HOUR) != 11) {
@@ -1425,6 +1430,11 @@ void CalendarRegressionTest::test4118384()
     delete cal;
     // test deprecated functions
     cal = Calendar::createInstance(Locale("ja_JP@calendar=japanese"),status);
+    if(U_FAILURE(status)) {
+      dataerrln("Error creating calendar %s", u_errorName(status));
+      delete cal;
+      return;
+    }    
     if (cal->getLeastMaximum(Calendar::HOUR) != 11 ||
         cal->getMaximum(Calendar::HOUR) != 11) {
         errln("Fail: Japanese:[deprecated functions] maximum of HOUR field should be 11\n");
index 2ee46ab26bd2969ffde781c5a82391405007be21..c38ae5879cb129349bee62eb0ccde127c78f072f 100644 (file)
@@ -119,15 +119,15 @@ static ExpectedResult kSwahiliShort[] = {
   {1234.0, "elfu\\u00a01.2"},
   {12345.0, "elfu\\u00a012"},
   {123456.0, "elfu\\u00a0120"},
-  {1234567.0, "M1.2"},
-  {12345678.0, "M12"},
-  {123456789.0, "M120"},
-  {1.23456789E9, "B1.2"},
-  {1.23456789E10, "B12"},
-  {1.23456789E11, "B120"},
-  {1.23456789E12, "T1.2"},
-  {1.23456789E13, "T12"},
-  {1.23456789E15, "T1200"}};
+  {1234567.0, "1.2M"},
+  {12345678.0, "12M"},
+  {123456789.0, "120M"},
+  {1.23456789E9, "1.2B"},
+  {1.23456789E10, "12B"},
+  {1.23456789E11, "120B"},
+  {1.23456789E12, "1.2T"},
+  {1.23456789E13, "12T"},
+  {1.23456789E15, "1200T"}};
 
 static ExpectedResult kCsShort[] = {
   {1000.0, "1\\u00a0tis."},
@@ -154,15 +154,15 @@ static ExpectedResult kSwahiliShortNegative[] = {
   {-1234.0, "elfu\\u00a0-1.2"},
   {-12345.0, "elfu\\u00a0-12"},
   {-123456.0, "elfu\\u00a0-120"},
-  {-1234567.0, "M-1.2"},
-  {-12345678.0, "M-12"},
-  {-123456789.0, "M-120"},
-  {-1.23456789E9, "B-1.2"},
-  {-1.23456789E10, "B-12"},
-  {-1.23456789E11, "B-120"},
-  {-1.23456789E12, "T-1.2"},
-  {-1.23456789E13, "T-12"},
-  {-1.23456789E15, "T-1200"}};
+  {-1234567.0, "-1.2M"},
+  {-12345678.0, "-12M"},
+  {-123456789.0, "-120M"},
+  {-1.23456789E9, "-1.2B"},
+  {-1.23456789E10, "-12B"},
+  {-1.23456789E11, "-120B"},
+  {-1.23456789E12, "-1.2T"},
+  {-1.23456789E13, "-12T"},
+  {-1.23456789E15, "-1200T"}};
 
 static ExpectedResult kArabicLong[] = {
   {-5300.0, "\\u061C-\\u0665\\u066B\\u0663 \\u0623\\u0644\\u0641"}};
@@ -487,10 +487,10 @@ void CompactDecimalFormatTest::TestBug12975() {
     LocalPointer<CompactDecimalFormat> cdf(CompactDecimalFormat::createInstance(locale, UNUM_SHORT, status));
     if (assertSuccess("", status, true, __FILE__, __LINE__)) {
         UnicodeString resultCdf;
-        cdf->format(120000, resultCdf);
+        cdf->format(12000, resultCdf);
         LocalPointer<DecimalFormat> df((DecimalFormat*) DecimalFormat::createInstance(locale, status));
         UnicodeString resultDefault;
-        df->format(120000, resultDefault);
+        df->format(12000, resultDefault);
         assertEquals("CompactDecimalFormat should use default pattern when compact pattern is unavailable",
                      resultDefault, resultCdf);
     }
index e723619ad36cb1d7809116a2794a6ff2853d4fc5..1733f1a6e425aaecff5b0c8a7afd6e39f096e105 100644 (file)
@@ -20,6 +20,7 @@
 #if !UCONFIG_NO_TRANSLITERATION
 
 #include "unicode/translit.h"
+#include "cpdtrans.h"
 #include "intltest.h"
 
 /**
index f578b22fc65e1e88df2ac5922a6989462a7e28a2..c5b9631083368408f6702908cad8a94424c0be23 100644 (file)
@@ -942,10 +942,10 @@ void DateIntervalFormatTest::testFormat() {
 
         "de", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "EEEEdMMM", "Samstag, 10. \\u2013 Dienstag, 20. Nov.",
 
-        "de", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "EdMy", "Sa., 10.11.2007 \\u2013 Di., 20.11.2007",
+        "de", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "EdMy", "Sa., 10. \\u2013 Di., 20.11.2007",
 
 
-        "de", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "dM", "10.11. \\u2013 20.11.",
+        "de", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "dM", "10.\\u201320.11.",
 
         "de", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "My", "11.2007",
 
diff --git a/source/test/intltest/erarulestest.cpp b/source/test/intltest/erarulestest.cpp
new file mode 100644 (file)
index 0000000..b550361
--- /dev/null
@@ -0,0 +1,130 @@
+// © 2018 and later: Unicode, Inc. and others.
+// License & terms of use: http://www.unicode.org/copyright.html
+
+#include "unicode/utypes.h"
+
+#if !UCONFIG_NO_FORMATTING
+
+#include "unicode/calendar.h"
+#include "unicode/localpointer.h"
+#include "unicode/unistr.h"
+#include "erarules.h"
+#include "erarulestest.h"
+
+void EraRulesTest::runIndexedTest(int32_t index, UBool exec, const char* &name, char* /*par*/)
+{
+    if (exec) {
+        logln("TestSuite EraRulesTest");
+    }
+    TESTCASE_AUTO_BEGIN;
+    TESTCASE_AUTO(testAPIs);
+    TESTCASE_AUTO(testJapanese);
+    TESTCASE_AUTO_END;
+}
+
+void EraRulesTest::testAPIs() {
+    const char * calTypes[] = {
+        "gregorian",
+        //"iso8601",
+        "buddhist",
+        "chinese",
+        "coptic",
+        "dangi",
+        "ethiopic",
+        "ethiopic-amete-alem",
+        "hebrew",
+        "indian",
+        "islamic",
+        "islamic-civil",
+        "islamic-rgsa",
+        "islamic-tbla",
+        "islamic-umalqura",
+        "japanese",
+        "persian",
+        "roc",
+        //"unknown",
+        NULL
+    };
+
+    for (int32_t i = 0; calTypes[i] != NULL; i++) {
+        UErrorCode status = U_ZERO_ERROR;
+        const char *calId = calTypes[i];
+
+        LocalPointer<EraRules> rules1(EraRules::createInstance(calId, FALSE, status));
+        if (U_FAILURE(status)) {
+            errln(UnicodeString("Era rules for ") + calId + " is not available.");
+            continue;
+        }
+
+        LocalPointer<EraRules> rules2(EraRules::createInstance(calId, TRUE, status));
+        if (U_FAILURE(status)) {
+            errln(UnicodeString("Era rules for ") + calId + " (including tentative eras) is not available.");
+            continue;
+        }
+
+        int32_t numEras1 = rules1->getNumberOfEras();
+        if (numEras1 <= 0) {
+            errln(UnicodeString("Number of era rules for ") + calId + " is " + numEras1);
+        }
+
+        int32_t numEras2 = rules2->getNumberOfEras();
+        if (numEras2 < numEras1) {
+            errln(UnicodeString("Number of era including tentative eras is fewer than one without tentative eras in calendar: ")
+                    + calId);
+        }
+
+        LocalPointer<Calendar> cal(Calendar::createInstance("en", status));
+        if (U_FAILURE(status)) {
+            errln("Failed to create a Calendar instance.");
+            continue;
+        }
+        int32_t currentIdx = rules1->getCurrentEraIndex();
+        int32_t currentYear = cal->get(UCAL_YEAR, status);
+        int32_t idx = rules1->getEraIndex(
+                currentYear, cal->get(UCAL_MONTH, status) + 1,
+                cal->get(UCAL_DATE, status), status);
+        if (U_FAILURE(status)) {
+            errln("Error while getting index of era.");
+            continue;
+        }
+        if (idx != currentIdx) {
+            errln(UnicodeString("Current era index:") + currentIdx + " is different from era index of now:" + idx
+                    + " in calendar:" + calId);
+        }
+
+        int32_t eraStartYear = rules1->getStartYear(currentIdx, status);
+        if (U_FAILURE(status)) {
+            errln(UnicodeString("Failed to get the start year of era index: ") + currentIdx + " in calendar: " + calId);
+        }
+        if (currentYear < eraStartYear) {
+            errln(UnicodeString("Current era's start year is after the current year in calendar:") + calId);
+        }
+    }
+}
+
+void EraRulesTest::testJapanese() {
+    const int32_t HEISEI = 235; // ICU4C does not define constants for eras
+
+    UErrorCode status = U_ZERO_ERROR;
+    LocalPointer<EraRules> rules(EraRules::createInstance("japanese", TRUE, status));
+    if (U_FAILURE(status)) {
+        errln("Failed to get era rules for Japanese calendar.");
+        return;
+    }
+    // Rules should have an era after Heisei
+    int32_t numRules = rules->getNumberOfEras();
+    if (numRules <= HEISEI) {
+        errln("Era after Heisei is not available.");
+        return;
+    }
+    int postHeiseiStartYear = rules->getStartYear(HEISEI + 1, status);
+    if (U_FAILURE(status)) {
+        errln("Failed to get the start year of era after Heisei.");
+    }
+    if (postHeiseiStartYear != 2019) {
+        errln(UnicodeString("Era after Heisei should start in 2019, but got ") + postHeiseiStartYear);
+    }
+}
+
+#endif /* #if !UCONFIG_NO_FORMATTING */
+
diff --git a/source/test/intltest/erarulestest.h b/source/test/intltest/erarulestest.h
new file mode 100644 (file)
index 0000000..28116af
--- /dev/null
@@ -0,0 +1,23 @@
+// © 2018 and later: Unicode, Inc. and others.
+// License & terms of use: http://www.unicode.org/copyright.html
+
+#ifndef ERARULESTEST_H_
+#define ERARULESTEST_H_
+
+#include "unicode/utypes.h"
+
+#if !UCONFIG_NO_FORMATTING
+
+#include "intltest.h"
+
+class EraRulesTest : public IntlTest {
+public:
+    void runIndexedTest(int32_t index, UBool exec, const char* &name, char* par = NULL);
+
+private:
+    void testAPIs();
+    void testJapanese();
+};
+
+#endif /* #if !UCONFIG_NO_FORMATTING */
+#endif /* ERARULESTEST_H_ */
index 0d7bae442ba41e2b54237e5d455b0935380932f7..50e0e2e89c2b28f0d9a9d66119fe1629015bec4e 100644 (file)
@@ -2,7 +2,6 @@
 <Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
   <!-- The following import will include the 'default' configuration options for VS projects. -->
   <Import Project="..\..\allinone\Build.Windows.ProjectConfiguration.props" />
-
   <PropertyGroup Label="Globals">
     <ProjectGuid>{73632960-B3A6-464D-83A3-4B43365F19B8}</ProjectGuid>
     <RootNamespace>intltest</RootNamespace>
     <ClCompile Include="colldata.cpp">
       <DisableLanguageExtensions>false</DisableLanguageExtensions>
     </ClCompile>
+    <ClCompile Include="erarulestest.cpp" />
     <ClCompile Include="numfmtspectest.cpp" />
     <ClCompile Include="regiontst.cpp" />
     <ClCompile Include="ucharstrietest.cpp" />
     <ClCompile Include="numbertest_parse.cpp" />
     <ClCompile Include="numbertest_doubleconversion.cpp" />
     <ClCompile Include="numbertest_skeletons.cpp" />
+    <ClCompile Include="numbertest_range.cpp" />
     <ClCompile Include="numfmtst.cpp" />
     <ClCompile Include="numfmtdatadriventest.cpp" />
     <ClCompile Include="numrgts.cpp" />
   </ItemGroup>
   <ItemGroup>
     <ClInclude Include="colldata.h" />
+    <ClInclude Include="erarulestest.h" />
     <ClInclude Include="itrbbi.h" />
     <ClInclude Include="rbbiapts.h" />
     <ClInclude Include="rbbitst.h" />
index 4fea4428844fa97c382968e2a10b017977d6a15e..f1b740dbe99801df5d346004ba897e788cc7bdfa 100644 (file)
@@ -72,7 +72,7 @@
     </ClCompile>
     <ClCompile Include="rbbimonkeytest.cpp">
       <Filter>break iteration</Filter>
-      </ClCompile>
+    </ClCompile>
     <ClCompile Include="itspoof.cpp">
       <Filter>spoof detection</Filter>
     </ClCompile>
     <ClCompile Include="numbertest_skeletons.cpp">
       <Filter>formatting</Filter>
     </ClCompile>
+    <ClCompile Include="numbertest_range.cpp">
+      <Filter>formatting</Filter>
+    </ClCompile>
     <ClCompile Include="numfmtst.cpp">
       <Filter>formatting</Filter>
     </ClCompile>
     <ClCompile Include="ucharstrietest.cpp">
       <Filter>data &amp; memory</Filter>
     </ClCompile>
+    <ClCompile Include="erarulestest.cpp">
+      <Filter>formatting</Filter>
+    </ClCompile>
   </ItemGroup>
   <ItemGroup>
     <ClInclude Include="itrbbi.h">
     <ClInclude Include="listformattertest.h">
       <Filter>formatting</Filter>
     </ClInclude>
+    <ClInclude Include="erarulestest.h">
+      <Filter>formatting</Filter>
+    </ClInclude>
   </ItemGroup>
-</Project>
+</Project>
\ No newline at end of file
index cea3249a44873eef45197f2676e9dca82f2c9a58..d450922eb6ed38ef119572f3c7c55d14c3cb9cf0 100644 (file)
@@ -60,6 +60,7 @@
 #include "listformattertest.h"  // ListFormatterTest
 #include "regiontst.h"      // RegionTest
 #include "numbertest.h"     // NumberTest
+#include "erarulestest.h"   // EraRulesTest
 
 extern IntlTest *createCompactDecimalFormatTest();
 extern IntlTest *createGenderInfoTest();
@@ -215,6 +216,7 @@ void IntlTestFormat::runIndexedTest( int32_t index, UBool exec, const char* &nam
           break;
         TESTCLASS(50,NumberFormatDataDrivenTest);
         TESTCLASS(51,NumberTest);
+        TESTCLASS(52,EraRulesTest);
         default: name = ""; break; //needed to end loop
     }
     if (exec) {
index 7b2995f7ccdcdaef777f9a442953363710d441be..4d3466120cf557e8677092c124dd147b6268ee82 100644 (file)
@@ -300,7 +300,7 @@ void ErrorCodeTest::TestIcuTestErrorCode() {
     helper.test = this;
 
     // Test destructor message
-    helper.expectedErrln = u"AAA failure: U_ILLEGAL_PAD_POSITION";
+    helper.expectedErrln = u"AAA destructor: expected success but got error: U_ILLEGAL_PAD_POSITION";
     helper.expectedDataErr = FALSE;
     helper.seenError = FALSE;
     {
@@ -310,7 +310,7 @@ void ErrorCodeTest::TestIcuTestErrorCode() {
     assertTrue("Should have seen an error", helper.seenError);
 
     // Test destructor message with scope
-    helper.expectedErrln = u"BBB failure: U_ILLEGAL_PAD_POSITION scope: foo";
+    helper.expectedErrln = u"BBB destructor: expected success but got error: U_ILLEGAL_PAD_POSITION scope: foo";
     helper.expectedDataErr = FALSE;
     helper.seenError = FALSE;
     {
@@ -321,7 +321,7 @@ void ErrorCodeTest::TestIcuTestErrorCode() {
     assertTrue("Should have seen an error", helper.seenError);
 
     // Check errIfFailure message with scope
-    helper.expectedErrln = u"CCC failure: U_ILLEGAL_PAD_POSITION scope: foo";
+    helper.expectedErrln = u"CCC expected success but got error: U_ILLEGAL_PAD_POSITION scope: foo";
     helper.expectedDataErr = FALSE;
     helper.seenError = FALSE;
     {
@@ -331,14 +331,14 @@ void ErrorCodeTest::TestIcuTestErrorCode() {
         testStatus.errIfFailureAndReset();
         assertTrue("Should have seen an error", helper.seenError);
         helper.seenError = FALSE;
-        helper.expectedErrln = u"CCC failure: U_ILLEGAL_CHAR_FOUND scope: foo - 5.4300";
+        helper.expectedErrln = u"CCC expected success but got error: U_ILLEGAL_CHAR_FOUND scope: foo - 5.4300";
         testStatus.set(U_ILLEGAL_CHAR_FOUND);
         testStatus.errIfFailureAndReset("%6.4f", 5.43);
         assertTrue("Should have seen an error", helper.seenError);
     }
 
     // Check errDataIfFailure message without scope
-    helper.expectedErrln = u"DDD failure: U_ILLEGAL_PAD_POSITION";
+    helper.expectedErrln = u"DDD data: expected success but got error: U_ILLEGAL_PAD_POSITION";
     helper.expectedDataErr = TRUE;
     helper.seenError = FALSE;
     {
@@ -347,11 +347,33 @@ void ErrorCodeTest::TestIcuTestErrorCode() {
         testStatus.errDataIfFailureAndReset();
         assertTrue("Should have seen an error", helper.seenError);
         helper.seenError = FALSE;
-        helper.expectedErrln = u"DDD failure: U_ILLEGAL_CHAR_FOUND - 5.4300";
+        helper.expectedErrln = u"DDD data: expected success but got error: U_ILLEGAL_CHAR_FOUND - 5.4300";
         testStatus.set(U_ILLEGAL_CHAR_FOUND);
         testStatus.errDataIfFailureAndReset("%6.4f", 5.43);
         assertTrue("Should have seen an error", helper.seenError);
     }
+
+    // Check expectFailure
+    helper.expectedErrln = u"EEE expected: U_ILLEGAL_CHAR_FOUND but got error: U_ILLEGAL_PAD_POSITION";
+    helper.expectedDataErr = FALSE;
+    helper.seenError = FALSE;
+    {
+        IcuTestErrorCode testStatus(helper, "EEE");
+        testStatus.set(U_ILLEGAL_PAD_POSITION);
+        testStatus.expectErrorAndReset(U_ILLEGAL_PAD_POSITION);
+        assertFalse("Should NOT have seen an error", helper.seenError);
+        testStatus.set(U_ILLEGAL_PAD_POSITION);
+        testStatus.expectErrorAndReset(U_ILLEGAL_CHAR_FOUND);
+        assertTrue("Should have seen an error", helper.seenError);
+        helper.seenError = FALSE;
+        helper.expectedErrln = u"EEE expected: U_ILLEGAL_CHAR_FOUND but got error: U_ZERO_ERROR scope: scopety scope - 5.4300";
+        testStatus.setScope("scopety scope");
+        testStatus.set(U_ILLEGAL_PAD_POSITION);
+        testStatus.expectErrorAndReset(U_ILLEGAL_PAD_POSITION, "%6.4f", 5.43);
+        assertFalse("Should NOT have seen an error", helper.seenError);
+        testStatus.expectErrorAndReset(U_ILLEGAL_CHAR_FOUND, "%6.4f", 5.43);
+        assertTrue("Should have seen an error", helper.seenError);
+    }
 }
 
 
index af49baa05dd51cb9b69a76384b6bc49607592ea0..4cd1c1411c6be4ec49abbeae0f61e15ffdee2872 100644 (file)
 */
 
 #include "listformattertest.h"
+#include "unicode/ulistformatter.h"
 #include <string.h>
 
+#if !UCONFIG_NO_FORMATTING
+
+namespace {
+const char* attrString(int32_t attrId) {
+  switch (attrId) {
+    case ULISTFMT_LITERAL_FIELD: return "literal";
+    case ULISTFMT_ELEMENT_FIELD: return "element";
+    default: return "xxx";
+  }
+}
+}  // namespace
+
+void ListFormatterTest::ExpectPositions(FieldPositionIterator& iter,
+                                        int32_t *values, int32_t tupleCount) {
+    UBool found[10];
+    FieldPosition fp;
+    if (tupleCount > 10) {
+      assertTrue("internal error, tupleCount too large", FALSE);
+    } else {
+        for (int i = 0; i < tupleCount; ++i) {
+            found[i] = FALSE;
+        }
+    }
+    while (iter.next(fp)) {
+        UBool ok = FALSE;
+        int32_t id = fp.getField();
+        int32_t start = fp.getBeginIndex();
+        int32_t limit = fp.getEndIndex();
+        char buf[128];
+        sprintf(buf, "%24s %3d %3d %3d", attrString(id), id, start, limit);
+        logln(buf);
+        for (int i = 0; i < tupleCount; ++i) {
+            if (found[i]) {
+                continue;
+            }
+            if (values[i*3] == id && values[i*3+1] == start && values[i*3+2] == limit) {
+                found[i] = ok = TRUE;
+                break;
+            }
+        }
+        assertTrue((UnicodeString)"found [" + attrString(id) + "," + start + "," + limit + "]", ok);
+    }
+    // check that all were found
+    UBool ok = TRUE;
+    for (int i = 0; i < tupleCount; ++i) {
+        if (!found[i]) {
+            ok = FALSE;
+            assertTrue((UnicodeString) "missing [" + attrString(values[i*3]) + "," + values[i*3+1] +
+                       "," + values[i*3+2] + "]", found[i]);
+        }
+    }
+    assertTrue("no expected values were missing", ok);
+}
+
 ListFormatterTest::ListFormatterTest() :
         prefix("Prefix: ", -1, US_INV),
         one("Alice", -1, US_INV), two("Bob", -1, US_INV),
@@ -26,9 +81,9 @@ ListFormatterTest::ListFormatterTest() :
 }
 
 void ListFormatterTest::CheckFormatting(const ListFormatter* formatter, UnicodeString data[], int32_t dataSize,
-                                        const UnicodeString& expected_result) {
+                                        const UnicodeString& expected_result, const char* testName) {
     UnicodeString actualResult(prefix);
-    UErrorCode errorCode = U_ZERO_ERROR;
+    IcuTestErrorCode errorCode(*this, testName);
     formatter->format(data, dataSize, actualResult, errorCode);
     UnicodeString expectedStringWithPrefix = prefix + expected_result;
     if (expectedStringWithPrefix != actualResult) {
@@ -37,29 +92,29 @@ void ListFormatterTest::CheckFormatting(const ListFormatter* formatter, UnicodeS
 }
 
 void ListFormatterTest::CheckFourCases(const char* locale_string, UnicodeString one, UnicodeString two,
-        UnicodeString three, UnicodeString four, UnicodeString results[4]) {
-    UErrorCode errorCode = U_ZERO_ERROR;
+        UnicodeString three, UnicodeString four, UnicodeString results[4], const char* testName) {
+    IcuTestErrorCode errorCode(*this, testName);
     LocalPointer<ListFormatter> formatter(ListFormatter::createInstance(Locale(locale_string), errorCode));
     if (U_FAILURE(errorCode)) {
         dataerrln("ListFormatter::createInstance(Locale(\"%s\"), errorCode) failed in CheckFourCases: %s", locale_string, u_errorName(errorCode));
         return;
     }
     UnicodeString input1[] = {one};
-    CheckFormatting(formatter.getAlias(), input1, 1, results[0]);
+    CheckFormatting(formatter.getAlias(), input1, 1, results[0], testName);
 
     UnicodeString input2[] = {one, two};
-    CheckFormatting(formatter.getAlias(), input2, 2, results[1]);
+    CheckFormatting(formatter.getAlias(), input2, 2, results[1], testName);
 
     UnicodeString input3[] = {one, two, three};
-    CheckFormatting(formatter.getAlias(), input3, 3, results[2]);
+    CheckFormatting(formatter.getAlias(), input3, 3, results[2], testName);
 
     UnicodeString input4[] = {one, two, three, four};
-    CheckFormatting(formatter.getAlias(), input4, 4, results[3]);
+    CheckFormatting(formatter.getAlias(), input4, 4, results[3], testName);
 }
 
 UBool ListFormatterTest::RecordFourCases(const Locale& locale, UnicodeString one, UnicodeString two,
-        UnicodeString three, UnicodeString four, UnicodeString results[4])  {
-    UErrorCode errorCode = U_ZERO_ERROR;
+        UnicodeString three, UnicodeString four, UnicodeString results[4], const char* testName)  {
+    IcuTestErrorCode errorCode(*this, testName);
     LocalPointer<ListFormatter> formatter(ListFormatter::createInstance(locale, errorCode));
     if (U_FAILURE(errorCode)) {
         dataerrln("ListFormatter::createInstance(\"%s\", errorCode) failed in RecordFourCases: %s", locale.getName(), u_errorName(errorCode));
@@ -88,14 +143,14 @@ void ListFormatterTest::TestRoot() {
         one + ", " + two + ", " + three + ", " + four
     };
 
-    CheckFourCases("", one, two, three, four, results);
+    CheckFourCases("", one, two, three, four, results, "TestRoot()");
 }
 
 // Bogus locale should fallback to root.
 void ListFormatterTest::TestBogus() {
     UnicodeString results[4];
-    if (RecordFourCases(Locale::getDefault(), one, two, three, four, results)) {
-      CheckFourCases("ex_PY", one, two, three, four, results);
+    if (RecordFourCases(Locale::getDefault(), one, two, three, four, results, "TestBogus()")) {
+      CheckFourCases("ex_PY", one, two, three, four, results, "TestBogus()");
     }
 }
 
@@ -109,11 +164,11 @@ void ListFormatterTest::TestEnglish() {
         one + ", " + two + ", " + three + ", and " + four
     };
 
-    CheckFourCases("en", one, two, three, four, results);
+    CheckFourCases("en", one, two, three, four, results, "TestEnglish()");
 }
 
 void ListFormatterTest::Test9946() {
-    UErrorCode errorCode = U_ZERO_ERROR;
+    IcuTestErrorCode errorCode(*this, "Test9946()");
     LocalPointer<ListFormatter> formatter(ListFormatter::createInstance(Locale("en"), errorCode));
     if (U_FAILURE(errorCode)) {
         dataerrln(
@@ -144,7 +199,7 @@ void ListFormatterTest::TestEnglishUS() {
         one + ", " + two + ", " + three + ", and " + four
     };
 
-    CheckFourCases("en_US", one, two, three, four, results);
+    CheckFourCases("en_US", one, two, three, four, results, "TestEnglishUS()");
 }
 
 // Tests resource loading and inheritance when region sublocale
@@ -158,7 +213,231 @@ void ListFormatterTest::TestEnglishGB() {
         one + ", " + two + ", " + three + " and " + four
     };
 
-    CheckFourCases("en_GB", one, two, three, four, results);
+    CheckFourCases("en_GB", one, two, three, four, results, "TestEnglishGB()");
+}
+
+void ListFormatterTest::TestFieldPositionIteratorWontCrash() {
+    IcuTestErrorCode errorCode(*this, "TestFieldPositionIteratorWontCrash()");
+    LocalPointer<ListFormatter> formatter(
+        ListFormatter::createInstance(Locale("en"), errorCode));
+    if (U_FAILURE(errorCode)) {
+        dataerrln(
+            "ListFormatter::createInstance(Locale(\"en\"), errorCode) failed in "
+            "TestFieldPositionIteratorWontCrash: %s",
+            u_errorName(errorCode));
+        return;
+    }
+    UnicodeString data[3] = {"a", "bbb", "cc"};
+    UnicodeString actualResult;
+     // make sure NULL as FieldPositionIterator won't caused crash.
+    formatter->format(data, 3, actualResult, nullptr, errorCode);
+    if (U_FAILURE(errorCode)) {
+        dataerrln(
+            "ListFormatter::format(data, 3, nullptr, errorCode) "
+            "failed in TestFieldPositionIteratorWontCrash: %s",
+            u_errorName(errorCode));
+        return;
+    }
+}
+
+void ListFormatterTest::RunTestFieldPositionIteratorWithFormatter(
+        ListFormatter* formatter,
+        UnicodeString data[], int32_t n, int32_t expected[], int32_t tupleCount,
+        UnicodeString& appendTo, const char16_t *expectedFormatted,
+        const char* testName) {
+    IcuTestErrorCode errorCode(*this, testName);
+    FieldPositionIterator iter;
+    formatter->format(data, n, appendTo, &iter, errorCode);
+    if (U_FAILURE(errorCode)) {
+        dataerrln(
+            "ListFormatter::format(data, %d, &iter, errorCode) "
+            "failed in %s: %s", n, testName, u_errorName(errorCode));
+        return;
+    }
+    if (appendTo != expectedFormatted) {
+        errln(UnicodeString("Expected: |") + expectedFormatted +  "|, Actual: |" + appendTo + "|");
+    }
+    ExpectPositions(iter, expected, tupleCount);
+}
+
+void ListFormatterTest::RunTestFieldPositionIteratorWithNItemsPatternShift(
+        UnicodeString data[], int32_t n, int32_t expected[], int32_t tupleCount,
+        UnicodeString& appendTo, const char16_t *expectedFormatted,
+        const char* testName) {
+    IcuTestErrorCode errorCode(*this, testName);
+    LocalPointer<ListFormatter> formatter(
+        ListFormatter::createInstance(Locale("ur", "IN"), "unit-narrow", errorCode));
+    if (U_FAILURE(errorCode)) {
+        dataerrln(
+            "ListFormatter::createInstance(Locale(\"ur\", \"IN\"), \"unit-narrow\", errorCode) failed in "
+            "%s: %s", testName, u_errorName(errorCode));
+        return;
+    }
+    RunTestFieldPositionIteratorWithFormatter(
+        formatter.getAlias(),
+        data, n, expected, tupleCount, appendTo, expectedFormatted, testName);
+}
+
+void ListFormatterTest::RunTestFieldPositionIteratorWithNItems(
+        UnicodeString data[], int32_t n, int32_t expected[], int32_t tupleCount,
+        UnicodeString& appendTo, const char16_t *expectedFormatted,
+        const char* testName) {
+    IcuTestErrorCode errorCode(*this, testName);
+    LocalPointer<ListFormatter> formatter(
+        ListFormatter::createInstance(Locale("en"), errorCode));
+    if (U_FAILURE(errorCode)) {
+        dataerrln(
+            "ListFormatter::createInstance(Locale(\"en\"), errorCode) failed in "
+            "%s: %s", testName, u_errorName(errorCode));
+        return;
+    }
+    RunTestFieldPositionIteratorWithFormatter(
+        formatter.getAlias(),
+        data, n, expected, tupleCount, appendTo, expectedFormatted, testName);
+}
+
+void ListFormatterTest::TestFieldPositionIteratorWith3ItemsAndDataBefore() {
+    //  0         1         2
+    //  0123456789012345678901234567
+    // "Hello World: a, bbb, and cc"
+    UnicodeString data[3] = {"a", "bbb", "cc"};
+    int32_t expected[] = {
+        ULISTFMT_ELEMENT_FIELD, 13, 14,
+        ULISTFMT_LITERAL_FIELD, 14, 16,
+        ULISTFMT_ELEMENT_FIELD, 16, 19,
+        ULISTFMT_LITERAL_FIELD, 19, 25,
+        ULISTFMT_ELEMENT_FIELD, 25, 27
+    };
+    int32_t tupleCount = sizeof(expected)/(3 * sizeof(*expected));
+    UnicodeString appendTo(u"Hello World: ");
+    RunTestFieldPositionIteratorWithNItems(
+        data, 3, expected, tupleCount, appendTo,
+        u"Hello World: a, bbb, and cc",
+        "TestFieldPositionIteratorWith3ItemsAndDataBefore");
+}
+
+void ListFormatterTest::TestFieldPositionIteratorWith3Items() {
+    //  0         1
+    //  012345678901234
+    // "a, bbb, and cc"
+    UnicodeString data[3] = {"a", "bbb", "cc"};
+    int32_t expected[] = {
+        ULISTFMT_ELEMENT_FIELD, 0, 1,
+        ULISTFMT_LITERAL_FIELD, 1, 3,
+        ULISTFMT_ELEMENT_FIELD, 3, 6,
+        ULISTFMT_LITERAL_FIELD, 6, 12,
+        ULISTFMT_ELEMENT_FIELD, 12, 14
+    };
+    int32_t tupleCount = sizeof(expected)/(3 * sizeof(*expected));
+    UnicodeString appendTo;
+    RunTestFieldPositionIteratorWithNItems(
+        data, 3, expected, tupleCount, appendTo,
+        u"a, bbb, and cc",
+        "TestFieldPositionIteratorWith3Items");
+}
+
+void ListFormatterTest::TestFieldPositionIteratorWith3ItemsPatternShift() {
+    //  0         1
+    //  012345678901234
+    // "cc bbb a"
+    UnicodeString data[3] = {"a", "bbb", "cc"};
+    int32_t expected[] = {
+        ULISTFMT_ELEMENT_FIELD, 7, 8,
+        ULISTFMT_LITERAL_FIELD, 6, 7,
+        ULISTFMT_ELEMENT_FIELD, 3, 6,
+        ULISTFMT_LITERAL_FIELD, 2, 3,
+        ULISTFMT_ELEMENT_FIELD, 0, 2
+    };
+    int32_t tupleCount = sizeof(expected)/(3 * sizeof(*expected));
+    UnicodeString appendTo;
+    RunTestFieldPositionIteratorWithNItemsPatternShift(
+        data, 3, expected, tupleCount, appendTo,
+        u"cc bbb a",
+        "TestFieldPositionIteratorWith3ItemsPatternShift");
+}
+
+void ListFormatterTest::TestFieldPositionIteratorWith2ItemsAndDataBefore() {
+    //  0         1
+    //  0123456789012345
+    // "Foo: bbb and cc"
+    UnicodeString data[2] = {"bbb", "cc"};
+    int32_t expected[] = {
+        ULISTFMT_ELEMENT_FIELD, 5, 8,
+        ULISTFMT_LITERAL_FIELD, 8, 13,
+        ULISTFMT_ELEMENT_FIELD, 13, 15
+    };
+    int32_t tupleCount = sizeof(expected)/(3 * sizeof(*expected));
+    UnicodeString appendTo("Foo: ");
+    RunTestFieldPositionIteratorWithNItems(
+        data, 2, expected, tupleCount, appendTo,
+        u"Foo: bbb and cc",
+        "TestFieldPositionIteratorWith2ItemsAndDataBefore");
+}
+
+void ListFormatterTest::TestFieldPositionIteratorWith2Items() {
+    //  0         1
+    //  01234567890
+    // "bbb and cc"
+    UnicodeString data[2] = {"bbb", "cc"};
+    int32_t expected[] = {
+        ULISTFMT_ELEMENT_FIELD, 0, 3,
+        ULISTFMT_LITERAL_FIELD, 3, 8,
+        ULISTFMT_ELEMENT_FIELD, 8, 10
+    };
+    int32_t tupleCount = sizeof(expected)/(3 * sizeof(*expected));
+    UnicodeString appendTo;
+    RunTestFieldPositionIteratorWithNItems(
+        data, 2, expected, tupleCount, appendTo,
+        u"bbb and cc",
+        "TestFieldPositionIteratorWith2Items");
+}
+
+void ListFormatterTest::TestFieldPositionIteratorWith2ItemsPatternShift() {
+    //  0         1
+    //  01234567890
+    // "cc bbb"
+    UnicodeString data[2] = {"bbb", "cc"};
+    int32_t expected[] = {
+        ULISTFMT_ELEMENT_FIELD, 3, 6,
+        ULISTFMT_LITERAL_FIELD, 2, 3,
+        ULISTFMT_ELEMENT_FIELD, 0, 2
+    };
+    int32_t tupleCount = sizeof(expected)/(3 * sizeof(*expected));
+    UnicodeString appendTo;
+    RunTestFieldPositionIteratorWithNItemsPatternShift(
+        data, 2, expected, tupleCount, appendTo,
+        u"cc bbb",
+        "TestFieldPositionIteratorWith2ItemsPatternShift");
+}
+
+void ListFormatterTest::TestFieldPositionIteratorWith1ItemAndDataBefore() {
+    //  012345678
+    // "Hello cc"
+    UnicodeString data[1] = {"cc"};
+    int32_t expected[] = {
+        ULISTFMT_ELEMENT_FIELD, 6, 8
+    };
+    int32_t tupleCount = sizeof(expected)/(3 * sizeof(*expected));
+    UnicodeString appendTo("Hello ");
+    RunTestFieldPositionIteratorWithNItems(
+        data, 1, expected, tupleCount, appendTo,
+        u"Hello cc",
+        "TestFieldPositionIteratorWith1ItemAndDataBefore");
+}
+
+void ListFormatterTest::TestFieldPositionIteratorWith1Item() {
+    //  012
+    // "cc"
+    UnicodeString data[1] = {"cc"};
+    int32_t expected[] = {
+        ULISTFMT_ELEMENT_FIELD, 0, 2
+    };
+    int32_t tupleCount = sizeof(expected)/(3 * sizeof(*expected));
+    UnicodeString appendTo;
+    RunTestFieldPositionIteratorWithNItems(
+        data, 1, expected, tupleCount, appendTo,
+        u"cc",
+        "TestFieldPositionIteratorWith1Item");
 }
 
 // Tests resource loading and inheritance when region sublocale
@@ -172,7 +451,7 @@ void ListFormatterTest::TestNynorsk() {
         one + ", " + two + ", " + three + " og " + four
     };
 
-    CheckFourCases("nn", one, two, three, four, results);
+    CheckFourCases("nn", one, two, three, four, results, "TestNynorsk()");
 }
 
 // Tests resource loading and inheritance when region sublocale
@@ -188,7 +467,7 @@ void ListFormatterTest::TestChineseTradHK() {
         one + comma_string + two + comma_string + three + and_string + four
     };
 
-    CheckFourCases("zh_Hant_HK", one, two, three, four, results);
+    CheckFourCases("zh_Hant_HK", one, two, three, four, results, "TestChineseTradHK()");
 }
 
 // Formatting in Russian.
@@ -202,7 +481,7 @@ void ListFormatterTest::TestRussian() {
         one + ", " + two + ", " + three + and_string + four
     };
 
-    CheckFourCases("ru", one, two, three, four, results);
+    CheckFourCases("ru", one, two, three, four, results, "TestRussian()");
 }
 
 // Formatting in Malayalam.
@@ -219,7 +498,7 @@ void ListFormatterTest::TestMalayalam() {
         one + ", " + two + ", " + three + ", " + four + total_string
     };
 
-    CheckFourCases("ml", one, two, three, four, results);
+    CheckFourCases("ml", one, two, three, four, results, "TestMalayalam()");
 }
 
 // Formatting in Zulu.
@@ -232,7 +511,7 @@ void ListFormatterTest::TestZulu() {
         one + ", " + two + ", " + three + ", ne-" + four
     };
 
-    CheckFourCases("zu", one, two, three, four, results);
+    CheckFourCases("zu", one, two, three, four, results, "TestZulu()");
 }
 
 void ListFormatterTest::TestOutOfOrderPatterns() {
@@ -243,22 +522,22 @@ void ListFormatterTest::TestOutOfOrderPatterns() {
         four + " in the last after " + three + " after " + two + " after the first " + one
     };
 
-    UErrorCode errorCode = U_ZERO_ERROR;
+    IcuTestErrorCode errorCode(*this, "TestOutOfOrderPatterns()");
     ListFormatData data("{1} after {0}", "{1} after the first {0}",
                         "{1} after {0}", "{1} in the last after {0}");
     ListFormatter formatter(data, errorCode);
 
     UnicodeString input1[] = {one};
-    CheckFormatting(&formatter, input1, 1, results[0]);
+    CheckFormatting(&formatter, input1, 1, results[0], "TestOutOfOrderPatterns()");
 
     UnicodeString input2[] = {one, two};
-    CheckFormatting(&formatter, input2, 2, results[1]);
+    CheckFormatting(&formatter, input2, 2, results[1], "TestOutOfOrderPatterns()");
 
     UnicodeString input3[] = {one, two, three};
-    CheckFormatting(&formatter, input3, 3, results[2]);
+    CheckFormatting(&formatter, input3, 3, results[2], "TestOutOfOrderPatterns()");
 
     UnicodeString input4[] = {one, two, three, four};
-    CheckFormatting(&formatter, input4, 4, results[3]);
+    CheckFormatting(&formatter, input4, 4, results[3], "TestOutOfOrderPatterns()");
 }
 
 void ListFormatterTest::runIndexedTest(int32_t index, UBool exec,
@@ -276,7 +555,35 @@ void ListFormatterTest::runIndexedTest(int32_t index, UBool exec,
         case 9: name = "TestEnglishGB"; if (exec) TestEnglishGB(); break;
         case 10: name = "TestNynorsk"; if (exec) TestNynorsk(); break;
         case 11: name = "TestChineseTradHK"; if (exec) TestChineseTradHK(); break;
-
+        case 12: name = "TestFieldPositionIteratorWontCrash";
+                 if (exec) TestFieldPositionIteratorWontCrash();
+                 break;
+        case 13: name = "TestFieldPositionIteratorWith1Item";
+                 if (exec) TestFieldPositionIteratorWith1Item();
+                 break;
+        case 14: name = "TestFieldPositionIteratorWith1ItemAndDataBefore";
+                 if (exec) TestFieldPositionIteratorWith1ItemAndDataBefore();
+                 break;
+        case 15: name = "TestFieldPositionIteratorWith2Items";
+                 if (exec) TestFieldPositionIteratorWith2Items();
+                 break;
+        case 16: name = "TestFieldPositionIteratorWith2ItemsAndDataBefore";
+                 if (exec) TestFieldPositionIteratorWith2ItemsAndDataBefore();
+                 break;
+        case 17: name = "TestFieldPositionIteratorWith2ItemsPatternShift";
+                 if (exec) TestFieldPositionIteratorWith2ItemsPatternShift();
+                 break;
+        case 18: name = "TestFieldPositionIteratorWith3Items";
+                 if (exec) TestFieldPositionIteratorWith3Items();
+                 break;
+        case 19: name = "TestFieldPositionIteratorWith3ItemsAndDataBefore";
+                 if (exec) TestFieldPositionIteratorWith3ItemsAndDataBefore();
+                 break;
+        case 20: name = "TestFieldPositionIteratorWith3ItemsPatternShift";
+                 if (exec) TestFieldPositionIteratorWith3ItemsPatternShift();
+                 break;
         default: name = ""; break;
     }
 }
+
+#endif /* #if !UCONFIG_NO_FORMATTING */
index a59a7e018972dee6d4101934467ca79dc583c295..61aad7ca61434142c389565602dff32c7bc96e78 100644 (file)
@@ -19,6 +19,7 @@
 #ifndef __LISTFORMATTERTEST_H__
 #define __LISTFORMATTERTEST_H__
 
+#include "unicode/fpositer.h"
 #include "unicode/listformatter.h"
 #include "intltest.h"
 
@@ -41,23 +42,68 @@ class ListFormatterTest : public IntlTest {
     void TestZulu();
     void TestOutOfOrderPatterns();
     void Test9946();
+    void TestFieldPositionIteratorWontCrash();
+    void TestFieldPositionIteratorWith1Item();
+    void TestFieldPositionIteratorWith2Items();
+    void TestFieldPositionIteratorWith3Items();
+    void TestFieldPositionIteratorWith1ItemAndDataBefore();
+    void TestFieldPositionIteratorWith2ItemsAndDataBefore();
+    void TestFieldPositionIteratorWith3ItemsAndDataBefore();
+    void TestFieldPositionIteratorWith2ItemsPatternShift();
+    void TestFieldPositionIteratorWith3ItemsPatternShift();
 
   private:
-    void CheckFormatting(const ListFormatter* formatter, UnicodeString data[], int32_t data_size, const UnicodeString& expected_result);
+    void CheckFormatting(
+        const ListFormatter* formatter,
+        UnicodeString data[],
+        int32_t data_size,
+        const UnicodeString& expected_result,
+        const char* testName);
+    void ExpectPositions(
+        FieldPositionIterator& iter,
+        int32_t *values,
+        int32_t tupleCount);
+    void RunTestFieldPositionIteratorWithNItems(
+        UnicodeString *data,
+        int32_t n,
+        int32_t *values,
+        int32_t tupleCount,
+        UnicodeString& appendTo,
+        const char16_t *expectedFormatted,
+        const char* testName);
+    void RunTestFieldPositionIteratorWithNItemsPatternShift(
+        UnicodeString *data,
+        int32_t n,
+        int32_t *values,
+        int32_t tupleCount,
+        UnicodeString& appendTo,
+        const char16_t *expectedFormatted,
+        const char* testName);
+    void RunTestFieldPositionIteratorWithFormatter(
+        ListFormatter* formatter,
+        UnicodeString *data,
+        int32_t n,
+        int32_t *values,
+        int32_t tupleCount,
+        UnicodeString& appendTo,
+        const char16_t *expectedFormatted,
+        const char* testName);
     void CheckFourCases(
         const char* locale_string,
         UnicodeString one,
         UnicodeString two,
         UnicodeString three,
         UnicodeString four,
-        UnicodeString results[4]);
+        UnicodeString results[4],
+        const char* testName);
     UBool RecordFourCases(
         const Locale& locale,
         UnicodeString one,
         UnicodeString two,
         UnicodeString three,
         UnicodeString four,
-        UnicodeString results[4]);
+        UnicodeString results[4],
+        const char* testName);
 
   private:
     // Reused test data.
index 9994e81e3ed4e3941019a626623e935dbc810b3f..c467472767d8287755e2270c651cc5fc9684e231 100644 (file)
@@ -6,7 +6,12 @@
  * others. All Rights Reserved.
  ********************************************************************/
 
+#include <iterator>
+#include <set>
+#include <utility>
+
 #include "loctest.h"
+#include "unicode/localpointer.h"
 #include "unicode/decimfmt.h"
 #include "unicode/ucurr.h"
 #include "unicode/smpdtfmt.h"
@@ -15,6 +20,7 @@
 #include "unicode/brkiter.h"
 #include "unicode/coll.h"
 #include "unicode/ustring.h"
+#include "unicode/std_string.h"
 #include "charstr.h"
 #include "cmemory.h"
 #include "cstring.h"
@@ -219,9 +225,18 @@ void LocaleTest::runIndexedTest( int32_t index, UBool exec, const char* &name, c
 #endif
     TESTCASE_AUTO(TestSetIsBogus);
     TESTCASE_AUTO(TestParallelAPIValues);
+    TESTCASE_AUTO(TestAddLikelySubtags);
+    TESTCASE_AUTO(TestMinimizeSubtags);
     TESTCASE_AUTO(TestKeywordVariants);
+    TESTCASE_AUTO(TestCreateUnicodeKeywords);
     TESTCASE_AUTO(TestKeywordVariantParsing);
+    TESTCASE_AUTO(TestCreateKeywordSet);
+    TESTCASE_AUTO(TestCreateUnicodeKeywordSet);
+    TESTCASE_AUTO(TestGetKeywordValueStdString);
+    TESTCASE_AUTO(TestGetUnicodeKeywordValueStdString);
     TESTCASE_AUTO(TestSetKeywordValue);
+    TESTCASE_AUTO(TestSetKeywordValueStringPiece);
+    TESTCASE_AUTO(TestSetUnicodeKeywordValueStringPiece);
     TESTCASE_AUTO(TestGetBaseName);
 #if !UCONFIG_NO_FILE_IO
     TESTCASE_AUTO(TestGetLocale);
@@ -233,6 +248,11 @@ void LocaleTest::runIndexedTest( int32_t index, UBool exec, const char* &name, c
     TESTCASE_AUTO(TestIsRightToLeft);
     TESTCASE_AUTO(TestBug13277);
     TESTCASE_AUTO(TestBug13554);
+    TESTCASE_AUTO(TestForLanguageTag);
+    TESTCASE_AUTO(TestToLanguageTag);
+    TESTCASE_AUTO(TestMoveAssign);
+    TESTCASE_AUTO(TestMoveCtor);
+    TESTCASE_AUTO(TestBug13417VeryLongLanguageTag);
     TESTCASE_AUTO_END;
 }
 
@@ -1136,7 +1156,7 @@ LocaleTest::TestThaiCurrencyFormat()
     UErrorCode status = U_ZERO_ERROR;
     DecimalFormat *thaiCurrency = (DecimalFormat*)NumberFormat::createCurrencyInstance(
                     Locale("th", "TH"), status);
-    UnicodeString posPrefix("THB", 3, US_INV);  // per cldrbug 7618
+    UnicodeString posPrefix(u"\u0E3F");
     UnicodeString temp;
 
     if(U_FAILURE(status) || !thaiCurrency)
@@ -1145,7 +1165,7 @@ LocaleTest::TestThaiCurrencyFormat()
         return;
     }
     if (thaiCurrency->getPositivePrefix(temp) != posPrefix)
-        errln("Thai currency prefix wrong: expected THB, got \"" +
+        errln("Thai currency prefix wrong: expected Baht sign, got \"" +
                         thaiCurrency->getPositivePrefix(temp) + "\"");
     if (thaiCurrency->getPositiveSuffix(temp) != "")
         errln("Thai currency suffix wrong: expected \"\", got \"" +
@@ -1598,6 +1618,34 @@ LocaleTest::TestSetIsBogus() {
 }
 
 
+void
+LocaleTest::TestAddLikelySubtags() {
+    IcuTestErrorCode status(*this, "TestAddLikelySubtags()");
+
+    static const Locale min("sv");
+    static const Locale max("sv_Latn_SE");
+
+    Locale result(min);
+    result.addLikelySubtags(status);
+    status.errIfFailureAndReset("\"%s\"", min.getName());
+    assertEquals("addLikelySubtags", max.getName(), result.getName());
+}
+
+
+void
+LocaleTest::TestMinimizeSubtags() {
+    IcuTestErrorCode status(*this, "TestMinimizeSubtags()");
+
+    static const Locale max("zh_Hant_TW");
+    static const Locale min("zh_TW");
+
+    Locale result(max);
+    result.minimizeSubtags(status);
+    status.errIfFailureAndReset("\"%s\"", max.getName());
+    assertEquals("minimizeSubtags", min.getName(), result.getName());
+}
+
+
 void
 LocaleTest::TestKeywordVariants(void) {
     static const struct {
@@ -1705,6 +1753,63 @@ LocaleTest::TestKeywordVariants(void) {
 
 }
 
+
+void
+LocaleTest::TestCreateUnicodeKeywords(void) {
+    IcuTestErrorCode status(*this, "TestCreateUnicodeKeywords()");
+
+    static const Locale l("de@calendar=buddhist;collation=phonebook");
+
+    LocalPointer<StringEnumeration> keys(l.createUnicodeKeywords(status));
+    status.errIfFailureAndReset("\"%s\"", l.getName());
+
+    const char* key;
+    int32_t resultLength;
+
+    key = keys->next(&resultLength, status);
+    status.errIfFailureAndReset("key #1");
+    assertEquals("resultLength", 2, resultLength);
+    assertTrue("key != nullptr", key != nullptr);
+    if (key != nullptr) {
+        assertEquals("calendar", "ca", key);
+    }
+
+    key = keys->next(&resultLength, status);
+    status.errIfFailureAndReset("key #2");
+    assertEquals("resultLength", 2, resultLength);
+    assertTrue("key != nullptr", key != nullptr);
+    if (key != nullptr) {
+        assertEquals("collation", "co", key);
+    }
+
+    key = keys->next(&resultLength, status);
+    status.errIfFailureAndReset("end of keys");
+    assertEquals("resultLength", 0, resultLength);
+    assertTrue("key == nullptr", key == nullptr);
+
+    const UnicodeString* skey;
+    keys->reset(status);  // KeywordEnumeration::reset() never touches status.
+
+    skey = keys->snext(status);
+    status.errIfFailureAndReset("skey #1");
+    assertTrue("skey != nullptr", skey != nullptr);
+    if (skey != nullptr) {
+        assertEquals("calendar", "ca", *skey);
+    }
+
+    skey = keys->snext(status);
+    status.errIfFailureAndReset("skey #2");
+    assertTrue("skey != nullptr", skey != nullptr);
+    if (skey != nullptr) {
+        assertEquals("collation", "co", *skey);
+    }
+
+    skey = keys->snext(status);
+    status.errIfFailureAndReset("end of keys");
+    assertTrue("skey == nullptr", skey == nullptr);
+}
+
+
 void
 LocaleTest::TestKeywordVariantParsing(void) {
     static const struct {
@@ -1736,6 +1841,74 @@ LocaleTest::TestKeywordVariantParsing(void) {
     }
 }
 
+void
+LocaleTest::TestCreateKeywordSet(void) {
+    IcuTestErrorCode status(*this, "TestCreateKeywordSet()");
+
+    static const Locale l("de@calendar=buddhist;collation=phonebook");
+
+    std::set<std::string> result;
+    l.getKeywords<std::string>(
+            std::insert_iterator<decltype(result)>(result, result.begin()),
+            status);
+    status.errIfFailureAndReset("\"%s\"", l.getName());
+
+    assertEquals("set::size()", 2, result.size());
+    assertTrue("set::find(\"calendar\")",
+               result.find("calendar") != result.end());
+    assertTrue("set::find(\"collation\")",
+               result.find("collation") != result.end());
+}
+
+void
+LocaleTest::TestCreateUnicodeKeywordSet(void) {
+    IcuTestErrorCode status(*this, "TestCreateUnicodeKeywordSet()");
+
+    static const Locale l("de@calendar=buddhist;collation=phonebook");
+
+    std::set<std::string> result;
+    l.getUnicodeKeywords<std::string>(
+            std::insert_iterator<decltype(result)>(result, result.begin()),
+            status);
+    status.errIfFailureAndReset("\"%s\"", l.getName());
+
+    assertEquals("set::size()", 2, result.size());
+    assertTrue("set::find(\"ca\")",
+               result.find("ca") != result.end());
+    assertTrue("set::find(\"co\")",
+               result.find("co") != result.end());
+}
+
+void
+LocaleTest::TestGetKeywordValueStdString(void) {
+    IcuTestErrorCode status(*this, "TestGetKeywordValueStdString()");
+
+    static const char tag[] = "fa-u-nu-latn";
+    static const char keyword[] = "numbers";
+    static const char expected[] = "latn";
+
+    Locale l = Locale::forLanguageTag(tag, status);
+    status.errIfFailureAndReset("\"%s\"", tag);
+
+    std::string result = l.getKeywordValue<std::string>(keyword, status);
+    status.errIfFailureAndReset("\"%s\"", keyword);
+    assertEquals(keyword, expected, result.c_str());
+}
+
+void
+LocaleTest::TestGetUnicodeKeywordValueStdString(void) {
+    IcuTestErrorCode status(*this, "TestGetUnicodeKeywordValueStdString()");
+
+    static const char keyword[] = "co";
+    static const char expected[] = "phonebk";
+
+    static const Locale l("de@calendar=buddhist;collation=phonebook");
+
+    std::string result = l.getUnicodeKeywordValue<std::string>(keyword, status);
+    status.errIfFailureAndReset("\"%s\"", keyword);
+    assertEquals(keyword, expected, result.c_str());
+}
+
 void
 LocaleTest::TestSetKeywordValue(void) {
     static const struct {
@@ -1771,6 +1944,33 @@ LocaleTest::TestSetKeywordValue(void) {
     }
 }
 
+void
+LocaleTest::TestSetKeywordValueStringPiece(void) {
+    IcuTestErrorCode status(*this, "TestSetKeywordValueStringPiece()");
+    Locale l(Locale::getGerman());
+
+    l.setKeywordValue(StringPiece("collation"), StringPiece("phonebook"), status);
+    l.setKeywordValue(StringPiece("calendarxxx", 8), StringPiece("buddhistxxx", 8), status);
+
+    static const char expected[] = "de@calendar=buddhist;collation=phonebook";
+    assertEquals("", expected, l.getName());
+}
+
+void
+LocaleTest::TestSetUnicodeKeywordValueStringPiece(void) {
+    IcuTestErrorCode status(*this, "TestSetUnicodeKeywordValueStringPiece()");
+    Locale l(Locale::getGerman());
+
+    l.setUnicodeKeywordValue(StringPiece("co"), StringPiece("phonebk"), status);
+    status.errIfFailureAndReset();
+
+    l.setUnicodeKeywordValue(StringPiece("caxxx", 2), StringPiece("buddhistxxx", 8), status);
+    status.errIfFailureAndReset();
+
+    static const char expected[] = "de@calendar=buddhist;collation=phonebook";
+    assertEquals("", expected, l.getName());
+}
+
 void
 LocaleTest::TestGetBaseName(void) {
     static const struct {
@@ -2748,4 +2948,209 @@ void LocaleTest::TestBug13554() {
     }
 }
 
+void LocaleTest::TestForLanguageTag() {
+    IcuTestErrorCode status(*this, "TestForLanguageTag()");
+
+    static const char tag_en[] = "en-US";
+    static const char tag_oed[] = "en-GB-oed";
+    static const char tag_af[] = "af-t-ar-i0-handwrit-u-ca-coptic-x-foo";
+    static const char tag_ill[] = "!";
+    static const char tag_no_nul[] = { 'e', 'n', '-', 'G', 'B' };
+
+    static const Locale loc_en("en_US");
+    static const Locale loc_oed("en_GB_OXENDICT");
+    static const Locale loc_af("af@calendar=coptic;t=ar-i0-handwrit;x=foo");
+    static const Locale loc_null("");
+    static const Locale loc_gb("en_GB");
+
+    Locale result_en = Locale::forLanguageTag(tag_en, status);
+    status.errIfFailureAndReset("\"%s\"", tag_en);
+    assertEquals(tag_en, loc_en.getName(), result_en.getName());
+
+    Locale result_oed = Locale::forLanguageTag(tag_oed, status);
+    status.errIfFailureAndReset("\"%s\"", tag_oed);
+    assertEquals(tag_oed, loc_oed.getName(), result_oed.getName());
+
+    Locale result_af = Locale::forLanguageTag(tag_af, status);
+    status.errIfFailureAndReset("\"%s\"", tag_af);
+    assertEquals(tag_af, loc_af.getName(), result_af.getName());
+
+    Locale result_ill = Locale::forLanguageTag(tag_ill, status);
+    assertEquals(tag_ill, U_ILLEGAL_ARGUMENT_ERROR, status.reset());
+    assertTrue(result_ill.getName(), result_ill.isBogus());
+
+    Locale result_null = Locale::forLanguageTag(nullptr, status);
+    status.errIfFailureAndReset("nullptr");
+    assertEquals("nullptr", loc_null.getName(), result_null.getName());
+
+    StringPiece sp_substr(tag_oed, 5);  // "en-GB", no NUL.
+    Locale result_substr = Locale::forLanguageTag(sp_substr, status);
+    status.errIfFailureAndReset("\"%.*s\"", sp_substr.size(), sp_substr.data());
+    assertEquals(CharString(sp_substr, status).data(),
+            loc_gb.getName(), result_substr.getName());
+
+    StringPiece sp_no_nul(tag_no_nul, sizeof tag_no_nul);  // "en-GB", no NUL.
+    Locale result_no_nul = Locale::forLanguageTag(sp_no_nul, status);
+    status.errIfFailureAndReset("\"%.*s\"", sp_no_nul.size(), sp_no_nul.data());
+    assertEquals(CharString(sp_no_nul, status).data(),
+            loc_gb.getName(), result_no_nul.getName());
+}
+
+void LocaleTest::TestToLanguageTag() {
+    IcuTestErrorCode status(*this, "TestToLanguageTag()");
+
+    static const Locale loc_c("C");
+    static const Locale loc_en("en_US");
+    static const Locale loc_af("af@calendar=coptic;t=ar-i0-handwrit;x=foo");
+    static const Locale loc_empty("");
+    static const Locale loc_ill("!");
+
+    static const char tag_c[] = "en-US-u-va-posix";
+    static const char tag_en[] = "en-US";
+    static const char tag_af[] = "af-t-ar-i0-handwrit-u-ca-coptic-x-foo";
+    static const char tag_und[] = "und";
+
+    std::string result;
+    StringByteSink<std::string> sink(&result);
+    loc_c.toLanguageTag(sink, status);
+    status.errIfFailureAndReset("\"%s\"", loc_c.getName());
+    assertEquals(loc_c.getName(), tag_c, result.c_str());
+
+    std::string result_c = loc_c.toLanguageTag<std::string>(status);
+    status.errIfFailureAndReset("\"%s\"", loc_c.getName());
+    assertEquals(loc_c.getName(), tag_c, result_c.c_str());
+
+    std::string result_en = loc_en.toLanguageTag<std::string>(status);
+    status.errIfFailureAndReset("\"%s\"", loc_en.getName());
+    assertEquals(loc_en.getName(), tag_en, result_en.c_str());
+
+    std::string result_af = loc_af.toLanguageTag<std::string>(status);
+    status.errIfFailureAndReset("\"%s\"", loc_af.getName());
+    assertEquals(loc_af.getName(), tag_af, result_af.c_str());
+
+    std::string result_empty = loc_empty.toLanguageTag<std::string>(status);
+    status.errIfFailureAndReset("\"%s\"", loc_empty.getName());
+    assertEquals(loc_empty.getName(), tag_und, result_empty.c_str());
+
+    std::string result_ill = loc_ill.toLanguageTag<std::string>(status);
+    status.errIfFailureAndReset("\"%s\"", loc_ill.getName());
+    assertEquals(loc_ill.getName(), tag_und, result_ill.c_str());
+
+    Locale loc_bogus;
+    loc_bogus.setToBogus();
+    std::string result_bogus = loc_bogus.toLanguageTag<std::string>(status);
+    assertEquals("bogus", U_ILLEGAL_ARGUMENT_ERROR, status.reset());
+    assertTrue(result_bogus.c_str(), result_bogus.empty());
+}
+
+void LocaleTest::TestMoveAssign() {
+    // ULOC_FULLNAME_CAPACITY == 157 (uloc.h)
+    Locale l1("de@collation=phonebook;x="
+              "aaaaabbbbbcccccdddddeeeeefffffggggghhhhh"
+              "aaaaabbbbbcccccdddddeeeeefffffggggghhhhh"
+              "aaaaabbbbbcccccdddddeeeeefffffggggghhhhh"
+              "aaaaabbbbbzz");
+
+    Locale l2;
+    {
+        Locale l3(l1);
+        assertTrue("l1 == l3", l1 == l3);
+        l2 = std::move(l3);
+        assertTrue("l1 == l2", l1 == l2);
+        assertTrue("l2 != l3", l2.getName() != l3.getName());
+    }
+
+    // This should remain true also after l3 has been destructed.
+    assertTrue("l1 == l2, again", l1 == l2);
+
+    Locale l4("de@collation=phonebook");
+
+    Locale l5;
+    {
+        Locale l6(l4);
+        assertTrue("l4 == l6", l4 == l6);
+        l5 = std::move(l6);
+        assertTrue("l4 == l5", l4 == l5);
+        assertTrue("l5 != l6", l5.getName() != l6.getName());
+    }
+
+    // This should remain true also after l6 has been destructed.
+    assertTrue("l4 == l5, again", l4 == l5);
+
+    Locale l7("vo_Cyrl_AQ_EURO");
+
+    Locale l8;
+    {
+        Locale l9(l7);
+        assertTrue("l7 == l9", l7 == l9);
+        l8 = std::move(l9);
+        assertTrue("l7 == l8", l7 == l8);
+        assertTrue("l8 != l9", l8.getName() != l9.getName());
+    }
+
+    // This should remain true also after l9 has been destructed.
+    assertTrue("l7 == l8, again", l7 == l8);
+
+    assertEquals("language", l7.getLanguage(), l8.getLanguage());
+    assertEquals("script", l7.getScript(), l8.getScript());
+    assertEquals("country", l7.getCountry(), l8.getCountry());
+    assertEquals("variant", l7.getVariant(), l8.getVariant());
+    assertEquals("bogus", l7.isBogus(), l8.isBogus());
+}
+
+void LocaleTest::TestMoveCtor() {
+    // ULOC_FULLNAME_CAPACITY == 157 (uloc.h)
+    Locale l1("de@collation=phonebook;x="
+              "aaaaabbbbbcccccdddddeeeeefffffggggghhhhh"
+              "aaaaabbbbbcccccdddddeeeeefffffggggghhhhh"
+              "aaaaabbbbbcccccdddddeeeeefffffggggghhhhh"
+              "aaaaabbbbbzz");
+
+    Locale l3(l1);
+    assertTrue("l1 == l3", l1 == l3);
+    Locale l2(std::move(l3));
+    assertTrue("l1 == l2", l1 == l2);
+    assertTrue("l2 != l3", l2.getName() != l3.getName());
+
+    Locale l4("de@collation=phonebook");
+
+    Locale l6(l4);
+    assertTrue("l4 == l6", l4 == l6);
+    Locale l5(std::move(l6));
+    assertTrue("l4 == l5", l4 == l5);
+    assertTrue("l5 != l6", l5.getName() != l6.getName());
+
+    Locale l7("vo_Cyrl_AQ_EURO");
+
+    Locale l9(l7);
+    assertTrue("l7 == l9", l7 == l9);
+    Locale l8(std::move(l9));
+    assertTrue("l7 == l8", l7 == l8);
+    assertTrue("l8 != l9", l8.getName() != l9.getName());
+
+    assertEquals("language", l7.getLanguage(), l8.getLanguage());
+    assertEquals("script", l7.getScript(), l8.getScript());
+    assertEquals("country", l7.getCountry(), l8.getCountry());
+    assertEquals("variant", l7.getVariant(), l8.getVariant());
+    assertEquals("bogus", l7.isBogus(), l8.isBogus());
+}
+
+void LocaleTest::TestBug13417VeryLongLanguageTag() {
+    IcuTestErrorCode status(*this, "TestBug13417VeryLongLanguageTag()");
+
+    static const char tag[] =
+        "zh-x"
+        "-foo-bar-baz-foo-bar-baz-foo-bar-baz-foo-bar-baz"
+        "-foo-bar-baz-foo-bar-baz-foo-bar-baz-foo-bar-baz"
+        "-foo-bar-baz-foo-bar-baz-foo-bar-baz-foo-bar-baz"
+        "-foo-bar-baz-fxx"
+    ;
 
+    Locale l = Locale::forLanguageTag(tag, status);
+    status.errIfFailureAndReset("\"%s\"", tag);
+    assertTrue("!l.isBogus()", !l.isBogus());
+
+    std::string result = l.toLanguageTag<std::string>(status);
+    status.errIfFailureAndReset("\"%s\"", l.getName());
+    assertEquals("equals", tag, result.c_str());
+}
index 344e8816cc9ca5062ee8ccbe2886a877a62d3f74..2a83be51a05e96b999d4c4d40513c231b74e88d6 100644 (file)
@@ -72,14 +72,21 @@ public:
     
     void TestVariantParsing(void);
 
-   /* Test getting keyword enumeratin */
+   /* Test getting keyword enumeration */
    void TestKeywordVariants(void);
+   void TestCreateUnicodeKeywords(void);
 
    /* Test getting keyword values */
    void TestKeywordVariantParsing(void);
+   void TestCreateKeywordSet(void);
+   void TestCreateUnicodeKeywordSet(void);
+   void TestGetKeywordValueStdString(void);
+   void TestGetUnicodeKeywordValueStdString(void);
 
    /* Test setting keyword values */
    void TestSetKeywordValue(void);
+   void TestSetKeywordValueStringPiece(void);
+   void TestSetUnicodeKeywordValueStringPiece(void);
 
    /* Test getting the locale base name */
    void TestGetBaseName(void);
@@ -108,6 +115,17 @@ public:
     void TestBug13277();
     void TestBug13554();
 
+    void TestAddLikelySubtags();
+    void TestMinimizeSubtags();
+
+    void TestForLanguageTag();
+    void TestToLanguageTag();
+
+    void TestMoveAssign();
+    void TestMoveCtor();
+
+    void TestBug13417VeryLongLanguageTag();
+
 private:
     void _checklocs(const char* label,
                     const char* req,
index 8d7ec8165b03163a651f1495510a7fdf9ca9ee8b..a0599bae88425e8e93712efa2e4efb781997462d 100644 (file)
@@ -50,6 +50,7 @@ private:
     void TestCompatible57();
     void TestCompatible58();
     void TestCompatible59();
+    void TestCompatible63();
     void TestGetAvailable();
     void TestExamplesInDocs();
     void TestFormatPeriodEn();
@@ -147,6 +148,7 @@ void MeasureFormatTest::runIndexedTest(
     TESTCASE_AUTO(TestCompatible57);
     TESTCASE_AUTO(TestCompatible58);
     TESTCASE_AUTO(TestCompatible59);
+    TESTCASE_AUTO(TestCompatible63);
     TESTCASE_AUTO(TestGetAvailable);
     TESTCASE_AUTO(TestExamplesInDocs);
     TESTCASE_AUTO(TestFormatPeriodEn);
@@ -1042,6 +1044,151 @@ void MeasureFormatTest::TestCompatible59() {
 // Note that TestCompatible60(), TestCompatible61(), TestCompatible62()
 // would be the same as TestCompatible59(), no need to add them.
 
+void MeasureFormatTest::TestCompatible63() {
+    UErrorCode status = U_ZERO_ERROR;
+    LocalPointer<MeasureUnit> measureUnit;
+    measureUnit.adoptInstead(MeasureUnit::createGForce(status));
+    measureUnit.adoptInstead(MeasureUnit::createMeterPerSecondSquared(status));
+    measureUnit.adoptInstead(MeasureUnit::createArcMinute(status));
+    measureUnit.adoptInstead(MeasureUnit::createArcSecond(status));
+    measureUnit.adoptInstead(MeasureUnit::createDegree(status));
+    measureUnit.adoptInstead(MeasureUnit::createRadian(status));
+    measureUnit.adoptInstead(MeasureUnit::createRevolutionAngle(status));
+    measureUnit.adoptInstead(MeasureUnit::createAcre(status));
+    measureUnit.adoptInstead(MeasureUnit::createHectare(status));
+    measureUnit.adoptInstead(MeasureUnit::createSquareCentimeter(status));
+    measureUnit.adoptInstead(MeasureUnit::createSquareFoot(status));
+    measureUnit.adoptInstead(MeasureUnit::createSquareInch(status));
+    measureUnit.adoptInstead(MeasureUnit::createSquareKilometer(status));
+    measureUnit.adoptInstead(MeasureUnit::createSquareMeter(status));
+    measureUnit.adoptInstead(MeasureUnit::createSquareMile(status));
+    measureUnit.adoptInstead(MeasureUnit::createSquareYard(status));
+    measureUnit.adoptInstead(MeasureUnit::createKarat(status));
+    measureUnit.adoptInstead(MeasureUnit::createMilligramPerDeciliter(status));
+    measureUnit.adoptInstead(MeasureUnit::createMillimolePerLiter(status));
+    measureUnit.adoptInstead(MeasureUnit::createPartPerMillion(status));
+    measureUnit.adoptInstead(MeasureUnit::createPercent(status));
+    measureUnit.adoptInstead(MeasureUnit::createPermille(status));
+    measureUnit.adoptInstead(MeasureUnit::createLiterPer100Kilometers(status));
+    measureUnit.adoptInstead(MeasureUnit::createLiterPerKilometer(status));
+    measureUnit.adoptInstead(MeasureUnit::createMilePerGallon(status));
+    measureUnit.adoptInstead(MeasureUnit::createMilePerGallonImperial(status));
+    measureUnit.adoptInstead(MeasureUnit::createBit(status));
+    measureUnit.adoptInstead(MeasureUnit::createByte(status));
+    measureUnit.adoptInstead(MeasureUnit::createGigabit(status));
+    measureUnit.adoptInstead(MeasureUnit::createGigabyte(status));
+    measureUnit.adoptInstead(MeasureUnit::createKilobit(status));
+    measureUnit.adoptInstead(MeasureUnit::createKilobyte(status));
+    measureUnit.adoptInstead(MeasureUnit::createMegabit(status));
+    measureUnit.adoptInstead(MeasureUnit::createMegabyte(status));
+    measureUnit.adoptInstead(MeasureUnit::createPetabyte(status));
+    measureUnit.adoptInstead(MeasureUnit::createTerabit(status));
+    measureUnit.adoptInstead(MeasureUnit::createTerabyte(status));
+    measureUnit.adoptInstead(MeasureUnit::createCentury(status));
+    measureUnit.adoptInstead(MeasureUnit::createDay(status));
+    measureUnit.adoptInstead(MeasureUnit::createHour(status));
+    measureUnit.adoptInstead(MeasureUnit::createMicrosecond(status));
+    measureUnit.adoptInstead(MeasureUnit::createMillisecond(status));
+    measureUnit.adoptInstead(MeasureUnit::createMinute(status));
+    measureUnit.adoptInstead(MeasureUnit::createMonth(status));
+    measureUnit.adoptInstead(MeasureUnit::createNanosecond(status));
+    measureUnit.adoptInstead(MeasureUnit::createSecond(status));
+    measureUnit.adoptInstead(MeasureUnit::createWeek(status));
+    measureUnit.adoptInstead(MeasureUnit::createYear(status));
+    measureUnit.adoptInstead(MeasureUnit::createAmpere(status));
+    measureUnit.adoptInstead(MeasureUnit::createMilliampere(status));
+    measureUnit.adoptInstead(MeasureUnit::createOhm(status));
+    measureUnit.adoptInstead(MeasureUnit::createVolt(status));
+    measureUnit.adoptInstead(MeasureUnit::createCalorie(status));
+    measureUnit.adoptInstead(MeasureUnit::createFoodcalorie(status));
+    measureUnit.adoptInstead(MeasureUnit::createJoule(status));
+    measureUnit.adoptInstead(MeasureUnit::createKilocalorie(status));
+    measureUnit.adoptInstead(MeasureUnit::createKilojoule(status));
+    measureUnit.adoptInstead(MeasureUnit::createKilowattHour(status));
+    measureUnit.adoptInstead(MeasureUnit::createGigahertz(status));
+    measureUnit.adoptInstead(MeasureUnit::createHertz(status));
+    measureUnit.adoptInstead(MeasureUnit::createKilohertz(status));
+    measureUnit.adoptInstead(MeasureUnit::createMegahertz(status));
+    measureUnit.adoptInstead(MeasureUnit::createAstronomicalUnit(status));
+    measureUnit.adoptInstead(MeasureUnit::createCentimeter(status));
+    measureUnit.adoptInstead(MeasureUnit::createDecimeter(status));
+    measureUnit.adoptInstead(MeasureUnit::createFathom(status));
+    measureUnit.adoptInstead(MeasureUnit::createFoot(status));
+    measureUnit.adoptInstead(MeasureUnit::createFurlong(status));
+    measureUnit.adoptInstead(MeasureUnit::createInch(status));
+    measureUnit.adoptInstead(MeasureUnit::createKilometer(status));
+    measureUnit.adoptInstead(MeasureUnit::createLightYear(status));
+    measureUnit.adoptInstead(MeasureUnit::createMeter(status));
+    measureUnit.adoptInstead(MeasureUnit::createMicrometer(status));
+    measureUnit.adoptInstead(MeasureUnit::createMile(status));
+    measureUnit.adoptInstead(MeasureUnit::createMileScandinavian(status));
+    measureUnit.adoptInstead(MeasureUnit::createMillimeter(status));
+    measureUnit.adoptInstead(MeasureUnit::createNanometer(status));
+    measureUnit.adoptInstead(MeasureUnit::createNauticalMile(status));
+    measureUnit.adoptInstead(MeasureUnit::createParsec(status));
+    measureUnit.adoptInstead(MeasureUnit::createPicometer(status));
+    measureUnit.adoptInstead(MeasureUnit::createPoint(status));
+    measureUnit.adoptInstead(MeasureUnit::createYard(status));
+    measureUnit.adoptInstead(MeasureUnit::createLux(status));
+    measureUnit.adoptInstead(MeasureUnit::createCarat(status));
+    measureUnit.adoptInstead(MeasureUnit::createGram(status));
+    measureUnit.adoptInstead(MeasureUnit::createKilogram(status));
+    measureUnit.adoptInstead(MeasureUnit::createMetricTon(status));
+    measureUnit.adoptInstead(MeasureUnit::createMicrogram(status));
+    measureUnit.adoptInstead(MeasureUnit::createMilligram(status));
+    measureUnit.adoptInstead(MeasureUnit::createOunce(status));
+    measureUnit.adoptInstead(MeasureUnit::createOunceTroy(status));
+    measureUnit.adoptInstead(MeasureUnit::createPound(status));
+    measureUnit.adoptInstead(MeasureUnit::createStone(status));
+    measureUnit.adoptInstead(MeasureUnit::createTon(status));
+    measureUnit.adoptInstead(MeasureUnit::createGigawatt(status));
+    measureUnit.adoptInstead(MeasureUnit::createHorsepower(status));
+    measureUnit.adoptInstead(MeasureUnit::createKilowatt(status));
+    measureUnit.adoptInstead(MeasureUnit::createMegawatt(status));
+    measureUnit.adoptInstead(MeasureUnit::createMilliwatt(status));
+    measureUnit.adoptInstead(MeasureUnit::createWatt(status));
+    measureUnit.adoptInstead(MeasureUnit::createAtmosphere(status));
+    measureUnit.adoptInstead(MeasureUnit::createHectopascal(status));
+    measureUnit.adoptInstead(MeasureUnit::createInchHg(status));
+    measureUnit.adoptInstead(MeasureUnit::createMillibar(status));
+    measureUnit.adoptInstead(MeasureUnit::createMillimeterOfMercury(status));
+    measureUnit.adoptInstead(MeasureUnit::createPoundPerSquareInch(status));
+    measureUnit.adoptInstead(MeasureUnit::createKilometerPerHour(status));
+    measureUnit.adoptInstead(MeasureUnit::createKnot(status));
+    measureUnit.adoptInstead(MeasureUnit::createMeterPerSecond(status));
+    measureUnit.adoptInstead(MeasureUnit::createMilePerHour(status));
+    measureUnit.adoptInstead(MeasureUnit::createCelsius(status));
+    measureUnit.adoptInstead(MeasureUnit::createFahrenheit(status));
+    measureUnit.adoptInstead(MeasureUnit::createGenericTemperature(status));
+    measureUnit.adoptInstead(MeasureUnit::createKelvin(status));
+    measureUnit.adoptInstead(MeasureUnit::createAcreFoot(status));
+    measureUnit.adoptInstead(MeasureUnit::createBushel(status));
+    measureUnit.adoptInstead(MeasureUnit::createCentiliter(status));
+    measureUnit.adoptInstead(MeasureUnit::createCubicCentimeter(status));
+    measureUnit.adoptInstead(MeasureUnit::createCubicFoot(status));
+    measureUnit.adoptInstead(MeasureUnit::createCubicInch(status));
+    measureUnit.adoptInstead(MeasureUnit::createCubicKilometer(status));
+    measureUnit.adoptInstead(MeasureUnit::createCubicMeter(status));
+    measureUnit.adoptInstead(MeasureUnit::createCubicMile(status));
+    measureUnit.adoptInstead(MeasureUnit::createCubicYard(status));
+    measureUnit.adoptInstead(MeasureUnit::createCup(status));
+    measureUnit.adoptInstead(MeasureUnit::createCupMetric(status));
+    measureUnit.adoptInstead(MeasureUnit::createDeciliter(status));
+    measureUnit.adoptInstead(MeasureUnit::createFluidOunce(status));
+    measureUnit.adoptInstead(MeasureUnit::createGallon(status));
+    measureUnit.adoptInstead(MeasureUnit::createGallonImperial(status));
+    measureUnit.adoptInstead(MeasureUnit::createHectoliter(status));
+    measureUnit.adoptInstead(MeasureUnit::createLiter(status));
+    measureUnit.adoptInstead(MeasureUnit::createMegaliter(status));
+    measureUnit.adoptInstead(MeasureUnit::createMilliliter(status));
+    measureUnit.adoptInstead(MeasureUnit::createPint(status));
+    measureUnit.adoptInstead(MeasureUnit::createPintMetric(status));
+    measureUnit.adoptInstead(MeasureUnit::createQuart(status));
+    measureUnit.adoptInstead(MeasureUnit::createTablespoon(status));
+    measureUnit.adoptInstead(MeasureUnit::createTeaspoon(status));
+    assertSuccess("", status);
+}
+
 void MeasureFormatTest::TestBasic() {
     UErrorCode status = U_ZERO_ERROR;
     MeasureUnit *ptr1 = MeasureUnit::createArcMinute(status);
@@ -1166,39 +1313,39 @@ void MeasureFormatTest::TestExamplesInDocs() {
             fmtFr,
             &measureC,
             1,
-            "23 \\u00B0C");
+            "23\\u202F\\u00B0C");
     verifyFormatWithPrefix(
             "Celsius",
             fmtFr,
             "Prefix: ",
             &measureC,
             1,
-            "Prefix: 23 \\u00B0C");
+            "Prefix: 23\\u202F\\u00B0C");
     verifyFormat(
             "Fahrenheit",
             fmtFr,
             &measureF,
             1,
-            "70 \\u00B0F");
+            "70\\u202F\\u00B0F");
     verifyFormat(
             "Feet and inches",
             fmtFrFull,
             feetAndInches,
             UPRV_LENGTHOF(feetAndInches),
-            "70 pieds et 5,3 pouces");
+            "70 pieds et 5,3\\u00A0pouces");
     verifyFormatWithPrefix(
             "Feet and inches",
             fmtFrFull,
             "Prefix: ",
             feetAndInches,
             UPRV_LENGTHOF(feetAndInches),
-            "Prefix: 70 pieds et 5,3 pouces");
+            "Prefix: 70 pieds et 5,3\\u00A0pouces");
     verifyFormat(
             "Foot and inch",
             fmtFrFull,
             footAndInch,
             UPRV_LENGTHOF(footAndInch),
-            "1 pied et 1 pouce");
+            "1\\u00A0pied et 1\\u00A0pouce");
     verifyFormat(
             "Foot and inch narrow",
             fmtFrNarrow,
@@ -1799,11 +1946,11 @@ void MeasureFormatTest::TestManyLocaleDurations() {
     helperTestManyLocaleDurations("es", UMEASFMT_WIDTH_NUMERIC, measures, UPRV_LENGTHOF(measures), "5:37");
     helperTestManyLocaleDurations("fi", UMEASFMT_WIDTH_NARROW,  measures, UPRV_LENGTHOF(measures), "5t 37min");
     helperTestManyLocaleDurations("fi", UMEASFMT_WIDTH_NUMERIC, measures, UPRV_LENGTHOF(measures), "5.37");
-    helperTestManyLocaleDurations("fr", UMEASFMT_WIDTH_NARROW,  measures, UPRV_LENGTHOF(measures), "5h 37 min");
+    helperTestManyLocaleDurations("fr", UMEASFMT_WIDTH_NARROW,  measures, UPRV_LENGTHOF(measures), "5h 37\\u202Fmin");
     helperTestManyLocaleDurations("fr", UMEASFMT_WIDTH_NUMERIC, measures, UPRV_LENGTHOF(measures), "5:37");
     helperTestManyLocaleDurations("is", UMEASFMT_WIDTH_NARROW,  measures, UPRV_LENGTHOF(measures), "5 klst. og 37 m\\u00EDn.");
     helperTestManyLocaleDurations("is", UMEASFMT_WIDTH_NUMERIC, measures, UPRV_LENGTHOF(measures), "5:37");
-    helperTestManyLocaleDurations("ja", UMEASFMT_WIDTH_NARROW,  measures, UPRV_LENGTHOF(measures), "5\\u6642\\u959337\\u5206");
+    helperTestManyLocaleDurations("ja", UMEASFMT_WIDTH_NARROW,  measures, UPRV_LENGTHOF(measures), "5h37m");
     helperTestManyLocaleDurations("ja", UMEASFMT_WIDTH_NUMERIC, measures, UPRV_LENGTHOF(measures), "5:37");
     helperTestManyLocaleDurations("nb", UMEASFMT_WIDTH_NARROW,  measures, UPRV_LENGTHOF(measures), "5t, 37m");
     helperTestManyLocaleDurations("nb", UMEASFMT_WIDTH_NUMERIC, measures, UPRV_LENGTHOF(measures), "5:37");
@@ -1857,9 +2004,14 @@ void MeasureFormatTest::TestGram() {
 }
 
 void MeasureFormatTest::TestCurrencies() {
-    UChar USD[4];
+    UChar USD[4] = {};
     u_uastrcpy(USD, "USD");
     UErrorCode status = U_ZERO_ERROR;
+    CurrencyUnit USD_unit(USD, status);
+    assertEquals("Currency Unit", USD, USD_unit.getISOCurrency());
+    if (!assertSuccess("Error creating CurrencyUnit", status)) {
+        return;
+    }
     CurrencyAmount USD_1(1.0, USD, status);
     assertEquals("Currency Code", USD, USD_1.getISOCurrency());
     CurrencyAmount USD_2(2.0, USD, status);
index 8984fdc366980cf2338e55b1640ae4a4c1e5f42a..49c2d4411a9bed357933da2be3379972f182a202 100644 (file)
@@ -11,6 +11,8 @@
 #include "number_affixutils.h"
 #include "numparse_stringsegment.h"
 #include "unicode/locid.h"
+#include "unicode/numberformatter.h"
+#include "unicode/numberrangeformatter.h"
 
 using namespace icu::number;
 using namespace icu::number::impl;
@@ -244,6 +246,54 @@ class NumberSkeletonTest : public IntlTest {
     void expectedErrorSkeleton(const char16_t** cases, int32_t casesLen);
 };
 
+class NumberRangeFormatterTest : public IntlTest {
+  public:
+    NumberRangeFormatterTest();
+    NumberRangeFormatterTest(UErrorCode &status);
+
+    void testSanity();
+    void testBasic();
+    void testCollapse();
+    void testIdentity();
+    void testDifferentFormatters();
+    void testPlurals();
+    void testCopyMove();
+
+    void runIndexedTest(int32_t index, UBool exec, const char *&name, char *par = 0);
+
+  private:
+    CurrencyUnit USD;
+    CurrencyUnit GBP;
+    CurrencyUnit PTE;
+
+    MeasureUnit METER;
+    MeasureUnit KILOMETER;
+    MeasureUnit FAHRENHEIT;
+    MeasureUnit KELVIN;
+
+    void assertFormatRange(
+      const char16_t* message,
+      const UnlocalizedNumberRangeFormatter& f,
+      Locale locale,
+      const char16_t* expected_10_50,
+      const char16_t* expected_49_51,
+      const char16_t* expected_50_50,
+      const char16_t* expected_00_30,
+      const char16_t* expected_00_00,
+      const char16_t* expected_30_3K,
+      const char16_t* expected_30K_50K,
+      const char16_t* expected_49K_51K,
+      const char16_t* expected_50K_50K,
+      const char16_t* expected_50K_50M);
+    
+    void assertFormattedRangeEquals(
+      const char16_t* message,
+      const LocalizedNumberRangeFormatter& l,
+      double first,
+      double second,
+      const char16_t* expected);
+};
+
 
 // NOTE: This macro is identical to the one in itformat.cpp
 #define TESTCLASS(id, TestClass)          \
@@ -276,6 +326,7 @@ class NumberTest : public IntlTest {
         TESTCLASS(8, StringSegmentTest);
         TESTCLASS(9, NumberParserTest);
         TESTCLASS(10, NumberSkeletonTest);
+        TESTCLASS(11, NumberRangeFormatterTest);
         default: name = ""; break; // needed to end loop
         }
     }
index 59c0d20b653a414df475d3cf533f7bb1ce1fe21e..54f5e63ce14cfb73e025f87e78fe1889342a5f6e 100644 (file)
@@ -17,6 +17,7 @@
 #include "unicode/utypes.h"
 
 // Horrible workaround for the lack of a status code in the constructor...
+// (Also affects numbertest_range.cpp)
 UErrorCode globalNumberFormatterApiTestStatus = U_ZERO_ERROR;
 
 NumberFormatterApiTest::NumberFormatterApiTest()
@@ -402,6 +403,22 @@ void NumberFormatterApiTest::notationCompact() {
             9990000,
             u"10M");
 
+    assertFormatSingle(
+            u"Compact in zh-Hant-HK",
+            u"compact-short",
+            NumberFormatter::with().notation(Notation::compactShort()),
+            Locale("zh-Hant-HK"),
+            1e7,
+            u"10M");
+
+    assertFormatSingle(
+            u"Compact in zh-Hant",
+            u"compact-short",
+            NumberFormatter::with().notation(Notation::compactShort()),
+            Locale("zh-Hant"),
+            1e7,
+            u"1000\u842C");
+
     // NOTE: There is no API for compact custom data in C++
     // and thus no "Compact Somali No Figure" test
 }
@@ -1553,8 +1570,8 @@ void NumberFormatterApiTest::symbols() {
             nullptr,
             NumberFormatter::with().symbols(FRENCH_SYMBOLS),
             Locale::getJapan(),
-            u"87 650",
-            u"8 765",
+            u"87\u202F650",
+            u"8\u202F765",
             u"876,5",
             u"87,65",
             u"8,765",
@@ -1591,8 +1608,8 @@ void NumberFormatterApiTest::symbols() {
             u"numbering-system/mathsanb",
             NumberFormatter::with().adoptSymbols(new NumberingSystem(MATHSANB)),
             Locale::getFrench(),
-            u"𝟴𝟳 𝟲𝟱𝟬",
-            u"𝟴 𝟳𝟲𝟱",
+            u"𝟴𝟳\u202F𝟲𝟱𝟬",
+            u"𝟴\u202F𝟳𝟲𝟱",
             u"𝟴𝟳𝟲,𝟱",
             u"𝟴𝟳,𝟲𝟱",
             u"𝟴,𝟳𝟲𝟱",
@@ -2045,7 +2062,7 @@ void NumberFormatterApiTest::locale() {
     UErrorCode status = U_ZERO_ERROR;
     UnicodeString actual = NumberFormatter::withLocale(Locale::getFrench()).formatInt(1234, status)
             .toString();
-    assertEquals("Locale withLocale()", u"1 234", actual);
+    assertEquals("Locale withLocale()", u"1\u202f234", actual);
 }
 
 void NumberFormatterApiTest::formatTypes() {
@@ -2371,8 +2388,15 @@ void NumberFormatterApiTest::copyMove() {
     assertTrue("[constructor] Source should be reset after move", l1.getCompiled() == nullptr);
 
     // Reset l1 and l2 to check for macro-props copying for behavior testing
+    // Make the test more interesting: also warm them up with a compiled formatter.
     l1 = NumberFormatter::withLocale("en");
+    l1.formatInt(1, status);
+    l1.formatInt(1, status);
+    l1.formatInt(1, status);
     l2 = NumberFormatter::withLocale("en");
+    l2.formatInt(1, status);
+    l2.formatInt(1, status);
+    l2.formatInt(1, status);
 
     // Copy assignment
     l1 = l3;
index 6d8f1990af87db220ee342765f1899ac5e24e1e7..52f4f49475120c4e2909c7f8e596b2c05d1f6b12 100644 (file)
@@ -162,12 +162,12 @@ void ModifiersTest::assertModifierEquals(const Modifier &mod, NumberStringBuilde
                                          UErrorCode &status) {
     int32_t oldCount = sb.codePointCount();
     mod.apply(sb, 0, sb.length(), status);
-    assertEquals("Prefix length", expectedPrefixLength, mod.getPrefixLength(status));
+    assertEquals("Prefix length", expectedPrefixLength, mod.getPrefixLength());
     assertEquals("Strong", expectedStrong, mod.isStrong());
     if (dynamic_cast<const CurrencySpacingEnabledModifier*>(&mod) == nullptr) {
         // i.e., if mod is not a CurrencySpacingEnabledModifier
         assertEquals("Code point count equals actual code point count",
-                sb.codePointCount() - oldCount, mod.getCodePointCount(status));
+                sb.codePointCount() - oldCount, mod.getCodePointCount());
     }
 
     UnicodeString debugString;
index e3071b371f768b81dc39f380a74e5f10c83f461b..3a0fda8267536b34aeb122b6d2b2846db2fb1687 100644 (file)
@@ -170,14 +170,14 @@ void PatternModifierTest::testMutableEqualsImmutable() {
 UnicodeString PatternModifierTest::getPrefix(const MutablePatternModifier &mod, UErrorCode &status) {
     NumberStringBuilder nsb;
     mod.apply(nsb, 0, 0, status);
-    int32_t prefixLength = mod.getPrefixLength(status);
+    int32_t prefixLength = mod.getPrefixLength();
     return UnicodeString(nsb.toUnicodeString(), 0, prefixLength);
 }
 
 UnicodeString PatternModifierTest::getSuffix(const MutablePatternModifier &mod, UErrorCode &status) {
     NumberStringBuilder nsb;
     mod.apply(nsb, 0, 0, status);
-    int32_t prefixLength = mod.getPrefixLength(status);
+    int32_t prefixLength = mod.getPrefixLength();
     return UnicodeString(nsb.toUnicodeString(), prefixLength, nsb.length() - prefixLength);
 }
 
diff --git a/source/test/intltest/numbertest_range.cpp b/source/test/intltest/numbertest_range.cpp
new file mode 100644 (file)
index 0000000..5718646
--- /dev/null
@@ -0,0 +1,809 @@
+// © 2018 and later: Unicode, Inc. and others.
+// License & terms of use: http://www.unicode.org/copyright.html
+
+#include "unicode/utypes.h"
+
+#if !UCONFIG_NO_FORMATTING
+
+#include "numbertest.h"
+#include "unicode/numberrangeformatter.h"
+
+#include <cmath>
+#include <numparse_affixes.h>
+
+// Horrible workaround for the lack of a status code in the constructor...
+// (Also affects numbertest_api.cpp)
+UErrorCode globalNumberRangeFormatterTestStatus = U_ZERO_ERROR;
+
+NumberRangeFormatterTest::NumberRangeFormatterTest()
+        : NumberRangeFormatterTest(globalNumberRangeFormatterTestStatus) {
+}
+
+NumberRangeFormatterTest::NumberRangeFormatterTest(UErrorCode& status)
+        : USD(u"USD", status),
+          GBP(u"GBP", status),
+          PTE(u"PTE", status) {
+
+    // Check for error on the first MeasureUnit in case there is no data
+    LocalPointer<MeasureUnit> unit(MeasureUnit::createMeter(status));
+    if (U_FAILURE(status)) {
+        dataerrln("%s %d status = %s", __FILE__, __LINE__, u_errorName(status));
+        return;
+    }
+    METER = *unit;
+
+    KILOMETER = *LocalPointer<MeasureUnit>(MeasureUnit::createKilometer(status));
+    FAHRENHEIT = *LocalPointer<MeasureUnit>(MeasureUnit::createFahrenheit(status));
+    KELVIN = *LocalPointer<MeasureUnit>(MeasureUnit::createKelvin(status));
+}
+
+void NumberRangeFormatterTest::runIndexedTest(int32_t index, UBool exec, const char*& name, char*) {
+    if (exec) {
+        logln("TestSuite NumberRangeFormatterTest: ");
+    }
+    TESTCASE_AUTO_BEGIN;
+        TESTCASE_AUTO(testSanity);
+        TESTCASE_AUTO(testBasic);
+        TESTCASE_AUTO(testCollapse);
+        TESTCASE_AUTO(testIdentity);
+        TESTCASE_AUTO(testDifferentFormatters);
+        TESTCASE_AUTO(testPlurals);
+        TESTCASE_AUTO(testCopyMove);
+    TESTCASE_AUTO_END;
+}
+
+void NumberRangeFormatterTest::testSanity() {
+    IcuTestErrorCode status(*this, "testSanity");
+    LocalizedNumberRangeFormatter lnrf1 = NumberRangeFormatter::withLocale("en-us");
+    LocalizedNumberRangeFormatter lnrf2 = NumberRangeFormatter::with().locale("en-us");
+    assertEquals("Formatters should have same behavior 1",
+        lnrf1.formatFormattableRange(4, 6, status).toString(status),
+        lnrf2.formatFormattableRange(4, 6, status).toString(status));
+}
+
+void NumberRangeFormatterTest::testBasic() {
+    assertFormatRange(
+        u"Basic",
+        NumberRangeFormatter::with(),
+        Locale("en-us"),
+        u"1–5",
+        u"~5",
+        u"~5",
+        u"0–3",
+        u"~0",
+        u"3–3,000",
+        u"3,000–5,000",
+        u"4,999–5,001",
+        u"~5,000",
+        u"5,000–5,000,000");
+
+    assertFormatRange(
+        u"Basic with units",
+        NumberRangeFormatter::with()
+            .numberFormatterBoth(NumberFormatter::with().unit(METER)),
+        Locale("en-us"),
+        u"1–5 m",
+        u"~5 m",
+        u"~5 m",
+        u"0–3 m",
+        u"~0 m",
+        u"3–3,000 m",
+        u"3,000–5,000 m",
+        u"4,999–5,001 m",
+        u"~5,000 m",
+        u"5,000–5,000,000 m");
+
+    assertFormatRange(
+        u"Basic with different units",
+        NumberRangeFormatter::with()
+            .numberFormatterFirst(NumberFormatter::with().unit(METER))
+            .numberFormatterSecond(NumberFormatter::with().unit(KILOMETER)),
+        Locale("en-us"),
+        u"1 m – 5 km",
+        u"5 m – 5 km",
+        u"5 m – 5 km",
+        u"0 m – 3 km",
+        u"0 m – 0 km",
+        u"3 m – 3,000 km",
+        u"3,000 m – 5,000 km",
+        u"4,999 m – 5,001 km",
+        u"5,000 m – 5,000 km",
+        u"5,000 m – 5,000,000 km");
+
+    assertFormatRange(
+        u"Basic long unit",
+        NumberRangeFormatter::with()
+            .numberFormatterBoth(NumberFormatter::with().unit(METER).unitWidth(UNUM_UNIT_WIDTH_FULL_NAME)),
+        Locale("en-us"),
+        u"1–5 meters",
+        u"~5 meters",
+        u"~5 meters",
+        u"0–3 meters",
+        u"~0 meters",
+        u"3–3,000 meters",
+        u"3,000–5,000 meters",
+        u"4,999–5,001 meters",
+        u"~5,000 meters",
+        u"5,000–5,000,000 meters");
+
+    assertFormatRange(
+        u"Non-English locale and unit",
+        NumberRangeFormatter::with()
+            .numberFormatterBoth(NumberFormatter::with().unit(FAHRENHEIT).unitWidth(UNUM_UNIT_WIDTH_FULL_NAME)),
+        Locale("fr-FR"),
+        u"1–5\u00A0degrés Fahrenheit",
+        u"≈5\u00A0degrés Fahrenheit",
+        u"≈5\u00A0degrés Fahrenheit",
+        u"0–3\u00A0degrés Fahrenheit",
+        u"≈0\u00A0degré Fahrenheit",
+        u"3–3\u202F000\u00A0degrés Fahrenheit",
+        u"3\u202F000–5\u202F000\u00A0degrés Fahrenheit",
+        u"4\u202F999–5\u202F001\u00A0degrés Fahrenheit",
+        u"≈5\u202F000\u00A0degrés Fahrenheit",
+        u"5\u202F000–5\u202F000\u202F000\u00A0degrés Fahrenheit");
+
+    assertFormatRange(
+        u"Locale with custom range separator",
+        NumberRangeFormatter::with(),
+        Locale("ja"),
+        u"1~5",
+        u"約 5",
+        u"約 5",
+        u"0~3",
+        u"約 0",
+        u"3~3,000",
+        u"3,000~5,000",
+        u"4,999~5,001",
+        u"約 5,000",
+        u"5,000~5,000,000");
+
+    assertFormatRange(
+        u"Locale that already has spaces around range separator",
+        NumberRangeFormatter::with()
+            .collapse(UNUM_RANGE_COLLAPSE_NONE)
+            .numberFormatterBoth(NumberFormatter::with().unit(KELVIN)),
+        Locale("hr"),
+        u"1 K – 5 K",
+        u"~5 K",
+        u"~5 K",
+        u"0 K – 3 K",
+        u"~0 K",
+        u"3 K – 3.000 K",
+        u"3.000 K – 5.000 K",
+        u"4.999 K – 5.001 K",
+        u"~5.000 K",
+        u"5.000 K – 5.000.000 K");
+
+    assertFormatRange(
+        u"Locale with custom numbering system and no plural ranges data",
+        NumberRangeFormatter::with(),
+        Locale("shn@numbers=beng"),
+        // 012459 = ০১৩৪৫৯
+        u"১–৫",
+        u"~৫",
+        u"~৫",
+        u"০–৩",
+        u"~০",
+        u"৩–৩,০০০",
+        u"৩,০০০–৫,০০০",
+        u"৪,৯৯৯–৫,০০১",
+        u"~৫,০০০",
+        u"৫,০০০–৫,০০০,০০০");
+
+    assertFormatRange(
+        u"Portuguese currency",
+        NumberRangeFormatter::with()
+            .numberFormatterBoth(NumberFormatter::with().unit(PTE)),
+        Locale("pt-PT"),
+        u"1$00 - 5$00 \u200B",
+        u"~5$00 \u200B",
+        u"~5$00 \u200B",
+        u"0$00 - 3$00 \u200B",
+        u"~0$00 \u200B",
+        u"3$00 - 3000$00 \u200B",
+        u"3000$00 - 5000$00 \u200B",
+        u"4999$00 - 5001$00 \u200B",
+        u"~5000$00 \u200B",
+        u"5000$00 - 5,000,000$00 \u200B");
+}
+
+void NumberRangeFormatterTest::testCollapse() {
+    assertFormatRange(
+        u"Default collapse on currency (default rounding)",
+        NumberRangeFormatter::with()
+            .numberFormatterBoth(NumberFormatter::with().unit(USD)),
+        Locale("en-us"),
+        u"$1.00 – $5.00",
+        u"~$5.00",
+        u"~$5.00",
+        u"$0.00 – $3.00",
+        u"~$0.00",
+        u"$3.00 – $3,000.00",
+        u"$3,000.00 – $5,000.00",
+        u"$4,999.00 – $5,001.00",
+        u"~$5,000.00",
+        u"$5,000.00 – $5,000,000.00");
+
+    assertFormatRange(
+        u"Default collapse on currency",
+        NumberRangeFormatter::with()
+            .numberFormatterBoth(NumberFormatter::with().unit(USD).precision(Precision::integer())),
+        Locale("en-us"),
+        u"$1 – $5",
+        u"~$5",
+        u"~$5",
+        u"$0 – $3",
+        u"~$0",
+        u"$3 – $3,000",
+        u"$3,000 – $5,000",
+        u"$4,999 – $5,001",
+        u"~$5,000",
+        u"$5,000 – $5,000,000");
+
+    assertFormatRange(
+        u"No collapse on currency",
+        NumberRangeFormatter::with()
+            .collapse(UNUM_RANGE_COLLAPSE_NONE)
+            .numberFormatterBoth(NumberFormatter::with().unit(USD).precision(Precision::integer())),
+        Locale("en-us"),
+        u"$1 – $5",
+        u"~$5",
+        u"~$5",
+        u"$0 – $3",
+        u"~$0",
+        u"$3 – $3,000",
+        u"$3,000 – $5,000",
+        u"$4,999 – $5,001",
+        u"~$5,000",
+        u"$5,000 – $5,000,000");
+
+    assertFormatRange(
+        u"Unit collapse on currency",
+        NumberRangeFormatter::with()
+            .collapse(UNUM_RANGE_COLLAPSE_UNIT)
+            .numberFormatterBoth(NumberFormatter::with().unit(USD).precision(Precision::integer())),
+        Locale("en-us"),
+        u"$1–5",
+        u"~$5",
+        u"~$5",
+        u"$0–3",
+        u"~$0",
+        u"$3–3,000",
+        u"$3,000–5,000",
+        u"$4,999–5,001",
+        u"~$5,000",
+        u"$5,000–5,000,000");
+
+    assertFormatRange(
+        u"All collapse on currency",
+        NumberRangeFormatter::with()
+            .collapse(UNUM_RANGE_COLLAPSE_ALL)
+            .numberFormatterBoth(NumberFormatter::with().unit(USD).precision(Precision::integer())),
+        Locale("en-us"),
+        u"$1–5",
+        u"~$5",
+        u"~$5",
+        u"$0–3",
+        u"~$0",
+        u"$3–3,000",
+        u"$3,000–5,000",
+        u"$4,999–5,001",
+        u"~$5,000",
+        u"$5,000–5,000,000");
+
+    assertFormatRange(
+        u"Default collapse on currency ISO code",
+        NumberRangeFormatter::with()
+            .numberFormatterBoth(NumberFormatter::with()
+                .unit(GBP)
+                .unitWidth(UNUM_UNIT_WIDTH_ISO_CODE)
+                .precision(Precision::integer())),
+        Locale("en-us"),
+        u"GBP 1–5",
+        u"~GBP 5",  // TODO: Fix this at some point
+        u"~GBP 5",
+        u"GBP 0–3",
+        u"~GBP 0",
+        u"GBP 3–3,000",
+        u"GBP 3,000–5,000",
+        u"GBP 4,999–5,001",
+        u"~GBP 5,000",
+        u"GBP 5,000–5,000,000");
+
+    assertFormatRange(
+        u"No collapse on currency ISO code",
+        NumberRangeFormatter::with()
+            .collapse(UNUM_RANGE_COLLAPSE_NONE)
+            .numberFormatterBoth(NumberFormatter::with()
+                .unit(GBP)
+                .unitWidth(UNUM_UNIT_WIDTH_ISO_CODE)
+                .precision(Precision::integer())),
+        Locale("en-us"),
+        u"GBP 1 – GBP 5",
+        u"~GBP 5",  // TODO: Fix this at some point
+        u"~GBP 5",
+        u"GBP 0 – GBP 3",
+        u"~GBP 0",
+        u"GBP 3 – GBP 3,000",
+        u"GBP 3,000 – GBP 5,000",
+        u"GBP 4,999 – GBP 5,001",
+        u"~GBP 5,000",
+        u"GBP 5,000 – GBP 5,000,000");
+
+    assertFormatRange(
+        u"Unit collapse on currency ISO code",
+        NumberRangeFormatter::with()
+            .collapse(UNUM_RANGE_COLLAPSE_UNIT)
+            .numberFormatterBoth(NumberFormatter::with()
+                .unit(GBP)
+                .unitWidth(UNUM_UNIT_WIDTH_ISO_CODE)
+                .precision(Precision::integer())),
+        Locale("en-us"),
+        u"GBP 1–5",
+        u"~GBP 5",  // TODO: Fix this at some point
+        u"~GBP 5",
+        u"GBP 0–3",
+        u"~GBP 0",
+        u"GBP 3–3,000",
+        u"GBP 3,000–5,000",
+        u"GBP 4,999–5,001",
+        u"~GBP 5,000",
+        u"GBP 5,000–5,000,000");
+
+    assertFormatRange(
+        u"All collapse on currency ISO code",
+        NumberRangeFormatter::with()
+            .collapse(UNUM_RANGE_COLLAPSE_ALL)
+            .numberFormatterBoth(NumberFormatter::with()
+                .unit(GBP)
+                .unitWidth(UNUM_UNIT_WIDTH_ISO_CODE)
+                .precision(Precision::integer())),
+        Locale("en-us"),
+        u"GBP 1–5",
+        u"~GBP 5",  // TODO: Fix this at some point
+        u"~GBP 5",
+        u"GBP 0–3",
+        u"~GBP 0",
+        u"GBP 3–3,000",
+        u"GBP 3,000–5,000",
+        u"GBP 4,999–5,001",
+        u"~GBP 5,000",
+        u"GBP 5,000–5,000,000");
+
+    // Default collapse on measurement unit is in testBasic()
+
+    assertFormatRange(
+        u"No collapse on measurement unit",
+        NumberRangeFormatter::with()
+            .collapse(UNUM_RANGE_COLLAPSE_NONE)
+            .numberFormatterBoth(NumberFormatter::with().unit(METER)),
+        Locale("en-us"),
+        u"1 m – 5 m",
+        u"~5 m",
+        u"~5 m",
+        u"0 m – 3 m",
+        u"~0 m",
+        u"3 m – 3,000 m",
+        u"3,000 m – 5,000 m",
+        u"4,999 m – 5,001 m",
+        u"~5,000 m",
+        u"5,000 m – 5,000,000 m");
+
+    assertFormatRange(
+        u"Unit collapse on measurement unit",
+        NumberRangeFormatter::with()
+            .collapse(UNUM_RANGE_COLLAPSE_UNIT)
+            .numberFormatterBoth(NumberFormatter::with().unit(METER)),
+        Locale("en-us"),
+        u"1–5 m",
+        u"~5 m",
+        u"~5 m",
+        u"0–3 m",
+        u"~0 m",
+        u"3–3,000 m",
+        u"3,000–5,000 m",
+        u"4,999–5,001 m",
+        u"~5,000 m",
+        u"5,000–5,000,000 m");
+
+    assertFormatRange(
+        u"All collapse on measurement unit",
+        NumberRangeFormatter::with()
+            .collapse(UNUM_RANGE_COLLAPSE_ALL)
+            .numberFormatterBoth(NumberFormatter::with().unit(METER)),
+        Locale("en-us"),
+        u"1–5 m",
+        u"~5 m",
+        u"~5 m",
+        u"0–3 m",
+        u"~0 m",
+        u"3–3,000 m",
+        u"3,000–5,000 m",
+        u"4,999–5,001 m",
+        u"~5,000 m",
+        u"5,000–5,000,000 m");
+
+    assertFormatRange(
+        u"Default collapse, long-form compact notation",
+        NumberRangeFormatter::with()
+            .numberFormatterBoth(NumberFormatter::with().notation(Notation::compactLong())),
+        Locale("de-CH"),
+        u"1–5",
+        u"≈5",
+        u"≈5",
+        u"0–3",
+        u"≈0",
+        u"3–3 Tausend",
+        u"3–5 Tausend",
+        u"≈5 Tausend",
+        u"≈5 Tausend",
+        u"5 Tausend – 5 Millionen");
+
+    assertFormatRange(
+        u"Unit collapse, long-form compact notation",
+        NumberRangeFormatter::with()
+            .collapse(UNUM_RANGE_COLLAPSE_UNIT)
+            .numberFormatterBoth(NumberFormatter::with().notation(Notation::compactLong())),
+        Locale("de-CH"),
+        u"1–5",
+        u"≈5",
+        u"≈5",
+        u"0–3",
+        u"≈0",
+        u"3–3 Tausend",
+        u"3 Tausend – 5 Tausend",
+        u"≈5 Tausend",
+        u"≈5 Tausend",
+        u"5 Tausend – 5 Millionen");
+
+    assertFormatRange(
+        u"Default collapse on measurement unit with compact-short notation",
+        NumberRangeFormatter::with()
+            .numberFormatterBoth(NumberFormatter::with().notation(Notation::compactShort()).unit(METER)),
+        Locale("en-us"),
+        u"1–5 m",
+        u"~5 m",
+        u"~5 m",
+        u"0–3 m",
+        u"~0 m",
+        u"3–3K m",
+        u"3K – 5K m",
+        u"~5K m",
+        u"~5K m",
+        u"5K – 5M m");
+
+    assertFormatRange(
+        u"No collapse on measurement unit with compact-short notation",
+        NumberRangeFormatter::with()
+            .collapse(UNUM_RANGE_COLLAPSE_NONE)
+            .numberFormatterBoth(NumberFormatter::with().notation(Notation::compactShort()).unit(METER)),
+        Locale("en-us"),
+        u"1 m – 5 m",
+        u"~5 m",
+        u"~5 m",
+        u"0 m – 3 m",
+        u"~0 m",
+        u"3 m – 3K m",
+        u"3K m – 5K m",
+        u"~5K m",
+        u"~5K m",
+        u"5K m – 5M m");
+
+    assertFormatRange(
+        u"Unit collapse on measurement unit with compact-short notation",
+        NumberRangeFormatter::with()
+            .collapse(UNUM_RANGE_COLLAPSE_UNIT)
+            .numberFormatterBoth(NumberFormatter::with().notation(Notation::compactShort()).unit(METER)),
+        Locale("en-us"),
+        u"1–5 m",
+        u"~5 m",
+        u"~5 m",
+        u"0–3 m",
+        u"~0 m",
+        u"3–3K m",
+        u"3K – 5K m",
+        u"~5K m",
+        u"~5K m",
+        u"5K – 5M m");
+
+    assertFormatRange(
+        u"All collapse on measurement unit with compact-short notation",
+        NumberRangeFormatter::with()
+            .collapse(UNUM_RANGE_COLLAPSE_ALL)
+            .numberFormatterBoth(NumberFormatter::with().notation(Notation::compactShort()).unit(METER)),
+        Locale("en-us"),
+        u"1–5 m",
+        u"~5 m",
+        u"~5 m",
+        u"0–3 m",
+        u"~0 m",
+        u"3–3K m",
+        u"3–5K m",  // this one is the key use case for ALL
+        u"~5K m",
+        u"~5K m",
+        u"5K – 5M m");
+
+    assertFormatRange(
+        u"No collapse on scientific notation",
+        NumberRangeFormatter::with()
+            .collapse(UNUM_RANGE_COLLAPSE_NONE)
+            .numberFormatterBoth(NumberFormatter::with().notation(Notation::scientific())),
+        Locale("en-us"),
+        u"1E0 – 5E0",
+        u"~5E0",
+        u"~5E0",
+        u"0E0 – 3E0",
+        u"~0E0",
+        u"3E0 – 3E3",
+        u"3E3 – 5E3",
+        u"4.999E3 – 5.001E3",
+        u"~5E3",
+        u"5E3 – 5E6");
+
+    assertFormatRange(
+        u"All collapse on scientific notation",
+        NumberRangeFormatter::with()
+            .collapse(UNUM_RANGE_COLLAPSE_ALL)
+            .numberFormatterBoth(NumberFormatter::with().notation(Notation::scientific())),
+        Locale("en-us"),
+        u"1–5E0",
+        u"~5E0",
+        u"~5E0",
+        u"0–3E0",
+        u"~0E0",
+        u"3E0 – 3E3",
+        u"3–5E3",
+        u"4.999–5.001E3",
+        u"~5E3",
+        u"5E3 – 5E6");
+
+    // TODO: Test compact currency?
+    // The code is not smart enough to differentiate the notation from the unit.
+}
+
+void NumberRangeFormatterTest::testIdentity() {
+    assertFormatRange(
+        u"Identity fallback Range",
+        NumberRangeFormatter::with().identityFallback(UNUM_IDENTITY_FALLBACK_RANGE),
+        Locale("en-us"),
+        u"1–5",
+        u"5–5",
+        u"5–5",
+        u"0–3",
+        u"0–0",
+        u"3–3,000",
+        u"3,000–5,000",
+        u"4,999–5,001",
+        u"5,000–5,000",
+        u"5,000–5,000,000");
+
+    assertFormatRange(
+        u"Identity fallback Approximately or Single Value",
+        NumberRangeFormatter::with().identityFallback(UNUM_IDENTITY_FALLBACK_APPROXIMATELY_OR_SINGLE_VALUE),
+        Locale("en-us"),
+        u"1–5",
+        u"~5",
+        u"5",
+        u"0–3",
+        u"0",
+        u"3–3,000",
+        u"3,000–5,000",
+        u"4,999–5,001",
+        u"5,000",
+        u"5,000–5,000,000");
+
+    assertFormatRange(
+        u"Identity fallback Single Value",
+        NumberRangeFormatter::with().identityFallback(UNUM_IDENTITY_FALLBACK_SINGLE_VALUE),
+        Locale("en-us"),
+        u"1–5",
+        u"5",
+        u"5",
+        u"0–3",
+        u"0",
+        u"3–3,000",
+        u"3,000–5,000",
+        u"4,999–5,001",
+        u"5,000",
+        u"5,000–5,000,000");
+
+    assertFormatRange(
+        u"Identity fallback Approximately or Single Value with compact notation",
+        NumberRangeFormatter::with()
+            .identityFallback(UNUM_IDENTITY_FALLBACK_APPROXIMATELY_OR_SINGLE_VALUE)
+            .numberFormatterBoth(NumberFormatter::with().notation(Notation::compactShort())),
+        Locale("en-us"),
+        u"1–5",
+        u"~5",
+        u"5",
+        u"0–3",
+        u"0",
+        u"3–3K",
+        u"3K – 5K",
+        u"~5K",
+        u"5K",
+        u"5K – 5M");
+
+    assertFormatRange(
+        u"Approximately in middle of unit string",
+        NumberRangeFormatter::with().numberFormatterBoth(
+            NumberFormatter::with().unit(FAHRENHEIT).unitWidth(UNUM_UNIT_WIDTH_FULL_NAME)),
+        Locale("zh-Hant"),
+        u"華氏 1-5 度",
+        u"華氏 ~5 度",
+        u"華氏 ~5 度",
+        u"華氏 0-3 度",
+        u"華氏 ~0 度",
+        u"華氏 3-3,000 度",
+        u"華氏 3,000-5,000 度",
+        u"華氏 4,999-5,001 度",
+        u"華氏 ~5,000 度",
+        u"華氏 5,000-5,000,000 度");
+}
+
+void NumberRangeFormatterTest::testDifferentFormatters() {
+    assertFormatRange(
+        u"Different rounding rules",
+        NumberRangeFormatter::with()
+            .numberFormatterFirst(NumberFormatter::with().precision(Precision::integer()))
+            .numberFormatterSecond(NumberFormatter::with().precision(Precision::fixedDigits(2))),
+        Locale("en-us"),
+        u"1–5.0",
+        u"5–5.0",
+        u"5–5.0",
+        u"0–3.0",
+        u"0–0.0",
+        u"3–3,000",
+        u"3,000–5,000",
+        u"4,999–5,000",
+        u"5,000–5,000",  // TODO: Should this one be ~5,000?
+        u"5,000–5,000,000");
+}
+
+void NumberRangeFormatterTest::testPlurals() {
+    IcuTestErrorCode status(*this, "testPlurals");
+
+    // Locale sl has interesting plural forms:
+    // GBP{
+    //     one{"britanski funt"}
+    //     two{"britanska funta"}
+    //     few{"britanski funti"}
+    //     other{"britanskih funtov"}
+    // }
+    Locale locale("sl");
+
+    UnlocalizedNumberFormatter unf = NumberFormatter::with()
+        .unit(GBP)
+        .unitWidth(UNUM_UNIT_WIDTH_FULL_NAME)
+        .precision(Precision::integer());
+    LocalizedNumberFormatter lnf = unf.locale(locale);
+
+    // For comparison, run the non-range version of the formatter
+    assertEquals(Int64ToUnicodeString(1), u"1 britanski funt", lnf.formatDouble(1, status).toString(status));
+    assertEquals(Int64ToUnicodeString(2), u"2 britanska funta", lnf.formatDouble(2, status).toString(status));
+    assertEquals(Int64ToUnicodeString(3), u"3 britanski funti", lnf.formatDouble(3, status).toString(status));
+    assertEquals(Int64ToUnicodeString(5), u"5 britanskih funtov", lnf.formatDouble(5, status).toString(status));
+    if (status.errIfFailureAndReset()) { return; }
+
+    LocalizedNumberRangeFormatter lnrf = NumberRangeFormatter::with()
+        .numberFormatterBoth(unf)
+        .identityFallback(UNUM_IDENTITY_FALLBACK_RANGE)
+        .locale(locale);
+
+    struct TestCase {
+        double first;
+        double second;
+        const char16_t* expected;
+    } cases[] = {
+        {1, 1, u"1–1 britanski funti"}, // one + one -> few
+        {1, 2, u"1–2 britanska funta"}, // one + two -> two
+        {1, 3, u"1–3 britanski funti"}, // one + few -> few
+        {1, 5, u"1–5 britanskih funtov"}, // one + other -> other
+        {2, 1, u"2–1 britanski funti"}, // two + one -> few
+        {2, 2, u"2–2 britanska funta"}, // two + two -> two
+        {2, 3, u"2–3 britanski funti"}, // two + few -> few
+        {2, 5, u"2–5 britanskih funtov"}, // two + other -> other
+        {3, 1, u"3–1 britanski funti"}, // few + one -> few
+        {3, 2, u"3–2 britanska funta"}, // few + two -> two
+        {3, 3, u"3–3 britanski funti"}, // few + few -> few
+        {3, 5, u"3–5 britanskih funtov"}, // few + other -> other
+        {5, 1, u"5–1 britanski funti"}, // other + one -> few
+        {5, 2, u"5–2 britanska funta"}, // other + two -> two
+        {5, 3, u"5–3 britanski funti"}, // other + few -> few
+        {5, 5, u"5–5 britanskih funtov"}, // other + other -> other
+    };
+    for (auto& cas : cases) {
+        UnicodeString message = Int64ToUnicodeString(cas.first);
+        message += u" ";
+        message += Int64ToUnicodeString(cas.second);
+        status.setScope(message);
+        UnicodeString actual = lnrf.formatFormattableRange(cas.first, cas.second, status).toString(status);
+        assertEquals(message, cas.expected, actual);
+        status.errIfFailureAndReset();
+    }
+}
+
+void NumberRangeFormatterTest::testCopyMove() {
+    IcuTestErrorCode status(*this, "testCopyMove");
+
+    // Default constructors
+    LocalizedNumberRangeFormatter l1;
+    assertEquals("Initial behavior", u"1–5", l1.formatFormattableRange(1, 5, status).toString(status));
+    if (status.errDataIfFailureAndReset()) { return; }
+
+    // Setup
+    l1 = NumberRangeFormatter::withLocale("fr-FR")
+        .numberFormatterBoth(NumberFormatter::with().unit(USD));
+    assertEquals("Currency behavior", u"1,00–5,00 $US", l1.formatFormattableRange(1, 5, status).toString(status));
+
+    // Copy constructor
+    LocalizedNumberRangeFormatter l2 = l1;
+    assertEquals("Copy constructor", u"1,00–5,00 $US", l2.formatFormattableRange(1, 5, status).toString(status));
+
+    // Move constructor
+    LocalizedNumberRangeFormatter l3 = std::move(l1);
+    assertEquals("Move constructor", u"1,00–5,00 $US", l3.formatFormattableRange(1, 5, status).toString(status));
+
+    // Reset objects for assignment tests
+    l1 = NumberRangeFormatter::withLocale("en-us");
+    l2 = NumberRangeFormatter::withLocale("en-us");
+    assertEquals("Rest behavior, l1", u"1–5", l1.formatFormattableRange(1, 5, status).toString(status));
+    assertEquals("Rest behavior, l2", u"1–5", l2.formatFormattableRange(1, 5, status).toString(status));
+
+    // Copy assignment
+    l1 = l3;
+    assertEquals("Copy constructor", u"1,00–5,00 $US", l1.formatFormattableRange(1, 5, status).toString(status));
+
+    // Move assignment
+    l2 = std::move(l3);
+    assertEquals("Copy constructor", u"1,00–5,00 $US", l2.formatFormattableRange(1, 5, status).toString(status));
+
+    // FormattedNumberRange
+    FormattedNumberRange result = l1.formatFormattableRange(1, 5, status);
+    assertEquals("FormattedNumberRange move constructor", u"1,00–5,00 $US", result.toString(status));
+    result = l1.formatFormattableRange(3, 6, status);
+    assertEquals("FormattedNumberRange move assignment", u"3,00–6,00 $US", result.toString(status));
+}
+
+void  NumberRangeFormatterTest::assertFormatRange(
+      const char16_t* message,
+      const UnlocalizedNumberRangeFormatter& f,
+      Locale locale,
+      const char16_t* expected_10_50,
+      const char16_t* expected_49_51,
+      const char16_t* expected_50_50,
+      const char16_t* expected_00_30,
+      const char16_t* expected_00_00,
+      const char16_t* expected_30_3K,
+      const char16_t* expected_30K_50K,
+      const char16_t* expected_49K_51K,
+      const char16_t* expected_50K_50K,
+      const char16_t* expected_50K_50M) {
+    LocalizedNumberRangeFormatter l = f.locale(locale);
+    assertFormattedRangeEquals(message, l, 1, 5, expected_10_50);
+    assertFormattedRangeEquals(message, l, 4.9999999, 5.0000001, expected_49_51);
+    assertFormattedRangeEquals(message, l, 5, 5, expected_50_50);
+    assertFormattedRangeEquals(message, l, 0, 3, expected_00_30);
+    assertFormattedRangeEquals(message, l, 0, 0, expected_00_00);
+    assertFormattedRangeEquals(message, l, 3, 3000, expected_30_3K);
+    assertFormattedRangeEquals(message, l, 3000, 5000, expected_30K_50K);
+    assertFormattedRangeEquals(message, l, 4999, 5001, expected_49K_51K);
+    assertFormattedRangeEquals(message, l, 5000, 5000, expected_50K_50K);
+    assertFormattedRangeEquals(message, l, 5e3, 5e6, expected_50K_50M);
+}
+
+void NumberRangeFormatterTest::assertFormattedRangeEquals(
+      const char16_t* message,
+      const LocalizedNumberRangeFormatter& l,
+      double first,
+      double second,
+      const char16_t* expected) {
+    IcuTestErrorCode status(*this, "assertFormattedRangeEquals");
+    UnicodeString fullMessage = UnicodeString(message) + u": " + DoubleToUnicodeString(first) + u", " + DoubleToUnicodeString(second);
+    status.setScope(fullMessage);
+    UnicodeString actual = l.formatFormattableRange(first, second, status).toString(status);
+    assertEquals(fullMessage, expected, actual);
+}
+
+
+#endif
index 82ee94e5fddafe0c6c8110379ac0f2b832238599..7d59678c9292b35a21e759925dcecd581df63d65 100644 (file)
@@ -89,14 +89,14 @@ void NumberFormatSpecificationTest::runIndexedTest(
 }
 
 void NumberFormatSpecificationTest::TestBasicPatterns() {
-    assertPatternFr("1 234,57", 1234.567, "#,##0.##", TRUE);
+    assertPatternFr("1\\u202F234,57", 1234.567, "#,##0.##", TRUE);
     assertPatternFr("1234,57", 1234.567, "0.##", TRUE);
     assertPatternFr("1235", 1234.567, "0", TRUE);
-    assertPatternFr("1 234,567", 1234.567, "#,##0.###", TRUE);
+    assertPatternFr("1\\u202F234,567", 1234.567, "#,##0.###", TRUE);
     assertPatternFr("1234,567", 1234.567, "###0.#####", TRUE);
     assertPatternFr("1234,5670", 1234.567, "###0.0000#", TRUE);
     assertPatternFr("01234,5670", 1234.567, "00000.0000", TRUE);
-    assertPatternFr("1 234,57 \\u20ac", 1234.567, "#,##0.00 \\u00a4", TRUE);
+    assertPatternFr("1\\u202F234,57 \\u20ac", 1234.567, "#,##0.00 \\u00a4", TRUE);
 }
 
 void NumberFormatSpecificationTest::TestNfSetters() {
@@ -107,8 +107,8 @@ void NumberFormatSpecificationTest::TestNfSetters() {
     }
     nf->setMaximumIntegerDigits(5);
     nf->setMinimumIntegerDigits(4);
-    assertEquals("", "34 567,89", format(1234567.89, *nf), TRUE);
-    assertEquals("", "0 034,56", format(34.56, *nf), TRUE);
+    assertEquals("", u"34\u202F567,89", format(1234567.89, *nf), TRUE);
+    assertEquals("", u"0\u202F034,56", format(34.56, *nf), TRUE);
 }
 
 void NumberFormatSpecificationTest::TestRounding() {
@@ -121,20 +121,20 @@ void NumberFormatSpecificationTest::TestRounding() {
     assertPatternFr("8", 10.0, "4", TRUE);
     assertPatternFr("99,90", 99.0, "2.70", TRUE);
     assertPatternFr("273,00", 272.0, "2.73", TRUE);
-    assertPatternFr("1 03,60", 104.0, "#,#3.70", TRUE);
+    assertPatternFr("1\\u202F03,60", 104.0, "#,#3.70", TRUE);
 }
 
 void NumberFormatSpecificationTest::TestSignificantDigits() {
     assertPatternFr("1230", 1234.0, "@@@", TRUE);
-    assertPatternFr("1 234", 1234.0, "@,@@@", TRUE);
-    assertPatternFr("1 235 000", 1234567.0, "@,@@@", TRUE);
-    assertPatternFr("1 234 567", 1234567.0, "@@@@,@@@", TRUE);
-    assertPatternFr("12 34 567,00", 1234567.0, "@@@@,@@,@@@", TRUE);
-    assertPatternFr("12 34 567,0", 1234567.0, "@@@@,@@,@@#", TRUE);
-    assertPatternFr("12 34 567", 1234567.0, "@@@@,@@,@##", TRUE);
-    assertPatternFr("12 34 567", 1234567.001, "@@@@,@@,@##", TRUE);
-    assertPatternFr("12 34 567", 1234567.001, "@@@@,@@,###", TRUE);
-    assertPatternFr("1 200", 1234.0, "#,#@@", TRUE);
+    assertPatternFr("1\\u202F234", 1234.0, "@,@@@", TRUE);
+    assertPatternFr("1\\u202F235\\u202F000", 1234567.0, "@,@@@", TRUE);
+    assertPatternFr("1\\u202F234\\u202F567", 1234567.0, "@@@@,@@@", TRUE);
+    assertPatternFr("12\\u202F34\\u202F567,00", 1234567.0, "@@@@,@@,@@@", TRUE);
+    assertPatternFr("12\\u202F34\\u202F567,0", 1234567.0, "@@@@,@@,@@#", TRUE);
+    assertPatternFr("12\\u202F34\\u202F567", 1234567.0, "@@@@,@@,@##", TRUE);
+    assertPatternFr("12\\u202F34\\u202F567", 1234567.001, "@@@@,@@,@##", TRUE);
+    assertPatternFr("12\\u202F34\\u202F567", 1234567.001, "@@@@,@@,###", TRUE);
+    assertPatternFr("1\\u202F200", 1234.0, "#,#@@", TRUE);
 }
 
 void NumberFormatSpecificationTest::TestScientificNotation() {
@@ -161,8 +161,8 @@ void NumberFormatSpecificationTest::TestPercent() {
     assertPatternFr("p%p57,3", 0.573, "p%p0.0", TRUE);
     assertPatternFr("p%p0,6", 0.573, "p'%'p0.0", TRUE);
     assertPatternFr("%3,260", 0.0326, "%@@@@", TRUE);
-    assertPatternFr("%1 540", 15.43, "%#,@@@", TRUE);
-    assertPatternFr("%1 656,4", 16.55, "%#,##4.1", TRUE);
+    assertPatternFr("%1\\u202F540", 15.43, "%#,@@@", TRUE);
+    assertPatternFr("%1\\u202F656,4", 16.55, "%#,##4.1", TRUE);
     assertPatternFr("%16,3E3", 162.55, "%##0.00E0", TRUE);
 }
 
@@ -172,18 +172,18 @@ void NumberFormatSpecificationTest::TestPerMilli() {
     assertPatternFr("p\\u2030p573,0", 0.573, "p\\u2030p0.0", TRUE);
     assertPatternFr("p\\u2030p0,6", 0.573, "p'\\u2030'p0.0", TRUE);
     assertPatternFr("\\u203032,60", 0.0326, "\\u2030@@@@", TRUE);
-    assertPatternFr("\\u203015 400", 15.43, "\\u2030#,@@@", TRUE);
-    assertPatternFr("\\u203016 551,7", 16.55, "\\u2030#,##4.1", TRUE);
+    assertPatternFr("\\u203015\\u202F400", 15.43, "\\u2030#,@@@", TRUE);
+    assertPatternFr("\\u203016\\u202F551,7", 16.55, "\\u2030#,##4.1", TRUE);
     assertPatternFr("\\u2030163E3", 162.55, "\\u2030##0.00E0", TRUE);
 }
 
 void NumberFormatSpecificationTest::TestPadding() {
-    assertPatternFr("$***1 234", 1234, "$**####,##0", TRUE);
-    assertPatternFr("xxx$1 234", 1234, "*x$####,##0", TRUE);
-    assertPatternFr("1 234xxx$", 1234, "####,##0*x$", TRUE);
-    assertPatternFr("1 234$xxx", 1234, "####,##0$*x", TRUE);
-    assertPatternFr("ne1 234nx", -1234, "####,##0$*x;ne#n", TRUE);
-    assertPatternFr("n1 234*xx", -1234, "####,##0$*x;n#'*'", TRUE);
+    assertPatternFr("$***1\\u202F234", 1234, "$**####,##0", TRUE);
+    assertPatternFr("xxx$1\\u202F234", 1234, "*x$####,##0", TRUE);
+    assertPatternFr("1\\u202F234xxx$", 1234, "####,##0*x$", TRUE);
+    assertPatternFr("1\\u202F234$xxx", 1234, "####,##0$*x", TRUE);
+    assertPatternFr("ne1\\u202F234nx", -1234, "####,##0$*x;ne#n", TRUE);
+    assertPatternFr("n1\\u202F234*xx", -1234, "####,##0$*x;n#'*'", TRUE);
     assertPatternFr("yyyy%432,6", 4.33, "*y%4.2######",  TRUE);
     if (!logKnownIssue("11025")) {
         assertPatternFr("EUR *433,00", 433.0, "\\u00a4\\u00a4 **####0.00");
index b7184296e4a8dba9bb4d7c472959ffa9ec0b4aad..34355939113b83738784a00e5be4eb215b19d5c0 100644 (file)
@@ -202,6 +202,7 @@ void NumberFormatTest::runIndexedTest( int32_t index, UBool exec, const char* &n
   TESTCASE_AUTO(Test11645_ApplyPatternEquality);
   TESTCASE_AUTO(Test12567);
   TESTCASE_AUTO(Test11626_CustomizeCurrencyPluralInfo);
+  TESTCASE_AUTO(Test20073_StrictPercentParseErrorIndex);
   TESTCASE_AUTO(Test13056_GroupingSize);
   TESTCASE_AUTO(Test11025_CurrencyPadding);
   TESTCASE_AUTO(Test11648_ExpDecFormatMalPattern);
@@ -215,7 +216,9 @@ void NumberFormatTest::runIndexedTest( int32_t index, UBool exec, const char* &n
   TESTCASE_AUTO(Test13763_FieldPositionIteratorOffset);
   TESTCASE_AUTO(Test13777_ParseLongNameNonCurrencyMode);
   TESTCASE_AUTO(Test13804_EmptyStringsWhenParsing);
+  TESTCASE_AUTO(Test20037_ScientificIntegerOverflow);
   TESTCASE_AUTO(Test13840_ParseLongStringCrash);
+  TESTCASE_AUTO(Test13850_EmptyStringCurrency);
   TESTCASE_AUTO_END;
 }
 
@@ -971,19 +974,19 @@ void NumberFormatTest::TestCurrencyObject() {
         return;
     }
 
-    expectCurrency(*fmt, null, 1234.56, CharsToUnicodeString("1 234,56 \\u20AC"));
+    expectCurrency(*fmt, null, 1234.56, CharsToUnicodeString("1\\u202F234,56 \\u20AC"));
 
     expectCurrency(*fmt, Locale::getJapan(),
-                   1234.56, CharsToUnicodeString("1 235 JPY")); // Yen
+                   1234.56, CharsToUnicodeString("1\\u202F235 JPY")); // Yen
 
     expectCurrency(*fmt, Locale("fr", "CH", ""),
-                   1234.56, "1 234,56 CHF"); // no more 0.05 rounding here, see cldrbug 5548
+                   1234.56, CharsToUnicodeString("1\\u202F234,56 CHF")); // no more 0.05 rounding here, see cldrbug 5548
 
     expectCurrency(*fmt, Locale::getUS(),
-                   1234.56, "1 234,56 $US");
+                   1234.56, CharsToUnicodeString("1\\u202F234,56 $US"));
 
     expectCurrency(*fmt, Locale::getFrance(),
-                   1234.56, CharsToUnicodeString("1 234,56 \\u20AC")); // Euro
+                   1234.56, CharsToUnicodeString("1\\u202F234,56 \\u20AC")); // Euro
 
     delete fmt;
 }
@@ -3561,7 +3564,7 @@ void NumberFormatTest::TestMismatchedCurrencyFormatFail() {
             u"\u00A4#,##0.00",
             df->toPattern(pattern));
     // Should round-trip on the correct currency format:
-    expect2(*df, 1.23, u"XXX\u00A01.23");
+    expect2(*df, 1.23, u"\u00A41.23");
     df->setCurrency(u"EUR", status);
     expect2(*df, 1.23, u"\u20AC1.23");
     // Should parse with currency in the wrong place in lenient mode
@@ -3860,6 +3863,7 @@ NumberFormatTest::TestParseCurrencyInUCurr() {
         "1.00 US DOLLAR",  // case in-sensitive
         "$1.00",
         "USD1.00",
+        "usd1.00", // case in-sensitive: #13696
         "US dollar1.00",
         "US dollars1.00",
         "$1.00",
@@ -5875,7 +5879,6 @@ NumberFormatTest::TestParseCurrencyInUCurr() {
 
     const char* WRONG_DATA[] = {
         // Following are missing one last char in the currency name
-        "usd1.00", // case sensitive
         "1.00 Nicaraguan Cordob",
         "1.00 Namibian Dolla",
         "1.00 Namibian dolla",
@@ -7366,6 +7369,35 @@ void NumberFormatTest::TestSignificantDigits(void) {
         }
         result.remove();
     }
+
+    // Test for ICU-20063
+    {
+        DecimalFormat df({"en-us", status}, status);
+        df.setSignificantDigitsUsed(TRUE);
+        expect(df, 9.87654321, u"9.87654");
+        df.setMaximumSignificantDigits(3);
+        expect(df, 9.87654321, u"9.88");
+        // setSignificantDigitsUsed with maxSig only
+        df.setSignificantDigitsUsed(TRUE);
+        expect(df, 9.87654321, u"9.88");
+        df.setMinimumSignificantDigits(2);
+        expect(df, 9, u"9.0");
+        // setSignificantDigitsUsed with both minSig and maxSig
+        df.setSignificantDigitsUsed(TRUE);
+        expect(df, 9, u"9.0");
+        // setSignificantDigitsUsed to false: should revert to fraction rounding
+        df.setSignificantDigitsUsed(FALSE);
+        expect(df, 9.87654321, u"9.876543");
+        expect(df, 9, u"9");
+        df.setSignificantDigitsUsed(TRUE);
+        df.setMinimumSignificantDigits(2);
+        expect(df, 9.87654321, u"9.87654");
+        expect(df, 9, u"9.0");
+        // setSignificantDigitsUsed with minSig only
+        df.setSignificantDigitsUsed(TRUE);
+        expect(df, 9.87654321, u"9.87654");
+        expect(df, 9, u"9.0");
+    }
 }
 
 void NumberFormatTest::TestShowZero() {
@@ -7894,22 +7926,22 @@ void NumberFormatTest::TestCurrencyUsage() {
 
     // compare the Currency and Currency Cash Digits
     // Note that as of CLDR 26:
-    // * TWD switches from 0 decimals to 2; PKR still has 0, so change test to that
+    // * TWD and PKR switched from 0 decimals to 2; ISK still has 0, so change test to that
     // * CAD rounds to .05 in cash mode only
     // 1st time for getter/setter, 2nd time for factory method
-    Locale enUS_PKR("en_US@currency=PKR");
+    Locale enUS_ISK("en_US@currency=ISK");
 
     for(int i=0; i<2; i++){
         status = U_ZERO_ERROR;
         if(i == 0){
-            fmt = (DecimalFormat *) NumberFormat::createInstance(enUS_PKR, UNUM_CURRENCY, status);
-            if (assertSuccess("en_US@currency=PKR/CURRENCY", status, TRUE) == FALSE) {
+            fmt = (DecimalFormat *) NumberFormat::createInstance(enUS_ISK, UNUM_CURRENCY, status);
+            if (assertSuccess("en_US@currency=ISK/CURRENCY", status, TRUE) == FALSE) {
                 continue;
             }
 
             UnicodeString original;
             fmt->format(agent,original);
-            assertEquals("Test Currency Usage 1", u"PKR\u00A0124", original);
+            assertEquals("Test Currency Usage 1", u"ISK\u00A0124", original);
 
             // test the getter here
             UCurrencyUsage curUsage = fmt->getCurrencyUsage();
@@ -7917,8 +7949,8 @@ void NumberFormatTest::TestCurrencyUsage() {
 
             fmt->setCurrencyUsage(UCURR_USAGE_CASH, &status);
         }else{
-            fmt = (DecimalFormat *) NumberFormat::createInstance(enUS_PKR, UNUM_CASH_CURRENCY, status);
-            if (assertSuccess("en_US@currency=PKR/CASH", status, TRUE) == FALSE) {
+            fmt = (DecimalFormat *) NumberFormat::createInstance(enUS_ISK, UNUM_CASH_CURRENCY, status);
+            if (assertSuccess("en_US@currency=ISK/CASH", status, TRUE) == FALSE) {
                 continue;
             }
         }
@@ -7929,7 +7961,7 @@ void NumberFormatTest::TestCurrencyUsage() {
 
         UnicodeString cash_currency;
         fmt->format(agent,cash_currency);
-        assertEquals("Test Currency Usage 2", u"PKR\u00A0124", cash_currency);
+        assertEquals("Test Currency Usage 2", u"ISK\u00A0124", cash_currency);
         delete fmt;
     }
 
@@ -7989,7 +8021,7 @@ void NumberFormatTest::TestCurrencyUsage() {
 
         UnicodeString PKR_changed;
         fmt->format(agent, PKR_changed);
-        assertEquals("Test Currency Usage 6", u"PKR\u00A0124", PKR_changed);
+        assertEquals("Test Currency Usage 6", u"PKR\u00A0123.57", PKR_changed);
         delete fmt;
     }
 }
@@ -8911,6 +8943,21 @@ void NumberFormatTest::Test11626_CustomizeCurrencyPluralInfo() {
     assertEquals("Plural other", u"99 америчких долара", df.format(99, result.remove(), errorCode));
 }
 
+void NumberFormatTest::Test20073_StrictPercentParseErrorIndex() {
+    IcuTestErrorCode status(*this, "Test20073_StrictPercentParseErrorIndex");
+    ParsePosition parsePosition(0);
+    DecimalFormat df(u"0%", {"en-us", status}, status);
+    if (U_FAILURE(status)) {
+        dataerrln("Unable to create DecimalFormat instance.");
+        return;
+    }
+    df.setLenient(FALSE);
+    Formattable result;
+    df.parse(u"%2%", result, parsePosition);
+    assertEquals("", 0, parsePosition.getIndex());
+    assertEquals("", 0, parsePosition.getErrorIndex());
+}
+
 void NumberFormatTest::Test13056_GroupingSize() {
     UErrorCode status = U_ZERO_ERROR;
     DecimalFormat df(u"#,##0", status);
@@ -9155,6 +9202,32 @@ void NumberFormatTest::Test13804_EmptyStringsWhenParsing() {
     }
 }
 
+void NumberFormatTest::Test20037_ScientificIntegerOverflow() {
+    IcuTestErrorCode status(*this, "Test20037_ScientificIntegerOverflow");
+
+    LocalPointer<NumberFormat> nf(NumberFormat::createInstance(status));
+    if (U_FAILURE(status)) {
+        dataerrln("Unable to create NumberFormat instance.");
+        return;
+    }
+    Formattable result;
+
+    // Test overflow of exponent
+    nf->parse(u"1E-2147483648", result, status);
+    StringPiece sp = result.getDecimalNumber(status);
+    assertEquals(u"Should snap to zero",
+                 u"0",
+                 {sp.data(), sp.length(), US_INV});
+
+    // Test edge case overflow of exponent
+    result = Formattable();
+    nf->parse(u"1E-2147483647E-1", result, status);
+    sp = result.getDecimalNumber(status);
+    assertEquals(u"Should not overflow and should parse only the first exponent",
+                 u"1E-2147483647",
+                 {sp.data(), sp.length(), US_INV});
+}
+
 void NumberFormatTest::Test13840_ParseLongStringCrash() {
     IcuTestErrorCode status(*this, "Test13840_ParseLongStringCrash");
 
@@ -9185,4 +9258,43 @@ void NumberFormatTest::Test13840_ParseLongStringCrash() {
     assertEquals("Should round-trip without crashing", expectedUString, actualUString);
 }
 
+void NumberFormatTest::Test13850_EmptyStringCurrency() {
+    IcuTestErrorCode status(*this, "Test13840_EmptyStringCurrency");
+
+    struct TestCase {
+        const char16_t* currencyArg;
+        UErrorCode expectedError;
+    } cases[] = {
+        {u"", U_ZERO_ERROR},
+        {u"U", U_ILLEGAL_ARGUMENT_ERROR},
+        {u"Us", U_ILLEGAL_ARGUMENT_ERROR},
+        {nullptr, U_ZERO_ERROR},
+        {u"U$D", U_INVARIANT_CONVERSION_ERROR},
+        {u"Xxx", U_ZERO_ERROR}
+    };
+    for (const auto& cas : cases) {
+        UnicodeString message(u"with currency arg: ");
+        if (cas.currencyArg == nullptr) {
+            message += u"nullptr";
+        } else {
+            message += UnicodeString(cas.currencyArg);
+        }
+        status.setScope(message);
+        LocalPointer<NumberFormat> nf(NumberFormat::createCurrencyInstance("en-US", status), status);
+        if (status.errIfFailureAndReset()) { return; }
+        UnicodeString actual;
+        nf->format(1, actual, status);
+        status.errIfFailureAndReset();
+        assertEquals(u"Should format with US currency " + message, u"$1.00", actual);
+        nf->setCurrency(cas.currencyArg, status);
+        if (status.expectErrorAndReset(cas.expectedError)) {
+            // If an error occurred, do not check formatting.
+            continue;
+        }
+        nf->format(1, actual.remove(), status);
+        assertEquals(u"Should unset the currency " + message, u"\u00A41.00", actual);
+        status.errIfFailureAndReset();
+    }
+}
+
 #endif /* #if !UCONFIG_NO_FORMATTING */
index b51e752517e509ee4ac3398f642d6119289d31f1..9d255383243bda3fe733ff123f594514306d181e 100644 (file)
@@ -266,6 +266,7 @@ class NumberFormatTest: public CalendarTimeZoneTest {
     void Test11645_ApplyPatternEquality();
     void Test12567();
     void Test11626_CustomizeCurrencyPluralInfo();
+    void Test20073_StrictPercentParseErrorIndex();
     void Test13056_GroupingSize();
     void Test11025_CurrencyPadding();
     void Test11648_ExpDecFormatMalPattern();
@@ -279,7 +280,9 @@ class NumberFormatTest: public CalendarTimeZoneTest {
     void Test13763_FieldPositionIteratorOffset();
     void Test13777_ParseLongNameNonCurrencyMode();
     void Test13804_EmptyStringsWhenParsing();
+    void Test20037_ScientificIntegerOverflow();
     void Test13840_ParseLongStringCrash();
+    void Test13850_EmptyStringCurrency();
 
  private:
     UBool testFormattableAsUFormattable(const char *file, int line, Formattable &f);
index 482704537d47295601f43ed46b07f16839570058..2cfc4eecd60b1da3caf9aaba99d5a9212b831ae6 100644 (file)
@@ -11,6 +11,7 @@
 
 #include "numrgts.h"
 
+#include <cmath>   // std::signbit
 #include <float.h> // DBL_MIN, DBL_MAX
 #include <stdio.h>
 
@@ -548,8 +549,8 @@ void NumberFormatRegressionTest::Test4086575(void)
     // nbsp = \u00a0
     //nf->applyLocalizedPattern("#\u00a0###,00;(#\u00a0###,00)");
     UChar patChars[] = {
-             0x23, 0x00a0, 0x23, 0x23, 0x23, 0x2c, 0x30, 0x30, 0x3b, 
-        0x28, 0x23, 0x00a0, 0x23, 0x23, 0x23, 0x2c, 0x30, 0x30, 0x29
+             0x23, 0x202f, 0x23, 0x23, 0x23, 0x2c, 0x30, 0x30, 0x3b, 
+        0x28, 0x23, 0x202f, 0x23, 0x23, 0x23, 0x2c, 0x30, 0x30, 0x29
     };
     UnicodeString pat(patChars, 19, 19);
     nf->applyLocalizedPattern(pat, status);
@@ -560,7 +561,7 @@ void NumberFormatRegressionTest::Test4086575(void)
     buffer = nf->format((int32_t)1234, buffer, pos);
     //if (buffer != UnicodeString("1\u00a0234,00"))
     UChar c[] = {
-        0x31, 0x00a0, 0x32, 0x33, 0x34, 0x2c, 0x30, 0x30
+        0x31, 0x202f, 0x32, 0x33, 0x34, 0x2c, 0x30, 0x30
     };
     UnicodeString cc(c, 8, 8);
     if (buffer != cc)
@@ -569,7 +570,7 @@ void NumberFormatRegressionTest::Test4086575(void)
     buffer.remove();
     buffer = nf->format((int32_t)-1234, buffer, pos);
     UChar c1[] = {
-        0x28, 0x31, 0x00a0, 0x32, 0x33, 0x34, 0x2c, 0x30, 0x30, 0x29
+        0x28, 0x31, 0x202f, 0x32, 0x33, 0x34, 0x2c, 0x30, 0x30, 0x29
     };
     UnicodeString cc1(c1, 10, 10);
     if (buffer != cc1)
@@ -898,18 +899,18 @@ void NumberFormatRegressionTest::Test4070798 (void)
     UnicodeString tempString;
     
     /* User error :
-    String expectedDefault = "-5\u00a0789,987";
-    String expectedCurrency = "5\u00a0789,98\u00a0F";
-    String expectedPercent = "-578\u00a0998%";
+    String expectedDefault = "-5\u202f789,987";
+    String expectedCurrency = "5\u202f789,98\u00a0F";
+    String expectedPercent = "-578\u202f998%";
     */
     UChar chars1 [] = {
-        0x2d, 0x35, 0x00a0, 0x37, 0x38, 0x39, 0x2c, 0x39, 0x38, 0x38
+        0x2d, 0x35, 0x202f, 0x37, 0x38, 0x39, 0x2c, 0x39, 0x38, 0x38
     };
     UChar chars2 [] = {
-        0x35, 0x00a0, 0x37, 0x38, 0x39, 0x2c, 0x39, 0x39, 0x00a0, 0x46
+        0x35, 0x202f, 0x37, 0x38, 0x39, 0x2c, 0x39, 0x39, 0x00a0, 0x46
     };
     UChar chars3 [] = {
-        0x2d, 0x35, 0x37, 0x38, 0x00a0, 0x39, 0x39, 0x39, 0x00a0, 0x25
+        0x2d, 0x35, 0x37, 0x38, 0x202f, 0x39, 0x39, 0x39, 0x00a0, 0x25
     };
     UnicodeString expectedDefault(chars1, 10, 10);
     UnicodeString expectedCurrency(chars2, 10, 10);
@@ -2142,8 +2143,9 @@ NumberFormatRegressionTest::Test4162852(void)
 {
     UErrorCode status = U_ZERO_ERROR;
     for(int32_t i=0; i < 2; ++i) {
-        NumberFormat *f = (i == 0) ? NumberFormat::createInstance(status)
-            : NumberFormat::createPercentInstance(status);
+        LocalPointer<NumberFormat> f(
+            ((i == 0) ? NumberFormat::createInstance(status) : NumberFormat::createPercentInstance(status)),
+            status);
         if(U_FAILURE(status)) {
             dataerrln("Couldn't create number format - %s", u_errorName(status));
             return;
@@ -2154,20 +2156,19 @@ NumberFormatRegressionTest::Test4162852(void)
         f->format(d, s);
         Formattable n;
         f->parse(s, n, status);
-        if(U_FAILURE(status))
+        if(U_FAILURE(status)) {
             errln("Couldn't parse!");
+            return;
+        }
         double e = n.getDouble();
-        logln(UnicodeString("") +
-              d + " -> " +
-              '"' + s + '"' + " -> " + e);
+        logln("%f -> \"%s\" -> %f", d, CStr(s)(), e);
 #if (U_PLATFORM == U_PF_OS390 && !defined(IEEE_754)) || U_PLATFORM == U_PF_OS400
         if (e != 0.0) {
 #else
-        if (e != 0.0 || 1.0/e > 0.0) {
+        if (e != 0.0 || (std::signbit(e) == false)) {
 #endif
-            logln("Failed to parse negative zero");
+            errln("Failed to parse negative zero");
         }
-        delete f;
     }
 }
 
index f4fb7016dc306e2abd6ecc29cfd97e3f5562582e..2a45ae6fad21751cddc72151b11e72fe92aef202 100644 (file)
@@ -184,6 +184,14 @@ void BreakRules::addRule(const UnicodeString &name, const UnicodeString &definit
     }
     fSetRefsMatcher->appendTail(thisRule->fExpandedRule);
 
+    // If rule begins with a '^' rule chaining is disallowed.
+    // Strip off the '^' from the rule expression, and set the flag.
+    if (thisRule->fExpandedRule.charAt(0) == u'^') {
+        thisRule->fInitialMatchOnly = true;
+        thisRule->fExpandedRule.remove(0, 1);
+        thisRule->fExpandedRule.trim();
+    }
+
     // Replace the divide sign (\u00f7) with a regular expression named capture.
     // When running the rules, a match that includes this group means we found a break position.
 
@@ -442,6 +450,8 @@ void MonkeyTestData::set(BreakRules *rules, IntlTest::icu_rand &rand, UErrorCode
                                              // ICU always reports a break there.
                                              // The reference rules do not have a means to do so.
     int32_t strIdx = 0;
+    bool    initialMatch = true;             // True at start of text, and immediately after each boundary,
+                                             // for control over rule chaining.
     while (strIdx < fString.length()) {
         BreakRule *matchingRule = NULL;
         UBool      hasBreak = FALSE;
@@ -451,6 +461,10 @@ void MonkeyTestData::set(BreakRules *rules, IntlTest::icu_rand &rand, UErrorCode
         int32_t breakGroup = 0;
         for (ruleNum=0; ruleNum<rules->fBreakRules.size(); ruleNum++) {
             BreakRule *rule = static_cast<BreakRule *>(rules->fBreakRules.elementAt(ruleNum));
+            if (rule->fInitialMatchOnly && !initialMatch) {
+                // Skip checking this '^' rule. (No rule chaining)
+                continue;
+            }
             rule->fRuleMatcher->reset();
             if (rule->fRuleMatcher->lookingAt(strIdx, status)) {
                 // A candidate rule match, check further to see if we take it or continue to check other rules.
@@ -512,10 +526,12 @@ void MonkeyTestData::set(BreakRules *rules, IntlTest::icu_rand &rand, UErrorCode
             // which may differ from end of the match. The matching rule may have included
             // context following the boundary that needs to be looked at again.
             strIdx = matchingRule->fRuleMatcher->end(breakGroup, status);
+            initialMatch = true;
         } else {
             // Original rule didn't specify a break.
             // Continue applying rules starting on the last code point of this match.
             strIdx = fString.moveIndex32(matchEnd, -1);
+            initialMatch = false;
             if (strIdx == matchStart) {
                 // Match was only one code point, no progress if we continue.
                 // Shouldn't get here, case is filtered out at top of loop.
index 2ddc2bd47ae67190172b5952e900ddda40b4b922..54d23fcceae78045a11a8f883fcbcf0960a985bf 100644 (file)
@@ -102,6 +102,7 @@ class BreakRule: public UObject {
     UnicodeString    fRule;                            // Rule expression, excluding the name, as written in user source.
     UnicodeString    fExpandedRule;                    // Rule expression after expanding the set definitions.
     LocalPointer<RegexMatcher>  fRuleMatcher;          // Regular expression that matches the rule.
+    bool             fInitialMatchOnly = false;        // True if rule begins with '^', meaning no chaining.
 };
 
 
index 5463dad247181dd96ddc4607b3bb168d216af527..048e2bb8ed51cd8b0393a1106aa1adeb3c6f795b 100644 (file)
@@ -1283,35 +1283,40 @@ void RBBITest::TestUnicodeFiles() {
 
 
 // Check for test cases from the Unicode test data files that are known to fail
-// and should be skipped because ICU is not yet able to fully implement the spec.
-// See ticket #7270.
+// and should be skipped as known issues because ICU does not fully implement
+// the Unicode specifications, or because ICU includes tailorings that differ from
+// the Unicode standard.
+//
+// Test cases are identified by the test data sequence, which tends to be more stable
+// across Unicode versions than the test file line numbers.
+//
+// The test case with ticket "10666" is a dummy, included as an example.
 
 UBool RBBITest::testCaseIsKnownIssue(const UnicodeString &testCase, const char *fileName) {
     static struct TestCase {
+        const char *fTicketNum;
         const char *fFileName;
         const UChar *fString;
-    } badTestCases[] = {                                // Line Numbers from Unicode 7.0.0 file.
-        {"LineBreakTest.txt", u"\u200B\u0020}"},        // Line 5198
-        {"LineBreakTest.txt", u"\u200B\u0020)"},        // Line 5202
-        {"LineBreakTest.txt", u"\u200B\u0020!"},        // Line 5214
-        {"LineBreakTest.txt", u"\u200B\u0020,"},        // Line 5246
-        {"LineBreakTest.txt", u"\u200B\u0020/"},        // Line 5298
-        {"LineBreakTest.txt", u"\u200B\u0020\u2060"},   // Line 5302
-                                                        // Line Numbers from pre-release verion of GraphemeBreakTest-10.0.0.txt
-        {"GraphemeBreakTest.txt", u"\u200D\u2640"},     // Line 656, old GB 11 test ZWJ x GAZ
-        {"GraphemeBreakTest.txt", u"\u200D\U0001F466"}, // Line 658, old GB 11 test ZWJ x EBG
-        {"GraphemeBreakTest.txt", u"\u200D\U0001F466\U0001F3FB"}, // Line 842, old GB 11 test ZWJ x EBG x EModifier
-
-                                                        // Line Numbers from pre-release verion of WordBreakTest-10.0.0.txt
-        {"WordBreakTest.txt", u"\u200D\u261D"},         // Line 1356, ZWJ x EmojiNRK
-        {"WordBreakTest.txt", u"\u200D\U0001F3FB"},     // Line 1358, ZWJ x EmojiNRK
+    } badTestCases[] = {
+        {"10666", "GraphemeBreakTest.txt", u"\u0020\u0020\u0033"},    // Fake example, for illustration.
+        // Issue 8151, move the Finnish tailoring of the line break of hyphens to root.
+        // This probably ultimately wants to be resolved by updating UAX-14, but in the mean time
+        // ICU is out of sync with Unicode.
+        {"8151",  "LineBreakTest.txt", u"-#"},
+        {"8151",  "LineBreakTest.txt", u"\u002d\u0308\u0023"},
+        {"8151",  "LineBreakTest.txt", u"\u002d\u00a7"},
+        {"8151",  "LineBreakTest.txt", u"\u002d\u0308\u00a7"},
+        {"8151",  "LineBreakTest.txt", u"\u002d\U00050005"},
+        {"8151",  "LineBreakTest.txt", u"\u002d\u0308\U00050005"},
+        {"8151",  "LineBreakTest.txt", u"\u002d\u0e01"},
+        {"8151",  "LineBreakTest.txt", u"\u002d\u0308\u0e01"},
     };
 
     for (int n=0; n<UPRV_LENGTHOF(badTestCases); n++) {
         const TestCase &badCase = badTestCases[n];
         if (!strcmp(fileName, badCase.fFileName) &&
                 testCase == UnicodeString(badCase.fString)) {
-            return logKnownIssue("7270");
+            return logKnownIssue(badCase.fTicketNum);
         }
     }
     return FALSE;
@@ -2523,6 +2528,7 @@ private:
     UnicodeSet  *fB2;
     UnicodeSet  *fBA;
     UnicodeSet  *fBB;
+    UnicodeSet  *fHH;
     UnicodeSet  *fHY;
     UnicodeSet  *fH2;
     UnicodeSet  *fH3;
@@ -2550,7 +2556,7 @@ private:
     UnicodeSet  *fXX;
     UnicodeSet  *fEB;
     UnicodeSet  *fEM;
-    UnicodeSet  *fZJ;
+    UnicodeSet  *fZWJ;
 
     BreakIterator        *fCharBI;
     const UnicodeString  *fText;
@@ -2587,6 +2593,7 @@ RBBILineMonkey::RBBILineMonkey() :
     fB2    = new UnicodeSet(UNICODE_STRING_SIMPLE("[\\p{Line_break=B2}]"), status);
     fBA    = new UnicodeSet(UNICODE_STRING_SIMPLE("[\\p{Line_break=BA}]"), status);
     fBB    = new UnicodeSet(UNICODE_STRING_SIMPLE("[\\p{Line_break=BB}]"), status);
+    fHH    = new UnicodeSet();
     fHY    = new UnicodeSet(UNICODE_STRING_SIMPLE("[\\p{Line_break=HY}]"), status);
     fH2    = new UnicodeSet(UNICODE_STRING_SIMPLE("[\\p{Line_break=H2}]"), status);
     fH3    = new UnicodeSet(UNICODE_STRING_SIMPLE("[\\p{Line_break=H3}]"), status);
@@ -2615,7 +2622,7 @@ RBBILineMonkey::RBBILineMonkey() :
     fXX    = new UnicodeSet(UNICODE_STRING_SIMPLE("[\\p{Line_break=XX}]"), status);
     fEB    = new UnicodeSet(UNICODE_STRING_SIMPLE("[\\p{Line_break=EB}]"), status);
     fEM    = new UnicodeSet(UNICODE_STRING_SIMPLE("[\\p{Line_break=EM}]"), status);
-    fZJ    = new UnicodeSet(UNICODE_STRING_SIMPLE("[\\p{Line_break=ZWJ}]"), status);
+    fZWJ    = new UnicodeSet(UNICODE_STRING_SIMPLE("[\\p{Line_break=ZWJ}]"), status);
 
     if (U_FAILURE(status)) {
         deferredStatus = status;
@@ -2627,7 +2634,9 @@ RBBILineMonkey::RBBILineMonkey() :
     fAL->addAll(*fSG);     // Default behavior for SG is identical to AL.
 
     fNS->addAll(*fCJ);     // Default behavior for CJ is identical to NS.
-    fCM->addAll(*fZJ);     // ZWJ behaves as a CM.
+    fCM->addAll(*fZWJ);    // ZWJ behaves as a CM.
+
+    fHH->add(u'\u2010');   // Hyphen, '‐'
 
     fSets->addElement(fBK, status);
     fSets->addElement(fCR, status);
@@ -2669,7 +2678,7 @@ RBBILineMonkey::RBBILineMonkey() :
     fSets->addElement(fSG, status);
     fSets->addElement(fEB, status);
     fSets->addElement(fEM, status);
-    fSets->addElement(fZJ, status);
+    fSets->addElement(fZWJ, status);
 
 
     const char *rules =
@@ -2853,7 +2862,13 @@ int32_t RBBILineMonkey::next(int32_t startPos) {
         }
 
         // LB 8  Break after zero width space
-        if (fZW->contains(prevChar)) {
+        //       ZW SP* ÷
+        //       Scan backwards from prevChar for SP* ZW
+        tPos = prevPos;
+        while (tPos>0 && fSP->contains(fText->char32At(tPos))) {
+            tPos = fText->moveIndex32(tPos, -1);
+        }
+        if (fZW->contains(fText->char32At(tPos))) {
             break;
         }
 
@@ -2890,7 +2905,7 @@ int32_t RBBILineMonkey::next(int32_t startPos) {
         {
             int32_t prevIdx = fText->moveIndex32(pos, -1);
             UChar32 prevC = fText->char32At(prevIdx);
-            if (fZJ->contains(prevC)) {
+            if (fZWJ->contains(prevC)) {
                 continue;
             }
         }
@@ -3025,6 +3040,15 @@ int32_t RBBILineMonkey::next(int32_t startPos) {
             break;
         }
 
+        // LB 20.09  Don't break between Hyphens and letters if a break precedes the hyphen.
+        //           Formerly this was a Finnish tailoring.
+        //           Moved to root in ICU 63. This is an ICU customization, not in UAX-14.
+        //    ^($HY | $HH) $AL;
+        if (fAL->contains(thisChar) && (fHY->contains(prevChar) || fHH->contains(prevChar)) &&
+                prevPosX2 == -1) {
+            continue;
+        }
+
         // LB 21
         if (fBA->contains(thisChar) ||
             fHY->contains(thisChar) ||
@@ -3148,12 +3172,16 @@ int32_t RBBILineMonkey::next(int32_t startPos) {
             continue;
         }
 
-        // LB30a    RI RI <break> RI
-        //             RI    x    RI
+        // LB30a    RI RI  ÷  RI
+        //             RI  x  RI
         if (fRI->contains(prevCharX2) && fRI->contains(prevChar) && fRI->contains(thisChar)) {
             break;
         }
         if (fRI->contains(prevChar) && fRI->contains(thisChar)) {
+            // Two Regional Indicators have been paired.
+            // Over-write the trailing one (thisChar) to prevent it from forming another pair with a
+            // following RI. This is a hack.
+            thisChar = -1;
             continue;
         }
 
@@ -3192,6 +3220,7 @@ RBBILineMonkey::~RBBILineMonkey() {
     delete fB2;
     delete fBA;
     delete fBB;
+    delete fHH;
     delete fHY;
     delete fH2;
     delete fH3;
@@ -3220,7 +3249,7 @@ RBBILineMonkey::~RBBILineMonkey() {
     delete fXX;
     delete fEB;
     delete fEM;
-    delete fZJ;
+    delete fZWJ;
 
     delete fCharBI;
     delete fNumberMatcher;
index 20d62f30c04118a8f0a7fc034197920375d899ec..d8a6723bfe353e71d5a82102a09d60c640b14071 100644 (file)
@@ -290,7 +290,7 @@ static KnownRegion knownRegions[] = {
     { "TA" ,  -1, "QO",  URGN_TERRITORY, "009" },
     { "TC" , 796, "029", URGN_TERRITORY, "019" },
     { "TD" , 148, "017", URGN_TERRITORY, "002" },
-    { "TF" , 260, "145", URGN_TERRITORY, "142" },
+    { "TF" , 260, "014", URGN_TERRITORY, "002" },
     { "TG" , 768, "011", URGN_TERRITORY, "002" },
     { "TH" , 764, "035", URGN_TERRITORY, "142" },
     { "TJ" , 762, "143", URGN_TERRITORY, "142" },
index c0765ddc2e3e36e1f444d2559a431d22c43d7987..4481f420cb8c094d7f026b6677273e892c920ee7 100644 (file)
 *
 *******************************************************************************
 */
+#include <memory>
 #include <stdio.h>
 #include <stdlib.h>
+#include <vector>
 
 #include "intltest.h"
 
@@ -24,6 +26,7 @@
 
 static const char *DirectionStr(UDateDirection direction);
 static const char *RelativeUnitStr(UDateRelativeUnit unit);
+static const char *RelativeDateTimeUnitStr(URelativeDateTimeUnit unit);
 static const char *AbsoluteUnitStr(UDateAbsoluteUnit unit);
 
 typedef struct WithQuantityExpected {
@@ -244,6 +247,7 @@ static WithoutQuantityExpected kEnglishNoQuantity[] = {
         {UDAT_DIRECTION_NEXT, UDAT_ABSOLUTE_DAY, "tomorrow"},
         {UDAT_DIRECTION_NEXT, UDAT_ABSOLUTE_WEEK, "next week"},
         {UDAT_DIRECTION_NEXT, UDAT_ABSOLUTE_MONTH, "next month"},
+        {UDAT_DIRECTION_NEXT, UDAT_ABSOLUTE_QUARTER, "next quarter"},
         {UDAT_DIRECTION_NEXT, UDAT_ABSOLUTE_YEAR, "next year"},
         {UDAT_DIRECTION_NEXT, UDAT_ABSOLUTE_MONDAY, "next Monday"},
         {UDAT_DIRECTION_NEXT, UDAT_ABSOLUTE_TUESDAY, "next Tuesday"},
@@ -258,6 +262,7 @@ static WithoutQuantityExpected kEnglishNoQuantity[] = {
         {UDAT_DIRECTION_LAST, UDAT_ABSOLUTE_DAY, "yesterday"},
         {UDAT_DIRECTION_LAST, UDAT_ABSOLUTE_WEEK, "last week"},
         {UDAT_DIRECTION_LAST, UDAT_ABSOLUTE_MONTH, "last month"},
+        {UDAT_DIRECTION_LAST, UDAT_ABSOLUTE_QUARTER, "last quarter"},
         {UDAT_DIRECTION_LAST, UDAT_ABSOLUTE_YEAR, "last year"},
         {UDAT_DIRECTION_LAST, UDAT_ABSOLUTE_MONDAY, "last Monday"},
         {UDAT_DIRECTION_LAST, UDAT_ABSOLUTE_TUESDAY, "last Tuesday"},
@@ -270,6 +275,7 @@ static WithoutQuantityExpected kEnglishNoQuantity[] = {
         {UDAT_DIRECTION_THIS, UDAT_ABSOLUTE_DAY, "today"},
         {UDAT_DIRECTION_THIS, UDAT_ABSOLUTE_WEEK, "this week"},
         {UDAT_DIRECTION_THIS, UDAT_ABSOLUTE_MONTH, "this month"},
+        {UDAT_DIRECTION_THIS, UDAT_ABSOLUTE_QUARTER, "this quarter"},
         {UDAT_DIRECTION_THIS, UDAT_ABSOLUTE_YEAR, "this year"},
         {UDAT_DIRECTION_THIS, UDAT_ABSOLUTE_MONDAY, "this Monday"},
         {UDAT_DIRECTION_THIS, UDAT_ABSOLUTE_TUESDAY, "this Tuesday"},
@@ -282,6 +288,7 @@ static WithoutQuantityExpected kEnglishNoQuantity[] = {
         {UDAT_DIRECTION_PLAIN, UDAT_ABSOLUTE_DAY, "day"},
         {UDAT_DIRECTION_PLAIN, UDAT_ABSOLUTE_WEEK, "week"},
         {UDAT_DIRECTION_PLAIN, UDAT_ABSOLUTE_MONTH, "month"},
+        {UDAT_DIRECTION_PLAIN, UDAT_ABSOLUTE_QUARTER, "quarter"},
         {UDAT_DIRECTION_PLAIN, UDAT_ABSOLUTE_YEAR, "year"},
         {UDAT_DIRECTION_PLAIN, UDAT_ABSOLUTE_MONDAY, "Monday"},
         {UDAT_DIRECTION_PLAIN, UDAT_ABSOLUTE_TUESDAY, "Tuesday"},
@@ -300,6 +307,7 @@ static WithoutQuantityExpected kEnglishNoQuantityCaps[] = {
         {UDAT_DIRECTION_NEXT, UDAT_ABSOLUTE_DAY, "Tomorrow"},
         {UDAT_DIRECTION_NEXT, UDAT_ABSOLUTE_WEEK, "Next week"},
         {UDAT_DIRECTION_NEXT, UDAT_ABSOLUTE_MONTH, "Next month"},
+        {UDAT_DIRECTION_NEXT, UDAT_ABSOLUTE_QUARTER, "Next quarter"},
         {UDAT_DIRECTION_NEXT, UDAT_ABSOLUTE_YEAR, "Next year"},
         {UDAT_DIRECTION_NEXT, UDAT_ABSOLUTE_MONDAY, "Next Monday"},
         {UDAT_DIRECTION_NEXT, UDAT_ABSOLUTE_TUESDAY, "Next Tuesday"},
@@ -314,6 +322,7 @@ static WithoutQuantityExpected kEnglishNoQuantityCaps[] = {
         {UDAT_DIRECTION_LAST, UDAT_ABSOLUTE_DAY, "Yesterday"},
         {UDAT_DIRECTION_LAST, UDAT_ABSOLUTE_WEEK, "Last week"},
         {UDAT_DIRECTION_LAST, UDAT_ABSOLUTE_MONTH, "Last month"},
+        {UDAT_DIRECTION_LAST, UDAT_ABSOLUTE_QUARTER, "Last quarter"},
         {UDAT_DIRECTION_LAST, UDAT_ABSOLUTE_YEAR, "Last year"},
         {UDAT_DIRECTION_LAST, UDAT_ABSOLUTE_MONDAY, "Last Monday"},
         {UDAT_DIRECTION_LAST, UDAT_ABSOLUTE_TUESDAY, "Last Tuesday"},
@@ -326,6 +335,7 @@ static WithoutQuantityExpected kEnglishNoQuantityCaps[] = {
         {UDAT_DIRECTION_THIS, UDAT_ABSOLUTE_DAY, "Today"},
         {UDAT_DIRECTION_THIS, UDAT_ABSOLUTE_WEEK, "This week"},
         {UDAT_DIRECTION_THIS, UDAT_ABSOLUTE_MONTH, "This month"},
+        {UDAT_DIRECTION_THIS, UDAT_ABSOLUTE_QUARTER, "This quarter"},
         {UDAT_DIRECTION_THIS, UDAT_ABSOLUTE_YEAR, "This year"},
         {UDAT_DIRECTION_THIS, UDAT_ABSOLUTE_MONDAY, "This Monday"},
         {UDAT_DIRECTION_THIS, UDAT_ABSOLUTE_TUESDAY, "This Tuesday"},
@@ -338,6 +348,7 @@ static WithoutQuantityExpected kEnglishNoQuantityCaps[] = {
         {UDAT_DIRECTION_PLAIN, UDAT_ABSOLUTE_DAY, "Day"},
         {UDAT_DIRECTION_PLAIN, UDAT_ABSOLUTE_WEEK, "Week"},
         {UDAT_DIRECTION_PLAIN, UDAT_ABSOLUTE_MONTH, "Month"},
+        {UDAT_DIRECTION_PLAIN, UDAT_ABSOLUTE_QUARTER, "Quarter"},
         {UDAT_DIRECTION_PLAIN, UDAT_ABSOLUTE_YEAR, "Year"},
         {UDAT_DIRECTION_PLAIN, UDAT_ABSOLUTE_MONDAY, "Monday"},
         {UDAT_DIRECTION_PLAIN, UDAT_ABSOLUTE_TUESDAY, "Tuesday"},
@@ -356,6 +367,7 @@ static WithoutQuantityExpected kEnglishNoQuantityShort[] = {
         {UDAT_DIRECTION_NEXT, UDAT_ABSOLUTE_DAY, "tomorrow"},
         {UDAT_DIRECTION_NEXT, UDAT_ABSOLUTE_WEEK, "next wk."},
         {UDAT_DIRECTION_NEXT, UDAT_ABSOLUTE_MONTH, "next mo."},
+        {UDAT_DIRECTION_NEXT, UDAT_ABSOLUTE_QUARTER, "next qtr."},
         {UDAT_DIRECTION_NEXT, UDAT_ABSOLUTE_YEAR, "next yr."},
         {UDAT_DIRECTION_NEXT, UDAT_ABSOLUTE_MONDAY, "next Mon."},
         {UDAT_DIRECTION_NEXT, UDAT_ABSOLUTE_TUESDAY, "next Tue."},
@@ -370,6 +382,7 @@ static WithoutQuantityExpected kEnglishNoQuantityShort[] = {
         {UDAT_DIRECTION_LAST, UDAT_ABSOLUTE_DAY, "yesterday"},
         {UDAT_DIRECTION_LAST, UDAT_ABSOLUTE_WEEK, "last wk."},
         {UDAT_DIRECTION_LAST, UDAT_ABSOLUTE_MONTH, "last mo."},
+        {UDAT_DIRECTION_LAST, UDAT_ABSOLUTE_QUARTER, "last qtr."},
         {UDAT_DIRECTION_LAST, UDAT_ABSOLUTE_YEAR, "last yr."},
         {UDAT_DIRECTION_LAST, UDAT_ABSOLUTE_MONDAY, "last Mon."},
         {UDAT_DIRECTION_LAST, UDAT_ABSOLUTE_TUESDAY, "last Tue."},
@@ -382,6 +395,7 @@ static WithoutQuantityExpected kEnglishNoQuantityShort[] = {
         {UDAT_DIRECTION_THIS, UDAT_ABSOLUTE_DAY, "today"},
         {UDAT_DIRECTION_THIS, UDAT_ABSOLUTE_WEEK, "this wk."},
         {UDAT_DIRECTION_THIS, UDAT_ABSOLUTE_MONTH, "this mo."},
+        {UDAT_DIRECTION_THIS, UDAT_ABSOLUTE_QUARTER, "this qtr."},
         {UDAT_DIRECTION_THIS, UDAT_ABSOLUTE_YEAR, "this yr."},
         {UDAT_DIRECTION_THIS, UDAT_ABSOLUTE_MONDAY, "this Mon."},
         {UDAT_DIRECTION_THIS, UDAT_ABSOLUTE_TUESDAY, "this Tue."},
@@ -394,6 +408,7 @@ static WithoutQuantityExpected kEnglishNoQuantityShort[] = {
         {UDAT_DIRECTION_PLAIN, UDAT_ABSOLUTE_DAY, "day"},
         {UDAT_DIRECTION_PLAIN, UDAT_ABSOLUTE_WEEK, "wk."},
         {UDAT_DIRECTION_PLAIN, UDAT_ABSOLUTE_MONTH, "mo."},
+        {UDAT_DIRECTION_PLAIN, UDAT_ABSOLUTE_QUARTER, "qtr."},
         {UDAT_DIRECTION_PLAIN, UDAT_ABSOLUTE_YEAR, "yr."},
         {UDAT_DIRECTION_PLAIN, UDAT_ABSOLUTE_MONDAY, "Mo"},
         {UDAT_DIRECTION_PLAIN, UDAT_ABSOLUTE_TUESDAY, "Tu"},
@@ -412,6 +427,7 @@ static WithoutQuantityExpected kEnglishNoQuantityNarrow[] = {
         {UDAT_DIRECTION_NEXT, UDAT_ABSOLUTE_DAY, "tomorrow"},
         {UDAT_DIRECTION_NEXT, UDAT_ABSOLUTE_WEEK, "next wk."},
         {UDAT_DIRECTION_NEXT, UDAT_ABSOLUTE_MONTH, "next mo."},
+        {UDAT_DIRECTION_NEXT, UDAT_ABSOLUTE_QUARTER, "next qtr."},
         {UDAT_DIRECTION_NEXT, UDAT_ABSOLUTE_YEAR, "next yr."},
         {UDAT_DIRECTION_NEXT, UDAT_ABSOLUTE_MONDAY, "next M"},
         {UDAT_DIRECTION_NEXT, UDAT_ABSOLUTE_TUESDAY, "next Tu"},
@@ -426,6 +442,7 @@ static WithoutQuantityExpected kEnglishNoQuantityNarrow[] = {
         {UDAT_DIRECTION_LAST, UDAT_ABSOLUTE_DAY, "yesterday"},
         {UDAT_DIRECTION_LAST, UDAT_ABSOLUTE_WEEK, "last wk."},
         {UDAT_DIRECTION_LAST, UDAT_ABSOLUTE_MONTH, "last mo."},
+        {UDAT_DIRECTION_LAST, UDAT_ABSOLUTE_QUARTER, "last qtr."},
         {UDAT_DIRECTION_LAST, UDAT_ABSOLUTE_YEAR, "last yr."},
         {UDAT_DIRECTION_LAST, UDAT_ABSOLUTE_MONDAY, "last M"},
         {UDAT_DIRECTION_LAST, UDAT_ABSOLUTE_TUESDAY, "last Tu"},
@@ -438,6 +455,7 @@ static WithoutQuantityExpected kEnglishNoQuantityNarrow[] = {
         {UDAT_DIRECTION_THIS, UDAT_ABSOLUTE_DAY, "today"},
         {UDAT_DIRECTION_THIS, UDAT_ABSOLUTE_WEEK, "this wk."},
         {UDAT_DIRECTION_THIS, UDAT_ABSOLUTE_MONTH, "this mo."},
+        {UDAT_DIRECTION_THIS, UDAT_ABSOLUTE_QUARTER, "this qtr."},
         {UDAT_DIRECTION_THIS, UDAT_ABSOLUTE_YEAR, "this yr."},
         {UDAT_DIRECTION_THIS, UDAT_ABSOLUTE_MONDAY, "this M"},
         {UDAT_DIRECTION_THIS, UDAT_ABSOLUTE_TUESDAY, "this Tu"},
@@ -450,6 +468,7 @@ static WithoutQuantityExpected kEnglishNoQuantityNarrow[] = {
         {UDAT_DIRECTION_PLAIN, UDAT_ABSOLUTE_DAY, "day"},
         {UDAT_DIRECTION_PLAIN, UDAT_ABSOLUTE_WEEK, "wk."},
         {UDAT_DIRECTION_PLAIN, UDAT_ABSOLUTE_MONTH, "mo."},
+        {UDAT_DIRECTION_PLAIN, UDAT_ABSOLUTE_QUARTER, "qtr."},
         {UDAT_DIRECTION_PLAIN, UDAT_ABSOLUTE_YEAR, "yr."},
         {UDAT_DIRECTION_PLAIN, UDAT_ABSOLUTE_MONDAY, "M"},
         {UDAT_DIRECTION_PLAIN, UDAT_ABSOLUTE_TUESDAY, "T"},
@@ -467,6 +486,261 @@ static WithoutQuantityExpected kSpanishNoQuantity[] = {
         {UDAT_DIRECTION_LAST_2, UDAT_ABSOLUTE_DAY, "anteayer"}
 };
 
+typedef struct WithQuantityExpectedRelativeDateTimeUnit {
+    double value;
+    URelativeDateTimeUnit unit;
+    const char *expected;
+} WithQuantityExpectedRelativeDateTimeUnit;
+
+static WithQuantityExpectedRelativeDateTimeUnit kEnglishFormatNumeric[] = {
+        {0.0, UDAT_REL_UNIT_SECOND, "in 0 seconds"},
+        {0.5, UDAT_REL_UNIT_SECOND, "in 0.5 seconds"},
+        {1.0, UDAT_REL_UNIT_SECOND, "in 1 second"},
+        {2.0, UDAT_REL_UNIT_SECOND, "in 2 seconds"},
+        {0.0, UDAT_REL_UNIT_MINUTE, "in 0 minutes"},
+        {0.5, UDAT_REL_UNIT_MINUTE, "in 0.5 minutes"},
+        {1.0, UDAT_REL_UNIT_MINUTE, "in 1 minute"},
+        {2.0, UDAT_REL_UNIT_MINUTE, "in 2 minutes"},
+        {0.0, UDAT_REL_UNIT_HOUR, "in 0 hours"},
+        {0.5, UDAT_REL_UNIT_HOUR, "in 0.5 hours"},
+        {1.0, UDAT_REL_UNIT_HOUR, "in 1 hour"},
+        {2.0, UDAT_REL_UNIT_HOUR, "in 2 hours"},
+        {0.0, UDAT_REL_UNIT_DAY, "in 0 days"},
+        {0.5, UDAT_REL_UNIT_DAY, "in 0.5 days"},
+        {1.0, UDAT_REL_UNIT_DAY, "in 1 day"},
+        {2.0, UDAT_REL_UNIT_DAY, "in 2 days"},
+        {0.0, UDAT_REL_UNIT_WEEK, "in 0 weeks"},
+        {0.5, UDAT_REL_UNIT_WEEK, "in 0.5 weeks"},
+        {1.0, UDAT_REL_UNIT_WEEK, "in 1 week"},
+        {2.0, UDAT_REL_UNIT_WEEK, "in 2 weeks"},
+        {0.0, UDAT_REL_UNIT_MONTH, "in 0 months"},
+        {0.5, UDAT_REL_UNIT_MONTH, "in 0.5 months"},
+        {1.0, UDAT_REL_UNIT_MONTH, "in 1 month"},
+        {2.0, UDAT_REL_UNIT_MONTH, "in 2 months"},
+        {0.0, UDAT_REL_UNIT_QUARTER, "in 0 quarters"},
+        {0.5, UDAT_REL_UNIT_QUARTER, "in 0.5 quarters"},
+        {1.0, UDAT_REL_UNIT_QUARTER, "in 1 quarter"},
+        {2.0, UDAT_REL_UNIT_QUARTER, "in 2 quarters"},
+        {0.0, UDAT_REL_UNIT_YEAR, "in 0 years"},
+        {0.5, UDAT_REL_UNIT_YEAR, "in 0.5 years"},
+        {1.0, UDAT_REL_UNIT_YEAR, "in 1 year"},
+        {2.0, UDAT_REL_UNIT_YEAR, "in 2 years"},
+        {0.0, UDAT_REL_UNIT_SUNDAY, "in 0 Sundays"},
+        {0.5, UDAT_REL_UNIT_SUNDAY, "in 0.5 Sundays"},
+        {1.0, UDAT_REL_UNIT_SUNDAY, "in 1 Sunday"},
+        {2.0, UDAT_REL_UNIT_SUNDAY, "in 2 Sundays"},
+        {0.0, UDAT_REL_UNIT_MONDAY, "in 0 Mondays"},
+        {0.5, UDAT_REL_UNIT_MONDAY, "in 0.5 Mondays"},
+        {1.0, UDAT_REL_UNIT_MONDAY, "in 1 Monday"},
+        {2.0, UDAT_REL_UNIT_MONDAY, "in 2 Mondays"},
+        {0.0, UDAT_REL_UNIT_TUESDAY, "in 0 Tuesdays"},
+        {0.5, UDAT_REL_UNIT_TUESDAY, "in 0.5 Tuesdays"},
+        {1.0, UDAT_REL_UNIT_TUESDAY, "in 1 Tuesday"},
+        {2.0, UDAT_REL_UNIT_TUESDAY, "in 2 Tuesdays"},
+        {0.0, UDAT_REL_UNIT_WEDNESDAY, "in 0 Wednesdays"},
+        {0.5, UDAT_REL_UNIT_WEDNESDAY, "in 0.5 Wednesdays"},
+        {1.0, UDAT_REL_UNIT_WEDNESDAY, "in 1 Wednesday"},
+        {2.0, UDAT_REL_UNIT_WEDNESDAY, "in 2 Wednesdays"},
+        {0.0, UDAT_REL_UNIT_THURSDAY, "in 0 Thursdays"},
+        {0.5, UDAT_REL_UNIT_THURSDAY, "in 0.5 Thursdays"},
+        {1.0, UDAT_REL_UNIT_THURSDAY, "in 1 Thursday"},
+        {2.0, UDAT_REL_UNIT_THURSDAY, "in 2 Thursdays"},
+        {0.0, UDAT_REL_UNIT_FRIDAY, "in 0 Fridays"},
+        {0.5, UDAT_REL_UNIT_FRIDAY, "in 0.5 Fridays"},
+        {1.0, UDAT_REL_UNIT_FRIDAY, "in 1 Friday"},
+        {2.0, UDAT_REL_UNIT_FRIDAY, "in 2 Fridays"},
+        {0.0, UDAT_REL_UNIT_SATURDAY, "in 0 Saturdays"},
+        {0.5, UDAT_REL_UNIT_SATURDAY, "in 0.5 Saturdays"},
+        {1.0, UDAT_REL_UNIT_SATURDAY, "in 1 Saturday"},
+        {2.0, UDAT_REL_UNIT_SATURDAY, "in 2 Saturdays"},
+
+        {-0.0, UDAT_REL_UNIT_SECOND, "0 seconds ago"},
+        {-0.5, UDAT_REL_UNIT_SECOND, "0.5 seconds ago"},
+        {-1.0, UDAT_REL_UNIT_SECOND, "1 second ago"},
+        {-2.0, UDAT_REL_UNIT_SECOND, "2 seconds ago"},
+        {-0.0, UDAT_REL_UNIT_MINUTE, "0 minutes ago"},
+        {-0.5, UDAT_REL_UNIT_MINUTE, "0.5 minutes ago"},
+        {-1.0, UDAT_REL_UNIT_MINUTE, "1 minute ago"},
+        {-2.0, UDAT_REL_UNIT_MINUTE, "2 minutes ago"},
+        {-0.0, UDAT_REL_UNIT_HOUR, "0 hours ago"},
+        {-0.5, UDAT_REL_UNIT_HOUR, "0.5 hours ago"},
+        {-1.0, UDAT_REL_UNIT_HOUR, "1 hour ago"},
+        {-2.0, UDAT_REL_UNIT_HOUR, "2 hours ago"},
+        {-0.0, UDAT_REL_UNIT_DAY, "0 days ago"},
+        {-0.5, UDAT_REL_UNIT_DAY, "0.5 days ago"},
+        {-1.0, UDAT_REL_UNIT_DAY, "1 day ago"},
+        {-2.0, UDAT_REL_UNIT_DAY, "2 days ago"},
+        {-0.0, UDAT_REL_UNIT_WEEK, "0 weeks ago"},
+        {-0.5, UDAT_REL_UNIT_WEEK, "0.5 weeks ago"},
+        {-1.0, UDAT_REL_UNIT_WEEK, "1 week ago"},
+        {-2.0, UDAT_REL_UNIT_WEEK, "2 weeks ago"},
+        {-0.0, UDAT_REL_UNIT_MONTH, "0 months ago"},
+        {-0.5, UDAT_REL_UNIT_MONTH, "0.5 months ago"},
+        {-1.0, UDAT_REL_UNIT_MONTH, "1 month ago"},
+        {-2.0, UDAT_REL_UNIT_MONTH, "2 months ago"},
+        {-0.0, UDAT_REL_UNIT_QUARTER, "0 quarters ago"},
+        {-0.5, UDAT_REL_UNIT_QUARTER, "0.5 quarters ago"},
+        {-1.0, UDAT_REL_UNIT_QUARTER, "1 quarter ago"},
+        {-2.0, UDAT_REL_UNIT_QUARTER, "2 quarters ago"},
+        {-0.0, UDAT_REL_UNIT_YEAR, "0 years ago"},
+        {-0.5, UDAT_REL_UNIT_YEAR, "0.5 years ago"},
+        {-1.0, UDAT_REL_UNIT_YEAR, "1 year ago"},
+        {-2.0, UDAT_REL_UNIT_YEAR, "2 years ago"},
+        {-0.0, UDAT_REL_UNIT_SUNDAY, "0 Sundays ago"},
+        {-0.5, UDAT_REL_UNIT_SUNDAY, "0.5 Sundays ago"},
+        {-1.0, UDAT_REL_UNIT_SUNDAY, "1 Sunday ago"},
+        {-2.0, UDAT_REL_UNIT_SUNDAY, "2 Sundays ago"},
+        {-0.0, UDAT_REL_UNIT_MONDAY, "0 Mondays ago"},
+        {-0.5, UDAT_REL_UNIT_MONDAY, "0.5 Mondays ago"},
+        {-1.0, UDAT_REL_UNIT_MONDAY, "1 Monday ago"},
+        {-2.0, UDAT_REL_UNIT_MONDAY, "2 Mondays ago"},
+        {-0.0, UDAT_REL_UNIT_TUESDAY, "0 Tuesdays ago"},
+        {-0.5, UDAT_REL_UNIT_TUESDAY, "0.5 Tuesdays ago"},
+        {-1.0, UDAT_REL_UNIT_TUESDAY, "1 Tuesday ago"},
+        {-2.0, UDAT_REL_UNIT_TUESDAY, "2 Tuesdays ago"},
+        {-0.0, UDAT_REL_UNIT_WEDNESDAY, "0 Wednesdays ago"},
+        {-0.5, UDAT_REL_UNIT_WEDNESDAY, "0.5 Wednesdays ago"},
+        {-1.0, UDAT_REL_UNIT_WEDNESDAY, "1 Wednesday ago"},
+        {-2.0, UDAT_REL_UNIT_WEDNESDAY, "2 Wednesdays ago"},
+        {-0.0, UDAT_REL_UNIT_THURSDAY, "0 Thursdays ago"},
+        {-0.5, UDAT_REL_UNIT_THURSDAY, "0.5 Thursdays ago"},
+        {-1.0, UDAT_REL_UNIT_THURSDAY, "1 Thursday ago"},
+        {-2.0, UDAT_REL_UNIT_THURSDAY, "2 Thursdays ago"},
+        {-0.0, UDAT_REL_UNIT_FRIDAY, "0 Fridays ago"},
+        {-0.5, UDAT_REL_UNIT_FRIDAY, "0.5 Fridays ago"},
+        {-1.0, UDAT_REL_UNIT_FRIDAY, "1 Friday ago"},
+        {-2.0, UDAT_REL_UNIT_FRIDAY, "2 Fridays ago"},
+        {-0.0, UDAT_REL_UNIT_SATURDAY, "0 Saturdays ago"},
+        {-0.5, UDAT_REL_UNIT_SATURDAY, "0.5 Saturdays ago"},
+        {-1.0, UDAT_REL_UNIT_SATURDAY, "1 Saturday ago"},
+        {-2.0, UDAT_REL_UNIT_SATURDAY, "2 Saturdays ago"}
+};
+
+static WithQuantityExpectedRelativeDateTimeUnit kEnglishFormat[] = {
+        {0.0, UDAT_REL_UNIT_SECOND, "now"},
+        {0.5, UDAT_REL_UNIT_SECOND, "in 0.5 seconds"},
+        {1.0, UDAT_REL_UNIT_SECOND, "in 1 second"},
+        {2.0, UDAT_REL_UNIT_SECOND, "in 2 seconds"},
+        {0.0, UDAT_REL_UNIT_MINUTE, "in 0 minutes"},
+        {0.5, UDAT_REL_UNIT_MINUTE, "in 0.5 minutes"},
+        {1.0, UDAT_REL_UNIT_MINUTE, "in 1 minute"},
+        {2.0, UDAT_REL_UNIT_MINUTE, "in 2 minutes"},
+        {0.0, UDAT_REL_UNIT_HOUR, "in 0 hours"},
+        {0.5, UDAT_REL_UNIT_HOUR, "in 0.5 hours"},
+        {1.0, UDAT_REL_UNIT_HOUR, "in 1 hour"},
+        {2.0, UDAT_REL_UNIT_HOUR, "in 2 hours"},
+        {0.0, UDAT_REL_UNIT_DAY, "today"},
+        {0.5, UDAT_REL_UNIT_DAY, "in 0.5 days"},
+        {1.0, UDAT_REL_UNIT_DAY, "tomorrow"},
+        {2.0, UDAT_REL_UNIT_DAY, "in 2 days"},
+        {0.0, UDAT_REL_UNIT_WEEK, "this week"},
+        {0.5, UDAT_REL_UNIT_WEEK, "in 0.5 weeks"},
+        {1.0, UDAT_REL_UNIT_WEEK, "next week"},
+        {2.0, UDAT_REL_UNIT_WEEK, "in 2 weeks"},
+        {0.0, UDAT_REL_UNIT_MONTH, "this month"},
+        {0.5, UDAT_REL_UNIT_MONTH, "in 0.5 months"},
+        {1.0, UDAT_REL_UNIT_MONTH, "next month"},
+        {2.0, UDAT_REL_UNIT_MONTH, "in 2 months"},
+        {0.0, UDAT_REL_UNIT_QUARTER, "this quarter"},
+        {0.5, UDAT_REL_UNIT_QUARTER, "in 0.5 quarters"},
+        {1.0, UDAT_REL_UNIT_QUARTER, "next quarter"},
+        {2.0, UDAT_REL_UNIT_QUARTER, "in 2 quarters"},
+        {0.0, UDAT_REL_UNIT_YEAR, "this year"},
+        {0.5, UDAT_REL_UNIT_YEAR, "in 0.5 years"},
+        {1.0, UDAT_REL_UNIT_YEAR, "next year"},
+        {2.0, UDAT_REL_UNIT_YEAR, "in 2 years"},
+        {0.0, UDAT_REL_UNIT_SUNDAY, "this Sunday"},
+        {0.5, UDAT_REL_UNIT_SUNDAY, "in 0.5 Sundays"},
+        {1.0, UDAT_REL_UNIT_SUNDAY, "next Sunday"},
+        {2.0, UDAT_REL_UNIT_SUNDAY, "in 2 Sundays"},
+        {0.0, UDAT_REL_UNIT_MONDAY, "this Monday"},
+        {0.5, UDAT_REL_UNIT_MONDAY, "in 0.5 Mondays"},
+        {1.0, UDAT_REL_UNIT_MONDAY, "next Monday"},
+        {2.0, UDAT_REL_UNIT_MONDAY, "in 2 Mondays"},
+        {0.0, UDAT_REL_UNIT_TUESDAY, "this Tuesday"},
+        {0.5, UDAT_REL_UNIT_TUESDAY, "in 0.5 Tuesdays"},
+        {1.0, UDAT_REL_UNIT_TUESDAY, "next Tuesday"},
+        {2.0, UDAT_REL_UNIT_TUESDAY, "in 2 Tuesdays"},
+        {0.0, UDAT_REL_UNIT_WEDNESDAY, "this Wednesday"},
+        {0.5, UDAT_REL_UNIT_WEDNESDAY, "in 0.5 Wednesdays"},
+        {1.0, UDAT_REL_UNIT_WEDNESDAY, "next Wednesday"},
+        {2.0, UDAT_REL_UNIT_WEDNESDAY, "in 2 Wednesdays"},
+        {0.0, UDAT_REL_UNIT_THURSDAY, "this Thursday"},
+        {0.5, UDAT_REL_UNIT_THURSDAY, "in 0.5 Thursdays"},
+        {1.0, UDAT_REL_UNIT_THURSDAY, "next Thursday"},
+        {2.0, UDAT_REL_UNIT_THURSDAY, "in 2 Thursdays"},
+        {0.0, UDAT_REL_UNIT_FRIDAY, "this Friday"},
+        {0.5, UDAT_REL_UNIT_FRIDAY, "in 0.5 Fridays"},
+        {1.0, UDAT_REL_UNIT_FRIDAY, "next Friday"},
+        {2.0, UDAT_REL_UNIT_FRIDAY, "in 2 Fridays"},
+        {0.0, UDAT_REL_UNIT_SATURDAY, "this Saturday"},
+        {0.5, UDAT_REL_UNIT_SATURDAY, "in 0.5 Saturdays"},
+        {1.0, UDAT_REL_UNIT_SATURDAY, "next Saturday"},
+        {2.0, UDAT_REL_UNIT_SATURDAY, "in 2 Saturdays"},
+
+        {-0.0, UDAT_REL_UNIT_SECOND, "now"},
+        {-0.5, UDAT_REL_UNIT_SECOND, "0.5 seconds ago"},
+        {-1.0, UDAT_REL_UNIT_SECOND, "1 second ago"},
+        {-2.0, UDAT_REL_UNIT_SECOND, "2 seconds ago"},
+        {-0.0, UDAT_REL_UNIT_MINUTE, "0 minutes ago"},
+        {-0.5, UDAT_REL_UNIT_MINUTE, "0.5 minutes ago"},
+        {-1.0, UDAT_REL_UNIT_MINUTE, "1 minute ago"},
+        {-2.0, UDAT_REL_UNIT_MINUTE, "2 minutes ago"},
+        {-0.0, UDAT_REL_UNIT_HOUR, "0 hours ago"},
+        {-0.5, UDAT_REL_UNIT_HOUR, "0.5 hours ago"},
+        {-1.0, UDAT_REL_UNIT_HOUR, "1 hour ago"},
+        {-2.0, UDAT_REL_UNIT_HOUR, "2 hours ago"},
+        {-0.0, UDAT_REL_UNIT_DAY, "today"},
+        {-0.5, UDAT_REL_UNIT_DAY, "0.5 days ago"},
+        {-1.0, UDAT_REL_UNIT_DAY, "yesterday"},
+        {-2.0, UDAT_REL_UNIT_DAY, "2 days ago"},
+        {-0.0, UDAT_REL_UNIT_WEEK, "this week"},
+        {-0.5, UDAT_REL_UNIT_WEEK, "0.5 weeks ago"},
+        {-1.0, UDAT_REL_UNIT_WEEK, "last week"},
+        {-2.0, UDAT_REL_UNIT_WEEK, "2 weeks ago"},
+        {-0.0, UDAT_REL_UNIT_MONTH, "this month"},
+        {-0.5, UDAT_REL_UNIT_MONTH, "0.5 months ago"},
+        {-1.0, UDAT_REL_UNIT_MONTH, "last month"},
+        {-2.0, UDAT_REL_UNIT_MONTH, "2 months ago"},
+        {-0.0, UDAT_REL_UNIT_QUARTER, "this quarter"},
+        {-0.5, UDAT_REL_UNIT_QUARTER, "0.5 quarters ago"},
+        {-1.0, UDAT_REL_UNIT_QUARTER, "last quarter"},
+        {-2.0, UDAT_REL_UNIT_QUARTER, "2 quarters ago"},
+        {-0.0, UDAT_REL_UNIT_YEAR, "this year"},
+        {-0.5, UDAT_REL_UNIT_YEAR, "0.5 years ago"},
+        {-1.0, UDAT_REL_UNIT_YEAR, "last year"},
+        {-2.0, UDAT_REL_UNIT_YEAR, "2 years ago"},
+        {-0.0, UDAT_REL_UNIT_SUNDAY, "this Sunday"},
+        {-0.5, UDAT_REL_UNIT_SUNDAY, "0.5 Sundays ago"},
+        {-1.0, UDAT_REL_UNIT_SUNDAY, "last Sunday"},
+        {-2.0, UDAT_REL_UNIT_SUNDAY, "2 Sundays ago"},
+        {-0.0, UDAT_REL_UNIT_MONDAY, "this Monday"},
+        {-0.5, UDAT_REL_UNIT_MONDAY, "0.5 Mondays ago"},
+        {-1.0, UDAT_REL_UNIT_MONDAY, "last Monday"},
+        {-2.0, UDAT_REL_UNIT_MONDAY, "2 Mondays ago"},
+        {-0.0, UDAT_REL_UNIT_TUESDAY, "this Tuesday"},
+        {-0.5, UDAT_REL_UNIT_TUESDAY, "0.5 Tuesdays ago"},
+        {-1.0, UDAT_REL_UNIT_TUESDAY, "last Tuesday"},
+        {-2.0, UDAT_REL_UNIT_TUESDAY, "2 Tuesdays ago"},
+        {-0.0, UDAT_REL_UNIT_WEDNESDAY, "this Wednesday"},
+        {-0.5, UDAT_REL_UNIT_WEDNESDAY, "0.5 Wednesdays ago"},
+        {-1.0, UDAT_REL_UNIT_WEDNESDAY, "last Wednesday"},
+        {-2.0, UDAT_REL_UNIT_WEDNESDAY, "2 Wednesdays ago"},
+        {-0.0, UDAT_REL_UNIT_THURSDAY, "this Thursday"},
+        {-0.5, UDAT_REL_UNIT_THURSDAY, "0.5 Thursdays ago"},
+        {-1.0, UDAT_REL_UNIT_THURSDAY, "last Thursday"},
+        {-2.0, UDAT_REL_UNIT_THURSDAY, "2 Thursdays ago"},
+        {-0.0, UDAT_REL_UNIT_FRIDAY, "this Friday"},
+        {-0.5, UDAT_REL_UNIT_FRIDAY, "0.5 Fridays ago"},
+        {-1.0, UDAT_REL_UNIT_FRIDAY, "last Friday"},
+        {-2.0, UDAT_REL_UNIT_FRIDAY, "2 Fridays ago"},
+        {-0.0, UDAT_REL_UNIT_SATURDAY, "this Saturday"},
+        {-0.5, UDAT_REL_UNIT_SATURDAY, "0.5 Saturdays ago"},
+        {-1.0, UDAT_REL_UNIT_SATURDAY, "last Saturday"},
+        {-2.0, UDAT_REL_UNIT_SATURDAY, "2 Saturdays ago"}
+};
+
+
 class RelativeDateTimeFormatterTest : public IntlTest {
 public:
     RelativeDateTimeFormatterTest() {
@@ -491,10 +765,18 @@ private:
     void TestGetters();
     void TestCombineDateAndTime();
     void TestBadDisplayContext();
+    void TestFormat();
+    void TestFormatNumeric();
+    void TestLocales();
     void RunTest(
             const Locale& locale,
             const WithQuantityExpected* expectedResults,
             int32_t expectedResultLength);
+    void RunTest(
+            const Locale& locale,
+            const WithQuantityExpectedRelativeDateTimeUnit* expectedResults,
+            int32_t expectedResultLength,
+            bool numeric);
     void RunTest(
             const Locale& locale,
             UDateRelativeDateTimeFormatterStyle style,
@@ -514,6 +796,12 @@ private:
             const WithQuantityExpected* expectedResults,
             int32_t expectedResultLength,
             const char *description);
+    void RunTest(
+            const RelativeDateTimeFormatter& fmt,
+            const WithQuantityExpectedRelativeDateTimeUnit* expectedResults,
+            int32_t expectedResultLength,
+            const char *description,
+            bool numeric);
     void RunTest(
             const RelativeDateTimeFormatter& fmt,
             const WithoutQuantityExpected* expectedResults,
@@ -523,6 +811,11 @@ private:
             const RelativeDateTimeFormatter& fmt,
             const WithQuantityExpected& expectedResult,
             const char* description);
+    void CheckExpectedResult(
+            const RelativeDateTimeFormatter& fmt,
+            const WithQuantityExpectedRelativeDateTimeUnit& expectedResults,
+            const char* description,
+            bool numeric);
     void CheckExpectedResult(
             const RelativeDateTimeFormatter& fmt,
             const WithoutQuantityExpected& expectedResult,
@@ -562,6 +855,9 @@ void RelativeDateTimeFormatterTest::runIndexedTest(
     TESTCASE_AUTO(TestCombineDateAndTime);
     TESTCASE_AUTO(TestBadDisplayContext);
     TESTCASE_AUTO(TestSidewaysDataLoading);
+    TESTCASE_AUTO(TestFormat);
+    TESTCASE_AUTO(TestFormatNumeric);
+    TESTCASE_AUTO(TestLocales);
     TESTCASE_AUTO_END;
 }
 
@@ -765,6 +1061,21 @@ void RelativeDateTimeFormatterTest::RunTest(
     RunTest(fmt, expectedResults, expectedResultLength, locale.getName());
 }
 
+void RelativeDateTimeFormatterTest::RunTest(
+        const Locale& locale,
+        const WithQuantityExpectedRelativeDateTimeUnit* expectedResults,
+        int32_t expectedResultLength,
+        bool numeric) {
+    UErrorCode status = U_ZERO_ERROR;
+    RelativeDateTimeFormatter fmt(locale, status);
+    if (U_FAILURE(status)) {
+        dataerrln("Unable to create format object - %s", u_errorName(status));
+        return;
+    }
+    RunTest(fmt, expectedResults, expectedResultLength, locale.getName(), numeric);
+}
+
+
 void RelativeDateTimeFormatterTest::RunTest(
         const Locale& locale,
         UDateRelativeDateTimeFormatterStyle style,
@@ -818,6 +1129,17 @@ void RelativeDateTimeFormatterTest::RunTest(
     }
 }
 
+void RelativeDateTimeFormatterTest::RunTest(
+        const RelativeDateTimeFormatter& fmt,
+        const WithQuantityExpectedRelativeDateTimeUnit* expectedResults,
+        int32_t expectedResultLength,
+        const char *description,
+        bool numeric) {
+    for (int32_t i = 0; i < expectedResultLength; ++i) {
+        CheckExpectedResult(fmt, expectedResults[i], description, numeric);
+    }
+}
+
 void RelativeDateTimeFormatterTest::RunTest(
         const RelativeDateTimeFormatter& fmt,
         const WithoutQuantityExpected* expectedResults,
@@ -852,6 +1174,34 @@ void RelativeDateTimeFormatterTest::CheckExpectedResult(
     }
 }
 
+void RelativeDateTimeFormatterTest::CheckExpectedResult(
+        const RelativeDateTimeFormatter& fmt,
+        const WithQuantityExpectedRelativeDateTimeUnit& expectedResult,
+        const char* description,
+        bool numeric) {
+    UErrorCode status = U_ZERO_ERROR;
+    UnicodeString actual;
+    if (numeric) {
+      fmt.formatNumeric(expectedResult.value, expectedResult.unit, actual, status);
+    } else {
+      fmt.format(expectedResult.value, expectedResult.unit, actual, status);
+    }
+    UnicodeString expected(expectedResult.expected, -1, US_INV);
+    expected = expected.unescape();
+    char buffer[256];
+    sprintf(
+            buffer,
+            "%s, %f, %s",
+            description,
+            expectedResult.value,
+            RelativeDateTimeUnitStr(expectedResult.unit));
+    if (actual != expected) {
+        errln(UnicodeString("Fail: Expected: ") + expected
+                + ", Got: " + actual
+                + ", For: " + buffer);
+    }
+}
+
 void RelativeDateTimeFormatterTest::CheckExpectedResult(
         const RelativeDateTimeFormatter& fmt,
         const WithoutQuantityExpected& expectedResult,
@@ -942,6 +1292,27 @@ void RelativeDateTimeFormatterTest::TestSidewaysDataLoading(void) {
     assertEquals("next year: ", expected, actual);
 }
 
+void RelativeDateTimeFormatterTest::TestFormatNumeric() {
+    RunTest("en", kEnglishFormatNumeric, UPRV_LENGTHOF(kEnglishFormatNumeric), true);
+}
+
+void RelativeDateTimeFormatterTest::TestFormat() {
+    RunTest("en", kEnglishFormat, UPRV_LENGTHOF(kEnglishFormat), false);
+}
+
+void RelativeDateTimeFormatterTest::TestLocales() {
+    int32_t numLocales = 0;
+    const Locale *availableLocales = Locale::getAvailableLocales(numLocales);
+    std::vector<std::unique_ptr<RelativeDateTimeFormatter>> allFormatters;
+    for (int localeIdx=0; localeIdx<numLocales; localeIdx++) {
+        const Locale &loc = availableLocales[localeIdx];
+        UErrorCode status = U_ZERO_ERROR;
+        std::unique_ptr<RelativeDateTimeFormatter> rdtf(new RelativeDateTimeFormatter(loc, status));
+        allFormatters.push_back(std::move(rdtf));
+        assertSuccess(loc.getName(), status);
+    }
+}
+
 static const char *kLast2 = "Last_2";
 static const char *kLast = "Last";
 static const char *kThis = "This";
@@ -955,7 +1326,15 @@ static const char *kHours = "Hours";
 static const char *kDays = "Days";
 static const char *kWeeks = "Weeks";
 static const char *kMonths = "Months";
+static const char *kQuarters = "Quarters";
 static const char *kYears = "Years";
+static const char *kSundays = "Sundays";
+static const char *kMondays = "Mondays";
+static const char *kTuesdays = "Tuesdays";
+static const char *kWednesdays = "Wednesdays";
+static const char *kThursdays = "Thursdays";
+static const char *kFridays = "Fridays";
+static const char *kSaturdays = "Saturdays";
 
 static const char *kSunday = "Sunday";
 static const char *kMonday = "Monday";
@@ -967,6 +1346,7 @@ static const char *kSaturday = "Saturday";
 static const char *kDay = "Day";
 static const char *kWeek = "Week";
 static const char *kMonth = "Month";
+static const char *kQuarter = "Quarter";
 static const char *kYear = "Year";
 static const char *kNow = "Now";
 
@@ -1016,6 +1396,45 @@ static const char *RelativeUnitStr(
     return kUndefined;
 }
 
+static const char *RelativeDateTimeUnitStr(
+        URelativeDateTimeUnit  unit) {
+    switch (unit) {
+        case UDAT_REL_UNIT_SECOND:
+            return kSeconds;
+        case UDAT_REL_UNIT_MINUTE:
+            return kMinutes;
+        case UDAT_REL_UNIT_HOUR:
+            return kHours;
+        case UDAT_REL_UNIT_DAY:
+            return kDays;
+        case UDAT_REL_UNIT_WEEK:
+            return kWeeks;
+        case UDAT_REL_UNIT_MONTH:
+            return kMonths;
+        case UDAT_REL_UNIT_QUARTER:
+            return kQuarters;
+        case UDAT_REL_UNIT_YEAR:
+            return kYears;
+        case UDAT_REL_UNIT_SUNDAY:
+            return kSundays;
+        case UDAT_REL_UNIT_MONDAY:
+            return kMondays;
+        case UDAT_REL_UNIT_TUESDAY:
+            return kTuesdays;
+        case UDAT_REL_UNIT_WEDNESDAY:
+            return kWednesdays;
+        case UDAT_REL_UNIT_THURSDAY:
+            return kThursdays;
+        case UDAT_REL_UNIT_FRIDAY:
+            return kFridays;
+        case UDAT_REL_UNIT_SATURDAY:
+            return kSaturdays;
+        default:
+            return kUndefined;
+    }
+    return kUndefined;
+}
+
 static const char *AbsoluteUnitStr(
         UDateAbsoluteUnit unit) {
     switch (unit) {
@@ -1039,6 +1458,8 @@ static const char *AbsoluteUnitStr(
             return kWeek;
         case UDAT_ABSOLUTE_MONTH:
             return kMonth;
+        case UDAT_ABSOLUTE_QUARTER:
+            return kQuarter;
         case UDAT_ABSOLUTE_YEAR:
             return kYear;
         case UDAT_ABSOLUTE_NOW:
index fe983da181cf312ef5626ff3ca891b9145d220be..3fb0584992522d06805b91dbd999137a0d0bd299 100644 (file)
@@ -68,6 +68,7 @@ public:
     void TestBug13127();
     void TestInPlaceTitle();
     void TestCaseMapEditsIteratorDocs();
+    void TestCaseMapGreekExtended();
 
 private:
     void assertGreekUpper(const char16_t *s, const char16_t *expected);
@@ -113,6 +114,7 @@ StringCaseTest::runIndexedTest(int32_t index, UBool exec, const char *&name, cha
     TESTCASE_AUTO(TestInPlaceTitle);
 #endif
     TESTCASE_AUTO(TestCaseMapEditsIteratorDocs);
+    TESTCASE_AUTO(TestCaseMapGreekExtended);
     TESTCASE_AUTO_END;
 }
 
@@ -1685,4 +1687,17 @@ void StringCaseTest::TestCaseMapEditsIteratorDocs() {
     }
 }
 
+void StringCaseTest::TestCaseMapGreekExtended() {
+    // Ticket 13851
+    UnicodeString s(u"\u1F80\u1F88\u1FFC");
+    UnicodeString result(s);
+    result.toLower(Locale::getRoot());
+    assertEquals(u"lower", u"\u1F80\u1F80\u1FF3", result);
+#if !UCONFIG_NO_BREAK_ITERATION
+    result = s;
+    result.toTitle(nullptr, Locale::getRoot());
+    assertEquals(u"title", u"\u1F88\u1F80\u1FF3", result);
+#endif
+}
+
 //#endif
index 3a16c285ec41ab3af0364c9474c0c9806e75d5f7..7249001f5eb21bd4132c6e643d5279a6568ddef2 100644 (file)
@@ -991,8 +991,8 @@ void TestMessageFormat::testSetLocale()
     // {sfb} to get $, would need Locale::US, not Locale::ENGLISH
     // Just use unlocalized currency symbol.
     //UnicodeString compareStrEng = "At <time> on Aug 8, 1997, you made a deposit of $456.83.";
-    UnicodeString compareStrEng = "At <time> on Aug 8, 1997, you made a deposit of XXX";
-    compareStrEng += (UChar) 0x00a0;
+    UnicodeString compareStrEng = "At <time> on Aug 8, 1997, you made a deposit of ";
+    compareStrEng += (UChar) 0x00a4;
     compareStrEng += "456.83.";
     // {sfb} to get DM, would need Locale::GERMANY, not Locale::GERMAN
     // Just use unlocalized currency symbol.
@@ -1014,13 +1014,15 @@ void TestMessageFormat::testSetLocale()
 
     logln(result);
     if (result != compareStrEng) {
-        dataerrln("***  MSG format err. - %s", u_errorName(err));
+        char bbuf[96];
+        result.extract(0, result.length(), bbuf, sizeof(bbuf));
+        dataerrln("***  MSG format err. - %s; result was %s", u_errorName(err), bbuf);
     }
 
     msg.setLocale(Locale::getEnglish());
     UBool getLocale_ok = TRUE;
     if (msg.getLocale() != Locale::getEnglish()) {
-        errln("*** MSG getLocal err.");
+        errln("*** MSG getLocale err.");
         getLocale_ok = FALSE;
     }
 
index eb7b882f5a0f2bb66de2b9b733d534880a960719..0c8219a9ba5c84dffd5c717a7fdaddda559ab95c 100644 (file)
@@ -13,6 +13,7 @@
 #include "umutex.h"
 #include "cmemory.h"
 #include "cstring.h"
+#include "indiancal.h"
 #include "uparse.h"
 #include "unicode/localpointer.h"
 #include "unicode/resbund.h"
@@ -81,6 +82,9 @@ void MultithreadTest::runIndexedTest( int32_t index, UBool exec,
 #if !UCONFIG_NO_TRANSLITERATION
     TESTCASE_AUTO(TestBreakTranslit);
     TESTCASE_AUTO(TestIncDec);
+#if !UCONFIG_NO_FORMATTING
+    TESTCASE_AUTO(Test20104);
+#endif /* #if !UCONFIG_NO_FORMATTING */
 #endif /* #if !UCONFIG_NO_TRANSLITERATION */
     TESTCASE_AUTO_END
 }
@@ -629,9 +633,9 @@ public:
                 FormatThreadTestData( 1.0, CharsToUnicodeString("100\\u00a0%")),
                 FormatThreadTestData( 0.26, CharsToUnicodeString("26\\u00a0%")),
                 FormatThreadTestData(
-                   16384.99, CharsToUnicodeString("1\\u00a0638\\u00a0499\\u00a0%")), // U+00a0 = NBSP
+                   16384.99, CharsToUnicodeString("1\\u202F638\\u202F499\\u00a0%")), // U+202F = NNBSP
                 FormatThreadTestData(
-                    81890.23, CharsToUnicodeString("8\\u00a0189\\u00a0023\\u00a0%")),
+                    81890.23, CharsToUnicodeString("8\\u202F189\\u202F023\\u00a0%")),
         };
         int32_t kPercentFormatTestDataLength = UPRV_LENGTHOF(kPercentFormatTestData);
         int32_t iteration;
@@ -1548,5 +1552,36 @@ void MultithreadTest::TestIncDec()
     assertEquals("TestIncDec", NUM_THREADS, gIncDecCounter);
 }
 
+#if !UCONFIG_NO_FORMATTING
+static Calendar  *gSharedCalendar = {};
+
+class Test20104Thread : public SimpleThread {
+public:
+    Test20104Thread() { };
+    virtual void run();
+};
+
+void Test20104Thread::run() {
+    gSharedCalendar->defaultCenturyStartYear();
+}
+
+void MultithreadTest::Test20104() {
+    UErrorCode status = U_ZERO_ERROR;
+    Locale loc("hi_IN");
+    gSharedCalendar = new IndianCalendar(loc, status);
+    assertSuccess("Test20104", status);
+
+    static constexpr int NUM_THREADS = 4;
+    Test20104Thread threads[NUM_THREADS];
+    for (auto &thread:threads) {
+        thread.start();
+    }
+    for (auto &thread:threads) {
+        thread.join();
+    }
+    delete gSharedCalendar;
+    // Note: failure is reported by Thread Sanitizer. Test itself succeeds.
+}
+#endif /* !UCONFIG_NO_FORMATTING */
 
 #endif /* !UCONFIG_NO_TRANSLITERATION */
index b2517e22203d190ed76c05309ee8e9983ebefaa6..565080ac69aa85b63a63ce0cd15c5de9af3be336 100644 (file)
@@ -53,6 +53,7 @@ public:
     void TestUnifiedCache();
     void TestBreakTranslit();
     void TestIncDec();
+    void Test20104();
 };
 
 #endif
index 45e9db8cb1d984197726cc8da84815e5581287a8..741211b170f39bdc81cbf03f08db4f6aac807a27 100644 (file)
@@ -633,6 +633,29 @@ BasicNormalizerTest::TestPreviousNext(const UChar *src, int32_t srcLength,
                                       const char *moves,
                                       UNormalizationMode mode,
                                       const char *name) {
+    // Sanity check non-iterative normalization.
+    {
+        IcuTestErrorCode errorCode(*this, "TestPreviousNext");
+        UnicodeString result;
+        Normalizer::normalize(UnicodeString(src, srcLength), mode, 0, result, errorCode);
+        if (errorCode.isFailure()) {
+            dataerrln("error: non-iterative normalization of %s failed: %s",
+                      name, errorCode.errorName());
+            errorCode.reset();
+            return;
+        }
+        // UnicodeString::fromUTF32(expect, expectLength)
+        // would turn unpaired surrogates into U+FFFD.
+        for (int32_t i = 0, j = 0; i < result.length(); ++j) {
+            UChar32 c = result.char32At(i);
+            if (c != expect[j]) {
+                errln("error: non-iterative normalization of %s did not yield the expected result",
+                      name);
+            }
+            i += U16_LENGTH(c);
+        }
+    }
+
     // iterators
     Normalizer iter(src, srcLength, mode);
 
@@ -1432,9 +1455,14 @@ struct StringPair { const char *input, *expected; };
 void
 BasicNormalizerTest::TestCustomComp() {
     static const StringPair pairs[]={
-        { "\\uD801\\uE000\\uDFFE", "" },
-        { "\\uD800\\uD801\\uE000\\uDFFE\\uDFFF", "\\uD7FF\\uFFFF" },
-        { "\\uD800\\uD801\\uDFFE\\uDFFF", "\\uD7FF\\U000107FE\\uFFFF" },
+        // ICU 63 normalization with UCPTrie requires inert surrogate code points.
+        // { "\\uD801\\uE000\\uDFFE", "" },
+        // { "\\uD800\\uD801\\uE000\\uDFFE\\uDFFF", "\\uD7FF\\uFFFF" },
+        // { "\\uD800\\uD801\\uDFFE\\uDFFF", "\\uD7FF\\U000107FE\\uFFFF" },
+        { "\\uD801\\uE000\\uDFFE", "\\uD801\\uDFFE" },
+        { "\\uD800\\uD801\\uE000\\uDFFE\\uDFFF", "\\uD800\\uD801\\uDFFE\\uDFFF" },
+        { "\\uD800\\uD801\\uDFFE\\uDFFF", "\\uD800\\U000107FE\\uDFFF" },
+
         { "\\uE001\\U000110B9\\u0345\\u0308\\u0327", "\\uE002\\U000110B9\\u0327\\u0345" },
         { "\\uE010\\U000F0011\\uE012", "\\uE011\\uE012" },
         { "\\uE010\\U000F0011\\U000F0011\\uE012", "\\uE011\\U000F0010" },
@@ -1462,9 +1490,14 @@ BasicNormalizerTest::TestCustomComp() {
 void
 BasicNormalizerTest::TestCustomFCC() {
     static const StringPair pairs[]={
-        { "\\uD801\\uE000\\uDFFE", "" },
-        { "\\uD800\\uD801\\uE000\\uDFFE\\uDFFF", "\\uD7FF\\uFFFF" },
-        { "\\uD800\\uD801\\uDFFE\\uDFFF", "\\uD7FF\\U000107FE\\uFFFF" },
+        // ICU 63 normalization with UCPTrie requires inert surrogate code points.
+        // { "\\uD801\\uE000\\uDFFE", "" },
+        // { "\\uD800\\uD801\\uE000\\uDFFE\\uDFFF", "\\uD7FF\\uFFFF" },
+        // { "\\uD800\\uD801\\uDFFE\\uDFFF", "\\uD7FF\\U000107FE\\uFFFF" },
+        { "\\uD801\\uE000\\uDFFE", "\\uD801\\uDFFE" },
+        { "\\uD800\\uD801\\uE000\\uDFFE\\uDFFF", "\\uD800\\uD801\\uDFFE\\uDFFF" },
+        { "\\uD800\\uD801\\uDFFE\\uDFFF", "\\uD800\\U000107FE\\uDFFF" },
+
         // The following expected result is different from CustomComp
         // because of only-contiguous composition.
         { "\\uE001\\U000110B9\\u0345\\u0308\\u0327", "\\uE001\\U000110B9\\u0327\\u0308\\u0345" },
index 43c7a27dfe73ce09266bc0647b275b635403f69b..6b784b7b1b27ec30f12d51934ebb4e0f079539f1 100644 (file)
@@ -7,13 +7,16 @@
 
 #include "unicode/ustring.h"
 #include "unicode/uchar.h"
+#include "unicode/ucpmap.h"
 #include "unicode/uniset.h"
 #include "unicode/putil.h"
 #include "unicode/uscript.h"
+#include "unicode/uset.h"
 #include "cstring.h"
 #include "hash.h"
 #include "patternprops.h"
 #include "normalizer2impl.h"
+#include "testutil.h"
 #include "uparse.h"
 #include "ucdtest.h"
 
@@ -62,8 +65,15 @@ void UnicodeTest::runIndexedTest( int32_t index, UBool exec, const char* &name,
     TESTCASE_AUTO(TestScriptMetadata);
     TESTCASE_AUTO(TestBidiPairedBracketType);
     TESTCASE_AUTO(TestEmojiProperties);
+    TESTCASE_AUTO(TestIndicPositionalCategory);
+    TESTCASE_AUTO(TestIndicSyllabicCategory);
+    TESTCASE_AUTO(TestVerticalOrientation);
     TESTCASE_AUTO(TestDefaultScriptExtensions);
     TESTCASE_AUTO(TestInvalidCodePointFolding);
+#if !UCONFIG_NO_NORMALIZATION
+    TESTCASE_AUTO(TestBinaryCharacterProperties);
+    TESTCASE_AUTO(TestIntCharacterProperties);
+#endif
     TESTCASE_AUTO_END;
 }
 
@@ -535,6 +545,50 @@ void UnicodeTest::TestEmojiProperties() {
                u_hasBinaryProperty(0xA9, UCHAR_EXTENDED_PICTOGRAPHIC));
 }
 
+void UnicodeTest::TestIndicPositionalCategory() {
+    IcuTestErrorCode errorCode(*this, "TestIndicPositionalCategory()");
+    UnicodeSet na(u"[:InPC=NA:]", errorCode);
+    assertTrue("mostly NA", 1000000 <= na.size() && na.size() <= UCHAR_MAX_VALUE - 500);
+    UnicodeSet vol(u"[:InPC=Visual_Order_Left:]", errorCode);
+    assertTrue("some Visual_Order_Left", 19 <= vol.size() && vol.size() <= 100);
+    assertEquals("U+08FF: NA", U_INPC_NA,
+                 u_getIntPropertyValue(0x08FF, UCHAR_INDIC_POSITIONAL_CATEGORY));
+    assertEquals("U+0900: Top", U_INPC_TOP,
+                 u_getIntPropertyValue(0x0900, UCHAR_INDIC_POSITIONAL_CATEGORY));
+    assertEquals("U+10A06: Overstruck", U_INPC_OVERSTRUCK,
+                 u_getIntPropertyValue(0x10A06, UCHAR_INDIC_POSITIONAL_CATEGORY));
+}
+
+void UnicodeTest::TestIndicSyllabicCategory() {
+    IcuTestErrorCode errorCode(*this, "TestIndicSyllabicCategory()");
+    UnicodeSet other(u"[:InSC=Other:]", errorCode);
+    assertTrue("mostly Other", 1000000 <= other.size() && other.size() <= UCHAR_MAX_VALUE - 500);
+    UnicodeSet ava(u"[:InSC=Avagraha:]", errorCode);
+    assertTrue("some Avagraha", 16 <= ava.size() && ava.size() <= 100);
+    assertEquals("U+08FF: Other", U_INSC_OTHER,
+                 u_getIntPropertyValue(0x08FF, UCHAR_INDIC_SYLLABIC_CATEGORY));
+    assertEquals("U+0900: Bindu", U_INSC_BINDU,
+                 u_getIntPropertyValue(0x0900, UCHAR_INDIC_SYLLABIC_CATEGORY));
+    assertEquals("U+11065: Brahmi_Joining_Number", U_INSC_BRAHMI_JOINING_NUMBER,
+                 u_getIntPropertyValue(0x11065, UCHAR_INDIC_SYLLABIC_CATEGORY));
+}
+
+void UnicodeTest::TestVerticalOrientation() {
+    IcuTestErrorCode errorCode(*this, "TestVerticalOrientation()");
+    UnicodeSet r(u"[:vo=R:]", errorCode);
+    assertTrue("mostly R", 0xc0000 <= r.size() && r.size() <= 0xd0000);
+    UnicodeSet u(u"[:vo=U:]", errorCode);
+    assertTrue("much U", 0x40000 <= u.size() && u.size() <= 0x50000);
+    UnicodeSet tu(u"[:vo=Tu:]", errorCode);
+    assertTrue("some Tu", 147 <= tu.size() && tu.size() <= 300);
+    assertEquals("U+0E01: Rotated", U_VO_ROTATED,
+                 u_getIntPropertyValue(0x0E01, UCHAR_VERTICAL_ORIENTATION));
+    assertEquals("U+3008: Transformed_Rotated", U_VO_TRANSFORMED_ROTATED,
+                 u_getIntPropertyValue(0x3008, UCHAR_VERTICAL_ORIENTATION));
+    assertEquals("U+33333: Upright", U_VO_UPRIGHT,
+                 u_getIntPropertyValue(0x33333, UCHAR_VERTICAL_ORIENTATION));
+}
+
 void UnicodeTest::TestDefaultScriptExtensions() {
     // Block 3000..303F CJK Symbols and Punctuation defaults to scx=Bopo Hang Hani Hira Kana Yiii
     // but some of its characters revert to scx=<script> which is usually Common.
@@ -568,3 +622,77 @@ void UnicodeTest::TestInvalidCodePointFolding(void) {
                 cp, u_foldCase(cp, U_FOLD_CASE_EXCLUDE_SPECIAL_I));
     }
 }
+
+void UnicodeTest::TestBinaryCharacterProperties() {
+#if !UCONFIG_NO_NORMALIZATION
+    IcuTestErrorCode errorCode(*this, "TestBinaryCharacterProperties()");
+    // Spot-check getBinaryPropertySet() vs. hasBinaryProperty().
+    for (int32_t prop = 0; prop < UCHAR_BINARY_LIMIT; ++prop) {
+        const USet *uset = u_getBinaryPropertySet((UProperty)prop, errorCode);
+        if (errorCode.errIfFailureAndReset("u_getBinaryPropertySet(%d)", (int)prop)) {
+            continue;
+        }
+        const UnicodeSet &set = *UnicodeSet::fromUSet(uset);
+        int32_t size = set.size();
+        if (size == 0) {
+            assertFalse(UnicodeString("!hasBinaryProperty(U+0020, ") + prop + u")",
+                u_hasBinaryProperty(0x20, (UProperty)prop));
+            assertFalse(UnicodeString("!hasBinaryProperty(U+0061, ") + prop + u")",
+                u_hasBinaryProperty(0x61, (UProperty)prop));
+            assertFalse(UnicodeString("!hasBinaryProperty(U+4E00, ") + prop + u")",
+                u_hasBinaryProperty(0x4e00, (UProperty)prop));
+        } else {
+            UChar32 c = set.charAt(0);
+            if (c > 0) {
+                assertFalse(
+                    UnicodeString("!hasBinaryProperty(") + TestUtility::hex(c - 1) +
+                        u", " + prop + u")",
+                    u_hasBinaryProperty(c - 1, (UProperty)prop));
+            }
+            assertTrue(
+                UnicodeString("hasBinaryProperty(") + TestUtility::hex(c) +
+                    u", " + prop + u")",
+                u_hasBinaryProperty(c, (UProperty)prop));
+            c = set.charAt(size - 1);
+            assertTrue(
+                UnicodeString("hasBinaryProperty(") + TestUtility::hex(c) +
+                    u", " + prop + u")",
+                u_hasBinaryProperty(c, (UProperty)prop));
+            if (c < 0x10ffff) {
+                assertFalse(
+                    UnicodeString("!hasBinaryProperty(") + TestUtility::hex(c + 1) +
+                        u", " + prop + u")",
+                    u_hasBinaryProperty(c + 1, (UProperty)prop));
+            }
+        }
+    }
+#endif
+}
+
+void UnicodeTest::TestIntCharacterProperties() {
+#if !UCONFIG_NO_NORMALIZATION
+    IcuTestErrorCode errorCode(*this, "TestIntCharacterProperties()");
+    // Spot-check getIntPropertyMap() vs. getIntPropertyValue().
+    for (int32_t prop = UCHAR_INT_START; prop < UCHAR_INT_LIMIT; ++prop) {
+        const UCPMap *map = u_getIntPropertyMap((UProperty)prop, errorCode);
+        if (errorCode.errIfFailureAndReset("u_getIntPropertyMap(%d)", (int)prop)) {
+            continue;
+        }
+        uint32_t value;
+        UChar32 end = ucpmap_getRange(map, 0, UCPMAP_RANGE_NORMAL, 0, nullptr, nullptr, &value);
+        assertTrue("int property first range", end >= 0);
+        UChar32 c = end / 2;
+        assertEquals(UnicodeString("int property first range value at ") + TestUtility::hex(c),
+            u_getIntPropertyValue(c, (UProperty)prop), value);
+        end = ucpmap_getRange(map, 0x5000, UCPMAP_RANGE_NORMAL, 0, nullptr, nullptr, &value);
+        assertTrue("int property later range", end >= 0);
+        assertEquals(UnicodeString("int property later range value at ") + TestUtility::hex(end),
+            u_getIntPropertyValue(end, (UProperty)prop), value);
+        // ucpmap_get() API coverage
+        // TODO: move to cucdtst.c
+        assertEquals(
+            "int property upcmap_get(U+0061)",
+            u_getIntPropertyValue(0x61, (UProperty)prop), ucpmap_get(map, 0x61));
+    }
+#endif
+}
index 8a7ae3f4ecf7f36bda93e24943d4cf89b5bf4f88..2ed1395b50f4e9268d268a22da61a7e602d1b254 100644 (file)
@@ -41,8 +41,13 @@ public:
     void TestScriptMetadata();
     void TestBidiPairedBracketType();
     void TestEmojiProperties();
+    void TestIndicPositionalCategory();
+    void TestIndicSyllabicCategory();
+    void TestVerticalOrientation();
     void TestDefaultScriptExtensions();
     void TestInvalidCodePointFolding();
+    void TestBinaryCharacterProperties();
+    void TestIntCharacterProperties();
 
 private:
 
index 4b7cb7ae7c7f800c3bb3a3fe5111ebf583cc82b6..57d72fb3f547d8758285792037b4ee4426dedd66 100644 (file)
@@ -64,6 +64,7 @@ void UnicodeStringTest::runIndexedTest( int32_t index, UBool exec, const char* &
     TESTCASE_AUTO(TestUInt16Pointers);
     TESTCASE_AUTO(TestWCharPointers);
     TESTCASE_AUTO(TestNullPointers);
+    TESTCASE_AUTO(TestUnicodeStringInsertAppendToSelf);
     TESTCASE_AUTO_END;
 }
 
@@ -1123,27 +1124,25 @@ UnicodeStringTest::TestMiscellaneous()
         errln("UnicodeString(u[-1]).getTerminatedBuffer() returns a bad buffer");
     }
 
-    test1=UNICODE_STRING("la", 2);
-    test1.append(UNICODE_STRING(" lila", 5).getTerminatedBuffer(), 0, -1);
-    if(test1!=UNICODE_STRING("la lila", 7)) {
-        errln("UnicodeString::append(const UChar *, start, length) failed");
-    }
+    // NOTE: Some compilers will optimize u"la" to point to the same static memory
+    // as u" lila", offset by 3 code units
+    test1=UnicodeString(TRUE, u"la", 2);
+    test1.append(UnicodeString(TRUE, u" lila", 5).getTerminatedBuffer(), 0, -1);
+    assertEquals("UnicodeString::append(const UChar *, start, length) failed",
+        u"la lila", test1);
 
-    test1.insert(3, UNICODE_STRING("dudum ", 6), 0, INT32_MAX);
-    if(test1!=UNICODE_STRING("la dudum lila", 13)) {
-        errln("UnicodeString::insert(start, const UniStr &, start, length) failed");
-    }
+    test1.insert(3, UnicodeString(TRUE, u"dudum ", 6), 0, INT32_MAX);
+    assertEquals("UnicodeString::insert(start, const UniStr &, start, length) failed",
+        u"la dudum lila", test1);
 
     static const UChar ucs[]={ 0x68, 0x6d, 0x20, 0 };
     test1.insert(9, ucs, -1);
-    if(test1!=UNICODE_STRING("la dudum hm lila", 16)) {
-        errln("UnicodeString::insert(start, const UChar *, length) failed");
-    }
+    assertEquals("UnicodeString::insert(start, const UChar *, length) failed",
+        u"la dudum hm lila", test1);
 
     test1.replace(9, 2, (UChar)0x2b);
-    if(test1!=UNICODE_STRING("la dudum + lila", 15)) {
-        errln("UnicodeString::replace(start, length, UChar) failed");
-    }
+    assertEquals("UnicodeString::replace(start, length, UChar) failed",
+        u"la dudum + lila", test1);
 
     if(test1.hasMetaData() || UnicodeString().hasMetaData()) {
         errln("UnicodeString::hasMetaData() returns TRUE");
@@ -2248,3 +2247,59 @@ UnicodeStringTest::TestNullPointers() {
     UnicodeString(u"def").extract(nullptr, 0, errorCode);
     assertEquals("buffer overflow extracting to nullptr", U_BUFFER_OVERFLOW_ERROR, errorCode);
 }
+
+void UnicodeStringTest::TestUnicodeStringInsertAppendToSelf() {
+    IcuTestErrorCode status(*this, "TestUnicodeStringAppendToSelf");
+
+    // Test append operation
+    UnicodeString str(u"foo ");
+    str.append(str);
+    str.append(str);
+    str.append(str);
+    assertEquals("", u"foo foo foo foo foo foo foo foo ", str);
+
+    // Test append operation with readonly alias to start
+    str = UnicodeString(TRUE, u"foo ", 4);
+    str.append(str);
+    str.append(str);
+    str.append(str);
+    assertEquals("", u"foo foo foo foo foo foo foo foo ", str);
+
+    // Test append operation with aliased substring
+    str = u"abcde";
+    UnicodeString sub = str.tempSubString(1, 2);
+    str.append(sub);
+    assertEquals("", u"abcdebc", str);
+
+    // Test append operation with double-aliased substring
+    str = UnicodeString(TRUE, u"abcde", 5);
+    sub = str.tempSubString(1, 2);
+    str.append(sub);
+    assertEquals("", u"abcdebc", str);
+
+    // Test insert operation
+    str = u"a-*b";
+    str.insert(2, str);
+    str.insert(4, str);
+    str.insert(8, str);
+    assertEquals("", u"a-a-a-a-a-a-a-a-*b*b*b*b*b*b*b*b", str);
+
+    // Test insert operation with readonly alias to start
+    str = UnicodeString(TRUE, u"a-*b", 4);
+    str.insert(2, str);
+    str.insert(4, str);
+    str.insert(8, str);
+    assertEquals("", u"a-a-a-a-a-a-a-a-*b*b*b*b*b*b*b*b", str);
+
+    // Test insert operation with aliased substring
+    str = u"abcde";
+    sub = str.tempSubString(1, 3);
+    str.insert(2, sub);
+    assertEquals("", u"abbcdcde", str);
+
+    // Test insert operation with double-aliased substring
+    str = UnicodeString(TRUE, u"abcde", 5);
+    sub = str.tempSubString(1, 3);
+    str.insert(2, sub);
+    assertEquals("", u"abbcdcde", str);
+}
index 4ba348c431fd5ca7ef9fc7258b34e24ce514990a..218befdcc6850658fe63e7070ec460e6ee3cf78f 100644 (file)
@@ -96,6 +96,7 @@ public:
     void TestUInt16Pointers();
     void TestWCharPointers();
     void TestNullPointers();
+    void TestUnicodeStringInsertAppendToSelf();
 };
 
 #endif
index 12646e6e2fc41bc32b4517983458a4a51ee6794d..1c667e174e128e31f19220cf7a2154b76d4a068d 100644 (file)
@@ -731,7 +731,7 @@ static void TestfgetsNewLineHandling(void) {
 static void TestLineCount(const char *prefixLine, const char *line, int32_t numRepititions) {
     UChar buffer[64];
     UChar expectedBuffer[64];
-    int32_t lineLen = strlen(line);
+    int32_t lineLen = (int32_t)strlen(line);
     UChar *returnedUCharBuffer;
     int32_t repetitions;
     UFILE *myFile = NULL;
index 6bc549ad4dae2f87ed6babd634a85f9cfcdced1a..186d10e17e5182b18e01415ea1b0dd32e1db9782 100644 (file)
@@ -178,18 +178,18 @@ char* DataDrivenLogger::fgTestDataPath = NULL;
 static int64_t
 uto64(const UChar     *buffer)
 {
-    int64_t result = 0;
+    uint64_t result = 0;
     /* iterate through buffer */
     while(*buffer) {
         /* read the next digit */
-        result *= 16;
+        result *= 16u;
         if (!u_isxdigit(*buffer)) {
             log_err("\\u%04X is not a valid hex digit for this test\n", (UChar)*buffer);
         }
         result += *buffer - 0x0030 - (*buffer >= 0x0041 ? (*buffer >= 0x0061 ? 39 : 7) : 0);
         buffer++;
     }
-    return result;
+    return (int64_t)result;
 }
 #endif
 
index be32143e79e97cdc4c5fecdbd968a0214563425c..b82e79df4fc263a832a01352c6b0f6b061880563 100644 (file)
@@ -193,7 +193,7 @@ static void TestTranslitFileOut(void)
         return;
     }
 
-    len=fread(ubuf, sizeof(UChar), u_strlen(compare), infile);
+    len= (int)fread(ubuf, sizeof(UChar), u_strlen(compare), infile);
     log_verbose("Read %d UChars\n", len);
     if(len != u_strlen(compare))
     {
index 1655c78cd664066ea03f4e9f93a1b2ea5a84b2e1..bc63e822686f7894314bf656ffb02494c45962fb 100644 (file)
@@ -17,17 +17,20 @@ include $(top_builddir)/icudefs.mk
 subdir = test/perf/normperf
 
 ## Extra files to remove for 'make clean'
-CLEANFILES = *~ $(DEPS)
+CLEANFILES = *~ $(DEPS) $(SIMPLE_DEPS)
 
 ## Target information
 TARGET = normperf
+SIMPLE = simplenormperf
 
 CPPFLAGS += -I$(top_srcdir)/common -I$(top_srcdir)/tools/toolutil -I$(top_srcdir)/tools/ctestfw
 LIBS = $(LIBCTESTFW) $(LIBICUI18N) $(LIBICUUC) $(LIBICUTOOLUTIL) $(DEFAULT_LIBS) $(LIB_M)
 
 OBJECTS = normperf.o
+SIMPLE_OBJ = simplenormperf.o
 
 DEPS = $(OBJECTS:.o=.d)
+SIMPLE_DEPS = $(SIMPLE_OBJ:.o=.d)
 
 ## List of phony targets
 .PHONY : all all-local install install-local clean clean-local \
@@ -44,7 +47,7 @@ distclean : distclean-local
 dist: dist-local
 check: all check-local
 
-all-local: $(TARGET)
+all-local: $(TARGET) $(SIMPLE)
 
 install-local:
 
@@ -52,7 +55,7 @@ dist-local:
 
 clean-local:
        test -z "$(CLEANFILES)" || $(RMV) $(CLEANFILES)
-       $(RMV) $(OBJECTS) $(TARGET)
+       $(RMV) $(OBJECTS) $(SIMPLE_OBJ) $(TARGET) $(SIMPLE)
 
 distclean-local: clean-local
        $(RMV) Makefile
@@ -67,16 +70,21 @@ $(TARGET) : $(OBJECTS)
        $(LINK.cc) -o $@ $^ $(LIBS)
        $(POST_BUILD_STEP)
 
+$(SIMPLE) : $(SIMPLE_OBJ)
+       $(LINK.cc) -o $@ $^ $(LIBS)
+       $(POST_BUILD_STEP)
+
 invoke:
        ICU_DATA=$${ICU_DATA:-$(top_builddir)/data/} TZ=PST8PDT $(INVOKE) $(INVOCATION)
 
 ifeq (,$(MAKECMDGOALS))
 -include $(DEPS)
+-include $(SIMPLE_DEPS)
 else
 ifneq ($(patsubst %clean,,$(MAKECMDGOALS)),)
 ifneq ($(patsubst %install,,$(MAKECMDGOALS)),)
 -include $(DEPS)
+-include $(SIMPLE_DEPS)
 endif
 endif
 endif
-
diff --git a/source/test/perf/normperf/simplenormperf.cpp b/source/test/perf/normperf/simplenormperf.cpp
new file mode 100644 (file)
index 0000000..b6865ba
--- /dev/null
@@ -0,0 +1,352 @@
+// © 2018 and later: Unicode, Inc. and others.
+// License & terms of use: http://www.unicode.org/copyright.html
+
+// simplenormperf.cpp
+// created: 2018mar15 Markus W. Scherer
+
+#include <stdio.h>
+#include <string>
+
+#include "unicode/utypes.h"
+#include "unicode/bytestream.h"
+#include "unicode/normalizer2.h"
+#include "unicode/stringpiece.h"
+#include "unicode/unistr.h"
+#include "unicode/utf8.h"
+#include "unicode/utimer.h"
+#include "cmemory.h"
+
+using icu::Normalizer2;
+using icu::UnicodeString;
+
+namespace {
+
+// Strings with commonly occurring BMP characters.
+class CommonChars {
+public:
+    static UnicodeString getMixed(int32_t minLength) {
+        return extend(UnicodeString(latin1).append(japanese).append(arabic), minLength);
+    }
+    static UnicodeString getLatin1(int32_t minLength) { return extend(latin1, minLength); }
+    static UnicodeString getLowercaseLatin1(int32_t minLength) { return extend(lowercaseLatin1, minLength); }
+    static UnicodeString getASCII(int32_t minLength) { return extend(ascii, minLength); }
+    static UnicodeString getJapanese(int32_t minLength) { return extend(japanese, minLength); }
+
+    // Returns an array of UTF-8 offsets, one per code point.
+    // Assumes all BMP characters.
+    static int32_t *toUTF8WithOffsets(const UnicodeString &s16, std::string &s8, int32_t &numCodePoints) {
+        s8.clear();
+        s8.reserve(s16.length());
+        s16.toUTF8String(s8);
+        const char *s = s8.data();
+        int32_t length = s8.length();
+        int32_t *offsets = new int32_t[length + 1];
+        int32_t numCP = 0;
+        for (int32_t i = 0; i < length;) {
+            offsets[numCP++] = i;
+            U8_FWD_1(s, i, length);
+        }
+        offsets[numCP] = length;
+        numCodePoints = numCP;
+        return offsets;
+    }
+
+private:
+    static UnicodeString extend(const UnicodeString &s, int32_t minLength) {
+        UnicodeString result(s);
+        while (result.length() < minLength) {
+            UnicodeString twice = result + result;
+            result = std::move(twice);
+        }
+        return result;
+    }
+
+    static const UChar *const latin1;
+    static const UChar *const lowercaseLatin1;
+    static const UChar *const ascii;
+    static const UChar *const japanese;
+    static const UChar *const arabic;
+};
+
+const UChar *const CommonChars::latin1 =
+      // Goethe’s Bergschloß in normal sentence case.
+      u"Da droben auf jenem Berge, da steht ein altes Schloß, "
+      u"wo hinter Toren und Türen sonst lauerten Ritter und Roß.\n"
+      u"Verbrannt sind Türen und Tore, und überall ist es so still; "
+      u"das alte verfallne Gemäuer durchklettr ich, wie ich nur will.\n"
+      u"Hierneben lag ein Keller, so voll von köstlichem Wein; "
+      u"nun steiget nicht mehr mit Krügen die Kellnerin heiter hinein.\n"
+      u"Sie setzt den Gästen im Saale nicht mehr die Becher umher, "
+      u"sie füllt zum Heiligen Mahle dem Pfaffen das Fläschchen nicht mehr.\n"
+      u"Sie reicht dem lüsternen Knappen nicht mehr auf dem Gange den Trank, "
+      u"und nimmt für flüchtige Gabe nicht mehr den flüchtigen Dank.\n"
+      u"Denn alle Balken und Decken, sie sind schon lange verbrannt, "
+      u"und Trepp und Gang und Kapelle in Schutt und Trümmer verwandt.\n"
+      u"Doch als mit Zither und Flasche nach diesen felsigen Höhn "
+      u"ich an dem heitersten Tage mein Liebchen steigen gesehn,\n"
+      u"da drängte sich frohes Behagen hervor aus verödeter Ruh, "
+      u"da gings wie in alten Tagen recht feierlich wieder zu.\n"
+      u"Als wären für stattliche Gäste die weitesten Räume bereit, "
+      u"als käm ein Pärchen gegangen aus jener tüchtigen Zeit.\n"
+      u"Als stünd in seiner Kapelle der würdige Pfaffe schon da "
+      u"und fragte: Wollt ihr einander? Wir aber lächelten: Ja!\n"
+      u"Und tief bewegten Gesänge des Herzens innigsten Grund, "
+      u"Es zeugte, statt der Menge, der Echo schallender Mund.\n"
+      u"Und als sich gegen Abend im stillen alles verlor,"
+      u"da blickte die glühende Sonne zum schroffen Gipfel empor.\n"
+      u"Und Knapp und Kellnerin glänzen als Herren weit und breit; "
+      u"sie nimmt sich zum Kredenzen und er zum Danke sich Zeit.\n";
+
+const UChar *const CommonChars::lowercaseLatin1 =
+      // Goethe’s Bergschloß in all lowercase
+      u"da droben auf jenem berge, da steht ein altes schloß, "
+      u"wo hinter toren und türen sonst lauerten ritter und roß.\n"
+      u"verbrannt sind türen und tore, und überall ist es so still; "
+      u"das alte verfallne gemäuer durchklettr ich, wie ich nur will.\n"
+      u"hierneben lag ein keller, so voll von köstlichem wein; "
+      u"nun steiget nicht mehr mit krügen die kellnerin heiter hinein.\n"
+      u"sie setzt den gästen im saale nicht mehr die becher umher, "
+      u"sie füllt zum heiligen mahle dem pfaffen das fläschchen nicht mehr.\n"
+      u"sie reicht dem lüsternen knappen nicht mehr auf dem gange den trank, "
+      u"und nimmt für flüchtige gabe nicht mehr den flüchtigen dank.\n"
+      u"denn alle balken und decken, sie sind schon lange verbrannt, "
+      u"und trepp und gang und kapelle in schutt und trümmer verwandt.\n"
+      u"doch als mit zither und flasche nach diesen felsigen höhn "
+      u"ich an dem heitersten tage mein liebchen steigen gesehn,\n"
+      u"da drängte sich frohes behagen hervor aus verödeter ruh, "
+      u"da gings wie in alten tagen recht feierlich wieder zu.\n"
+      u"als wären für stattliche gäste die weitesten räume bereit, "
+      u"als käm ein pärchen gegangen aus jener tüchtigen zeit.\n"
+      u"als stünd in seiner kapelle der würdige pfaffe schon da "
+      u"und fragte: wollt ihr einander? wir aber lächelten: ja!\n"
+      u"und tief bewegten gesänge des herzens innigsten grund, "
+      u"es zeugte, statt der menge, der echo schallender mund.\n"
+      u"und als sich gegen abend im stillen alles verlor,"
+      u"da blickte die glühende sonne zum schroffen gipfel empor.\n"
+      u"und knapp und kellnerin glänzen als herren weit und breit; "
+      u"sie nimmt sich zum kredenzen und er zum danke sich zeit.\n";
+
+const UChar *const CommonChars::ascii =
+      // Goethe’s Bergschloß in normal sentence case but ASCII-fied
+      u"Da droben auf jenem Berge, da steht ein altes Schloss, "
+      u"wo hinter Toren und Tueren sonst lauerten Ritter und Ross.\n"
+      u"Verbrannt sind Tueren und Tore, und ueberall ist es so still; "
+      u"das alte verfallne Gemaeuer durchklettr ich, wie ich nur will.\n"
+      u"Hierneben lag ein Keller, so voll von koestlichem Wein; "
+      u"nun steiget nicht mehr mit Kruegen die Kellnerin heiter hinein.\n"
+      u"Sie setzt den Gaesten im Saale nicht mehr die Becher umher, "
+      u"sie fuellt zum Heiligen Mahle dem Pfaffen das Flaeschchen nicht mehr.\n"
+      u"Sie reicht dem luesternen Knappen nicht mehr auf dem Gange den Trank, "
+      u"und nimmt fuer fluechtige Gabe nicht mehr den fluechtigen Dank.\n"
+      u"Denn alle Balken und Decken, sie sind schon lange verbrannt, "
+      u"und Trepp und Gang und Kapelle in Schutt und Truemmer verwandt.\n"
+      u"Doch als mit Zither und Flasche nach diesen felsigen Hoehn "
+      u"ich an dem heitersten Tage mein Liebchen steigen gesehn,\n"
+      u"da draengte sich frohes Behagen hervor aus veroedeter Ruh, "
+      u"da gings wie in alten Tagen recht feierlich wieder zu.\n"
+      u"Als waeren fuer stattliche Gaeste die weitesten Raeume bereit, "
+      u"als kaem ein Paerchen gegangen aus jener tuechtigen Zeit.\n"
+      u"Als stuend in seiner Kapelle der wuerdige Pfaffe schon da "
+      u"und fragte: Wollt ihr einander? Wir aber laechelten: Ja!\n"
+      u"Und tief bewegten Gesaenge des Herzens innigsten Grund, "
+      u"Es zeugte, statt der Menge, der Echo schallender Mund.\n"
+      u"Und als sich gegen Abend im stillen alles verlor,"
+      u"da blickte die gluehende Sonne zum schroffen Gipfel empor.\n"
+      u"Und Knapp und Kellnerin glaenzen als Herren weit und breit; "
+      u"sie nimmt sich zum Kredenzen und er zum Danke sich Zeit.\n";
+
+const UChar *const CommonChars::japanese =
+      // Ame ni mo makezu = Be not Defeated by the Rain, by Kenji Miyazawa.
+      u"雨にもまけず風にもまけず雪にも夏の暑さにもまけぬ"
+      u"丈夫なからだをもち慾はなく決して瞋らず"
+      u"いつもしずかにわらっている一日に玄米四合と"
+      u"味噌と少しの野菜をたべあらゆることを"
+      u"じぶんをかんじょうにいれずによくみききしわかり"
+      u"そしてわすれず野原の松の林の蔭の"
+      u"小さな萱ぶきの小屋にいて東に病気のこどもあれば"
+      u"行って看病してやり西につかれた母あれば"
+      u"行ってその稲の束を負い南に死にそうな人あれば"
+      u"行ってこわがらなくてもいいといい"
+      u"北にけんかやそしょうがあれば"
+      u"つまらないからやめろといいひでりのときはなみだをながし"
+      u"さむさのなつはおろおろあるきみんなにでくのぼうとよばれ"
+      u"ほめられもせずくにもされずそういうものにわたしはなりたい";
+
+const UChar *const CommonChars::arabic =
+      // Some Arabic for variety. "What is Unicode?"
+      // http://www.unicode.org/standard/translations/arabic.html
+      u"تتعامل الحواسيب بالأسام مع الأرقام فقط، "
+      u"و تخزن الحروف و المحارف "
+      u"الأخرى بتخصيص رقم لكل واحد "
+      u"منها. قبل اختراع يونيكود كان هناك ";
+
+// TODO: class BenchmarkPerCodePoint?
+
+class Operation {
+public:
+    Operation() {}
+    virtual ~Operation();
+    virtual double call(int32_t iterations, int32_t pieceLength) = 0;
+
+protected:
+    UTimer startTime;
+};
+
+Operation::~Operation() {}
+
+const int32_t kLengths[] = { 5, 12, 30, 100, 1000, 10000 };
+
+int32_t getMaxLength() { return kLengths[UPRV_LENGTHOF(kLengths) - 1]; }
+
+// Returns seconds per code point.
+double measure(Operation &op, int32_t pieceLength) {
+    // Increase the number of iterations until we use at least one second.
+    int32_t iterations = 1;
+    for (;;) {
+        double seconds = op.call(iterations, pieceLength);
+        if (seconds >= 1) {
+            if (iterations > 1) {
+                return seconds / (iterations * pieceLength);
+            } else {
+                // Run it once more, to avoid measuring only the warm-up.
+                return op.call(1, pieceLength) / (iterations * pieceLength);
+            }
+        }
+        if (seconds < 0.01) {
+            iterations *= 10;
+        } else if (seconds < 0.55) {
+            iterations *= 1.1 / seconds;
+        } else {
+            iterations *= 2;
+        }
+    }
+}
+
+void benchmark(const char *name, Operation &op) {
+    for (int32_t i = 0; i < UPRV_LENGTHOF(kLengths); ++i) {
+        int32_t pieceLength = kLengths[i];
+        double secPerCp = measure(op, pieceLength);
+        printf("%s  %6d  %12f ns/cp\n", name, (int)pieceLength, secPerCp * 1000000000);
+    }
+    puts("");
+}
+
+class NormalizeUTF16 : public Operation {
+public:
+    NormalizeUTF16(const Normalizer2 &n2, const UnicodeString &text) :
+            norm2(n2), src(text), s(src.getBuffer()) {}
+    virtual ~NormalizeUTF16();
+    virtual double call(int32_t iterations, int32_t pieceLength);
+
+private:
+    const Normalizer2 &norm2;
+    UnicodeString src;
+    const UChar *s;
+    UnicodeString dest;
+};
+
+NormalizeUTF16::~NormalizeUTF16() {}
+
+// Assumes all BMP characters.
+double NormalizeUTF16::call(int32_t iterations, int32_t pieceLength) {
+    int32_t start = 0;
+    int32_t limit = src.length() - pieceLength;
+    UnicodeString piece;
+    UErrorCode errorCode = U_ZERO_ERROR;
+    utimer_getTime(&startTime);
+    for (int32_t i = 0; i < iterations; ++i) {
+        piece.setTo(FALSE, s + start, pieceLength);
+        norm2.normalize(piece, dest, errorCode);
+        start = (start + pieceLength) % limit;
+    }
+    return utimer_getElapsedSeconds(&startTime);
+}
+
+class NormalizeUTF8 : public Operation {
+public:
+    NormalizeUTF8(const Normalizer2 &n2, const UnicodeString &text) : norm2(n2), sink(&dest) {
+        offsets = CommonChars::toUTF8WithOffsets(text, src, numCodePoints);
+        s = src.data();
+    }
+    virtual ~NormalizeUTF8();
+    virtual double call(int32_t iterations, int32_t pieceLength);
+
+private:
+    const Normalizer2 &norm2;
+    std::string src;
+    const char *s;
+    int32_t *offsets;
+    int32_t numCodePoints;
+    std::string dest;
+    icu::StringByteSink<std::string> sink;
+};
+
+NormalizeUTF8::~NormalizeUTF8() {
+    delete[] offsets;
+}
+
+double NormalizeUTF8::call(int32_t iterations, int32_t pieceLength) {
+    int32_t start = 0;
+    int32_t limit = numCodePoints - pieceLength;
+    UErrorCode errorCode = U_ZERO_ERROR;
+    utimer_getTime(&startTime);
+    for (int32_t i = 0; i < iterations; ++i) {
+        int32_t start8 = offsets[start];
+        int32_t limit8 = offsets[start + pieceLength];
+        icu::StringPiece piece(s + start8, limit8 - start8);
+        norm2.normalizeUTF8(0, piece, sink, nullptr, errorCode);
+        start = (start + pieceLength) % limit;
+    }
+    return utimer_getElapsedSeconds(&startTime);
+}
+
+}  // namespace
+
+extern int main(int /*argc*/, const char * /*argv*/[]) {
+    // More than the longest piece length so that we read from different parts of the string
+    // for that piece length.
+    int32_t maxLength = getMaxLength() * 10;
+    UErrorCode errorCode = U_ZERO_ERROR;
+    const Normalizer2 *nfc = Normalizer2::getNFCInstance(errorCode);
+    const Normalizer2 *nfkc_cf = Normalizer2::getNFKCCasefoldInstance(errorCode);
+    if (U_FAILURE(errorCode)) {
+        fprintf(stderr,
+                "simplenormperf: failed to get Normalizer2 instances - %s\n",
+                u_errorName(errorCode));
+    }
+    {
+        // Base line: Should remain in the fast loop without trie lookups.
+        NormalizeUTF16 op(*nfc, CommonChars::getLatin1(maxLength));
+        benchmark("NFC/UTF-16/latin1", op);
+    }
+    {
+        // Base line 2: Read UTF-8, trie lookups, but should have nothing to do.
+        NormalizeUTF8 op(*nfc, CommonChars::getJapanese(maxLength));
+        benchmark("NFC/UTF-8/japanese", op);
+    }
+    {
+        NormalizeUTF16 op(*nfkc_cf, CommonChars::getMixed(maxLength));
+        benchmark("NFKC_CF/UTF-16/mixed", op);
+    }
+    {
+        NormalizeUTF16 op(*nfkc_cf, CommonChars::getLowercaseLatin1(maxLength));
+        benchmark("NFKC_CF/UTF-16/lowercaseLatin1", op);
+    }
+    {
+        NormalizeUTF16 op(*nfkc_cf, CommonChars::getJapanese(maxLength));
+        benchmark("NFKC_CF/UTF-16/japanese", op);
+    }
+    {
+        NormalizeUTF8 op(*nfkc_cf, CommonChars::getMixed(maxLength));
+        benchmark("NFKC_CF/UTF-8/mixed", op);
+    }
+    {
+        NormalizeUTF8 op(*nfkc_cf, CommonChars::getLowercaseLatin1(maxLength));
+        benchmark("NFKC_CF/UTF-8/lowercaseLatin1", op);
+    }
+    {
+        NormalizeUTF8 op(*nfkc_cf, CommonChars::getJapanese(maxLength));
+        benchmark("NFKC_CF/UTF-8/japanese", op);
+    }
+    return 0;
+}
index 31d27b90dd4531ec586c050ca1c41be35e017e27..3e0324bf93dbc7790daefd5cae049ad460d08f95 100644 (file)
@@ -19,13 +19,14 @@ locale = en;
 AI = [:LineBreak =  Ambiguous:];
 AL = [:LineBreak =  Alphabetic:];
 BA = [:LineBreak =  Break_After:];
+HH = [\u2010];      # \u2010 is HYPHEN, default line break is BA.
 BB = [:LineBreak =  Break_Before:];
 BK = [:LineBreak =  Mandatory_Break:];
 B2 = [:LineBreak =  Break_Both:];
 CB = [:LineBreak =  Contingent_Break:];
 CJ = [:LineBreak =  Conditional_Japanese_Starter:];
 CL = [:LineBreak =  Close_Punctuation:];
-CM = [:LineBreak =  Combining_Mark:];
+CMS = [:LineBreak =  Combining_Mark:];
 CP = [:LineBreak =  Close_Parenthesis:];
 CR = [:LineBreak =  Carriage_Return:];
 EB = [:LineBreak =  EB:];
@@ -66,7 +67,7 @@ dictionary = SA;
 
 # By LB9, a ZWJ also behaves as a CM. Including it in the definition of CM avoids having to explicitly
 #         list it in the numerous rules that use CM.
-CM = [CM ZWJ];
+CM = [CMS ZWJ];
 
 LB4:        BK ÷;
 LB5:        CR LF;
@@ -86,14 +87,16 @@ LB15:        QU CM* SP* OP;
 LB16:        (CL | CP)CM* SP* NS;
 LB17:        B2 CM* SP* B2;
 
+# LB8, break after ZW SP*, precedes LB7 because they will both match the sequences like ZW SP,
+# and LB8 should take precedence.
+
+LB8:        ZW SP* ÷ [^ZW SP BK CR LF NL];
+
+# LB7 Do not break before spaces or zero width space.
+
 LB7.1:      [^ZW SP] CM* [SP ZW];
 LB7.2:      [ZW SP] [SP ZW];
 
-# LB8, ICU differs from UAX-14,
-#    ICU:    ZW ÷;
-#    UAX 14: ZW SP* ÷;
-LB8:        ZW ÷;
-
 # LB8a
 #      ZWJ x
 #      Don't match a CM on the right - let other rules pick up CM sequences, where
@@ -142,6 +145,9 @@ LB20.2:      . CM* ÷ CB;
 LB20.3:      CB CM* ZWJ [^CM];
 LB20.4:      CB CM* ÷;
 
+# LB 20.09    Don't break between Hyphens and Letters when there is a break preceding the hyphen.
+LB20.09:     ^(HY | HH) CM* AL;
+
 # Note: Rule 21a must come before 21 to prevent 21.1 from matching HL BA, then
 #       not picking up the continuing match after the BA from 21a.
 LB21a:       HL CM* (HY | BA) CM* [^CM CB];
@@ -188,8 +194,8 @@ LB30.1:      (AL | CM | HL | NU) CM* OP;
 LB30.2:      CP CM* (AL | HL | NU);
 
 # LB30a  keep pairs of RI together.
-LB30a.1:     RI CM* RI              ÷ [^BK CR LF NL SP ZW WJ CL CP EX IS SY GL QU BA HY NS CM];
-LB30a.2:     RI CM* RI CM* [CM-ZWJ] ÷ [^BK CR LF NL SP ZW WJ CL CP EX IS SY GL QU BA HY NS CM];
+LB30a.1:     RI CM* RI         ÷ [^BK CR LF NL SP ZW WJ CL CP EX IS SY GL QU BA HY NS CM];
+LB30a.2:     RI CM* RI CM* CMS ÷ [^BK CR LF NL SP ZW WJ CL CP EX IS SY GL QU BA HY NS CM];
 LB30a.3:     RI CM* RI CM* [BK CR LF NL SP ZW WJ GL CL CP EX IS SY QU BA HY NS ZWJ]?;
 
 # LB30b Do not break between Emoji Base and Emoji Modifier
index 00552fec7c06dd4c4fd3fea30acb4698edce42f4..8395192365fc9df17f07515b8fc6ce1bb2a13bc7 100644 (file)
@@ -26,13 +26,14 @@ locale = en@lb=loose;
 AI = [:LineBreak =  Ambiguous:];
 AL = [:LineBreak =  Alphabetic:];
 BA = [:LineBreak =  Break_After:];
+HH = [\u2010];      # \u2010 is HYPHEN, default line break is BA.
 BB = [:LineBreak =  Break_Before:];
 BK = [:LineBreak =  Mandatory_Break:];
 B2 = [:LineBreak =  Break_Both:];
 CB = [:LineBreak =  Contingent_Break:];
 CJ = [:LineBreak =  Conditional_Japanese_Starter:];
 CL = [:LineBreak =  Close_Punctuation:];
-CM = [:LineBreak =  Combining_Mark:];
+CMS = [:LineBreak =  Combining_Mark:];
 CP = [:LineBreak =  Close_Parenthesis:];
 CR = [:LineBreak =  Carriage_Return:];
 EB = [:LineBreak =  EB:];
@@ -74,7 +75,7 @@ dictionary = SA;
 
 # By LB9, a ZWJ also behaves as a CM. Including it in the definition of CM avoids having to explicitly
 #         list it in the numerous rules that use CM.
-CM = [CM ZWJ];
+CM = [CMS ZWJ];
 
 LB4:        BK ÷;
 LB5:        CR LF;
@@ -94,14 +95,16 @@ LB15:        QU CM* SP* OP;
 LB16:        (CL | CP)CM* SP* NS;
 LB17:        B2 CM* SP* B2;
 
+# LB8, break after ZW SP*, precedes LB7 because they will both match the sequences like ZW SP,
+# and LB8 should take precedence.
+
+LB8:        ZW SP* ÷ [^ZW SP BK CR LF NL];
+
+# LB7 Do not break before spaces or zero width space.
+
 LB7.1:      [^ZW SP] CM* [SP ZW];
 LB7.2:      [ZW SP] [SP ZW];
 
-# LB8, ICU differs from UAX-14,
-#    ICU:    ZW ÷;
-#    UAX 14: ZW SP* ÷;
-LB8:        ZW ÷;
-
 # LB8a
 #      ZWJ x
 #      Don't match a CM on the right - let other rules pick up CM sequences, where
@@ -123,7 +126,7 @@ LB12:        GL CM* [^CM];
 
 LB12a:       [^SP BA HY] CM* GL;
 
-# LB 13 ICU Tailoring, matches tailoring exmaple 8 from UAX 14.
+# LB 13 ICU Tailoring, matches tailoring example 8 from UAX 14.
 #
 #   LB13.1   [^SP] CM* [CL CP EX IS SY]    # original UAX 14 rule.
 #   LB13.2   SP    CM* [CL CP EX IS SY]
@@ -150,6 +153,9 @@ LB20.2:      . CM* ÷ CB;
 LB20.3:      CB CM* ZWJ [^CM];
 LB20.4:      CB CM* ÷;
 
+# LB 20.09    Don't break between Hyphens and Letters when there is a break preceding the hyphen.
+LB20.09:     ^(HY | HH) CM* AL;
+
 # Note: Rule 21a must come before 21 to prevent 21.1 from matching HL BA, then
 #       not picking up the continuing match after the BA from 21a.
 LB21a:       HL CM* (HY | BA) CM* [^CM CB];
@@ -174,7 +180,7 @@ LB23a.2:     (ID | EB | EM) CM* PO;
 LB24.2:      (PR | PO) CM* (AL | HL);
 LB24.3:      (AL | HL | CM) CM* (PR | PO);
 
-# Numbers. Equivalent to Tailoring example 8 from UAx 14.
+# Numbers. Equivalent to Tailoring example 8 from UAX 14.
 LB25:        ((PR | PO)CM*)? ((OP | HY)CM*)? NU (CM*(NU | SY | IS))* (CM*(CL | CP))? (CM*(PR | PO))?;
 
 LB26.1:      JL CM* (JL | JV | H2 | H3);
@@ -196,8 +202,8 @@ LB30.1:      (AL | CM | HL | NU) CM* OP;
 LB30.2:      CP CM* (AL | HL | NU);
 
 # LB30a  keep pairs of RI together.
-LB30a.1:     RI CM* RI              ÷ [^BK CR LF NL SP ZW WJ CL CP EX IS SY GL QU BA HY NS CM];
-LB30a.2:     RI CM* RI CM* [CM-ZWJ] ÷ [^BK CR LF NL SP ZW WJ CL CP EX IS SY GL QU BA HY NS CM];
+LB30a.1:     RI CM* RI         ÷ [^BK CR LF NL SP ZW WJ CL CP EX IS SY GL QU BA HY NS CM];
+LB30a.2:     RI CM* RI CM* CMS ÷ [^BK CR LF NL SP ZW WJ CL CP EX IS SY GL QU BA HY NS CM];
 LB30a.3:     RI CM* RI CM* [BK CR LF NL SP ZW WJ GL CL CP EX IS SY QU BA HY NS ZWJ]?;
 
 # LB30b Do not break between Emoji Base and Emoji Modifier
index 59c21fd3d9a37de1fffe62fdc0235d7672ce68c3..d674327102badde51dd4c74fc87fddf0f2a63e55 100644 (file)
@@ -37,16 +37,17 @@ locale = ja@lb=loose;
 
 
 AI = [:LineBreak =  Ambiguous:];
-AL = [[:LineBreak =  Alphabetic:]];
+AL = [:LineBreak =  Alphabetic:];
 BAX = [\u2010 \u2013];
 BA = [[:LineBreak =  Break_After:] - BAX];
+HH = [\u2010];      # \u2010 is HYPHEN, default line break is BA.
 BB = [:LineBreak =  Break_Before:];
 BK = [:LineBreak =  Mandatory_Break:];
 B2 = [:LineBreak =  Break_Both:];
 CB = [:LineBreak =  Contingent_Break:];
 CJ = [:LineBreak =  Conditional_Japanese_Starter:];
 CL = [:LineBreak =  Close_Punctuation:];
-CM = [:LineBreak =  Combining_Mark:];
+CMS = [:LineBreak =  Combining_Mark:];
 CP = [:LineBreak =  Close_Parenthesis:];
 CR = [:LineBreak =  Carriage_Return:];
 EB = [:LineBreak =  EB:];
@@ -91,7 +92,7 @@ dictionary = SA;
 
 # By LB9, a ZWJ also behaves as a CM. Including it in the definition of CM avoids having to explicitly
 #         list it in the numerous rules that use CM.
-CM = [CM ZWJ];
+CM = [CMS ZWJ];
 
 LB4:        BK ÷;
 LB5:        CR LF;
@@ -111,14 +112,16 @@ LB15:        QU CM* SP* OP;
 LB16:        (CL | CP)CM* SP* NS;
 LB17:        B2 CM* SP* B2;
 
+# LB8, break after ZW SP*, precedes LB7 because they will both match the sequences like ZW SP,
+# and LB8 should take precedence.
+
+LB8:        ZW SP* ÷ [^ZW SP BK CR LF NL];
+
+# LB7 Do not break before spaces or zero width space.
+
 LB7.1:      [^ZW SP] CM* [SP ZW];
 LB7.2:      [ZW SP] [SP ZW];
 
-# LB8, ICU differs from UAX-14,
-#    ICU:    ZW ÷;
-#    UAX 14: ZW SP* ÷;
-LB8:        ZW ÷;
-
 # LB8a
 #      ZWJ x
 #      Don't match a CM on the right - let other rules pick up CM sequences, where
@@ -167,6 +170,9 @@ LB20.2:      . CM* ÷ CB;
 LB20.3:      CB CM* ZWJ [^CM];
 LB20.4:      CB CM* ÷;
 
+# LB 20.09    Don't break between Hyphens and Letters when there is a break preceding the hyphen.
+LB20.09:     ^(HY | HH) CM* AL;
+
 # Note: Rule 21a must come before 21 to prevent 21.1 from matching HL BA, then
 #       not picking up the continuing match after the BA from 21a.
 # LB 21a Don't break after Hebrew + Hyphen
@@ -217,8 +223,8 @@ LB30.1:      (AL | CM | HL | NU) CM* OP;
 LB30.2:      CP CM* (AL | HL | NU);
 
 # LB30a  keep pairs of RI together.
-LB30a.1:     RI CM* RI              ÷ [^BK CR LF NL SP ZW WJ CL CP EX IS SY GL QU BA HY NS CM];
-LB30a.2:     RI CM* RI CM* [CM-ZWJ] ÷ [^BK CR LF NL SP ZW WJ CL CP EX IS SY GL QU BA HY NS CM];
+LB30a.1:     RI CM* RI         ÷ [^BK CR LF NL SP ZW WJ CL CP EX IS SY GL QU BA HY NS CM];
+LB30a.2:     RI CM* RI CM* CMS ÷ [^BK CR LF NL SP ZW WJ CL CP EX IS SY GL QU BA HY NS CM];
 LB30a.3:     RI CM* RI CM* [BK CR LF NL SP ZW WJ GL CL CP EX IS SY QU BA HY NS ZWJ]?;
 
 # LB30b Do not break between Emoji Base and Emoji Modifier
index 7cf2613a85511feac0a59cad20846375cad7cc9c..7f5b91c42abf09dad39b52842398a2cf171a7220 100644 (file)
@@ -33,13 +33,14 @@ locale = en@lb=normal;
 AI = [:LineBreak =  Ambiguous:];
 AL = [:LineBreak =  Alphabetic:];
 BA = [:LineBreak =  Break_After:];
+HH = [\u2010];      # \u2010 is HYPHEN, default line break is BA.
 BB = [:LineBreak =  Break_Before:];
 BK = [:LineBreak =  Mandatory_Break:];
 B2 = [:LineBreak =  Break_Both:];
 CB = [:LineBreak =  Contingent_Break:];
 CJ = [:LineBreak =  Conditional_Japanese_Starter:];
 CL = [:LineBreak =  Close_Punctuation:];
-CM = [:LineBreak =  Combining_Mark:];
+CMS = [:LineBreak =  Combining_Mark:];
 CP = [:LineBreak =  Close_Parenthesis:];
 CR = [:LineBreak =  Carriage_Return:];
 EB = [:LineBreak =  EB:];
@@ -80,7 +81,7 @@ dictionary = SA;
 
 # By LB9, a ZWJ also behaves as a CM. Including it in the definition of CM avoids having to explicitly
 #         list it in the numerous rules that use CM.
-CM = [CM ZWJ];
+CM = [CMS ZWJ];
 
 LB4:        BK ÷;
 LB5:        CR LF;
@@ -100,14 +101,16 @@ LB15:        QU CM* SP* OP;
 LB16:        (CL | CP)CM* SP* NS;
 LB17:        B2 CM* SP* B2;
 
+# LB8, break after ZW SP*, precedes LB7 because they will both match the sequences like ZW SP,
+# and LB8 should take precedence.
+
+LB8:        ZW SP* ÷ [^ZW SP BK CR LF NL];
+
+# LB7 Do not break before spaces or zero width space.
+
 LB7.1:      [^ZW SP] CM* [SP ZW];
 LB7.2:      [ZW SP] [SP ZW];
 
-# LB8, ICU differs from UAX-14,
-#    ICU:    ZW ÷;
-#    UAX 14: ZW SP* ÷;
-LB8:        ZW ÷;
-
 # LB8a
 #      ZWJ x
 #      Don't match a CM on the right - let other rules pick up CM sequences, where
@@ -156,6 +159,9 @@ LB20.2:      . CM* ÷ CB;
 LB20.3:      CB CM* ZWJ [^CM];
 LB20.4:      CB CM* ÷;
 
+# LB 20.09    Don't break between Hyphens and Letters when there is a break preceding the hyphen.
+LB20.09:     ^(HY | HH) CM* AL;
+
 # Note: Rule 21a must come before 21 to prevent 21.1 from matching HL BA, then
 #       not picking up the continuing match after the BA from 21a.
 LB21a:       HL CM* (HY | BA) CM* [^CM CB];
@@ -202,8 +208,8 @@ LB30.1:      (AL | CM | HL | NU) CM* OP;
 LB30.2:      CP CM* (AL | HL | NU);
 
 # LB30a  keep pairs of RI together.
-LB30a.1:     RI CM* RI              ÷ [^BK CR LF NL SP ZW WJ CL CP EX IS SY GL QU BA HY NS CM];
-LB30a.2:     RI CM* RI CM* [CM-ZWJ] ÷ [^BK CR LF NL SP ZW WJ CL CP EX IS SY GL QU BA HY NS CM];
+LB30a.1:     RI CM* RI         ÷ [^BK CR LF NL SP ZW WJ CL CP EX IS SY GL QU BA HY NS CM];
+LB30a.2:     RI CM* RI CM* CMS ÷ [^BK CR LF NL SP ZW WJ CL CP EX IS SY GL QU BA HY NS CM];
 LB30a.3:     RI CM* RI CM* [BK CR LF NL SP ZW WJ GL CL CP EX IS SY QU BA HY NS ZWJ]?;
 
 # LB30b Do not break between Emoji Base and Emoji Modifier
index 3af4a582db1cd72225cf9a21b483e8e74e1e2b61..cf90751715ce5a34421643e868f3f7a6d3ee7cad 100644 (file)
@@ -34,13 +34,14 @@ AI = [:LineBreak =  Ambiguous:];
 AL = [:LineBreak =  Alphabetic:];
 BAX = [\u2010 \u2013];
 BA = [[:LineBreak =  Break_After:] - BAX];
+HH = [\u2010];      # \u2010 is HYPHEN, default line break is BA.
 BB = [:LineBreak =  Break_Before:];
 BK = [:LineBreak =  Mandatory_Break:];
 B2 = [:LineBreak =  Break_Both:];
 CB = [:LineBreak =  Contingent_Break:];
 CJ = [:LineBreak =  Conditional_Japanese_Starter:];
 CL = [:LineBreak =  Close_Punctuation:];
-CM = [:LineBreak =  Combining_Mark:];
+CMS = [:LineBreak =  Combining_Mark:];
 CP = [:LineBreak =  Close_Parenthesis:];
 CR = [:LineBreak =  Carriage_Return:];
 EB = [:LineBreak =  EB:];
@@ -82,7 +83,7 @@ dictionary = SA;
 
 # By LB9, a ZWJ also behaves as a CM. Including it in the definition of CM avoids having to explicitly
 #         list it in the numerous rules that use CM.
-CM = [CM ZWJ];
+CM = [CMS ZWJ];
 
 LB4:        BK ÷;
 LB5:        CR LF;
@@ -105,14 +106,16 @@ LB15:        QU CM* SP* OP;
 LB16:        (CL | CP)CM* SP* NS;
 LB17:        B2 CM* SP* B2;
 
+# LB8, break after ZW SP*, precedes LB7 because they will both match the sequences like ZW SP,
+# and LB8 should take precedence.
+
+LB8:        ZW SP* ÷ [^ZW SP BK CR LF NL];
+
+# LB7 Do not break before spaces or zero width space.
+
 LB7.1:      [^ZW SP] CM* [SP ZW];
 LB7.2:      [ZW SP] [SP ZW];
 
-# LB8, ICU differs from UAX-14,
-#    ICU:    ZW ÷;
-#    UAX 14: ZW SP* ÷;
-LB8:        ZW ÷;
-
 # LB8a
 #      ZWJ x
 #      Don't match a CM on the right - let other rules pick up CM sequences, where
@@ -161,6 +164,9 @@ LB20.2:      . CM* ÷ CB;
 LB20.3:      CB CM* ZWJ [^CM];
 LB20.4:      CB CM* ÷;
 
+# LB 20.09    Don't break between Hyphens and Letters when there is a break preceding the hyphen.
+LB20.09:     ^(HY | HH) CM* AL;
+
 # Note: Rule 21a must come before 21 to prevent 21.1 from matching HL BA, then
 #       not picking up the continuing match after the BA from 21a.
 # TODO: For CJ tailorings (with BAX) does this rule want to include BAX? If so,
@@ -211,8 +217,8 @@ LB30.1:      (AL | CM | HL | NU) CM* OP;
 LB30.2:      CP CM* (AL | HL | NU);
 
 # LB30a  keep pairs of RI together.
-LB30a.1:     RI CM* RI              ÷ [^BK CR LF NL SP ZW WJ CL CP EX IS SY GL QU BA HY NS CM];
-LB30a.2:     RI CM* RI CM* [CM-ZWJ] ÷ [^BK CR LF NL SP ZW WJ CL CP EX IS SY GL QU BA HY NS CM];
+LB30a.1:     RI CM* RI         ÷ [^BK CR LF NL SP ZW WJ CL CP EX IS SY GL QU BA HY NS CM];
+LB30a.2:     RI CM* RI CM* CMS ÷ [^BK CR LF NL SP ZW WJ CL CP EX IS SY GL QU BA HY NS CM];
 LB30a.3:     RI CM* RI CM* [BK CR LF NL SP ZW WJ GL CL CP EX IS SY QU BA HY NS ZWJ]?;
 
 # LB30b Do not break between Emoji Base and Emoji Modifier
index c0364e2c1b0b0b0c362895eb3a14ffbfec7ff20b..18bacecee5b9f4a8b0f6ee15f6fc696bfacdd45b 100644 (file)
@@ -187,21 +187,21 @@ format:table(nofallback) {
                     "",
                     "DATE=RELATIVE_SHORT",
                     "RELATIVE_ADD:DATE=1", // one day from now
-                    "Għada"
+                    "għada"
                },
                {
                     "mt_MT@calendar=gregorian",         
                     "",
                     "DATE=RELATIVE_SHORT",
                     "RELATIVE_MILLIS=0", // today
-                    "Illum"
+                    "illum"
                },
                {
                     "mt_MT@calendar=gregorian",         
                     "",
                     "DATE=RELATIVE_SHORT",
                     "RELATIVE_ADD:DATE=-1", // one day before now
-                    "Ilbieraħ"
+                    "lbieraħ"
                },
                {
                     "ru",
index a953ce04679d7f98e66e053a9ac8b62d6c283a18..6ff99a8f2018644d876bf4d68da1b41685be9b3d 100644 (file)
@@ -32,15 +32,16 @@ test basic patterns
 set locale fr_FR
 set format 1234.567
 begin
-pattern        output
-#,##0.##       1\u00a0234,57
+pattern        output  breaks
+// K does not use \u202f narrow space
+#,##0.##       1\u202f234,57   K
 0.##   1234,57
 0      1235
-#,##0.###      1\u00a0234,567
+#,##0.###      1\u202f234,567  K
 ###0.######    1234,567
 ###0.0000#     1234,5670
 00000.0000     01234,5670
-#,##0.00 \u00a4        1\u00a0234,57 \u20ac
+#,##0.00 \u00a4        1\u202f234,57 \u20ac    K
 'tick''bitten '0.00    tick'bitten 1234,57
 'tick' 'bitten '0.00   tick bitten 1234,57
 
@@ -151,7 +152,7 @@ pattern     format  output  breaks
 4      10.0    8       K
 2.70   99.0    99,90   K
 2.73   272.0   273,00  K
-#,#3.70        104.0   1\u00a003,60    K
+#,#3.70        104.0   1\u202f03,60    K
 
 test significant digits
 set locale en
@@ -212,9 +213,9 @@ pattern     format  output  breaks
 p%p0.0 0.573   p%p57,3
 p'%'p0.0       0.573   p%p0,6
 %@@@@  0.0326  %3,260  K
-%#,@@@ 15.43   %1\u00a0540     K
+%#,@@@ 15.43   %1\u202f540     K
 // JDK does not support rounding increments
-%#,##4.1       16.55   %1\u00a0656,4   K
+%#,##4.1       16.55   %1\u202f656,4   K
 // JDK gives %16,255E3
 %##0.00E0      162.55  %16,3E3 K
 
@@ -227,8 +228,8 @@ pattern     format  output  breaks
 p\u2030p0.0    0.573   p\u2030p573,0
 p'\u2030'p0.0  0.573   p\u2030p0,6
 \u2030@@@@     0.0326  \u203032,60     K
-\u2030#,@@@    15.43   \u203015\u00a0400       K
-\u2030#,##4.1  16.55   \u203016\u00a0551,7     K
+\u2030#,@@@    15.43   \u203015\u202f400       K
+\u2030#,##4.1  16.55   \u203016\u202f551,7     K
 // JDK gives \u2030162,55E3
 \u2030##0.00E0 162.55  \u2030163E3     K
 
@@ -237,13 +238,13 @@ set locale fr_FR
 begin
 pattern        format  output  breaks
 // JDK does not seem to support padding
-$**####,##0    1234    $***1\u00a0234  K
-*x$####,##0    1234    xxx$1\u00a0234  K
-####,##0*x$    1234    1\u00a0234xxx$  K
-####,##0$*x    1234    1\u00a0234$xxx  K
+$**####,##0    1234    $***1\u202f234  K
+*x$####,##0    1234    xxx$1\u202f234  K
+####,##0*x$    1234    1\u202f234xxx$  K
+####,##0$*x    1234    1\u202f234$xxx  K
 // JDK doesn't seem to handle suffixes correctly dropping the 'nx' entirely
-####,##0$*x;ne#n       -1234   ne1\u00a0234nx  K
-####,##0$*x;n#'*'      -1234   n1\u00a0234*xx  K
+####,##0$*x;ne#n       -1234   ne1\u202f234nx  K
+####,##0$*x;n#'*'      -1234   n1\u202f234*xx  K
 *y%4.2######   4.33    yyyy%432,6      K
 // In J ICU adds padding as if 'EUR' is only 2 chars (2 * 0xa4)
 \u00a4\u00a4 **####0.00        433.0   EUR *433,00     HK
@@ -266,10 +267,10 @@ set format 1234.567
 begin
 pattern        currency        output  breaks
 // JDK gives shows EUR instead of the euro symbol in this case
-#,##0.00 \u00a4        EUR     1\u00a0234,57 \u20ac    K
+#,##0.00 \u00a4        EUR     1\u202f234,57 \u20ac    K
 // JDK gives 1\u00A0234,57. JDK doesn't seem to correct rounding
 // based on currency.
-#,##0.00 \u00a4        JPY     1\u00a0235 JPY  K
+#,##0.00 \u00a4        JPY     1\u202f235 JPY  K
 
 test prefixes and suffixes
 set locale en
@@ -353,6 +354,15 @@ minIntegerDigits   maxIntegerDigits        minFractionDigits       maxFractionDigits       output  bre
 // JDK fails here because it tries to use 9 + 6 = 15 sig digits.
 2      9       1       6       29.979246E7     K
 
+test ticket 20058
+set locale en
+begin
+pattern        format  output  breaks
+#00.0##E0      0       0.0E0   K
+#00.0##E0      1.2     1.2E0   K
+#00.0E0        0       0.0E0   K
+#00.0E0        1.2     1.2E0   K
+
 test significant digits scientific
 set locale en
 set pattern #E0
@@ -1668,7 +1678,32 @@ pattern  lenient parse   output  breaks
 0E0'.'x        1       5E3.x   5000
 0E0'.'x        0       5E3.x   5000
 
-test parse lowercase currency
+test parse() lowercase currency
+set locale en
+set pattern ¤¤0
+set currency USD
+begin
+parse  output  breaks
+USD123 123
+USD 123        123     HK
+usd123 123     K
+usd 123        123     HK
+Usd123 123     K
+Usd 123        123     HK
+// US$ is not used for US dollars in en-US
+US$123 fail    H
+us$123 fail
+Us$123 fail
+123 US dollars 123     K
+123 US DOLLARS 123     K
+123 us dollars 123     K
+// Foreign currencies are not accepted in .parse()
+GBP123 fail
+gbp123 fail
+British pounds 123     fail
+british POUNDS 123     fail
+
+test parseCurrency() lowercase currency
 set locale en
 set pattern ¤¤0
 set currency USD
@@ -1676,17 +1711,20 @@ begin
 parse  output  outputCurrency  breaks
 USD123 123     USD
 USD 123        123     USD     H
-// C does not currently accept case-insensitive ISO codes
-usd123 123     USD     C
-usd 123        123     USD     CH
-Usd123 123     USD     C
-Usd 123        123     USD     CH
+usd123 123     USD
+usd 123        123     USD     H
+Usd123 123     USD
+Usd 123        123     USD     H
 US$123 123     USD     C
 us$123 fail    fail
 Us$123 fail    fail
 123 US dollars 123     USD
 123 US DOLLARS 123     USD
 123 us dollars 123     USD
+GBP123 123     GBP
+gbp123 123     GBP     C
+British pounds 123     123     GBP     H
+british POUNDS 123     123     GBP     H
 
 
 
index 887f6e5379f1f6f9f5812320cdbaf4d11b420220..63ba172233d857844b2a2c833369670d907466f8 100644 (file)
 <data><0>より<400>詳しい<400>こと<400>を<400>お<400>知<400>り<400>に<400>なり<400>たい<400>方<400>は<400>、<0>Glossary<200>,<0> <0>\
 Technical<200> <0>Introduction<200> <0>および<400> <0>Useful<200> <0>Resources<200>を<400>ご<400>参照<400>くだ<400>さい<400>。<0></data>
 
+#
+# Bug ICU-13334  Report of different boundaries between Windows and Linux.
+#
+<data><0>丙酮<400></data>
 
 ########################################################################################
 #
@@ -764,6 +768,16 @@ Calls to xxx will return an implementor of this interface.  \u2029•</data>
 <line>
 <data>•</data>
 
+# Bug #13664 Mixed Thai & English text had different boundaries between forward & reverse.
+#
+<line>
+<data>•Northern •Thailand •is •a •mountainous •area. •Parallel •mountain •ranges •extend •from •the •\
+Daen •Lao •Range •(ทิว•เขา•แดน•ลาว), •in •the •southern •region •of •the •Shan •Hills, •in •a •\
+north/•south •direction, •the •Dawna •Range •(ทิว•เขา•ดอย•มอน•กุ•จู) •forming •the •western •border •of •Thailand •\
+between •Mae •Hong •Son •and •the •Salween •River, •the •Thanon •Thong •Chai •Range •(เทือก•เขา•ถนน•ธงชัย), •\
+the •Khun •Tan •Range •(ดอย•ขุน•ตาน), •the •Phi •Pan •Nam •Range •(ทิว•เขา•ผี•ปัน•น้ำ), •as •well •as •the •western •\
+part •of •the •Luang •Prabang •Range •(ทิว•เขา•หลวง•พระ•บาง).•</data>
+
 
 ########################################################################################
 #
@@ -1072,23 +1086,21 @@ Bangkok)•</data>
 # Finnish line breaking
 #
 # These rules deal with hyphens when there is a space on the leading side.
-# There should be a break opportunity between the space and the hyphen, and not after the hyphen.
+# When followed by a letter, there should be a break opportunity between
+# the space and the hyphen, and not after the hyphen.
 # See CLDR ticket 3029.
 # See ICU ticket 8151
+# As of ICU 63, the Finnish tailoring behavior is moved to root.
 
 <locale root>
 <line>
-<data>•abc •- •def    •abc •-def    •abc- •def   •abc-•def•</data>   # With ASCII hyphen
-<data>•abc •‐ •def    •abc •‐def    •abc‐ •def   •abc‐•def•</data>   # With Unicode u2010 hyphen
+<data>•abc •- •def    •abc •-def    •abc- •def   •abc-•def•</data>   # With ASCII hyphen
+<data>•abc •‐ •def    •abc •‐def    •abc‐ •def   •abc‐•def•</data>   # With Unicode u2010 hyphen
 
 <locale fi>
 <line>
-# TODO: problems with Finnish line break rules cause these two lines to fail.
-#<data>•abc •- •def    •abc •-def    •abc- •def   •abc-•def•</data>   # With ASCII hyphen
-#<data>•abc •‐ •def    •abc •‐def    •abc‐ •def   •abc‐•def•</data>   # With Unicode u2010 hyphen
-
-<data>•abc •- •def    •abc •-def    •abc- •def   •</data>   # With ASCII hyphen
-<data>•abc •‐ •def    •abc •‐def    •abc‐ •def   •</data>   # With Unicode u2010 hyphen
+<data>•abc •- •def    •abc •-def    •abc- •def   •abc-•def•</data>   # With ASCII hyphen
+<data>•abc •‐ •def    •abc •‐def    •abc‐ •def   •abc‐•def•</data>   # With Unicode u2010 hyphen
 
 # Test for #10176 (in fi)
 <line>
index 977a7b34590c7d6a0a13a03ba7e341371f37eba9..ee7bdf2227efed107bd9173095c178aaef7f01cc 100644 (file)
 "abc"                  Z3       "abc abc <0>abc</0> xyz"
 "abc"                  z4       "abc abc abc xyz"
 
+# Bug #13844  Verify that non-standard Java property names are recognized.
+"[\p{IsAlphabetic}]"            " <0>A</0>"
+"[\P{IsAlphabetic}]"            "A<0> </0>"
+"[\p{IsIdeographic}]"           "A<0>〆</0>"
+"[\P{IsIdeographic}]"           "〆<0>A</0>"
+"[\p{IsLetter}]"                " <0>A</0>"
+"[\P{IsLetter}]"                "A<0> </0>"
+"[\p{Letter}]"                  " <0>A</0>"
+"[\p{IsLowercase}]"             "A<0>a</0>"
+"[\P{IsLowercase}]"             "a<0>A</0>"
+"[\p{IsUppercase}]"             "a<0>A</0>"
+"[\P{IsUppercase}]"             "A<0>a</0>"
+"[\p{IsTitlecase}]"             "D<0>Dz</0>"
+"[\P{IsTitlecase}]"             "Dz<0>D</0>"
+"[\p{IsPunctuation}]"           " <0>&</0>"
+"[\P{IsPunctuation}]"           "&<0> </0>"
+"[\p{IsControl}]"               " <0>\x{82}</0>"
+"[\P{IsControl}]"               "\x{82}<0> </0>"
+"[\p{IsWhite_Space}]"           "x<0> </0>"
+"[\P{IsWhite_Space}]"           " <0>x</0>"
+"[\p{IsDigit}]"                 " <0>4</0>"
+"[\P{IsDigit}]"                 "4<0> </0>"
+"[\p{IsHex_Digit}]"             " <0>F</0>"
+"[\P{IsHex_Digit}]"             "F<0> </0>"
+"[\p{IsJoin_Control}]"          " <0>\x{200d}</0>"
+"[\P{IsJoin_Control}]"          "\x{200d}<0> </0>"
+"[\p{IsNoncharacter_Code_Point}]"     "A<0>\x{5fffe}</0>"
+"[\p{IsAssigned}]"              "\x{10ffff}<0>a</0>"
+"[\P{IsAssigned}]"              "a<0>\x{10ffff}</0>"
+
+"[\p{InBasic Latin}]"           "〆<0>A</0>"
+"[\p{InBasicLatin}]"            "〆<0>A</0>"
+"[\p{InBasic-Latin}]"           "〆<0>A</0>"    # ICU accepts '-'; Java does not.
+"[\p{InBasic_Latin}]"           "〆<0>A</0>"
+"[\p{Inbasiclatin}]"            "〆<0>A</0>"
+"[\p{inbasiclatin}]"       E    "〆<0>A</0>"    # "In" must be cased as shown. Property name part is case insensitive.
+"[\p{InCombining_Marks_for_Symbols}]"    "a<0>\x{20DD}</0>"    # COMBINING ENCLOSING CIRCLE
+
+"[\p{all}]*"                    "<0>\x{00}abc\x{10ffff}</0>"
+"[\p{javaBadProperty}]"    E    "whatever"
+"[\p{IsBadProperty}]"      E    "whatever"
+"[\p{InBadBlock}]"         E    "whatever"
+"[\p{In}]"                 E    "whatever"
+"[\p{Is}]"                 E    "whatever"
+"[\p{java}]"                    "x<0>ꦉ</0>"      # Note: "java" is a valid script code.
+
+"[\p{javaLowerCase}]+"             "A<0>a</0>"
+"[\p{javaLowerCase}]+"     i       "<0>Aa</0>"
+"[\P{javaLowerCase}]+"             "<0>A</0>a"
+"[\P{javaLowerCase}]+"     i       "Aa"          # No Match because case fold of the set happens first, then negation.
+                                                 #  JDK is not case insensitive w named properties, even though
+                                                 #  the insensitive match flag is set. A JDK bug?
+
+"[a-z]+"                   i       "<0>Aa</0>"   # Matches JDK behavior.
+"[^a-z]+"                  i       "Aa"          # (no match) which is JDK behavior. Case fold first, then negation.
+
 #  Random debugging, Temporary
 #
 
index b6c10eec531a239e80a6e39ab9f8211ed068b83b..49185965b1076aaa301097f22defecbbfeb4115c 100644 (file)
@@ -13,8 +13,8 @@
 root
 {
     Version { 44.0 }
-    ExpectCLDRVersionAtLeast { 33.1 } // 'base' cldr version. Allow up to version =.=.* of this
-    CurrentCLDRVersion { 33.1 } // Current CLDR version as of the test update. Warn if not an exact match.
+    ExpectCLDRVersionAtLeast { 34.0 } // 'base' cldr version. Allow up to version =.=.* of this
+    CurrentCLDRVersion { 34.0 } // Current CLDR version as of the test update. Warn if not an exact match.
 
     ShortLanguage { xxx }
 
index a49de07741ddd742207bc9082c014f4a7522a3c5..d3182edb83c0da2c03aaa994609e44a206e609d3 100644 (file)
@@ -6081,7 +6081,9 @@ structLocale:table(nofallback){
     NumberElements{
         arab{
             miscPatterns{
+                approximately{""}
                 atLeast{""}
+                atMost{""}
                 range{""}
             }
             patterns{
@@ -6408,7 +6410,9 @@ structLocale:table(nofallback){
         }
         arabext{
             miscPatterns{
+                approximately{""}
                 atLeast{""}
+                atMost{""}
                 range{""}
             }
             patterns{
@@ -6735,7 +6739,9 @@ structLocale:table(nofallback){
         }
         bali{
             miscPatterns{
+                approximately{""}
                 atLeast{""}
+                atMost{""}
                 range{""}
             }
             patterns{
@@ -7062,7 +7068,9 @@ structLocale:table(nofallback){
         }
         beng{
             miscPatterns{
+                approximately{""}
                 atLeast{""}
+                atMost{""}
                 range{""}
             }
             patterns{
@@ -7389,7 +7397,9 @@ structLocale:table(nofallback){
         }
         brah{
             miscPatterns{
+                approximately{""}
                 atLeast{""}
+                atMost{""}
                 range{""}
             }
             patterns{
@@ -7716,7 +7726,9 @@ structLocale:table(nofallback){
         }
         cakm{
             miscPatterns{
+                approximately{""}
                 atLeast{""}
+                atMost{""}
                 range{""}
             }
             patterns{
@@ -8043,7 +8055,9 @@ structLocale:table(nofallback){
         }
         cham{
             miscPatterns{
+                approximately{""}
                 atLeast{""}
+                atMost{""}
                 range{""}
             }
             patterns{
@@ -8372,7 +8386,9 @@ structLocale:table(nofallback){
         default_latn{""}
         deva{
             miscPatterns{
+                approximately{""}
                 atLeast{""}
+                atMost{""}
                 range{""}
             }
             patterns{
@@ -8700,7 +8716,338 @@ structLocale:table(nofallback){
         finance{""}
         fullwide{
             miscPatterns{
+                approximately{""}
                 atLeast{""}
+                atMost{""}
+                range{""}
+            }
+            patterns{
+                accountingFormat{""}
+                currencyFormat{""}
+                decimalFormat{""}
+                percentFormat{""}
+                scientificFormat{""}
+            }
+            patternsLong{
+                decimalFormat{
+                    1000{
+                        zero{""}
+                        one{""}
+                        two{""}
+                        few{""}
+                        many{""}
+                        other{""}
+                    }
+                    10000{
+                        zero{""}
+                        one{""}
+                        two{""}
+                        few{""}
+                        many{""}
+                        other{""}
+                    }
+                    100000{
+                        zero{""}
+                        one{""}
+                        two{""}
+                        few{""}
+                        many{""}
+                        other{""}
+                    }
+                    1000000{
+                        zero{""}
+                        one{""}
+                        two{""}
+                        few{""}
+                        many{""}
+                        other{""}
+                    }
+                    10000000{
+                        zero{""}
+                        one{""}
+                        two{""}
+                        few{""}
+                        many{""}
+                        other{""}
+                    }
+                    100000000{
+                        zero{""}
+                        one{""}
+                        two{""}
+                        few{""}
+                        many{""}
+                        other{""}
+                    }
+                    1000000000{
+                        zero{""}
+                        one{""}
+                        two{""}
+                        few{""}
+                        many{""}
+                        other{""}
+                    }
+                    10000000000{
+                        zero{""}
+                        one{""}
+                        two{""}
+                        few{""}
+                        many{""}
+                        other{""}
+                    }
+                    100000000000{
+                        zero{""}
+                        one{""}
+                        two{""}
+                        few{""}
+                        many{""}
+                        other{""}
+                    }
+                    1000000000000{
+                        zero{""}
+                        one{""}
+                        two{""}
+                        few{""}
+                        many{""}
+                        other{""}
+                    }
+                    10000000000000{
+                        zero{""}
+                        one{""}
+                        two{""}
+                        few{""}
+                        many{""}
+                        other{""}
+                    }
+                    100000000000000{
+                        zero{""}
+                        one{""}
+                        two{""}
+                        few{""}
+                        many{""}
+                        other{""}
+                    }
+                }
+            }
+            patternsShort{
+                currencyFormat{
+                    1000{
+                        zero{""}
+                        one{""}
+                        two{""}
+                        few{""}
+                        many{""}
+                        other{""}
+                    }
+                    10000{
+                        zero{""}
+                        one{""}
+                        two{""}
+                        few{""}
+                        many{""}
+                        other{""}
+                    }
+                    100000{
+                        zero{""}
+                        one{""}
+                        two{""}
+                        few{""}
+                        many{""}
+                        other{""}
+                    }
+                    1000000{
+                        zero{""}
+                        one{""}
+                        two{""}
+                        few{""}
+                        many{""}
+                        other{""}
+                    }
+                    10000000{
+                        zero{""}
+                        one{""}
+                        two{""}
+                        few{""}
+                        many{""}
+                        other{""}
+                    }
+                    100000000{
+                        zero{""}
+                        one{""}
+                        two{""}
+                        few{""}
+                        many{""}
+                        other{""}
+                    }
+                    1000000000{
+                        zero{""}
+                        one{""}
+                        two{""}
+                        few{""}
+                        many{""}
+                        other{""}
+                    }
+                    10000000000{
+                        zero{""}
+                        one{""}
+                        two{""}
+                        few{""}
+                        many{""}
+                        other{""}
+                    }
+                    100000000000{
+                        zero{""}
+                        one{""}
+                        two{""}
+                        few{""}
+                        many{""}
+                        other{""}
+                    }
+                    1000000000000{
+                        zero{""}
+                        one{""}
+                        two{""}
+                        few{""}
+                        many{""}
+                        other{""}
+                    }
+                    10000000000000{
+                        zero{""}
+                        one{""}
+                        two{""}
+                        few{""}
+                        many{""}
+                        other{""}
+                    }
+                    100000000000000{
+                        zero{""}
+                        one{""}
+                        two{""}
+                        few{""}
+                        many{""}
+                        other{""}
+                    }
+                }
+                decimalFormat{
+                    1000{
+                        zero{""}
+                        one{""}
+                        two{""}
+                        few{""}
+                        many{""}
+                        other{""}
+                    }
+                    10000{
+                        zero{""}
+                        one{""}
+                        two{""}
+                        few{""}
+                        many{""}
+                        other{""}
+                    }
+                    100000{
+                        zero{""}
+                        one{""}
+                        two{""}
+                        few{""}
+                        many{""}
+                        other{""}
+                    }
+                    1000000{
+                        zero{""}
+                        one{""}
+                        two{""}
+                        few{""}
+                        many{""}
+                        other{""}
+                    }
+                    10000000{
+                        zero{""}
+                        one{""}
+                        two{""}
+                        few{""}
+                        many{""}
+                        other{""}
+                    }
+                    100000000{
+                        zero{""}
+                        one{""}
+                        two{""}
+                        few{""}
+                        many{""}
+                        other{""}
+                    }
+                    1000000000{
+                        zero{""}
+                        one{""}
+                        two{""}
+                        few{""}
+                        many{""}
+                        other{""}
+                    }
+                    10000000000{
+                        zero{""}
+                        one{""}
+                        two{""}
+                        few{""}
+                        many{""}
+                        other{""}
+                    }
+                    100000000000{
+                        zero{""}
+                        one{""}
+                        two{""}
+                        few{""}
+                        many{""}
+                        other{""}
+                    }
+                    1000000000000{
+                        zero{""}
+                        one{""}
+                        two{""}
+                        few{""}
+                        many{""}
+                        other{""}
+                    }
+                    10000000000000{
+                        zero{""}
+                        one{""}
+                        two{""}
+                        few{""}
+                        many{""}
+                        other{""}
+                    }
+                    100000000000000{
+                        zero{""}
+                        one{""}
+                        two{""}
+                        few{""}
+                        many{""}
+                        other{""}
+                    }
+                }
+            }
+            symbols{
+                decimal{""}
+                exponential{""}
+                group{""}
+                infinity{""}
+                list{""}
+                minusSign{""}
+                nan{""}
+                perMille{""}
+                percentSign{""}
+                plusSign{""}
+                currencyDecimal{""}
+                currencyGroup{""}
+                superscriptingExponent{""}
+                timeSeparator{""}
+            }
+        }
+        gong{
+            miscPatterns{
+                approximately{""}
+                atLeast{""}
+                atMost{""}
                 range{""}
             }
             patterns{
@@ -9027,7 +9374,338 @@ structLocale:table(nofallback){
         }
         gonm{
             miscPatterns{
+                approximately{""}
+                atLeast{""}
+                atMost{""}
+                range{""}
+            }
+            patterns{
+                accountingFormat{""}
+                currencyFormat{""}
+                decimalFormat{""}
+                percentFormat{""}
+                scientificFormat{""}
+            }
+            patternsLong{
+                decimalFormat{
+                    1000{
+                        zero{""}
+                        one{""}
+                        two{""}
+                        few{""}
+                        many{""}
+                        other{""}
+                    }
+                    10000{
+                        zero{""}
+                        one{""}
+                        two{""}
+                        few{""}
+                        many{""}
+                        other{""}
+                    }
+                    100000{
+                        zero{""}
+                        one{""}
+                        two{""}
+                        few{""}
+                        many{""}
+                        other{""}
+                    }
+                    1000000{
+                        zero{""}
+                        one{""}
+                        two{""}
+                        few{""}
+                        many{""}
+                        other{""}
+                    }
+                    10000000{
+                        zero{""}
+                        one{""}
+                        two{""}
+                        few{""}
+                        many{""}
+                        other{""}
+                    }
+                    100000000{
+                        zero{""}
+                        one{""}
+                        two{""}
+                        few{""}
+                        many{""}
+                        other{""}
+                    }
+                    1000000000{
+                        zero{""}
+                        one{""}
+                        two{""}
+                        few{""}
+                        many{""}
+                        other{""}
+                    }
+                    10000000000{
+                        zero{""}
+                        one{""}
+                        two{""}
+                        few{""}
+                        many{""}
+                        other{""}
+                    }
+                    100000000000{
+                        zero{""}
+                        one{""}
+                        two{""}
+                        few{""}
+                        many{""}
+                        other{""}
+                    }
+                    1000000000000{
+                        zero{""}
+                        one{""}
+                        two{""}
+                        few{""}
+                        many{""}
+                        other{""}
+                    }
+                    10000000000000{
+                        zero{""}
+                        one{""}
+                        two{""}
+                        few{""}
+                        many{""}
+                        other{""}
+                    }
+                    100000000000000{
+                        zero{""}
+                        one{""}
+                        two{""}
+                        few{""}
+                        many{""}
+                        other{""}
+                    }
+                }
+            }
+            patternsShort{
+                currencyFormat{
+                    1000{
+                        zero{""}
+                        one{""}
+                        two{""}
+                        few{""}
+                        many{""}
+                        other{""}
+                    }
+                    10000{
+                        zero{""}
+                        one{""}
+                        two{""}
+                        few{""}
+                        many{""}
+                        other{""}
+                    }
+                    100000{
+                        zero{""}
+                        one{""}
+                        two{""}
+                        few{""}
+                        many{""}
+                        other{""}
+                    }
+                    1000000{
+                        zero{""}
+                        one{""}
+                        two{""}
+                        few{""}
+                        many{""}
+                        other{""}
+                    }
+                    10000000{
+                        zero{""}
+                        one{""}
+                        two{""}
+                        few{""}
+                        many{""}
+                        other{""}
+                    }
+                    100000000{
+                        zero{""}
+                        one{""}
+                        two{""}
+                        few{""}
+                        many{""}
+                        other{""}
+                    }
+                    1000000000{
+                        zero{""}
+                        one{""}
+                        two{""}
+                        few{""}
+                        many{""}
+                        other{""}
+                    }
+                    10000000000{
+                        zero{""}
+                        one{""}
+                        two{""}
+                        few{""}
+                        many{""}
+                        other{""}
+                    }
+                    100000000000{
+                        zero{""}
+                        one{""}
+                        two{""}
+                        few{""}
+                        many{""}
+                        other{""}
+                    }
+                    1000000000000{
+                        zero{""}
+                        one{""}
+                        two{""}
+                        few{""}
+                        many{""}
+                        other{""}
+                    }
+                    10000000000000{
+                        zero{""}
+                        one{""}
+                        two{""}
+                        few{""}
+                        many{""}
+                        other{""}
+                    }
+                    100000000000000{
+                        zero{""}
+                        one{""}
+                        two{""}
+                        few{""}
+                        many{""}
+                        other{""}
+                    }
+                }
+                decimalFormat{
+                    1000{
+                        zero{""}
+                        one{""}
+                        two{""}
+                        few{""}
+                        many{""}
+                        other{""}
+                    }
+                    10000{
+                        zero{""}
+                        one{""}
+                        two{""}
+                        few{""}
+                        many{""}
+                        other{""}
+                    }
+                    100000{
+                        zero{""}
+                        one{""}
+                        two{""}
+                        few{""}
+                        many{""}
+                        other{""}
+                    }
+                    1000000{
+                        zero{""}
+                        one{""}
+                        two{""}
+                        few{""}
+                        many{""}
+                        other{""}
+                    }
+                    10000000{
+                        zero{""}
+                        one{""}
+                        two{""}
+                        few{""}
+                        many{""}
+                        other{""}
+                    }
+                    100000000{
+                        zero{""}
+                        one{""}
+                        two{""}
+                        few{""}
+                        many{""}
+                        other{""}
+                    }
+                    1000000000{
+                        zero{""}
+                        one{""}
+                        two{""}
+                        few{""}
+                        many{""}
+                        other{""}
+                    }
+                    10000000000{
+                        zero{""}
+                        one{""}
+                        two{""}
+                        few{""}
+                        many{""}
+                        other{""}
+                    }
+                    100000000000{
+                        zero{""}
+                        one{""}
+                        two{""}
+                        few{""}
+                        many{""}
+                        other{""}
+                    }
+                    1000000000000{
+                        zero{""}
+                        one{""}
+                        two{""}
+                        few{""}
+                        many{""}
+                        other{""}
+                    }
+                    10000000000000{
+                        zero{""}
+                        one{""}
+                        two{""}
+                        few{""}
+                        many{""}
+                        other{""}
+                    }
+                    100000000000000{
+                        zero{""}
+                        one{""}
+                        two{""}
+                        few{""}
+                        many{""}
+                        other{""}
+                    }
+                }
+            }
+            symbols{
+                decimal{""}
+                exponential{""}
+                group{""}
+                infinity{""}
+                list{""}
+                minusSign{""}
+                nan{""}
+                perMille{""}
+                percentSign{""}
+                plusSign{""}
+                currencyDecimal{""}
+                currencyGroup{""}
+                superscriptingExponent{""}
+                timeSeparator{""}
+            }
+        }
+        gujr{
+            miscPatterns{
+                approximately{""}
                 atLeast{""}
+                atMost{""}
                 range{""}
             }
             patterns{
@@ -9352,9 +10030,11 @@ structLocale:table(nofallback){
                 timeSeparator{""}
             }
         }
-        gujr{
+        guru{
             miscPatterns{
+                approximately{""}
                 atLeast{""}
+                atMost{""}
                 range{""}
             }
             patterns{
@@ -9679,9 +10359,11 @@ structLocale:table(nofallback){
                 timeSeparator{""}
             }
         }
-        guru{
+        hanidec{
             miscPatterns{
+                approximately{""}
                 atLeast{""}
+                atMost{""}
                 range{""}
             }
             patterns{
@@ -10006,9 +10688,11 @@ structLocale:table(nofallback){
                 timeSeparator{""}
             }
         }
-        hanidec{
+        java{
             miscPatterns{
+                approximately{""}
                 atLeast{""}
+                atMost{""}
                 range{""}
             }
             patterns{
@@ -10333,9 +11017,11 @@ structLocale:table(nofallback){
                 timeSeparator{""}
             }
         }
-        java{
+        kali{
             miscPatterns{
+                approximately{""}
                 atLeast{""}
+                atMost{""}
                 range{""}
             }
             patterns{
@@ -10660,12 +11346,14 @@ structLocale:table(nofallback){
                 timeSeparator{""}
             }
         }
-        kali{
+        khmr{
             miscPatterns{
+                approximately{""}
                 atLeast{""}
+                atMost{""}
                 range{""}
             }
-            patterns{
+           patterns{
                 accountingFormat{""}
                 currencyFormat{""}
                 decimalFormat{""}
@@ -10987,12 +11675,14 @@ structLocale:table(nofallback){
                 timeSeparator{""}
             }
         }
-        khmr{
-             miscPatterns{
+        knda{
+            miscPatterns{
+                approximately{""}
                 atLeast{""}
+                atMost{""}
                 range{""}
             }
-           patterns{
+            patterns{
                 accountingFormat{""}
                 currencyFormat{""}
                 decimalFormat{""}
@@ -11314,9 +12004,11 @@ structLocale:table(nofallback){
                 timeSeparator{""}
             }
         }
-        knda{
+        lana{
             miscPatterns{
+                approximately{""}
                 atLeast{""}
+                atMost{""}
                 range{""}
             }
             patterns{
@@ -11641,9 +12333,11 @@ structLocale:table(nofallback){
                 timeSeparator{""}
             }
         }
-        lana{
+        lanatham{
             miscPatterns{
+                approximately{""}
                 atLeast{""}
+                atMost{""}
                 range{""}
             }
             patterns{
@@ -11968,9 +12662,11 @@ structLocale:table(nofallback){
                 timeSeparator{""}
             }
         }
-        lanatham{
+        laoo{
             miscPatterns{
+                approximately{""}
                 atLeast{""}
+                atMost{""}
                 range{""}
             }
             patterns{
@@ -12295,9 +12991,11 @@ structLocale:table(nofallback){
                 timeSeparator{""}
             }
         }
-        laoo{
+        latn{
             miscPatterns{
+                approximately{""}
                 atLeast{""}
+                atMost{""}
                 range{""}
             }
             patterns{
@@ -12622,9 +13320,11 @@ structLocale:table(nofallback){
                 timeSeparator{""}
             }
         }
-        latn{
+        lepc{
             miscPatterns{
+                approximately{""}
                 atLeast{""}
+                atMost{""}
                 range{""}
             }
             patterns{
@@ -12949,9 +13649,11 @@ structLocale:table(nofallback){
                 timeSeparator{""}
             }
         }
-        lepc{
+        limb{
             miscPatterns{
+                approximately{""}
                 atLeast{""}
+                atMost{""}
                 range{""}
             }
             patterns{
@@ -13276,9 +13978,29 @@ structLocale:table(nofallback){
                 timeSeparator{""}
             }
         }
-        limb{
+        minimalPairs{
+            ordinal{
+                zero{""}
+                one{""}
+                two{""}
+                few{""}
+                many{""}
+                other{""}
+            }
+            plural{
+                zero{""}
+                one{""}
+                two{""}
+                few{""}
+                many{""}
+                other{""}
+            }
+        }
+        mlym{
             miscPatterns{
+                approximately{""}
                 atLeast{""}
+                atMost{""}
                 range{""}
             }
             patterns{
@@ -13603,27 +14325,11 @@ structLocale:table(nofallback){
                 timeSeparator{""}
             }
         }
-        minimalPairs{
-            ordinal{
-                zero{""}
-                one{""}
-                two{""}
-                few{""}
-                many{""}
-                other{""}
-            }
-            plural{
-                zero{""}
-                one{""}
-                two{""}
-                few{""}
-                many{""}
-                other{""}
-            }
-        }
-        mlym{
+        mong{
             miscPatterns{
+                approximately{""}
                 atLeast{""}
+                atMost{""}
                 range{""}
             }
             patterns{
@@ -13948,9 +14654,11 @@ structLocale:table(nofallback){
                 timeSeparator{""}
             }
         }
-        mong{
+        mtei{
             miscPatterns{
+                approximately{""}
                 atLeast{""}
+                atMost{""}
                 range{""}
             }
             patterns{
@@ -14275,9 +14983,11 @@ structLocale:table(nofallback){
                 timeSeparator{""}
             }
         }
-        mtei{
+        mymr{
             miscPatterns{
+                approximately{""}
                 atLeast{""}
+                atMost{""}
                 range{""}
             }
             patterns{
@@ -14602,9 +15312,11 @@ structLocale:table(nofallback){
                 timeSeparator{""}
             }
         }
-        mymr{
+        mymrshan{
             miscPatterns{
+                approximately{""}
                 atLeast{""}
+                atMost{""}
                 range{""}
             }
             patterns{
@@ -14929,9 +15641,13 @@ structLocale:table(nofallback){
                 timeSeparator{""}
             }
         }
-        mymrshan{
+        minimumGroupingDigits{""}
+        native{""}
+        nkoo{
             miscPatterns{
+                approximately{""}
                 atLeast{""}
+                atMost{""}
                 range{""}
             }
             patterns{
@@ -15256,11 +15972,11 @@ structLocale:table(nofallback){
                 timeSeparator{""}
             }
         }
-        minimumGroupingDigits{""}
-        native{""}
-        nkoo{
+        olck{
             miscPatterns{
+                approximately{""}
                 atLeast{""}
+                atMost{""}
                 range{""}
             }
             patterns{
@@ -15585,9 +16301,11 @@ structLocale:table(nofallback){
                 timeSeparator{""}
             }
         }
-        olck{
+        orya{
             miscPatterns{
+                approximately{""}
                 atLeast{""}
+                atMost{""}
                 range{""}
             }
             patterns{
@@ -15912,9 +16630,11 @@ structLocale:table(nofallback){
                 timeSeparator{""}
             }
         }
-        orya{
+        osma{
             miscPatterns{
+                approximately{""}
                 atLeast{""}
+                atMost{""}
                 range{""}
             }
             patterns{
@@ -16239,9 +16959,11 @@ structLocale:table(nofallback){
                 timeSeparator{""}
             }
         }
-        osma{
+        rohg{
             miscPatterns{
+                approximately{""}
                 atLeast{""}
+                atMost{""}
                 range{""}
             }
             patterns{
@@ -16568,7 +17290,9 @@ structLocale:table(nofallback){
         }
         saur{
             miscPatterns{
+                approximately{""}
                 atLeast{""}
+                atMost{""}
                 range{""}
             }
             patterns{
@@ -16895,7 +17619,9 @@ structLocale:table(nofallback){
         }
         shrd{
             miscPatterns{
+                approximately{""}
                 atLeast{""}
+                atMost{""}
                 range{""}
             }
             patterns{
@@ -17222,7 +17948,9 @@ structLocale:table(nofallback){
         }
         sora{
             miscPatterns{
+                approximately{""}
                 atLeast{""}
+                atMost{""}
                 range{""}
             }
             patterns{
@@ -17549,7 +18277,9 @@ structLocale:table(nofallback){
         }
         sund{
             miscPatterns{
+                approximately{""}
                 atLeast{""}
+                atMost{""}
                 range{""}
             }
             patterns{
@@ -17876,7 +18606,9 @@ structLocale:table(nofallback){
         }
         takr{
             miscPatterns{
+                approximately{""}
                 atLeast{""}
+                atMost{""}
                 range{""}
             }
             patterns{
@@ -18203,7 +18935,9 @@ structLocale:table(nofallback){
         }
         talu{
             miscPatterns{
+                approximately{""}
                 atLeast{""}
+                atMost{""}
                 range{""}
             }
             patterns{
@@ -18530,7 +19264,9 @@ structLocale:table(nofallback){
         }
         tamldec{
             miscPatterns{
+                approximately{""}
                 atLeast{""}
+                atMost{""}
                 range{""}
             }
             patterns{
@@ -18857,7 +19593,9 @@ structLocale:table(nofallback){
         }
         telu{
             miscPatterns{
+                approximately{""}
                 atLeast{""}
+                atMost{""}
                 range{""}
             }
             patterns{
@@ -19184,7 +19922,9 @@ structLocale:table(nofallback){
         }
         thai{
             miscPatterns{
+                approximately{""}
                 atLeast{""}
+                atMost{""}
                 range{""}
             }
             patterns{
@@ -19511,7 +20251,9 @@ structLocale:table(nofallback){
         }
         tibt{
             miscPatterns{
+                approximately{""}
                 atLeast{""}
+                atMost{""}
                 range{""}
             }
             patterns{
@@ -19839,7 +20581,9 @@ structLocale:table(nofallback){
         traditional{""}
         vaii{
             miscPatterns{
+                approximately{""}
                 atLeast{""}
+                atMost{""}
                 range{""}
             }
             patterns{
@@ -23696,6 +24440,44 @@ structLocale:table(nofallback){
                 }
             }
             intervalFormats{
+                Gy{
+                    G{""}
+                    y{""}
+                }
+                GyM{
+                    G{""}
+                    M{""}
+                    y{""}
+                }
+                GyMEd{
+                    G{""}
+                    M{""}
+                    d{""}
+                    y{""}
+                }
+                GyMMM{
+                    G{""}
+                    M{""}
+                    y{""}
+                }
+                GyMMMEd{
+                    G{""}
+                    M{""}
+                    d{""}
+                    y{""}
+                }
+                GyMMMd{
+                    G{""}
+                    M{""}
+                    d{""}
+                    y{""}
+                }
+                GyMd{
+                    G{""}
+                    M{""}
+                    d{""}
+                    y{""}
+                }
                 H{
                     H{""}
                 }
@@ -24140,6 +24922,44 @@ structLocale:table(nofallback){
                 }
             }
             intervalFormats{
+                Gy{
+                    G{""}
+                    y{""}
+                }
+                GyM{
+                    G{""}
+                    M{""}
+                    y{""}
+                }
+                GyMEd{
+                    G{""}
+                    M{""}
+                    d{""}
+                    y{""}
+                }
+                GyMMM{
+                    G{""}
+                    M{""}
+                    y{""}
+                }
+                GyMMMEd{
+                    G{""}
+                    M{""}
+                    d{""}
+                    y{""}
+                }
+                GyMMMd{
+                    G{""}
+                    M{""}
+                    d{""}
+                    y{""}
+                }
+                GyMd{
+                    G{""}
+                    M{""}
+                    d{""}
+                    y{""}
+                }
                 H{
                     H{""}
                 }
@@ -25805,6 +26625,7 @@ structLocale:table(nofallback){
                     "",
                     "",
                     "",
+                    "",
                 }
                 wide{
                     "",
@@ -26043,6 +26864,7 @@ structLocale:table(nofallback){
                     "",
                     "",
                     "",
+                    "",
                 }
                 narrow{
                     "",
@@ -26281,6 +27103,7 @@ structLocale:table(nofallback){
                     "",
                     "",
                     "",
+                    "",
                 }
             }
             intervalFormats{
@@ -26611,12 +27434,30 @@ structLocale:table(nofallback){
             middle{""}
             start{""}
         }
+        or-narrow{
+            2{""}
+            end{""}
+            middle{""}
+            start{""}
+        }
+        or-short{
+            2{""}
+            end{""}
+            middle{""}
+            start{""}
+        }
         standard{
             2{""}
             end{""}
             middle{""}
             start{""}
         }
+        standard-narrow{
+            2{""}
+            end{""}
+            middle{""}
+            start{""}
+        }
         standard-short{
             2{""}
             end{""}
@@ -26671,6 +27512,11 @@ structLocale:table(nofallback){
                 "",
                 "",
                 "",
+                "",
+                "",
+                "",
+                "",
+                "",
             }
         }
         number{
index 0e2ae119f783aa57306dbce4b4207197bf3fb5a9..55994d4f29b764e3c8d13831cf681d83e0a1de15 100644 (file)
 0360..0361:234
 0362:233
 0363..036F:230
-D802:2  # surrogates with non-zero combining classes
-D803:3
-D804:4
+# ICU 63 normalization with UCPTrie requires inert surrogate code points.
+# D802:2  # surrogates with non-zero combining classes
+# D803:3
+# D804:4
 110B9:9
 110BA:7
 
@@ -58,10 +59,11 @@ D804:4
 00C4=0041 0308
 00C5=0041 030A
 00C7=0043 0327
-D800>D7FF  # surrogates with mappings, and mappings to empty strings
-D801>
-DFFE>
-DFFF>FFFF
+# ICU 63 normalization with UCPTrie requires inert surrogate code points.
+# D800>D7FF  # surrogates with mappings, and mappings to empty strings
+# D801>
+# DFFE>
+# DFFF>FFFF
 E000>
 E001=61 338  # composition with trail<=33FF and composite>7FFF
 E002=E001 308  # recursive mapping needs reordering
index 4367f1f50033a56f77ced105223a04a8ab021815..baabf4f38147437e843d6d666d5d1f6eebd6d361 100644 (file)
@@ -75,7 +75,7 @@
       <CompileAs>Default</CompileAs>
     </ClCompile>
     <Link>
-      <OutputFile>..\..\..\bin\icutest62.dll</OutputFile>
+      <OutputFile>..\..\..\bin\icutest63.dll</OutputFile>
       <AdditionalDependencies>icuuc.lib;icutu.lib;%(AdditionalDependencies)</AdditionalDependencies>
       <AdditionalLibraryDirectories>..\..\..\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
       <ProgramDatabaseFile>.\..\..\..\lib\icutest.pdb</ProgramDatabaseFile>
       <CompileAs>Default</CompileAs>
     </ClCompile>
     <Link>
-      <OutputFile>..\..\..\bin\icutest62d.dll</OutputFile>
+      <OutputFile>..\..\..\bin\icutest63d.dll</OutputFile>
       <AdditionalDependencies>icuucd.lib;icutud.lib;%(AdditionalDependencies)</AdditionalDependencies>
       <AdditionalLibraryDirectories>..\..\..\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
       <GenerateDebugInformation>true</GenerateDebugInformation>
       <CompileAs>Default</CompileAs>
     </ClCompile>
     <Link>
-      <OutputFile>..\..\..\bin64\icutest62.dll</OutputFile>
+      <OutputFile>..\..\..\bin64\icutest63.dll</OutputFile>
       <AdditionalDependencies>icuuc.lib;icutu.lib;%(AdditionalDependencies)</AdditionalDependencies>
       <AdditionalLibraryDirectories>..\..\..\lib64;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
       <ProgramDatabaseFile>.\..\..\..\lib64\icutest.pdb</ProgramDatabaseFile>
       <CompileAs>Default</CompileAs>
     </ClCompile>
     <Link>
-      <OutputFile>..\..\..\bin64\icutest62d.dll</OutputFile>
+      <OutputFile>..\..\..\bin64\icutest63d.dll</OutputFile>
       <AdditionalDependencies>icuucd.lib;icutud.lib;%(AdditionalDependencies)</AdditionalDependencies>
       <AdditionalLibraryDirectories>..\..\..\lib64;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
       <GenerateDebugInformation>true</GenerateDebugInformation>
index 797803c5cd9d3c3d8adba566cfc4d6d874a13042..f4580b165da8f74a57fdea77425dfbb9529ed71b 100644 (file)
@@ -21,13 +21,13 @@ TestLog::~TestLog() {}
 IcuTestErrorCode::~IcuTestErrorCode() {
     // Safe because our errlog() does not throw exceptions.
     if(isFailure()) {
-        errlog(FALSE, nullptr);
+        errlog(FALSE, u"destructor: expected success", nullptr);
     }
 }
 
 UBool IcuTestErrorCode::errIfFailureAndReset() {
     if(isFailure()) {
-        errlog(FALSE, nullptr);
+        errlog(FALSE, u"expected success", nullptr);
         reset();
         return TRUE;
     } else {
@@ -43,7 +43,7 @@ UBool IcuTestErrorCode::errIfFailureAndReset(const char *fmt, ...) {
         va_start(ap, fmt);
         vsprintf(buffer, fmt, ap);
         va_end(ap);
-        errlog(FALSE, buffer);
+        errlog(FALSE, u"expected success", buffer);
         reset();
         return TRUE;
     } else {
@@ -54,7 +54,7 @@ UBool IcuTestErrorCode::errIfFailureAndReset(const char *fmt, ...) {
 
 UBool IcuTestErrorCode::errDataIfFailureAndReset() {
     if(isFailure()) {
-        errlog(TRUE, nullptr);
+        errlog(TRUE, u"data: expected success", nullptr);
         reset();
         return TRUE;
     } else {
@@ -70,7 +70,7 @@ UBool IcuTestErrorCode::errDataIfFailureAndReset(const char *fmt, ...) {
         va_start(ap, fmt);
         vsprintf(buffer, fmt, ap);
         va_end(ap);
-        errlog(TRUE, buffer);
+        errlog(TRUE, u"data: expected success", buffer);
         reset();
         return TRUE;
     } else {
@@ -79,6 +79,29 @@ UBool IcuTestErrorCode::errDataIfFailureAndReset(const char *fmt, ...) {
     }
 }
 
+UBool IcuTestErrorCode::expectErrorAndReset(UErrorCode expectedError) {
+    if(get() != expectedError) {
+        errlog(FALSE, UnicodeString(u"expected: ") + u_errorName(expectedError), nullptr);
+    }
+    UBool retval = isFailure();
+    reset();
+    return retval;
+}
+
+UBool IcuTestErrorCode::expectErrorAndReset(UErrorCode expectedError, const char *fmt, ...) {
+    if(get() != expectedError) {
+        char buffer[4000];
+        va_list ap;
+        va_start(ap, fmt);
+        vsprintf(buffer, fmt, ap);
+        va_end(ap);
+        errlog(FALSE, UnicodeString(u"expected: ") + u_errorName(expectedError), buffer);
+    }
+    UBool retval = isFailure();
+    reset();
+    return retval;
+}
+
 void IcuTestErrorCode::setScope(const char* message) {
     scopeMessage.remove().append({ message, -1, US_INV });
 }
@@ -88,12 +111,13 @@ void IcuTestErrorCode::setScope(const UnicodeString& message) {
 }
 
 void IcuTestErrorCode::handleFailure() const {
-    errlog(FALSE, nullptr);
+    errlog(FALSE, u"(handleFailure)", nullptr);
 }
 
-void IcuTestErrorCode::errlog(UBool dataErr, const char* extraMessage) const {
+void IcuTestErrorCode::errlog(UBool dataErr, const UnicodeString& mainMessage, const char* extraMessage) const {
     UnicodeString msg(testName, -1, US_INV);
-    msg.append(u" failure: ").append(UnicodeString(errorName(), -1, US_INV));
+    msg.append(u' ').append(mainMessage);
+    msg.append(u" but got error: ").append(UnicodeString(errorName(), -1, US_INV));
 
     if (!scopeMessage.isEmpty()) {
         msg.append(u" scope: ").append(scopeMessage);
index 11b1c6e3b11fdf5528a45ad3368063a020cbe9f9..9db35b9ca853986a2c5c157a841fd99c38bc4a41 100644 (file)
@@ -41,6 +41,8 @@ public:
     UBool errIfFailureAndReset(const char *fmt, ...);
     UBool errDataIfFailureAndReset();
     UBool errDataIfFailureAndReset(const char *fmt, ...);
+    UBool expectErrorAndReset(UErrorCode expectedError);
+    UBool expectErrorAndReset(UErrorCode expectedError, const char *fmt, ...);
 
     /** Sets an additional message string to be appended to failure output. */
     void setScope(const char* message);
@@ -54,7 +56,7 @@ private:
     const char *const testName;
     UnicodeString scopeMessage;
 
-    void errlog(UBool dataErr, const char* extraMessage) const;
+    void errlog(UBool dataErr, const UnicodeString& mainMessage, const char* extraMessage) const;
 };
 
 #endif
index c4098c8cac3b50198c2e6780e5a525553a0f3c88..1ac9ad3fd8a39da4a74ba593d50dcb7f0bb1cc89 100644 (file)
@@ -319,7 +319,7 @@ int  main(int argc, char **argv) {
         return NULL;
     }
 
-    long t = fread(result, 1, fileSize, file);
+    long t = static_cast<long>(fread(result, 1, fileSize, file));
     if (t != fileSize)  {
         delete [] result;
         fclose(file);
index 8d2a04c1ac7db234b8ea84fa5d9c817ae6dd3255..04ad747e07721879ccafdff3b1aadb4153b1099c 100644 (file)
@@ -965,7 +965,7 @@ createNormalizedAliasStrings(char *normalizedStrings, const char *origStringBloc
         if (currStrLen > 0) {
             int32_t normStrLen;
             ucnv_io_stripForCompare(normalizedStrings, origStringBlock);
-            normStrLen = uprv_strlen(normalizedStrings);
+            normStrLen = (int32_t)uprv_strlen(normalizedStrings);
             if (normStrLen > 0) {
                 uprv_memset(normalizedStrings + normStrLen, 0, currStrSize - normStrLen);
             }
index 2d24d61071ba8135bace7879ee324044e5c3292d..bce5336be628c4a7b2242a2ad937a09135b3c6d1 100644 (file)
@@ -266,6 +266,11 @@ void parseFile(std::ifstream &f, Normalizer2DataBuilder &builder) {
             fprintf(stderr, "gennorm2 error: parsing code point range from %s\n", line);
             exit(errorCode.reset());
         }
+        if (endCP >= 0xd800 && startCP <= 0xdfff) {
+                fprintf(stderr, "gennorm2 error: value or mapping for surrogate code points: %s\n",
+                        line);
+                exit(U_ILLEGAL_ARGUMENT_ERROR);
+        }
         delimiter=u_skipWhitespace(delimiter);
         if(*delimiter==':') {
             const char *s=u_skipWhitespace(delimiter+1);
index 7b8920d0d3acbef3d5514894dac79db88ed85766..1d3888523121ef645c5721ca9dca23bd488d2b2e 100644 (file)
@@ -29,7 +29,9 @@
 #include "unicode/errorcode.h"
 #include "unicode/localpointer.h"
 #include "unicode/putil.h"
+#include "unicode/ucptrie.h"
 #include "unicode/udata.h"
+#include "unicode/umutablecptrie.h"
 #include "unicode/uniset.h"
 #include "unicode/unistr.h"
 #include "unicode/usetiter.h"
@@ -41,7 +43,6 @@
 #include "norms.h"
 #include "toolutil.h"
 #include "unewdata.h"
-#include "utrie2.h"
 #include "uvectr32.h"
 #include "writesrc.h"
 
@@ -58,8 +59,8 @@ static UDataInfo dataInfo={
     0,
 
     { 0x4e, 0x72, 0x6d, 0x32 }, /* dataFormat="Nrm2" */
-    { 3, 0, 0, 0 },             /* formatVersion */
-    { 10, 0, 0, 0 }             /* dataVersion (Unicode version) */
+    { 4, 0, 0, 0 },             /* formatVersion */
+    { 11, 0, 0, 0 }             /* dataVersion (Unicode version) */
 };
 
 U_NAMESPACE_BEGIN
@@ -94,14 +95,14 @@ const HangulIterator::Range HangulIterator::ranges[4]={
 Normalizer2DataBuilder::Normalizer2DataBuilder(UErrorCode &errorCode) :
         norms(errorCode),
         phase(0), overrideHandling(OVERRIDE_PREVIOUS), optimization(OPTIMIZE_NORMAL),
-        norm16Trie(nullptr), norm16TrieLength(0) {
+        norm16TrieBytes(nullptr), norm16TrieLength(0) {
     memset(unicodeVersion, 0, sizeof(unicodeVersion));
     memset(indexes, 0, sizeof(indexes));
     memset(smallFCD, 0, sizeof(smallFCD));
 }
 
 Normalizer2DataBuilder::~Normalizer2DataBuilder() {
-    utrie2_close(norm16Trie);
+    delete[] norm16TrieBytes;
 }
 
 void
@@ -407,11 +408,13 @@ void Normalizer2DataBuilder::postProcess(Norm &norm) {
 
 class Norm16Writer : public Norms::Enumerator {
 public:
-    Norm16Writer(Norms &n, Normalizer2DataBuilder &b) : Norms::Enumerator(n), builder(b) {}
+    Norm16Writer(UMutableCPTrie *trie, Norms &n, Normalizer2DataBuilder &b) :
+            Norms::Enumerator(n), builder(b), norm16Trie(trie) {}
     void rangeHandler(UChar32 start, UChar32 end, Norm &norm) U_OVERRIDE {
-        builder.writeNorm16(start, end, norm);
+        builder.writeNorm16(norm16Trie, start, end, norm);
     }
     Normalizer2DataBuilder &builder;
+    UMutableCPTrie *norm16Trie;
 };
 
 void Normalizer2DataBuilder::setSmallFCD(UChar32 c) {
@@ -419,7 +422,7 @@ void Normalizer2DataBuilder::setSmallFCD(UChar32 c) {
     smallFCD[lead>>8]|=(uint8_t)1<<((lead>>5)&7);
 }
 
-void Normalizer2DataBuilder::writeNorm16(UChar32 start, UChar32 end, Norm &norm) {
+void Normalizer2DataBuilder::writeNorm16(UMutableCPTrie *norm16Trie, UChar32 start, UChar32 end, Norm &norm) {
     if((norm.leadCC|norm.trailCC)!=0) {
         for(UChar32 c=start; c<=end; ++c) {
             setSmallFCD(c);
@@ -484,7 +487,7 @@ void Normalizer2DataBuilder::writeNorm16(UChar32 start, UChar32 end, Norm &norm)
         norm16|=Normalizer2Impl::HAS_COMP_BOUNDARY_AFTER;
     }
     IcuToolErrorCode errorCode("gennorm2/writeNorm16()");
-    utrie2_setRange32(norm16Trie, start, end, (uint32_t)norm16, TRUE, errorCode);
+    umutablecptrie_setRange(norm16Trie, start, end, (uint32_t)norm16, errorCode);
 
     // Set the minimum code points for real data lookups in the quick check loops.
     UBool isDecompNo=
@@ -502,13 +505,13 @@ void Normalizer2DataBuilder::writeNorm16(UChar32 start, UChar32 end, Norm &norm)
     }
 }
 
-void Normalizer2DataBuilder::setHangulData() {
+void Normalizer2DataBuilder::setHangulData(UMutableCPTrie *norm16Trie) {
     HangulIterator hi;
     const HangulIterator::Range *range;
     // Check that none of the Hangul/Jamo code points have data.
     while((range=hi.nextRange())!=NULL) {
         for(UChar32 c=range->start; c<=range->end; ++c) {
-            if(utrie2_get32(norm16Trie, c)>Normalizer2Impl::INERT) {
+            if(umutablecptrie_get(norm16Trie, c)>Normalizer2Impl::INERT) {
                 fprintf(stderr,
                         "gennorm2 error: "
                         "illegal mapping/composition/ccc data for Hangul or Jamo U+%04lX\n",
@@ -524,13 +527,13 @@ void Normalizer2DataBuilder::setHangulData() {
     if(Hangul::JAMO_V_BASE<indexes[Normalizer2Impl::IX_MIN_COMP_NO_MAYBE_CP]) {
         indexes[Normalizer2Impl::IX_MIN_COMP_NO_MAYBE_CP]=Hangul::JAMO_V_BASE;
     }
-    utrie2_setRange32(norm16Trie, Hangul::JAMO_L_BASE, Hangul::JAMO_L_END,
-                      Normalizer2Impl::JAMO_L, TRUE, errorCode);
-    utrie2_setRange32(norm16Trie, Hangul::JAMO_V_BASE, Hangul::JAMO_V_END,
-                      Normalizer2Impl::JAMO_VT, TRUE, errorCode);
+    umutablecptrie_setRange(norm16Trie, Hangul::JAMO_L_BASE, Hangul::JAMO_L_END,
+                            Normalizer2Impl::JAMO_L, errorCode);
+    umutablecptrie_setRange(norm16Trie, Hangul::JAMO_V_BASE, Hangul::JAMO_V_END,
+                            Normalizer2Impl::JAMO_VT, errorCode);
     // JAMO_T_BASE+1: not U+11A7
-    utrie2_setRange32(norm16Trie, Hangul::JAMO_T_BASE+1, Hangul::JAMO_T_END,
-                      Normalizer2Impl::JAMO_VT, TRUE, errorCode);
+    umutablecptrie_setRange(norm16Trie, Hangul::JAMO_T_BASE+1, Hangul::JAMO_T_END,
+                            Normalizer2Impl::JAMO_VT, errorCode);
 
     // Hangul LV encoded as minYesNo
     uint32_t lv=indexes[Normalizer2Impl::IX_MIN_YES_NO];
@@ -542,49 +545,16 @@ void Normalizer2DataBuilder::setHangulData() {
     }
     // Set the first LV, then write all other Hangul syllables as LVT,
     // then overwrite the remaining LV.
-    // The UTrie2 should be able to compact this into 7 32-item blocks
-    // because JAMO_T_COUNT is 28 and the UTrie2 granularity is 4.
-    // (7*32=8*28 smallest common multiple)
-    utrie2_set32(norm16Trie, Hangul::HANGUL_BASE, lv, errorCode);
-    utrie2_setRange32(norm16Trie, Hangul::HANGUL_BASE+1, Hangul::HANGUL_END,
-                      lvt, TRUE, errorCode);
+    umutablecptrie_set(norm16Trie, Hangul::HANGUL_BASE, lv, errorCode);
+    umutablecptrie_setRange(norm16Trie, Hangul::HANGUL_BASE+1, Hangul::HANGUL_END, lvt, errorCode);
     UChar32 c=Hangul::HANGUL_BASE;
     while((c+=Hangul::JAMO_T_COUNT)<=Hangul::HANGUL_END) {
-        utrie2_set32(norm16Trie, c, lv, errorCode);
+        umutablecptrie_set(norm16Trie, c, lv, errorCode);
     }
     errorCode.assertSuccess();
 }
 
-namespace {
-
-struct Norm16Summary {
-    uint32_t maxNorm16;
-    // ANDing values yields 0 bits where any value has a 0.
-    // Used for worst-case HAS_COMP_BOUNDARY_AFTER.
-    uint32_t andedNorm16;
-};
-
-}  // namespace
-
-U_CDECL_BEGIN
-
-static UBool U_CALLCONV
-enumRangeMaxValue(const void *context, UChar32 /*start*/, UChar32 /*end*/, uint32_t value) {
-    Norm16Summary *p=(Norm16Summary *)context;
-    if(value>p->maxNorm16) {
-        p->maxNorm16=value;
-    }
-    p->andedNorm16&=value;
-    return TRUE;
-}
-
-U_CDECL_END
-
-void Normalizer2DataBuilder::processData() {
-    IcuToolErrorCode errorCode("gennorm2/processData()");
-    norm16Trie=utrie2_open(Normalizer2Impl::INERT, Normalizer2Impl::INERT, errorCode);
-    errorCode.assertSuccess();
-
+LocalUCPTriePointer Normalizer2DataBuilder::processData() {
     // Build composition lists before recursive decomposition,
     // so that we still have the raw, pair-wise mappings.
     CompositionBuilder compBuilder(norms);
@@ -652,13 +622,19 @@ void Normalizer2DataBuilder::processData() {
     indexes[Normalizer2Impl::IX_MIN_COMP_NO_MAYBE_CP]=0x110000;
     indexes[Normalizer2Impl::IX_MIN_LCCC_CP]=0x110000;
 
+    IcuToolErrorCode errorCode("gennorm2/processData()");
+    UMutableCPTrie *norm16Trie = umutablecptrie_open(
+        Normalizer2Impl::INERT, Normalizer2Impl::INERT, errorCode);
+    errorCode.assertSuccess();
+
     // Map each code point to its norm16 value,
     // including the properties that fit directly,
     // and the offset to the "extra data" if necessary.
-    Norm16Writer norm16Writer(norms, *this);
+    Norm16Writer norm16Writer(norm16Trie, norms, *this);
     norms.enumRanges(norm16Writer);
+    // TODO: iterate via getRange() instead of callback?
 
-    setHangulData();
+    setHangulData(norm16Trie);
 
     // Look for the "worst" norm16 value of any supplementary code point
     // corresponding to a lead surrogate, and set it as that surrogate's value.
@@ -670,22 +646,63 @@ void Normalizer2DataBuilder::processData() {
     // and select the best value that only breaks the composition and/or decomposition
     // inner loops if necessary.
     // However, that seems like overkill for an optimization for supplementary characters.
-    for(UChar lead=0xd800; lead<0xdc00; ++lead) {
-        uint32_t surrogateCPNorm16=utrie2_get32(norm16Trie, lead);
-        Norm16Summary summary={ surrogateCPNorm16, surrogateCPNorm16 };
-        utrie2_enumForLeadSurrogate(norm16Trie, lead, NULL, enumRangeMaxValue, &summary);
-        uint32_t norm16=summary.maxNorm16;
-        if(norm16>=(uint32_t)indexes[Normalizer2Impl::IX_LIMIT_NO_NO] &&
-                norm16>(uint32_t)indexes[Normalizer2Impl::IX_MIN_NO_NO]) {
-            // Set noNo ("worst" value) if it got into "less-bad" maybeYes or ccc!=0.
-            // Otherwise it might end up at something like JAMO_VT which stays in
-            // the inner decomposition quick check loop.
-            norm16=(uint32_t)indexes[Normalizer2Impl::IX_LIMIT_NO_NO]-1;
+    //
+    // First check that surrogate code *points* are inert.
+    // The parser should have rejected values/mappings for them.
+    uint32_t value;
+    UChar32 end = umutablecptrie_getRange(norm16Trie, 0xd800, UCPMAP_RANGE_NORMAL, 0,
+                                          nullptr, nullptr, &value);
+    if (value != Normalizer2Impl::INERT || end < 0xdfff) {
+        fprintf(stderr,
+                "gennorm2 error: not all surrogate code points are inert: U+d800..U+%04x=%lx\n",
+                (int)end, (long)value);
+        exit(U_INTERNAL_PROGRAM_ERROR);
+    }
+    uint32_t maxNorm16 = 0;
+    // ANDing values yields 0 bits where any value has a 0.
+    // Used for worst-case HAS_COMP_BOUNDARY_AFTER.
+    uint32_t andedNorm16 = 0;
+    end = 0;
+    for (UChar32 start = 0x10000;;) {
+        if (start > end) {
+            end = umutablecptrie_getRange(norm16Trie, start, UCPMAP_RANGE_NORMAL, 0,
+                                          nullptr, nullptr, &value);
+            if (end < 0) { break; }
+        }
+        if ((start & 0x3ff) == 0) {
+            // Data for a new lead surrogate.
+            maxNorm16 = andedNorm16 = value;
+        } else {
+            if (value > maxNorm16) {
+                maxNorm16 = value;
+            }
+            andedNorm16 &= value;
+        }
+        // Intersect each range with the code points for one lead surrogate.
+        UChar32 leadEnd = start | 0x3ff;
+        if (leadEnd <= end) {
+            // End of the supplementary block for a lead surrogate.
+            if (maxNorm16 >= (uint32_t)indexes[Normalizer2Impl::IX_LIMIT_NO_NO]) {
+                // Set noNo ("worst" value) if it got into "less-bad" maybeYes or ccc!=0.
+                // Otherwise it might end up at something like JAMO_VT which stays in
+                // the inner decomposition quick check loop.
+                maxNorm16 = (uint32_t)indexes[Normalizer2Impl::IX_LIMIT_NO_NO];
+            }
+            maxNorm16 =
+                (maxNorm16 & ~Normalizer2Impl::HAS_COMP_BOUNDARY_AFTER)|
+                (andedNorm16 & Normalizer2Impl::HAS_COMP_BOUNDARY_AFTER);
+            if (maxNorm16 != Normalizer2Impl::INERT) {
+                umutablecptrie_set(norm16Trie, U16_LEAD(start), maxNorm16, errorCode);
+            }
+            if (value == Normalizer2Impl::INERT) {
+                // Potentially skip inert supplementary blocks for several lead surrogates.
+                start = (end + 1) & ~0x3ff;
+            } else {
+                start = leadEnd + 1;
+            }
+        } else {
+            start = end + 1;
         }
-        norm16=
-            (norm16&~Normalizer2Impl::HAS_COMP_BOUNDARY_AFTER)|
-            (summary.andedNorm16&Normalizer2Impl::HAS_COMP_BOUNDARY_AFTER);
-        utrie2_set32ForLeadSurrogateCodeUnit(norm16Trie, lead, norm16, errorCode);
     }
 
     // Adjust supplementary minimum code points to break quick check loops at their lead surrogates.
@@ -705,14 +722,19 @@ void Normalizer2DataBuilder::processData() {
         indexes[Normalizer2Impl::IX_MIN_LCCC_CP]=U16_LEAD(minCP);
     }
 
-    utrie2_freeze(norm16Trie, UTRIE2_16_VALUE_BITS, errorCode);
-    norm16TrieLength=utrie2_serialize(norm16Trie, NULL, 0, errorCode);
+    LocalUCPTriePointer builtTrie(
+        umutablecptrie_buildImmutable(norm16Trie, UCPTRIE_TYPE_FAST, UCPTRIE_VALUE_BITS_16, errorCode));
+    norm16TrieLength=ucptrie_toBinary(builtTrie.getAlias(), nullptr, 0, errorCode);
     if(errorCode.get()!=U_BUFFER_OVERFLOW_ERROR) {
-        fprintf(stderr, "gennorm2 error: unable to freeze/serialize the normalization trie - %s\n",
+        fprintf(stderr, "gennorm2 error: unable to build/serialize the normalization trie - %s\n",
                 errorCode.errorName());
         exit(errorCode.reset());
     }
+    umutablecptrie_close(norm16Trie);
     errorCode.reset();
+    norm16TrieBytes=new uint8_t[norm16TrieLength];
+    ucptrie_toBinary(builtTrie.getAlias(), norm16TrieBytes, norm16TrieLength, errorCode);
+    errorCode.assertSuccess();
 
     int32_t offset=(int32_t)sizeof(indexes);
     indexes[Normalizer2Impl::IX_NORM_TRIE_OFFSET]=offset;
@@ -750,16 +772,13 @@ void Normalizer2DataBuilder::processData() {
         u_versionFromString(unicodeVersion, U_UNICODE_VERSION);
     }
     memcpy(dataInfo.dataVersion, unicodeVersion, 4);
+    return builtTrie;
 }
 
 void Normalizer2DataBuilder::writeBinaryFile(const char *filename) {
     processData();
 
     IcuToolErrorCode errorCode("gennorm2/writeBinaryFile()");
-    LocalArray<uint8_t> norm16TrieBytes(new uint8_t[norm16TrieLength]);
-    utrie2_serialize(norm16Trie, norm16TrieBytes.getAlias(), norm16TrieLength, errorCode);
-    errorCode.assertSuccess();
-
     UNewDataMemory *pData=
         udata_create(NULL, NULL, filename, &dataInfo,
                      haveCopyright ? U_COPYRIGHT_STRING : NULL, errorCode);
@@ -769,7 +788,7 @@ void Normalizer2DataBuilder::writeBinaryFile(const char *filename) {
         exit(errorCode.reset());
     }
     udata_writeBlock(pData, indexes, sizeof(indexes));
-    udata_writeBlock(pData, norm16TrieBytes.getAlias(), norm16TrieLength);
+    udata_writeBlock(pData, norm16TrieBytes, norm16TrieLength);
     udata_writeUString(pData, toUCharPtr(extraData.getBuffer()), extraData.length());
     udata_writeBlock(pData, smallFCD, sizeof(smallFCD));
     int32_t writtenSize=udata_finish(pData, errorCode);
@@ -787,7 +806,7 @@ void Normalizer2DataBuilder::writeBinaryFile(const char *filename) {
 
 void
 Normalizer2DataBuilder::writeCSourceFile(const char *filename) {
-    processData();
+    LocalUCPTriePointer norm16Trie = processData();
 
     IcuToolErrorCode errorCode("gennorm2/writeCSourceFile()");
     const char *basename=findBasename(filename);
@@ -797,54 +816,33 @@ Normalizer2DataBuilder::writeCSourceFile(const char *filename) {
     if(extension!=NULL) {
         dataName.truncate((int32_t)(extension-basename));
     }
+    const char *name=dataName.data();
     errorCode.assertSuccess();
 
-    LocalArray<uint8_t> norm16TrieBytes(new uint8_t[norm16TrieLength]);
-    utrie2_serialize(norm16Trie, norm16TrieBytes.getAlias(), norm16TrieLength, errorCode);
-    errorCode.assertSuccess();
-
-    FILE *f=usrc_create(path.data(), basename, "icu/source/tools/gennorm2/n2builder.cpp");
+    FILE *f=usrc_create(path.data(), basename, 2016, "icu/source/tools/gennorm2/n2builder.cpp");
     if(f==NULL) {
         fprintf(stderr, "gennorm2/writeCSourceFile() error: unable to create the output file %s\n",
                 filename);
         exit(U_FILE_ACCESS_ERROR);
-        return;
     }
     fputs("#ifdef INCLUDED_FROM_NORMALIZER2_CPP\n\n", f);
+
     char line[100];
-    sprintf(line, "static const UVersionInfo %s_formatVersion={", dataName.data());
+    sprintf(line, "static const UVersionInfo %s_formatVersion={", name);
     usrc_writeArray(f, line, dataInfo.formatVersion, 8, 4, "};\n");
-    sprintf(line, "static const UVersionInfo %s_dataVersion={", dataName.data());
+    sprintf(line, "static const UVersionInfo %s_dataVersion={", name);
     usrc_writeArray(f, line, dataInfo.dataVersion, 8, 4, "};\n\n");
-    sprintf(line, "static const int32_t %s_indexes[Normalizer2Impl::IX_COUNT]={\n",
-            dataName.data());
-    usrc_writeArray(f,
-        line,
-        indexes, 32, Normalizer2Impl::IX_COUNT,
-        "\n};\n\n");
-    sprintf(line, "static const uint16_t %s_trieIndex[%%ld]={\n", dataName.data());
-    usrc_writeUTrie2Arrays(f,
-        line, NULL,
-        norm16Trie,
-        "\n};\n\n");
-    sprintf(line, "static const uint16_t %s_extraData[%%ld]={\n", dataName.data());
-    usrc_writeArray(f,
-        line,
-        extraData.getBuffer(), 16, extraData.length(),
-        "\n};\n\n");
-    sprintf(line, "static const uint8_t %s_smallFCD[%%ld]={\n", dataName.data());
-    usrc_writeArray(f,
-        line,
-        smallFCD, 8, sizeof(smallFCD),
-        "\n};\n\n");
-    sprintf(line, "static const UTrie2 %s_trie={\n", dataName.data());
-    char line2[100];
-    sprintf(line2, "%s_trieIndex", dataName.data());
-    usrc_writeUTrie2Struct(f,
-        line,
-        norm16Trie, line2, NULL,
-        "};\n");
-    fputs("\n#endif  // INCLUDED_FROM_NORMALIZER2_CPP\n", f);
+    sprintf(line, "static const int32_t %s_indexes[Normalizer2Impl::IX_COUNT]={\n", name);
+    usrc_writeArray(f, line, indexes, 32, Normalizer2Impl::IX_COUNT, "\n};\n\n");
+
+    usrc_writeUCPTrie(f, name, norm16Trie.getAlias());
+
+    sprintf(line, "static const uint16_t %s_extraData[%%ld]={\n", name);
+    usrc_writeArray(f, line, extraData.getBuffer(), 16, extraData.length(), "\n};\n\n");
+    sprintf(line, "static const uint8_t %s_smallFCD[%%ld]={\n", name);
+    usrc_writeArray(f, line, smallFCD, 8, sizeof(smallFCD), "\n};\n\n");
+
+    fputs("#endif  // INCLUDED_FROM_NORMALIZER2_CPP\n", f);
     fclose(f);
 }
 
index 61b36be00448cd6d6b6cc7670e7b211422c1fbe7..77b4fef533ac6764f5decdad1ead51616685ffcb 100644 (file)
 #if !UCONFIG_NO_NORMALIZATION
 
 #include "unicode/errorcode.h"
+#include "unicode/umutablecptrie.h"
 #include "unicode/unistr.h"
 #include "normalizer2impl.h"  // for IX_COUNT
 #include "toolutil.h"
-#include "utrie2.h"
 #include "norms.h"
 
 U_NAMESPACE_BEGIN
@@ -95,9 +95,9 @@ private:
         return indexes[Normalizer2Impl::IX_MIN_MAYBE_YES]-
             ((2*Normalizer2Impl::MAX_DELTA+1)<<Normalizer2Impl::DELTA_SHIFT);
     }
-    void writeNorm16(UChar32 start, UChar32 end, Norm &norm);
-    void setHangulData();
-    void processData();
+    void writeNorm16(UMutableCPTrie *norm16Trie, UChar32 start, UChar32 end, Norm &norm);
+    void setHangulData(UMutableCPTrie *norm16Trie);
+    LocalUCPTriePointer processData();
 
     Norms norms;
 
@@ -107,7 +107,7 @@ private:
     Optimization optimization;
 
     int32_t indexes[Normalizer2Impl::IX_COUNT];
-    UTrie2 *norm16Trie;
+    uint8_t *norm16TrieBytes;
     int32_t norm16TrieLength;
     UnicodeString extraData;
     uint8_t smallFCD[0x100];
index f0fb291aac3e20f0a9407cbb19d12c309651139b..96692f233cc09f163dc876aa9b3a4128256504aa 100644 (file)
 #include <stdio.h>
 #include <stdlib.h>
 #include "unicode/errorcode.h"
+#include "unicode/umutablecptrie.h"
 #include "unicode/unistr.h"
 #include "unicode/utf16.h"
 #include "normalizer2impl.h"
 #include "norms.h"
 #include "toolutil.h"
-#include "utrie2.h"
 #include "uvectr32.h"
 
 U_NAMESPACE_BEGIN
@@ -67,7 +67,7 @@ UChar32 Norm::combine(UChar32 trail) const {
 }
 
 Norms::Norms(UErrorCode &errorCode) {
-    normTrie=utrie2_open(0, 0, &errorCode);
+    normTrie = umutablecptrie_open(0, 0, &errorCode);
     normMem=utm_open("gennorm2 normalization structs", 10000, 0x110100, sizeof(Norm));
     // Default "inert" Norm struct at index 0. Practically immutable.
     norms=allocNorm();
@@ -75,7 +75,7 @@ Norms::Norms(UErrorCode &errorCode) {
 }
 
 Norms::~Norms() {
-    utrie2_close(normTrie);
+    umutablecptrie_close(normTrie);
     int32_t normsLength=utm_countItems(normMem);
     for(int32_t i=1; i<normsLength; ++i) {
         delete norms[i].mapping;
@@ -92,7 +92,7 @@ Norm *Norms::allocNorm() {
 }
 
 Norm *Norms::getNorm(UChar32 c) {
-    uint32_t i=utrie2_get32(normTrie, c);
+    uint32_t i = umutablecptrie_get(normTrie, c);
     if(i==0) {
         return nullptr;
     }
@@ -100,7 +100,7 @@ Norm *Norms::getNorm(UChar32 c) {
 }
 
 const Norm *Norms::getNorm(UChar32 c) const {
-    uint32_t i=utrie2_get32(normTrie, c);
+    uint32_t i = umutablecptrie_get(normTrie, c);
     if(i==0) {
         return nullptr;
     }
@@ -108,18 +108,18 @@ const Norm *Norms::getNorm(UChar32 c) const {
 }
 
 const Norm &Norms::getNormRef(UChar32 c) const {
-    return norms[utrie2_get32(normTrie, c)];
+    return norms[umutablecptrie_get(normTrie, c)];
 }
 
 Norm *Norms::createNorm(UChar32 c) {
-    uint32_t i=utrie2_get32(normTrie, c);
+    uint32_t i=umutablecptrie_get(normTrie, c);
     if(i!=0) {
         return norms+i;
     } else {
         /* allocate Norm */
         Norm *p=allocNorm();
         IcuToolErrorCode errorCode("gennorm2/createNorm()");
-        utrie2_set32(normTrie, c, (uint32_t)(p-norms), errorCode);
+        umutablecptrie_set(normTrie, c, (uint32_t)(p - norms), errorCode);
         return p;
     }
 }
@@ -153,28 +153,20 @@ UBool Norms::combinesWithCCBetween(const Norm &norm, uint8_t lowCC, int32_t high
     return FALSE;
 }
 
-U_CDECL_BEGIN
-
-static UBool U_CALLCONV
-enumRangeHandler(const void *context, UChar32 start, UChar32 end, uint32_t value) {
-    return ((Norms::Enumerator *)context)->rangeHandler(start, end, value);
-}
-
-U_CDECL_END
-
 void Norms::enumRanges(Enumerator &e) {
-    utrie2_enum(normTrie, nullptr, enumRangeHandler, &e);
+    UChar32 start = 0, end;
+    uint32_t i;
+    while ((end = umutablecptrie_getRange(normTrie, start, UCPMAP_RANGE_NORMAL, 0,
+                                          nullptr, nullptr, &i)) >= 0) {
+        if (i > 0) {
+            e.rangeHandler(start, end, norms[i]);
+        }
+        start = end + 1;
+    }
 }
 
 Norms::Enumerator::~Enumerator() {}
 
-UBool Norms::Enumerator::rangeHandler(UChar32 start, UChar32 end, uint32_t value) {
-    if(value!=0) {
-        rangeHandler(start, end, norms.getNormRefByIndex(value));
-    }
-    return TRUE;
-}
-
 void CompositionBuilder::rangeHandler(UChar32 start, UChar32 end, Norm &norm) {
     if(norm.mappingType!=Norm::ROUND_TRIP) { return; }
     if(start!=end) {
index 4bf6e760e202c00959ee76cb2d27cac4d9e88a93..5684e65e67298770274bbb0fea6eb1ae6a85c2e5 100644 (file)
 #if !UCONFIG_NO_NORMALIZATION
 
 #include "unicode/errorcode.h"
+#include "unicode/umutablecptrie.h"
 #include "unicode/uniset.h"
 #include "unicode/unistr.h"
 #include "unicode/utf16.h"
 #include "normalizer2impl.h"
 #include "toolutil.h"
-#include "utrie2.h"
 #include "uvectr32.h"
 
 U_NAMESPACE_BEGIN
@@ -176,8 +176,6 @@ public:
         virtual ~Enumerator();
         /** Called for enumerated value!=0. */
         virtual void rangeHandler(UChar32 start, UChar32 end, Norm &norm) = 0;
-        /** @internal Public only for C callback. */
-        UBool rangeHandler(UChar32 start, UChar32 end, uint32_t value);
     protected:
         Norms &norms;
     };
@@ -190,7 +188,7 @@ private:
     Norms(const Norms &other) = delete;
     Norms &operator=(const Norms &other) = delete;
 
-    UTrie2 *normTrie;
+    UMutableCPTrie *normTrie;
     UToolMemory *normMem;
     Norm *norms;
 };
index 465c099baba90933a35ed6b23e8adf0d6c4cea7f..44eb0c082bca05afa84b2f860068b23089494693 100644 (file)
@@ -1018,6 +1018,11 @@ addCollation(ParseState* state, TableResource  *result, const char *collationTyp
             icu::CollationInfo::printReorderRanges(
                     *t->data, t->settings->reorderCodes, t->settings->reorderCodesLength);
         }
+#if 0  // debugging output
+    } else {
+        printf("%s~%s collation tailoring part sizes:\n", state->filename, collationType);
+        icu::CollationInfo::printSizes(totalSize, indexes);
+#endif
     }
     struct SResource *collationBin = bin_open(state->bundle, "%%CollationBin", totalSize, dest, NULL, NULL, status);
     result->add(collationBin, line, *status);
index 2e04bbce21ef745a7a3536fb96f2a2d54bcc39ae..0493347ebe519410f53cd5c82463ebfa6062dcd3 100644 (file)
@@ -1395,7 +1395,7 @@ SRBRoot::compactKeys(UErrorCode &errorCode) {
                 int32_t offset;
                 suffix = keys + map[j].oldpos;
                 for (suffixLimit = suffix; *suffixLimit != 0; ++suffixLimit) {}
-                offset = (int32_t)(keyLimit - key) - (suffixLimit - suffix);
+                offset = static_cast<int32_t>((keyLimit - key) - (suffixLimit - suffix));
                 if (offset < 0) {
                     break;  /* suffix cannot be longer than the original */
                 }
index 8859a27ef57738d1cbca8b46f1552ff93cb709f4..f85b96ac6078757b269aea8642b467c4d0a27674 100755 (executable)
@@ -106,6 +106,9 @@ print HEADER <<"EndOfHeaderComment";
 
 #if !U_DISABLE_RENAMING
 
+// Disable Renaming for Visual Studio's IntelliSense feature, so that 'Go-to-Definition' (F12) will work.
+#if !(defined(_MSC_VER) && defined(__INTELLISENSE__))
+
 /* We need the U_ICU_ENTRY_POINT_RENAME definition. There's a default one in unicode/uvernum.h we can use, but we will give
    the platform a chance to define it first.
    Normally (if utypes.h or umachine.h was included first) this will not be necessary as it will already be defined.
@@ -236,8 +239,15 @@ foreach(sort keys(%CFuncs)) {
 #    print HEADER "#define $_ $_$U_ICU_VERSION_SUFFIX\n";
 }
 
-print HEADER "\n#endif\n";
-print HEADER "\n#endif\n";
+
+print HEADER <<"EndOfHeaderFooter";
+
+#endif /* !(defined(_MSC_VER) && defined(__INTELLISENSE__)) */
+#endif /* U_DISABLE_RENAMING */
+#endif /* URENAME_H */
+
+EndOfHeaderFooter
+
 
 close HEADER;
 
index e3466379e12934435974d09ebbe8f0791da3a2fb..a9c9efac95bfb580db8a4e7ef5557cf965fe61a0 100644 (file)
@@ -355,7 +355,7 @@ strprepProfileLineFn(void *context,
     if (*s == '@') {
         /* special directive */
         s++;
-        length = fields[0][1] - s;
+        length = (int32_t)(fields[0][1] - s);
         if (length >= NORMALIZE_DIRECTIVE_LEN
             && uprv_strncmp(s, NORMALIZE_DIRECTIVE, NORMALIZE_DIRECTIVE_LEN) == 0) {
             options[NORMALIZE].doesOccur = TRUE;
diff --git a/source/tools/icu-file-utf8-check.py b/source/tools/icu-file-utf8-check.py
new file mode 100755 (executable)
index 0000000..41b5a7b
--- /dev/null
@@ -0,0 +1,104 @@
+#! /usr/bin/python -B
+
+# 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, Google and Others.
+# All rights reserved.
+
+#
+#  Script to check that ICU source files contain only valid UTF-8 encoded text,
+#  and that all files except '.txt' files do not contain a Byte Order Mark (BOM).
+#
+#  THIS SCRIPT DOES NOT WORK ON WINDOWS
+#     It only works correctly on platforms where the native line ending is a plain \n
+#
+#  usage:
+#     icu-file-utf8-check.py  [options]
+#
+#  options:
+#     -h | --help    Print a usage line and exit.
+#
+#  The tool operates recursively on the directory from which it is run.
+#  Only files from the ICU github repository are checked.
+#  No changes are made to the repository; only the working copy will be altered.
+
+import sys
+import os
+import os.path
+import re
+import getopt
+
+
+def runCommand(cmd):
+    output_file = os.popen(cmd);
+    output_text = output_file.read();
+    exit_status = output_file.close();
+    if exit_status:
+        print >>sys.stderr, '"', cmd, '" failed.  Exiting.'
+        sys.exit(exit_status)
+    return output_text
+
+
+def usage():
+    print "usage: " + sys.argv[0] + " [-h | --help]"
+
+    
+#
+#  File check.         Check source code files for UTF-8 and all except text files for not containing a BOM
+#    file_name:        name of a text file.
+#    is_source:        Flag, set to True if file is a source code file (.c, .cpp, .h, .java).
+#
+def check_file(file_name, is_source):
+    f = open(file_name, 'r')
+    bytes = f.read()
+    f.close()
+
+    if is_source:
+        try:
+            bytes.decode("UTF-8")
+        except UnicodeDecodeError:
+            print "Error: %s is a source code file but contains non-utf-8 bytes." % file_name
+    
+    if ord(bytes[0]) == 0xef:
+        if not (file_name.endswith(".txt") or file_name.endswith(".sln")
+                    or file_name.endswith(".targets")
+                    or ".vcxproj" in file_name):
+            print "Warning: file %s contains a UTF-8 BOM: " % file_name
+
+    return
+
+def main(argv):
+    try:
+        opts, args = getopt.getopt(argv, "h", ("help"))
+    except getopt.GetoptError:
+        print "unrecognized option: " + argv[0]
+        usage()
+        sys.exit(2)
+    for opt, arg in opts:
+        if opt in ("-h", "--help"):
+            usage()
+            sys.exit()
+    if args:
+        print "unexpected command line argument"
+        usage()
+        sys.exit()
+
+    output = runCommand("git ls-files ");
+    file_list = output.splitlines()
+
+    source_file_re = re.compile(".*((?:\\.c$)|(?:\\.cpp$)|(?:\\.h$)|(?:\\.java$))")
+    
+    for f in file_list:
+        if os.path.isdir(f):
+            print "Skipping dir " + f
+            continue
+        if not os.path.isfile(f):
+            print "Repository file not in working copy: " + f
+            continue;
+
+        source_file = source_file_re.match(f)
+        check_file(f, source_file)
+
+if __name__ == "__main__":
+    main(sys.argv[1:])
diff --git a/source/tools/icu-svnprops-check.py b/source/tools/icu-svnprops-check.py
deleted file mode 100755 (executable)
index b0e86b3..0000000
+++ /dev/null
@@ -1,189 +0,0 @@
-#! /usr/bin/python
-
-# 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, Google and Others.
-# All rights reserved.
-
-#
-#  Script to check and fix svn property settings for ICU source files.
-#  Also check for the correct line endings on files with svn:eol-style = native
-#
-#  THIS SCRIPT DOES NOT WORK ON WINDOWS
-#     It only works correctly on platforms where the native line ending is a plain \n
-#
-#  usage:
-#     icu-svnprops-check.py  [options]
-#
-#  options:
-#     -f | --fix     Fix any problems that are found
-#     -h | --help    Print a usage line and exit.
-#
-#  The tool operates recursively on the directory from which it is run.
-#  Only files from the svn repository are checked.
-#  No changes are made to the repository; only the working copy will be altered.
-
-import sys
-import os
-import os.path
-import re
-import getopt
-
-
-# file_types:  The parsed form of the svn auto-props specification.
-#              A list of file types - .cc, .cpp, .txt, etc.
-#              each element is a [type, proplist]
-#              "type" is a regular expression string that will match a file name
-#              prop list is another list, one element per property.
-#              Each property item is a two element list, [prop name, prop value]
-file_types = list()
-
-def parse_auto_props():
-    aprops = svn_auto_props.splitlines()
-    for propline in aprops:
-        if re.match("\s*(#.*)?$", propline):         # Match comment and blank lines
-            continue
-        if re.match("\s*\[auto-props\]", propline):  # Match the [auto-props] line.
-            continue
-        if not re.match("\s*[^\s]+\s*=", propline):  # minimal syntax check for <file-type> =
-            print "Bad line from autoprops definitions: " + propline
-            continue
-        file_type, string_proplist = propline.split("=", 1)
-
-        #transform the file type expression from autoprops into a normal regular expression.
-        #  e.g.  "*.cpp"  ==>  ".*\.cpp$"
-        file_type = file_type.strip()
-        file_type = file_type.replace(".", "\.")
-        file_type = file_type.replace("*", ".*")
-        file_type = file_type + "$"
-
-        # example string_proplist at this point: " svn:eol-style=native;svn:executable"
-        # split on ';' into a list of properties.  The negative lookahead and lookbehind
-        # in the split regexp are to prevent matching on ';;', which is an escaped ';'
-        # within a property value.
-        string_proplist = re.split("(?<!;);(?!;)", string_proplist)
-        proplist = list()
-        for prop in string_proplist:
-            if prop.find("=") >= 0:
-                prop_name, prop_val = prop.split("=", 1)
-            else:
-                # properties with no explicit value, e.g. svn:executable
-                prop_name, prop_val = prop, ""
-            prop_name = prop_name.strip()
-            prop_val = prop_val.strip()
-            # unescape any ";;" in a property value, e.g. the mime-type from
-            #    *.java = svn:eol-style=native;svn:mime-type=text/plain;;charset=utf-8
-            prop_val = prop_val.replace(";;", ";");
-            # If the prop value "is quoted", remove the quotes.
-            # See svn:keywords for an example of a quoted prop value.
-            match = re.match('^"(.+)"$', prop_val)
-            if match:
-                prop_val = match.group(1)
-            proplist.append((prop_name, prop_val))
-
-        file_types.append((file_type, proplist))
-    # print file_types
-
-        
-def runCommand(cmd):
-    output_file = os.popen(cmd);
-    output_text = output_file.read();
-    exit_status = output_file.close();
-    if exit_status:
-        print >>sys.stderr, '"', cmd, '" failed.  Exiting.'
-        sys.exit(exit_status)
-    return output_text
-
-svn_auto_props = runCommand("svn propget svn:auto-props http://source.icu-project.org/repos/icu")
-
-def usage():
-    print "usage: " + sys.argv[0] + " [-f | --fix] [-h | --help]"
-
-    
-#
-#  UTF-8 file check.   For text files with svn:mime-type=text/anything, check the specified charset
-#    file_name:        name of a text file.
-#    base_mime_type:   svn:mime-type property from the auto-props settings for this file type.
-#    actual_mime_type: existing svn:mime-type property value for the file.
-#    return:           The correct svn:mime-type property value,
-#                         either the original, if it looks OK, otherwise the value from auto-props
-#
-def check_utf8(file_name, base_mime_type, actual_mime_type):
-
-    f = open(file_name, 'r')
-    bytes = f.read()
-    f.close()
-    file_is_utf8 = True
-    try:
-        bytes.decode("UTF-8")
-    except UnicodeDecodeError:
-        file_is_utf8 = False
-
-    if not file_is_utf8 and actual_mime_type.find("utf-8") >= 0:
-        print "Error: %s is not valid utf-8, but has a utf-8 mime type." % file_name
-        return actual_mime_type
-
-    if file_is_utf8 and actual_mime_type.find("charset") >=0 and actual_mime_type.find("utf-8") < 0:
-        print "Warning: %s is valid utf-8, but has a mime-type of %s." % (file_name, actual_mime_type)
-
-    if ord(bytes[0]) == 0xef:
-        if not file_name.endswith(".txt"):
-            print "Warning: file %s contains a UTF-8 BOM: " % file_name
-
-    # If the file already has a charset in its mime-type, don't make any change.
-
-    if actual_mime_type.find("charset=") >= 0:
-        return actual_mime_type;
-
-    return base_mime_type
-
-
-def main(argv):
-    fix_problems = False;
-    try:
-        opts, args = getopt.getopt(argv, "fh", ("fix", "help"))
-    except getopt.GetoptError:
-        print "unrecognized option: " + argv[0]
-        usage()
-        sys.exit(2)
-    for opt, arg in opts:
-        if opt in ("-h", "--help"):
-            usage()
-            sys.exit()
-        if opt in ("-f", "--fix"):
-            fix_problems = True
-    if args:
-        print "unexpected command line argument"
-        usage()
-        sys.exit()
-
-    parse_auto_props()
-    output = runCommand("svn ls -R ");
-    file_list = output.splitlines()
-
-    for f in file_list:
-        if os.path.isdir(f):
-            # print "Skipping dir " + f
-            continue
-        if not os.path.isfile(f):
-            print "Repository file not in working copy: " + f
-            continue;
-
-        for file_pattern, props in file_types:
-            if re.match(file_pattern, f):
-                # print "doing " + f
-                for propname, propval in props:
-                    actual_propval = runCommand("svn propget --strict " + propname + " " + f)
-                    #print propname + ": " + actual_propval
-                    if propname == "svn:mime-type" and propval.find("text/") == 0:
-                        # check for UTF-8 text files, should have svn:mime-type=text/something; charset=utf8
-                        propval = check_utf8(f, propval, actual_propval)
-                    if not (propval == actual_propval or (propval == "" and actual_propval == "*")):
-                        print "svn propset %s '%s' %s" % (propname, propval, f)
-                        if fix_problems:
-                            os.system("svn propset %s '%s' %s" % (propname, propval, f))
-
-
-if __name__ == "__main__":
-    main(sys.argv[1:])
index ffcf459c349e91964be13264a5acf9488200127f..b2cd0ab5eb9709a5294f5c6226908dfdade105e7 100644 (file)
@@ -511,7 +511,7 @@ main(int argc, char* argv[]) {
 static int runCommand(const char* command, UBool specialHandling) {
     char *cmd = NULL;
     char cmdBuffer[SMALL_BUFFER_MAX_SIZE];
-    int32_t len = strlen(command);
+    int32_t len = static_cast<int32_t>(strlen(command));
 
     if (len == 0) {
         return 0;
@@ -904,7 +904,8 @@ static void createFileNames(UPKGOptions *o, const char mode, const char *version
         if (IN_DLL_MODE(mode)) {
             sprintf(libFileNames[LIB_FILE], "%s", libName);
         } else {
-            sprintf(libFileNames[LIB_FILE], "%s%s",
+            sprintf(libFileNames[LIB_FILE], "%s%s%s",
+                    (strstr(libName, "icudt") ? "lib" : ""),
                     pkgDataFlags[LIBPREFIX],
                     libName);
         }
@@ -1020,7 +1021,7 @@ static int32_t pkg_createSymLinks(const char *targetDir, UBool specialHandling)
     char name2[SMALL_BUFFER_MAX_SIZE]; /* file name to symlink */
     const char* FILE_EXTENSION_SEP = uprv_strlen(pkgDataFlags[SO_EXT]) == 0 ? "" : ".";
 
-#if !defined(USING_CYGWIN) && U_PLATFORM != U_PF_MINGW
+#if U_PLATFORM != U_PF_CYGWIN
     /* No symbolic link to make. */
     if (uprv_strlen(libFileNames[LIB_FILE_VERSION]) == 0 || uprv_strlen(libFileNames[LIB_FILE_VERSION_MAJOR]) == 0 ||
         uprv_strcmp(libFileNames[LIB_FILE_VERSION], libFileNames[LIB_FILE_VERSION_MAJOR]) == 0) {
@@ -1225,7 +1226,7 @@ static int32_t pkg_installFileMode(const char *installDir, const char *srcDir, c
     if (f != NULL) {
         for(;;) {
             if (T_FileStream_readLine(f, buffer, SMALL_BUFFER_MAX_SIZE) != NULL) {
-                bufferLength = uprv_strlen(buffer);
+                bufferLength = static_cast<int32_t>(uprv_strlen(buffer));
                 /* Remove new line character. */
                 if (bufferLength > 0) {
                     buffer[bufferLength-1] = 0;
index 2653747727fd80004f95a078ce4dde3215738b53..a926848985a8e1edcbbf74e65f49d99c5f03c4da 100644 (file)
@@ -104,14 +104,14 @@ T_FileStream_tmpfile()
 U_CAPI int32_t U_EXPORT2
 T_FileStream_read(FileStream* fileStream, void* addr, int32_t len)
 {
-    return fread(addr, 1, len, (FILE*)fileStream);
+    return static_cast<int32_t>(fread(addr, 1, len, (FILE*)fileStream));
 }
 
 U_CAPI int32_t U_EXPORT2
 T_FileStream_write(FileStream* fileStream, const void* addr, int32_t len)
 {
 
-    return fwrite(addr, 1, len, (FILE*)fileStream);
+    return static_cast<int32_t>(fwrite(addr, 1, len, (FILE*)fileStream));
 }
 
 U_CAPI void U_EXPORT2
index 176a791b0df853040d6c4291a01dbebb5b3cf79f..6e88c94b5200b5f6cee5d9819a74e4389a7a6869 100644 (file)
@@ -134,7 +134,7 @@ static int32_t whichFileModTimeIsLater(const char *file1, const char *file2) {
 /* Swap the file separater character given with the new one in the file path. */
 U_CAPI void U_EXPORT2
 swapFileSepChar(char *filePath, const char oldFileSepChar, const char newFileSepChar) {
-    for (int32_t i = 0, length = uprv_strlen(filePath); i < length; i++) {
+    for (int32_t i = 0, length = static_cast<int32_t>(uprv_strlen(filePath)); i < length; i++) {
         filePath[i] = (filePath[i] == oldFileSepChar ) ? newFileSepChar : filePath[i];
     }
 }
index d96c6dd36ddb410237e36056291cb83844d86326..f4e428a37e7153f033c74a1a6f61db5b7093f303 100644 (file)
@@ -610,7 +610,7 @@ Package::readPackage(const char *filename) {
             memcpy(prefix, s, ++prefixLength);  // include the /
         } else {
             // Use the package basename as prefix.
-            int32_t inPkgNameLength=strlen(inPkgName);
+            int32_t inPkgNameLength= static_cast<int32_t>(strlen(inPkgName));
             memcpy(prefix, inPkgName, inPkgNameLength);
             prefixLength=inPkgNameLength;
 
@@ -1043,7 +1043,7 @@ Package::addItem(const char *name, uint8_t *data, int32_t length, UBool isDataOw
         memset(items+idx, 0, sizeof(Item));
 
         // copy the item's name
-        items[idx].name=allocString(TRUE, strlen(name));
+        items[idx].name=allocString(TRUE, static_cast<int32_t>(strlen(name)));
         strcpy(items[idx].name, name);
         pathToTree(items[idx].name);
     } else {
index f3f333a005eb43a895327807e7c22534e6318750..e8850cb98641680eeec41131278d4d96683842a4 100644 (file)
@@ -243,7 +243,7 @@ uprops_swap(const UDataSwapper *ds,
          * swap the main properties UTrie
          * PT serialized properties trie, see utrie.h (byte size: 4*(i0-16))
          */
-        utrie2_swapAnyVersion(ds,
+        utrie_swapAnyVersion(ds,
             inData32+UPROPS_INDEX_COUNT,
             4*(dataIndexes[UPROPS_PROPS32_INDEX]-UPROPS_INDEX_COUNT),
             outData32+UPROPS_INDEX_COUNT,
@@ -274,7 +274,7 @@ uprops_swap(const UDataSwapper *ds,
          * swap the additional UTrie
          * i3 additionalTrieIndex; -- 32-bit unit index to the additional trie for more properties
          */
-        utrie2_swapAnyVersion(ds,
+        utrie_swapAnyVersion(ds,
             inData32+dataIndexes[UPROPS_ADDITIONAL_TRIE_INDEX],
             4*(dataIndexes[UPROPS_ADDITIONAL_VECTORS_INDEX]-dataIndexes[UPROPS_ADDITIONAL_TRIE_INDEX]),
             outData32+dataIndexes[UPROPS_ADDITIONAL_TRIE_INDEX],
@@ -336,7 +336,7 @@ ucase_swap(const UDataSwapper *ds,
         ((pInfo->formatVersion[0]==1 &&
           pInfo->formatVersion[2]==UTRIE_SHIFT &&
           pInfo->formatVersion[3]==UTRIE_INDEX_SHIFT) ||
-         2<=pInfo->formatVersion[0] || pInfo->formatVersion[0]<=4)
+         (2<=pInfo->formatVersion[0] && pInfo->formatVersion[0]<=4))
     )) {
         udata_printError(ds, "ucase_swap(): data format %02x.%02x.%02x.%02x (format version %02x) is not recognized as case mapping data\n",
                          pInfo->dataFormat[0], pInfo->dataFormat[1],
@@ -391,7 +391,7 @@ ucase_swap(const UDataSwapper *ds,
 
         /* swap the UTrie */
         count=indexes[UCASE_IX_TRIE_SIZE];
-        utrie2_swapAnyVersion(ds, inBytes+offset, count, outBytes+offset, pErrorCode);
+        utrie_swapAnyVersion(ds, inBytes+offset, count, outBytes+offset, pErrorCode);
         offset+=count;
 
         /* swap the uint16_t exceptions[] and unfold[] */
@@ -493,7 +493,7 @@ ubidi_swap(const UDataSwapper *ds,
 
         /* swap the UTrie */
         count=indexes[UBIDI_IX_TRIE_SIZE];
-        utrie2_swapAnyVersion(ds, inBytes+offset, count, outBytes+offset, pErrorCode);
+        utrie_swapAnyVersion(ds, inBytes+offset, count, outBytes+offset, pErrorCode);
         offset+=count;
 
         /* swap the uint32_t mirrors[] */
index c3604939f199edafb4bebe2307d84e8bdd238a15..bf379f20789f53c08280e8095dae43cbb98c033c 100644 (file)
@@ -71,7 +71,7 @@
       <CompileAs>Default</CompileAs>
     </ClCompile>
     <Link>
-      <OutputFile>..\..\..\bin\icutu62.dll</OutputFile>
+      <OutputFile>..\..\..\bin\icutu63.dll</OutputFile>
       <AdditionalDependencies>icuuc.lib;icuin.lib;%(AdditionalDependencies)</AdditionalDependencies>
       <AdditionalLibraryDirectories>..\..\..\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
       <ProgramDatabaseFile>.\..\..\..\lib\icutu.pdb</ProgramDatabaseFile>
@@ -97,7 +97,7 @@
       <CompileAs>Default</CompileAs>
     </ClCompile>
     <Link>
-      <OutputFile>..\..\..\bin\icutu62d.dll</OutputFile>
+      <OutputFile>..\..\..\bin\icutu63d.dll</OutputFile>
       <AdditionalDependencies>icuucd.lib;icuind.lib;%(AdditionalDependencies)</AdditionalDependencies>
       <AdditionalLibraryDirectories>..\..\..\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
       <ProgramDatabaseFile>.\..\..\..\lib\icutud.pdb</ProgramDatabaseFile>
       <CompileAs>Default</CompileAs>
     </ClCompile>
     <Link>
-      <OutputFile>..\..\..\bin64\icutu62.dll</OutputFile>
+      <OutputFile>..\..\..\bin64\icutu63.dll</OutputFile>
       <AdditionalDependencies>icuuc.lib;icuin.lib;%(AdditionalDependencies)</AdditionalDependencies>
       <AdditionalLibraryDirectories>..\..\..\lib64;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
       <ProgramDatabaseFile>.\..\..\..\lib64\icutu.pdb</ProgramDatabaseFile>
       <CompileAs>Default</CompileAs>
     </ClCompile>
     <Link>
-      <OutputFile>..\..\..\bin64\icutu62d.dll</OutputFile>
+      <OutputFile>..\..\..\bin64\icutu63d.dll</OutputFile>
       <AdditionalDependencies>icuucd.lib;icuind.lib;%(AdditionalDependencies)</AdditionalDependencies>
       <AdditionalLibraryDirectories>..\..\..\lib64;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
       <ProgramDatabaseFile>.\..\..\..\lib64\icutud.pdb</ProgramDatabaseFile>
index dcc80ebe069519a49501753e8707cee7600043d9..285f68a0ec66a1607c64003d8b266583b4f8f0fb 100644 (file)
@@ -400,7 +400,7 @@ U_CAPI  int32_t
 paramStatic(const USystemParams *param, char *target, int32_t targetCapacity, UErrorCode *status) {
   if(param->paramStr==NULL) return paramEmpty(param,target,targetCapacity,status);
   if(U_FAILURE(*status))return 0;
-  int32_t len = uprv_strlen(param->paramStr);
+  int32_t len = static_cast<int32_t>(uprv_strlen(param->paramStr));
   if(target!=NULL) {
     uprv_strncpy(target,param->paramStr,uprv_min(len,targetCapacity));
   }
@@ -412,14 +412,14 @@ static const char *nullString = "(null)";
 static int32_t stringToStringBuffer(char *target, int32_t targetCapacity, const char *str, UErrorCode *status) {
   if(str==NULL) str=nullString;
 
-  int32_t len = uprv_strlen(str);
+  int32_t len = static_cast<int32_t>(uprv_strlen(str));
   if (U_SUCCESS(*status)) {
     if(target!=NULL) {
       uprv_strncpy(target,str,uprv_min(len,targetCapacity));
     }
   } else {
     const char *s = u_errorName(*status);
-    len = uprv_strlen(s);
+    len = static_cast<int32_t>(uprv_strlen(s));
     if(target!=NULL) {
       uprv_strncpy(target,s,uprv_min(len,targetCapacity));
     }
index 84c9d526ba27fe0470f1ba8a9ae09b83b9678862..32b615c39b8eb2afc99876568ef56ab178e1b7ad 100644 (file)
@@ -61,17 +61,17 @@ udata_create(const char *dir, const char *type, const char *name,
     length = 0;                                        /* Start with nothing */
     if(dir != NULL  && *dir !=0)       /* Add directory length if one was given */
     {
-       length += strlen(dir);
+       length += static_cast<int32_t>(strlen(dir));
        
        /* Add 1 if dir doesn't end with path sep */
         if (dir[strlen(dir) - 1]!= U_FILE_SEP_CHAR) {
             length++;
         }
        }
-    length += strlen(name);            /* Add the filename length */
+    length += static_cast<int32_t>(strlen(name));              /* Add the filename length */
 
     if(type != NULL  && *type !=0) { /* Add directory length if  given */
-        length += strlen(type);
+        length += static_cast<int32_t>(strlen(type));
     }
 
         
index edff1f9e544e390b38220008dbaa815a05391999..10b4ad246f6e0eeba2cfa53fff7cd063b6616d91 100644 (file)
 #include <time.h>
 #include "unicode/utypes.h"
 #include "unicode/putil.h"
+#include "unicode/ucptrie.h"
 #include "utrie2.h"
 #include "cstring.h"
 #include "writesrc.h"
 
 static FILE *
 usrc_createWithHeader(const char *path, const char *filename,
-                      const char *generator, const char *header) {
+                      const char *header, const char *generator) {
     char buffer[1024];
     const char *p;
     char *q;
@@ -71,20 +72,34 @@ usrc_createWithHeader(const char *path, const char *filename,
 }
 
 U_CAPI FILE * U_EXPORT2
-usrc_create(const char *path, const char *filename, const char *generator) {
-    // TODO: Add parameter for the first year this file was generated, not before 2016.
-    static const char *header=
-        "// © 2016 and later: Unicode, Inc. and others.\n"
-        "// License & terms of use: http://www.unicode.org/copyright.html\n"
-        "//\n"
-        "// Copyright (C) 1999-2016, International Business Machines\n"
-        "// Corporation and others.  All Rights Reserved.\n"
-        "//\n"
-        "// file name: %s\n"
-        "//\n"
-        "// machine-generated by: %s\n"
-        "\n\n";
-    return usrc_createWithHeader(path, filename, generator, header);
+usrc_create(const char *path, const char *filename, int32_t copyrightYear, const char *generator) {
+    const char *header;
+    char buffer[200];
+    if(copyrightYear<=2016) {
+        header=
+            "// © 2016 and later: Unicode, Inc. and others.\n"
+            "// License & terms of use: http://www.unicode.org/copyright.html\n"
+            "//\n"
+            "// Copyright (C) 1999-2016, International Business Machines\n"
+            "// Corporation and others.  All Rights Reserved.\n"
+            "//\n"
+            "// file name: %s\n"
+            "//\n"
+            "// machine-generated by: %s\n"
+            "\n\n";
+    } else {
+        sprintf(buffer,
+                "// © %d and later: Unicode, Inc. and others.\n"
+                "// License & terms of use: http://www.unicode.org/copyright.html\n"
+                "//\n"
+                "// file name: %%s\n"
+                "//\n"
+                "// machine-generated by: %%s\n"
+                "\n\n",
+                (int)copyrightYear);
+        header=buffer;
+    }
+    return usrc_createWithHeader(path, filename, header, generator);
 }
 
 U_CAPI FILE * U_EXPORT2
@@ -100,7 +115,7 @@ usrc_createTextData(const char *path, const char *filename, const char *generato
         "#\n"
         "# machine-generated by: %s\n"
         "\n\n";
-    return usrc_createWithHeader(path, filename, generator, header);
+    return usrc_createWithHeader(path, filename, header, generator);
 }
 
 U_CAPI void U_EXPORT2
@@ -228,6 +243,68 @@ usrc_writeUTrie2Struct(FILE *f,
     }
 }
 
+U_CAPI void U_EXPORT2
+usrc_writeUCPTrieArrays(FILE *f,
+                        const char *indexPrefix, const char *dataPrefix,
+                        const UCPTrie *pTrie,
+                        const char *postfix) {
+    usrc_writeArray(f, indexPrefix, pTrie->index, 16, pTrie->indexLength, postfix);
+    int32_t width=
+        pTrie->valueWidth==UCPTRIE_VALUE_BITS_16 ? 16 :
+        pTrie->valueWidth==UCPTRIE_VALUE_BITS_32 ? 32 :
+        pTrie->valueWidth==UCPTRIE_VALUE_BITS_8 ? 8 : 0;
+    usrc_writeArray(f, dataPrefix, pTrie->data.ptr0, width, pTrie->dataLength, postfix);
+}
+
+U_CAPI void U_EXPORT2
+usrc_writeUCPTrieStruct(FILE *f,
+                        const char *prefix,
+                        const UCPTrie *pTrie,
+                        const char *indexName, const char *dataName,
+                        const char *postfix) {
+    if(prefix!=NULL) {
+        fputs(prefix, f);
+    }
+    fprintf(
+        f,
+        "    %s,\n"             // index
+        "    { %s },\n",        // data (union)
+        indexName,
+        dataName);
+    fprintf(
+        f,
+        "    %ld, %ld,\n"       // indexLength, dataLength
+        "    0x%lx, 0x%x,\n"    // highStart, shifted12HighStart
+        "    %d, %d,\n"         // type, valueWidth
+        "    0, 0,\n"           // reserved32, reserved16
+        "    0x%x, 0x%lx,\n"    // index3NullOffset, dataNullOffset
+        "    0x%lx,\n",         // nullValue
+        (long)pTrie->indexLength, (long)pTrie->dataLength,
+        (long)pTrie->highStart, pTrie->shifted12HighStart,
+        pTrie->type, pTrie->valueWidth,
+        pTrie->index3NullOffset, (long)pTrie->dataNullOffset,
+        (long)pTrie->nullValue);
+    if(postfix!=NULL) {
+        fputs(postfix, f);
+    }
+}
+
+U_CAPI void U_EXPORT2
+usrc_writeUCPTrie(FILE *f, const char *name, const UCPTrie *pTrie) {
+    int32_t width=
+        pTrie->valueWidth==UCPTRIE_VALUE_BITS_16 ? 16 :
+        pTrie->valueWidth==UCPTRIE_VALUE_BITS_32 ? 32 :
+        pTrie->valueWidth==UCPTRIE_VALUE_BITS_8 ? 8 : 0;
+    char line[100], line2[100], line3[100];
+    sprintf(line, "static const uint16_t %s_trieIndex[%%ld]={\n", name);
+    sprintf(line2, "static const uint%d_t %s_trieData[%%ld]={\n", (int)width, name);
+    usrc_writeUCPTrieArrays(f, line, line2, pTrie, "\n};\n\n");
+    sprintf(line, "static const UCPTrie %s_trie={\n", name);
+    sprintf(line2, "%s_trieIndex", name);
+    sprintf(line3, "%s_trieData", name);
+    usrc_writeUCPTrieStruct(f, line, pTrie, line2, line3, "};\n\n");
+}
+
 U_CAPI void U_EXPORT2
 usrc_writeArrayOfMostlyInvChars(FILE *f,
                                 const char *prefix,
index fdcf1f9a6b40f3b6eeb4fd6cd15129a7274e46a6..35ba256793c03abd8c8e5412e9ae06e6417447a5 100644 (file)
@@ -23,6 +23,7 @@
 
 #include <stdio.h>
 #include "unicode/utypes.h"
+#include "unicode/ucptrie.h"
 #include "utrie2.h"
 
 /**
@@ -30,7 +31,7 @@
  * Writes a C/Java-style comment with the generator name.
  */
 U_CAPI FILE * U_EXPORT2
-usrc_create(const char *path, const char *filename, const char *generator);
+usrc_create(const char *path, const char *filename, int32_t copyrightYear, const char *generator);
 
 /**
  * Creates a source text file and writes a header comment with the ICU copyright.
@@ -75,6 +76,33 @@ usrc_writeUTrie2Struct(FILE *f,
                        const char *indexName, const char *dataName,
                        const char *postfix);
 
+/**
+ * Calls usrc_writeArray() for the index and data arrays of a UCPTrie.
+ */
+U_CAPI void U_EXPORT2
+usrc_writeUCPTrieArrays(FILE *f,
+                        const char *indexPrefix, const char *dataPrefix,
+                        const UCPTrie *pTrie,
+                        const char *postfix);
+
+/**
+ * Writes the UCPTrie struct values.
+ * The {} and declaration etc. need to be included in prefix/postfix or
+ * printed before and after the array contents.
+ */
+U_CAPI void U_EXPORT2
+usrc_writeUCPTrieStruct(FILE *f,
+                        const char *prefix,
+                        const UCPTrie *pTrie,
+                        const char *indexName, const char *dataName,
+                        const char *postfix);
+
+/**
+ * Writes the UCPTrie arrays and struct values.
+ */
+U_CAPI void U_EXPORT2
+usrc_writeUCPTrie(FILE *f, const char *name, const UCPTrie *pTrie);
+
 /**
  * Writes the contents of an array of mostly invariant characters.
  * Characters 0..0x1f are printed as numbers,